/ * *
* @ licstart The following is the entire license notice for the
* Javascript code in this page
*
* Copyright 2017 Mozilla Foundation
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
*
* @ licend The above is the entire license notice for the
* Javascript code in this page
* /
( function webpackUniversalModuleDefinition ( root , factory ) {
if ( typeof exports === 'object' && typeof module === 'object' )
module . exports = factory ( ) ;
else if ( typeof define === 'function' && define . amd )
define ( "pdfjs-dist/web/pdf_viewer" , [ ] , factory ) ;
else if ( typeof exports === 'object' )
exports [ "pdfjs-dist/web/pdf_viewer" ] = factory ( ) ;
else
root [ "pdfjs-dist/web/pdf_viewer" ] = root . pdfjsDistWebPdfViewer = factory ( ) ;
} ) ( typeof self !== 'undefined' ? self : this , function ( ) {
return /******/ ( function ( modules ) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _w _pdfjs _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _w _pdfjs _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ _ _w _pdfjs _require _ _ . m = modules ;
/******/
/******/ // expose the module cache
/******/ _ _w _pdfjs _require _ _ . c = installedModules ;
/******/
/******/ // define getter function for harmony exports
/******/ _ _w _pdfjs _require _ _ . d = function ( exports , name , getter ) {
/******/ if ( ! _ _w _pdfjs _require _ _ . o ( exports , name ) ) {
/******/ Object . defineProperty ( exports , name , {
/******/ configurable : false ,
/******/ enumerable : true ,
/******/ get : getter
/******/ } ) ;
/******/ }
/******/ } ;
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _w _pdfjs _require _ _ . n = function ( module ) {
/******/ var getter = module && module . _ _esModule ?
/******/ function getDefault ( ) { return module [ 'default' ] ; } :
/******/ function getModuleExports ( ) { return module ; } ;
/******/ _ _w _pdfjs _require _ _ . d ( getter , 'a' , getter ) ;
/******/ return getter ;
/******/ } ;
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ _ _w _pdfjs _require _ _ . o = function ( object , property ) { return Object . prototype . hasOwnProperty . call ( object , property ) ; } ;
/******/
/******/ // __webpack_public_path__
/******/ _ _w _pdfjs _require _ _ . p = "" ;
/******/
/******/ // Load entry module and return exports
/******/ return _ _w _pdfjs _require _ _ ( _ _w _pdfjs _require _ _ . s = 9 ) ;
/******/ } )
/************************************************************************/
/******/ ( [
/* 0 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
var pdfjsLib = void 0 ;
if ( typeof window !== 'undefined' && window [ 'pdfjs-dist/build/pdf' ] ) {
pdfjsLib = window [ 'pdfjs-dist/build/pdf' ] ;
} else {
pdfjsLib = require ( '../build/pdf.js' ) ;
}
module . exports = pdfjsLib ;
/***/ } ) ,
/* 1 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . waitOnEventOrTimeout = exports . WaitOnType = exports . localized = exports . animationStarted = exports . normalizeWheelEventDelta = exports . binarySearchFirstItem = exports . watchScroll = exports . scrollIntoView = exports . getOutputScale = exports . approximateFraction = exports . roundToDivide = exports . getVisibleElements = exports . parseQueryString = exports . noContextMenuHandler = exports . getPDFFileNameFromURL = exports . ProgressBar = exports . EventBus = exports . NullL10n = exports . mozL10n = exports . TextLayerMode = exports . RendererType = exports . PresentationModeState = exports . cloneObj = exports . isFileSchema = exports . isValidRotation = exports . VERTICAL _PADDING = exports . SCROLLBAR _PADDING = exports . MAX _AUTO _SCALE = exports . UNKNOWN _SCALE = exports . MAX _SCALE = exports . MIN _SCALE = exports . DEFAULT _SCALE = exports . DEFAULT _SCALE _VALUE = exports . CSS _UNITS = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _typeof = typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ? function ( obj ) { return typeof obj ; } : function ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var CSS _UNITS = 96.0 / 72.0 ;
var DEFAULT _SCALE _VALUE = 'auto' ;
var DEFAULT _SCALE = 1.0 ;
var MIN _SCALE = 0.10 ;
var MAX _SCALE = 10.0 ;
var UNKNOWN _SCALE = 0 ;
var MAX _AUTO _SCALE = 1.25 ;
var SCROLLBAR _PADDING = 40 ;
var VERTICAL _PADDING = 5 ;
var PresentationModeState = {
UNKNOWN : 0 ,
NORMAL : 1 ,
CHANGING : 2 ,
FULLSCREEN : 3
} ;
var RendererType = {
CANVAS : 'canvas' ,
SVG : 'svg'
} ;
var TextLayerMode = {
DISABLE : 0 ,
ENABLE : 1 ,
ENABLE _ENHANCE : 2
} ;
function formatL10nValue ( text , args ) {
if ( ! args ) {
return text ;
}
return text . replace ( /\{\{\s*(\w+)\s*\}\}/g , function ( all , name ) {
return name in args ? args [ name ] : '{{' + name + '}}' ;
} ) ;
}
var NullL10n = {
getDirection : function getDirection ( ) {
return Promise . resolve ( 'ltr' ) ;
} ,
get : function get ( property , args , fallback ) {
return Promise . resolve ( formatL10nValue ( fallback , args ) ) ;
} ,
translate : function translate ( element ) {
return Promise . resolve ( ) ;
}
} ;
_pdfjsLib . PDFJS . useOnlyCssZoom = _pdfjsLib . PDFJS . useOnlyCssZoom === undefined ? false : _pdfjsLib . PDFJS . useOnlyCssZoom ;
_pdfjsLib . PDFJS . maxCanvasPixels = _pdfjsLib . PDFJS . maxCanvasPixels === undefined ? 16777216 : _pdfjsLib . PDFJS . maxCanvasPixels ;
_pdfjsLib . PDFJS . disableHistory = _pdfjsLib . PDFJS . disableHistory === undefined ? false : _pdfjsLib . PDFJS . disableHistory ;
{
_pdfjsLib . PDFJS . locale = ( _pdfjsLib . PDFJS . locale === undefined && typeof navigator !== 'undefined' ? navigator . language : _pdfjsLib . PDFJS . locale ) || 'en-US' ;
}
function getOutputScale ( ctx ) {
var devicePixelRatio = window . devicePixelRatio || 1 ;
var backingStoreRatio = ctx . webkitBackingStorePixelRatio || ctx . mozBackingStorePixelRatio || ctx . msBackingStorePixelRatio || ctx . oBackingStorePixelRatio || ctx . backingStorePixelRatio || 1 ;
var pixelRatio = devicePixelRatio / backingStoreRatio ;
return {
sx : pixelRatio ,
sy : pixelRatio ,
scaled : pixelRatio !== 1
} ;
}
function scrollIntoView ( element , spot ) {
var skipOverflowHiddenElements = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
var parent = element . offsetParent ;
if ( ! parent ) {
console . error ( 'offsetParent is not set -- cannot scroll' ) ;
return ;
}
var offsetY = element . offsetTop + element . clientTop ;
var offsetX = element . offsetLeft + element . clientLeft ;
while ( parent . clientHeight === parent . scrollHeight || skipOverflowHiddenElements && getComputedStyle ( parent ) . overflow === 'hidden' ) {
if ( parent . dataset . _scaleY ) {
offsetY /= parent . dataset . _scaleY ;
offsetX /= parent . dataset . _scaleX ;
}
offsetY += parent . offsetTop ;
offsetX += parent . offsetLeft ;
parent = parent . offsetParent ;
if ( ! parent ) {
return ;
}
}
if ( spot ) {
if ( spot . top !== undefined ) {
offsetY += spot . top ;
}
if ( spot . left !== undefined ) {
offsetX += spot . left ;
parent . scrollLeft = offsetX ;
}
}
parent . scrollTop = offsetY ;
}
function watchScroll ( viewAreaElement , callback ) {
var debounceScroll = function debounceScroll ( evt ) {
if ( rAF ) {
return ;
}
rAF = window . requestAnimationFrame ( function viewAreaElementScrolled ( ) {
rAF = null ;
var currentY = viewAreaElement . scrollTop ;
var lastY = state . lastY ;
if ( currentY !== lastY ) {
state . down = currentY > lastY ;
}
state . lastY = currentY ;
callback ( state ) ;
} ) ;
} ;
var state = {
down : true ,
lastY : viewAreaElement . scrollTop ,
_eventHandler : debounceScroll
} ;
var rAF = null ;
viewAreaElement . addEventListener ( 'scroll' , debounceScroll , true ) ;
return state ;
}
function parseQueryString ( query ) {
var parts = query . split ( '&' ) ;
var params = Object . create ( null ) ;
for ( var i = 0 , ii = parts . length ; i < ii ; ++ i ) {
var param = parts [ i ] . split ( '=' ) ;
var key = param [ 0 ] . toLowerCase ( ) ;
var value = param . length > 1 ? param [ 1 ] : null ;
params [ decodeURIComponent ( key ) ] = decodeURIComponent ( value ) ;
}
return params ;
}
function binarySearchFirstItem ( items , condition ) {
var minIndex = 0 ;
var maxIndex = items . length - 1 ;
if ( items . length === 0 || ! condition ( items [ maxIndex ] ) ) {
return items . length ;
}
if ( condition ( items [ minIndex ] ) ) {
return minIndex ;
}
while ( minIndex < maxIndex ) {
var currentIndex = minIndex + maxIndex >> 1 ;
var currentItem = items [ currentIndex ] ;
if ( condition ( currentItem ) ) {
maxIndex = currentIndex ;
} else {
minIndex = currentIndex + 1 ;
}
}
return minIndex ;
}
function approximateFraction ( x ) {
if ( Math . floor ( x ) === x ) {
return [ x , 1 ] ;
}
var xinv = 1 / x ;
var limit = 8 ;
if ( xinv > limit ) {
return [ 1 , limit ] ;
} else if ( Math . floor ( xinv ) === xinv ) {
return [ 1 , xinv ] ;
}
var x _ = x > 1 ? xinv : x ;
var a = 0 ,
b = 1 ,
c = 1 ,
d = 1 ;
while ( true ) {
var p = a + c ,
q = b + d ;
if ( q > limit ) {
break ;
}
if ( x _ <= p / q ) {
c = p ;
d = q ;
} else {
a = p ;
b = q ;
}
}
var result = void 0 ;
if ( x _ - a / b < c / d - x _ ) {
result = x _ === x ? [ a , b ] : [ b , a ] ;
} else {
result = x _ === x ? [ c , d ] : [ d , c ] ;
}
return result ;
}
function roundToDivide ( x , div ) {
var r = x % div ;
return r === 0 ? x : Math . round ( x - r + div ) ;
}
function getVisibleElements ( scrollEl , views ) {
var sortByVisibility = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
var top = scrollEl . scrollTop ,
bottom = top + scrollEl . clientHeight ;
var left = scrollEl . scrollLeft ,
right = left + scrollEl . clientWidth ;
function isElementBottomBelowViewTop ( view ) {
var element = view . div ;
var elementBottom = element . offsetTop + element . clientTop + element . clientHeight ;
return elementBottom > top ;
}
var visible = [ ] ,
view = void 0 ,
element = void 0 ;
var currentHeight = void 0 ,
viewHeight = void 0 ,
hiddenHeight = void 0 ,
percentHeight = void 0 ;
var currentWidth = void 0 ,
viewWidth = void 0 ;
var firstVisibleElementInd = views . length === 0 ? 0 : binarySearchFirstItem ( views , isElementBottomBelowViewTop ) ;
for ( var i = firstVisibleElementInd , ii = views . length ; i < ii ; i ++ ) {
view = views [ i ] ;
element = view . div ;
currentHeight = element . offsetTop + element . clientTop ;
viewHeight = element . clientHeight ;
if ( currentHeight > bottom ) {
break ;
}
currentWidth = element . offsetLeft + element . clientLeft ;
viewWidth = element . clientWidth ;
if ( currentWidth + viewWidth < left || currentWidth > right ) {
continue ;
}
hiddenHeight = Math . max ( 0 , top - currentHeight ) + Math . max ( 0 , currentHeight + viewHeight - bottom ) ;
percentHeight = ( viewHeight - hiddenHeight ) * 100 / viewHeight | 0 ;
visible . push ( {
id : view . id ,
x : currentWidth ,
y : currentHeight ,
view : view ,
percent : percentHeight
} ) ;
}
var first = visible [ 0 ] ;
var last = visible [ visible . length - 1 ] ;
if ( sortByVisibility ) {
visible . sort ( function ( a , b ) {
var pc = a . percent - b . percent ;
if ( Math . abs ( pc ) > 0.001 ) {
return - pc ;
}
return a . id - b . id ;
} ) ;
}
return {
first : first ,
last : last ,
views : visible
} ;
}
function noContextMenuHandler ( evt ) {
evt . preventDefault ( ) ;
}
function isFileSchema ( url ) {
var i = 0 ,
ii = url . length ;
while ( i < ii && url [ i ] . trim ( ) === '' ) {
i ++ ;
}
return url . substr ( i , 7 ) . toLowerCase ( ) === 'file://' ;
}
function isDataSchema ( url ) {
var i = 0 ,
ii = url . length ;
while ( i < ii && url [ i ] . trim ( ) === '' ) {
i ++ ;
}
return url . substr ( i , 5 ) . toLowerCase ( ) === 'data:' ;
}
function getPDFFileNameFromURL ( url ) {
var defaultFilename = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 'document.pdf' ;
if ( isDataSchema ( url ) ) {
console . warn ( 'getPDFFileNameFromURL: ' + 'ignoring "data:" URL for performance reasons.' ) ;
return defaultFilename ;
}
var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/ ;
var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i ;
var splitURI = reURI . exec ( url ) ;
var suggestedFilename = reFilename . exec ( splitURI [ 1 ] ) || reFilename . exec ( splitURI [ 2 ] ) || reFilename . exec ( splitURI [ 3 ] ) ;
if ( suggestedFilename ) {
suggestedFilename = suggestedFilename [ 0 ] ;
if ( suggestedFilename . includes ( '%' ) ) {
try {
suggestedFilename = reFilename . exec ( decodeURIComponent ( suggestedFilename ) ) [ 0 ] ;
} catch ( ex ) { }
}
}
return suggestedFilename || defaultFilename ;
}
function normalizeWheelEventDelta ( evt ) {
var delta = Math . sqrt ( evt . deltaX * evt . deltaX + evt . deltaY * evt . deltaY ) ;
var angle = Math . atan2 ( evt . deltaY , evt . deltaX ) ;
if ( - 0.25 * Math . PI < angle && angle < 0.75 * Math . PI ) {
delta = - delta ;
}
var MOUSE _DOM _DELTA _PIXEL _MODE = 0 ;
var MOUSE _DOM _DELTA _LINE _MODE = 1 ;
var MOUSE _PIXELS _PER _LINE = 30 ;
var MOUSE _LINES _PER _PAGE = 30 ;
if ( evt . deltaMode === MOUSE _DOM _DELTA _PIXEL _MODE ) {
delta /= MOUSE _PIXELS _PER _LINE * MOUSE _LINES _PER _PAGE ;
} else if ( evt . deltaMode === MOUSE _DOM _DELTA _LINE _MODE ) {
delta /= MOUSE _LINES _PER _PAGE ;
}
return delta ;
}
function isValidRotation ( angle ) {
return Number . isInteger ( angle ) && angle % 90 === 0 ;
}
function cloneObj ( obj ) {
var result = Object . create ( null ) ;
for ( var i in obj ) {
if ( Object . prototype . hasOwnProperty . call ( obj , i ) ) {
result [ i ] = obj [ i ] ;
}
}
return result ;
}
var WaitOnType = {
EVENT : 'event' ,
TIMEOUT : 'timeout'
} ;
function waitOnEventOrTimeout ( _ref ) {
var target = _ref . target ,
name = _ref . name ,
_ref$delay = _ref . delay ,
delay = _ref$delay === undefined ? 0 : _ref$delay ;
if ( ( typeof target === 'undefined' ? 'undefined' : _typeof ( target ) ) !== 'object' || ! ( name && typeof name === 'string' ) || ! ( Number . isInteger ( delay ) && delay >= 0 ) ) {
return Promise . reject ( new Error ( 'waitOnEventOrTimeout - invalid paramaters.' ) ) ;
}
var capability = ( 0 , _pdfjsLib . createPromiseCapability ) ( ) ;
function handler ( type ) {
if ( target instanceof EventBus ) {
target . off ( name , eventHandler ) ;
} else {
target . removeEventListener ( name , eventHandler ) ;
}
if ( timeout ) {
clearTimeout ( timeout ) ;
}
capability . resolve ( type ) ;
}
var eventHandler = handler . bind ( null , WaitOnType . EVENT ) ;
if ( target instanceof EventBus ) {
target . on ( name , eventHandler ) ;
} else {
target . addEventListener ( name , eventHandler ) ;
}
var timeoutHandler = handler . bind ( null , WaitOnType . TIMEOUT ) ;
var timeout = setTimeout ( timeoutHandler , delay ) ;
return capability . promise ;
}
var animationStarted = new Promise ( function ( resolve ) {
window . requestAnimationFrame ( resolve ) ;
} ) ;
var mozL10n = void 0 ;
var localized = Promise . resolve ( ) ;
var EventBus = function ( ) {
function EventBus ( ) {
_classCallCheck ( this , EventBus ) ;
this . _listeners = Object . create ( null ) ;
}
_createClass ( EventBus , [ {
key : 'on' ,
value : function on ( eventName , listener ) {
var eventListeners = this . _listeners [ eventName ] ;
if ( ! eventListeners ) {
eventListeners = [ ] ;
this . _listeners [ eventName ] = eventListeners ;
}
eventListeners . push ( listener ) ;
}
} , {
key : 'off' ,
value : function off ( eventName , listener ) {
var eventListeners = this . _listeners [ eventName ] ;
var i = void 0 ;
if ( ! eventListeners || ( i = eventListeners . indexOf ( listener ) ) < 0 ) {
return ;
}
eventListeners . splice ( i , 1 ) ;
}
} , {
key : 'dispatch' ,
value : function dispatch ( eventName ) {
var eventListeners = this . _listeners [ eventName ] ;
if ( ! eventListeners || eventListeners . length === 0 ) {
return ;
}
var args = Array . prototype . slice . call ( arguments , 1 ) ;
eventListeners . slice ( 0 ) . forEach ( function ( listener ) {
listener . apply ( null , args ) ;
} ) ;
}
} ] ) ;
return EventBus ;
} ( ) ;
function clamp ( v , min , max ) {
return Math . min ( Math . max ( v , min ) , max ) ;
}
var ProgressBar = function ( ) {
function ProgressBar ( id ) {
var _ref2 = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ,
height = _ref2 . height ,
width = _ref2 . width ,
units = _ref2 . units ;
_classCallCheck ( this , ProgressBar ) ;
this . visible = true ;
this . div = document . querySelector ( id + ' .progress' ) ;
this . bar = this . div . parentNode ;
this . height = height || 100 ;
this . width = width || 100 ;
this . units = units || '%' ;
this . div . style . height = this . height + this . units ;
this . percent = 0 ;
}
_createClass ( ProgressBar , [ {
key : '_updateBar' ,
value : function _updateBar ( ) {
if ( this . _indeterminate ) {
this . div . classList . add ( 'indeterminate' ) ;
this . div . style . width = this . width + this . units ;
return ;
}
this . div . classList . remove ( 'indeterminate' ) ;
var progressSize = this . width * this . _percent / 100 ;
this . div . style . width = progressSize + this . units ;
}
} , {
key : 'setWidth' ,
value : function setWidth ( viewer ) {
if ( ! viewer ) {
return ;
}
var container = viewer . parentNode ;
var scrollbarWidth = container . offsetWidth - viewer . offsetWidth ;
if ( scrollbarWidth > 0 ) {
this . bar . setAttribute ( 'style' , 'width: calc(100% - ' + scrollbarWidth + 'px);' ) ;
}
}
} , {
key : 'hide' ,
value : function hide ( ) {
if ( ! this . visible ) {
return ;
}
this . visible = false ;
this . bar . classList . add ( 'hidden' ) ;
document . body . classList . remove ( 'loadingInProgress' ) ;
}
} , {
key : 'show' ,
value : function show ( ) {
if ( this . visible ) {
return ;
}
this . visible = true ;
document . body . classList . add ( 'loadingInProgress' ) ;
this . bar . classList . remove ( 'hidden' ) ;
}
} , {
key : 'percent' ,
get : function get ( ) {
return this . _percent ;
} ,
set : function set ( val ) {
this . _indeterminate = isNaN ( val ) ;
this . _percent = clamp ( val , 0 , 100 ) ;
this . _updateBar ( ) ;
}
} ] ) ;
return ProgressBar ;
} ( ) ;
exports . CSS _UNITS = CSS _UNITS ;
exports . DEFAULT _SCALE _VALUE = DEFAULT _SCALE _VALUE ;
exports . DEFAULT _SCALE = DEFAULT _SCALE ;
exports . MIN _SCALE = MIN _SCALE ;
exports . MAX _SCALE = MAX _SCALE ;
exports . UNKNOWN _SCALE = UNKNOWN _SCALE ;
exports . MAX _AUTO _SCALE = MAX _AUTO _SCALE ;
exports . SCROLLBAR _PADDING = SCROLLBAR _PADDING ;
exports . VERTICAL _PADDING = VERTICAL _PADDING ;
exports . isValidRotation = isValidRotation ;
exports . isFileSchema = isFileSchema ;
exports . cloneObj = cloneObj ;
exports . PresentationModeState = PresentationModeState ;
exports . RendererType = RendererType ;
exports . TextLayerMode = TextLayerMode ;
exports . mozL10n = mozL10n ;
exports . NullL10n = NullL10n ;
exports . EventBus = EventBus ;
exports . ProgressBar = ProgressBar ;
exports . getPDFFileNameFromURL = getPDFFileNameFromURL ;
exports . noContextMenuHandler = noContextMenuHandler ;
exports . parseQueryString = parseQueryString ;
exports . getVisibleElements = getVisibleElements ;
exports . roundToDivide = roundToDivide ;
exports . approximateFraction = approximateFraction ;
exports . getOutputScale = getOutputScale ;
exports . scrollIntoView = scrollIntoView ;
exports . watchScroll = watchScroll ;
exports . binarySearchFirstItem = binarySearchFirstItem ;
exports . normalizeWheelEventDelta = normalizeWheelEventDelta ;
exports . animationStarted = animationStarted ;
exports . localized = localized ;
exports . WaitOnType = WaitOnType ;
exports . waitOnEventOrTimeout = waitOnEventOrTimeout ;
/***/ } ) ,
/* 2 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . getGlobalEventBus = exports . attachDOMEventsToEventBus = undefined ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
function attachDOMEventsToEventBus ( eventBus ) {
eventBus . on ( 'documentload' , function ( ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'documentload' , true , true , { } ) ;
window . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'pagerendered' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'pagerendered' , true , true , {
pageNumber : evt . pageNumber ,
cssTransform : evt . cssTransform
} ) ;
evt . source . div . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'textlayerrendered' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'textlayerrendered' , true , true , { pageNumber : evt . pageNumber } ) ;
evt . source . textLayerDiv . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'pagechange' , function ( evt ) {
var event = document . createEvent ( 'UIEvents' ) ;
event . initUIEvent ( 'pagechange' , true , true , window , 0 ) ;
event . pageNumber = evt . pageNumber ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'pagesinit' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'pagesinit' , true , true , null ) ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'pagesloaded' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'pagesloaded' , true , true , { pagesCount : evt . pagesCount } ) ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'scalechange' , function ( evt ) {
var event = document . createEvent ( 'UIEvents' ) ;
event . initUIEvent ( 'scalechange' , true , true , window , 0 ) ;
event . scale = evt . scale ;
event . presetValue = evt . presetValue ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'updateviewarea' , function ( evt ) {
var event = document . createEvent ( 'UIEvents' ) ;
event . initUIEvent ( 'updateviewarea' , true , true , window , 0 ) ;
event . location = evt . location ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'find' , function ( evt ) {
if ( evt . source === window ) {
return ;
}
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'find' + evt . type , true , true , {
query : evt . query ,
phraseSearch : evt . phraseSearch ,
caseSensitive : evt . caseSensitive ,
highlightAll : evt . highlightAll ,
findPrevious : evt . findPrevious
} ) ;
window . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'attachmentsloaded' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'attachmentsloaded' , true , true , { attachmentsCount : evt . attachmentsCount } ) ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'sidebarviewchanged' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'sidebarviewchanged' , true , true , { view : evt . view } ) ;
evt . source . outerContainer . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'pagemode' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'pagemode' , true , true , { mode : evt . mode } ) ;
evt . source . pdfViewer . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'namedaction' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'namedaction' , true , true , { action : evt . action } ) ;
evt . source . pdfViewer . container . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'presentationmodechanged' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'presentationmodechanged' , true , true , {
active : evt . active ,
switchInProgress : evt . switchInProgress
} ) ;
window . dispatchEvent ( event ) ;
} ) ;
eventBus . on ( 'outlineloaded' , function ( evt ) {
var event = document . createEvent ( 'CustomEvent' ) ;
event . initCustomEvent ( 'outlineloaded' , true , true , { outlineCount : evt . outlineCount } ) ;
evt . source . container . dispatchEvent ( event ) ;
} ) ;
}
var globalEventBus = null ;
function getGlobalEventBus ( ) {
if ( globalEventBus ) {
return globalEventBus ;
}
globalEventBus = new _ui _utils . EventBus ( ) ;
attachDOMEventsToEventBus ( globalEventBus ) ;
return globalEventBus ;
}
exports . attachDOMEventsToEventBus = attachDOMEventsToEventBus ;
exports . getGlobalEventBus = getGlobalEventBus ;
/***/ } ) ,
/* 3 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . SimpleLinkService = exports . PDFLinkService = undefined ;
var _typeof = typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ? function ( obj ) { return typeof obj ; } : function ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _dom _events = _ _w _pdfjs _require _ _ ( 2 ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var PDFLinkService = function ( ) {
function PDFLinkService ( ) {
var _ref = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ,
eventBus = _ref . eventBus ,
_ref$externalLinkTarg = _ref . externalLinkTarget ,
externalLinkTarget = _ref$externalLinkTarg === undefined ? null : _ref$externalLinkTarg ,
_ref$externalLinkRel = _ref . externalLinkRel ,
externalLinkRel = _ref$externalLinkRel === undefined ? null : _ref$externalLinkRel ;
_classCallCheck ( this , PDFLinkService ) ;
this . eventBus = eventBus || ( 0 , _dom _events . getGlobalEventBus ) ( ) ;
this . externalLinkTarget = externalLinkTarget ;
this . externalLinkRel = externalLinkRel ;
this . baseUrl = null ;
this . pdfDocument = null ;
this . pdfViewer = null ;
this . pdfHistory = null ;
this . _pagesRefCache = null ;
}
_createClass ( PDFLinkService , [ {
key : 'setDocument' ,
value : function setDocument ( pdfDocument , baseUrl ) {
this . baseUrl = baseUrl ;
this . pdfDocument = pdfDocument ;
this . _pagesRefCache = Object . create ( null ) ;
}
} , {
key : 'setViewer' ,
value : function setViewer ( pdfViewer ) {
this . pdfViewer = pdfViewer ;
}
} , {
key : 'setHistory' ,
value : function setHistory ( pdfHistory ) {
this . pdfHistory = pdfHistory ;
}
} , {
key : 'navigateTo' ,
value : function navigateTo ( dest ) {
var _this = this ;
var goToDestination = function goToDestination ( _ref2 ) {
var namedDest = _ref2 . namedDest ,
explicitDest = _ref2 . explicitDest ;
var destRef = explicitDest [ 0 ] ,
pageNumber = void 0 ;
if ( destRef instanceof Object ) {
pageNumber = _this . _cachedPageNumber ( destRef ) ;
if ( pageNumber === null ) {
_this . pdfDocument . getPageIndex ( destRef ) . then ( function ( pageIndex ) {
_this . cachePageRef ( pageIndex + 1 , destRef ) ;
goToDestination ( {
namedDest : namedDest ,
explicitDest : explicitDest
} ) ;
} ) . catch ( function ( ) {
console . error ( 'PDFLinkService.navigateTo: "' + destRef + '" is not ' + ( 'a valid page reference, for dest="' + dest + '".' ) ) ;
} ) ;
return ;
}
} else if ( Number . isInteger ( destRef ) ) {
pageNumber = destRef + 1 ;
} else {
console . error ( 'PDFLinkService.navigateTo: "' + destRef + '" is not ' + ( 'a valid destination reference, for dest="' + dest + '".' ) ) ;
return ;
}
if ( ! pageNumber || pageNumber < 1 || pageNumber > _this . pagesCount ) {
console . error ( 'PDFLinkService.navigateTo: "' + pageNumber + '" is not ' + ( 'a valid page number, for dest="' + dest + '".' ) ) ;
return ;
}
if ( _this . pdfHistory ) {
_this . pdfHistory . pushCurrentPosition ( ) ;
_this . pdfHistory . push ( {
namedDest : namedDest ,
explicitDest : explicitDest ,
pageNumber : pageNumber
} ) ;
}
_this . pdfViewer . scrollPageIntoView ( {
pageNumber : pageNumber ,
destArray : explicitDest
} ) ;
} ;
new Promise ( function ( resolve , reject ) {
if ( typeof dest === 'string' ) {
_this . pdfDocument . getDestination ( dest ) . then ( function ( destArray ) {
resolve ( {
namedDest : dest ,
explicitDest : destArray
} ) ;
} ) ;
return ;
}
resolve ( {
namedDest : '' ,
explicitDest : dest
} ) ;
} ) . then ( function ( data ) {
if ( ! ( data . explicitDest instanceof Array ) ) {
console . error ( 'PDFLinkService.navigateTo: "' + data . explicitDest + '" is' + ( ' not a valid destination array, for dest="' + dest + '".' ) ) ;
return ;
}
goToDestination ( data ) ;
} ) ;
}
} , {
key : 'getDestinationHash' ,
value : function getDestinationHash ( dest ) {
if ( typeof dest === 'string' ) {
return this . getAnchorUrl ( '#' + escape ( dest ) ) ;
}
if ( dest instanceof Array ) {
var str = JSON . stringify ( dest ) ;
return this . getAnchorUrl ( '#' + escape ( str ) ) ;
}
return this . getAnchorUrl ( '' ) ;
}
} , {
key : 'getAnchorUrl' ,
value : function getAnchorUrl ( anchor ) {
return ( this . baseUrl || '' ) + anchor ;
}
} , {
key : 'setHash' ,
value : function setHash ( hash ) {
var pageNumber = void 0 ,
dest = void 0 ;
if ( hash . includes ( '=' ) ) {
var params = ( 0 , _ui _utils . parseQueryString ) ( hash ) ;
if ( 'search' in params ) {
this . eventBus . dispatch ( 'findfromurlhash' , {
source : this ,
query : params [ 'search' ] . replace ( /"/g , '' ) ,
phraseSearch : params [ 'phrase' ] === 'true'
} ) ;
}
if ( 'nameddest' in params ) {
this . navigateTo ( params . nameddest ) ;
return ;
}
if ( 'page' in params ) {
pageNumber = params . page | 0 || 1 ;
}
if ( 'zoom' in params ) {
var zoomArgs = params . zoom . split ( ',' ) ;
var zoomArg = zoomArgs [ 0 ] ;
var zoomArgNumber = parseFloat ( zoomArg ) ;
if ( ! zoomArg . includes ( 'Fit' ) ) {
dest = [ null , { name : 'XYZ' } , zoomArgs . length > 1 ? zoomArgs [ 1 ] | 0 : null , zoomArgs . length > 2 ? zoomArgs [ 2 ] | 0 : null , zoomArgNumber ? zoomArgNumber / 100 : zoomArg ] ;
} else {
if ( zoomArg === 'Fit' || zoomArg === 'FitB' ) {
dest = [ null , { name : zoomArg } ] ;
} else if ( zoomArg === 'FitH' || zoomArg === 'FitBH' || zoomArg === 'FitV' || zoomArg === 'FitBV' ) {
dest = [ null , { name : zoomArg } , zoomArgs . length > 1 ? zoomArgs [ 1 ] | 0 : null ] ;
} else if ( zoomArg === 'FitR' ) {
if ( zoomArgs . length !== 5 ) {
console . error ( 'PDFLinkService.setHash: Not enough parameters for "FitR".' ) ;
} else {
dest = [ null , { name : zoomArg } , zoomArgs [ 1 ] | 0 , zoomArgs [ 2 ] | 0 , zoomArgs [ 3 ] | 0 , zoomArgs [ 4 ] | 0 ] ;
}
} else {
console . error ( 'PDFLinkService.setHash: "' + zoomArg + '" is not ' + 'a valid zoom value.' ) ;
}
}
}
if ( dest ) {
this . pdfViewer . scrollPageIntoView ( {
pageNumber : pageNumber || this . page ,
destArray : dest ,
allowNegativeOffset : true
} ) ;
} else if ( pageNumber ) {
this . page = pageNumber ;
}
if ( 'pagemode' in params ) {
this . eventBus . dispatch ( 'pagemode' , {
source : this ,
mode : params . pagemode
} ) ;
}
} else {
dest = unescape ( hash ) ;
try {
dest = JSON . parse ( dest ) ;
if ( ! ( dest instanceof Array ) ) {
dest = dest . toString ( ) ;
}
} catch ( ex ) { }
if ( typeof dest === 'string' || isValidExplicitDestination ( dest ) ) {
this . navigateTo ( dest ) ;
return ;
}
console . error ( 'PDFLinkService.setHash: "' + unescape ( hash ) + '" is not ' + 'a valid destination.' ) ;
}
}
} , {
key : 'executeNamedAction' ,
value : function executeNamedAction ( action ) {
switch ( action ) {
case 'GoBack' :
if ( this . pdfHistory ) {
this . pdfHistory . back ( ) ;
}
break ;
case 'GoForward' :
if ( this . pdfHistory ) {
this . pdfHistory . forward ( ) ;
}
break ;
case 'NextPage' :
if ( this . page < this . pagesCount ) {
this . page ++ ;
}
break ;
case 'PrevPage' :
if ( this . page > 1 ) {
this . page -- ;
}
break ;
case 'LastPage' :
this . page = this . pagesCount ;
break ;
case 'FirstPage' :
this . page = 1 ;
break ;
default :
break ;
}
this . eventBus . dispatch ( 'namedaction' , {
source : this ,
action : action
} ) ;
}
} , {
key : 'onFileAttachmentAnnotation' ,
value : function onFileAttachmentAnnotation ( _ref3 ) {
var id = _ref3 . id ,
filename = _ref3 . filename ,
content = _ref3 . content ;
this . eventBus . dispatch ( 'fileattachmentannotation' , {
source : this ,
id : id ,
filename : filename ,
content : content
} ) ;
}
} , {
key : 'cachePageRef' ,
value : function cachePageRef ( pageNum , pageRef ) {
var refStr = pageRef . num + ' ' + pageRef . gen + ' R' ;
this . _pagesRefCache [ refStr ] = pageNum ;
}
} , {
key : '_cachedPageNumber' ,
value : function _cachedPageNumber ( pageRef ) {
var refStr = pageRef . num + ' ' + pageRef . gen + ' R' ;
return this . _pagesRefCache && this . _pagesRefCache [ refStr ] || null ;
}
} , {
key : 'pagesCount' ,
get : function get ( ) {
return this . pdfDocument ? this . pdfDocument . numPages : 0 ;
}
} , {
key : 'page' ,
get : function get ( ) {
return this . pdfViewer . currentPageNumber ;
} ,
set : function set ( value ) {
this . pdfViewer . currentPageNumber = value ;
}
} , {
key : 'rotation' ,
get : function get ( ) {
return this . pdfViewer . pagesRotation ;
} ,
set : function set ( value ) {
this . pdfViewer . pagesRotation = value ;
}
} ] ) ;
return PDFLinkService ;
} ( ) ;
function isValidExplicitDestination ( dest ) {
if ( ! ( dest instanceof Array ) ) {
return false ;
}
var destLength = dest . length ,
allowNull = true ;
if ( destLength < 2 ) {
return false ;
}
var page = dest [ 0 ] ;
if ( ! ( ( typeof page === 'undefined' ? 'undefined' : _typeof ( page ) ) === 'object' && Number . isInteger ( page . num ) && Number . isInteger ( page . gen ) ) && ! ( Number . isInteger ( page ) && page >= 0 ) ) {
return false ;
}
var zoom = dest [ 1 ] ;
if ( ! ( ( typeof zoom === 'undefined' ? 'undefined' : _typeof ( zoom ) ) === 'object' && typeof zoom . name === 'string' ) ) {
return false ;
}
switch ( zoom . name ) {
case 'XYZ' :
if ( destLength !== 5 ) {
return false ;
}
break ;
case 'Fit' :
case 'FitB' :
return destLength === 2 ;
case 'FitH' :
case 'FitBH' :
case 'FitV' :
case 'FitBV' :
if ( destLength !== 3 ) {
return false ;
}
break ;
case 'FitR' :
if ( destLength !== 6 ) {
return false ;
}
allowNull = false ;
break ;
default :
return false ;
}
for ( var i = 2 ; i < destLength ; i ++ ) {
var param = dest [ i ] ;
if ( ! ( typeof param === 'number' || allowNull && param === null ) ) {
return false ;
}
}
return true ;
}
var SimpleLinkService = function ( ) {
function SimpleLinkService ( ) {
_classCallCheck ( this , SimpleLinkService ) ;
this . externalLinkTarget = null ;
this . externalLinkRel = null ;
}
_createClass ( SimpleLinkService , [ {
key : 'navigateTo' ,
value : function navigateTo ( dest ) { }
} , {
key : 'getDestinationHash' ,
value : function getDestinationHash ( dest ) {
return '#' ;
}
} , {
key : 'getAnchorUrl' ,
value : function getAnchorUrl ( hash ) {
return '#' ;
}
} , {
key : 'setHash' ,
value : function setHash ( hash ) { }
} , {
key : 'executeNamedAction' ,
value : function executeNamedAction ( action ) { }
} , {
key : 'onFileAttachmentAnnotation' ,
value : function onFileAttachmentAnnotation ( _ref4 ) {
var id = _ref4 . id ,
filename = _ref4 . filename ,
content = _ref4 . content ;
}
} , {
key : 'cachePageRef' ,
value : function cachePageRef ( pageNum , pageRef ) { }
} , {
key : 'page' ,
get : function get ( ) {
return 0 ;
} ,
set : function set ( value ) { }
} , {
key : 'rotation' ,
get : function get ( ) {
return 0 ;
} ,
set : function set ( value ) { }
} ] ) ;
return SimpleLinkService ;
} ( ) ;
exports . PDFLinkService = PDFLinkService ;
exports . SimpleLinkService = SimpleLinkService ;
/***/ } ) ,
/* 4 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . DefaultAnnotationLayerFactory = exports . AnnotationLayerBuilder = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _pdf _link _service = _ _w _pdfjs _require _ _ ( 3 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var AnnotationLayerBuilder = function ( ) {
function AnnotationLayerBuilder ( _ref ) {
var pageDiv = _ref . pageDiv ,
pdfPage = _ref . pdfPage ,
linkService = _ref . linkService ,
downloadManager = _ref . downloadManager ,
_ref$imageResourcesPa = _ref . imageResourcesPath ,
imageResourcesPath = _ref$imageResourcesPa === undefined ? '' : _ref$imageResourcesPa ,
_ref$renderInteractiv = _ref . renderInteractiveForms ,
renderInteractiveForms = _ref$renderInteractiv === undefined ? false : _ref$renderInteractiv ,
_ref$l10n = _ref . l10n ,
l10n = _ref$l10n === undefined ? _ui _utils . NullL10n : _ref$l10n ;
_classCallCheck ( this , AnnotationLayerBuilder ) ;
this . pageDiv = pageDiv ;
this . pdfPage = pdfPage ;
this . linkService = linkService ;
this . downloadManager = downloadManager ;
this . imageResourcesPath = imageResourcesPath ;
this . renderInteractiveForms = renderInteractiveForms ;
this . l10n = l10n ;
this . div = null ;
this . _cancelled = false ;
}
_createClass ( AnnotationLayerBuilder , [ {
key : 'render' ,
value : function render ( viewport ) {
var _this = this ;
var intent = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 'display' ;
this . pdfPage . getAnnotations ( { intent : intent } ) . then ( function ( annotations ) {
if ( _this . _cancelled ) {
return ;
}
var parameters = {
viewport : viewport . clone ( { dontFlip : true } ) ,
div : _this . div ,
annotations : annotations ,
page : _this . pdfPage ,
imageResourcesPath : _this . imageResourcesPath ,
renderInteractiveForms : _this . renderInteractiveForms ,
linkService : _this . linkService ,
downloadManager : _this . downloadManager
} ;
if ( _this . div ) {
_pdfjsLib . AnnotationLayer . update ( parameters ) ;
} else {
if ( annotations . length === 0 ) {
return ;
}
_this . div = document . createElement ( 'div' ) ;
_this . div . className = 'annotationLayer' ;
_this . pageDiv . appendChild ( _this . div ) ;
parameters . div = _this . div ;
_pdfjsLib . AnnotationLayer . render ( parameters ) ;
_this . l10n . translate ( _this . div ) ;
}
} ) ;
}
} , {
key : 'cancel' ,
value : function cancel ( ) {
this . _cancelled = true ;
}
} , {
key : 'hide' ,
value : function hide ( ) {
if ( ! this . div ) {
return ;
}
this . div . setAttribute ( 'hidden' , 'true' ) ;
}
} ] ) ;
return AnnotationLayerBuilder ;
} ( ) ;
var DefaultAnnotationLayerFactory = function ( ) {
function DefaultAnnotationLayerFactory ( ) {
_classCallCheck ( this , DefaultAnnotationLayerFactory ) ;
}
_createClass ( DefaultAnnotationLayerFactory , [ {
key : 'createAnnotationLayerBuilder' ,
value : function createAnnotationLayerBuilder ( pageDiv , pdfPage ) {
var imageResourcesPath = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : '' ;
var renderInteractiveForms = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
var l10n = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : _ui _utils . NullL10n ;
return new AnnotationLayerBuilder ( {
pageDiv : pageDiv ,
pdfPage : pdfPage ,
imageResourcesPath : imageResourcesPath ,
renderInteractiveForms : renderInteractiveForms ,
linkService : new _pdf _link _service . SimpleLinkService ( ) ,
l10n : l10n
} ) ;
}
} ] ) ;
return DefaultAnnotationLayerFactory ;
} ( ) ;
exports . AnnotationLayerBuilder = AnnotationLayerBuilder ;
exports . DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory ;
/***/ } ) ,
/* 5 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . DefaultTextLayerFactory = exports . TextLayerBuilder = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _dom _events = _ _w _pdfjs _require _ _ ( 2 ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var EXPAND _DIVS _TIMEOUT = 300 ;
var TextLayerBuilder = function ( ) {
function TextLayerBuilder ( _ref ) {
var textLayerDiv = _ref . textLayerDiv ,
eventBus = _ref . eventBus ,
pageIndex = _ref . pageIndex ,
viewport = _ref . viewport ,
_ref$findController = _ref . findController ,
findController = _ref$findController === undefined ? null : _ref$findController ,
_ref$enhanceTextSelec = _ref . enhanceTextSelection ,
enhanceTextSelection = _ref$enhanceTextSelec === undefined ? false : _ref$enhanceTextSelec ;
_classCallCheck ( this , TextLayerBuilder ) ;
this . textLayerDiv = textLayerDiv ;
this . eventBus = eventBus || ( 0 , _dom _events . getGlobalEventBus ) ( ) ;
this . textContent = null ;
this . textContentItemsStr = [ ] ;
this . textContentStream = null ;
this . renderingDone = false ;
this . pageIdx = pageIndex ;
this . pageNumber = this . pageIdx + 1 ;
this . matches = [ ] ;
this . viewport = viewport ;
this . textDivs = [ ] ;
this . findController = findController ;
this . textLayerRenderTask = null ;
this . enhanceTextSelection = enhanceTextSelection ;
this . _bindMouse ( ) ;
}
_createClass ( TextLayerBuilder , [ {
key : '_finishRendering' ,
value : function _finishRendering ( ) {
this . renderingDone = true ;
if ( ! this . enhanceTextSelection ) {
var endOfContent = document . createElement ( 'div' ) ;
endOfContent . className = 'endOfContent' ;
this . textLayerDiv . appendChild ( endOfContent ) ;
}
this . eventBus . dispatch ( 'textlayerrendered' , {
source : this ,
pageNumber : this . pageNumber ,
numTextDivs : this . textDivs . length
} ) ;
}
} , {
key : 'render' ,
value : function render ( ) {
var _this = this ;
var timeout = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : 0 ;
if ( ! ( this . textContent || this . textContentStream ) || this . renderingDone ) {
return ;
}
this . cancel ( ) ;
this . textDivs = [ ] ;
var textLayerFrag = document . createDocumentFragment ( ) ;
this . textLayerRenderTask = ( 0 , _pdfjsLib . renderTextLayer ) ( {
textContent : this . textContent ,
textContentStream : this . textContentStream ,
container : textLayerFrag ,
viewport : this . viewport ,
textDivs : this . textDivs ,
textContentItemsStr : this . textContentItemsStr ,
timeout : timeout ,
enhanceTextSelection : this . enhanceTextSelection
} ) ;
this . textLayerRenderTask . promise . then ( function ( ) {
_this . textLayerDiv . appendChild ( textLayerFrag ) ;
_this . _finishRendering ( ) ;
_this . updateMatches ( ) ;
} , function ( reason ) { } ) ;
}
} , {
key : 'cancel' ,
value : function cancel ( ) {
if ( this . textLayerRenderTask ) {
this . textLayerRenderTask . cancel ( ) ;
this . textLayerRenderTask = null ;
}
}
} , {
key : 'setTextContentStream' ,
value : function setTextContentStream ( readableStream ) {
this . cancel ( ) ;
this . textContentStream = readableStream ;
}
} , {
key : 'setTextContent' ,
value : function setTextContent ( textContent ) {
this . cancel ( ) ;
this . textContent = textContent ;
}
} , {
key : 'convertMatches' ,
value : function convertMatches ( matches , matchesLength ) {
var i = 0 ;
var iIndex = 0 ;
var textContentItemsStr = this . textContentItemsStr ;
var end = textContentItemsStr . length - 1 ;
var queryLen = this . findController === null ? 0 : this . findController . state . query . length ;
var ret = [ ] ;
if ( ! matches ) {
return ret ;
}
for ( var m = 0 , len = matches . length ; m < len ; m ++ ) {
var matchIdx = matches [ m ] ;
while ( i !== end && matchIdx >= iIndex + textContentItemsStr [ i ] . length ) {
iIndex += textContentItemsStr [ i ] . length ;
i ++ ;
}
if ( i === textContentItemsStr . length ) {
console . error ( 'Could not find a matching mapping' ) ;
}
var match = {
begin : {
divIdx : i ,
offset : matchIdx - iIndex
}
} ;
if ( matchesLength ) {
matchIdx += matchesLength [ m ] ;
} else {
matchIdx += queryLen ;
}
while ( i !== end && matchIdx > iIndex + textContentItemsStr [ i ] . length ) {
iIndex += textContentItemsStr [ i ] . length ;
i ++ ;
}
match . end = {
divIdx : i ,
offset : matchIdx - iIndex
} ;
ret . push ( match ) ;
}
return ret ;
}
} , {
key : 'renderMatches' ,
value : function renderMatches ( matches ) {
if ( matches . length === 0 ) {
return ;
}
var textContentItemsStr = this . textContentItemsStr ;
var textDivs = this . textDivs ;
var prevEnd = null ;
var pageIdx = this . pageIdx ;
var isSelectedPage = this . findController === null ? false : pageIdx === this . findController . selected . pageIdx ;
var selectedMatchIdx = this . findController === null ? - 1 : this . findController . selected . matchIdx ;
var highlightAll = this . findController === null ? false : this . findController . state . highlightAll ;
var infinity = {
divIdx : - 1 ,
offset : undefined
} ;
function beginText ( begin , className ) {
var divIdx = begin . divIdx ;
textDivs [ divIdx ] . textContent = '' ;
appendTextToDiv ( divIdx , 0 , begin . offset , className ) ;
}
function appendTextToDiv ( divIdx , fromOffset , toOffset , className ) {
var div = textDivs [ divIdx ] ;
var content = textContentItemsStr [ divIdx ] . substring ( fromOffset , toOffset ) ;
var node = document . createTextNode ( content ) ;
if ( className ) {
var span = document . createElement ( 'span' ) ;
span . className = className ;
span . appendChild ( node ) ;
div . appendChild ( span ) ;
return ;
}
div . appendChild ( node ) ;
}
var i0 = selectedMatchIdx ,
i1 = i0 + 1 ;
if ( highlightAll ) {
i0 = 0 ;
i1 = matches . length ;
} else if ( ! isSelectedPage ) {
return ;
}
for ( var i = i0 ; i < i1 ; i ++ ) {
var match = matches [ i ] ;
var begin = match . begin ;
var end = match . end ;
var isSelected = isSelectedPage && i === selectedMatchIdx ;
var highlightSuffix = isSelected ? ' selected' : '' ;
if ( this . findController ) {
this . findController . updateMatchPosition ( pageIdx , i , textDivs , begin . divIdx ) ;
}
if ( ! prevEnd || begin . divIdx !== prevEnd . divIdx ) {
if ( prevEnd !== null ) {
appendTextToDiv ( prevEnd . divIdx , prevEnd . offset , infinity . offset ) ;
}
beginText ( begin ) ;
} else {
appendTextToDiv ( prevEnd . divIdx , prevEnd . offset , begin . offset ) ;
}
if ( begin . divIdx === end . divIdx ) {
appendTextToDiv ( begin . divIdx , begin . offset , end . offset , 'highlight' + highlightSuffix ) ;
} else {
appendTextToDiv ( begin . divIdx , begin . offset , infinity . offset , 'highlight begin' + highlightSuffix ) ;
for ( var n0 = begin . divIdx + 1 , n1 = end . divIdx ; n0 < n1 ; n0 ++ ) {
textDivs [ n0 ] . className = 'highlight middle' + highlightSuffix ;
}
beginText ( end , 'highlight end' + highlightSuffix ) ;
}
prevEnd = end ;
}
if ( prevEnd ) {
appendTextToDiv ( prevEnd . divIdx , prevEnd . offset , infinity . offset ) ;
}
}
} , {
key : 'updateMatches' ,
value : function updateMatches ( ) {
if ( ! this . renderingDone ) {
return ;
}
var matches = this . matches ;
var textDivs = this . textDivs ;
var textContentItemsStr = this . textContentItemsStr ;
var clearedUntilDivIdx = - 1 ;
for ( var i = 0 , len = matches . length ; i < len ; i ++ ) {
var match = matches [ i ] ;
var begin = Math . max ( clearedUntilDivIdx , match . begin . divIdx ) ;
for ( var n = begin , end = match . end . divIdx ; n <= end ; n ++ ) {
var div = textDivs [ n ] ;
div . textContent = textContentItemsStr [ n ] ;
div . className = '' ;
}
clearedUntilDivIdx = match . end . divIdx + 1 ;
}
if ( this . findController === null || ! this . findController . active ) {
return ;
}
var pageMatches = void 0 ,
pageMatchesLength = void 0 ;
if ( this . findController !== null ) {
pageMatches = this . findController . pageMatches [ this . pageIdx ] || null ;
pageMatchesLength = this . findController . pageMatchesLength ? this . findController . pageMatchesLength [ this . pageIdx ] || null : null ;
}
this . matches = this . convertMatches ( pageMatches , pageMatchesLength ) ;
this . renderMatches ( this . matches ) ;
}
} , {
key : '_bindMouse' ,
value : function _bindMouse ( ) {
var _this2 = this ;
var div = this . textLayerDiv ;
var expandDivsTimer = null ;
div . addEventListener ( 'mousedown' , function ( evt ) {
if ( _this2 . enhanceTextSelection && _this2 . textLayerRenderTask ) {
_this2 . textLayerRenderTask . expandTextDivs ( true ) ;
if ( expandDivsTimer ) {
clearTimeout ( expandDivsTimer ) ;
expandDivsTimer = null ;
}
return ;
}
var end = div . querySelector ( '.endOfContent' ) ;
if ( ! end ) {
return ;
}
var adjustTop = evt . target !== div ;
adjustTop = adjustTop && window . getComputedStyle ( end ) . getPropertyValue ( '-moz-user-select' ) !== 'none' ;
if ( adjustTop ) {
var divBounds = div . getBoundingClientRect ( ) ;
var r = Math . max ( 0 , ( evt . pageY - divBounds . top ) / divBounds . height ) ;
end . style . top = ( r * 100 ) . toFixed ( 2 ) + '%' ;
}
end . classList . add ( 'active' ) ;
} ) ;
div . addEventListener ( 'mouseup' , function ( ) {
if ( _this2 . enhanceTextSelection && _this2 . textLayerRenderTask ) {
expandDivsTimer = setTimeout ( function ( ) {
if ( _this2 . textLayerRenderTask ) {
_this2 . textLayerRenderTask . expandTextDivs ( false ) ;
}
expandDivsTimer = null ;
} , EXPAND _DIVS _TIMEOUT ) ;
return ;
}
var end = div . querySelector ( '.endOfContent' ) ;
if ( ! end ) {
return ;
}
end . style . top = '' ;
end . classList . remove ( 'active' ) ;
} ) ;
}
} ] ) ;
return TextLayerBuilder ;
} ( ) ;
var DefaultTextLayerFactory = function ( ) {
function DefaultTextLayerFactory ( ) {
_classCallCheck ( this , DefaultTextLayerFactory ) ;
}
_createClass ( DefaultTextLayerFactory , [ {
key : 'createTextLayerBuilder' ,
value : function createTextLayerBuilder ( textLayerDiv , pageIndex , viewport ) {
var enhanceTextSelection = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
return new TextLayerBuilder ( {
textLayerDiv : textLayerDiv ,
pageIndex : pageIndex ,
viewport : viewport ,
enhanceTextSelection : enhanceTextSelection
} ) ;
}
} ] ) ;
return DefaultTextLayerFactory ;
} ( ) ;
exports . TextLayerBuilder = TextLayerBuilder ;
exports . DefaultTextLayerFactory = DefaultTextLayerFactory ;
/***/ } ) ,
/* 6 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . PDFPageView = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
var _dom _events = _ _w _pdfjs _require _ _ ( 2 ) ;
var _pdf _rendering _queue = _ _w _pdfjs _require _ _ ( 7 ) ;
var _viewer _compatibility = _ _w _pdfjs _require _ _ ( 15 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var MAX _CANVAS _PIXELS = _viewer _compatibility . viewerCompatibilityParams . maxCanvasPixels || 16777216 ;
var PDFPageView = function ( ) {
function PDFPageView ( options ) {
_classCallCheck ( this , PDFPageView ) ;
var container = options . container ;
var defaultViewport = options . defaultViewport ;
this . id = options . id ;
this . renderingId = 'page' + this . id ;
this . pdfPage = null ;
this . pageLabel = null ;
this . rotation = 0 ;
this . scale = options . scale || _ui _utils . DEFAULT _SCALE ;
this . viewport = defaultViewport ;
this . pdfPageRotate = defaultViewport . rotation ;
this . hasRestrictedScaling = false ;
this . textLayerMode = Number . isInteger ( options . textLayerMode ) ? options . textLayerMode : _ui _utils . TextLayerMode . ENABLE ;
this . imageResourcesPath = options . imageResourcesPath || '' ;
this . renderInteractiveForms = options . renderInteractiveForms || false ;
this . useOnlyCssZoom = options . useOnlyCssZoom || false ;
this . maxCanvasPixels = options . maxCanvasPixels || MAX _CANVAS _PIXELS ;
this . eventBus = options . eventBus || ( 0 , _dom _events . getGlobalEventBus ) ( ) ;
this . renderingQueue = options . renderingQueue ;
this . textLayerFactory = options . textLayerFactory ;
this . annotationLayerFactory = options . annotationLayerFactory ;
this . renderer = options . renderer || _ui _utils . RendererType . CANVAS ;
this . enableWebGL = options . enableWebGL || false ;
this . l10n = options . l10n || _ui _utils . NullL10n ;
this . paintTask = null ;
this . paintedViewportMap = new WeakMap ( ) ;
this . renderingState = _pdf _rendering _queue . RenderingStates . INITIAL ;
this . resume = null ;
this . error = null ;
this . onBeforeDraw = null ;
this . onAfterDraw = null ;
this . annotationLayer = null ;
this . textLayer = null ;
this . zoomLayer = null ;
var div = document . createElement ( 'div' ) ;
div . className = 'page' ;
div . style . width = Math . floor ( this . viewport . width ) + 'px' ;
div . style . height = Math . floor ( this . viewport . height ) + 'px' ;
div . setAttribute ( 'data-page-number' , this . id ) ;
this . div = div ;
container . appendChild ( div ) ;
}
_createClass ( PDFPageView , [ {
key : 'setPdfPage' ,
value : function setPdfPage ( pdfPage ) {
this . pdfPage = pdfPage ;
this . pdfPageRotate = pdfPage . rotate ;
var totalRotation = ( this . rotation + this . pdfPageRotate ) % 360 ;
this . viewport = pdfPage . getViewport ( this . scale * _ui _utils . CSS _UNITS , totalRotation ) ;
this . stats = pdfPage . stats ;
this . reset ( ) ;
}
} , {
key : 'destroy' ,
value : function destroy ( ) {
this . reset ( ) ;
if ( this . pdfPage ) {
this . pdfPage . cleanup ( ) ;
}
}
} , {
key : '_resetZoomLayer' ,
value : function _resetZoomLayer ( ) {
var removeFromDOM = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : false ;
if ( ! this . zoomLayer ) {
return ;
}
var zoomLayerCanvas = this . zoomLayer . firstChild ;
this . paintedViewportMap . delete ( zoomLayerCanvas ) ;
zoomLayerCanvas . width = 0 ;
zoomLayerCanvas . height = 0 ;
if ( removeFromDOM ) {
this . zoomLayer . remove ( ) ;
}
this . zoomLayer = null ;
}
} , {
key : 'reset' ,
value : function reset ( ) {
var keepZoomLayer = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : false ;
var keepAnnotations = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
this . cancelRendering ( keepAnnotations ) ;
var div = this . div ;
div . style . width = Math . floor ( this . viewport . width ) + 'px' ;
div . style . height = Math . floor ( this . viewport . height ) + 'px' ;
var childNodes = div . childNodes ;
var currentZoomLayerNode = keepZoomLayer && this . zoomLayer || null ;
var currentAnnotationNode = keepAnnotations && this . annotationLayer && this . annotationLayer . div || null ;
for ( var i = childNodes . length - 1 ; i >= 0 ; i -- ) {
var node = childNodes [ i ] ;
if ( currentZoomLayerNode === node || currentAnnotationNode === node ) {
continue ;
}
div . removeChild ( node ) ;
}
div . removeAttribute ( 'data-loaded' ) ;
if ( currentAnnotationNode ) {
this . annotationLayer . hide ( ) ;
} else if ( this . annotationLayer ) {
this . annotationLayer . cancel ( ) ;
this . annotationLayer = null ;
}
if ( ! currentZoomLayerNode ) {
if ( this . canvas ) {
this . paintedViewportMap . delete ( this . canvas ) ;
this . canvas . width = 0 ;
this . canvas . height = 0 ;
delete this . canvas ;
}
this . _resetZoomLayer ( ) ;
}
if ( this . svg ) {
this . paintedViewportMap . delete ( this . svg ) ;
delete this . svg ;
}
this . loadingIconDiv = document . createElement ( 'div' ) ;
this . loadingIconDiv . className = 'loadingIcon' ;
div . appendChild ( this . loadingIconDiv ) ;
}
} , {
key : 'update' ,
value : function update ( scale , rotation ) {
this . scale = scale || this . scale ;
if ( typeof rotation !== 'undefined' ) {
this . rotation = rotation ;
}
var totalRotation = ( this . rotation + this . pdfPageRotate ) % 360 ;
this . viewport = this . viewport . clone ( {
scale : this . scale * _ui _utils . CSS _UNITS ,
rotation : totalRotation
} ) ;
if ( this . svg ) {
this . cssTransform ( this . svg , true ) ;
this . eventBus . dispatch ( 'pagerendered' , {
source : this ,
pageNumber : this . id ,
cssTransform : true
} ) ;
return ;
}
var isScalingRestricted = false ;
if ( this . canvas && this . maxCanvasPixels > 0 ) {
var outputScale = this . outputScale ;
if ( ( Math . floor ( this . viewport . width ) * outputScale . sx | 0 ) * ( Math . floor ( this . viewport . height ) * outputScale . sy | 0 ) > this . maxCanvasPixels ) {
isScalingRestricted = true ;
}
}
if ( this . canvas ) {
if ( this . useOnlyCssZoom || this . hasRestrictedScaling && isScalingRestricted ) {
this . cssTransform ( this . canvas , true ) ;
this . eventBus . dispatch ( 'pagerendered' , {
source : this ,
pageNumber : this . id ,
cssTransform : true
} ) ;
return ;
}
if ( ! this . zoomLayer && ! this . canvas . hasAttribute ( 'hidden' ) ) {
this . zoomLayer = this . canvas . parentNode ;
this . zoomLayer . style . position = 'absolute' ;
}
}
if ( this . zoomLayer ) {
this . cssTransform ( this . zoomLayer . firstChild ) ;
}
this . reset ( true , true ) ;
}
} , {
key : 'cancelRendering' ,
value : function cancelRendering ( ) {
var keepAnnotations = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : false ;
if ( this . paintTask ) {
this . paintTask . cancel ( ) ;
this . paintTask = null ;
}
this . renderingState = _pdf _rendering _queue . RenderingStates . INITIAL ;
this . resume = null ;
if ( this . textLayer ) {
this . textLayer . cancel ( ) ;
this . textLayer = null ;
}
if ( ! keepAnnotations && this . annotationLayer ) {
this . annotationLayer . cancel ( ) ;
this . annotationLayer = null ;
}
}
} , {
key : 'cssTransform' ,
value : function cssTransform ( target ) {
var redrawAnnotations = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
var width = this . viewport . width ;
var height = this . viewport . height ;
var div = this . div ;
target . style . width = target . parentNode . style . width = div . style . width = Math . floor ( width ) + 'px' ;
target . style . height = target . parentNode . style . height = div . style . height = Math . floor ( height ) + 'px' ;
var relativeRotation = this . viewport . rotation - this . paintedViewportMap . get ( target ) . rotation ;
var absRotation = Math . abs ( relativeRotation ) ;
var scaleX = 1 ,
scaleY = 1 ;
if ( absRotation === 90 || absRotation === 270 ) {
scaleX = height / width ;
scaleY = width / height ;
}
var cssTransform = 'rotate(' + relativeRotation + 'deg) ' + 'scale(' + scaleX + ',' + scaleY + ')' ;
target . style . transform = cssTransform ;
if ( this . textLayer ) {
var textLayerViewport = this . textLayer . viewport ;
var textRelativeRotation = this . viewport . rotation - textLayerViewport . rotation ;
var textAbsRotation = Math . abs ( textRelativeRotation ) ;
var scale = width / textLayerViewport . width ;
if ( textAbsRotation === 90 || textAbsRotation === 270 ) {
scale = width / textLayerViewport . height ;
}
var textLayerDiv = this . textLayer . textLayerDiv ;
var transX = void 0 ,
transY = void 0 ;
switch ( textAbsRotation ) {
case 0 :
transX = transY = 0 ;
break ;
case 90 :
transX = 0 ;
transY = '-' + textLayerDiv . style . height ;
break ;
case 180 :
transX = '-' + textLayerDiv . style . width ;
transY = '-' + textLayerDiv . style . height ;
break ;
case 270 :
transX = '-' + textLayerDiv . style . width ;
transY = 0 ;
break ;
default :
console . error ( 'Bad rotation value.' ) ;
break ;
}
textLayerDiv . style . transform = 'rotate(' + textAbsRotation + 'deg) ' + 'scale(' + scale + ', ' + scale + ') ' + 'translate(' + transX + ', ' + transY + ')' ;
textLayerDiv . style . transformOrigin = '0% 0%' ;
}
if ( redrawAnnotations && this . annotationLayer ) {
this . annotationLayer . render ( this . viewport , 'display' ) ;
}
}
} , {
key : 'getPagePoint' ,
value : function getPagePoint ( x , y ) {
return this . viewport . convertToPdfPoint ( x , y ) ;
}
} , {
key : 'draw' ,
value : function draw ( ) {
var _this = this ;
if ( this . renderingState !== _pdf _rendering _queue . RenderingStates . INITIAL ) {
console . error ( 'Must be in new state before drawing' ) ;
this . reset ( ) ;
}
if ( ! this . pdfPage ) {
this . renderingState = _pdf _rendering _queue . RenderingStates . FINISHED ;
return Promise . reject ( new Error ( 'Page is not loaded' ) ) ;
}
this . renderingState = _pdf _rendering _queue . RenderingStates . RUNNING ;
var pdfPage = this . pdfPage ;
var div = this . div ;
var canvasWrapper = document . createElement ( 'div' ) ;
canvasWrapper . style . width = div . style . width ;
canvasWrapper . style . height = div . style . height ;
canvasWrapper . classList . add ( 'canvasWrapper' ) ;
if ( this . annotationLayer && this . annotationLayer . div ) {
div . insertBefore ( canvasWrapper , this . annotationLayer . div ) ;
} else {
div . appendChild ( canvasWrapper ) ;
}
var textLayer = null ;
if ( this . textLayerMode !== _ui _utils . TextLayerMode . DISABLE && this . textLayerFactory ) {
var textLayerDiv = document . createElement ( 'div' ) ;
textLayerDiv . className = 'textLayer' ;
textLayerDiv . style . width = canvasWrapper . style . width ;
textLayerDiv . style . height = canvasWrapper . style . height ;
if ( this . annotationLayer && this . annotationLayer . div ) {
div . insertBefore ( textLayerDiv , this . annotationLayer . div ) ;
} else {
div . appendChild ( textLayerDiv ) ;
}
textLayer = this . textLayerFactory . createTextLayerBuilder ( textLayerDiv , this . id - 1 , this . viewport , this . textLayerMode === _ui _utils . TextLayerMode . ENABLE _ENHANCE ) ;
}
this . textLayer = textLayer ;
var renderContinueCallback = null ;
if ( this . renderingQueue ) {
renderContinueCallback = function renderContinueCallback ( cont ) {
if ( ! _this . renderingQueue . isHighestPriority ( _this ) ) {
_this . renderingState = _pdf _rendering _queue . RenderingStates . PAUSED ;
_this . resume = function ( ) {
_this . renderingState = _pdf _rendering _queue . RenderingStates . RUNNING ;
cont ( ) ;
} ;
return ;
}
cont ( ) ;
} ;
}
var finishPaintTask = function finishPaintTask ( error ) {
if ( paintTask === _this . paintTask ) {
_this . paintTask = null ;
}
if ( error instanceof _pdfjsLib . RenderingCancelledException ) {
_this . error = null ;
return Promise . resolve ( undefined ) ;
}
_this . renderingState = _pdf _rendering _queue . RenderingStates . FINISHED ;
if ( _this . loadingIconDiv ) {
div . removeChild ( _this . loadingIconDiv ) ;
delete _this . loadingIconDiv ;
}
_this . _resetZoomLayer ( true ) ;
_this . error = error ;
_this . stats = pdfPage . stats ;
if ( _this . onAfterDraw ) {
_this . onAfterDraw ( ) ;
}
_this . eventBus . dispatch ( 'pagerendered' , {
source : _this ,
pageNumber : _this . id ,
cssTransform : false
} ) ;
if ( error ) {
return Promise . reject ( error ) ;
}
return Promise . resolve ( undefined ) ;
} ;
var paintTask = this . renderer === _ui _utils . RendererType . SVG ? this . paintOnSvg ( canvasWrapper ) : this . paintOnCanvas ( canvasWrapper ) ;
paintTask . onRenderContinue = renderContinueCallback ;
this . paintTask = paintTask ;
var resultPromise = paintTask . promise . then ( function ( ) {
return finishPaintTask ( null ) . then ( function ( ) {
if ( textLayer ) {
var readableStream = pdfPage . streamTextContent ( { normalizeWhitespace : true } ) ;
textLayer . setTextContentStream ( readableStream ) ;
textLayer . render ( ) ;
}
} ) ;
} , function ( reason ) {
return finishPaintTask ( reason ) ;
} ) ;
if ( this . annotationLayerFactory ) {
if ( ! this . annotationLayer ) {
this . annotationLayer = this . annotationLayerFactory . createAnnotationLayerBuilder ( div , pdfPage , this . imageResourcesPath , this . renderInteractiveForms , this . l10n ) ;
}
this . annotationLayer . render ( this . viewport , 'display' ) ;
}
div . setAttribute ( 'data-loaded' , true ) ;
if ( this . onBeforeDraw ) {
this . onBeforeDraw ( ) ;
}
return resultPromise ;
}
} , {
key : 'paintOnCanvas' ,
value : function paintOnCanvas ( canvasWrapper ) {
var renderCapability = ( 0 , _pdfjsLib . createPromiseCapability ) ( ) ;
var result = {
promise : renderCapability . promise ,
onRenderContinue : function onRenderContinue ( cont ) {
cont ( ) ;
} ,
cancel : function cancel ( ) {
renderTask . cancel ( ) ;
}
} ;
var viewport = this . viewport ;
var canvas = document . createElement ( 'canvas' ) ;
canvas . id = this . renderingId ;
canvas . setAttribute ( 'hidden' , 'hidden' ) ;
var isCanvasHidden = true ;
var showCanvas = function showCanvas ( ) {
if ( isCanvasHidden ) {
canvas . removeAttribute ( 'hidden' ) ;
isCanvasHidden = false ;
}
} ;
canvasWrapper . appendChild ( canvas ) ;
this . canvas = canvas ;
canvas . mozOpaque = true ;
var ctx = canvas . getContext ( '2d' , { alpha : false } ) ;
var outputScale = ( 0 , _ui _utils . getOutputScale ) ( ctx ) ;
this . outputScale = outputScale ;
if ( this . useOnlyCssZoom ) {
var actualSizeViewport = viewport . clone ( { scale : _ui _utils . CSS _UNITS } ) ;
outputScale . sx *= actualSizeViewport . width / viewport . width ;
outputScale . sy *= actualSizeViewport . height / viewport . height ;
outputScale . scaled = true ;
}
if ( this . maxCanvasPixels > 0 ) {
var pixelsInViewport = viewport . width * viewport . height ;
var maxScale = Math . sqrt ( this . maxCanvasPixels / pixelsInViewport ) ;
if ( outputScale . sx > maxScale || outputScale . sy > maxScale ) {
outputScale . sx = maxScale ;
outputScale . sy = maxScale ;
outputScale . scaled = true ;
this . hasRestrictedScaling = true ;
} else {
this . hasRestrictedScaling = false ;
}
}
var sfx = ( 0 , _ui _utils . approximateFraction ) ( outputScale . sx ) ;
var sfy = ( 0 , _ui _utils . approximateFraction ) ( outputScale . sy ) ;
canvas . width = ( 0 , _ui _utils . roundToDivide ) ( viewport . width * outputScale . sx , sfx [ 0 ] ) ;
canvas . height = ( 0 , _ui _utils . roundToDivide ) ( viewport . height * outputScale . sy , sfy [ 0 ] ) ;
canvas . style . width = ( 0 , _ui _utils . roundToDivide ) ( viewport . width , sfx [ 1 ] ) + 'px' ;
canvas . style . height = ( 0 , _ui _utils . roundToDivide ) ( viewport . height , sfy [ 1 ] ) + 'px' ;
this . paintedViewportMap . set ( canvas , viewport ) ;
var transform = ! outputScale . scaled ? null : [ outputScale . sx , 0 , 0 , outputScale . sy , 0 , 0 ] ;
var renderContext = {
canvasContext : ctx ,
transform : transform ,
viewport : this . viewport ,
enableWebGL : this . enableWebGL ,
renderInteractiveForms : this . renderInteractiveForms
} ;
var renderTask = this . pdfPage . render ( renderContext ) ;
renderTask . onContinue = function ( cont ) {
showCanvas ( ) ;
if ( result . onRenderContinue ) {
result . onRenderContinue ( cont ) ;
} else {
cont ( ) ;
}
} ;
renderTask . promise . then ( function ( ) {
showCanvas ( ) ;
renderCapability . resolve ( undefined ) ;
} , function ( error ) {
showCanvas ( ) ;
renderCapability . reject ( error ) ;
} ) ;
return result ;
}
} , {
key : 'paintOnSvg' ,
value : function paintOnSvg ( wrapper ) {
var _this2 = this ;
var cancelled = false ;
var ensureNotCancelled = function ensureNotCancelled ( ) {
if ( cancelled ) {
throw new _pdfjsLib . RenderingCancelledException ( 'Rendering cancelled, page ' + _this2 . id , 'svg' ) ;
}
} ;
var pdfPage = this . pdfPage ;
var actualSizeViewport = this . viewport . clone ( { scale : _ui _utils . CSS _UNITS } ) ;
var promise = pdfPage . getOperatorList ( ) . then ( function ( opList ) {
ensureNotCancelled ( ) ;
var svgGfx = new _pdfjsLib . SVGGraphics ( pdfPage . commonObjs , pdfPage . objs ) ;
return svgGfx . getSVG ( opList , actualSizeViewport ) . then ( function ( svg ) {
ensureNotCancelled ( ) ;
_this2 . svg = svg ;
_this2 . paintedViewportMap . set ( svg , actualSizeViewport ) ;
svg . style . width = wrapper . style . width ;
svg . style . height = wrapper . style . height ;
_this2 . renderingState = _pdf _rendering _queue . RenderingStates . FINISHED ;
wrapper . appendChild ( svg ) ;
} ) ;
} ) ;
return {
promise : promise ,
onRenderContinue : function onRenderContinue ( cont ) {
cont ( ) ;
} ,
cancel : function cancel ( ) {
cancelled = true ;
}
} ;
}
} , {
key : 'setPageLabel' ,
value : function setPageLabel ( label ) {
this . pageLabel = typeof label === 'string' ? label : null ;
if ( this . pageLabel !== null ) {
this . div . setAttribute ( 'data-page-label' , this . pageLabel ) ;
} else {
this . div . removeAttribute ( 'data-page-label' ) ;
}
}
} , {
key : 'width' ,
get : function get ( ) {
return this . viewport . width ;
}
} , {
key : 'height' ,
get : function get ( ) {
return this . viewport . height ;
}
} ] ) ;
return PDFPageView ;
} ( ) ;
exports . PDFPageView = PDFPageView ;
/***/ } ) ,
/* 7 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var CLEANUP _TIMEOUT = 30000 ;
var RenderingStates = {
INITIAL : 0 ,
RUNNING : 1 ,
PAUSED : 2 ,
FINISHED : 3
} ;
var PDFRenderingQueue = function ( ) {
function PDFRenderingQueue ( ) {
_classCallCheck ( this , PDFRenderingQueue ) ;
this . pdfViewer = null ;
this . pdfThumbnailViewer = null ;
this . onIdle = null ;
this . highestPriorityPage = null ;
this . idleTimeout = null ;
this . printing = false ;
this . isThumbnailViewEnabled = false ;
}
_createClass ( PDFRenderingQueue , [ {
key : "setViewer" ,
value : function setViewer ( pdfViewer ) {
this . pdfViewer = pdfViewer ;
}
} , {
key : "setThumbnailViewer" ,
value : function setThumbnailViewer ( pdfThumbnailViewer ) {
this . pdfThumbnailViewer = pdfThumbnailViewer ;
}
} , {
key : "isHighestPriority" ,
value : function isHighestPriority ( view ) {
return this . highestPriorityPage === view . renderingId ;
}
} , {
key : "renderHighestPriority" ,
value : function renderHighestPriority ( currentlyVisiblePages ) {
if ( this . idleTimeout ) {
clearTimeout ( this . idleTimeout ) ;
this . idleTimeout = null ;
}
if ( this . pdfViewer . forceRendering ( currentlyVisiblePages ) ) {
return ;
}
if ( this . pdfThumbnailViewer && this . isThumbnailViewEnabled ) {
if ( this . pdfThumbnailViewer . forceRendering ( ) ) {
return ;
}
}
if ( this . printing ) {
return ;
}
if ( this . onIdle ) {
this . idleTimeout = setTimeout ( this . onIdle . bind ( this ) , CLEANUP _TIMEOUT ) ;
}
}
} , {
key : "getHighestPriority" ,
value : function getHighestPriority ( visible , views , scrolledDown ) {
var visibleViews = visible . views ;
var numVisible = visibleViews . length ;
if ( numVisible === 0 ) {
return false ;
}
for ( var i = 0 ; i < numVisible ; ++ i ) {
var view = visibleViews [ i ] . view ;
if ( ! this . isViewFinished ( view ) ) {
return view ;
}
}
if ( scrolledDown ) {
var nextPageIndex = visible . last . id ;
if ( views [ nextPageIndex ] && ! this . isViewFinished ( views [ nextPageIndex ] ) ) {
return views [ nextPageIndex ] ;
}
} else {
var previousPageIndex = visible . first . id - 2 ;
if ( views [ previousPageIndex ] && ! this . isViewFinished ( views [ previousPageIndex ] ) ) {
return views [ previousPageIndex ] ;
}
}
return null ;
}
} , {
key : "isViewFinished" ,
value : function isViewFinished ( view ) {
return view . renderingState === RenderingStates . FINISHED ;
}
} , {
key : "renderView" ,
value : function renderView ( view ) {
var _this = this ;
switch ( view . renderingState ) {
case RenderingStates . FINISHED :
return false ;
case RenderingStates . PAUSED :
this . highestPriorityPage = view . renderingId ;
view . resume ( ) ;
break ;
case RenderingStates . RUNNING :
this . highestPriorityPage = view . renderingId ;
break ;
case RenderingStates . INITIAL :
this . highestPriorityPage = view . renderingId ;
var continueRendering = function continueRendering ( ) {
_this . renderHighestPriority ( ) ;
} ;
view . draw ( ) . then ( continueRendering , continueRendering ) ;
break ;
}
return true ;
}
} ] ) ;
return PDFRenderingQueue ;
} ( ) ;
exports . RenderingStates = RenderingStates ;
exports . PDFRenderingQueue = PDFRenderingQueue ;
/***/ } ) ,
/* 8 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . BaseViewer = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _pdf _rendering _queue = _ _w _pdfjs _require _ _ ( 7 ) ;
var _annotation _layer _builder = _ _w _pdfjs _require _ _ ( 4 ) ;
var _dom _events = _ _w _pdfjs _require _ _ ( 2 ) ;
var _pdf _page _view = _ _w _pdfjs _require _ _ ( 6 ) ;
var _pdf _link _service = _ _w _pdfjs _require _ _ ( 3 ) ;
var _text _layer _builder = _ _w _pdfjs _require _ _ ( 5 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var DEFAULT _CACHE _SIZE = 10 ;
function PDFPageViewBuffer ( size ) {
var data = [ ] ;
this . push = function ( view ) {
var i = data . indexOf ( view ) ;
if ( i >= 0 ) {
data . splice ( i , 1 ) ;
}
data . push ( view ) ;
if ( data . length > size ) {
data . shift ( ) . destroy ( ) ;
}
} ;
this . resize = function ( newSize ) {
size = newSize ;
while ( data . length > size ) {
data . shift ( ) . destroy ( ) ;
}
} ;
}
function isSameScale ( oldScale , newScale ) {
if ( newScale === oldScale ) {
return true ;
}
if ( Math . abs ( newScale - oldScale ) < 1e-15 ) {
return true ;
}
return false ;
}
function isPortraitOrientation ( size ) {
return size . width <= size . height ;
}
var BaseViewer = function ( ) {
function BaseViewer ( options ) {
_classCallCheck ( this , BaseViewer ) ;
if ( this . constructor === BaseViewer ) {
throw new Error ( 'Cannot initialize BaseViewer.' ) ;
}
this . _name = this . constructor . name ;
this . container = options . container ;
this . viewer = options . viewer || options . container . firstElementChild ;
this . eventBus = options . eventBus || ( 0 , _dom _events . getGlobalEventBus ) ( ) ;
this . linkService = options . linkService || new _pdf _link _service . SimpleLinkService ( ) ;
this . downloadManager = options . downloadManager || null ;
this . removePageBorders = options . removePageBorders || false ;
this . textLayerMode = Number . isInteger ( options . textLayerMode ) ? options . textLayerMode : _ui _utils . TextLayerMode . ENABLE ;
this . enhanceTextSelection = options . enhanceTextSelection || false ;
this . imageResourcesPath = options . imageResourcesPath || '' ;
this . renderInteractiveForms = options . renderInteractiveForms || false ;
this . enablePrintAutoRotate = options . enablePrintAutoRotate || false ;
this . renderer = options . renderer || _ui _utils . RendererType . CANVAS ;
this . enableWebGL = options . enableWebGL || false ;
this . useOnlyCssZoom = options . useOnlyCssZoom || false ;
this . maxCanvasPixels = options . maxCanvasPixels ;
this . l10n = options . l10n || _ui _utils . NullL10n ;
this . defaultRenderingQueue = ! options . renderingQueue ;
if ( this . defaultRenderingQueue ) {
this . renderingQueue = new _pdf _rendering _queue . PDFRenderingQueue ( ) ;
this . renderingQueue . setViewer ( this ) ;
} else {
this . renderingQueue = options . renderingQueue ;
}
this . scroll = ( 0 , _ui _utils . watchScroll ) ( this . container , this . _scrollUpdate . bind ( this ) ) ;
this . presentationModeState = _ui _utils . PresentationModeState . UNKNOWN ;
this . _resetView ( ) ;
if ( this . removePageBorders ) {
this . viewer . classList . add ( 'removePageBorders' ) ;
}
}
_createClass ( BaseViewer , [ {
key : 'getPageView' ,
value : function getPageView ( index ) {
return this . _pages [ index ] ;
}
} , {
key : '_setCurrentPageNumber' ,
value : function _setCurrentPageNumber ( val ) {
var resetCurrentPageView = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
if ( this . _currentPageNumber === val ) {
if ( resetCurrentPageView ) {
this . _resetCurrentPageView ( ) ;
}
return ;
}
if ( ! ( 0 < val && val <= this . pagesCount ) ) {
console . error ( this . _name + '._setCurrentPageNumber: "' + val + '" is out of bounds.' ) ;
return ;
}
var arg = {
source : this ,
pageNumber : val ,
pageLabel : this . _pageLabels && this . _pageLabels [ val - 1 ]
} ;
this . _currentPageNumber = val ;
this . eventBus . dispatch ( 'pagechanging' , arg ) ;
this . eventBus . dispatch ( 'pagechange' , arg ) ;
if ( resetCurrentPageView ) {
this . _resetCurrentPageView ( ) ;
}
}
} , {
key : 'setDocument' ,
value : function setDocument ( pdfDocument ) {
var _this = this ;
if ( this . pdfDocument ) {
this . _cancelRendering ( ) ;
this . _resetView ( ) ;
}
this . pdfDocument = pdfDocument ;
if ( ! pdfDocument ) {
return ;
}
var pagesCount = pdfDocument . numPages ;
var pagesCapability = ( 0 , _pdfjsLib . createPromiseCapability ) ( ) ;
this . pagesPromise = pagesCapability . promise ;
pagesCapability . promise . then ( function ( ) {
_this . _pageViewsReady = true ;
_this . eventBus . dispatch ( 'pagesloaded' , {
source : _this ,
pagesCount : pagesCount
} ) ;
} ) ;
var isOnePageRenderedResolved = false ;
var onePageRenderedCapability = ( 0 , _pdfjsLib . createPromiseCapability ) ( ) ;
this . onePageRendered = onePageRenderedCapability . promise ;
var bindOnAfterAndBeforeDraw = function bindOnAfterAndBeforeDraw ( pageView ) {
pageView . onBeforeDraw = function ( ) {
_this . _buffer . push ( pageView ) ;
} ;
pageView . onAfterDraw = function ( ) {
if ( ! isOnePageRenderedResolved ) {
isOnePageRenderedResolved = true ;
onePageRenderedCapability . resolve ( ) ;
}
} ;
} ;
var firstPagePromise = pdfDocument . getPage ( 1 ) ;
this . firstPagePromise = firstPagePromise ;
firstPagePromise . then ( function ( pdfPage ) {
var scale = _this . currentScale ;
var viewport = pdfPage . getViewport ( scale * _ui _utils . CSS _UNITS ) ;
for ( var pageNum = 1 ; pageNum <= pagesCount ; ++ pageNum ) {
var textLayerFactory = null ;
if ( _this . textLayerMode !== _ui _utils . TextLayerMode . DISABLE ) {
textLayerFactory = _this ;
}
var pageView = new _pdf _page _view . PDFPageView ( {
container : _this . _setDocumentViewerElement ,
eventBus : _this . eventBus ,
id : pageNum ,
scale : scale ,
defaultViewport : viewport . clone ( ) ,
renderingQueue : _this . renderingQueue ,
textLayerFactory : textLayerFactory ,
textLayerMode : _this . textLayerMode ,
annotationLayerFactory : _this ,
imageResourcesPath : _this . imageResourcesPath ,
renderInteractiveForms : _this . renderInteractiveForms ,
renderer : _this . renderer ,
enableWebGL : _this . enableWebGL ,
useOnlyCssZoom : _this . useOnlyCssZoom ,
maxCanvasPixels : _this . maxCanvasPixels ,
l10n : _this . l10n
} ) ;
bindOnAfterAndBeforeDraw ( pageView ) ;
_this . _pages . push ( pageView ) ;
}
onePageRenderedCapability . promise . then ( function ( ) {
if ( _pdfjsLib . PDFJS . disableAutoFetch ) {
pagesCapability . resolve ( ) ;
return ;
}
var getPagesLeft = pagesCount ;
var _loop = function _loop ( _pageNum ) {
pdfDocument . getPage ( _pageNum ) . then ( function ( pdfPage ) {
var pageView = _this . _pages [ _pageNum - 1 ] ;
if ( ! pageView . pdfPage ) {
pageView . setPdfPage ( pdfPage ) ;
}
_this . linkService . cachePageRef ( _pageNum , pdfPage . ref ) ;
if ( -- getPagesLeft === 0 ) {
pagesCapability . resolve ( ) ;
}
} , function ( reason ) {
console . error ( 'Unable to get page ' + _pageNum + ' to initialize viewer' , reason ) ;
if ( -- getPagesLeft === 0 ) {
pagesCapability . resolve ( ) ;
}
} ) ;
} ;
for ( var _pageNum = 1 ; _pageNum <= pagesCount ; ++ _pageNum ) {
_loop ( _pageNum ) ;
}
} ) ;
_this . eventBus . dispatch ( 'pagesinit' , { source : _this } ) ;
if ( _this . defaultRenderingQueue ) {
_this . update ( ) ;
}
if ( _this . findController ) {
_this . findController . resolveFirstPage ( ) ;
}
} ) . catch ( function ( reason ) {
console . error ( 'Unable to initialize viewer' , reason ) ;
} ) ;
}
} , {
key : 'setPageLabels' ,
value : function setPageLabels ( labels ) {
if ( ! this . pdfDocument ) {
return ;
}
if ( ! labels ) {
this . _pageLabels = null ;
} else if ( ! ( labels instanceof Array && this . pdfDocument . numPages === labels . length ) ) {
this . _pageLabels = null ;
console . error ( this . _name + '.setPageLabels: Invalid page labels.' ) ;
} else {
this . _pageLabels = labels ;
}
for ( var i = 0 , ii = this . _pages . length ; i < ii ; i ++ ) {
var pageView = this . _pages [ i ] ;
var label = this . _pageLabels && this . _pageLabels [ i ] ;
pageView . setPageLabel ( label ) ;
}
}
} , {
key : '_resetView' ,
value : function _resetView ( ) {
this . _pages = [ ] ;
this . _currentPageNumber = 1 ;
this . _currentScale = _ui _utils . UNKNOWN _SCALE ;
this . _currentScaleValue = null ;
this . _pageLabels = null ;
this . _buffer = new PDFPageViewBuffer ( DEFAULT _CACHE _SIZE ) ;
this . _location = null ;
this . _pagesRotation = 0 ;
this . _pagesRequests = [ ] ;
this . _pageViewsReady = false ;
this . viewer . textContent = '' ;
}
} , {
key : '_scrollUpdate' ,
value : function _scrollUpdate ( ) {
if ( this . pagesCount === 0 ) {
return ;
}
this . update ( ) ;
}
} , {
key : '_scrollIntoView' ,
value : function _scrollIntoView ( _ref ) {
var pageDiv = _ref . pageDiv ,
_ref$pageSpot = _ref . pageSpot ,
pageSpot = _ref$pageSpot === undefined ? null : _ref$pageSpot ,
_ref$pageNumber = _ref . pageNumber ,
pageNumber = _ref$pageNumber === undefined ? null : _ref$pageNumber ;
throw new Error ( 'Not implemented: _scrollIntoView' ) ;
}
} , {
key : '_setScaleDispatchEvent' ,
value : function _setScaleDispatchEvent ( newScale , newValue ) {
var preset = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
var arg = {
source : this ,
scale : newScale ,
presetValue : preset ? newValue : undefined
} ;
this . eventBus . dispatch ( 'scalechanging' , arg ) ;
this . eventBus . dispatch ( 'scalechange' , arg ) ;
}
} , {
key : '_setScaleUpdatePages' ,
value : function _setScaleUpdatePages ( newScale , newValue ) {
var noScroll = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
var preset = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
this . _currentScaleValue = newValue . toString ( ) ;
if ( isSameScale ( this . _currentScale , newScale ) ) {
if ( preset ) {
this . _setScaleDispatchEvent ( newScale , newValue , true ) ;
}
return ;
}
for ( var i = 0 , ii = this . _pages . length ; i < ii ; i ++ ) {
this . _pages [ i ] . update ( newScale ) ;
}
this . _currentScale = newScale ;
if ( ! noScroll ) {
var page = this . _currentPageNumber ,
dest = void 0 ;
if ( this . _location && ! ( this . isInPresentationMode || this . isChangingPresentationMode ) ) {
page = this . _location . pageNumber ;
dest = [ null , { name : 'XYZ' } , this . _location . left , this . _location . top , null ] ;
}
this . scrollPageIntoView ( {
pageNumber : page ,
destArray : dest ,
allowNegativeOffset : true
} ) ;
}
this . _setScaleDispatchEvent ( newScale , newValue , preset ) ;
if ( this . defaultRenderingQueue ) {
this . update ( ) ;
}
}
} , {
key : '_setScale' ,
value : function _setScale ( value ) {
var noScroll = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
var scale = parseFloat ( value ) ;
if ( scale > 0 ) {
this . _setScaleUpdatePages ( scale , value , noScroll , false ) ;
} else {
var currentPage = this . _pages [ this . _currentPageNumber - 1 ] ;
if ( ! currentPage ) {
return ;
}
var hPadding = this . isInPresentationMode || this . removePageBorders ? 0 : _ui _utils . SCROLLBAR _PADDING ;
var vPadding = this . isInPresentationMode || this . removePageBorders ? 0 : _ui _utils . VERTICAL _PADDING ;
var pageWidthScale = ( this . container . clientWidth - hPadding ) / currentPage . width * currentPage . scale ;
var pageHeightScale = ( this . container . clientHeight - vPadding ) / currentPage . height * currentPage . scale ;
switch ( value ) {
case 'page-actual' :
scale = 1 ;
break ;
case 'page-width' :
scale = pageWidthScale ;
break ;
case 'page-height' :
scale = pageHeightScale ;
break ;
case 'page-fit' :
scale = Math . min ( pageWidthScale , pageHeightScale ) ;
break ;
case 'auto' :
var isLandscape = currentPage . width > currentPage . height ;
var horizontalScale = isLandscape ? Math . min ( pageHeightScale , pageWidthScale ) : pageWidthScale ;
scale = Math . min ( _ui _utils . MAX _AUTO _SCALE , horizontalScale ) ;
break ;
default :
console . error ( this . _name + '._setScale: "' + value + '" is an unknown zoom value.' ) ;
return ;
}
this . _setScaleUpdatePages ( scale , value , noScroll , true ) ;
}
}
} , {
key : '_resetCurrentPageView' ,
value : function _resetCurrentPageView ( ) {
if ( this . isInPresentationMode ) {
this . _setScale ( this . _currentScaleValue , true ) ;
}
var pageView = this . _pages [ this . _currentPageNumber - 1 ] ;
this . _scrollIntoView ( { pageDiv : pageView . div } ) ;
}
} , {
key : 'scrollPageIntoView' ,
value : function scrollPageIntoView ( params ) {
if ( ! this . pdfDocument ) {
return ;
}
var pageNumber = params . pageNumber || 0 ;
var dest = params . destArray || null ;
var allowNegativeOffset = params . allowNegativeOffset || false ;
if ( this . isInPresentationMode || ! dest ) {
this . _setCurrentPageNumber ( pageNumber , true ) ;
return ;
}
var pageView = this . _pages [ pageNumber - 1 ] ;
if ( ! pageView ) {
console . error ( this . _name + '.scrollPageIntoView: Invalid "pageNumber" parameter.' ) ;
return ;
}
var x = 0 ,
y = 0 ;
var width = 0 ,
height = 0 ,
widthScale = void 0 ,
heightScale = void 0 ;
var changeOrientation = pageView . rotation % 180 === 0 ? false : true ;
var pageWidth = ( changeOrientation ? pageView . height : pageView . width ) / pageView . scale / _ui _utils . CSS _UNITS ;
var pageHeight = ( changeOrientation ? pageView . width : pageView . height ) / pageView . scale / _ui _utils . CSS _UNITS ;
var scale = 0 ;
switch ( dest [ 1 ] . name ) {
case 'XYZ' :
x = dest [ 2 ] ;
y = dest [ 3 ] ;
scale = dest [ 4 ] ;
x = x !== null ? x : 0 ;
y = y !== null ? y : pageHeight ;
break ;
case 'Fit' :
case 'FitB' :
scale = 'page-fit' ;
break ;
case 'FitH' :
case 'FitBH' :
y = dest [ 2 ] ;
scale = 'page-width' ;
if ( y === null && this . _location ) {
x = this . _location . left ;
y = this . _location . top ;
}
break ;
case 'FitV' :
case 'FitBV' :
x = dest [ 2 ] ;
width = pageWidth ;
height = pageHeight ;
scale = 'page-height' ;
break ;
case 'FitR' :
x = dest [ 2 ] ;
y = dest [ 3 ] ;
width = dest [ 4 ] - x ;
height = dest [ 5 ] - y ;
var hPadding = this . removePageBorders ? 0 : _ui _utils . SCROLLBAR _PADDING ;
var vPadding = this . removePageBorders ? 0 : _ui _utils . VERTICAL _PADDING ;
widthScale = ( this . container . clientWidth - hPadding ) / width / _ui _utils . CSS _UNITS ;
heightScale = ( this . container . clientHeight - vPadding ) / height / _ui _utils . CSS _UNITS ;
scale = Math . min ( Math . abs ( widthScale ) , Math . abs ( heightScale ) ) ;
break ;
default :
console . error ( this . _name + '.scrollPageIntoView: "' + dest [ 1 ] . name + '" ' + 'is not a valid destination type.' ) ;
return ;
}
if ( scale && scale !== this . _currentScale ) {
this . currentScaleValue = scale ;
} else if ( this . _currentScale === _ui _utils . UNKNOWN _SCALE ) {
this . currentScaleValue = _ui _utils . DEFAULT _SCALE _VALUE ;
}
if ( scale === 'page-fit' && ! dest [ 4 ] ) {
this . _scrollIntoView ( {
pageDiv : pageView . div ,
pageNumber : pageNumber
} ) ;
return ;
}
var boundingRect = [ pageView . viewport . convertToViewportPoint ( x , y ) , pageView . viewport . convertToViewportPoint ( x + width , y + height ) ] ;
var left = Math . min ( boundingRect [ 0 ] [ 0 ] , boundingRect [ 1 ] [ 0 ] ) ;
var top = Math . min ( boundingRect [ 0 ] [ 1 ] , boundingRect [ 1 ] [ 1 ] ) ;
if ( ! allowNegativeOffset ) {
left = Math . max ( left , 0 ) ;
top = Math . max ( top , 0 ) ;
}
this . _scrollIntoView ( {
pageDiv : pageView . div ,
pageSpot : {
left : left ,
top : top
} ,
pageNumber : pageNumber
} ) ;
}
} , {
key : '_resizeBuffer' ,
value : function _resizeBuffer ( numVisiblePages ) {
var suggestedCacheSize = Math . max ( DEFAULT _CACHE _SIZE , 2 * numVisiblePages + 1 ) ;
this . _buffer . resize ( suggestedCacheSize ) ;
}
} , {
key : '_updateLocation' ,
value : function _updateLocation ( firstPage ) {
var currentScale = this . _currentScale ;
var currentScaleValue = this . _currentScaleValue ;
var normalizedScaleValue = parseFloat ( currentScaleValue ) === currentScale ? Math . round ( currentScale * 10000 ) / 100 : currentScaleValue ;
var pageNumber = firstPage . id ;
var pdfOpenParams = '#page=' + pageNumber ;
pdfOpenParams += '&zoom=' + normalizedScaleValue ;
var currentPageView = this . _pages [ pageNumber - 1 ] ;
var container = this . container ;
var topLeft = currentPageView . getPagePoint ( container . scrollLeft - firstPage . x , container . scrollTop - firstPage . y ) ;
var intLeft = Math . round ( topLeft [ 0 ] ) ;
var intTop = Math . round ( topLeft [ 1 ] ) ;
pdfOpenParams += ',' + intLeft + ',' + intTop ;
this . _location = {
pageNumber : pageNumber ,
scale : normalizedScaleValue ,
top : intTop ,
left : intLeft ,
rotation : this . _pagesRotation ,
pdfOpenParams : pdfOpenParams
} ;
}
} , {
key : 'update' ,
value : function update ( ) {
throw new Error ( 'Not implemented: update' ) ;
}
} , {
key : 'containsElement' ,
value : function containsElement ( element ) {
return this . container . contains ( element ) ;
}
} , {
key : 'focus' ,
value : function focus ( ) {
this . container . focus ( ) ;
}
} , {
key : '_getVisiblePages' ,
value : function _getVisiblePages ( ) {
throw new Error ( 'Not implemented: _getVisiblePages' ) ;
}
} , {
key : 'cleanup' ,
value : function cleanup ( ) {
for ( var i = 0 , ii = this . _pages . length ; i < ii ; i ++ ) {
if ( this . _pages [ i ] && this . _pages [ i ] . renderingState !== _pdf _rendering _queue . RenderingStates . FINISHED ) {
this . _pages [ i ] . reset ( ) ;
}
}
}
} , {
key : '_cancelRendering' ,
value : function _cancelRendering ( ) {
for ( var i = 0 , ii = this . _pages . length ; i < ii ; i ++ ) {
if ( this . _pages [ i ] ) {
this . _pages [ i ] . cancelRendering ( ) ;
}
}
}
} , {
key : '_ensurePdfPageLoaded' ,
value : function _ensurePdfPageLoaded ( pageView ) {
var _this2 = this ;
if ( pageView . pdfPage ) {
return Promise . resolve ( pageView . pdfPage ) ;
}
var pageNumber = pageView . id ;
if ( this . _pagesRequests [ pageNumber ] ) {
return this . _pagesRequests [ pageNumber ] ;
}
var promise = this . pdfDocument . getPage ( pageNumber ) . then ( function ( pdfPage ) {
if ( ! pageView . pdfPage ) {
pageView . setPdfPage ( pdfPage ) ;
}
_this2 . _pagesRequests [ pageNumber ] = null ;
return pdfPage ;
} ) . catch ( function ( reason ) {
console . error ( 'Unable to get page for page view' , reason ) ;
_this2 . _pagesRequests [ pageNumber ] = null ;
} ) ;
this . _pagesRequests [ pageNumber ] = promise ;
return promise ;
}
} , {
key : 'forceRendering' ,
value : function forceRendering ( currentlyVisiblePages ) {
var _this3 = this ;
var visiblePages = currentlyVisiblePages || this . _getVisiblePages ( ) ;
var pageView = this . renderingQueue . getHighestPriority ( visiblePages , this . _pages , this . scroll . down ) ;
if ( pageView ) {
this . _ensurePdfPageLoaded ( pageView ) . then ( function ( ) {
_this3 . renderingQueue . renderView ( pageView ) ;
} ) ;
return true ;
}
return false ;
}
} , {
key : 'getPageTextContent' ,
value : function getPageTextContent ( pageIndex ) {
return this . pdfDocument . getPage ( pageIndex + 1 ) . then ( function ( page ) {
return page . getTextContent ( { normalizeWhitespace : true } ) ;
} ) ;
}
} , {
key : 'createTextLayerBuilder' ,
value : function createTextLayerBuilder ( textLayerDiv , pageIndex , viewport ) {
var enhanceTextSelection = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
return new _text _layer _builder . TextLayerBuilder ( {
textLayerDiv : textLayerDiv ,
eventBus : this . eventBus ,
pageIndex : pageIndex ,
viewport : viewport ,
findController : this . isInPresentationMode ? null : this . findController ,
enhanceTextSelection : this . isInPresentationMode ? false : enhanceTextSelection
} ) ;
}
} , {
key : 'createAnnotationLayerBuilder' ,
value : function createAnnotationLayerBuilder ( pageDiv , pdfPage ) {
var imageResourcesPath = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : '' ;
var renderInteractiveForms = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
var l10n = arguments . length > 4 && arguments [ 4 ] !== undefined ? arguments [ 4 ] : _ui _utils . NullL10n ;
return new _annotation _layer _builder . AnnotationLayerBuilder ( {
pageDiv : pageDiv ,
pdfPage : pdfPage ,
imageResourcesPath : imageResourcesPath ,
renderInteractiveForms : renderInteractiveForms ,
linkService : this . linkService ,
downloadManager : this . downloadManager ,
l10n : l10n
} ) ;
}
} , {
key : 'setFindController' ,
value : function setFindController ( findController ) {
this . findController = findController ;
}
} , {
key : 'getPagesOverview' ,
value : function getPagesOverview ( ) {
var pagesOverview = this . _pages . map ( function ( pageView ) {
var viewport = pageView . pdfPage . getViewport ( 1 ) ;
return {
width : viewport . width ,
height : viewport . height ,
rotation : viewport . rotation
} ;
} ) ;
if ( ! this . enablePrintAutoRotate ) {
return pagesOverview ;
}
var isFirstPagePortrait = isPortraitOrientation ( pagesOverview [ 0 ] ) ;
return pagesOverview . map ( function ( size ) {
if ( isFirstPagePortrait === isPortraitOrientation ( size ) ) {
return size ;
}
return {
width : size . height ,
height : size . width ,
rotation : ( size . rotation + 90 ) % 360
} ;
} ) ;
}
} , {
key : 'pagesCount' ,
get : function get ( ) {
return this . _pages . length ;
}
} , {
key : 'pageViewsReady' ,
get : function get ( ) {
return this . _pageViewsReady ;
}
} , {
key : 'currentPageNumber' ,
get : function get ( ) {
return this . _currentPageNumber ;
} ,
set : function set ( val ) {
if ( ! Number . isInteger ( val ) ) {
throw new Error ( 'Invalid page number.' ) ;
}
if ( ! this . pdfDocument ) {
return ;
}
this . _setCurrentPageNumber ( val , true ) ;
}
} , {
key : 'currentPageLabel' ,
get : function get ( ) {
return this . _pageLabels && this . _pageLabels [ this . _currentPageNumber - 1 ] ;
} ,
set : function set ( val ) {
var pageNumber = val | 0 ;
if ( this . _pageLabels ) {
var i = this . _pageLabels . indexOf ( val ) ;
if ( i >= 0 ) {
pageNumber = i + 1 ;
}
}
this . currentPageNumber = pageNumber ;
}
} , {
key : 'currentScale' ,
get : function get ( ) {
return this . _currentScale !== _ui _utils . UNKNOWN _SCALE ? this . _currentScale : _ui _utils . DEFAULT _SCALE ;
} ,
set : function set ( val ) {
if ( isNaN ( val ) ) {
throw new Error ( 'Invalid numeric scale' ) ;
}
if ( ! this . pdfDocument ) {
return ;
}
this . _setScale ( val , false ) ;
}
} , {
key : 'currentScaleValue' ,
get : function get ( ) {
return this . _currentScaleValue ;
} ,
set : function set ( val ) {
if ( ! this . pdfDocument ) {
return ;
}
this . _setScale ( val , false ) ;
}
} , {
key : 'pagesRotation' ,
get : function get ( ) {
return this . _pagesRotation ;
} ,
set : function set ( rotation ) {
if ( ! ( 0 , _ui _utils . isValidRotation ) ( rotation ) ) {
throw new Error ( 'Invalid pages rotation angle.' ) ;
}
if ( ! this . pdfDocument ) {
return ;
}
if ( this . _pagesRotation === rotation ) {
return ;
}
this . _pagesRotation = rotation ;
var pageNumber = this . _currentPageNumber ;
for ( var i = 0 , ii = this . _pages . length ; i < ii ; i ++ ) {
var pageView = this . _pages [ i ] ;
pageView . update ( pageView . scale , rotation ) ;
}
if ( this . _currentScaleValue ) {
this . _setScale ( this . _currentScaleValue , true ) ;
}
this . eventBus . dispatch ( 'rotationchanging' , {
source : this ,
pagesRotation : rotation ,
pageNumber : pageNumber
} ) ;
if ( this . defaultRenderingQueue ) {
this . update ( ) ;
}
}
} , {
key : '_setDocumentViewerElement' ,
get : function get ( ) {
throw new Error ( 'Not implemented: _setDocumentViewerElement' ) ;
}
} , {
key : 'isInPresentationMode' ,
get : function get ( ) {
return this . presentationModeState === _ui _utils . PresentationModeState . FULLSCREEN ;
}
} , {
key : 'isChangingPresentationMode' ,
get : function get ( ) {
return this . presentationModeState === _ui _utils . PresentationModeState . CHANGING ;
}
} , {
key : 'isHorizontalScrollbarEnabled' ,
get : function get ( ) {
return this . isInPresentationMode ? false : this . container . scrollWidth > this . container . clientWidth ;
}
} , {
key : 'hasEqualPageSizes' ,
get : function get ( ) {
var firstPageView = this . _pages [ 0 ] ;
for ( var i = 1 , ii = this . _pages . length ; i < ii ; ++ i ) {
var pageView = this . _pages [ i ] ;
if ( pageView . width !== firstPageView . width || pageView . height !== firstPageView . height ) {
return false ;
}
}
return true ;
}
} ] ) ;
return BaseViewer ;
} ( ) ;
exports . BaseViewer = BaseViewer ;
/***/ } ) ,
/* 9 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . PDFJS = undefined ;
var _annotation _layer _builder = _ _w _pdfjs _require _ _ ( 4 ) ;
var _text _layer _builder = _ _w _pdfjs _require _ _ ( 5 ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _pdf _link _service = _ _w _pdfjs _require _ _ ( 3 ) ;
var _download _manager = _ _w _pdfjs _require _ _ ( 10 ) ;
var _genericl10n = _ _w _pdfjs _require _ _ ( 11 ) ;
var _pdf _find _controller = _ _w _pdfjs _require _ _ ( 13 ) ;
var _pdf _history = _ _w _pdfjs _require _ _ ( 14 ) ;
var _pdfjs = _ _w _pdfjs _require _ _ ( 0 ) ;
var _pdfjs2 = _interopRequireDefault ( _pdfjs ) ;
var _pdf _page _view = _ _w _pdfjs _require _ _ ( 6 ) ;
var _pdf _single _page _viewer = _ _w _pdfjs _require _ _ ( 16 ) ;
var _pdf _viewer = _ _w _pdfjs _require _ _ ( 17 ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
var PDFJS = _pdfjs2 . default . PDFJS ;
PDFJS . PDFViewer = _pdf _viewer . PDFViewer ;
PDFJS . PDFSinglePageViewer = _pdf _single _page _viewer . PDFSinglePageViewer ;
PDFJS . PDFPageView = _pdf _page _view . PDFPageView ;
PDFJS . PDFLinkService = _pdf _link _service . PDFLinkService ;
PDFJS . SimpleLinkService = _pdf _link _service . SimpleLinkService ;
PDFJS . TextLayerBuilder = _text _layer _builder . TextLayerBuilder ;
PDFJS . DefaultTextLayerFactory = _text _layer _builder . DefaultTextLayerFactory ;
PDFJS . AnnotationLayerBuilder = _annotation _layer _builder . AnnotationLayerBuilder ;
PDFJS . DefaultAnnotationLayerFactory = _annotation _layer _builder . DefaultAnnotationLayerFactory ;
PDFJS . PDFHistory = _pdf _history . PDFHistory ;
PDFJS . PDFFindController = _pdf _find _controller . PDFFindController ;
PDFJS . EventBus = _ui _utils . EventBus ;
PDFJS . DownloadManager = _download _manager . DownloadManager ;
PDFJS . ProgressBar = _ui _utils . ProgressBar ;
PDFJS . GenericL10n = _genericl10n . GenericL10n ;
PDFJS . NullL10n = _ui _utils . NullL10n ;
exports . PDFJS = PDFJS ;
/***/ } ) ,
/* 10 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . DownloadManager = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
;
function _download ( blobUrl , filename ) {
var a = document . createElement ( 'a' ) ;
if ( ! a . click ) {
throw new Error ( 'DownloadManager: "a.click()" is not supported.' ) ;
}
a . href = blobUrl ;
a . target = '_parent' ;
if ( 'download' in a ) {
a . download = filename ;
}
( document . body || document . documentElement ) . appendChild ( a ) ;
a . click ( ) ;
a . remove ( ) ;
}
var DownloadManager = function ( ) {
function DownloadManager ( ) {
_classCallCheck ( this , DownloadManager ) ;
}
_createClass ( DownloadManager , [ {
key : 'downloadUrl' ,
value : function downloadUrl ( url , filename ) {
if ( ! ( 0 , _pdfjsLib . createValidAbsoluteUrl ) ( url , 'http://example.com' ) ) {
return ;
}
_download ( url + '#pdfjs.action=download' , filename ) ;
}
} , {
key : 'downloadData' ,
value : function downloadData ( data , filename , contentType ) {
if ( navigator . msSaveBlob ) {
return navigator . msSaveBlob ( new Blob ( [ data ] , { type : contentType } ) , filename ) ;
}
var blobUrl = ( 0 , _pdfjsLib . createObjectURL ) ( data , contentType , _pdfjsLib . PDFJS . disableCreateObjectURL ) ;
_download ( blobUrl , filename ) ;
}
} , {
key : 'download' ,
value : function download ( blob , url , filename ) {
if ( navigator . msSaveBlob ) {
if ( ! navigator . msSaveBlob ( blob , filename ) ) {
this . downloadUrl ( url , filename ) ;
}
return ;
}
if ( _pdfjsLib . PDFJS . disableCreateObjectURL ) {
this . downloadUrl ( url , filename ) ;
return ;
}
var blobUrl = URL . createObjectURL ( blob ) ;
_download ( blobUrl , filename ) ;
}
} ] ) ;
return DownloadManager ;
} ( ) ;
exports . DownloadManager = DownloadManager ;
/***/ } ) ,
/* 11 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . GenericL10n = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
_ _w _pdfjs _require _ _ ( 12 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var webL10n = document . webL10n ;
var GenericL10n = function ( ) {
function GenericL10n ( lang ) {
_classCallCheck ( this , GenericL10n ) ;
this . _lang = lang ;
this . _ready = new Promise ( function ( resolve , reject ) {
webL10n . setLanguage ( lang , function ( ) {
resolve ( webL10n ) ;
} ) ;
} ) ;
}
_createClass ( GenericL10n , [ {
key : 'getDirection' ,
value : function getDirection ( ) {
return this . _ready . then ( function ( l10n ) {
return l10n . getDirection ( ) ;
} ) ;
}
} , {
key : 'get' ,
value : function get ( property , args , fallback ) {
return this . _ready . then ( function ( l10n ) {
return l10n . get ( property , args , fallback ) ;
} ) ;
}
} , {
key : 'translate' ,
value : function translate ( element ) {
return this . _ready . then ( function ( l10n ) {
return l10n . translate ( element ) ;
} ) ;
}
} ] ) ;
return GenericL10n ;
} ( ) ;
exports . GenericL10n = GenericL10n ;
/***/ } ) ,
/* 12 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
document . webL10n = function ( window , document , undefined ) {
var gL10nData = { } ;
var gTextData = '' ;
var gTextProp = 'textContent' ;
var gLanguage = '' ;
var gMacros = { } ;
var gReadyState = 'loading' ;
var gAsyncResourceLoading = true ;
function getL10nResourceLinks ( ) {
return document . querySelectorAll ( 'link[type="application/l10n"]' ) ;
}
function getL10nDictionary ( ) {
var script = document . querySelector ( 'script[type="application/l10n"]' ) ;
return script ? JSON . parse ( script . innerHTML ) : null ;
}
function getTranslatableChildren ( element ) {
return element ? element . querySelectorAll ( '*[data-l10n-id]' ) : [ ] ;
}
function getL10nAttributes ( element ) {
if ( ! element ) return { } ;
var l10nId = element . getAttribute ( 'data-l10n-id' ) ;
var l10nArgs = element . getAttribute ( 'data-l10n-args' ) ;
var args = { } ;
if ( l10nArgs ) {
try {
args = JSON . parse ( l10nArgs ) ;
} catch ( e ) {
console . warn ( 'could not parse arguments for #' + l10nId ) ;
}
}
return {
id : l10nId ,
args : args
} ;
}
function fireL10nReadyEvent ( lang ) {
var evtObject = document . createEvent ( 'Event' ) ;
evtObject . initEvent ( 'localized' , true , false ) ;
evtObject . language = lang ;
document . dispatchEvent ( evtObject ) ;
}
function xhrLoadText ( url , onSuccess , onFailure ) {
onSuccess = onSuccess || function _onSuccess ( data ) { } ;
onFailure = onFailure || function _onFailure ( ) { } ;
var xhr = new XMLHttpRequest ( ) ;
xhr . open ( 'GET' , url , gAsyncResourceLoading ) ;
if ( xhr . overrideMimeType ) {
xhr . overrideMimeType ( 'text/plain; charset=utf-8' ) ;
}
xhr . onreadystatechange = function ( ) {
if ( xhr . readyState == 4 ) {
if ( xhr . status == 200 || xhr . status === 0 ) {
onSuccess ( xhr . responseText ) ;
} else {
onFailure ( ) ;
}
}
} ;
xhr . onerror = onFailure ;
xhr . ontimeout = onFailure ;
try {
xhr . send ( null ) ;
} catch ( e ) {
onFailure ( ) ;
}
}
function parseResource ( href , lang , successCallback , failureCallback ) {
var baseURL = href . replace ( /[^\/]*$/ , '' ) || './' ;
function evalString ( text ) {
if ( text . lastIndexOf ( '\\' ) < 0 ) return text ;
return text . replace ( /\\\\/g , '\\' ) . replace ( /\\n/g , '\n' ) . replace ( /\\r/g , '\r' ) . replace ( /\\t/g , '\t' ) . replace ( /\\b/g , '\b' ) . replace ( /\\f/g , '\f' ) . replace ( /\\{/g , '{' ) . replace ( /\\}/g , '}' ) . replace ( /\\"/g , '"' ) . replace ( /\\'/g , "'" ) ;
}
function parseProperties ( text , parsedPropertiesCallback ) {
var dictionary = { } ;
var reBlank = /^\s*|\s*$/ ;
var reComment = /^\s*#|^\s*$/ ;
var reSection = /^\s*\[(.*)\]\s*$/ ;
var reImport = /^\s*@import\s+url\((.*)\)\s*$/i ;
var reSplit = /^([^=\s]*)\s*=\s*(.+)$/ ;
function parseRawLines ( rawText , extendedSyntax , parsedRawLinesCallback ) {
var entries = rawText . replace ( reBlank , '' ) . split ( /[\r\n]+/ ) ;
var currentLang = '*' ;
var genericLang = lang . split ( '-' , 1 ) [ 0 ] ;
var skipLang = false ;
var match = '' ;
function nextEntry ( ) {
while ( true ) {
if ( ! entries . length ) {
parsedRawLinesCallback ( ) ;
return ;
}
var line = entries . shift ( ) ;
if ( reComment . test ( line ) ) continue ;
if ( extendedSyntax ) {
match = reSection . exec ( line ) ;
if ( match ) {
currentLang = match [ 1 ] . toLowerCase ( ) ;
skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang ;
continue ;
} else if ( skipLang ) {
continue ;
}
match = reImport . exec ( line ) ;
if ( match ) {
loadImport ( baseURL + match [ 1 ] , nextEntry ) ;
return ;
}
}
var tmp = line . match ( reSplit ) ;
if ( tmp && tmp . length == 3 ) {
dictionary [ tmp [ 1 ] ] = evalString ( tmp [ 2 ] ) ;
}
}
}
nextEntry ( ) ;
}
function loadImport ( url , callback ) {
xhrLoadText ( url , function ( content ) {
parseRawLines ( content , false , callback ) ;
} , function ( ) {
console . warn ( url + ' not found.' ) ;
callback ( ) ;
} ) ;
}
parseRawLines ( text , true , function ( ) {
parsedPropertiesCallback ( dictionary ) ;
} ) ;
}
xhrLoadText ( href , function ( response ) {
gTextData += response ;
parseProperties ( response , function ( data ) {
for ( var key in data ) {
var id ,
prop ,
index = key . lastIndexOf ( '.' ) ;
if ( index > 0 ) {
id = key . substring ( 0 , index ) ;
prop = key . substr ( index + 1 ) ;
} else {
id = key ;
prop = gTextProp ;
}
if ( ! gL10nData [ id ] ) {
gL10nData [ id ] = { } ;
}
gL10nData [ id ] [ prop ] = data [ key ] ;
}
if ( successCallback ) {
successCallback ( ) ;
}
} ) ;
} , failureCallback ) ;
}
function loadLocale ( lang , callback ) {
if ( lang ) {
lang = lang . toLowerCase ( ) ;
}
callback = callback || function _callback ( ) { } ;
clear ( ) ;
gLanguage = lang ;
var langLinks = getL10nResourceLinks ( ) ;
var langCount = langLinks . length ;
if ( langCount === 0 ) {
var dict = getL10nDictionary ( ) ;
if ( dict && dict . locales && dict . default _locale ) {
console . log ( 'using the embedded JSON directory, early way out' ) ;
gL10nData = dict . locales [ lang ] ;
if ( ! gL10nData ) {
var defaultLocale = dict . default _locale . toLowerCase ( ) ;
for ( var anyCaseLang in dict . locales ) {
anyCaseLang = anyCaseLang . toLowerCase ( ) ;
if ( anyCaseLang === lang ) {
gL10nData = dict . locales [ lang ] ;
break ;
} else if ( anyCaseLang === defaultLocale ) {
gL10nData = dict . locales [ defaultLocale ] ;
}
}
}
callback ( ) ;
} else {
console . log ( 'no resource to load, early way out' ) ;
}
fireL10nReadyEvent ( lang ) ;
gReadyState = 'complete' ;
return ;
}
var onResourceLoaded = null ;
var gResourceCount = 0 ;
onResourceLoaded = function onResourceLoaded ( ) {
gResourceCount ++ ;
if ( gResourceCount >= langCount ) {
callback ( ) ;
fireL10nReadyEvent ( lang ) ;
gReadyState = 'complete' ;
}
} ;
function L10nResourceLink ( link ) {
var href = link . href ;
this . load = function ( lang , callback ) {
parseResource ( href , lang , callback , function ( ) {
console . warn ( href + ' not found.' ) ;
console . warn ( '"' + lang + '" resource not found' ) ;
gLanguage = '' ;
callback ( ) ;
} ) ;
} ;
}
for ( var i = 0 ; i < langCount ; i ++ ) {
var resource = new L10nResourceLink ( langLinks [ i ] ) ;
resource . load ( lang , onResourceLoaded ) ;
}
}
function clear ( ) {
gL10nData = { } ;
gTextData = '' ;
gLanguage = '' ;
}
function getPluralRules ( lang ) {
var locales2rules = {
'af' : 3 ,
'ak' : 4 ,
'am' : 4 ,
'ar' : 1 ,
'asa' : 3 ,
'az' : 0 ,
'be' : 11 ,
'bem' : 3 ,
'bez' : 3 ,
'bg' : 3 ,
'bh' : 4 ,
'bm' : 0 ,
'bn' : 3 ,
'bo' : 0 ,
'br' : 20 ,
'brx' : 3 ,
'bs' : 11 ,
'ca' : 3 ,
'cgg' : 3 ,
'chr' : 3 ,
'cs' : 12 ,
'cy' : 17 ,
'da' : 3 ,
'de' : 3 ,
'dv' : 3 ,
'dz' : 0 ,
'ee' : 3 ,
'el' : 3 ,
'en' : 3 ,
'eo' : 3 ,
'es' : 3 ,
'et' : 3 ,
'eu' : 3 ,
'fa' : 0 ,
'ff' : 5 ,
'fi' : 3 ,
'fil' : 4 ,
'fo' : 3 ,
'fr' : 5 ,
'fur' : 3 ,
'fy' : 3 ,
'ga' : 8 ,
'gd' : 24 ,
'gl' : 3 ,
'gsw' : 3 ,
'gu' : 3 ,
'guw' : 4 ,
'gv' : 23 ,
'ha' : 3 ,
'haw' : 3 ,
'he' : 2 ,
'hi' : 4 ,
'hr' : 11 ,
'hu' : 0 ,
'id' : 0 ,
'ig' : 0 ,
'ii' : 0 ,
'is' : 3 ,
'it' : 3 ,
'iu' : 7 ,
'ja' : 0 ,
'jmc' : 3 ,
'jv' : 0 ,
'ka' : 0 ,
'kab' : 5 ,
'kaj' : 3 ,
'kcg' : 3 ,
'kde' : 0 ,
'kea' : 0 ,
'kk' : 3 ,
'kl' : 3 ,
'km' : 0 ,
'kn' : 0 ,
'ko' : 0 ,
'ksb' : 3 ,
'ksh' : 21 ,
'ku' : 3 ,
'kw' : 7 ,
'lag' : 18 ,
'lb' : 3 ,
'lg' : 3 ,
'ln' : 4 ,
'lo' : 0 ,
'lt' : 10 ,
'lv' : 6 ,
'mas' : 3 ,
'mg' : 4 ,
'mk' : 16 ,
'ml' : 3 ,
'mn' : 3 ,
'mo' : 9 ,
'mr' : 3 ,
'ms' : 0 ,
'mt' : 15 ,
'my' : 0 ,
'nah' : 3 ,
'naq' : 7 ,
'nb' : 3 ,
'nd' : 3 ,
'ne' : 3 ,
'nl' : 3 ,
'nn' : 3 ,
'no' : 3 ,
'nr' : 3 ,
'nso' : 4 ,
'ny' : 3 ,
'nyn' : 3 ,
'om' : 3 ,
'or' : 3 ,
'pa' : 3 ,
'pap' : 3 ,
'pl' : 13 ,
'ps' : 3 ,
'pt' : 3 ,
'rm' : 3 ,
'ro' : 9 ,
'rof' : 3 ,
'ru' : 11 ,
'rwk' : 3 ,
'sah' : 0 ,
'saq' : 3 ,
'se' : 7 ,
'seh' : 3 ,
'ses' : 0 ,
'sg' : 0 ,
'sh' : 11 ,
'shi' : 19 ,
'sk' : 12 ,
'sl' : 14 ,
'sma' : 7 ,
'smi' : 7 ,
'smj' : 7 ,
'smn' : 7 ,
'sms' : 7 ,
'sn' : 3 ,
'so' : 3 ,
'sq' : 3 ,
'sr' : 11 ,
'ss' : 3 ,
'ssy' : 3 ,
'st' : 3 ,
'sv' : 3 ,
'sw' : 3 ,
'syr' : 3 ,
'ta' : 3 ,
'te' : 3 ,
'teo' : 3 ,
'th' : 0 ,
'ti' : 4 ,
'tig' : 3 ,
'tk' : 3 ,
'tl' : 4 ,
'tn' : 3 ,
'to' : 0 ,
'tr' : 0 ,
'ts' : 3 ,
'tzm' : 22 ,
'uk' : 11 ,
'ur' : 3 ,
've' : 3 ,
'vi' : 0 ,
'vun' : 3 ,
'wa' : 4 ,
'wae' : 3 ,
'wo' : 0 ,
'xh' : 3 ,
'xog' : 3 ,
'yo' : 0 ,
'zh' : 0 ,
'zu' : 3
} ;
function isIn ( n , list ) {
return list . indexOf ( n ) !== - 1 ;
}
function isBetween ( n , start , end ) {
return start <= n && n <= end ;
}
var pluralRules = {
'0' : function _ ( n ) {
return 'other' ;
} ,
'1' : function _ ( n ) {
if ( isBetween ( n % 100 , 3 , 10 ) ) return 'few' ;
if ( n === 0 ) return 'zero' ;
if ( isBetween ( n % 100 , 11 , 99 ) ) return 'many' ;
if ( n == 2 ) return 'two' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'2' : function _ ( n ) {
if ( n !== 0 && n % 10 === 0 ) return 'many' ;
if ( n == 2 ) return 'two' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'3' : function _ ( n ) {
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'4' : function _ ( n ) {
if ( isBetween ( n , 0 , 1 ) ) return 'one' ;
return 'other' ;
} ,
'5' : function _ ( n ) {
if ( isBetween ( n , 0 , 2 ) && n != 2 ) return 'one' ;
return 'other' ;
} ,
'6' : function _ ( n ) {
if ( n === 0 ) return 'zero' ;
if ( n % 10 == 1 && n % 100 != 11 ) return 'one' ;
return 'other' ;
} ,
'7' : function _ ( n ) {
if ( n == 2 ) return 'two' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'8' : function _ ( n ) {
if ( isBetween ( n , 3 , 6 ) ) return 'few' ;
if ( isBetween ( n , 7 , 10 ) ) return 'many' ;
if ( n == 2 ) return 'two' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'9' : function _ ( n ) {
if ( n === 0 || n != 1 && isBetween ( n % 100 , 1 , 19 ) ) return 'few' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'10' : function _ ( n ) {
if ( isBetween ( n % 10 , 2 , 9 ) && ! isBetween ( n % 100 , 11 , 19 ) ) return 'few' ;
if ( n % 10 == 1 && ! isBetween ( n % 100 , 11 , 19 ) ) return 'one' ;
return 'other' ;
} ,
'11' : function _ ( n ) {
if ( isBetween ( n % 10 , 2 , 4 ) && ! isBetween ( n % 100 , 12 , 14 ) ) return 'few' ;
if ( n % 10 === 0 || isBetween ( n % 10 , 5 , 9 ) || isBetween ( n % 100 , 11 , 14 ) ) return 'many' ;
if ( n % 10 == 1 && n % 100 != 11 ) return 'one' ;
return 'other' ;
} ,
'12' : function _ ( n ) {
if ( isBetween ( n , 2 , 4 ) ) return 'few' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'13' : function _ ( n ) {
if ( isBetween ( n % 10 , 2 , 4 ) && ! isBetween ( n % 100 , 12 , 14 ) ) return 'few' ;
if ( n != 1 && isBetween ( n % 10 , 0 , 1 ) || isBetween ( n % 10 , 5 , 9 ) || isBetween ( n % 100 , 12 , 14 ) ) return 'many' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'14' : function _ ( n ) {
if ( isBetween ( n % 100 , 3 , 4 ) ) return 'few' ;
if ( n % 100 == 2 ) return 'two' ;
if ( n % 100 == 1 ) return 'one' ;
return 'other' ;
} ,
'15' : function _ ( n ) {
if ( n === 0 || isBetween ( n % 100 , 2 , 10 ) ) return 'few' ;
if ( isBetween ( n % 100 , 11 , 19 ) ) return 'many' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'16' : function _ ( n ) {
if ( n % 10 == 1 && n != 11 ) return 'one' ;
return 'other' ;
} ,
'17' : function _ ( n ) {
if ( n == 3 ) return 'few' ;
if ( n === 0 ) return 'zero' ;
if ( n == 6 ) return 'many' ;
if ( n == 2 ) return 'two' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'18' : function _ ( n ) {
if ( n === 0 ) return 'zero' ;
if ( isBetween ( n , 0 , 2 ) && n !== 0 && n != 2 ) return 'one' ;
return 'other' ;
} ,
'19' : function _ ( n ) {
if ( isBetween ( n , 2 , 10 ) ) return 'few' ;
if ( isBetween ( n , 0 , 1 ) ) return 'one' ;
return 'other' ;
} ,
'20' : function _ ( n ) {
if ( ( isBetween ( n % 10 , 3 , 4 ) || n % 10 == 9 ) && ! ( isBetween ( n % 100 , 10 , 19 ) || isBetween ( n % 100 , 70 , 79 ) || isBetween ( n % 100 , 90 , 99 ) ) ) return 'few' ;
if ( n % 1000000 === 0 && n !== 0 ) return 'many' ;
if ( n % 10 == 2 && ! isIn ( n % 100 , [ 12 , 72 , 92 ] ) ) return 'two' ;
if ( n % 10 == 1 && ! isIn ( n % 100 , [ 11 , 71 , 91 ] ) ) return 'one' ;
return 'other' ;
} ,
'21' : function _ ( n ) {
if ( n === 0 ) return 'zero' ;
if ( n == 1 ) return 'one' ;
return 'other' ;
} ,
'22' : function _ ( n ) {
if ( isBetween ( n , 0 , 1 ) || isBetween ( n , 11 , 99 ) ) return 'one' ;
return 'other' ;
} ,
'23' : function _ ( n ) {
if ( isBetween ( n % 10 , 1 , 2 ) || n % 20 === 0 ) return 'one' ;
return 'other' ;
} ,
'24' : function _ ( n ) {
if ( isBetween ( n , 3 , 10 ) || isBetween ( n , 13 , 19 ) ) return 'few' ;
if ( isIn ( n , [ 2 , 12 ] ) ) return 'two' ;
if ( isIn ( n , [ 1 , 11 ] ) ) return 'one' ;
return 'other' ;
}
} ;
var index = locales2rules [ lang . replace ( /-.*$/ , '' ) ] ;
if ( ! ( index in pluralRules ) ) {
console . warn ( 'plural form unknown for [' + lang + ']' ) ;
return function ( ) {
return 'other' ;
} ;
}
return pluralRules [ index ] ;
}
gMacros . plural = function ( str , param , key , prop ) {
var n = parseFloat ( param ) ;
if ( isNaN ( n ) ) return str ;
if ( prop != gTextProp ) return str ;
if ( ! gMacros . _pluralRules ) {
gMacros . _pluralRules = getPluralRules ( gLanguage ) ;
}
var index = '[' + gMacros . _pluralRules ( n ) + ']' ;
if ( n === 0 && key + '[zero]' in gL10nData ) {
str = gL10nData [ key + '[zero]' ] [ prop ] ;
} else if ( n == 1 && key + '[one]' in gL10nData ) {
str = gL10nData [ key + '[one]' ] [ prop ] ;
} else if ( n == 2 && key + '[two]' in gL10nData ) {
str = gL10nData [ key + '[two]' ] [ prop ] ;
} else if ( key + index in gL10nData ) {
str = gL10nData [ key + index ] [ prop ] ;
} else if ( key + '[other]' in gL10nData ) {
str = gL10nData [ key + '[other]' ] [ prop ] ;
}
return str ;
} ;
function getL10nData ( key , args , fallback ) {
var data = gL10nData [ key ] ;
if ( ! data ) {
console . warn ( '#' + key + ' is undefined.' ) ;
if ( ! fallback ) {
return null ;
}
data = fallback ;
}
var rv = { } ;
for ( var prop in data ) {
var str = data [ prop ] ;
str = substIndexes ( str , args , key , prop ) ;
str = substArguments ( str , args , key ) ;
rv [ prop ] = str ;
}
return rv ;
}
function substIndexes ( str , args , key , prop ) {
var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/ ;
var reMatch = reIndex . exec ( str ) ;
if ( ! reMatch || ! reMatch . length ) return str ;
var macroName = reMatch [ 1 ] ;
var paramName = reMatch [ 2 ] ;
var param ;
if ( args && paramName in args ) {
param = args [ paramName ] ;
} else if ( paramName in gL10nData ) {
param = gL10nData [ paramName ] ;
}
if ( macroName in gMacros ) {
var macro = gMacros [ macroName ] ;
str = macro ( str , param , key , prop ) ;
}
return str ;
}
function substArguments ( str , args , key ) {
var reArgs = /\{\{\s*(.+?)\s*\}\}/g ;
return str . replace ( reArgs , function ( matched _text , arg ) {
if ( args && arg in args ) {
return args [ arg ] ;
}
if ( arg in gL10nData ) {
return gL10nData [ arg ] ;
}
console . log ( 'argument {{' + arg + '}} for #' + key + ' is undefined.' ) ;
return matched _text ;
} ) ;
}
function translateElement ( element ) {
var l10n = getL10nAttributes ( element ) ;
if ( ! l10n . id ) return ;
var data = getL10nData ( l10n . id , l10n . args ) ;
if ( ! data ) {
console . warn ( '#' + l10n . id + ' is undefined.' ) ;
return ;
}
if ( data [ gTextProp ] ) {
if ( getChildElementCount ( element ) === 0 ) {
element [ gTextProp ] = data [ gTextProp ] ;
} else {
var children = element . childNodes ;
var found = false ;
for ( var i = 0 , l = children . length ; i < l ; i ++ ) {
if ( children [ i ] . nodeType === 3 && /\S/ . test ( children [ i ] . nodeValue ) ) {
if ( found ) {
children [ i ] . nodeValue = '' ;
} else {
children [ i ] . nodeValue = data [ gTextProp ] ;
found = true ;
}
}
}
if ( ! found ) {
var textNode = document . createTextNode ( data [ gTextProp ] ) ;
element . insertBefore ( textNode , element . firstChild ) ;
}
}
delete data [ gTextProp ] ;
}
for ( var k in data ) {
element [ k ] = data [ k ] ;
}
}
function getChildElementCount ( element ) {
if ( element . children ) {
return element . children . length ;
}
if ( typeof element . childElementCount !== 'undefined' ) {
return element . childElementCount ;
}
var count = 0 ;
for ( var i = 0 ; i < element . childNodes . length ; i ++ ) {
count += element . nodeType === 1 ? 1 : 0 ;
}
return count ;
}
function translateFragment ( element ) {
element = element || document . documentElement ;
var children = getTranslatableChildren ( element ) ;
var elementCount = children . length ;
for ( var i = 0 ; i < elementCount ; i ++ ) {
translateElement ( children [ i ] ) ;
}
translateElement ( element ) ;
}
return {
get : function get ( key , args , fallbackString ) {
var index = key . lastIndexOf ( '.' ) ;
var prop = gTextProp ;
if ( index > 0 ) {
prop = key . substr ( index + 1 ) ;
key = key . substring ( 0 , index ) ;
}
var fallback ;
if ( fallbackString ) {
fallback = { } ;
fallback [ prop ] = fallbackString ;
}
var data = getL10nData ( key , args , fallback ) ;
if ( data && prop in data ) {
return data [ prop ] ;
}
return '{{' + key + '}}' ;
} ,
getData : function getData ( ) {
return gL10nData ;
} ,
getText : function getText ( ) {
return gTextData ;
} ,
getLanguage : function getLanguage ( ) {
return gLanguage ;
} ,
setLanguage : function setLanguage ( lang , callback ) {
loadLocale ( lang , function ( ) {
if ( callback ) callback ( ) ;
} ) ;
} ,
getDirection : function getDirection ( ) {
var rtlList = [ 'ar' , 'he' , 'fa' , 'ps' , 'ur' ] ;
var shortCode = gLanguage . split ( '-' , 1 ) [ 0 ] ;
return rtlList . indexOf ( shortCode ) >= 0 ? 'rtl' : 'ltr' ;
} ,
translate : translateFragment ,
getReadyState : function getReadyState ( ) {
return gReadyState ;
} ,
ready : function ready ( callback ) {
if ( ! callback ) {
return ;
} else if ( gReadyState == 'complete' || gReadyState == 'interactive' ) {
window . setTimeout ( function ( ) {
callback ( ) ;
} ) ;
} else if ( document . addEventListener ) {
document . addEventListener ( 'localized' , function once ( ) {
document . removeEventListener ( 'localized' , once ) ;
callback ( ) ;
} ) ;
}
}
} ;
} ( window , document ) ;
/***/ } ) ,
/* 13 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . PDFFindController = exports . FindState = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var FindState = {
FOUND : 0 ,
NOT _FOUND : 1 ,
WRAPPED : 2 ,
PENDING : 3
} ;
var FIND _SCROLL _OFFSET _TOP = - 50 ;
var FIND _SCROLL _OFFSET _LEFT = - 400 ;
var FIND _TIMEOUT = 250 ;
var CHARACTERS _TO _NORMALIZE = {
'\u2018' : '\'' ,
'\u2019' : '\'' ,
'\u201A' : '\'' ,
'\u201B' : '\'' ,
'\u201C' : '"' ,
'\u201D' : '"' ,
'\u201E' : '"' ,
'\u201F' : '"' ,
'\xBC' : '1/4' ,
'\xBD' : '1/2' ,
'\xBE' : '3/4'
} ;
var PDFFindController = function ( ) {
function PDFFindController ( _ref ) {
var pdfViewer = _ref . pdfViewer ;
_classCallCheck ( this , PDFFindController ) ;
this . pdfViewer = pdfViewer ;
this . onUpdateResultsCount = null ;
this . onUpdateState = null ;
this . reset ( ) ;
var replace = Object . keys ( CHARACTERS _TO _NORMALIZE ) . join ( '' ) ;
this . normalizationRegex = new RegExp ( '[' + replace + ']' , 'g' ) ;
}
_createClass ( PDFFindController , [ {
key : 'reset' ,
value : function reset ( ) {
var _this = this ;
this . startedTextExtraction = false ;
this . extractTextPromises = [ ] ;
this . pendingFindMatches = Object . create ( null ) ;
this . active = false ;
this . pageContents = [ ] ;
this . pageMatches = [ ] ;
this . pageMatchesLength = null ;
this . matchCount = 0 ;
this . selected = {
pageIdx : - 1 ,
matchIdx : - 1
} ;
this . offset = {
pageIdx : null ,
matchIdx : null
} ;
this . pagesToSearch = null ;
this . resumePageIdx = null ;
this . state = null ;
this . dirtyMatch = false ;
this . findTimeout = null ;
this . _firstPagePromise = new Promise ( function ( resolve ) {
_this . resolveFirstPage = resolve ;
} ) ;
}
} , {
key : 'executeCommand' ,
value : function executeCommand ( cmd , state ) {
var _this2 = this ;
if ( this . state === null || cmd !== 'findagain' ) {
this . dirtyMatch = true ;
}
this . state = state ;
this . _updateUIState ( FindState . PENDING ) ;
this . _firstPagePromise . then ( function ( ) {
_this2 . _extractText ( ) ;
clearTimeout ( _this2 . findTimeout ) ;
if ( cmd === 'find' ) {
_this2 . findTimeout = setTimeout ( _this2 . _nextMatch . bind ( _this2 ) , FIND _TIMEOUT ) ;
} else {
_this2 . _nextMatch ( ) ;
}
} ) ;
}
} , {
key : 'updateMatchPosition' ,
value : function updateMatchPosition ( pageIndex , matchIndex , elements , beginIdx ) {
if ( this . selected . matchIdx === matchIndex && this . selected . pageIdx === pageIndex ) {
var spot = {
top : FIND _SCROLL _OFFSET _TOP ,
left : FIND _SCROLL _OFFSET _LEFT
} ;
( 0 , _ui _utils . scrollIntoView ) ( elements [ beginIdx ] , spot , true ) ;
}
}
} , {
key : '_normalize' ,
value : function _normalize ( text ) {
return text . replace ( this . normalizationRegex , function ( ch ) {
return CHARACTERS _TO _NORMALIZE [ ch ] ;
} ) ;
}
} , {
key : '_prepareMatches' ,
value : function _prepareMatches ( matchesWithLength , matches , matchesLength ) {
function isSubTerm ( matchesWithLength , currentIndex ) {
var currentElem = matchesWithLength [ currentIndex ] ;
var nextElem = matchesWithLength [ currentIndex + 1 ] ;
if ( currentIndex < matchesWithLength . length - 1 && currentElem . match === nextElem . match ) {
currentElem . skipped = true ;
return true ;
}
for ( var i = currentIndex - 1 ; i >= 0 ; i -- ) {
var prevElem = matchesWithLength [ i ] ;
if ( prevElem . skipped ) {
continue ;
}
if ( prevElem . match + prevElem . matchLength < currentElem . match ) {
break ;
}
if ( prevElem . match + prevElem . matchLength >= currentElem . match + currentElem . matchLength ) {
currentElem . skipped = true ;
return true ;
}
}
return false ;
}
matchesWithLength . sort ( function ( a , b ) {
return a . match === b . match ? a . matchLength - b . matchLength : a . match - b . match ;
} ) ;
for ( var i = 0 , len = matchesWithLength . length ; i < len ; i ++ ) {
if ( isSubTerm ( matchesWithLength , i ) ) {
continue ;
}
matches . push ( matchesWithLength [ i ] . match ) ;
matchesLength . push ( matchesWithLength [ i ] . matchLength ) ;
}
}
} , {
key : '_calculatePhraseMatch' ,
value : function _calculatePhraseMatch ( query , pageIndex , pageContent ) {
var matches = [ ] ;
var queryLen = query . length ;
var matchIdx = - queryLen ;
while ( true ) {
matchIdx = pageContent . indexOf ( query , matchIdx + queryLen ) ;
if ( matchIdx === - 1 ) {
break ;
}
matches . push ( matchIdx ) ;
}
this . pageMatches [ pageIndex ] = matches ;
}
} , {
key : '_calculateWordMatch' ,
value : function _calculateWordMatch ( query , pageIndex , pageContent ) {
var matchesWithLength = [ ] ;
var queryArray = query . match ( /\S+/g ) ;
for ( var i = 0 , len = queryArray . length ; i < len ; i ++ ) {
var subquery = queryArray [ i ] ;
var subqueryLen = subquery . length ;
var matchIdx = - subqueryLen ;
while ( true ) {
matchIdx = pageContent . indexOf ( subquery , matchIdx + subqueryLen ) ;
if ( matchIdx === - 1 ) {
break ;
}
matchesWithLength . push ( {
match : matchIdx ,
matchLength : subqueryLen ,
skipped : false
} ) ;
}
}
if ( ! this . pageMatchesLength ) {
this . pageMatchesLength = [ ] ;
}
this . pageMatchesLength [ pageIndex ] = [ ] ;
this . pageMatches [ pageIndex ] = [ ] ;
this . _prepareMatches ( matchesWithLength , this . pageMatches [ pageIndex ] , this . pageMatchesLength [ pageIndex ] ) ;
}
} , {
key : '_calculateMatch' ,
value : function _calculateMatch ( pageIndex ) {
var pageContent = this . _normalize ( this . pageContents [ pageIndex ] ) ;
var query = this . _normalize ( this . state . query ) ;
var caseSensitive = this . state . caseSensitive ;
var phraseSearch = this . state . phraseSearch ;
var queryLen = query . length ;
if ( queryLen === 0 ) {
return ;
}
if ( ! caseSensitive ) {
pageContent = pageContent . toLowerCase ( ) ;
query = query . toLowerCase ( ) ;
}
if ( phraseSearch ) {
this . _calculatePhraseMatch ( query , pageIndex , pageContent ) ;
} else {
this . _calculateWordMatch ( query , pageIndex , pageContent ) ;
}
this . _updatePage ( pageIndex ) ;
if ( this . resumePageIdx === pageIndex ) {
this . resumePageIdx = null ;
this . _nextPageMatch ( ) ;
}
if ( this . pageMatches [ pageIndex ] . length > 0 ) {
this . matchCount += this . pageMatches [ pageIndex ] . length ;
this . _updateUIResultsCount ( ) ;
}
}
} , {
key : '_extractText' ,
value : function _extractText ( ) {
var _this3 = this ;
if ( this . startedTextExtraction ) {
return ;
}
this . startedTextExtraction = true ;
this . pageContents . length = 0 ;
var promise = Promise . resolve ( ) ;
var _loop = function _loop ( i , ii ) {
var extractTextCapability = ( 0 , _pdfjsLib . createPromiseCapability ) ( ) ;
_this3 . extractTextPromises [ i ] = extractTextCapability . promise ;
promise = promise . then ( function ( ) {
return _this3 . pdfViewer . getPageTextContent ( i ) . then ( function ( textContent ) {
var textItems = textContent . items ;
var strBuf = [ ] ;
for ( var j = 0 , jj = textItems . length ; j < jj ; j ++ ) {
strBuf . push ( textItems [ j ] . str ) ;
}
_this3 . pageContents [ i ] = strBuf . join ( '' ) ;
extractTextCapability . resolve ( i ) ;
} , function ( reason ) {
console . error ( 'Unable to get page ' + ( i + 1 ) + ' text content' , reason ) ;
_this3 . pageContents [ i ] = '' ;
extractTextCapability . resolve ( i ) ;
} ) ;
} ) ;
} ;
for ( var i = 0 , ii = this . pdfViewer . pagesCount ; i < ii ; i ++ ) {
_loop ( i , ii ) ;
}
}
} , {
key : '_updatePage' ,
value : function _updatePage ( index ) {
if ( this . selected . pageIdx === index ) {
this . pdfViewer . currentPageNumber = index + 1 ;
}
var page = this . pdfViewer . getPageView ( index ) ;
if ( page . textLayer ) {
page . textLayer . updateMatches ( ) ;
}
}
} , {
key : '_nextMatch' ,
value : function _nextMatch ( ) {
var _this4 = this ;
var previous = this . state . findPrevious ;
var currentPageIndex = this . pdfViewer . currentPageNumber - 1 ;
var numPages = this . pdfViewer . pagesCount ;
this . active = true ;
if ( this . dirtyMatch ) {
this . dirtyMatch = false ;
this . selected . pageIdx = this . selected . matchIdx = - 1 ;
this . offset . pageIdx = currentPageIndex ;
this . offset . matchIdx = null ;
this . hadMatch = false ;
this . resumePageIdx = null ;
this . pageMatches = [ ] ;
this . matchCount = 0 ;
this . pageMatchesLength = null ;
for ( var i = 0 ; i < numPages ; i ++ ) {
this . _updatePage ( i ) ;
if ( ! ( i in this . pendingFindMatches ) ) {
this . pendingFindMatches [ i ] = true ;
this . extractTextPromises [ i ] . then ( function ( pageIdx ) {
delete _this4 . pendingFindMatches [ pageIdx ] ;
_this4 . _calculateMatch ( pageIdx ) ;
} ) ;
}
}
}
if ( this . state . query === '' ) {
this . _updateUIState ( FindState . FOUND ) ;
return ;
}
if ( this . resumePageIdx ) {
return ;
}
var offset = this . offset ;
this . pagesToSearch = numPages ;
if ( offset . matchIdx !== null ) {
var numPageMatches = this . pageMatches [ offset . pageIdx ] . length ;
if ( ! previous && offset . matchIdx + 1 < numPageMatches || previous && offset . matchIdx > 0 ) {
this . hadMatch = true ;
offset . matchIdx = previous ? offset . matchIdx - 1 : offset . matchIdx + 1 ;
this . _updateMatch ( true ) ;
return ;
}
this . _advanceOffsetPage ( previous ) ;
}
this . _nextPageMatch ( ) ;
}
} , {
key : '_matchesReady' ,
value : function _matchesReady ( matches ) {
var offset = this . offset ;
var numMatches = matches . length ;
var previous = this . state . findPrevious ;
if ( numMatches ) {
this . hadMatch = true ;
offset . matchIdx = previous ? numMatches - 1 : 0 ;
this . _updateMatch ( true ) ;
return true ;
}
this . _advanceOffsetPage ( previous ) ;
if ( offset . wrapped ) {
offset . matchIdx = null ;
if ( this . pagesToSearch < 0 ) {
this . _updateMatch ( false ) ;
return true ;
}
}
return false ;
}
} , {
key : '_nextPageMatch' ,
value : function _nextPageMatch ( ) {
if ( this . resumePageIdx !== null ) {
console . error ( 'There can only be one pending page.' ) ;
}
var matches = null ;
do {
var pageIdx = this . offset . pageIdx ;
matches = this . pageMatches [ pageIdx ] ;
if ( ! matches ) {
this . resumePageIdx = pageIdx ;
break ;
}
} while ( ! this . _matchesReady ( matches ) ) ;
}
} , {
key : '_advanceOffsetPage' ,
value : function _advanceOffsetPage ( previous ) {
var offset = this . offset ;
var numPages = this . extractTextPromises . length ;
offset . pageIdx = previous ? offset . pageIdx - 1 : offset . pageIdx + 1 ;
offset . matchIdx = null ;
this . pagesToSearch -- ;
if ( offset . pageIdx >= numPages || offset . pageIdx < 0 ) {
offset . pageIdx = previous ? numPages - 1 : 0 ;
offset . wrapped = true ;
}
}
} , {
key : '_updateMatch' ,
value : function _updateMatch ( ) {
var found = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : false ;
var state = FindState . NOT _FOUND ;
var wrapped = this . offset . wrapped ;
this . offset . wrapped = false ;
if ( found ) {
var previousPage = this . selected . pageIdx ;
this . selected . pageIdx = this . offset . pageIdx ;
this . selected . matchIdx = this . offset . matchIdx ;
state = wrapped ? FindState . WRAPPED : FindState . FOUND ;
if ( previousPage !== - 1 && previousPage !== this . selected . pageIdx ) {
this . _updatePage ( previousPage ) ;
}
}
this . _updateUIState ( state , this . state . findPrevious ) ;
if ( this . selected . pageIdx !== - 1 ) {
this . _updatePage ( this . selected . pageIdx ) ;
}
}
} , {
key : '_updateUIResultsCount' ,
value : function _updateUIResultsCount ( ) {
if ( this . onUpdateResultsCount ) {
this . onUpdateResultsCount ( this . matchCount ) ;
}
}
} , {
key : '_updateUIState' ,
value : function _updateUIState ( state , previous ) {
if ( this . onUpdateState ) {
this . onUpdateState ( state , previous , this . matchCount ) ;
}
}
} ] ) ;
return PDFFindController ;
} ( ) ;
exports . FindState = FindState ;
exports . PDFFindController = PDFFindController ;
/***/ } ) ,
/* 14 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . isDestArraysEqual = exports . isDestHashesEqual = exports . PDFHistory = undefined ;
var _typeof = typeof Symbol === "function" && typeof Symbol . iterator === "symbol" ? function ( obj ) { return typeof obj ; } : function ( obj ) { return obj && typeof Symbol === "function" && obj . constructor === Symbol && obj !== Symbol . prototype ? "symbol" : typeof obj ; } ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _dom _events = _ _w _pdfjs _require _ _ ( 2 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
var HASH _CHANGE _TIMEOUT = 1000 ;
var POSITION _UPDATED _THRESHOLD = 50 ;
var UPDATE _VIEWAREA _TIMEOUT = 1000 ;
function getCurrentHash ( ) {
return document . location . hash ;
}
function parseCurrentHash ( linkService ) {
var hash = unescape ( getCurrentHash ( ) ) . substring ( 1 ) ;
var params = ( 0 , _ui _utils . parseQueryString ) ( hash ) ;
var page = params . page | 0 ;
if ( ! ( Number . isInteger ( page ) && page > 0 && page <= linkService . pagesCount ) ) {
page = null ;
}
return {
hash : hash ,
page : page ,
rotation : linkService . rotation
} ;
}
var PDFHistory = function ( ) {
function PDFHistory ( _ref ) {
var _this = this ;
var linkService = _ref . linkService ,
eventBus = _ref . eventBus ;
_classCallCheck ( this , PDFHistory ) ;
this . linkService = linkService ;
this . eventBus = eventBus || ( 0 , _dom _events . getGlobalEventBus ) ( ) ;
this . initialized = false ;
this . initialBookmark = null ;
this . initialRotation = null ;
this . _boundEvents = Object . create ( null ) ;
this . _isViewerInPresentationMode = false ;
this . _isPagesLoaded = false ;
this . eventBus . on ( 'presentationmodechanged' , function ( evt ) {
_this . _isViewerInPresentationMode = evt . active || evt . switchInProgress ;
} ) ;
this . eventBus . on ( 'pagesloaded' , function ( evt ) {
_this . _isPagesLoaded = ! ! evt . pagesCount ;
} ) ;
}
_createClass ( PDFHistory , [ {
key : 'initialize' ,
value : function initialize ( fingerprint ) {
var resetHistory = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
if ( ! fingerprint || typeof fingerprint !== 'string' ) {
console . error ( 'PDFHistory.initialize: The "fingerprint" must be a non-empty string.' ) ;
return ;
}
var reInitialized = this . initialized && this . fingerprint !== fingerprint ;
this . fingerprint = fingerprint ;
if ( ! this . initialized ) {
this . _bindEvents ( ) ;
}
var state = window . history . state ;
this . initialized = true ;
this . initialBookmark = null ;
this . initialRotation = null ;
this . _popStateInProgress = false ;
this . _blockHashChange = 0 ;
this . _currentHash = getCurrentHash ( ) ;
this . _numPositionUpdates = 0 ;
this . _uid = this . _maxUid = 0 ;
this . _destination = null ;
this . _position = null ;
if ( ! this . _isValidState ( state ) || resetHistory ) {
var _parseCurrentHash = parseCurrentHash ( this . linkService ) ,
hash = _parseCurrentHash . hash ,
page = _parseCurrentHash . page ,
rotation = _parseCurrentHash . rotation ;
if ( ! hash || reInitialized || resetHistory ) {
this . _pushOrReplaceState ( null , true ) ;
return ;
}
this . _pushOrReplaceState ( {
hash : hash ,
page : page ,
rotation : rotation
} , true ) ;
return ;
}
var destination = state . destination ;
this . _updateInternalState ( destination , state . uid , true ) ;
if ( this . _uid > this . _maxUid ) {
this . _maxUid = this . _uid ;
}
if ( destination . rotation !== undefined ) {
this . initialRotation = destination . rotation ;
}
if ( destination . dest ) {
this . initialBookmark = JSON . stringify ( destination . dest ) ;
this . _destination . page = null ;
} else if ( destination . hash ) {
this . initialBookmark = destination . hash ;
} else if ( destination . page ) {
this . initialBookmark = 'page=' + destination . page ;
}
}
} , {
key : 'push' ,
value : function push ( _ref2 ) {
var _this2 = this ;
var namedDest = _ref2 . namedDest ,
explicitDest = _ref2 . explicitDest ,
pageNumber = _ref2 . pageNumber ;
if ( ! this . initialized ) {
return ;
}
if ( namedDest && typeof namedDest !== 'string' || ! ( explicitDest instanceof Array ) || ! ( Number . isInteger ( pageNumber ) && pageNumber > 0 && pageNumber <= this . linkService . pagesCount ) ) {
console . error ( 'PDFHistory.push: Invalid parameters.' ) ;
return ;
}
var hash = namedDest || JSON . stringify ( explicitDest ) ;
if ( ! hash ) {
return ;
}
var forceReplace = false ;
if ( this . _destination && ( isDestHashesEqual ( this . _destination . hash , hash ) || isDestArraysEqual ( this . _destination . dest , explicitDest ) ) ) {
if ( this . _destination . page ) {
return ;
}
forceReplace = true ;
}
if ( this . _popStateInProgress && ! forceReplace ) {
return ;
}
this . _pushOrReplaceState ( {
dest : explicitDest ,
hash : hash ,
page : pageNumber ,
rotation : this . linkService . rotation
} , forceReplace ) ;
if ( ! this . _popStateInProgress ) {
this . _popStateInProgress = true ;
Promise . resolve ( ) . then ( function ( ) {
_this2 . _popStateInProgress = false ;
} ) ;
}
}
} , {
key : 'pushCurrentPosition' ,
value : function pushCurrentPosition ( ) {
if ( ! this . initialized || this . _popStateInProgress ) {
return ;
}
this . _tryPushCurrentPosition ( ) ;
}
} , {
key : 'back' ,
value : function back ( ) {
if ( ! this . initialized || this . _popStateInProgress ) {
return ;
}
var state = window . history . state ;
if ( this . _isValidState ( state ) && state . uid > 0 ) {
window . history . back ( ) ;
}
}
} , {
key : 'forward' ,
value : function forward ( ) {
if ( ! this . initialized || this . _popStateInProgress ) {
return ;
}
var state = window . history . state ;
if ( this . _isValidState ( state ) && state . uid < this . _maxUid ) {
window . history . forward ( ) ;
}
}
} , {
key : '_pushOrReplaceState' ,
value : function _pushOrReplaceState ( destination ) {
var forceReplace = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
var shouldReplace = forceReplace || ! this . _destination ;
var newState = {
fingerprint : this . fingerprint ,
uid : shouldReplace ? this . _uid : this . _uid + 1 ,
destination : destination
} ;
this . _updateInternalState ( destination , newState . uid ) ;
if ( shouldReplace ) {
window . history . replaceState ( newState , '' ) ;
} else {
this . _maxUid = this . _uid ;
window . history . pushState ( newState , '' ) ;
}
}
} , {
key : '_tryPushCurrentPosition' ,
value : function _tryPushCurrentPosition ( ) {
var temporary = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : false ;
if ( ! this . _position ) {
return ;
}
var position = this . _position ;
if ( temporary ) {
position = ( 0 , _ui _utils . cloneObj ) ( this . _position ) ;
position . temporary = true ;
}
if ( ! this . _destination ) {
this . _pushOrReplaceState ( position ) ;
return ;
}
if ( this . _destination . temporary ) {
this . _pushOrReplaceState ( position , true ) ;
return ;
}
if ( this . _destination . hash === position . hash ) {
return ;
}
if ( ! this . _destination . page && ( POSITION _UPDATED _THRESHOLD <= 0 || this . _numPositionUpdates <= POSITION _UPDATED _THRESHOLD ) ) {
return ;
}
var forceReplace = false ;
if ( this . _destination . page === position . first || this . _destination . page === position . page ) {
if ( this . _destination . dest || ! this . _destination . first ) {
return ;
}
forceReplace = true ;
}
this . _pushOrReplaceState ( position , forceReplace ) ;
}
} , {
key : '_isValidState' ,
value : function _isValidState ( state ) {
if ( ! state ) {
return false ;
}
if ( state . fingerprint !== this . fingerprint ) {
return false ;
}
if ( ! Number . isInteger ( state . uid ) || state . uid < 0 ) {
return false ;
}
if ( state . destination === null || _typeof ( state . destination ) !== 'object' ) {
return false ;
}
return true ;
}
} , {
key : '_updateInternalState' ,
value : function _updateInternalState ( destination , uid ) {
var removeTemporary = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
if ( this . _updateViewareaTimeout ) {
clearTimeout ( this . _updateViewareaTimeout ) ;
this . _updateViewareaTimeout = null ;
}
if ( removeTemporary && destination && destination . temporary ) {
delete destination . temporary ;
}
this . _destination = destination ;
this . _uid = uid ;
this . _numPositionUpdates = 0 ;
}
} , {
key : '_updateViewarea' ,
value : function _updateViewarea ( _ref3 ) {
var _this3 = this ;
var location = _ref3 . location ;
if ( this . _updateViewareaTimeout ) {
clearTimeout ( this . _updateViewareaTimeout ) ;
this . _updateViewareaTimeout = null ;
}
this . _position = {
hash : this . _isViewerInPresentationMode ? 'page=' + location . pageNumber : location . pdfOpenParams . substring ( 1 ) ,
page : this . linkService . page ,
first : location . pageNumber ,
rotation : location . rotation
} ;
if ( this . _popStateInProgress ) {
return ;
}
if ( POSITION _UPDATED _THRESHOLD > 0 && this . _isPagesLoaded && this . _destination && ! this . _destination . page ) {
this . _numPositionUpdates ++ ;
}
if ( UPDATE _VIEWAREA _TIMEOUT > 0 ) {
this . _updateViewareaTimeout = setTimeout ( function ( ) {
if ( ! _this3 . _popStateInProgress ) {
_this3 . _tryPushCurrentPosition ( true ) ;
}
_this3 . _updateViewareaTimeout = null ;
} , UPDATE _VIEWAREA _TIMEOUT ) ;
}
}
} , {
key : '_popState' ,
value : function _popState ( _ref4 ) {
var _this4 = this ;
var state = _ref4 . state ;
var newHash = getCurrentHash ( ) ,
hashChanged = this . _currentHash !== newHash ;
this . _currentHash = newHash ;
if ( ! state || false ) {
this . _uid ++ ;
var _parseCurrentHash2 = parseCurrentHash ( this . linkService ) ,
hash = _parseCurrentHash2 . hash ,
page = _parseCurrentHash2 . page ,
rotation = _parseCurrentHash2 . rotation ;
this . _pushOrReplaceState ( {
hash : hash ,
page : page ,
rotation : rotation
} , true ) ;
return ;
}
if ( ! this . _isValidState ( state ) ) {
return ;
}
this . _popStateInProgress = true ;
if ( hashChanged ) {
this . _blockHashChange ++ ;
( 0 , _ui _utils . waitOnEventOrTimeout ) ( {
target : window ,
name : 'hashchange' ,
delay : HASH _CHANGE _TIMEOUT
} ) . then ( function ( ) {
_this4 . _blockHashChange -- ;
} ) ;
}
var destination = state . destination ;
this . _updateInternalState ( destination , state . uid , true ) ;
if ( this . _uid > this . _maxUid ) {
this . _maxUid = this . _uid ;
}
if ( ( 0 , _ui _utils . isValidRotation ) ( destination . rotation ) ) {
this . linkService . rotation = destination . rotation ;
}
if ( destination . dest ) {
this . linkService . navigateTo ( destination . dest ) ;
} else if ( destination . hash ) {
this . linkService . setHash ( destination . hash ) ;
} else if ( destination . page ) {
this . linkService . page = destination . page ;
}
Promise . resolve ( ) . then ( function ( ) {
_this4 . _popStateInProgress = false ;
} ) ;
}
} , {
key : '_bindEvents' ,
value : function _bindEvents ( ) {
var _this5 = this ;
var _boundEvents = this . _boundEvents ,
eventBus = this . eventBus ;
_boundEvents . updateViewarea = this . _updateViewarea . bind ( this ) ;
_boundEvents . popState = this . _popState . bind ( this ) ;
_boundEvents . pageHide = function ( evt ) {
if ( ! _this5 . _destination || _this5 . _destination . temporary ) {
_this5 . _tryPushCurrentPosition ( ) ;
}
} ;
eventBus . on ( 'updateviewarea' , _boundEvents . updateViewarea ) ;
window . addEventListener ( 'popstate' , _boundEvents . popState ) ;
window . addEventListener ( 'pagehide' , _boundEvents . pageHide ) ;
}
} , {
key : 'popStateInProgress' ,
get : function get ( ) {
return this . initialized && ( this . _popStateInProgress || this . _blockHashChange > 0 ) ;
}
} ] ) ;
return PDFHistory ;
} ( ) ;
function isDestHashesEqual ( destHash , pushHash ) {
if ( typeof destHash !== 'string' || typeof pushHash !== 'string' ) {
return false ;
}
if ( destHash === pushHash ) {
return true ;
}
var _parseQueryString = ( 0 , _ui _utils . parseQueryString ) ( destHash ) ,
nameddest = _parseQueryString . nameddest ;
if ( nameddest === pushHash ) {
return true ;
}
return false ;
}
function isDestArraysEqual ( firstDest , secondDest ) {
function isEntryEqual ( first , second ) {
if ( ( typeof first === 'undefined' ? 'undefined' : _typeof ( first ) ) !== ( typeof second === 'undefined' ? 'undefined' : _typeof ( second ) ) ) {
return false ;
}
if ( first instanceof Array || second instanceof Array ) {
return false ;
}
if ( first !== null && ( typeof first === 'undefined' ? 'undefined' : _typeof ( first ) ) === 'object' && second !== null ) {
if ( Object . keys ( first ) . length !== Object . keys ( second ) . length ) {
return false ;
}
for ( var key in first ) {
if ( ! isEntryEqual ( first [ key ] , second [ key ] ) ) {
return false ;
}
}
return true ;
}
return first === second || Number . isNaN ( first ) && Number . isNaN ( second ) ;
}
if ( ! ( firstDest instanceof Array && secondDest instanceof Array ) ) {
return false ;
}
if ( firstDest . length !== secondDest . length ) {
return false ;
}
for ( var i = 0 , ii = firstDest . length ; i < ii ; i ++ ) {
if ( ! isEntryEqual ( firstDest [ i ] , secondDest [ i ] ) ) {
return false ;
}
}
return true ;
}
exports . PDFHistory = PDFHistory ;
exports . isDestHashesEqual = isDestHashesEqual ;
exports . isDestArraysEqual = isDestArraysEqual ;
/***/ } ) ,
/* 15 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var compatibilityParams = Object . create ( null ) ;
{
var userAgent = typeof navigator !== 'undefined' && navigator . userAgent || '' ;
var isAndroid = /Android/ . test ( userAgent ) ;
var isIE = /Trident/ . test ( userAgent ) ;
var isIOS = /\b(iPad|iPhone|iPod)(?=;)/ . test ( userAgent ) ;
( function checkFullscreenSupport ( ) {
if ( isIE && window . parent !== window ) {
compatibilityParams . disableFullscreen = true ;
}
} ) ( ) ;
( function checkCanvasSizeLimitation ( ) {
if ( isIOS || isAndroid ) {
compatibilityParams . maxCanvasPixels = 5242880 ;
}
} ) ( ) ;
}
var viewerCompatibilityParams = Object . freeze ( compatibilityParams ) ;
exports . viewerCompatibilityParams = viewerCompatibilityParams ;
/***/ } ) ,
/* 16 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . PDFSinglePageViewer = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _get = function get ( object , property , receiver ) { if ( object === null ) object = Function . prototype ; var desc = Object . getOwnPropertyDescriptor ( object , property ) ; if ( desc === undefined ) { var parent = Object . getPrototypeOf ( object ) ; if ( parent === null ) { return undefined ; } else { return get ( parent , property , receiver ) ; } } else if ( "value" in desc ) { return desc . value ; } else { var getter = desc . get ; if ( getter === undefined ) { return undefined ; } return getter . call ( receiver ) ; } } ;
var _base _viewer = _ _w _pdfjs _require _ _ ( 8 ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
function _possibleConstructorReturn ( self , call ) { if ( ! self ) { throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ; } return call && ( typeof call === "object" || typeof call === "function" ) ? call : self ; }
function _inherits ( subClass , superClass ) { if ( typeof superClass !== "function" && superClass !== null ) { throw new TypeError ( "Super expression must either be null or a function, not " + typeof superClass ) ; } subClass . prototype = Object . create ( superClass && superClass . prototype , { constructor : { value : subClass , enumerable : false , writable : true , configurable : true } } ) ; if ( superClass ) Object . setPrototypeOf ? Object . setPrototypeOf ( subClass , superClass ) : subClass . _ _proto _ _ = superClass ; }
var PDFSinglePageViewer = function ( _BaseViewer ) {
_inherits ( PDFSinglePageViewer , _BaseViewer ) ;
function PDFSinglePageViewer ( options ) {
_classCallCheck ( this , PDFSinglePageViewer ) ;
var _this = _possibleConstructorReturn ( this , ( PDFSinglePageViewer . _ _proto _ _ || Object . getPrototypeOf ( PDFSinglePageViewer ) ) . call ( this , options ) ) ;
_this . eventBus . on ( 'pagesinit' , function ( evt ) {
_this . _ensurePageViewVisible ( ) ;
} ) ;
return _this ;
}
_createClass ( PDFSinglePageViewer , [ {
key : '_resetView' ,
value : function _resetView ( ) {
_get ( PDFSinglePageViewer . prototype . _ _proto _ _ || Object . getPrototypeOf ( PDFSinglePageViewer . prototype ) , '_resetView' , this ) . call ( this ) ;
this . _previousPageNumber = 1 ;
this . _shadowViewer = document . createDocumentFragment ( ) ;
}
} , {
key : '_ensurePageViewVisible' ,
value : function _ensurePageViewVisible ( ) {
var pageView = this . _pages [ this . _currentPageNumber - 1 ] ;
var previousPageView = this . _pages [ this . _previousPageNumber - 1 ] ;
var viewerNodes = this . viewer . childNodes ;
switch ( viewerNodes . length ) {
case 0 :
this . viewer . appendChild ( pageView . div ) ;
break ;
case 1 :
if ( viewerNodes [ 0 ] !== previousPageView . div ) {
throw new Error ( '_ensurePageViewVisible: Unexpected previously visible page.' ) ;
}
if ( pageView === previousPageView ) {
break ;
}
this . _shadowViewer . appendChild ( previousPageView . div ) ;
this . viewer . appendChild ( pageView . div ) ;
this . container . scrollTop = 0 ;
break ;
default :
throw new Error ( '_ensurePageViewVisible: Only one page should be visible at a time.' ) ;
}
this . _previousPageNumber = this . _currentPageNumber ;
}
} , {
key : '_scrollUpdate' ,
value : function _scrollUpdate ( ) {
if ( this . _updateScrollDown ) {
this . _updateScrollDown ( ) ;
}
_get ( PDFSinglePageViewer . prototype . _ _proto _ _ || Object . getPrototypeOf ( PDFSinglePageViewer . prototype ) , '_scrollUpdate' , this ) . call ( this ) ;
}
} , {
key : '_scrollIntoView' ,
value : function _scrollIntoView ( _ref ) {
var _this2 = this ;
var pageDiv = _ref . pageDiv ,
_ref$pageSpot = _ref . pageSpot ,
pageSpot = _ref$pageSpot === undefined ? null : _ref$pageSpot ,
_ref$pageNumber = _ref . pageNumber ,
pageNumber = _ref$pageNumber === undefined ? null : _ref$pageNumber ;
if ( pageNumber ) {
this . _setCurrentPageNumber ( pageNumber ) ;
}
var scrolledDown = this . _currentPageNumber >= this . _previousPageNumber ;
var previousLocation = this . _location ;
this . _ensurePageViewVisible ( ) ;
( 0 , _ui _utils . scrollIntoView ) ( pageDiv , pageSpot ) ;
this . _updateScrollDown = function ( ) {
_this2 . scroll . down = scrolledDown ;
delete _this2 . _updateScrollDown ;
} ;
setTimeout ( function ( ) {
if ( _this2 . _location === previousLocation ) {
if ( _this2 . _updateScrollDown ) {
_this2 . _updateScrollDown ( ) ;
}
_this2 . update ( ) ;
}
} , 0 ) ;
}
} , {
key : '_getVisiblePages' ,
value : function _getVisiblePages ( ) {
if ( ! this . pagesCount ) {
return { views : [ ] } ;
}
var pageView = this . _pages [ this . _currentPageNumber - 1 ] ;
var element = pageView . div ;
var view = {
id : pageView . id ,
x : element . offsetLeft + element . clientLeft ,
y : element . offsetTop + element . clientTop ,
view : pageView
} ;
return {
first : view ,
last : view ,
views : [ view ]
} ;
}
} , {
key : 'update' ,
value : function update ( ) {
var visible = this . _getVisiblePages ( ) ;
var visiblePages = visible . views ,
numVisiblePages = visiblePages . length ;
if ( numVisiblePages === 0 ) {
return ;
}
this . _resizeBuffer ( numVisiblePages ) ;
this . renderingQueue . renderHighestPriority ( visible ) ;
this . _updateLocation ( visible . first ) ;
this . eventBus . dispatch ( 'updateviewarea' , {
source : this ,
location : this . _location
} ) ;
}
} , {
key : '_setDocumentViewerElement' ,
get : function get ( ) {
return ( 0 , _pdfjsLib . shadow ) ( this , '_setDocumentViewerElement' , this . _shadowViewer ) ;
}
} ] ) ;
return PDFSinglePageViewer ;
} ( _base _viewer . BaseViewer ) ;
exports . PDFSinglePageViewer = PDFSinglePageViewer ;
/***/ } ) ,
/* 17 */
/***/ ( function ( module , exports , _ _w _pdfjs _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . PDFViewer = undefined ;
var _createClass = function ( ) { function defineProperties ( target , props ) { for ( var i = 0 ; i < props . length ; i ++ ) { var descriptor = props [ i ] ; descriptor . enumerable = descriptor . enumerable || false ; descriptor . configurable = true ; if ( "value" in descriptor ) descriptor . writable = true ; Object . defineProperty ( target , descriptor . key , descriptor ) ; } } return function ( Constructor , protoProps , staticProps ) { if ( protoProps ) defineProperties ( Constructor . prototype , protoProps ) ; if ( staticProps ) defineProperties ( Constructor , staticProps ) ; return Constructor ; } ; } ( ) ;
var _ui _utils = _ _w _pdfjs _require _ _ ( 1 ) ;
var _base _viewer = _ _w _pdfjs _require _ _ ( 8 ) ;
var _pdfjsLib = _ _w _pdfjs _require _ _ ( 0 ) ;
function _classCallCheck ( instance , Constructor ) { if ( ! ( instance instanceof Constructor ) ) { throw new TypeError ( "Cannot call a class as a function" ) ; } }
function _possibleConstructorReturn ( self , call ) { if ( ! self ) { throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ; } return call && ( typeof call === "object" || typeof call === "function" ) ? call : self ; }
function _inherits ( subClass , superClass ) { if ( typeof superClass !== "function" && superClass !== null ) { throw new TypeError ( "Super expression must either be null or a function, not " + typeof superClass ) ; } subClass . prototype = Object . create ( superClass && superClass . prototype , { constructor : { value : subClass , enumerable : false , writable : true , configurable : true } } ) ; if ( superClass ) Object . setPrototypeOf ? Object . setPrototypeOf ( subClass , superClass ) : subClass . _ _proto _ _ = superClass ; }
var PDFViewer = function ( _BaseViewer ) {
_inherits ( PDFViewer , _BaseViewer ) ;
function PDFViewer ( ) {
_classCallCheck ( this , PDFViewer ) ;
return _possibleConstructorReturn ( this , ( PDFViewer . _ _proto _ _ || Object . getPrototypeOf ( PDFViewer ) ) . apply ( this , arguments ) ) ;
}
_createClass ( PDFViewer , [ {
key : '_scrollIntoView' ,
value : function _scrollIntoView ( _ref ) {
var pageDiv = _ref . pageDiv ,
_ref$pageSpot = _ref . pageSpot ,
pageSpot = _ref$pageSpot === undefined ? null : _ref$pageSpot ;
( 0 , _ui _utils . scrollIntoView ) ( pageDiv , pageSpot ) ;
}
} , {
key : '_getVisiblePages' ,
value : function _getVisiblePages ( ) {
if ( ! this . isInPresentationMode ) {
return ( 0 , _ui _utils . getVisibleElements ) ( this . container , this . _pages , true ) ;
}
var currentPage = this . _pages [ this . _currentPageNumber - 1 ] ;
var visible = [ {
id : currentPage . id ,
view : currentPage
} ] ;
return {
first : currentPage ,
last : currentPage ,
views : visible
} ;
}
} , {
key : 'update' ,
value : function update ( ) {
var visible = this . _getVisiblePages ( ) ;
var visiblePages = visible . views ,
numVisiblePages = visiblePages . length ;
if ( numVisiblePages === 0 ) {
return ;
}
this . _resizeBuffer ( numVisiblePages ) ;
this . renderingQueue . renderHighestPriority ( visible ) ;
var currentId = this . _currentPageNumber ;
var stillFullyVisible = false ;
for ( var i = 0 ; i < numVisiblePages ; ++ i ) {
var page = visiblePages [ i ] ;
if ( page . percent < 100 ) {
break ;
}
if ( page . id === currentId ) {
stillFullyVisible = true ;
break ;
}
}
if ( ! stillFullyVisible ) {
currentId = visiblePages [ 0 ] . id ;
}
if ( ! this . isInPresentationMode ) {
this . _setCurrentPageNumber ( currentId ) ;
}
this . _updateLocation ( visible . first ) ;
this . eventBus . dispatch ( 'updateviewarea' , {
source : this ,
location : this . _location
} ) ;
}
} , {
key : '_setDocumentViewerElement' ,
get : function get ( ) {
return ( 0 , _pdfjsLib . shadow ) ( this , '_setDocumentViewerElement' , this . viewer ) ;
}
} ] ) ;
return PDFViewer ;
} ( _base _viewer . BaseViewer ) ;
exports . PDFViewer = PDFViewer ;
/***/ } )
/******/ ] ) ;
} ) ;
//# sourceMappingURL=pdf_viewer.js.map