{"version":3,"sources":["webpack:///./node_modules/pdfjs-dist/lib/web/pdf_link_service.js","webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js?68c4","webpack:///./node_modules/pdfjs-dist/lib/web/ui_utils.js","webpack:///./node_modules/pdfjs-dist/lib/web/dom_events.js","webpack:///./node_modules/path-browserify/index.js"],"names":["Object","defineProperty","exports","value","SimpleLinkService","PDFLinkService","undefined","_typeof","Symbol","iterator","obj","constructor","prototype","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","_dom_events","_ui_utils","_classCallCheck","instance","TypeError","_ref","arguments","eventBus","_ref$externalLinkTarg","externalLinkTarget","_ref$externalLinkRel","externalLinkRel","this","getGlobalEventBus","baseUrl","pdfDocument","pdfViewer","pdfHistory","_pagesRefCache","create","dest","_this","goToDestination","_ref2","namedDest","explicitDest","destRef","pageNumber","_cachedPageNumber","getPageIndex","then","pageIndex","cachePageRef","catch","console","error","Number","isInteger","pagesCount","pushCurrentPosition","push","scrollPageIntoView","destArray","Promise","resolve","reject","getDestination","data","Array","isArray","getAnchorUrl","escape","str","JSON","stringify","anchor","hash","includes","params","parseQueryString","dispatch","source","query","replace","phraseSearch","navigateTo","nameddest","page","zoomArgs","zoom","split","zoomArg","zoomArgNumber","parseFloat","name","allowNegativeOffset","mode","pagemode","unescape","parse","toString","ex","isValidExplicitDestination","action","back","forward","pageNum","pageRef","refStr","num","gen","get","numPages","currentPageNumber","set","pagesRotation","destLength","allowNull","param","module","Worker","moveToEndOfArray","waitOnEventOrTimeout","WaitOnType","animationStarted","normalizeWheelEventDelta","binarySearchFirstItem","watchScroll","scrollIntoView","getOutputScale","approximateFraction","getPageSizeInches","roundToDivide","getVisibleElements","backtrackBeforeAllVisibleElements","noContextMenuHandler","getPDFFileNameFromURL","ProgressBar","EventBus","NullL10n","TextLayerMode","RendererType","PresentationModeState","isPortraitOrientation","isValidRotation","VERTICAL_PADDING","SCROLLBAR_PADDING","MAX_AUTO_SCALE","UNKNOWN_SCALE","MAX_SCALE","MIN_SCALE","DEFAULT_SCALE","DEFAULT_SCALE_VALUE","CSS_UNITS","_regenerator","_regenerator2","_interopRequireDefault","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_s","_i","next","done","err","__esModule","default","_asyncToGenerator","fn","apply","step","arg","info","UNKNOWN","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","formatL10nValue","text","args","all","getLanguage","mark","_callee","wrap","_context","prev","abrupt","stop","getDirection","_callee2","_context2","_ref3","_callee3","property","fallback","_context3","_x","_x2","_x3","translate","_ref4","_callee4","element","_context4","_x4","ctx","devicePixelRatio","window","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","sx","sy","scaled","spot","skipOverflowHiddenElements","parent","offsetParent","offsetY","offsetTop","clientTop","offsetX","offsetLeft","clientLeft","clientHeight","scrollHeight","clientWidth","scrollWidth","getComputedStyle","overflow","dataset","_scaleY","_scaleX","top","left","scrollLeft","scrollTop","viewAreaElement","callback","debounceScroll","evt","rAF","requestAnimationFrame","currentX","lastX","state","right","currentY","lastY","down","_eventHandler","addEventListener","parts","ii","toLowerCase","decodeURIComponent","items","condition","minIndex","maxIndex","currentIndex","currentItem","x","Math","floor","xinv","limit","x_","a","b","c","d","p","q","result","div","r","round","_ref5","view","userUnit","rotate","_view","x1","y1","x2","y2","changeOrientation","width","height","index","views","elt","pageTop","scrollEl","sortByVisibility","horizontal","bottom","isElementBottomAfterViewTop","elementBottom","isElementRightAfterViewLeft","elementRight","visible","currentHeight","viewHeight","viewBottom","hiddenHeight","currentWidth","viewWidth","viewRight","hiddenWidth","percentVisible","firstVisibleElementInd","lastEdge","max","id","y","percent","first","last","sort","pc","abs","preventDefault","isDataSchema","url","trim","substring","defaultFilename","warn","reURI","reFilename","splitURI","exec","suggestedFilename","delta","sqrt","deltaX","deltaY","angle","atan2","PI","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","deltaMode","size","EVENT","TIMEOUT","_ref6","_ref6$delay","delay","Error","handler","type","off","eventHandler","removeEventListener","timeout","clearTimeout","bind","on","timeoutHandler","setTimeout","_ref7","_ref7$dispatchToDOM","dispatchToDOM","_listeners","_dispatchToDOM","eventName","listener","eventListeners","indexOf","splice","slice","call","forEach","_dispatchDOMEvent","_args5","details","document","event","createEvent","initCustomEvent","dispatchEvent","clamp","v","min","_ref8","units","querySelector","bar","parentNode","style","_indeterminate","classList","add","remove","progressSize","_percent","viewer","container","scrollbarWidth","offsetWidth","setAttribute","body","val","isNaN","_updateBar","moved","len","write","read","_read","attachDOMEventsToEventBus","cssTransform","textLayerDiv","initUIEvent","scale","presetValue","location","caseSensitive","highlightAll","findPrevious","attachmentsCount","outerContainer","active","switchInProgress","outlineCount","globalEventBus","normalizeArray","allowAboveRoot","up","unshift","basename","path","start","end","matchedSlash","charCodeAt","filter","xs","f","res","resolvedPath","resolvedAbsolute","process","cwd","charAt","join","normalize","isAbsolute","trailingSlash","substr","paths","relative","from","to","fromParts","toParts","samePartsLength","outputParts","concat","sep","delimiter","dirname","code","hasRoot","ext","extname","startDot","startPart","preDotState"],"mappings":"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","file":"js/chunk-vendors~3af8bccc.e73de2df.js","sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleLinkService = exports.PDFLinkService = undefined;\n\nvar _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; };\n\nvar _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; }; }();\n\nvar _dom_events = require('./dom_events');\n\nvar _ui_utils = require('./ui_utils');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PDFLinkService = function () {\n function PDFLinkService() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n eventBus = _ref.eventBus,\n _ref$externalLinkTarg = _ref.externalLinkTarget,\n externalLinkTarget = _ref$externalLinkTarg === undefined ? null : _ref$externalLinkTarg,\n _ref$externalLinkRel = _ref.externalLinkRel,\n externalLinkRel = _ref$externalLinkRel === undefined ? null : _ref$externalLinkRel;\n\n _classCallCheck(this, PDFLinkService);\n\n this.eventBus = eventBus || (0, _dom_events.getGlobalEventBus)();\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n this._pagesRefCache = null;\n }\n\n _createClass(PDFLinkService, [{\n key: 'setDocument',\n value: function setDocument(pdfDocument) {\n var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n }, {\n key: 'setViewer',\n value: function setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n }, {\n key: 'setHistory',\n value: function setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n }, {\n key: 'navigateTo',\n value: function navigateTo(dest) {\n var _this = this;\n\n var goToDestination = function goToDestination(_ref2) {\n var namedDest = _ref2.namedDest,\n explicitDest = _ref2.explicitDest;\n\n var destRef = explicitDest[0],\n pageNumber = void 0;\n if (destRef instanceof Object) {\n pageNumber = _this._cachedPageNumber(destRef);\n if (pageNumber === null) {\n _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {\n _this.cachePageRef(pageIndex + 1, destRef);\n goToDestination({\n namedDest: namedDest,\n explicitDest: explicitDest\n });\n }).catch(function () {\n console.error('PDFLinkService.navigateTo: \"' + destRef + '\" is not ' + ('a valid page reference, for dest=\"' + dest + '\".'));\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error('PDFLinkService.navigateTo: \"' + destRef + '\" is not ' + ('a valid destination reference, for dest=\"' + dest + '\".'));\n return;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) {\n console.error('PDFLinkService.navigateTo: \"' + pageNumber + '\" is not ' + ('a valid page number, for dest=\"' + dest + '\".'));\n return;\n }\n if (_this.pdfHistory) {\n _this.pdfHistory.pushCurrentPosition();\n _this.pdfHistory.push({\n namedDest: namedDest,\n explicitDest: explicitDest,\n pageNumber: pageNumber\n });\n }\n _this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber,\n destArray: explicitDest\n });\n };\n new Promise(function (resolve, reject) {\n if (typeof dest === 'string') {\n _this.pdfDocument.getDestination(dest).then(function (destArray) {\n resolve({\n namedDest: dest,\n explicitDest: destArray\n });\n });\n return;\n }\n resolve({\n namedDest: '',\n explicitDest: dest\n });\n }).then(function (data) {\n if (!Array.isArray(data.explicitDest)) {\n console.error('PDFLinkService.navigateTo: \"' + data.explicitDest + '\" is' + (' not a valid destination array, for dest=\"' + dest + '\".'));\n return;\n }\n goToDestination(data);\n });\n }\n }, {\n key: 'getDestinationHash',\n value: function getDestinationHash(dest) {\n if (typeof dest === 'string') {\n return this.getAnchorUrl('#' + escape(dest));\n }\n if (Array.isArray(dest)) {\n var str = JSON.stringify(dest);\n return this.getAnchorUrl('#' + escape(str));\n }\n return this.getAnchorUrl('');\n }\n }, {\n key: 'getAnchorUrl',\n value: function getAnchorUrl(anchor) {\n return (this.baseUrl || '') + anchor;\n }\n }, {\n key: 'setHash',\n value: function setHash(hash) {\n var pageNumber = void 0,\n dest = void 0;\n if (hash.includes('=')) {\n var params = (0, _ui_utils.parseQueryString)(hash);\n if ('search' in params) {\n this.eventBus.dispatch('findfromurlhash', {\n source: this,\n query: params['search'].replace(/\"/g, ''),\n phraseSearch: params['phrase'] === 'true'\n });\n }\n if ('nameddest' in params) {\n this.navigateTo(params.nameddest);\n return;\n }\n if ('page' in params) {\n pageNumber = params.page | 0 || 1;\n }\n if ('zoom' in params) {\n var zoomArgs = params.zoom.split(',');\n var zoomArg = zoomArgs[0];\n var zoomArgNumber = parseFloat(zoomArg);\n if (!zoomArg.includes('Fit')) {\n dest = [null, { name: 'XYZ' }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];\n } else {\n if (zoomArg === 'Fit' || zoomArg === 'FitB') {\n dest = [null, { name: zoomArg }];\n } else if (zoomArg === 'FitH' || zoomArg === 'FitBH' || zoomArg === 'FitV' || zoomArg === 'FitBV') {\n dest = [null, { name: zoomArg }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];\n } else if (zoomArg === 'FitR') {\n if (zoomArgs.length !== 5) {\n console.error('PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n } else {\n dest = [null, { name: zoomArg }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];\n }\n } else {\n console.error('PDFLinkService.setHash: \"' + zoomArg + '\" is not ' + 'a valid zoom value.');\n }\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true\n });\n } else if (pageNumber) {\n this.page = pageNumber;\n }\n if ('pagemode' in params) {\n this.eventBus.dispatch('pagemode', {\n source: this,\n mode: params.pagemode\n });\n }\n } else {\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n if (!Array.isArray(dest)) {\n dest = dest.toString();\n }\n } catch (ex) {}\n if (typeof dest === 'string' || isValidExplicitDestination(dest)) {\n this.navigateTo(dest);\n return;\n }\n console.error('PDFLinkService.setHash: \"' + unescape(hash) + '\" is not ' + 'a valid destination.');\n }\n }\n }, {\n key: 'executeNamedAction',\n value: function executeNamedAction(action) {\n switch (action) {\n case 'GoBack':\n if (this.pdfHistory) {\n this.pdfHistory.back();\n }\n break;\n case 'GoForward':\n if (this.pdfHistory) {\n this.pdfHistory.forward();\n }\n break;\n case 'NextPage':\n if (this.page < this.pagesCount) {\n this.page++;\n }\n break;\n case 'PrevPage':\n if (this.page > 1) {\n this.page--;\n }\n break;\n case 'LastPage':\n this.page = this.pagesCount;\n break;\n case 'FirstPage':\n this.page = 1;\n break;\n default:\n break;\n }\n this.eventBus.dispatch('namedaction', {\n source: this,\n action: action\n });\n }\n }, {\n key: 'cachePageRef',\n value: function cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n var refStr = pageRef.num + ' ' + pageRef.gen + ' R';\n this._pagesRefCache[refStr] = pageNum;\n }\n }, {\n key: '_cachedPageNumber',\n value: function _cachedPageNumber(pageRef) {\n var refStr = pageRef.num + ' ' + pageRef.gen + ' R';\n return this._pagesRefCache && this._pagesRefCache[refStr] || null;\n }\n }, {\n key: 'pagesCount',\n get: function get() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n }, {\n key: 'page',\n get: function get() {\n return this.pdfViewer.currentPageNumber;\n },\n set: function set(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n }, {\n key: 'rotation',\n get: function get() {\n return this.pdfViewer.pagesRotation;\n },\n set: function set(value) {\n this.pdfViewer.pagesRotation = value;\n }\n }]);\n\n return PDFLinkService;\n}();\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n var destLength = dest.length,\n allowNull = true;\n if (destLength < 2) {\n return false;\n }\n var page = dest[0];\n if (!((typeof page === 'undefined' ? 'undefined' : _typeof(page)) === 'object' && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {\n return false;\n }\n var zoom = dest[1];\n if (!((typeof zoom === 'undefined' ? 'undefined' : _typeof(zoom)) === 'object' && typeof zoom.name === 'string')) {\n return false;\n }\n switch (zoom.name) {\n case 'XYZ':\n if (destLength !== 5) {\n return false;\n }\n break;\n case 'Fit':\n case 'FitB':\n return destLength === 2;\n case 'FitH':\n case 'FitBH':\n case 'FitV':\n case 'FitBV':\n if (destLength !== 3) {\n return false;\n }\n break;\n case 'FitR':\n if (destLength !== 6) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (var i = 2; i < destLength; i++) {\n var param = dest[i];\n if (!(typeof param === 'number' || allowNull && param === null)) {\n return false;\n }\n }\n return true;\n}\n\nvar SimpleLinkService = function () {\n function SimpleLinkService() {\n _classCallCheck(this, SimpleLinkService);\n\n this.externalLinkTarget = null;\n this.externalLinkRel = null;\n }\n\n _createClass(SimpleLinkService, [{\n key: 'navigateTo',\n value: function navigateTo(dest) {}\n }, {\n key: 'getDestinationHash',\n value: function getDestinationHash(dest) {\n return '#';\n }\n }, {\n key: 'getAnchorUrl',\n value: function getAnchorUrl(hash) {\n return '#';\n }\n }, {\n key: 'setHash',\n value: function setHash(hash) {}\n }, {\n key: 'executeNamedAction',\n value: function executeNamedAction(action) {}\n }, {\n key: 'cachePageRef',\n value: function cachePageRef(pageNum, pageRef) {}\n }, {\n key: 'pagesCount',\n get: function get() {\n return 0;\n }\n }, {\n key: 'page',\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }, {\n key: 'rotation',\n get: function get() {\n return 0;\n },\n set: function set(value) {}\n }]);\n\n return SimpleLinkService;\n}();\n\nexports.PDFLinkService = PDFLinkService;\nexports.SimpleLinkService = SimpleLinkService;","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"92063e8c3ae99b1e2453.worker.js\");\n};","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.moveToEndOfArray = exports.waitOnEventOrTimeout = exports.WaitOnType = exports.animationStarted = exports.normalizeWheelEventDelta = exports.binarySearchFirstItem = exports.watchScroll = exports.scrollIntoView = exports.getOutputScale = exports.approximateFraction = exports.getPageSizeInches = exports.roundToDivide = exports.getVisibleElements = exports.backtrackBeforeAllVisibleElements = exports.parseQueryString = exports.noContextMenuHandler = exports.getPDFFileNameFromURL = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.isPortraitOrientation = 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;\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _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; }; }();\n\nvar _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; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar CSS_UNITS = 96.0 / 72.0;\nvar DEFAULT_SCALE_VALUE = 'auto';\nvar DEFAULT_SCALE = 1.0;\nvar MIN_SCALE = 0.10;\nvar MAX_SCALE = 10.0;\nvar UNKNOWN_SCALE = 0;\nvar MAX_AUTO_SCALE = 1.25;\nvar SCROLLBAR_PADDING = 40;\nvar VERTICAL_PADDING = 5;\nvar PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3\n};\nvar RendererType = {\n CANVAS: 'canvas',\n SVG: 'svg'\n};\nvar TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2\n};\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, function (all, name) {\n return name in args ? args[name] : '{{' + name + '}}';\n });\n}\nvar NullL10n = {\n getLanguage: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt('return', 'en-us');\n\n case 1:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getLanguage() {\n return _ref.apply(this, arguments);\n }\n\n return getLanguage;\n }(),\n getDirection: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt('return', 'ltr');\n\n case 1:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getDirection() {\n return _ref2.apply(this, arguments);\n }\n\n return getDirection;\n }(),\n get: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee3(property, args, fallback) {\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt('return', formatL10nValue(fallback, args));\n\n case 1:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function get(_x, _x2, _x3) {\n return _ref3.apply(this, arguments);\n }\n\n return get;\n }(),\n translate: function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee4(element) {\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function translate(_x4) {\n return _ref4.apply(this, arguments);\n }\n\n return translate;\n }()\n};\nfunction getOutputScale(ctx) {\n var devicePixelRatio = window.devicePixelRatio || 1;\n var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n var pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1\n };\n}\nfunction scrollIntoView(element, spot) {\n var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var parent = element.offsetParent;\n if (!parent) {\n console.error('offsetParent is not set -- cannot scroll');\n return;\n }\n var offsetY = element.offsetTop + element.clientTop;\n var offsetX = element.offsetLeft + element.clientLeft;\n while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === 'hidden') {\n if (parent.dataset._scaleY) {\n offsetY /= parent.dataset._scaleY;\n offsetX /= parent.dataset._scaleX;\n }\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n if (!parent) {\n return;\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\nfunction watchScroll(viewAreaElement, callback) {\n var debounceScroll = function debounceScroll(evt) {\n if (rAF) {\n return;\n }\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n var currentX = viewAreaElement.scrollLeft;\n var lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n var currentY = viewAreaElement.scrollTop;\n var lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n var state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll\n };\n var rAF = null;\n viewAreaElement.addEventListener('scroll', debounceScroll, true);\n return state;\n}\nfunction parseQueryString(query) {\n var parts = query.split('&');\n var params = Object.create(null);\n for (var i = 0, ii = parts.length; i < ii; ++i) {\n var param = parts[i].split('=');\n var key = param[0].toLowerCase();\n var value = param.length > 1 ? param[1] : null;\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n }\n return params;\n}\nfunction binarySearchFirstItem(items, condition) {\n var minIndex = 0;\n var maxIndex = items.length - 1;\n if (items.length === 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n while (minIndex < maxIndex) {\n var currentIndex = minIndex + maxIndex >> 1;\n var currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex;\n}\nfunction approximateFraction(x) {\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n var xinv = 1 / x;\n var limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n var x_ = x > 1 ? xinv : x;\n var a = 0,\n b = 1,\n c = 1,\n d = 1;\n while (true) {\n var p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n var result = void 0;\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\nfunction roundToDivide(x, div) {\n var r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\nfunction getPageSizeInches(_ref5) {\n var view = _ref5.view,\n userUnit = _ref5.userUnit,\n rotate = _ref5.rotate;\n\n var _view = _slicedToArray(view, 4),\n x1 = _view[0],\n y1 = _view[1],\n x2 = _view[2],\n y2 = _view[3];\n\n var changeOrientation = rotate % 180 !== 0;\n var width = (x2 - x1) / 72 * userUnit;\n var height = (y2 - y1) / 72 * userUnit;\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height\n };\n}\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n if (index < 2) {\n return index;\n }\n var elt = views[index].div;\n var pageTop = elt.offsetTop + elt.clientTop;\n if (pageTop >= top) {\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n for (var i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n break;\n }\n index = i;\n }\n return index;\n}\nfunction getVisibleElements(scrollEl, views) {\n var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n var top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n var left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n function isElementBottomAfterViewTop(view) {\n var element = view.div;\n var elementBottom = element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementRightAfterViewLeft(view) {\n var element = view.div;\n var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;\n return elementRight > left;\n }\n var visible = [],\n view = void 0,\n element = void 0;\n var currentHeight = void 0,\n viewHeight = void 0,\n viewBottom = void 0,\n hiddenHeight = void 0;\n var currentWidth = void 0,\n viewWidth = void 0,\n viewRight = void 0,\n hiddenWidth = void 0;\n var percentVisible = void 0;\n var firstVisibleElementInd = views.length === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);\n if (views.length > 0 && !horizontal) {\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n }\n var lastEdge = horizontal ? right : -1;\n for (var i = firstVisibleElementInd, ii = views.length; i < ii; i++) {\n view = views[i];\n element = view.div;\n currentWidth = element.offsetLeft + element.clientLeft;\n currentHeight = element.offsetTop + element.clientTop;\n viewWidth = element.clientWidth;\n viewHeight = element.clientHeight;\n viewRight = currentWidth + viewWidth;\n viewBottom = currentHeight + viewHeight;\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {\n continue;\n }\n hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n percentVisible = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view: view,\n percent: percentVisible\n });\n }\n var first = visible[0];\n var last = visible[visible.length - 1];\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n var pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id;\n });\n }\n return {\n first: first,\n last: last,\n views: visible\n };\n}\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\nfunction isDataSchema(url) {\n var i = 0,\n ii = url.length;\n while (i < ii && url[i].trim() === '') {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === 'data:';\n}\nfunction getPDFFileNameFromURL(url) {\n var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf';\n\n if (typeof url !== 'string') {\n return defaultFilename;\n }\n if (isDataSchema(url)) {\n console.warn('getPDFFileNameFromURL: ' + 'ignoring \"data:\" URL for performance reasons.');\n return defaultFilename;\n }\n var reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n var reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n var splitURI = reURI.exec(url);\n var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes('%')) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nfunction normalizeWheelEventDelta(evt) {\n var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n var angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n delta = -delta;\n }\n var MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n var MOUSE_DOM_DELTA_LINE_MODE = 1;\n var MOUSE_PIXELS_PER_LINE = 30;\n var MOUSE_LINES_PER_PAGE = 30;\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\nvar WaitOnType = {\n EVENT: 'event',\n TIMEOUT: 'timeout'\n};\nfunction waitOnEventOrTimeout(_ref6) {\n var target = _ref6.target,\n name = _ref6.name,\n _ref6$delay = _ref6.delay,\n delay = _ref6$delay === undefined ? 0 : _ref6$delay;\n\n return new Promise(function (resolve, reject) {\n if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) {\n throw new Error('waitOnEventOrTimeout - invalid parameters.');\n }\n function handler(type) {\n if (target instanceof EventBus) {\n target.off(name, eventHandler);\n } else {\n target.removeEventListener(name, eventHandler);\n }\n if (timeout) {\n clearTimeout(timeout);\n }\n resolve(type);\n }\n var eventHandler = handler.bind(null, WaitOnType.EVENT);\n if (target instanceof EventBus) {\n target.on(name, eventHandler);\n } else {\n target.addEventListener(name, eventHandler);\n }\n var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n var timeout = setTimeout(timeoutHandler, delay);\n });\n}\nvar animationStarted = new Promise(function (resolve) {\n if (typeof window === 'undefined') {\n setTimeout(resolve, 20);\n return;\n }\n window.requestAnimationFrame(resolve);\n});\n\nvar EventBus = function () {\n function EventBus() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref7$dispatchToDOM = _ref7.dispatchToDOM,\n dispatchToDOM = _ref7$dispatchToDOM === undefined ? false : _ref7$dispatchToDOM;\n\n _classCallCheck(this, EventBus);\n\n this._listeners = Object.create(null);\n this._dispatchToDOM = dispatchToDOM === true;\n }\n\n _createClass(EventBus, [{\n key: 'on',\n value: function on(eventName, listener) {\n var eventListeners = this._listeners[eventName];\n if (!eventListeners) {\n eventListeners = [];\n this._listeners[eventName] = eventListeners;\n }\n eventListeners.push(listener);\n }\n }, {\n key: 'off',\n value: function off(eventName, listener) {\n var eventListeners = this._listeners[eventName];\n var i = void 0;\n if (!eventListeners || (i = eventListeners.indexOf(listener)) < 0) {\n return;\n }\n eventListeners.splice(i, 1);\n }\n }, {\n key: 'dispatch',\n value: function dispatch(eventName) {\n var eventListeners = this._listeners[eventName];\n if (!eventListeners || eventListeners.length === 0) {\n if (this._dispatchToDOM) {\n var _args5 = Array.prototype.slice.call(arguments, 1);\n this._dispatchDOMEvent(eventName, _args5);\n }\n return;\n }\n var args = Array.prototype.slice.call(arguments, 1);\n eventListeners.slice(0).forEach(function (listener) {\n listener.apply(null, args);\n });\n if (this._dispatchToDOM) {\n this._dispatchDOMEvent(eventName, args);\n }\n }\n }, {\n key: '_dispatchDOMEvent',\n value: function _dispatchDOMEvent(eventName) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!this._dispatchToDOM) {\n return;\n }\n var details = Object.create(null);\n if (args && args.length > 0) {\n var obj = args[0];\n for (var key in obj) {\n var value = obj[key];\n if (key === 'source') {\n if (value === window || value === document) {\n return;\n }\n continue;\n }\n details[key] = value;\n }\n }\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, details);\n document.dispatchEvent(event);\n }\n }]);\n\n return EventBus;\n}();\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nvar ProgressBar = function () {\n function ProgressBar(id) {\n var _ref8 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n height = _ref8.height,\n width = _ref8.width,\n units = _ref8.units;\n\n _classCallCheck(this, ProgressBar);\n\n this.visible = true;\n this.div = document.querySelector(id + ' .progress');\n this.bar = this.div.parentNode;\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || '%';\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _createClass(ProgressBar, [{\n key: '_updateBar',\n value: function _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add('indeterminate');\n this.div.style.width = this.width + this.units;\n return;\n }\n this.div.classList.remove('indeterminate');\n var progressSize = this.width * this._percent / 100;\n this.div.style.width = progressSize + this.units;\n }\n }, {\n key: 'setWidth',\n value: function setWidth(viewer) {\n if (!viewer) {\n return;\n }\n var container = viewer.parentNode;\n var scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n this.bar.setAttribute('style', 'width: calc(100% - ' + scrollbarWidth + 'px);');\n }\n }\n }, {\n key: 'hide',\n value: function hide() {\n if (!this.visible) {\n return;\n }\n this.visible = false;\n this.bar.classList.add('hidden');\n document.body.classList.remove('loadingInProgress');\n }\n }, {\n key: 'show',\n value: function show() {\n if (this.visible) {\n return;\n }\n this.visible = true;\n document.body.classList.add('loadingInProgress');\n this.bar.classList.remove('hidden');\n }\n }, {\n key: 'percent',\n get: function get() {\n return this._percent;\n },\n set: function set(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n this._updateBar();\n }\n }]);\n\n return ProgressBar;\n}();\n\nfunction moveToEndOfArray(arr, condition) {\n var moved = [],\n len = arr.length;\n var write = 0;\n for (var read = 0; read < len; ++read) {\n if (condition(arr[read])) {\n moved.push(arr[read]);\n } else {\n arr[write] = arr[read];\n ++write;\n }\n }\n for (var _read = 0; write < len; ++_read, ++write) {\n arr[write] = moved[_read];\n }\n}\nexports.CSS_UNITS = CSS_UNITS;\nexports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;\nexports.DEFAULT_SCALE = DEFAULT_SCALE;\nexports.MIN_SCALE = MIN_SCALE;\nexports.MAX_SCALE = MAX_SCALE;\nexports.UNKNOWN_SCALE = UNKNOWN_SCALE;\nexports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;\nexports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;\nexports.VERTICAL_PADDING = VERTICAL_PADDING;\nexports.isValidRotation = isValidRotation;\nexports.isPortraitOrientation = isPortraitOrientation;\nexports.PresentationModeState = PresentationModeState;\nexports.RendererType = RendererType;\nexports.TextLayerMode = TextLayerMode;\nexports.NullL10n = NullL10n;\nexports.EventBus = EventBus;\nexports.ProgressBar = ProgressBar;\nexports.getPDFFileNameFromURL = getPDFFileNameFromURL;\nexports.noContextMenuHandler = noContextMenuHandler;\nexports.parseQueryString = parseQueryString;\nexports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;\nexports.getVisibleElements = getVisibleElements;\nexports.roundToDivide = roundToDivide;\nexports.getPageSizeInches = getPageSizeInches;\nexports.approximateFraction = approximateFraction;\nexports.getOutputScale = getOutputScale;\nexports.scrollIntoView = scrollIntoView;\nexports.watchScroll = watchScroll;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.normalizeWheelEventDelta = normalizeWheelEventDelta;\nexports.animationStarted = animationStarted;\nexports.WaitOnType = WaitOnType;\nexports.waitOnEventOrTimeout = waitOnEventOrTimeout;\nexports.moveToEndOfArray = moveToEndOfArray;","/**\n * @licstart The following is the entire license notice for the\n * Javascript code in this page\n *\n * Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * Javascript code in this page\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getGlobalEventBus = exports.attachDOMEventsToEventBus = undefined;\n\nvar _ui_utils = require('./ui_utils');\n\nfunction attachDOMEventsToEventBus(eventBus) {\n eventBus.on('documentload', function () {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('documentload', true, true, {});\n window.dispatchEvent(event);\n });\n eventBus.on('pagerendered', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagerendered', true, true, {\n pageNumber: evt.pageNumber,\n cssTransform: evt.cssTransform\n });\n evt.source.div.dispatchEvent(event);\n });\n eventBus.on('textlayerrendered', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('textlayerrendered', true, true, { pageNumber: evt.pageNumber });\n evt.source.textLayerDiv.dispatchEvent(event);\n });\n eventBus.on('pagechange', function (evt) {\n var event = document.createEvent('UIEvents');\n event.initUIEvent('pagechange', true, true, window, 0);\n event.pageNumber = evt.pageNumber;\n evt.source.container.dispatchEvent(event);\n });\n eventBus.on('pagesinit', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagesinit', true, true, null);\n evt.source.container.dispatchEvent(event);\n });\n eventBus.on('pagesloaded', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagesloaded', true, true, { pagesCount: evt.pagesCount });\n evt.source.container.dispatchEvent(event);\n });\n eventBus.on('scalechange', function (evt) {\n var event = document.createEvent('UIEvents');\n event.initUIEvent('scalechange', true, true, window, 0);\n event.scale = evt.scale;\n event.presetValue = evt.presetValue;\n evt.source.container.dispatchEvent(event);\n });\n eventBus.on('updateviewarea', function (evt) {\n var event = document.createEvent('UIEvents');\n event.initUIEvent('updateviewarea', true, true, window, 0);\n event.location = evt.location;\n evt.source.container.dispatchEvent(event);\n });\n eventBus.on('find', function (evt) {\n if (evt.source === window) {\n return;\n }\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('find' + evt.type, true, true, {\n query: evt.query,\n phraseSearch: evt.phraseSearch,\n caseSensitive: evt.caseSensitive,\n highlightAll: evt.highlightAll,\n findPrevious: evt.findPrevious\n });\n window.dispatchEvent(event);\n });\n eventBus.on('attachmentsloaded', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('attachmentsloaded', true, true, { attachmentsCount: evt.attachmentsCount });\n evt.source.container.dispatchEvent(event);\n });\n eventBus.on('sidebarviewchanged', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('sidebarviewchanged', true, true, { view: evt.view });\n evt.source.outerContainer.dispatchEvent(event);\n });\n eventBus.on('pagemode', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('pagemode', true, true, { mode: evt.mode });\n evt.source.pdfViewer.container.dispatchEvent(event);\n });\n eventBus.on('namedaction', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('namedaction', true, true, { action: evt.action });\n evt.source.pdfViewer.container.dispatchEvent(event);\n });\n eventBus.on('presentationmodechanged', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('presentationmodechanged', true, true, {\n active: evt.active,\n switchInProgress: evt.switchInProgress\n });\n window.dispatchEvent(event);\n });\n eventBus.on('outlineloaded', function (evt) {\n var event = document.createEvent('CustomEvent');\n event.initCustomEvent('outlineloaded', true, true, { outlineCount: evt.outlineCount });\n evt.source.container.dispatchEvent(event);\n });\n}\nvar globalEventBus = null;\nfunction getGlobalEventBus() {\n var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!globalEventBus) {\n globalEventBus = new _ui_utils.EventBus({ dispatchToDOM: dispatchToDOM });\n if (!dispatchToDOM) {\n attachDOMEventsToEventBus(globalEventBus);\n }\n }\n return globalEventBus;\n}\nexports.attachDOMEventsToEventBus = attachDOMEventsToEventBus;\nexports.getGlobalEventBus = getGlobalEventBus;","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n"],"sourceRoot":""}