1/** 2 * @licstart The following is the entire license notice for the 3 * Javascript code in this page 4 * 5 * Copyright 2018 Mozilla Foundation 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 * @licend The above is the entire license notice for the 20 * Javascript code in this page 21 */ 22 23(function webpackUniversalModuleDefinition(root, factory) { 24 if(typeof exports === 'object' && typeof module === 'object') 25 module.exports = factory(); 26 else if(typeof define === 'function' && define.amd) 27 define("pdfjs-dist/build/pdf", [], factory); 28 else if(typeof exports === 'object') 29 exports["pdfjs-dist/build/pdf"] = factory(); 30 else 31 root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); 32})(this, function() { 33return /******/ (function(modules) { // webpackBootstrap 34/******/ // The module cache 35/******/ var installedModules = {}; 36/******/ 37/******/ // The require function 38/******/ function __w_pdfjs_require__(moduleId) { 39/******/ 40/******/ // Check if module is in cache 41/******/ if(installedModules[moduleId]) { 42/******/ return installedModules[moduleId].exports; 43/******/ } 44/******/ // Create a new module (and put it into the cache) 45/******/ var module = installedModules[moduleId] = { 46/******/ i: moduleId, 47/******/ l: false, 48/******/ exports: {} 49/******/ }; 50/******/ 51/******/ // Execute the module function 52/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 53/******/ 54/******/ // Flag the module as loaded 55/******/ module.l = true; 56/******/ 57/******/ // Return the exports of the module 58/******/ return module.exports; 59/******/ } 60/******/ 61/******/ 62/******/ // expose the modules object (__webpack_modules__) 63/******/ __w_pdfjs_require__.m = modules; 64/******/ 65/******/ // expose the module cache 66/******/ __w_pdfjs_require__.c = installedModules; 67/******/ 68/******/ // define getter function for harmony exports 69/******/ __w_pdfjs_require__.d = function(exports, name, getter) { 70/******/ if(!__w_pdfjs_require__.o(exports, name)) { 71/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 72/******/ } 73/******/ }; 74/******/ 75/******/ // define __esModule on exports 76/******/ __w_pdfjs_require__.r = function(exports) { 77/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 78/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 79/******/ } 80/******/ Object.defineProperty(exports, '__esModule', { value: true }); 81/******/ }; 82/******/ 83/******/ // create a fake namespace object 84/******/ // mode & 1: value is a module id, require it 85/******/ // mode & 2: merge all properties of value into the ns 86/******/ // mode & 4: return value when already ns object 87/******/ // mode & 8|1: behave like require 88/******/ __w_pdfjs_require__.t = function(value, mode) { 89/******/ if(mode & 1) value = __w_pdfjs_require__(value); 90/******/ if(mode & 8) return value; 91/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 92/******/ var ns = Object.create(null); 93/******/ __w_pdfjs_require__.r(ns); 94/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 95/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 96/******/ return ns; 97/******/ }; 98/******/ 99/******/ // getDefaultExport function for compatibility with non-harmony modules 100/******/ __w_pdfjs_require__.n = function(module) { 101/******/ var getter = module && module.__esModule ? 102/******/ function getDefault() { return module['default']; } : 103/******/ function getModuleExports() { return module; }; 104/******/ __w_pdfjs_require__.d(getter, 'a', getter); 105/******/ return getter; 106/******/ }; 107/******/ 108/******/ // Object.prototype.hasOwnProperty.call 109/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 110/******/ 111/******/ // __webpack_public_path__ 112/******/ __w_pdfjs_require__.p = ""; 113/******/ 114/******/ 115/******/ // Load entry module and return exports 116/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0); 117/******/ }) 118/************************************************************************/ 119/******/ ([ 120/* 0 */ 121/***/ (function(module, exports, __w_pdfjs_require__) { 122 123"use strict"; 124 125 126var pdfjsVersion = '2.0.943'; 127var pdfjsBuild = 'dc98bf76'; 128var pdfjsSharedUtil = __w_pdfjs_require__(1); 129var pdfjsDisplayAPI = __w_pdfjs_require__(129); 130var pdfjsDisplayTextLayer = __w_pdfjs_require__(145); 131var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(146); 132var pdfjsDisplayDOMUtils = __w_pdfjs_require__(130); 133var pdfjsDisplaySVG = __w_pdfjs_require__(147); 134var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(135); 135var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(132); 136{ 137 var isNodeJS = __w_pdfjs_require__(4); 138 if (isNodeJS()) { 139 var PDFNodeStream = __w_pdfjs_require__(148).PDFNodeStream; 140 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 141 return new PDFNodeStream(params); 142 }); 143 } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') { 144 var PDFFetchStream = __w_pdfjs_require__(151).PDFFetchStream; 145 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 146 return new PDFFetchStream(params); 147 }); 148 } else { 149 var PDFNetworkStream = __w_pdfjs_require__(152).PDFNetworkStream; 150 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 151 return new PDFNetworkStream(params); 152 }); 153 } 154} 155exports.build = pdfjsDisplayAPI.build; 156exports.version = pdfjsDisplayAPI.version; 157exports.getDocument = pdfjsDisplayAPI.getDocument; 158exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; 159exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; 160exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; 161exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; 162exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; 163exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; 164exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; 165exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; 166exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; 167exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; 168exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; 169exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; 170exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; 171exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; 172exports.OPS = pdfjsSharedUtil.OPS; 173exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; 174exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; 175exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; 176exports.createObjectURL = pdfjsSharedUtil.createObjectURL; 177exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; 178exports.shadow = pdfjsSharedUtil.shadow; 179exports.Util = pdfjsSharedUtil.Util; 180exports.ReadableStream = pdfjsSharedUtil.ReadableStream; 181exports.URL = pdfjsSharedUtil.URL; 182exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException; 183exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl; 184exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget; 185exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes; 186exports.loadScript = pdfjsDisplayDOMUtils.loadScript; 187exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; 188exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; 189 190/***/ }), 191/* 1 */ 192/***/ (function(module, exports, __w_pdfjs_require__) { 193 194"use strict"; 195 196 197Object.defineProperty(exports, "__esModule", { 198 value: true 199});
200exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.URL = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isSpace = exports.isString = exports.isNum = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.getInheritableProperty = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.toRomanNumerals = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined; 201 202var _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; }; 203 204__w_pdfjs_require__(2); 205 206var _streams_polyfill = __w_pdfjs_require__(125); 207 208var _url_polyfill = __w_pdfjs_require__(127); 209 210var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; 211var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; 212var NativeImageDecoding = { 213 NONE: 'none', 214 DECODE: 'decode', 215 DISPLAY: 'display' 216}; 217var PermissionFlag = { 218 PRINT: 0x04, 219 MODIFY_CONTENTS: 0x08, 220 COPY: 0x10, 221 MODIFY_ANNOTATIONS: 0x20, 222 FILL_INTERACTIVE_FORMS: 0x100, 223 COPY_FOR_ACCESSIBILITY: 0x200, 224 ASSEMBLE: 0x400, 225 PRINT_HIGH_QUALITY: 0x800 226}; 227var TextRenderingMode = { 228 FILL: 0, 229 STROKE: 1, 230 FILL_STROKE: 2, 231 INVISIBLE: 3, 232 FILL_ADD_TO_PATH: 4, 233 STROKE_ADD_TO_PATH: 5, 234 FILL_STROKE_ADD_TO_PATH: 6, 235 ADD_TO_PATH: 7, 236 FILL_STROKE_MASK: 3, 237 ADD_TO_PATH_FLAG: 4 238}; 239var ImageKind = { 240 GRAYSCALE_1BPP: 1, 241 RGB_24BPP: 2, 242 RGBA_32BPP: 3 243}; 244var AnnotationType = { 245 TEXT: 1, 246 LINK: 2, 247 FREETEXT: 3, 248 LINE: 4, 249 SQUARE: 5, 250 CIRCLE: 6, 251 POLYGON: 7, 252 POLYLINE: 8, 253 HIGHLIGHT: 9, 254 UNDERLINE: 10, 255 SQUIGGLY: 11, 256 STRIKEOUT: 12, 257 STAMP: 13, 258 CARET: 14, 259 INK: 15, 260 POPUP: 16, 261 FILEATTACHMENT: 17, 262 SOUND: 18, 263 MOVIE: 19, 264 WIDGET: 20, 265 SCREEN: 21, 266 PRINTERMARK: 22, 267 TRAPNET: 23, 268 WATERMARK: 24, 269 THREED: 25, 270 REDACT: 26 271}; 272var AnnotationFlag = { 273 INVISIBLE: 0x01, 274 HIDDEN: 0x02, 275 PRINT: 0x04, 276 NOZOOM: 0x08, 277 NOROTATE: 0x10, 278 NOVIEW: 0x20, 279 READONLY: 0x40, 280 LOCKED: 0x80, 281 TOGGLENOVIEW: 0x100, 282 LOCKEDCONTENTS: 0x200 283}; 284var AnnotationFieldFlag = { 285 READONLY: 0x0000001, 286 REQUIRED: 0x0000002, 287 NOEXPORT: 0x0000004, 288 MULTILINE: 0x0001000, 289 PASSWORD: 0x0002000, 290 NOTOGGLETOOFF: 0x0004000, 291 RADIO: 0x0008000, 292 PUSHBUTTON: 0x0010000, 293 COMBO: 0x0020000, 294 EDIT: 0x0040000, 295 SORT: 0x0080000, 296 FILESELECT: 0x0100000, 297 MULTISELECT: 0x0200000, 298 DONOTSPELLCHECK: 0x0400000, 299 DONOTSCROLL: 0x0800000, 300 COMB: 0x1000000, 301 RICHTEXT: 0x2000000, 302 RADIOSINUNISON: 0x2000000, 303 COMMITONSELCHANGE: 0x4000000 304}; 305var AnnotationBorderStyleType = { 306 SOLID: 1, 307 DASHED: 2, 308 BEVELED: 3, 309 INSET: 4, 310 UNDERLINE: 5 311}; 312var StreamType = { 313 UNKNOWN: 0, 314 FLATE: 1, 315 LZW: 2, 316 DCT: 3, 317 JPX: 4, 318 JBIG: 5, 319 A85: 6, 320 AHX: 7, 321 CCF: 8, 322 RL: 9 323}; 324var FontType = { 325 UNKNOWN: 0, 326 TYPE1: 1, 327 TYPE1C: 2, 328 CIDFONTTYPE0: 3, 329 CIDFONTTYPE0C: 4, 330 TRUETYPE: 5, 331 CIDFONTTYPE2: 6, 332 TYPE3: 7, 333 OPENTYPE: 8, 334 TYPE0: 9, 335 MMTYPE1: 10 336}; 337var VerbosityLevel = { 338 ERRORS: 0, 339 WARNINGS: 1, 340 INFOS: 5 341}; 342var CMapCompressionType = { 343 NONE: 0, 344 BINARY: 1, 345 STREAM: 2 346}; 347var OPS = { 348 dependency: 1, 349 setLineWidth: 2, 350 setLineCap: 3, 351 setLineJoin: 4, 352 setMiterLimit: 5, 353 setDash: 6, 354 setRenderingIntent: 7,
355 setFlatness: 8, 356 setGState: 9, 357 save: 10, 358 restore: 11, 359 transform: 12, 360 moveTo: 13, 361 lineTo: 14, 362 curveTo: 15, 363 curveTo2: 16, 364 curveTo3: 17, 365 closePath: 18, 366 rectangle: 19, 367 stroke: 20, 368 closeStroke: 21, 369 fill: 22, 370 eoFill: 23, 371 fillStroke: 24, 372 eoFillStroke: 25, 373 closeFillStroke: 26, 374 closeEOFillStroke: 27, 375 endPath: 28, 376 clip: 29, 377 eoClip: 30, 378 beginText: 31, 379 endText: 32, 380 setCharSpacing: 33, 381 setWordSpacing: 34, 382 setHScale: 35, 383 setLeading: 36, 384 setFont: 37, 385 setTextRenderingMode: 38, 386 setTextRise: 39, 387 moveText: 40, 388 setLeadingMoveText: 41, 389 setTextMatrix: 42, 390 nextLine: 43, 391 showText: 44, 392 showSpacedText: 45, 393 nextLineShowText: 46, 394 nextLineSetSpacingShowText: 47, 395 setCharWidth: 48, 396 setCharWidthAndBounds: 49, 397 setStrokeColorSpace: 50, 398 setFillColorSpace: 51, 399 setStrokeColor: 52, 400 setStrokeColorN: 53, 401 setFillColor: 54, 402 setFillColorN: 55, 403 setStrokeGray: 56, 404 setFillGray: 57, 405 setStrokeRGBColor: 58, 406 setFillRGBColor: 59, 407 setStrokeCMYKColor: 60, 408 setFillCMYKColor: 61, 409 shadingFill: 62, 410 beginInlineImage: 63, 411 beginImageData: 64, 412 endInlineImage: 65, 413 paintXObject: 66, 414 markPoint: 67, 415 markPointProps: 68, 416 beginMarkedContent: 69, 417 beginMarkedContentProps: 70, 418 endMarkedContent: 71, 419 beginCompat: 72, 420 endCompat: 73, 421 paintFormXObjectBegin: 74, 422 paintFormXObjectEnd: 75, 423 beginGroup: 76, 424 endGroup: 77, 425 beginAnnotations: 78, 426 endAnnotations: 79, 427 beginAnnotation: 80, 428 endAnnotation: 81, 429 paintJpegXObject: 82, 430 paintImageMaskXObject: 83, 431 paintImageMaskXObjectGroup: 84, 432 paintImageXObject: 85, 433 paintInlineImageXObject: 86, 434 paintInlineImageXObjectGroup: 87, 435 paintImageXObjectRepeat: 88, 436 paintImageMaskXObjectRepeat: 89, 437 paintSolidColorImageMask: 90, 438 constructPath: 91 439}; 440var UNSUPPORTED_FEATURES = { 441 unknown: 'unknown', 442 forms: 'forms', 443 javaScript: 'javaScript', 444 smask: 'smask', 445 shadingPattern: 'shadingPattern', 446 font: 'font' 447}; 448var PasswordResponses = { 449 NEED_PASSWORD: 1, 450 INCORRECT_PASSWORD: 2 451}; 452var verbosity = VerbosityLevel.WARNINGS; 453function setVerbosityLevel(level) { 454 if (Number.isInteger(level)) { 455 verbosity = level; 456 } 457} 458function getVerbosityLevel() { 459 return verbosity; 460} 461function info(msg) { 462 if (verbosity >= VerbosityLevel.INFOS) { 463 console.log('Info: ' + msg); 464 } 465} 466function warn(msg) { 467 if (verbosity >= VerbosityLevel.WARNINGS) { 468 console.log('Warning: ' + msg); 469 } 470} 471function deprecated(details) { 472 console.log('Deprecated API usage: ' + details); 473} 474function unreachable(msg) { 475 throw new Error(msg); 476} 477function assert(cond, msg) { 478 if (!cond) { 479 unreachable(msg); 480 } 481} 482function isSameOrigin(baseUrl, otherUrl) { 483 try { 484 var base = new _url_polyfill.URL(baseUrl); 485 if (!base.origin || base.origin === 'null') { 486 return false; 487 } 488 } catch (e) { 489 return false; 490 } 491 var other = new _url_polyfill.URL(otherUrl, base); 492 return base.origin === other.origin; 493} 494function _isValidProtocol(url) { 495 if (!url) { 496 return false; 497 } 498 switch (url.protocol) { 499 case 'http:': 500 case 'https:': 501 case 'ftp:': 502 case 'mailto:': 503 case 'tel:': 504 return true; 505 default: 506 return false; 507 } 508} 509function createValidAbsoluteUrl(url, baseUrl) { 510 if (!url) { 511 return null; 512 } 513 try { 514 var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); 515 if (_isValidProtocol(absoluteUrl)) { 516 return absoluteUrl; 517 } 518 } catch (ex) {} 519 return null; 520} 521function shadow(obj, prop, value) { 522 Object.defineProperty(obj, prop, { 523 value: value, 524 enumerable: true, 525 configurable: true, 526 writable: false 527 }); 528 return value; 529} 530function getLookupTableFactory(initializer) { 531 var lookup; 532 return function () { 533 if (initializer) { 534 lookup = Object.create(null); 535 initializer(lookup); 536 initializer = null; 537 } 538 return lookup; 539 }; 540} 541var PasswordException = function PasswordExceptionClosure() { 542 function PasswordException(msg, code) { 543 this.name = 'PasswordException'; 544 this.message = msg; 545 this.code = code; 546 } 547 PasswordException.prototype = new Error(); 548 PasswordException.constructor = PasswordException; 549 return PasswordException; 550}(); 551var UnknownErrorException = function UnknownErrorExceptionClosure() { 552 function UnknownErrorException(msg, details) { 553 this.name = 'UnknownErrorException'; 554 this.message = msg; 555 this.details = details; 556 } 557 UnknownErrorException.prototype = new Error(); 558 UnknownErrorException.constructor = UnknownErrorException; 559 return UnknownErrorException; 560}(); 561var InvalidPDFException = function InvalidPDFExceptionClosure() { 562 function InvalidPDFException(msg) { 563 this.name = 'InvalidPDFException'; 564 this.message = msg; 565 } 566 InvalidPDFException.prototype = new Error(); 567 InvalidPDFException.constructor = InvalidPDFException; 568 return InvalidPDFException; 569}(); 570var MissingPDFException = function MissingPDFExceptionClosure() { 571 function MissingPDFException(msg) { 572 this.name = 'MissingPDFException'; 573 this.message = msg; 574 } 575 MissingPDFException.prototype = new Error(); 576 MissingPDFException.constructor = MissingPDFException; 577 return MissingPDFException; 578}(); 579var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { 580 function UnexpectedResponseException(msg, status) { 581 this.name = 'UnexpectedResponseException'; 582 this.message = msg; 583 this.status = status; 584 } 585 UnexpectedResponseException.prototype = new Error(); 586 UnexpectedResponseException.constructor = UnexpectedResponseException; 587 return UnexpectedResponseException; 588}(); 589var MissingDataException = function MissingDataExceptionClosure() { 590 function MissingDataException(begin, end) { 591 this.begin = begin; 592 this.end = end; 593 this.message = 'Missing data [' + begin + ', ' + end + ')'; 594 } 595 MissingDataException.prototype = new Error(); 596 MissingDataException.prototype.name = 'MissingDataException'; 597 MissingDataException.constructor = MissingDataException; 598 return MissingDataException; 599}(); 600var XRefParseException = function XRefParseExceptionClosure() { 601 function XRefParseException(msg) { 602 this.message = msg; 603 } 604 XRefParseException.prototype = new Error(); 605 XRefParseException.prototype.name = 'XRefParseException'; 606 XRefParseException.constructor = XRefParseException; 607 return XRefParseException; 608}(); 609var FormatError = function FormatErrorClosure() { 610 function FormatError(msg) { 611 this.message = msg; 612 } 613 FormatError.prototype = new Error(); 614 FormatError.prototype.name = 'FormatError'; 615 FormatError.constructor = FormatError; 616 return FormatError; 617}(); 618var AbortException = function AbortExceptionClosure() { 619 function AbortException(msg) { 620 this.name = 'AbortException'; 621 this.message = msg; 622 } 623 AbortException.prototype = new Error(); 624 AbortException.constructor = AbortException; 625 return AbortException; 626}(); 627var NullCharactersRegExp = /\x00/g; 628function removeNullCharacters(str) { 629 if (typeof str !== 'string') { 630 warn('The argument for removeNullCharacters must be a string.'); 631 return str; 632 } 633 return str.replace(NullCharactersRegExp, ''); 634} 635function bytesToString(bytes) { 636 assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); 637 var length = bytes.length; 638 var MAX_ARGUMENT_COUNT = 8192; 639 if (length < MAX_ARGUMENT_COUNT) { 640 return String.fromCharCode.apply(null, bytes); 641 } 642 var strBuf = []; 643 for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { 644 var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); 645 var chunk = bytes.subarray(i, chunkEnd); 646 strBuf.push(String.fromCharCode.apply(null, chunk)); 647 } 648 return strBuf.join(''); 649} 650function stringToBytes(str) { 651 assert(typeof str === 'string', 'Invalid argument for stringToBytes'); 652 var length = str.length; 653 var bytes = new Uint8Array(length); 654 for (var i = 0; i < length; ++i) { 655 bytes[i] = str.charCodeAt(i) & 0xFF; 656 } 657 return bytes; 658} 659function arrayByteLength(arr) { 660 if (arr.length !== undefined) { 661 return arr.length; 662 } 663 assert(arr.byteLength !== undefined); 664 return arr.byteLength; 665} 666function arraysToBytes(arr) { 667 if (arr.length === 1 && arr[0] instanceof Uint8Array) { 668 return arr[0]; 669 } 670 var resultLength = 0; 671 var i, 672 ii = arr.length; 673 var item, itemLength; 674 for (i = 0; i < ii; i++) { 675 item = arr[i]; 676 itemLength = arrayByteLength(item); 677 resultLength += itemLength; 678 } 679 var pos = 0; 680 var data = new Uint8Array(resultLength); 681 for (i = 0; i < ii; i++) { 682 item = arr[i]; 683 if (!(item instanceof Uint8Array)) { 684 if (typeof item === 'string') { 685 item = stringToBytes(item); 686 } else { 687 item = new Uint8Array(item); 688 } 689 } 690 itemLength = item.byteLength; 691 data.set(item, pos); 692 pos += itemLength; 693 } 694 return data; 695} 696function string32(value) { 697 return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); 698} 699function log2(x) { 700 if (x <= 0) { 701 return 0; 702 } 703 return Math.ceil(Math.log2(x)); 704} 705function readInt8(data, start) { 706 return data[start] << 24 >> 24; 707} 708function readUint16(data, offset) { 709 return data[offset] << 8 | data[offset + 1]; 710} 711function readUint32(data, offset) { 712 return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; 713} 714function isLittleEndian() { 715 var buffer8 = new Uint8Array(4); 716 buffer8[0] = 1; 717 var view32 = new Uint32Array(buffer8.buffer, 0, 1); 718 return view32[0] === 1; 719} 720function isEvalSupported() { 721 try { 722 new Function(''); 723 return true; 724 } catch (e) { 725 return false;
vendor: 3,744 bytes, lines 726-823
726 } 727} 728function getInheritableProperty(_ref) { 729 var dict = _ref.dict, 730 key = _ref.key, 731 _ref$getArray = _ref.getArray, 732 getArray = _ref$getArray === undefined ? false : _ref$getArray, 733 _ref$stopWhenFound = _ref.stopWhenFound, 734 stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound; 735 736 var LOOP_LIMIT = 100; 737 var loopCount = 0; 738 var values = void 0; 739 while (dict) { 740 var value = getArray ? dict.getArray(key) : dict.get(key); 741 if (value !== undefined) { 742 if (stopWhenFound) { 743 return value; 744 } 745 if (!values) { 746 values = []; 747 } 748 values.push(value); 749 } 750 if (++loopCount > LOOP_LIMIT) { 751 warn('getInheritableProperty: maximum loop count exceeded for "' + key + '"'); 752 break; 753 } 754 dict = dict.get('Parent'); 755 } 756 return values; 757} 758var Util = function UtilClosure() { 759 function Util() {} 760 var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; 761 Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { 762 rgbBuf[1] = r; 763 rgbBuf[3] = g; 764 rgbBuf[5] = b; 765 return rgbBuf.join(''); 766 }; 767 Util.transform = function Util_transform(m1, m2) { 768 return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; 769 }; 770 Util.applyTransform = function Util_applyTransform(p, m) { 771 var xt = p[0] * m[0] + p[1] * m[2] + m[4]; 772 var yt = p[0] * m[1] + p[1] * m[3] + m[5]; 773 return [xt, yt]; 774 }; 775 Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { 776 var d = m[0] * m[3] - m[1] * m[2]; 777 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; 778 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; 779 return [xt, yt]; 780 }; 781 Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { 782 var p1 = Util.applyTransform(r, m); 783 var p2 = Util.applyTransform(r.slice(2, 4), m); 784 var p3 = Util.applyTransform([r[0], r[3]], m); 785 var p4 = Util.applyTransform([r[2], r[1]], m); 786 return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; 787 }; 788 Util.inverseTransform = function Util_inverseTransform(m) { 789 var d = m[0] * m[3] - m[1] * m[2]; 790 return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; 791 }; 792 Util.apply3dTransform = function Util_apply3dTransform(m, v) { 793 return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; 794 }; 795 Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { 796 var transpose = [m[0], m[2], m[1], m[3]]; 797 var a = m[0] * transpose[0] + m[1] * transpose[2]; 798 var b = m[0] * transpose[1] + m[1] * transpose[3]; 799 var c = m[2] * transpose[0] + m[3] * transpose[2]; 800 var d = m[2] * transpose[1] + m[3] * transpose[3]; 801 var first = (a + d) / 2; 802 var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; 803 var sx = first + second || 1; 804 var sy = first - second || 1; 805 return [Math.sqrt(sx), Math.sqrt(sy)]; 806 }; 807 Util.normalizeRect = function Util_normalizeRect(rect) { 808 var r = rect.slice(0); 809 if (rect[0] > rect[2]) { 810 r[0] = rect[2]; 811 r[2] = rect[0]; 812 } 813 if (rect[1] > rect[3]) { 814 r[1] = rect[3]; 815 r[3] = rect[1]; 816 } 817 return r; 818 }; 819 Util.intersect = function Util_intersect(rect1, rect2) { 820 function compare(a, b) { 821 return a - b; 822 } 823 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
824 orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), 825 result = []; 826 rect1 = Util.normalizeRect(rect1); 827 rect2 = Util.normalizeRect(rect2); 828 if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { 829 result[0] = orderedX[1]; 830 result[2] = orderedX[2]; 831 } else { 832 return false; 833 } 834 if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { 835 result[1] = orderedY[1]; 836 result[3] = orderedY[2]; 837 } else { 838 return false; 839 } 840 return result; 841 }; 842 return Util; 843}(); 844var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX']; 845function toRomanNumerals(number) { 846 var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 847 848 assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.'); 849 var pos = void 0, 850 romanBuf = []; 851 while (number >= 1000) { 852 number -= 1000; 853 romanBuf.push('M'); 854 } 855 pos = number / 100 | 0; 856 number %= 100; 857 romanBuf.push(ROMAN_NUMBER_MAP[pos]); 858 pos = number / 10 | 0; 859 number %= 10; 860 romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); 861 romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); 862 var romanStr = romanBuf.join(''); 863 return lowerCase ? romanStr.toLowerCase() : romanStr; 864} 865var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC]; 866function stringToPDFString(str) { 867 var i, 868 n = str.length, 869 strBuf = []; 870 if (str[0] === '\xFE' && str[1] === '\xFF') { 871 for (i = 2; i < n; i += 2) { 872 strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); 873 } 874 } else { 875 for (i = 0; i < n; ++i) { 876 var code = PDFStringTranslateTable[str.charCodeAt(i)]; 877 strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); 878 } 879 } 880 return strBuf.join(''); 881} 882function stringToUTF8String(str) { 883 return decodeURIComponent(escape(str)); 884} 885function utf8StringToString(str) { 886 return unescape(encodeURIComponent(str)); 887} 888function isEmptyObj(obj) { 889 for (var key in obj) { 890 return false; 891 } 892 return true; 893} 894function isBool(v) { 895 return typeof v === 'boolean'; 896} 897function isNum(v) { 898 return typeof v === 'number'; 899} 900function isString(v) { 901 return typeof v === 'string'; 902} 903function isArrayBuffer(v) { 904 return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined; 905} 906function isSpace(ch) { 907 return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; 908} 909function createPromiseCapability() { 910 var capability = {}; 911 capability.promise = new Promise(function (resolve, reject) { 912 capability.resolve = resolve; 913 capability.reject = reject; 914 }); 915 return capability; 916} 917var createObjectURL = function createObjectURLClosure() { 918 var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 919 return function createObjectURL(data, contentType) { 920 var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 921 922 if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { 923 var blob = new Blob([data], { type: contentType }); 924 return _url_polyfill.URL.createObjectURL(blob); 925 } 926 var buffer = 'data:' + contentType + ';base64,'; 927 for (var i = 0, ii = data.length; i < ii; i += 3) { 928 var b1 = data[i] & 0xFF; 929 var b2 = data[i + 1] & 0xFF; 930 var b3 = data[i + 2] & 0xFF; 931 var d1 = b1 >> 2,
932 d2 = (b1 & 3) << 4 | b2 >> 4; 933 var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; 934 var d4 = i + 2 < ii ? b3 & 0x3F : 64; 935 buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; 936 } 937 return buffer; 938 }; 939}(); 940exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; 941exports.IDENTITY_MATRIX = IDENTITY_MATRIX; 942exports.OPS = OPS; 943exports.VerbosityLevel = VerbosityLevel; 944exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; 945exports.AnnotationBorderStyleType = AnnotationBorderStyleType; 946exports.AnnotationFieldFlag = AnnotationFieldFlag; 947exports.AnnotationFlag = AnnotationFlag; 948exports.AnnotationType = AnnotationType; 949exports.FontType = FontType; 950exports.ImageKind = ImageKind; 951exports.CMapCompressionType = CMapCompressionType; 952exports.AbortException = AbortException; 953exports.InvalidPDFException = InvalidPDFException; 954exports.MissingDataException = MissingDataException; 955exports.MissingPDFException = MissingPDFException; 956exports.NativeImageDecoding = NativeImageDecoding; 957exports.PasswordException = PasswordException; 958exports.PasswordResponses = PasswordResponses; 959exports.PermissionFlag = PermissionFlag; 960exports.StreamType = StreamType; 961exports.TextRenderingMode = TextRenderingMode; 962exports.UnexpectedResponseException = UnexpectedResponseException; 963exports.UnknownErrorException = UnknownErrorException; 964exports.Util = Util; 965exports.toRomanNumerals = toRomanNumerals; 966exports.XRefParseException = XRefParseException; 967exports.FormatError = FormatError; 968exports.arrayByteLength = arrayByteLength; 969exports.arraysToBytes = arraysToBytes; 970exports.assert = assert; 971exports.bytesToString = bytesToString; 972exports.createPromiseCapability = createPromiseCapability; 973exports.createObjectURL = createObjectURL; 974exports.deprecated = deprecated; 975exports.getInheritableProperty = getInheritableProperty; 976exports.getLookupTableFactory = getLookupTableFactory; 977exports.getVerbosityLevel = getVerbosityLevel; 978exports.info = info; 979exports.isArrayBuffer = isArrayBuffer; 980exports.isBool = isBool; 981exports.isEmptyObj = isEmptyObj; 982exports.isNum = isNum; 983exports.isString = isString; 984exports.isSpace = isSpace; 985exports.isSameOrigin = isSameOrigin; 986exports.createValidAbsoluteUrl = createValidAbsoluteUrl; 987exports.isLittleEndian = isLittleEndian; 988exports.isEvalSupported = isEvalSupported; 989exports.log2 = log2; 990exports.readInt8 = readInt8; 991exports.readUint16 = readUint16; 992exports.readUint32 = readUint32; 993exports.removeNullCharacters = removeNullCharacters; 994exports.ReadableStream = _streams_polyfill.ReadableStream; 995exports.URL = _url_polyfill.URL; 996exports.setVerbosityLevel = setVerbosityLevel; 997exports.shadow = shadow; 998exports.string32 = string32; 999exports.stringToBytes = stringToBytes; 1000exports.stringToPDFString = stringToPDFString; 1001exports.stringToUTF8String = stringToUTF8String; 1002exports.utf8StringToString = utf8StringToString; 1003exports.warn = warn; 1004exports.unreachable = unreachable; 1005 1006/***/ }), 1007/* 2 */ 1008/***/ (function(module, exports, __w_pdfjs_require__) { 1009 1010"use strict"; 1011 1012 1013var _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; }; 1014 1015var globalScope = __w_pdfjs_require__(3); 1016if (!globalScope._pdfjsCompatibilityChecked) { 1017 globalScope._pdfjsCompatibilityChecked = true; 1018 var isNodeJS = __w_pdfjs_require__(4); 1019 var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object'; 1020 (function checkNodeBtoa() { 1021 if (globalScope.btoa || !isNodeJS()) { 1022 return; 1023 } 1024 globalScope.btoa = function (chars) { 1025 return Buffer.from(chars, 'binary').toString('base64'); 1026 }; 1027 })(); 1028 (function checkNodeAtob() { 1029 if (globalScope.atob || !isNodeJS()) { 1030 return; 1031 } 1032 globalScope.atob = function (input) { 1033 return Buffer.from(input, 'base64').toString('binary'); 1034 }; 1035 })(); 1036 (function checkCurrentScript() { 1037 if (!hasDOM) { 1038 return; 1039 }
1040 if ('currentScript' in document) { 1041 return; 1042 } 1043 Object.defineProperty(document, 'currentScript', { 1044 get: function get() { 1045 var scripts = document.getElementsByTagName('script'); 1046 return scripts[scripts.length - 1]; 1047 }, 1048 1049 enumerable: true, 1050 configurable: true 1051 }); 1052 })(); 1053 (function checkChildNodeRemove() { 1054 if (!hasDOM) { 1055 return; 1056 } 1057 if (typeof Element.prototype.remove !== 'undefined') { 1058 return; 1059 } 1060 Element.prototype.remove = function () { 1061 if (this.parentNode) { 1062 this.parentNode.removeChild(this); 1063 } 1064 }; 1065 })(); 1066 (function checkDOMTokenListToggle() { 1067 if (!hasDOM || isNodeJS()) { 1068 return; 1069 } 1070 var div = document.createElement('div'); 1071 if (div.classList.toggle('test', 0) === false) { 1072 return; 1073 } 1074 var originalDOMTokenListToggle = DOMTokenList.prototype.toggle; 1075 DOMTokenList.prototype.toggle = function (token) { 1076 if (arguments.length > 1) { 1077 var force = !!arguments[1]; 1078 return this[force ? 'add' : 'remove'](token), force; 1079 } 1080 return originalDOMTokenListToggle(token); 1081 }; 1082 })(); 1083 (function checkStringIncludes() { 1084 if (String.prototype.includes) { 1085 return; 1086 } 1087 __w_pdfjs_require__(5); 1088 })(); 1089 (function checkArrayIncludes() { 1090 if (Array.prototype.includes) { 1091 return; 1092 } 1093 __w_pdfjs_require__(33); 1094 })(); 1095 (function checkObjectAssign() { 1096 if (Object.assign) { 1097 return; 1098 } 1099 __w_pdfjs_require__(42); 1100 })(); 1101 (function checkMathLog2() { 1102 if (Math.log2) { 1103 return; 1104 } 1105 Math.log2 = __w_pdfjs_require__(52); 1106 })(); 1107 (function checkNumberIsNaN() { 1108 if (Number.isNaN) { 1109 return; 1110 } 1111 Number.isNaN = __w_pdfjs_require__(54); 1112 })(); 1113 (function checkNumberIsInteger() { 1114 if (Number.isInteger) { 1115 return; 1116 } 1117 Number.isInteger = __w_pdfjs_require__(56); 1118 })(); 1119 (function checkPromise() { 1120 if (globalScope.Promise) { 1121 return; 1122 } 1123 globalScope.Promise = __w_pdfjs_require__(59); 1124 })(); 1125 (function checkWeakMap() { 1126 if (globalScope.WeakMap) { 1127 return; 1128 } 1129 globalScope.WeakMap = __w_pdfjs_require__(94); 1130 })(); 1131 (function checkStringCodePointAt() { 1132 if (String.codePointAt) { 1133 return; 1134 } 1135 String.codePointAt = __w_pdfjs_require__(111); 1136 })(); 1137 (function checkStringFromCodePoint() { 1138 if (String.fromCodePoint) { 1139 return; 1140 } 1141 String.fromCodePoint = __w_pdfjs_require__(113); 1142 })(); 1143 (function checkSymbol() { 1144 if (globalScope.Symbol) { 1145 return; 1146 } 1147 __w_pdfjs_require__(115); 1148 })(); 1149 (function checkObjectValues() { 1150 if (Object.values) { 1151 return; 1152 } 1153 Object.values = __w_pdfjs_require__(122); 1154 })(); 1155} 1156 1157/***/ }), 1158/* 3 */ 1159/***/ (function(module, exports, __w_pdfjs_require__) { 1160 1161"use strict"; 1162 1163 1164module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; 1165 1166/***/ }), 1167/* 4 */ 1168/***/ (function(module, exports, __w_pdfjs_require__) { 1169 1170"use strict"; 1171 1172 1173var _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; }; 1174 1175module.exports = function isNodeJS() { 1176 return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]'; 1177}; 1178 1179/***/ }), 1180/* 5 */ 1181/***/ (function(module, exports, __w_pdfjs_require__) { 1182 1183"use strict"; 1184 1185 1186__w_pdfjs_require__(6); 1187module.exports = __w_pdfjs_require__(9).String.includes; 1188 1189/***/ }), 1190/* 6 */ 1191/***/ (function(module, exports, __w_pdfjs_require__) { 1192 1193"use strict"; 1194 1195 1196var $export = __w_pdfjs_require__(7); 1197var context = __w_pdfjs_require__(25); 1198var INCLUDES = 'includes'; 1199$export($export.P + $export.F * __w_pdfjs_require__(32)(INCLUDES), 'String', { 1200 includes: function includes(searchString) { 1201 return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); 1202 } 1203}); 1204 1205/***/ }), 1206/* 7 */ 1207/***/ (function(module, exports, __w_pdfjs_require__) { 1208 1209"use strict"; 1210 1211 1212var global = __w_pdfjs_require__(8); 1213var core = __w_pdfjs_require__(9); 1214var hide = __w_pdfjs_require__(10); 1215var redefine = __w_pdfjs_require__(20); 1216var ctx = __w_pdfjs_require__(23); 1217var PROTOTYPE = 'prototype';
1218var $export = function $export(type, name, source) { 1219 var IS_FORCED = type & $export.F; 1220 var IS_GLOBAL = type & $export.G; 1221 var IS_STATIC = type & $export.S; 1222 var IS_PROTO = type & $export.P; 1223 var IS_BIND = type & $export.B; 1224 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; 1225 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 1226 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); 1227 var key, own, out, exp; 1228 if (IS_GLOBAL) source = name; 1229 for (key in source) { 1230 own = !IS_FORCED && target && target[key] !== undefined; 1231 out = (own ? target : source)[key]; 1232 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 1233 if (target) redefine(target, key, out, type & $export.U); 1234 if (exports[key] != out) hide(exports, key, exp); 1235 if (IS_PROTO && expProto[key] != out) expProto[key] = out; 1236 } 1237}; 1238global.core = core; 1239$export.F = 1; 1240$export.G = 2; 1241$export.S = 4; 1242$export.P = 8; 1243$export.B = 16; 1244$export.W = 32; 1245$export.U = 64; 1246$export.R = 128; 1247module.exports = $export; 1248 1249/***/ }), 1250/* 8 */ 1251/***/ (function(module, exports, __w_pdfjs_require__) { 1252 1253"use strict"; 1254 1255 1256var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); 1257if (typeof __g == 'number') __g = global; 1258 1259/***/ }), 1260/* 9 */ 1261/***/ (function(module, exports, __w_pdfjs_require__) { 1262 1263"use strict"; 1264 1265 1266var core = module.exports = { version: '2.5.7' }; 1267if (typeof __e == 'number') __e = core; 1268 1269/***/ }), 1270/* 10 */ 1271/***/ (function(module, exports, __w_pdfjs_require__) { 1272 1273"use strict"; 1274 1275 1276var dP = __w_pdfjs_require__(11); 1277var createDesc = __w_pdfjs_require__(19); 1278module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { 1279 return dP.f(object, key, createDesc(1, value)); 1280} : function (object, key, value) { 1281 object[key] = value; 1282 return object; 1283}; 1284 1285/***/ }), 1286/* 11 */ 1287/***/ (function(module, exports, __w_pdfjs_require__) { 1288 1289"use strict"; 1290 1291 1292var anObject = __w_pdfjs_require__(12); 1293var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 1294var toPrimitive = __w_pdfjs_require__(18); 1295var dP = Object.defineProperty; 1296exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { 1297 anObject(O); 1298 P = toPrimitive(P, true); 1299 anObject(Attributes); 1300 if (IE8_DOM_DEFINE) try { 1301 return dP(O, P, Attributes); 1302 } catch (e) {} 1303 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 1304 if ('value' in Attributes) O[P] = Attributes.value; 1305 return O; 1306}; 1307 1308/***/ }), 1309/* 12 */ 1310/***/ (function(module, exports, __w_pdfjs_require__) { 1311 1312"use strict"; 1313 1314 1315var isObject = __w_pdfjs_require__(13); 1316module.exports = function (it) { 1317 if (!isObject(it)) throw TypeError(it + ' is not an object!'); 1318 return it; 1319}; 1320 1321/***/ }), 1322/* 13 */ 1323/***/ (function(module, exports, __w_pdfjs_require__) { 1324 1325"use strict"; 1326 1327 1328var _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; }; 1329 1330module.exports = function (it) { 1331 return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function'; 1332}; 1333 1334/***/ }), 1335/* 14 */ 1336/***/ (function(module, exports, __w_pdfjs_require__) { 1337 1338"use strict"; 1339 1340 1341module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { 1342 return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { 1343 get: function get() { 1344 return 7; 1345 } 1346 }).a != 7; 1347}); 1348 1349/***/ }), 1350/* 15 */ 1351/***/ (function(module, exports, __w_pdfjs_require__) { 1352 1353"use strict"; 1354 1355 1356module.exports = !__w_pdfjs_require__(16)(function () { 1357 return Object.defineProperty({}, 'a', { 1358 get: function get() { 1359 return 7; 1360 } 1361 }).a != 7; 1362}); 1363 1364/***/ }), 1365/* 16 */ 1366/***/ (function(module, exports, __w_pdfjs_require__) { 1367 1368"use strict"; 1369 1370 1371module.exports = function (exec) { 1372 try { 1373 return !!exec(); 1374 } catch (e) { 1375 return true; 1376 } 1377}; 1378 1379/***/ }), 1380/* 17 */ 1381/***/ (function(module, exports, __w_pdfjs_require__) { 1382 1383"use strict"; 1384 1385 1386var isObject = __w_pdfjs_require__(13); 1387var document = __w_pdfjs_require__(8).document; 1388var is = isObject(document) && isObject(document.createElement); 1389module.exports = function (it) { 1390 return is ? document.createElement(it) : {}; 1391}; 1392 1393/***/ }), 1394/* 18 */ 1395/***/ (function(module, exports, __w_pdfjs_require__) { 1396 1397"use strict"; 1398 1399 1400var isObject = __w_pdfjs_require__(13); 1401module.exports = function (it, S) { 1402 if (!isObject(it)) return it; 1403 var fn, val; 1404 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1405 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 1406 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1407 throw TypeError("Can't convert object to primitive value"); 1408}; 1409 1410/***/ }), 1411/* 19 */ 1412/***/ (function(module, exports, __w_pdfjs_require__) { 1413 1414"use strict"; 1415 1416 1417module.exports = function (bitmap, value) { 1418 return { 1419 enumerable: !(bitmap & 1), 1420 configurable: !(bitmap & 2), 1421 writable: !(bitmap & 4), 1422 value: value 1423 }; 1424}; 1425 1426/***/ }), 1427/* 20 */ 1428/***/ (function(module, exports, __w_pdfjs_require__) { 1429 1430"use strict"; 1431 1432 1433var global = __w_pdfjs_require__(8); 1434var hide = __w_pdfjs_require__(10); 1435var has = __w_pdfjs_require__(21); 1436var SRC = __w_pdfjs_require__(22)('src'); 1437var TO_STRING = 'toString'; 1438var $toString = Function[TO_STRING]; 1439var TPL = ('' + $toString).split(TO_STRING); 1440__w_pdfjs_require__(9).inspectSource = function (it) { 1441 return $toString.call(it); 1442}; 1443(module.exports = function (O, key, val, safe) { 1444 var isFunction = typeof val == 'function'; 1445 if (isFunction) has(val, 'name') || hide(val, 'name', key); 1446 if (O[key] === val) return; 1447 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); 1448 if (O === global) { 1449 O[key] = val; 1450 } else if (!safe) { 1451 delete O[key]; 1452 hide(O, key, val); 1453 } else if (O[key]) { 1454 O[key] = val; 1455 } else { 1456 hide(O, key, val); 1457 } 1458})(Function.prototype, TO_STRING, function toString() { 1459 return typeof this == 'function' && this[SRC] || $toString.call(this); 1460}); 1461 1462/***/ }), 1463/* 21 */ 1464/***/ (function(module, exports, __w_pdfjs_require__) { 1465 1466"use strict"; 1467 1468 1469var hasOwnProperty = {}.hasOwnProperty; 1470module.exports = function (it, key) { 1471 return hasOwnProperty.call(it, key); 1472}; 1473 1474/***/ }), 1475/* 22 */ 1476/***/ (function(module, exports, __w_pdfjs_require__) { 1477 1478"use strict"; 1479 1480 1481var id = 0; 1482var px = Math.random(); 1483module.exports = function (key) { 1484 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 1485}; 1486 1487/***/ }), 1488/* 23 */ 1489/***/ (function(module, exports, __w_pdfjs_require__) { 1490 1491"use strict"; 1492 1493 1494var aFunction = __w_pdfjs_require__(24); 1495module.exports = function (fn, that, length) { 1496 aFunction(fn); 1497 if (that === undefined) return fn; 1498 switch (length) { 1499 case 1: 1500 return function (a) {
1501 return fn.call(that, a); 1502 }; 1503 case 2: 1504 return function (a, b) { 1505 return fn.call(that, a, b); 1506 }; 1507 case 3: 1508 return function (a, b, c) { 1509 return fn.call(that, a, b, c); 1510 }; 1511 } 1512 return function () { 1513 return fn.apply(that, arguments); 1514 }; 1515}; 1516 1517/***/ }), 1518/* 24 */ 1519/***/ (function(module, exports, __w_pdfjs_require__) { 1520 1521"use strict"; 1522 1523 1524module.exports = function (it) { 1525 if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 1526 return it; 1527}; 1528 1529/***/ }), 1530/* 25 */ 1531/***/ (function(module, exports, __w_pdfjs_require__) { 1532 1533"use strict"; 1534 1535 1536var isRegExp = __w_pdfjs_require__(26); 1537var defined = __w_pdfjs_require__(31); 1538module.exports = function (that, searchString, NAME) { 1539 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); 1540 return String(defined(that)); 1541}; 1542 1543/***/ }), 1544/* 26 */ 1545/***/ (function(module, exports, __w_pdfjs_require__) { 1546 1547"use strict"; 1548 1549 1550var isObject = __w_pdfjs_require__(13); 1551var cof = __w_pdfjs_require__(27); 1552var MATCH = __w_pdfjs_require__(28)('match'); 1553module.exports = function (it) { 1554 var isRegExp; 1555 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); 1556}; 1557 1558/***/ }), 1559/* 27 */ 1560/***/ (function(module, exports, __w_pdfjs_require__) { 1561 1562"use strict"; 1563 1564 1565var toString = {}.toString; 1566module.exports = function (it) { 1567 return toString.call(it).slice(8, -1); 1568}; 1569 1570/***/ }), 1571/* 28 */ 1572/***/ (function(module, exports, __w_pdfjs_require__) { 1573 1574"use strict"; 1575 1576 1577var store = __w_pdfjs_require__(29)('wks'); 1578var uid = __w_pdfjs_require__(22); 1579var _Symbol = __w_pdfjs_require__(8).Symbol; 1580var USE_SYMBOL = typeof _Symbol == 'function'; 1581var $exports = module.exports = function (name) { 1582 return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); 1583}; 1584$exports.store = store; 1585 1586/***/ }), 1587/* 29 */ 1588/***/ (function(module, exports, __w_pdfjs_require__) { 1589 1590"use strict"; 1591 1592 1593var core = __w_pdfjs_require__(9); 1594var global = __w_pdfjs_require__(8); 1595var SHARED = '__core-js_shared__'; 1596var store = global[SHARED] || (global[SHARED] = {}); 1597(module.exports = function (key, value) { 1598 return store[key] || (store[key] = value !== undefined ? value : {}); 1599})('versions', []).push({ 1600 version: core.version, 1601 mode: __w_pdfjs_require__(30) ? 'pure' : 'global', 1602 copyright: '© 2018 Denis Pushkarev (zloirock.ru)' 1603}); 1604 1605/***/ }), 1606/* 30 */ 1607/***/ (function(module, exports, __w_pdfjs_require__) { 1608 1609"use strict"; 1610 1611 1612module.exports = false; 1613 1614/***/ }), 1615/* 31 */ 1616/***/ (function(module, exports, __w_pdfjs_require__) { 1617 1618"use strict"; 1619 1620 1621module.exports = function (it) { 1622 if (it == undefined) throw TypeError("Can't call method on " + it); 1623 return it; 1624}; 1625 1626/***/ }), 1627/* 32 */ 1628/***/ (function(module, exports, __w_pdfjs_require__) { 1629 1630"use strict"; 1631 1632 1633var MATCH = __w_pdfjs_require__(28)('match'); 1634module.exports = function (KEY) { 1635 var re = /./; 1636 try { 1637 '/./'[KEY](re); 1638 } catch (e) { 1639 try { 1640 re[MATCH] = false; 1641 return !'/./'[KEY](re); 1642 } catch (f) {} 1643 } 1644 return true; 1645}; 1646 1647/***/ }), 1648/* 33 */ 1649/***/ (function(module, exports, __w_pdfjs_require__) { 1650 1651"use strict"; 1652 1653 1654__w_pdfjs_require__(34); 1655module.exports = __w_pdfjs_require__(9).Array.includes; 1656 1657/***/ }), 1658/* 34 */ 1659/***/ (function(module, exports, __w_pdfjs_require__) { 1660 1661"use strict"; 1662 1663 1664var $export = __w_pdfjs_require__(7); 1665var $includes = __w_pdfjs_require__(35)(true); 1666$export($export.P, 'Array', { 1667 includes: function includes(el) { 1668 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 1669 } 1670}); 1671__w_pdfjs_require__(41)('includes'); 1672 1673/***/ }), 1674/* 35 */ 1675/***/ (function(module, exports, __w_pdfjs_require__) { 1676 1677"use strict"; 1678 1679 1680var toIObject = __w_pdfjs_require__(36); 1681var toLength = __w_pdfjs_require__(38); 1682var toAbsoluteIndex = __w_pdfjs_require__(40); 1683module.exports = function (IS_INCLUDES) { 1684 return function ($this, el, fromIndex) { 1685 var O = toIObject($this); 1686 var length = toLength(O.length); 1687 var index = toAbsoluteIndex(fromIndex, length); 1688 var value;
vendor: 4,534 bytes, lines 1689-1889
1689 if (IS_INCLUDES && el != el) while (length > index) { 1690 value = O[index++]; 1691 if (value != value) return true; 1692 } else for (; length > index; index++) { 1693 if (IS_INCLUDES || index in O) { 1694 if (O[index] === el) return IS_INCLUDES || index || 0; 1695 } 1696 }return !IS_INCLUDES && -1; 1697 }; 1698}; 1699 1700/***/ }), 1701/* 36 */ 1702/***/ (function(module, exports, __w_pdfjs_require__) { 1703 1704"use strict"; 1705 1706 1707var IObject = __w_pdfjs_require__(37); 1708var defined = __w_pdfjs_require__(31); 1709module.exports = function (it) { 1710 return IObject(defined(it)); 1711}; 1712 1713/***/ }), 1714/* 37 */ 1715/***/ (function(module, exports, __w_pdfjs_require__) { 1716 1717"use strict"; 1718 1719 1720var cof = __w_pdfjs_require__(27); 1721module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 1722 return cof(it) == 'String' ? it.split('') : Object(it); 1723}; 1724 1725/***/ }), 1726/* 38 */ 1727/***/ (function(module, exports, __w_pdfjs_require__) { 1728 1729"use strict"; 1730 1731 1732var toInteger = __w_pdfjs_require__(39); 1733var min = Math.min; 1734module.exports = function (it) { 1735 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; 1736}; 1737 1738/***/ }), 1739/* 39 */ 1740/***/ (function(module, exports, __w_pdfjs_require__) { 1741 1742"use strict"; 1743 1744 1745var ceil = Math.ceil; 1746var floor = Math.floor; 1747module.exports = function (it) { 1748 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 1749}; 1750 1751/***/ }), 1752/* 40 */ 1753/***/ (function(module, exports, __w_pdfjs_require__) { 1754 1755"use strict"; 1756 1757 1758var toInteger = __w_pdfjs_require__(39); 1759var max = Math.max; 1760var min = Math.min; 1761module.exports = function (index, length) { 1762 index = toInteger(index); 1763 return index < 0 ? max(index + length, 0) : min(index, length); 1764}; 1765 1766/***/ }), 1767/* 41 */ 1768/***/ (function(module, exports, __w_pdfjs_require__) { 1769 1770"use strict"; 1771 1772 1773var UNSCOPABLES = __w_pdfjs_require__(28)('unscopables'); 1774var ArrayProto = Array.prototype; 1775if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); 1776module.exports = function (key) { 1777 ArrayProto[UNSCOPABLES][key] = true; 1778}; 1779 1780/***/ }), 1781/* 42 */ 1782/***/ (function(module, exports, __w_pdfjs_require__) { 1783 1784"use strict"; 1785 1786 1787__w_pdfjs_require__(43); 1788module.exports = __w_pdfjs_require__(9).Object.assign; 1789 1790/***/ }), 1791/* 43 */ 1792/***/ (function(module, exports, __w_pdfjs_require__) { 1793 1794"use strict"; 1795 1796 1797var $export = __w_pdfjs_require__(7); 1798$export($export.S + $export.F, 'Object', { assign: __w_pdfjs_require__(44) }); 1799 1800/***/ }), 1801/* 44 */ 1802/***/ (function(module, exports, __w_pdfjs_require__) { 1803 1804"use strict"; 1805 1806 1807var getKeys = __w_pdfjs_require__(45); 1808var gOPS = __w_pdfjs_require__(49); 1809var pIE = __w_pdfjs_require__(50); 1810var toObject = __w_pdfjs_require__(51); 1811var IObject = __w_pdfjs_require__(37); 1812var $assign = Object.assign; 1813module.exports = !$assign || __w_pdfjs_require__(16)(function () { 1814 var A = {}; 1815 var B = {}; 1816 var S = Symbol(); 1817 var K = 'abcdefghijklmnopqrst'; 1818 A[S] = 7; 1819 K.split('').forEach(function (k) { 1820 B[k] = k; 1821 }); 1822 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 1823}) ? function assign(target, source) { 1824 var T = toObject(target); 1825 var aLen = arguments.length; 1826 var index = 1; 1827 var getSymbols = gOPS.f; 1828 var isEnum = pIE.f; 1829 while (aLen > index) { 1830 var S = IObject(arguments[index++]); 1831 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); 1832 var length = keys.length; 1833 var j = 0; 1834 var key; 1835 while (length > j) { 1836 if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; 1837 } 1838 } 1839 return T; 1840} : $assign; 1841 1842/***/ }), 1843/* 45 */ 1844/***/ (function(module, exports, __w_pdfjs_require__) { 1845 1846"use strict"; 1847 1848 1849var $keys = __w_pdfjs_require__(46); 1850var enumBugKeys = __w_pdfjs_require__(48); 1851module.exports = Object.keys || function keys(O) { 1852 return $keys(O, enumBugKeys); 1853}; 1854 1855/***/ }), 1856/* 46 */ 1857/***/ (function(module, exports, __w_pdfjs_require__) { 1858 1859"use strict"; 1860 1861 1862var has = __w_pdfjs_require__(21); 1863var toIObject = __w_pdfjs_require__(36); 1864var arrayIndexOf = __w_pdfjs_require__(35)(false); 1865var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO'); 1866module.exports = function (object, names) { 1867 var O = toIObject(object); 1868 var i = 0; 1869 var result = []; 1870 var key; 1871 for (key in O) { 1872 if (key != IE_PROTO) has(O, key) && result.push(key); 1873 }while (names.length > i) { 1874 if (has(O, key = names[i++])) { 1875 ~arrayIndexOf(result, key) || result.push(key); 1876 } 1877 }return result; 1878}; 1879 1880/***/ }), 1881/* 47 */ 1882/***/ (function(module, exports, __w_pdfjs_require__) { 1883 1884"use strict"; 1885 1886 1887var shared = __w_pdfjs_require__(29)('keys'); 1888var uid = __w_pdfjs_require__(22); 1889module.exports = function (key) {
1890 return shared[key] || (shared[key] = uid(key)); 1891}; 1892 1893/***/ }), 1894/* 48 */ 1895/***/ (function(module, exports, __w_pdfjs_require__) { 1896 1897"use strict"; 1898 1899 1900module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); 1901 1902/***/ }), 1903/* 49 */ 1904/***/ (function(module, exports, __w_pdfjs_require__) { 1905 1906"use strict"; 1907 1908 1909exports.f = Object.getOwnPropertySymbols; 1910 1911/***/ }), 1912/* 50 */ 1913/***/ (function(module, exports, __w_pdfjs_require__) { 1914 1915"use strict"; 1916 1917 1918exports.f = {}.propertyIsEnumerable; 1919 1920/***/ }), 1921/* 51 */ 1922/***/ (function(module, exports, __w_pdfjs_require__) { 1923 1924"use strict"; 1925 1926 1927var defined = __w_pdfjs_require__(31); 1928module.exports = function (it) { 1929 return Object(defined(it)); 1930}; 1931 1932/***/ }), 1933/* 52 */ 1934/***/ (function(module, exports, __w_pdfjs_require__) { 1935 1936"use strict"; 1937 1938 1939__w_pdfjs_require__(53); 1940module.exports = __w_pdfjs_require__(9).Math.log2; 1941 1942/***/ }), 1943/* 53 */ 1944/***/ (function(module, exports, __w_pdfjs_require__) { 1945 1946"use strict"; 1947 1948 1949var $export = __w_pdfjs_require__(7); 1950$export($export.S, 'Math', { 1951 log2: function log2(x) { 1952 return Math.log(x) / Math.LN2; 1953 } 1954}); 1955 1956/***/ }), 1957/* 54 */ 1958/***/ (function(module, exports, __w_pdfjs_require__) { 1959 1960"use strict"; 1961 1962 1963__w_pdfjs_require__(55); 1964module.exports = __w_pdfjs_require__(9).Number.isNaN; 1965 1966/***/ }), 1967/* 55 */ 1968/***/ (function(module, exports, __w_pdfjs_require__) { 1969 1970"use strict"; 1971 1972 1973var $export = __w_pdfjs_require__(7); 1974$export($export.S, 'Number', { 1975 isNaN: function isNaN(number) { 1976 return number != number; 1977 } 1978}); 1979 1980/***/ }), 1981/* 56 */ 1982/***/ (function(module, exports, __w_pdfjs_require__) { 1983 1984"use strict"; 1985 1986 1987__w_pdfjs_require__(57); 1988module.exports = __w_pdfjs_require__(9).Number.isInteger; 1989 1990/***/ }), 1991/* 57 */ 1992/***/ (function(module, exports, __w_pdfjs_require__) { 1993 1994"use strict"; 1995 1996 1997var $export = __w_pdfjs_require__(7); 1998$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(58) }); 1999 2000/***/ }), 2001/* 58 */ 2002/***/ (function(module, exports, __w_pdfjs_require__) { 2003 2004"use strict"; 2005 2006 2007var isObject = __w_pdfjs_require__(13); 2008var floor = Math.floor; 2009module.exports = function isInteger(it) { 2010 return !isObject(it) && isFinite(it) && floor(it) === it; 2011}; 2012 2013/***/ }), 2014/* 59 */ 2015/***/ (function(module, exports, __w_pdfjs_require__) { 2016 2017"use strict"; 2018 2019 2020__w_pdfjs_require__(60); 2021__w_pdfjs_require__(62); 2022__w_pdfjs_require__(72); 2023__w_pdfjs_require__(75); 2024__w_pdfjs_require__(92); 2025__w_pdfjs_require__(93); 2026module.exports = __w_pdfjs_require__(9).Promise; 2027 2028/***/ }), 2029/* 60 */ 2030/***/ (function(module, exports, __w_pdfjs_require__) { 2031 2032"use strict"; 2033 2034 2035var classof = __w_pdfjs_require__(61); 2036var test = {}; 2037test[__w_pdfjs_require__(28)('toStringTag')] = 'z'; 2038if (test + '' != '[object z]') { 2039 __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { 2040 return '[object ' + classof(this) + ']'; 2041 }, true); 2042} 2043 2044/***/ }), 2045/* 61 */ 2046/***/ (function(module, exports, __w_pdfjs_require__) { 2047 2048"use strict"; 2049 2050 2051var cof = __w_pdfjs_require__(27); 2052var TAG = __w_pdfjs_require__(28)('toStringTag'); 2053var ARG = cof(function () { 2054 return arguments; 2055}()) == 'Arguments'; 2056var tryGet = function tryGet(it, key) { 2057 try { 2058 return it[key]; 2059 } catch (e) {} 2060}; 2061module.exports = function (it) { 2062 var O, T, B; 2063 return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; 2064}; 2065 2066/***/ }), 2067/* 62 */ 2068/***/ (function(module, exports, __w_pdfjs_require__) { 2069 2070"use strict"; 2071 2072 2073var $at = __w_pdfjs_require__(63)(true); 2074__w_pdfjs_require__(64)(String, 'String', function (iterated) { 2075 this._t = String(iterated); 2076 this._i = 0; 2077}, function () { 2078 var O = this._t; 2079 var index = this._i; 2080 var point; 2081 if (index >= O.length) return { 2082 value: undefined, 2083 done: true 2084 }; 2085 point = $at(O, index); 2086 this._i += point.length; 2087 return { 2088 value: point, 2089 done: false 2090 }; 2091}); 2092 2093/***/ }), 2094/* 63 */ 2095/***/ (function(module, exports, __w_pdfjs_require__) { 2096 2097"use strict"; 2098 2099 2100var toInteger = __w_pdfjs_require__(39); 2101var defined = __w_pdfjs_require__(31); 2102module.exports = function (TO_STRING) { 2103 return function (that, pos) { 2104 var s = String(defined(that)); 2105 var i = toInteger(pos); 2106 var l = s.length; 2107 var a, b; 2108 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
vendor: 6,867 bytes, lines 2109-2346
2109 a = s.charCodeAt(i); 2110 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; 2111 }; 2112}; 2113 2114/***/ }), 2115/* 64 */ 2116/***/ (function(module, exports, __w_pdfjs_require__) { 2117 2118"use strict"; 2119 2120 2121var LIBRARY = __w_pdfjs_require__(30); 2122var $export = __w_pdfjs_require__(7); 2123var redefine = __w_pdfjs_require__(20); 2124var hide = __w_pdfjs_require__(10); 2125var Iterators = __w_pdfjs_require__(65); 2126var $iterCreate = __w_pdfjs_require__(66); 2127var setToStringTag = __w_pdfjs_require__(70); 2128var getPrototypeOf = __w_pdfjs_require__(71); 2129var ITERATOR = __w_pdfjs_require__(28)('iterator'); 2130var BUGGY = !([].keys && 'next' in [].keys()); 2131var FF_ITERATOR = '@@iterator'; 2132var KEYS = 'keys'; 2133var VALUES = 'values'; 2134var returnThis = function returnThis() { 2135 return this; 2136}; 2137module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 2138 $iterCreate(Constructor, NAME, next); 2139 var getMethod = function getMethod(kind) { 2140 if (!BUGGY && kind in proto) return proto[kind]; 2141 switch (kind) { 2142 case KEYS: 2143 return function keys() { 2144 return new Constructor(this, kind); 2145 }; 2146 case VALUES: 2147 return function values() { 2148 return new Constructor(this, kind); 2149 }; 2150 } 2151 return function entries() { 2152 return new Constructor(this, kind); 2153 }; 2154 }; 2155 var TAG = NAME + ' Iterator'; 2156 var DEF_VALUES = DEFAULT == VALUES; 2157 var VALUES_BUG = false; 2158 var proto = Base.prototype; 2159 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 2160 var $default = $native || getMethod(DEFAULT); 2161 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 2162 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 2163 var methods, key, IteratorPrototype; 2164 if ($anyNative) { 2165 IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 2166 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 2167 setToStringTag(IteratorPrototype, TAG, true); 2168 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); 2169 } 2170 } 2171 if (DEF_VALUES && $native && $native.name !== VALUES) { 2172 VALUES_BUG = true; 2173 $default = function values() { 2174 return $native.call(this); 2175 }; 2176 } 2177 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 2178 hide(proto, ITERATOR, $default); 2179 } 2180 Iterators[NAME] = $default; 2181 Iterators[TAG] = returnThis; 2182 if (DEFAULT) { 2183 methods = { 2184 values: DEF_VALUES ? $default : getMethod(VALUES), 2185 keys: IS_SET ? $default : getMethod(KEYS), 2186 entries: $entries 2187 }; 2188 if (FORCED) for (key in methods) { 2189 if (!(key in proto)) redefine(proto, key, methods[key]); 2190 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 2191 } 2192 return methods; 2193}; 2194 2195/***/ }), 2196/* 65 */ 2197/***/ (function(module, exports, __w_pdfjs_require__) { 2198 2199"use strict"; 2200 2201 2202module.exports = {}; 2203 2204/***/ }), 2205/* 66 */ 2206/***/ (function(module, exports, __w_pdfjs_require__) { 2207 2208"use strict"; 2209 2210 2211var create = __w_pdfjs_require__(67); 2212var descriptor = __w_pdfjs_require__(19); 2213var setToStringTag = __w_pdfjs_require__(70); 2214var IteratorPrototype = {}; 2215__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(28)('iterator'), function () { 2216 return this; 2217}); 2218module.exports = function (Constructor, NAME, next) { 2219 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); 2220 setToStringTag(Constructor, NAME + ' Iterator'); 2221}; 2222 2223/***/ }), 2224/* 67 */ 2225/***/ (function(module, exports, __w_pdfjs_require__) { 2226 2227"use strict"; 2228 2229 2230var anObject = __w_pdfjs_require__(12); 2231var dPs = __w_pdfjs_require__(68); 2232var enumBugKeys = __w_pdfjs_require__(48); 2233var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO'); 2234var Empty = function Empty() {}; 2235var PROTOTYPE = 'prototype'; 2236var _createDict = function createDict() { 2237 var iframe = __w_pdfjs_require__(17)('iframe'); 2238 var i = enumBugKeys.length; 2239 var lt = '<'; 2240 var gt = '>'; 2241 var iframeDocument; 2242 iframe.style.display = 'none'; 2243 __w_pdfjs_require__(69).appendChild(iframe); 2244 iframe.src = 'javascript:'; 2245 iframeDocument = iframe.contentWindow.document; 2246 iframeDocument.open(); 2247 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 2248 iframeDocument.close(); 2249 _createDict = iframeDocument.F; 2250 while (i--) { 2251 delete _createDict[PROTOTYPE][enumBugKeys[i]]; 2252 }return _createDict(); 2253}; 2254module.exports = Object.create || function create(O, Properties) { 2255 var result; 2256 if (O !== null) { 2257 Empty[PROTOTYPE] = anObject(O); 2258 result = new Empty(); 2259 Empty[PROTOTYPE] = null; 2260 result[IE_PROTO] = O; 2261 } else result = _createDict(); 2262 return Properties === undefined ? result : dPs(result, Properties); 2263}; 2264 2265/***/ }), 2266/* 68 */ 2267/***/ (function(module, exports, __w_pdfjs_require__) { 2268 2269"use strict"; 2270 2271 2272var dP = __w_pdfjs_require__(11); 2273var anObject = __w_pdfjs_require__(12); 2274var getKeys = __w_pdfjs_require__(45); 2275module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { 2276 anObject(O); 2277 var keys = getKeys(Properties); 2278 var length = keys.length; 2279 var i = 0; 2280 var P; 2281 while (length > i) { 2282 dP.f(O, P = keys[i++], Properties[P]); 2283 }return O; 2284}; 2285 2286/***/ }), 2287/* 69 */ 2288/***/ (function(module, exports, __w_pdfjs_require__) { 2289 2290"use strict"; 2291 2292 2293var document = __w_pdfjs_require__(8).document; 2294module.exports = document && document.documentElement; 2295 2296/***/ }), 2297/* 70 */ 2298/***/ (function(module, exports, __w_pdfjs_require__) { 2299 2300"use strict"; 2301 2302 2303var def = __w_pdfjs_require__(11).f; 2304var has = __w_pdfjs_require__(21); 2305var TAG = __w_pdfjs_require__(28)('toStringTag'); 2306module.exports = function (it, tag, stat) { 2307 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { 2308 configurable: true, 2309 value: tag 2310 }); 2311}; 2312 2313/***/ }), 2314/* 71 */ 2315/***/ (function(module, exports, __w_pdfjs_require__) { 2316 2317"use strict"; 2318 2319 2320var has = __w_pdfjs_require__(21); 2321var toObject = __w_pdfjs_require__(51); 2322var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO'); 2323var ObjectProto = Object.prototype; 2324module.exports = Object.getPrototypeOf || function (O) { 2325 O = toObject(O); 2326 if (has(O, IE_PROTO)) return O[IE_PROTO]; 2327 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 2328 return O.constructor.prototype; 2329 } 2330 return O instanceof Object ? ObjectProto : null; 2331}; 2332 2333/***/ }), 2334/* 72 */ 2335/***/ (function(module, exports, __w_pdfjs_require__) { 2336 2337"use strict"; 2338 2339 2340var $iterators = __w_pdfjs_require__(73); 2341var getKeys = __w_pdfjs_require__(45); 2342var redefine = __w_pdfjs_require__(20); 2343var global = __w_pdfjs_require__(8); 2344var hide = __w_pdfjs_require__(10); 2345var Iterators = __w_pdfjs_require__(65); 2346var wks = __w_pdfjs_require__(28);
2347var ITERATOR = wks('iterator'); 2348var TO_STRING_TAG = wks('toStringTag'); 2349var ArrayValues = Iterators.Array; 2350var DOMIterables = { 2351 CSSRuleList: true, 2352 CSSStyleDeclaration: false, 2353 CSSValueList: false, 2354 ClientRectList: false, 2355 DOMRectList: false, 2356 DOMStringList: false, 2357 DOMTokenList: true, 2358 DataTransferItemList: false, 2359 FileList: false, 2360 HTMLAllCollection: false, 2361 HTMLCollection: false, 2362 HTMLFormElement: false, 2363 HTMLSelectElement: false, 2364 MediaList: true, 2365 MimeTypeArray: false, 2366 NamedNodeMap: false, 2367 NodeList: true, 2368 PaintRequestList: false, 2369 Plugin: false, 2370 PluginArray: false, 2371 SVGLengthList: false, 2372 SVGNumberList: false, 2373 SVGPathSegList: false, 2374 SVGPointList: false, 2375 SVGStringList: false, 2376 SVGTransformList: false, 2377 SourceBufferList: false, 2378 StyleSheetList: true, 2379 TextTrackCueList: false, 2380 TextTrackList: false, 2381 TouchList: false 2382}; 2383for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { 2384 var NAME = collections[i]; 2385 var explicit = DOMIterables[NAME]; 2386 var Collection = global[NAME]; 2387 var proto = Collection && Collection.prototype; 2388 var key; 2389 if (proto) { 2390 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); 2391 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 2392 Iterators[NAME] = ArrayValues; 2393 if (explicit) for (key in $iterators) { 2394 if (!proto[key]) redefine(proto, key, $iterators[key], true); 2395 } 2396 } 2397} 2398 2399/***/ }), 2400/* 73 */ 2401/***/ (function(module, exports, __w_pdfjs_require__) { 2402 2403"use strict"; 2404 2405 2406var addToUnscopables = __w_pdfjs_require__(41); 2407var step = __w_pdfjs_require__(74); 2408var Iterators = __w_pdfjs_require__(65); 2409var toIObject = __w_pdfjs_require__(36); 2410module.exports = __w_pdfjs_require__(64)(Array, 'Array', function (iterated, kind) { 2411 this._t = toIObject(iterated); 2412 this._i = 0; 2413 this._k = kind; 2414}, function () { 2415 var O = this._t; 2416 var kind = this._k; 2417 var index = this._i++; 2418 if (!O || index >= O.length) { 2419 this._t = undefined; 2420 return step(1); 2421 } 2422 if (kind == 'keys') return step(0, index); 2423 if (kind == 'values') return step(0, O[index]); 2424 return step(0, [index, O[index]]); 2425}, 'values'); 2426Iterators.Arguments = Iterators.Array; 2427addToUnscopables('keys'); 2428addToUnscopables('values'); 2429addToUnscopables('entries'); 2430 2431/***/ }), 2432/* 74 */ 2433/***/ (function(module, exports, __w_pdfjs_require__) { 2434 2435"use strict"; 2436 2437 2438module.exports = function (done, value) { 2439 return { 2440 value: value, 2441 done: !!done 2442 }; 2443}; 2444 2445/***/ }), 2446/* 75 */ 2447/***/ (function(module, exports, __w_pdfjs_require__) { 2448 2449"use strict"; 2450 2451 2452var LIBRARY = __w_pdfjs_require__(30); 2453var global = __w_pdfjs_require__(8); 2454var ctx = __w_pdfjs_require__(23); 2455var classof = __w_pdfjs_require__(61); 2456var $export = __w_pdfjs_require__(7); 2457var isObject = __w_pdfjs_require__(13); 2458var aFunction = __w_pdfjs_require__(24); 2459var anInstance = __w_pdfjs_require__(76); 2460var forOf = __w_pdfjs_require__(77); 2461var speciesConstructor = __w_pdfjs_require__(81); 2462var task = __w_pdfjs_require__(82).set; 2463var microtask = __w_pdfjs_require__(84)(); 2464var newPromiseCapabilityModule = __w_pdfjs_require__(85); 2465var perform = __w_pdfjs_require__(86); 2466var userAgent = __w_pdfjs_require__(87); 2467var promiseResolve = __w_pdfjs_require__(88); 2468var PROMISE = 'Promise'; 2469var TypeError = global.TypeError; 2470var process = global.process; 2471var versions = process && process.versions; 2472var v8 = versions && versions.v8 || ''; 2473var $Promise = global[PROMISE]; 2474var isNode = classof(process) == 'process'; 2475var empty = function empty() {}; 2476var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; 2477var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; 2478var USE_NATIVE = !!function () { 2479 try { 2480 var promise = $Promise.resolve(1); 2481 var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(28)('species')] = function (exec) { 2482 exec(empty, empty); 2483 }; 2484 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; 2485 } catch (e) {} 2486}(); 2487var isThenable = function isThenable(it) { 2488 var then; 2489 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
vendor: 4,103 bytes, lines 2490-2637
2490}; 2491var notify = function notify(promise, isReject) { 2492 if (promise._n) return; 2493 promise._n = true; 2494 var chain = promise._c; 2495 microtask(function () { 2496 var value = promise._v; 2497 var ok = promise._s == 1; 2498 var i = 0; 2499 var run = function run(reaction) { 2500 var handler = ok ? reaction.ok : reaction.fail; 2501 var resolve = reaction.resolve; 2502 var reject = reaction.reject; 2503 var domain = reaction.domain; 2504 var result, then, exited; 2505 try { 2506 if (handler) { 2507 if (!ok) { 2508 if (promise._h == 2) onHandleUnhandled(promise); 2509 promise._h = 1; 2510 } 2511 if (handler === true) result = value;else { 2512 if (domain) domain.enter(); 2513 result = handler(value); 2514 if (domain) { 2515 domain.exit(); 2516 exited = true; 2517 } 2518 } 2519 if (result === reaction.promise) { 2520 reject(TypeError('Promise-chain cycle')); 2521 } else if (then = isThenable(result)) { 2522 then.call(result, resolve, reject); 2523 } else resolve(result); 2524 } else reject(value); 2525 } catch (e) { 2526 if (domain && !exited) domain.exit(); 2527 reject(e); 2528 } 2529 }; 2530 while (chain.length > i) { 2531 run(chain[i++]); 2532 }promise._c = []; 2533 promise._n = false; 2534 if (isReject && !promise._h) onUnhandled(promise); 2535 }); 2536}; 2537var onUnhandled = function onUnhandled(promise) { 2538 task.call(global, function () { 2539 var value = promise._v; 2540 var unhandled = isUnhandled(promise); 2541 var result, handler, console; 2542 if (unhandled) { 2543 result = perform(function () { 2544 if (isNode) { 2545 process.emit('unhandledRejection', value, promise); 2546 } else if (handler = global.onunhandledrejection) { 2547 handler({ 2548 promise: promise, 2549 reason: value 2550 }); 2551 } else if ((console = global.console) && console.error) { 2552 console.error('Unhandled promise rejection', value); 2553 } 2554 }); 2555 promise._h = isNode || isUnhandled(promise) ? 2 : 1; 2556 } 2557 promise._a = undefined; 2558 if (unhandled && result.e) throw result.v; 2559 }); 2560}; 2561var isUnhandled = function isUnhandled(promise) { 2562 return promise._h !== 1 && (promise._a || promise._c).length === 0; 2563}; 2564var onHandleUnhandled = function onHandleUnhandled(promise) { 2565 task.call(global, function () { 2566 var handler; 2567 if (isNode) { 2568 process.emit('rejectionHandled', promise); 2569 } else if (handler = global.onrejectionhandled) { 2570 handler({ 2571 promise: promise, 2572 reason: promise._v 2573 }); 2574 } 2575 }); 2576}; 2577var $reject = function $reject(value) { 2578 var promise = this; 2579 if (promise._d) return; 2580 promise._d = true; 2581 promise = promise._w || promise; 2582 promise._v = value; 2583 promise._s = 2; 2584 if (!promise._a) promise._a = promise._c.slice(); 2585 notify(promise, true); 2586}; 2587var $resolve = function $resolve(value) { 2588 var promise = this; 2589 var then; 2590 if (promise._d) return; 2591 promise._d = true; 2592 promise = promise._w || promise; 2593 try { 2594 if (promise === value) throw TypeError("Promise can't be resolved itself"); 2595 if (then = isThenable(value)) { 2596 microtask(function () { 2597 var wrapper = { 2598 _w: promise, 2599 _d: false 2600 }; 2601 try { 2602 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 2603 } catch (e) { 2604 $reject.call(wrapper, e); 2605 } 2606 }); 2607 } else { 2608 promise._v = value; 2609 promise._s = 1; 2610 notify(promise, false); 2611 } 2612 } catch (e) { 2613 $reject.call({ 2614 _w: promise, 2615 _d: false 2616 }, e); 2617 } 2618}; 2619if (!USE_NATIVE) { 2620 $Promise = function Promise(executor) { 2621 anInstance(this, $Promise, PROMISE, '_h'); 2622 aFunction(executor); 2623 Internal.call(this); 2624 try { 2625 executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 2626 } catch (err) { 2627 $reject.call(this, err); 2628 } 2629 }; 2630 Internal = function Promise(executor) { 2631 this._c = []; 2632 this._a = undefined; 2633 this._s = 0; 2634 this._d = false; 2635 this._v = undefined; 2636 this._h = 0; 2637 this._n = false;
vendor: 5,089 bytes, lines 2638-2797
2638 }; 2639 Internal.prototype = __w_pdfjs_require__(89)($Promise.prototype, { 2640 then: function then(onFulfilled, onRejected) { 2641 var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 2642 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 2643 reaction.fail = typeof onRejected == 'function' && onRejected; 2644 reaction.domain = isNode ? process.domain : undefined; 2645 this._c.push(reaction); 2646 if (this._a) this._a.push(reaction); 2647 if (this._s) notify(this, false); 2648 return reaction.promise; 2649 }, 2650 'catch': function _catch(onRejected) { 2651 return this.then(undefined, onRejected); 2652 } 2653 }); 2654 OwnPromiseCapability = function OwnPromiseCapability() { 2655 var promise = new Internal(); 2656 this.promise = promise; 2657 this.resolve = ctx($resolve, promise, 1); 2658 this.reject = ctx($reject, promise, 1); 2659 }; 2660 newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { 2661 return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); 2662 }; 2663} 2664$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); 2665__w_pdfjs_require__(70)($Promise, PROMISE); 2666__w_pdfjs_require__(90)(PROMISE); 2667Wrapper = __w_pdfjs_require__(9)[PROMISE]; 2668$export($export.S + $export.F * !USE_NATIVE, PROMISE, { 2669 reject: function reject(r) { 2670 var capability = newPromiseCapability(this); 2671 var $$reject = capability.reject; 2672 $$reject(r); 2673 return capability.promise; 2674 } 2675}); 2676$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 2677 resolve: function resolve(x) { 2678 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); 2679 } 2680}); 2681$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(91)(function (iter) { 2682 $Promise.all(iter)['catch'](empty); 2683})), PROMISE, { 2684 all: function all(iterable) { 2685 var C = this; 2686 var capability = newPromiseCapability(C); 2687 var resolve = capability.resolve; 2688 var reject = capability.reject; 2689 var result = perform(function () { 2690 var values = []; 2691 var index = 0; 2692 var remaining = 1; 2693 forOf(iterable, false, function (promise) { 2694 var $index = index++; 2695 var alreadyCalled = false; 2696 values.push(undefined); 2697 remaining++; 2698 C.resolve(promise).then(function (value) { 2699 if (alreadyCalled) return; 2700 alreadyCalled = true; 2701 values[$index] = value; 2702 --remaining || resolve(values); 2703 }, reject); 2704 }); 2705 --remaining || resolve(values); 2706 }); 2707 if (result.e) reject(result.v); 2708 return capability.promise; 2709 }, 2710 race: function race(iterable) { 2711 var C = this; 2712 var capability = newPromiseCapability(C); 2713 var reject = capability.reject; 2714 var result = perform(function () { 2715 forOf(iterable, false, function (promise) { 2716 C.resolve(promise).then(capability.resolve, reject); 2717 }); 2718 }); 2719 if (result.e) reject(result.v); 2720 return capability.promise; 2721 } 2722}); 2723 2724/***/ }), 2725/* 76 */ 2726/***/ (function(module, exports, __w_pdfjs_require__) { 2727 2728"use strict"; 2729 2730 2731module.exports = function (it, Constructor, name, forbiddenField) { 2732 if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { 2733 throw TypeError(name + ': incorrect invocation!'); 2734 } 2735 return it; 2736}; 2737 2738/***/ }), 2739/* 77 */ 2740/***/ (function(module, exports, __w_pdfjs_require__) { 2741 2742"use strict"; 2743 2744 2745var ctx = __w_pdfjs_require__(23); 2746var call = __w_pdfjs_require__(78); 2747var isArrayIter = __w_pdfjs_require__(79); 2748var anObject = __w_pdfjs_require__(12); 2749var toLength = __w_pdfjs_require__(38); 2750var getIterFn = __w_pdfjs_require__(80); 2751var BREAK = {}; 2752var RETURN = {}; 2753var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { 2754 var iterFn = ITERATOR ? function () { 2755 return iterable; 2756 } : getIterFn(iterable); 2757 var f = ctx(fn, that, entries ? 2 : 1); 2758 var index = 0; 2759 var length, step, iterator, result; 2760 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); 2761 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { 2762 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 2763 if (result === BREAK || result === RETURN) return result; 2764 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { 2765 result = call(iterator, f, step.value, entries); 2766 if (result === BREAK || result === RETURN) return result; 2767 } 2768}; 2769_exports.BREAK = BREAK; 2770_exports.RETURN = RETURN; 2771 2772/***/ }), 2773/* 78 */ 2774/***/ (function(module, exports, __w_pdfjs_require__) { 2775 2776"use strict"; 2777 2778 2779var anObject = __w_pdfjs_require__(12); 2780module.exports = function (iterator, fn, value, entries) { 2781 try { 2782 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 2783 } catch (e) { 2784 var ret = iterator['return']; 2785 if (ret !== undefined) anObject(ret.call(iterator)); 2786 throw e; 2787 } 2788}; 2789 2790/***/ }), 2791/* 79 */ 2792/***/ (function(module, exports, __w_pdfjs_require__) { 2793 2794"use strict"; 2795 2796 2797var Iterators = __w_pdfjs_require__(65);
vendor: 4,480 bytes, lines 2798-2961
2798var ITERATOR = __w_pdfjs_require__(28)('iterator'); 2799var ArrayProto = Array.prototype; 2800module.exports = function (it) { 2801 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 2802}; 2803 2804/***/ }), 2805/* 80 */ 2806/***/ (function(module, exports, __w_pdfjs_require__) { 2807 2808"use strict"; 2809 2810 2811var classof = __w_pdfjs_require__(61); 2812var ITERATOR = __w_pdfjs_require__(28)('iterator'); 2813var Iterators = __w_pdfjs_require__(65); 2814module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { 2815 if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; 2816}; 2817 2818/***/ }), 2819/* 81 */ 2820/***/ (function(module, exports, __w_pdfjs_require__) { 2821 2822"use strict"; 2823 2824 2825var anObject = __w_pdfjs_require__(12); 2826var aFunction = __w_pdfjs_require__(24); 2827var SPECIES = __w_pdfjs_require__(28)('species'); 2828module.exports = function (O, D) { 2829 var C = anObject(O).constructor; 2830 var S; 2831 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 2832}; 2833 2834/***/ }), 2835/* 82 */ 2836/***/ (function(module, exports, __w_pdfjs_require__) { 2837 2838"use strict"; 2839 2840 2841var ctx = __w_pdfjs_require__(23); 2842var invoke = __w_pdfjs_require__(83); 2843var html = __w_pdfjs_require__(69); 2844var cel = __w_pdfjs_require__(17); 2845var global = __w_pdfjs_require__(8); 2846var process = global.process; 2847var setTask = global.setImmediate; 2848var clearTask = global.clearImmediate; 2849var MessageChannel = global.MessageChannel; 2850var Dispatch = global.Dispatch; 2851var counter = 0; 2852var queue = {}; 2853var ONREADYSTATECHANGE = 'onreadystatechange'; 2854var defer, channel, port; 2855var run = function run() { 2856 var id = +this; 2857 if (queue.hasOwnProperty(id)) { 2858 var fn = queue[id]; 2859 delete queue[id]; 2860 fn(); 2861 } 2862}; 2863var listener = function listener(event) { 2864 run.call(event.data); 2865}; 2866if (!setTask || !clearTask) { 2867 setTask = function setImmediate(fn) { 2868 var args = []; 2869 var i = 1; 2870 while (arguments.length > i) { 2871 args.push(arguments[i++]); 2872 }queue[++counter] = function () { 2873 invoke(typeof fn == 'function' ? fn : Function(fn), args); 2874 }; 2875 defer(counter); 2876 return counter; 2877 }; 2878 clearTask = function clearImmediate(id) { 2879 delete queue[id]; 2880 }; 2881 if (__w_pdfjs_require__(27)(process) == 'process') { 2882 defer = function defer(id) { 2883 process.nextTick(ctx(run, id, 1)); 2884 }; 2885 } else if (Dispatch && Dispatch.now) { 2886 defer = function defer(id) { 2887 Dispatch.now(ctx(run, id, 1)); 2888 }; 2889 } else if (MessageChannel) { 2890 channel = new MessageChannel(); 2891 port = channel.port2; 2892 channel.port1.onmessage = listener; 2893 defer = ctx(port.postMessage, port, 1); 2894 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { 2895 defer = function defer(id) { 2896 global.postMessage(id + '', '*'); 2897 }; 2898 global.addEventListener('message', listener, false); 2899 } else if (ONREADYSTATECHANGE in cel('script')) { 2900 defer = function defer(id) { 2901 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { 2902 html.removeChild(this); 2903 run.call(id); 2904 }; 2905 }; 2906 } else { 2907 defer = function defer(id) { 2908 setTimeout(ctx(run, id, 1), 0); 2909 }; 2910 } 2911} 2912module.exports = { 2913 set: setTask, 2914 clear: clearTask 2915}; 2916 2917/***/ }), 2918/* 83 */ 2919/***/ (function(module, exports, __w_pdfjs_require__) { 2920 2921"use strict"; 2922 2923 2924module.exports = function (fn, args, that) { 2925 var un = that === undefined; 2926 switch (args.length) { 2927 case 0: 2928 return un ? fn() : fn.call(that); 2929 case 1: 2930 return un ? fn(args[0]) : fn.call(that, args[0]); 2931 case 2: 2932 return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); 2933 case 3: 2934 return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); 2935 case 4: 2936 return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); 2937 } 2938 return fn.apply(that, args); 2939}; 2940 2941/***/ }), 2942/* 84 */ 2943/***/ (function(module, exports, __w_pdfjs_require__) { 2944 2945"use strict"; 2946 2947 2948var global = __w_pdfjs_require__(8); 2949var macrotask = __w_pdfjs_require__(82).set; 2950var Observer = global.MutationObserver || global.WebKitMutationObserver; 2951var process = global.process; 2952var Promise = global.Promise; 2953var isNode = __w_pdfjs_require__(27)(process) == 'process'; 2954module.exports = function () { 2955 var head, last, notify; 2956 var flush = function flush() { 2957 var parent, fn; 2958 if (isNode && (parent = process.domain)) parent.exit(); 2959 while (head) { 2960 fn = head.fn; 2961 head = head.next;
vendor: 4,840 bytes, lines 2962-3184
2962 try { 2963 fn(); 2964 } catch (e) { 2965 if (head) notify();else last = undefined; 2966 throw e; 2967 } 2968 } 2969 last = undefined; 2970 if (parent) parent.enter(); 2971 }; 2972 if (isNode) { 2973 notify = function notify() { 2974 process.nextTick(flush); 2975 }; 2976 } else if (Observer && !(global.navigator && global.navigator.standalone)) { 2977 var toggle = true; 2978 var node = document.createTextNode(''); 2979 new Observer(flush).observe(node, { characterData: true }); 2980 notify = function notify() { 2981 node.data = toggle = !toggle; 2982 }; 2983 } else if (Promise && Promise.resolve) { 2984 var promise = Promise.resolve(undefined); 2985 notify = function notify() { 2986 promise.then(flush); 2987 }; 2988 } else { 2989 notify = function notify() { 2990 macrotask.call(global, flush); 2991 }; 2992 } 2993 return function (fn) { 2994 var task = { 2995 fn: fn, 2996 next: undefined 2997 }; 2998 if (last) last.next = task; 2999 if (!head) { 3000 head = task; 3001 notify(); 3002 } 3003 last = task; 3004 }; 3005}; 3006 3007/***/ }), 3008/* 85 */ 3009/***/ (function(module, exports, __w_pdfjs_require__) { 3010 3011"use strict"; 3012 3013 3014var aFunction = __w_pdfjs_require__(24); 3015function PromiseCapability(C) { 3016 var resolve, reject; 3017 this.promise = new C(function ($$resolve, $$reject) { 3018 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 3019 resolve = $$resolve; 3020 reject = $$reject; 3021 }); 3022 this.resolve = aFunction(resolve); 3023 this.reject = aFunction(reject); 3024} 3025module.exports.f = function (C) { 3026 return new PromiseCapability(C); 3027}; 3028 3029/***/ }), 3030/* 86 */ 3031/***/ (function(module, exports, __w_pdfjs_require__) { 3032 3033"use strict"; 3034 3035 3036module.exports = function (exec) { 3037 try { 3038 return { 3039 e: false, 3040 v: exec() 3041 }; 3042 } catch (e) { 3043 return { 3044 e: true, 3045 v: e 3046 }; 3047 } 3048}; 3049 3050/***/ }), 3051/* 87 */ 3052/***/ (function(module, exports, __w_pdfjs_require__) { 3053 3054"use strict"; 3055 3056 3057var global = __w_pdfjs_require__(8); 3058var navigator = global.navigator; 3059module.exports = navigator && navigator.userAgent || ''; 3060 3061/***/ }), 3062/* 88 */ 3063/***/ (function(module, exports, __w_pdfjs_require__) { 3064 3065"use strict"; 3066 3067 3068var anObject = __w_pdfjs_require__(12); 3069var isObject = __w_pdfjs_require__(13); 3070var newPromiseCapability = __w_pdfjs_require__(85); 3071module.exports = function (C, x) { 3072 anObject(C); 3073 if (isObject(x) && x.constructor === C) return x; 3074 var promiseCapability = newPromiseCapability.f(C); 3075 var resolve = promiseCapability.resolve; 3076 resolve(x); 3077 return promiseCapability.promise; 3078}; 3079 3080/***/ }), 3081/* 89 */ 3082/***/ (function(module, exports, __w_pdfjs_require__) { 3083 3084"use strict"; 3085 3086 3087var redefine = __w_pdfjs_require__(20); 3088module.exports = function (target, src, safe) { 3089 for (var key in src) { 3090 redefine(target, key, src[key], safe); 3091 }return target; 3092}; 3093 3094/***/ }), 3095/* 90 */ 3096/***/ (function(module, exports, __w_pdfjs_require__) { 3097 3098"use strict"; 3099 3100 3101var global = __w_pdfjs_require__(8); 3102var dP = __w_pdfjs_require__(11); 3103var DESCRIPTORS = __w_pdfjs_require__(15); 3104var SPECIES = __w_pdfjs_require__(28)('species'); 3105module.exports = function (KEY) { 3106 var C = global[KEY]; 3107 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { 3108 configurable: true, 3109 get: function get() { 3110 return this; 3111 } 3112 }); 3113}; 3114 3115/***/ }), 3116/* 91 */ 3117/***/ (function(module, exports, __w_pdfjs_require__) { 3118 3119"use strict"; 3120 3121 3122var ITERATOR = __w_pdfjs_require__(28)('iterator'); 3123var SAFE_CLOSING = false; 3124try { 3125 var riter = [7][ITERATOR](); 3126 riter['return'] = function () { 3127 SAFE_CLOSING = true; 3128 }; 3129 Array.from(riter, function () { 3130 throw 2; 3131 }); 3132} catch (e) {} 3133module.exports = function (exec, skipClosing) { 3134 if (!skipClosing && !SAFE_CLOSING) return false; 3135 var safe = false; 3136 try { 3137 var arr = [7]; 3138 var iter = arr[ITERATOR](); 3139 iter.next = function () { 3140 return { done: safe = true }; 3141 }; 3142 arr[ITERATOR] = function () { 3143 return iter; 3144 }; 3145 exec(arr); 3146 } catch (e) {} 3147 return safe; 3148}; 3149 3150/***/ }), 3151/* 92 */ 3152/***/ (function(module, exports, __w_pdfjs_require__) { 3153 3154"use strict"; 3155 3156 3157var $export = __w_pdfjs_require__(7); 3158var core = __w_pdfjs_require__(9); 3159var global = __w_pdfjs_require__(8); 3160var speciesConstructor = __w_pdfjs_require__(81); 3161var promiseResolve = __w_pdfjs_require__(88); 3162$export($export.P + $export.R, 'Promise', { 3163 'finally': function _finally(onFinally) { 3164 var C = speciesConstructor(this, core.Promise || global.Promise); 3165 var isFunction = typeof onFinally == 'function'; 3166 return this.then(isFunction ? function (x) { 3167 return promiseResolve(C, onFinally()).then(function () { 3168 return x; 3169 }); 3170 } : onFinally, isFunction ? function (e) { 3171 return promiseResolve(C, onFinally()).then(function () { 3172 throw e; 3173 }); 3174 } : onFinally); 3175 } 3176}); 3177 3178/***/ }), 3179/* 93 */ 3180/***/ (function(module, exports, __w_pdfjs_require__) { 3181 3182"use strict"; 3183 3184
vendor: 10,612 bytes, lines 3185-3550
3185var $export = __w_pdfjs_require__(7); 3186var newPromiseCapability = __w_pdfjs_require__(85); 3187var perform = __w_pdfjs_require__(86); 3188$export($export.S, 'Promise', { 3189 'try': function _try(callbackfn) { 3190 var promiseCapability = newPromiseCapability.f(this); 3191 var result = perform(callbackfn); 3192 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); 3193 return promiseCapability.promise; 3194 } 3195}); 3196 3197/***/ }), 3198/* 94 */ 3199/***/ (function(module, exports, __w_pdfjs_require__) { 3200 3201"use strict"; 3202 3203 3204__w_pdfjs_require__(60); 3205__w_pdfjs_require__(72); 3206__w_pdfjs_require__(95); 3207__w_pdfjs_require__(107); 3208__w_pdfjs_require__(109); 3209module.exports = __w_pdfjs_require__(9).WeakMap; 3210 3211/***/ }), 3212/* 95 */ 3213/***/ (function(module, exports, __w_pdfjs_require__) { 3214 3215"use strict"; 3216 3217 3218var each = __w_pdfjs_require__(96)(0); 3219var redefine = __w_pdfjs_require__(20); 3220var meta = __w_pdfjs_require__(100); 3221var assign = __w_pdfjs_require__(44); 3222var weak = __w_pdfjs_require__(101); 3223var isObject = __w_pdfjs_require__(13); 3224var fails = __w_pdfjs_require__(16); 3225var validate = __w_pdfjs_require__(102); 3226var WEAK_MAP = 'WeakMap'; 3227var getWeak = meta.getWeak; 3228var isExtensible = Object.isExtensible; 3229var uncaughtFrozenStore = weak.ufstore; 3230var tmp = {}; 3231var InternalMap; 3232var wrapper = function wrapper(get) { 3233 return function WeakMap() { 3234 return get(this, arguments.length > 0 ? arguments[0] : undefined); 3235 }; 3236}; 3237var methods = { 3238 get: function get(key) { 3239 if (isObject(key)) { 3240 var data = getWeak(key); 3241 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); 3242 return data ? data[this._i] : undefined; 3243 } 3244 }, 3245 set: function set(key, value) { 3246 return weak.def(validate(this, WEAK_MAP), key, value); 3247 } 3248}; 3249var $WeakMap = module.exports = __w_pdfjs_require__(103)(WEAK_MAP, wrapper, methods, weak, true, true); 3250if (fails(function () { 3251 return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; 3252})) { 3253 InternalMap = weak.getConstructor(wrapper, WEAK_MAP); 3254 assign(InternalMap.prototype, methods); 3255 meta.NEED = true; 3256 each(['delete', 'has', 'get', 'set'], function (key) { 3257 var proto = $WeakMap.prototype; 3258 var method = proto[key]; 3259 redefine(proto, key, function (a, b) { 3260 if (isObject(a) && !isExtensible(a)) { 3261 if (!this._f) this._f = new InternalMap(); 3262 var result = this._f[key](a, b); 3263 return key == 'set' ? this : result; 3264 } 3265 return method.call(this, a, b); 3266 }); 3267 }); 3268} 3269 3270/***/ }), 3271/* 96 */ 3272/***/ (function(module, exports, __w_pdfjs_require__) { 3273 3274"use strict"; 3275 3276 3277var ctx = __w_pdfjs_require__(23); 3278var IObject = __w_pdfjs_require__(37); 3279var toObject = __w_pdfjs_require__(51); 3280var toLength = __w_pdfjs_require__(38); 3281var asc = __w_pdfjs_require__(97); 3282module.exports = function (TYPE, $create) { 3283 var IS_MAP = TYPE == 1; 3284 var IS_FILTER = TYPE == 2; 3285 var IS_SOME = TYPE == 3; 3286 var IS_EVERY = TYPE == 4; 3287 var IS_FIND_INDEX = TYPE == 6; 3288 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 3289 var create = $create || asc; 3290 return function ($this, callbackfn, that) { 3291 var O = toObject($this); 3292 var self = IObject(O); 3293 var f = ctx(callbackfn, that, 3); 3294 var length = toLength(self.length); 3295 var index = 0; 3296 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; 3297 var val, res; 3298 for (; length > index; index++) { 3299 if (NO_HOLES || index in self) { 3300 val = self[index]; 3301 res = f(val, index, O); 3302 if (TYPE) { 3303 if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { 3304 case 3: 3305 return true; 3306 case 5: 3307 return val; 3308 case 6: 3309 return index; 3310 case 2: 3311 result.push(val); 3312 } else if (IS_EVERY) return false; 3313 } 3314 } 3315 }return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; 3316 }; 3317}; 3318 3319/***/ }), 3320/* 97 */ 3321/***/ (function(module, exports, __w_pdfjs_require__) { 3322 3323"use strict"; 3324 3325 3326var speciesConstructor = __w_pdfjs_require__(98); 3327module.exports = function (original, length) { 3328 return new (speciesConstructor(original))(length); 3329}; 3330 3331/***/ }), 3332/* 98 */ 3333/***/ (function(module, exports, __w_pdfjs_require__) { 3334 3335"use strict"; 3336 3337 3338var isObject = __w_pdfjs_require__(13); 3339var isArray = __w_pdfjs_require__(99); 3340var SPECIES = __w_pdfjs_require__(28)('species'); 3341module.exports = function (original) { 3342 var C; 3343 if (isArray(original)) { 3344 C = original.constructor; 3345 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 3346 if (isObject(C)) { 3347 C = C[SPECIES]; 3348 if (C === null) C = undefined; 3349 } 3350 } 3351 return C === undefined ? Array : C; 3352}; 3353 3354/***/ }), 3355/* 99 */ 3356/***/ (function(module, exports, __w_pdfjs_require__) { 3357 3358"use strict"; 3359 3360 3361var cof = __w_pdfjs_require__(27); 3362module.exports = Array.isArray || function isArray(arg) { 3363 return cof(arg) == 'Array'; 3364}; 3365 3366/***/ }), 3367/* 100 */ 3368/***/ (function(module, exports, __w_pdfjs_require__) { 3369 3370"use strict"; 3371 3372 3373var _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; }; 3374 3375var META = __w_pdfjs_require__(22)('meta'); 3376var isObject = __w_pdfjs_require__(13); 3377var has = __w_pdfjs_require__(21); 3378var setDesc = __w_pdfjs_require__(11).f; 3379var id = 0; 3380var isExtensible = Object.isExtensible || function () { 3381 return true; 3382}; 3383var FREEZE = !__w_pdfjs_require__(16)(function () { 3384 return isExtensible(Object.preventExtensions({})); 3385}); 3386var setMeta = function setMeta(it) { 3387 setDesc(it, META, { 3388 value: { 3389 i: 'O' + ++id, 3390 w: {} 3391 } 3392 }); 3393}; 3394var fastKey = function fastKey(it, create) { 3395 if (!isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 3396 if (!has(it, META)) { 3397 if (!isExtensible(it)) return 'F'; 3398 if (!create) return 'E'; 3399 setMeta(it); 3400 } 3401 return it[META].i; 3402}; 3403var getWeak = function getWeak(it, create) { 3404 if (!has(it, META)) { 3405 if (!isExtensible(it)) return true; 3406 if (!create) return false; 3407 setMeta(it); 3408 } 3409 return it[META].w; 3410}; 3411var onFreeze = function onFreeze(it) { 3412 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 3413 return it; 3414}; 3415var meta = module.exports = { 3416 KEY: META, 3417 NEED: false, 3418 fastKey: fastKey, 3419 getWeak: getWeak, 3420 onFreeze: onFreeze 3421}; 3422 3423/***/ }), 3424/* 101 */ 3425/***/ (function(module, exports, __w_pdfjs_require__) { 3426 3427"use strict"; 3428 3429 3430var redefineAll = __w_pdfjs_require__(89); 3431var getWeak = __w_pdfjs_require__(100).getWeak; 3432var anObject = __w_pdfjs_require__(12); 3433var isObject = __w_pdfjs_require__(13); 3434var anInstance = __w_pdfjs_require__(76); 3435var forOf = __w_pdfjs_require__(77); 3436var createArrayMethod = __w_pdfjs_require__(96); 3437var $has = __w_pdfjs_require__(21); 3438var validate = __w_pdfjs_require__(102); 3439var arrayFind = createArrayMethod(5); 3440var arrayFindIndex = createArrayMethod(6); 3441var id = 0; 3442var uncaughtFrozenStore = function uncaughtFrozenStore(that) { 3443 return that._l || (that._l = new UncaughtFrozenStore()); 3444}; 3445var UncaughtFrozenStore = function UncaughtFrozenStore() { 3446 this.a = []; 3447}; 3448var findUncaughtFrozen = function findUncaughtFrozen(store, key) { 3449 return arrayFind(store.a, function (it) { 3450 return it[0] === key; 3451 }); 3452}; 3453UncaughtFrozenStore.prototype = { 3454 get: function get(key) { 3455 var entry = findUncaughtFrozen(this, key); 3456 if (entry) return entry[1]; 3457 }, 3458 has: function has(key) { 3459 return !!findUncaughtFrozen(this, key); 3460 }, 3461 set: function set(key, value) { 3462 var entry = findUncaughtFrozen(this, key); 3463 if (entry) entry[1] = value;else this.a.push([key, value]); 3464 }, 3465 'delete': function _delete(key) { 3466 var index = arrayFindIndex(this.a, function (it) { 3467 return it[0] === key; 3468 }); 3469 if (~index) this.a.splice(index, 1); 3470 return !!~index; 3471 } 3472}; 3473module.exports = { 3474 getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { 3475 var C = wrapper(function (that, iterable) { 3476 anInstance(that, C, NAME, '_i'); 3477 that._t = NAME; 3478 that._i = id++; 3479 that._l = undefined; 3480 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 3481 }); 3482 redefineAll(C.prototype, { 3483 'delete': function _delete(key) { 3484 if (!isObject(key)) return false; 3485 var data = getWeak(key); 3486 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); 3487 return data && $has(data, this._i) && delete data[this._i]; 3488 }, 3489 has: function has(key) { 3490 if (!isObject(key)) return false; 3491 var data = getWeak(key); 3492 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); 3493 return data && $has(data, this._i); 3494 } 3495 }); 3496 return C; 3497 }, 3498 def: function def(that, key, value) { 3499 var data = getWeak(anObject(key), true); 3500 if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; 3501 return that; 3502 }, 3503 ufstore: uncaughtFrozenStore 3504}; 3505 3506/***/ }), 3507/* 102 */ 3508/***/ (function(module, exports, __w_pdfjs_require__) { 3509 3510"use strict"; 3511 3512 3513var isObject = __w_pdfjs_require__(13); 3514module.exports = function (it, TYPE) { 3515 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); 3516 return it; 3517}; 3518 3519/***/ }), 3520/* 103 */ 3521/***/ (function(module, exports, __w_pdfjs_require__) { 3522 3523"use strict"; 3524 3525 3526var global = __w_pdfjs_require__(8); 3527var $export = __w_pdfjs_require__(7); 3528var redefine = __w_pdfjs_require__(20); 3529var redefineAll = __w_pdfjs_require__(89); 3530var meta = __w_pdfjs_require__(100); 3531var forOf = __w_pdfjs_require__(77); 3532var anInstance = __w_pdfjs_require__(76); 3533var isObject = __w_pdfjs_require__(13); 3534var fails = __w_pdfjs_require__(16); 3535var $iterDetect = __w_pdfjs_require__(91); 3536var setToStringTag = __w_pdfjs_require__(70); 3537var inheritIfRequired = __w_pdfjs_require__(104); 3538module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { 3539 var Base = global[NAME]; 3540 var C = Base; 3541 var ADDER = IS_MAP ? 'set' : 'add'; 3542 var proto = C && C.prototype; 3543 var O = {}; 3544 var fixMethod = function fixMethod(KEY) { 3545 var fn = proto[KEY]; 3546 redefine(proto, KEY, KEY == 'delete' ? function (a) { 3547 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 3548 } : KEY == 'has' ? function has(a) { 3549 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 3550 } : KEY == 'get' ? function get(a) {
vendor: 4,490 bytes, lines 3551-3723
3551 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); 3552 } : KEY == 'add' ? function add(a) { 3553 fn.call(this, a === 0 ? 0 : a); 3554 return this; 3555 } : function set(a, b) { 3556 fn.call(this, a === 0 ? 0 : a, b); 3557 return this; 3558 }); 3559 }; 3560 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { 3561 new C().entries().next(); 3562 }))) { 3563 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); 3564 redefineAll(C.prototype, methods); 3565 meta.NEED = true; 3566 } else { 3567 var instance = new C(); 3568 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; 3569 var THROWS_ON_PRIMITIVES = fails(function () { 3570 instance.has(1); 3571 }); 3572 var ACCEPT_ITERABLES = $iterDetect(function (iter) { 3573 new C(iter); 3574 }); 3575 var BUGGY_ZERO = !IS_WEAK && fails(function () { 3576 var $instance = new C(); 3577 var index = 5; 3578 while (index--) { 3579 $instance[ADDER](index, index); 3580 }return !$instance.has(-0); 3581 }); 3582 if (!ACCEPT_ITERABLES) { 3583 C = wrapper(function (target, iterable) { 3584 anInstance(target, C, NAME); 3585 var that = inheritIfRequired(new Base(), target, C); 3586 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 3587 return that; 3588 }); 3589 C.prototype = proto; 3590 proto.constructor = C; 3591 } 3592 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { 3593 fixMethod('delete'); 3594 fixMethod('has'); 3595 IS_MAP && fixMethod('get'); 3596 } 3597 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); 3598 if (IS_WEAK && proto.clear) delete proto.clear; 3599 } 3600 setToStringTag(C, NAME); 3601 O[NAME] = C; 3602 $export($export.G + $export.W + $export.F * (C != Base), O); 3603 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); 3604 return C; 3605}; 3606 3607/***/ }), 3608/* 104 */ 3609/***/ (function(module, exports, __w_pdfjs_require__) { 3610 3611"use strict"; 3612 3613 3614var isObject = __w_pdfjs_require__(13); 3615var setPrototypeOf = __w_pdfjs_require__(105).set; 3616module.exports = function (that, target, C) { 3617 var S = target.constructor; 3618 var P; 3619 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { 3620 setPrototypeOf(that, P); 3621 } 3622 return that; 3623}; 3624 3625/***/ }), 3626/* 105 */ 3627/***/ (function(module, exports, __w_pdfjs_require__) { 3628 3629"use strict"; 3630 3631 3632var isObject = __w_pdfjs_require__(13); 3633var anObject = __w_pdfjs_require__(12); 3634var check = function check(O, proto) { 3635 anObject(O); 3636 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 3637}; 3638module.exports = { 3639 set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { 3640 try { 3641 set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(106).f(Object.prototype, '__proto__').set, 2); 3642 set(test, []); 3643 buggy = !(test instanceof Array); 3644 } catch (e) { 3645 buggy = true; 3646 } 3647 return function setPrototypeOf(O, proto) { 3648 check(O, proto); 3649 if (buggy) O.__proto__ = proto;else set(O, proto); 3650 return O; 3651 }; 3652 }({}, false) : undefined), 3653 check: check 3654}; 3655 3656/***/ }), 3657/* 106 */ 3658/***/ (function(module, exports, __w_pdfjs_require__) { 3659 3660"use strict"; 3661 3662 3663var pIE = __w_pdfjs_require__(50); 3664var createDesc = __w_pdfjs_require__(19); 3665var toIObject = __w_pdfjs_require__(36); 3666var toPrimitive = __w_pdfjs_require__(18); 3667var has = __w_pdfjs_require__(21); 3668var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 3669var gOPD = Object.getOwnPropertyDescriptor; 3670exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { 3671 O = toIObject(O); 3672 P = toPrimitive(P, true); 3673 if (IE8_DOM_DEFINE) try { 3674 return gOPD(O, P); 3675 } catch (e) {} 3676 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 3677}; 3678 3679/***/ }), 3680/* 107 */ 3681/***/ (function(module, exports, __w_pdfjs_require__) { 3682 3683"use strict"; 3684 3685 3686__w_pdfjs_require__(108)('WeakMap'); 3687 3688/***/ }), 3689/* 108 */ 3690/***/ (function(module, exports, __w_pdfjs_require__) { 3691 3692"use strict"; 3693 3694 3695var $export = __w_pdfjs_require__(7); 3696module.exports = function (COLLECTION) { 3697 $export($export.S, COLLECTION, { 3698 of: function of() { 3699 var length = arguments.length; 3700 var A = new Array(length); 3701 while (length--) { 3702 A[length] = arguments[length]; 3703 }return new this(A); 3704 } 3705 }); 3706}; 3707 3708/***/ }), 3709/* 109 */ 3710/***/ (function(module, exports, __w_pdfjs_require__) { 3711 3712"use strict"; 3713 3714 3715__w_pdfjs_require__(110)('WeakMap'); 3716 3717/***/ }), 3718/* 110 */ 3719/***/ (function(module, exports, __w_pdfjs_require__) { 3720 3721"use strict"; 3722 3723
3724var $export = __w_pdfjs_require__(7); 3725var aFunction = __w_pdfjs_require__(24); 3726var ctx = __w_pdfjs_require__(23); 3727var forOf = __w_pdfjs_require__(77); 3728module.exports = function (COLLECTION) { 3729 $export($export.S, COLLECTION, { 3730 from: function from(source) { 3731 var mapFn = arguments[1]; 3732 var mapping, A, n, cb; 3733 aFunction(this); 3734 mapping = mapFn !== undefined; 3735 if (mapping) aFunction(mapFn); 3736 if (source == undefined) return new this(); 3737 A = []; 3738 if (mapping) { 3739 n = 0; 3740 cb = ctx(mapFn, arguments[2], 2); 3741 forOf(source, false, function (nextItem) { 3742 A.push(cb(nextItem, n++)); 3743 }); 3744 } else { 3745 forOf(source, false, A.push, A); 3746 } 3747 return new this(A); 3748 } 3749 }); 3750}; 3751 3752/***/ }), 3753/* 111 */ 3754/***/ (function(module, exports, __w_pdfjs_require__) { 3755 3756"use strict"; 3757 3758 3759__w_pdfjs_require__(112); 3760module.exports = __w_pdfjs_require__(9).String.codePointAt; 3761 3762/***/ }), 3763/* 112 */ 3764/***/ (function(module, exports, __w_pdfjs_require__) { 3765 3766"use strict"; 3767 3768 3769var $export = __w_pdfjs_require__(7); 3770var $at = __w_pdfjs_require__(63)(false); 3771$export($export.P, 'String', { 3772 codePointAt: function codePointAt(pos) { 3773 return $at(this, pos); 3774 } 3775}); 3776 3777/***/ }), 3778/* 113 */ 3779/***/ (function(module, exports, __w_pdfjs_require__) { 3780 3781"use strict"; 3782 3783 3784__w_pdfjs_require__(114); 3785module.exports = __w_pdfjs_require__(9).String.fromCodePoint; 3786 3787/***/ }), 3788/* 114 */ 3789/***/ (function(module, exports, __w_pdfjs_require__) { 3790 3791"use strict"; 3792 3793 3794var $export = __w_pdfjs_require__(7); 3795var toAbsoluteIndex = __w_pdfjs_require__(40); 3796var fromCharCode = String.fromCharCode; 3797var $fromCodePoint = String.fromCodePoint; 3798$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { 3799 fromCodePoint: function fromCodePoint(x) { 3800 var res = []; 3801 var aLen = arguments.length; 3802 var i = 0; 3803 var code; 3804 while (aLen > i) { 3805 code = +arguments[i++]; 3806 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); 3807 res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); 3808 } 3809 return res.join(''); 3810 } 3811}); 3812 3813/***/ }), 3814/* 115 */ 3815/***/ (function(module, exports, __w_pdfjs_require__) { 3816 3817"use strict"; 3818 3819 3820__w_pdfjs_require__(116); 3821__w_pdfjs_require__(60); 3822module.exports = __w_pdfjs_require__(9).Symbol; 3823 3824/***/ }), 3825/* 116 */ 3826/***/ (function(module, exports, __w_pdfjs_require__) { 3827 3828"use strict"; 3829 3830 3831var _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; }; 3832 3833var global = __w_pdfjs_require__(8); 3834var has = __w_pdfjs_require__(21); 3835var DESCRIPTORS = __w_pdfjs_require__(15); 3836var $export = __w_pdfjs_require__(7); 3837var redefine = __w_pdfjs_require__(20); 3838var META = __w_pdfjs_require__(100).KEY; 3839var $fails = __w_pdfjs_require__(16); 3840var shared = __w_pdfjs_require__(29); 3841var setToStringTag = __w_pdfjs_require__(70); 3842var uid = __w_pdfjs_require__(22); 3843var wks = __w_pdfjs_require__(28); 3844var wksExt = __w_pdfjs_require__(117); 3845var wksDefine = __w_pdfjs_require__(118); 3846var enumKeys = __w_pdfjs_require__(119); 3847var isArray = __w_pdfjs_require__(99); 3848var anObject = __w_pdfjs_require__(12); 3849var isObject = __w_pdfjs_require__(13); 3850var toIObject = __w_pdfjs_require__(36); 3851var toPrimitive = __w_pdfjs_require__(18); 3852var createDesc = __w_pdfjs_require__(19); 3853var _create = __w_pdfjs_require__(67); 3854var gOPNExt = __w_pdfjs_require__(120); 3855var $GOPD = __w_pdfjs_require__(106); 3856var $DP = __w_pdfjs_require__(11); 3857var $keys = __w_pdfjs_require__(45); 3858var gOPD = $GOPD.f; 3859var dP = $DP.f; 3860var gOPN = gOPNExt.f; 3861var $Symbol = global.Symbol; 3862var $JSON = global.JSON; 3863var _stringify = $JSON && $JSON.stringify; 3864var PROTOTYPE = 'prototype'; 3865var HIDDEN = wks('_hidden'); 3866var TO_PRIMITIVE = wks('toPrimitive'); 3867var isEnum = {}.propertyIsEnumerable; 3868var SymbolRegistry = shared('symbol-registry'); 3869var AllSymbols = shared('symbols');
vendor: 9,271 bytes, lines 3870-4150
3870var OPSymbols = shared('op-symbols'); 3871var ObjectProto = Object[PROTOTYPE]; 3872var USE_NATIVE = typeof $Symbol == 'function'; 3873var QObject = global.QObject; 3874var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 3875var setSymbolDesc = DESCRIPTORS && $fails(function () { 3876 return _create(dP({}, 'a', { 3877 get: function get() { 3878 return dP(this, 'a', { value: 7 }).a; 3879 } 3880 })).a != 7; 3881}) ? function (it, key, D) { 3882 var protoDesc = gOPD(ObjectProto, key); 3883 if (protoDesc) delete ObjectProto[key]; 3884 dP(it, key, D); 3885 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 3886} : dP; 3887var wrap = function wrap(tag) { 3888 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 3889 sym._k = tag; 3890 return sym; 3891}; 3892var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { 3893 return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol'; 3894} : function (it) { 3895 return it instanceof $Symbol; 3896}; 3897var $defineProperty = function defineProperty(it, key, D) { 3898 if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 3899 anObject(it); 3900 key = toPrimitive(key, true); 3901 anObject(D); 3902 if (has(AllSymbols, key)) { 3903 if (!D.enumerable) { 3904 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 3905 it[HIDDEN][key] = true; 3906 } else { 3907 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 3908 D = _create(D, { enumerable: createDesc(0, false) }); 3909 } 3910 return setSymbolDesc(it, key, D); 3911 } 3912 return dP(it, key, D); 3913}; 3914var $defineProperties = function defineProperties(it, P) { 3915 anObject(it); 3916 var keys = enumKeys(P = toIObject(P)); 3917 var i = 0; 3918 var l = keys.length; 3919 var key; 3920 while (l > i) { 3921 $defineProperty(it, key = keys[i++], P[key]); 3922 }return it; 3923}; 3924var $create = function create(it, P) { 3925 return P === undefined ? _create(it) : $defineProperties(_create(it), P); 3926}; 3927var $propertyIsEnumerable = function propertyIsEnumerable(key) { 3928 var E = isEnum.call(this, key = toPrimitive(key, true)); 3929 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 3930 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 3931}; 3932var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 3933 it = toIObject(it); 3934 key = toPrimitive(key, true); 3935 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 3936 var D = gOPD(it, key); 3937 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 3938 return D; 3939}; 3940var $getOwnPropertyNames = function getOwnPropertyNames(it) { 3941 var names = gOPN(toIObject(it)); 3942 var result = []; 3943 var i = 0; 3944 var key; 3945 while (names.length > i) { 3946 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 3947 } 3948 return result; 3949}; 3950var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 3951 var IS_OP = it === ObjectProto; 3952 var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 3953 var result = []; 3954 var i = 0; 3955 var key; 3956 while (names.length > i) { 3957 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 3958 } 3959 return result; 3960}; 3961if (!USE_NATIVE) { 3962 $Symbol = function _Symbol() { 3963 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 3964 var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 3965 var $set = function $set(value) { 3966 if (this === ObjectProto) $set.call(OPSymbols, value); 3967 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 3968 setSymbolDesc(this, tag, createDesc(1, value)); 3969 }; 3970 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { 3971 configurable: true, 3972 set: $set 3973 }); 3974 return wrap(tag); 3975 }; 3976 redefine($Symbol[PROTOTYPE], 'toString', function toString() { 3977 return this._k; 3978 }); 3979 $GOPD.f = $getOwnPropertyDescriptor; 3980 $DP.f = $defineProperty; 3981 __w_pdfjs_require__(121).f = gOPNExt.f = $getOwnPropertyNames; 3982 __w_pdfjs_require__(50).f = $propertyIsEnumerable; 3983 __w_pdfjs_require__(49).f = $getOwnPropertySymbols; 3984 if (DESCRIPTORS && !__w_pdfjs_require__(30)) { 3985 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 3986 } 3987 wksExt.f = function (name) { 3988 return wrap(wks(name)); 3989 }; 3990} 3991$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); 3992for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { 3993 wks(es6Symbols[j++]); 3994}for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { 3995 wksDefine(wellKnownSymbols[k++]); 3996}$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 3997 'for': function _for(key) { 3998 return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); 3999 }, 4000 keyFor: function keyFor(sym) { 4001 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 4002 for (var key in SymbolRegistry) { 4003 if (SymbolRegistry[key] === sym) return key; 4004 } 4005 }, 4006 useSetter: function useSetter() { 4007 setter = true; 4008 }, 4009 useSimple: function useSimple() { 4010 setter = false; 4011 } 4012}); 4013$export($export.S + $export.F * !USE_NATIVE, 'Object', { 4014 create: $create, 4015 defineProperty: $defineProperty, 4016 defineProperties: $defineProperties, 4017 getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 4018 getOwnPropertyNames: $getOwnPropertyNames, 4019 getOwnPropertySymbols: $getOwnPropertySymbols 4020}); 4021$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 4022 var S = $Symbol(); 4023 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; 4024})), 'JSON', { 4025 stringify: function stringify(it) { 4026 var args = [it]; 4027 var i = 1; 4028 var replacer, $replacer; 4029 while (arguments.length > i) { 4030 args.push(arguments[i++]); 4031 }$replacer = replacer = args[1]; 4032 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; 4033 if (!isArray(replacer)) replacer = function replacer(key, value) { 4034 if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 4035 if (!isSymbol(value)) return value; 4036 }; 4037 args[1] = replacer; 4038 return _stringify.apply($JSON, args); 4039 } 4040}); 4041$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 4042setToStringTag($Symbol, 'Symbol'); 4043setToStringTag(Math, 'Math', true); 4044setToStringTag(global.JSON, 'JSON', true); 4045 4046/***/ }), 4047/* 117 */ 4048/***/ (function(module, exports, __w_pdfjs_require__) { 4049 4050"use strict"; 4051 4052 4053exports.f = __w_pdfjs_require__(28); 4054 4055/***/ }), 4056/* 118 */ 4057/***/ (function(module, exports, __w_pdfjs_require__) { 4058 4059"use strict"; 4060 4061 4062var global = __w_pdfjs_require__(8); 4063var core = __w_pdfjs_require__(9); 4064var LIBRARY = __w_pdfjs_require__(30); 4065var wksExt = __w_pdfjs_require__(117); 4066var defineProperty = __w_pdfjs_require__(11).f; 4067module.exports = function (name) { 4068 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 4069 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); 4070}; 4071 4072/***/ }), 4073/* 119 */ 4074/***/ (function(module, exports, __w_pdfjs_require__) { 4075 4076"use strict"; 4077 4078 4079var getKeys = __w_pdfjs_require__(45); 4080var gOPS = __w_pdfjs_require__(49); 4081var pIE = __w_pdfjs_require__(50); 4082module.exports = function (it) { 4083 var result = getKeys(it); 4084 var getSymbols = gOPS.f; 4085 if (getSymbols) { 4086 var symbols = getSymbols(it); 4087 var isEnum = pIE.f; 4088 var i = 0; 4089 var key; 4090 while (symbols.length > i) { 4091 if (isEnum.call(it, key = symbols[i++])) result.push(key); 4092 } 4093 } 4094 return result; 4095}; 4096 4097/***/ }), 4098/* 120 */ 4099/***/ (function(module, exports, __w_pdfjs_require__) { 4100 4101"use strict"; 4102 4103 4104var _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; }; 4105 4106var toIObject = __w_pdfjs_require__(36); 4107var gOPN = __w_pdfjs_require__(121).f; 4108var toString = {}.toString; 4109var windowNames = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; 4110var getWindowNames = function getWindowNames(it) { 4111 try { 4112 return gOPN(it); 4113 } catch (e) { 4114 return windowNames.slice(); 4115 } 4116}; 4117module.exports.f = function getOwnPropertyNames(it) { 4118 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 4119}; 4120 4121/***/ }), 4122/* 121 */ 4123/***/ (function(module, exports, __w_pdfjs_require__) { 4124 4125"use strict"; 4126 4127 4128var $keys = __w_pdfjs_require__(46); 4129var hiddenKeys = __w_pdfjs_require__(48).concat('length', 'prototype'); 4130exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 4131 return $keys(O, hiddenKeys); 4132}; 4133 4134/***/ }), 4135/* 122 */ 4136/***/ (function(module, exports, __w_pdfjs_require__) { 4137 4138"use strict"; 4139 4140 4141__w_pdfjs_require__(123); 4142module.exports = __w_pdfjs_require__(9).Object.values; 4143 4144/***/ }), 4145/* 123 */ 4146/***/ (function(module, exports, __w_pdfjs_require__) { 4147 4148"use strict"; 4149 4150
4151var $export = __w_pdfjs_require__(7); 4152var $values = __w_pdfjs_require__(124)(false); 4153$export($export.S, 'Object', { 4154 values: function values(it) { 4155 return $values(it); 4156 } 4157}); 4158 4159/***/ }), 4160/* 124 */ 4161/***/ (function(module, exports, __w_pdfjs_require__) { 4162 4163"use strict"; 4164 4165 4166var getKeys = __w_pdfjs_require__(45); 4167var toIObject = __w_pdfjs_require__(36); 4168var isEnum = __w_pdfjs_require__(50).f; 4169module.exports = function (isEntries) { 4170 return function (it) { 4171 var O = toIObject(it); 4172 var keys = getKeys(O); 4173 var length = keys.length; 4174 var i = 0; 4175 var result = []; 4176 var key; 4177 while (length > i) { 4178 if (isEnum.call(O, key = keys[i++])) { 4179 result.push(isEntries ? [key, O[key]] : O[key]); 4180 } 4181 }return result; 4182 }; 4183}; 4184 4185/***/ }), 4186/* 125 */ 4187/***/ (function(module, exports, __w_pdfjs_require__) { 4188 4189"use strict"; 4190 4191 4192var isReadableStreamSupported = false; 4193if (typeof ReadableStream !== 'undefined') { 4194 try { 4195 new ReadableStream({ 4196 start: function start(controller) { 4197 controller.close(); 4198 } 4199 }); 4200 isReadableStreamSupported = true; 4201 } catch (e) {} 4202} 4203if (isReadableStreamSupported) { 4204 exports.ReadableStream = ReadableStream; 4205} else { 4206 exports.ReadableStream = __w_pdfjs_require__(126).ReadableStream; 4207} 4208 4209/***/ }), 4210/* 126 */ 4211/***/ (function(module, exports, __w_pdfjs_require__) { 4212 4213"use strict"; 4214 4215 4216var _typeof2 = 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; }; 4217 4218(function (e, a) { 4219 for (var i in a) { 4220 e[i] = a[i]; 4221 } 4222})(exports, function (modules) { 4223 var installedModules = {}; 4224 function __w_pdfjs_require__(moduleId) { 4225 if (installedModules[moduleId]) return installedModules[moduleId].exports; 4226 var module = installedModules[moduleId] = { 4227 i: moduleId, 4228 l: false, 4229 exports: {} 4230 }; 4231 modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 4232 module.l = true; 4233 return module.exports; 4234 } 4235 __w_pdfjs_require__.m = modules; 4236 __w_pdfjs_require__.c = installedModules; 4237 __w_pdfjs_require__.i = function (value) { 4238 return value; 4239 }; 4240 __w_pdfjs_require__.d = function (exports, name, getter) { 4241 if (!__w_pdfjs_require__.o(exports, name)) { 4242 Object.defineProperty(exports, name, { 4243 configurable: false, 4244 enumerable: true, 4245 get: getter 4246 }); 4247 } 4248 }; 4249 __w_pdfjs_require__.n = function (module) { 4250 var getter = module && module.__esModule ? function getDefault() { 4251 return module['default']; 4252 } : function getModuleExports() { 4253 return module; 4254 }; 4255 __w_pdfjs_require__.d(getter, 'a', getter); 4256 return getter; 4257 }; 4258 __w_pdfjs_require__.o = function (object, property) { 4259 return Object.prototype.hasOwnProperty.call(object, property); 4260 }; 4261 __w_pdfjs_require__.p = ""; 4262 return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); 4263}([function (module, exports, __w_pdfjs_require__) { 4264 "use strict"; 4265 4266 var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { 4267 return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); 4268 } : function (obj) { 4269 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); 4270 }; 4271 var _require = __w_pdfjs_require__(1), 4272 assert = _require.assert; 4273 function IsPropertyKey(argument) { 4274 return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; 4275 } 4276 exports.typeIsObject = function (x) { 4277 return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; 4278 }; 4279 exports.createDataProperty = function (o, p, v) { 4280 assert(exports.typeIsObject(o)); 4281 Object.defineProperty(o, p, { 4282 value: v, 4283 writable: true, 4284 enumerable: true, 4285 configurable: true 4286 }); 4287 }; 4288 exports.createArrayFromList = function (elements) { 4289 return elements.slice(); 4290 };
4291 exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { 4292 new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); 4293 }; 4294 exports.CreateIterResultObject = function (value, done) { 4295 assert(typeof done === 'boolean'); 4296 var obj = {}; 4297 Object.defineProperty(obj, 'value', { 4298 value: value, 4299 enumerable: true, 4300 writable: true, 4301 configurable: true 4302 }); 4303 Object.defineProperty(obj, 'done', { 4304 value: done, 4305 enumerable: true, 4306 writable: true, 4307 configurable: true 4308 }); 4309 return obj; 4310 }; 4311 exports.IsFiniteNonNegativeNumber = function (v) { 4312 if (Number.isNaN(v)) { 4313 return false; 4314 } 4315 if (v === Infinity) { 4316 return false; 4317 } 4318 if (v < 0) { 4319 return false; 4320 } 4321 return true; 4322 }; 4323 function Call(F, V, args) { 4324 if (typeof F !== 'function') { 4325 throw new TypeError('Argument is not a function'); 4326 } 4327 return Function.prototype.apply.call(F, V, args); 4328 } 4329 exports.InvokeOrNoop = function (O, P, args) { 4330 assert(O !== undefined); 4331 assert(IsPropertyKey(P)); 4332 assert(Array.isArray(args)); 4333 var method = O[P]; 4334 if (method === undefined) { 4335 return undefined; 4336 } 4337 return Call(method, O, args); 4338 }; 4339 exports.PromiseInvokeOrNoop = function (O, P, args) { 4340 assert(O !== undefined); 4341 assert(IsPropertyKey(P)); 4342 assert(Array.isArray(args)); 4343 try { 4344 return Promise.resolve(exports.InvokeOrNoop(O, P, args)); 4345 } catch (returnValueE) { 4346 return Promise.reject(returnValueE); 4347 } 4348 }; 4349 exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { 4350 assert(O !== undefined); 4351 assert(IsPropertyKey(P)); 4352 assert(Array.isArray(args)); 4353 assert(Array.isArray(argsF)); 4354 var method = void 0; 4355 try { 4356 method = O[P]; 4357 } catch (methodE) { 4358 return Promise.reject(methodE); 4359 } 4360 if (method === undefined) { 4361 return F.apply(null, argsF); 4362 } 4363 try { 4364 return Promise.resolve(Call(method, O, args)); 4365 } catch (e) { 4366 return Promise.reject(e); 4367 } 4368 }; 4369 exports.TransferArrayBuffer = function (O) { 4370 return O.slice(); 4371 }; 4372 exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { 4373 highWaterMark = Number(highWaterMark); 4374 if (Number.isNaN(highWaterMark) || highWaterMark < 0) { 4375 throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); 4376 } 4377 return highWaterMark; 4378 }; 4379 exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { 4380 if (size !== undefined && typeof size !== 'function') { 4381 throw new TypeError('size property of a queuing strategy must be a function'); 4382 } 4383 highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); 4384 return { 4385 size: size, 4386 highWaterMark: highWaterMark 4387 }; 4388 }; 4389}, function (module, exports, __w_pdfjs_require__) { 4390 "use strict"; 4391 4392 function rethrowAssertionErrorRejection(e) { 4393 if (e && e.constructor === AssertionError) { 4394 setTimeout(function () { 4395 throw e; 4396 }, 0); 4397 } 4398 } 4399 function AssertionError(message) { 4400 this.name = 'AssertionError'; 4401 this.message = message || ''; 4402 this.stack = new Error().stack; 4403 } 4404 AssertionError.prototype = Object.create(Error.prototype); 4405 AssertionError.prototype.constructor = AssertionError; 4406 function assert(value, message) { 4407 if (!value) { 4408 throw new AssertionError(message); 4409 } 4410 } 4411 module.exports = { 4412 rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, 4413 AssertionError: AssertionError, 4414 assert: assert 4415 }; 4416}, function (module, exports, __w_pdfjs_require__) { 4417 "use strict"; 4418 4419 var _createClass = function () { 4420 function defineProperties(target, props) { 4421 for (var i = 0; i < props.length; i++) { 4422 var descriptor = props[i]; 4423 descriptor.enumerable = descriptor.enumerable || false; 4424 descriptor.configurable = true; 4425 if ("value" in descriptor) descriptor.writable = true; 4426 Object.defineProperty(target, descriptor.key, descriptor); 4427 } 4428 } 4429 return function (Constructor, protoProps, staticProps) { 4430 if (protoProps) defineProperties(Constructor.prototype, protoProps); 4431 if (staticProps) defineProperties(Constructor, staticProps); 4432 return Constructor; 4433 }; 4434 }(); 4435 function _classCallCheck(instance, Constructor) { 4436 if (!(instance instanceof Constructor)) { 4437 throw new TypeError("Cannot call a class as a function"); 4438 } 4439 } 4440 var _require = __w_pdfjs_require__(0), 4441 InvokeOrNoop = _require.InvokeOrNoop, 4442 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 4443 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 4444 typeIsObject = _require.typeIsObject; 4445 var _require2 = __w_pdfjs_require__(1), 4446 assert = _require2.assert, 4447 rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; 4448 var _require3 = __w_pdfjs_require__(3), 4449 DequeueValue = _require3.DequeueValue, 4450 EnqueueValueWithSize = _require3.EnqueueValueWithSize, 4451 PeekQueueValue = _require3.PeekQueueValue, 4452 ResetQueue = _require3.ResetQueue; 4453 var WritableStream = function () { 4454 function WritableStream() { 4455 var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 4456 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 4457 size = _ref.size, 4458 _ref$highWaterMark = _ref.highWaterMark, 4459 highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; 4460 _classCallCheck(this, WritableStream); 4461 this._state = 'writable'; 4462 this._storedError = undefined; 4463 this._writer = undefined; 4464 this._writableStreamController = undefined; 4465 this._writeRequests = []; 4466 this._inFlightWriteRequest = undefined; 4467 this._closeRequest = undefined; 4468 this._inFlightCloseRequest = undefined; 4469 this._pendingAbortRequest = undefined; 4470 this._backpressure = false;
4471 var type = underlyingSink.type; 4472 if (type !== undefined) { 4473 throw new RangeError('Invalid type is specified'); 4474 } 4475 this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); 4476 this._writableStreamController.__startSteps(); 4477 } 4478 _createClass(WritableStream, [{ 4479 key: 'abort', 4480 value: function abort(reason) { 4481 if (IsWritableStream(this) === false) { 4482 return Promise.reject(streamBrandCheckException('abort')); 4483 } 4484 if (IsWritableStreamLocked(this) === true) { 4485 return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); 4486 } 4487 return WritableStreamAbort(this, reason); 4488 } 4489 }, { 4490 key: 'getWriter', 4491 value: function getWriter() { 4492 if (IsWritableStream(this) === false) { 4493 throw streamBrandCheckException('getWriter'); 4494 } 4495 return AcquireWritableStreamDefaultWriter(this); 4496 } 4497 }, { 4498 key: 'locked', 4499 get: function get() { 4500 if (IsWritableStream(this) === false) { 4501 throw streamBrandCheckException('locked'); 4502 } 4503 return IsWritableStreamLocked(this); 4504 } 4505 }]); 4506 return WritableStream; 4507 }(); 4508 module.exports = { 4509 AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, 4510 IsWritableStream: IsWritableStream, 4511 IsWritableStreamLocked: IsWritableStreamLocked, 4512 WritableStream: WritableStream, 4513 WritableStreamAbort: WritableStreamAbort, 4514 WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, 4515 WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, 4516 WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, 4517 WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, 4518 WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight 4519 }; 4520 function AcquireWritableStreamDefaultWriter(stream) { 4521 return new WritableStreamDefaultWriter(stream); 4522 } 4523 function IsWritableStream(x) { 4524 if (!typeIsObject(x)) { 4525 return false; 4526 } 4527 if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { 4528 return false; 4529 } 4530 return true; 4531 } 4532 function IsWritableStreamLocked(stream) { 4533 assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); 4534 if (stream._writer === undefined) { 4535 return false; 4536 } 4537 return true; 4538 } 4539 function WritableStreamAbort(stream, reason) { 4540 var state = stream._state; 4541 if (state === 'closed') { 4542 return Promise.resolve(undefined); 4543 } 4544 if (state === 'errored') { 4545 return Promise.reject(stream._storedError); 4546 } 4547 var error = new TypeError('Requested to abort'); 4548 if (stream._pendingAbortRequest !== undefined) { 4549 return Promise.reject(error); 4550 } 4551 assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); 4552 var wasAlreadyErroring = false; 4553 if (state === 'erroring') { 4554 wasAlreadyErroring = true; 4555 reason = undefined; 4556 } 4557 var promise = new Promise(function (resolve, reject) { 4558 stream._pendingAbortRequest = { 4559 _resolve: resolve, 4560 _reject: reject, 4561 _reason: reason, 4562 _wasAlreadyErroring: wasAlreadyErroring 4563 }; 4564 }); 4565 if (wasAlreadyErroring === false) { 4566 WritableStreamStartErroring(stream, error); 4567 } 4568 return promise; 4569 } 4570 function WritableStreamAddWriteRequest(stream) { 4571 assert(IsWritableStreamLocked(stream) === true); 4572 assert(stream._state === 'writable'); 4573 var promise = new Promise(function (resolve, reject) { 4574 var writeRequest = { 4575 _resolve: resolve, 4576 _reject: reject 4577 }; 4578 stream._writeRequests.push(writeRequest); 4579 }); 4580 return promise; 4581 } 4582 function WritableStreamDealWithRejection(stream, error) { 4583 var state = stream._state; 4584 if (state === 'writable') { 4585 WritableStreamStartErroring(stream, error); 4586 return; 4587 } 4588 assert(state === 'erroring'); 4589 WritableStreamFinishErroring(stream); 4590 } 4591 function WritableStreamStartErroring(stream, reason) { 4592 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 4593 assert(stream._state === 'writable', 'state must be writable'); 4594 var controller = stream._writableStreamController; 4595 assert(controller !== undefined, 'controller must not be undefined'); 4596 stream._state = 'erroring';
4597 stream._storedError = reason; 4598 var writer = stream._writer; 4599 if (writer !== undefined) { 4600 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); 4601 } 4602 if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { 4603 WritableStreamFinishErroring(stream); 4604 } 4605 } 4606 function WritableStreamFinishErroring(stream) { 4607 assert(stream._state === 'erroring', 'stream._state === erroring'); 4608 assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); 4609 stream._state = 'errored'; 4610 stream._writableStreamController.__errorSteps(); 4611 var storedError = stream._storedError; 4612 for (var i = 0; i < stream._writeRequests.length; i++) { 4613 var writeRequest = stream._writeRequests[i]; 4614 writeRequest._reject(storedError); 4615 } 4616 stream._writeRequests = []; 4617 if (stream._pendingAbortRequest === undefined) { 4618 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4619 return; 4620 } 4621 var abortRequest = stream._pendingAbortRequest; 4622 stream._pendingAbortRequest = undefined; 4623 if (abortRequest._wasAlreadyErroring === true) { 4624 abortRequest._reject(storedError); 4625 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4626 return; 4627 } 4628 var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); 4629 promise.then(function () { 4630 abortRequest._resolve(); 4631 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4632 }, function (reason) { 4633 abortRequest._reject(reason); 4634 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4635 }); 4636 } 4637 function WritableStreamFinishInFlightWrite(stream) { 4638 assert(stream._inFlightWriteRequest !== undefined); 4639 stream._inFlightWriteRequest._resolve(undefined); 4640 stream._inFlightWriteRequest = undefined; 4641 } 4642 function WritableStreamFinishInFlightWriteWithError(stream, error) { 4643 assert(stream._inFlightWriteRequest !== undefined); 4644 stream._inFlightWriteRequest._reject(error); 4645 stream._inFlightWriteRequest = undefined; 4646 assert(stream._state === 'writable' || stream._state === 'erroring'); 4647 WritableStreamDealWithRejection(stream, error); 4648 } 4649 function WritableStreamFinishInFlightClose(stream) { 4650 assert(stream._inFlightCloseRequest !== undefined); 4651 stream._inFlightCloseRequest._resolve(undefined); 4652 stream._inFlightCloseRequest = undefined; 4653 var state = stream._state; 4654 assert(state === 'writable' || state === 'erroring'); 4655 if (state === 'erroring') { 4656 stream._storedError = undefined; 4657 if (stream._pendingAbortRequest !== undefined) { 4658 stream._pendingAbortRequest._resolve(); 4659 stream._pendingAbortRequest = undefined; 4660 } 4661 } 4662 stream._state = 'closed'; 4663 var writer = stream._writer; 4664 if (writer !== undefined) { 4665 defaultWriterClosedPromiseResolve(writer); 4666 } 4667 assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); 4668 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 4669 } 4670 function WritableStreamFinishInFlightCloseWithError(stream, error) { 4671 assert(stream._inFlightCloseRequest !== undefined); 4672 stream._inFlightCloseRequest._reject(error); 4673 stream._inFlightCloseRequest = undefined; 4674 assert(stream._state === 'writable' || stream._state === 'erroring'); 4675 if (stream._pendingAbortRequest !== undefined) { 4676 stream._pendingAbortRequest._reject(error); 4677 stream._pendingAbortRequest = undefined; 4678 } 4679 WritableStreamDealWithRejection(stream, error); 4680 } 4681 function WritableStreamCloseQueuedOrInFlight(stream) { 4682 if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { 4683 return false; 4684 } 4685 return true; 4686 } 4687 function WritableStreamHasOperationMarkedInFlight(stream) { 4688 if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { 4689 return false; 4690 } 4691 return true; 4692 } 4693 function WritableStreamMarkCloseRequestInFlight(stream) { 4694 assert(stream._inFlightCloseRequest === undefined); 4695 assert(stream._closeRequest !== undefined); 4696 stream._inFlightCloseRequest = stream._closeRequest; 4697 stream._closeRequest = undefined; 4698 } 4699 function WritableStreamMarkFirstWriteRequestInFlight(stream) { 4700 assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); 4701 assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); 4702 stream._inFlightWriteRequest = stream._writeRequests.shift(); 4703 } 4704 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { 4705 assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); 4706 if (stream._closeRequest !== undefined) { 4707 assert(stream._inFlightCloseRequest === undefined); 4708 stream._closeRequest._reject(stream._storedError); 4709 stream._closeRequest = undefined; 4710 } 4711 var writer = stream._writer; 4712 if (writer !== undefined) { 4713 defaultWriterClosedPromiseReject(writer, stream._storedError); 4714 writer._closedPromise.catch(function () {}); 4715 } 4716 } 4717 function WritableStreamUpdateBackpressure(stream, backpressure) { 4718 assert(stream._state === 'writable');
4719 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 4720 var writer = stream._writer; 4721 if (writer !== undefined && backpressure !== stream._backpressure) { 4722 if (backpressure === true) { 4723 defaultWriterReadyPromiseReset(writer); 4724 } else { 4725 assert(backpressure === false); 4726 defaultWriterReadyPromiseResolve(writer); 4727 } 4728 } 4729 stream._backpressure = backpressure; 4730 } 4731 var WritableStreamDefaultWriter = function () { 4732 function WritableStreamDefaultWriter(stream) { 4733 _classCallCheck(this, WritableStreamDefaultWriter); 4734 if (IsWritableStream(stream) === false) { 4735 throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); 4736 } 4737 if (IsWritableStreamLocked(stream) === true) { 4738 throw new TypeError('This stream has already been locked for exclusive writing by another writer'); 4739 } 4740 this._ownerWritableStream = stream; 4741 stream._writer = this; 4742 var state = stream._state; 4743 if (state === 'writable') { 4744 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { 4745 defaultWriterReadyPromiseInitialize(this); 4746 } else { 4747 defaultWriterReadyPromiseInitializeAsResolved(this); 4748 } 4749 defaultWriterClosedPromiseInitialize(this); 4750 } else if (state === 'erroring') { 4751 defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); 4752 this._readyPromise.catch(function () {}); 4753 defaultWriterClosedPromiseInitialize(this); 4754 } else if (state === 'closed') { 4755 defaultWriterReadyPromiseInitializeAsResolved(this); 4756 defaultWriterClosedPromiseInitializeAsResolved(this); 4757 } else { 4758 assert(state === 'errored', 'state must be errored'); 4759 var storedError = stream._storedError; 4760 defaultWriterReadyPromiseInitializeAsRejected(this, storedError); 4761 this._readyPromise.catch(function () {}); 4762 defaultWriterClosedPromiseInitializeAsRejected(this, storedError); 4763 this._closedPromise.catch(function () {}); 4764 } 4765 } 4766 _createClass(WritableStreamDefaultWriter, [{ 4767 key: 'abort', 4768 value: function abort(reason) { 4769 if (IsWritableStreamDefaultWriter(this) === false) { 4770 return Promise.reject(defaultWriterBrandCheckException('abort')); 4771 } 4772 if (this._ownerWritableStream === undefined) { 4773 return Promise.reject(defaultWriterLockException('abort')); 4774 } 4775 return WritableStreamDefaultWriterAbort(this, reason); 4776 } 4777 }, { 4778 key: 'close', 4779 value: function close() { 4780 if (IsWritableStreamDefaultWriter(this) === false) { 4781 return Promise.reject(defaultWriterBrandCheckException('close')); 4782 } 4783 var stream = this._ownerWritableStream; 4784 if (stream === undefined) { 4785 return Promise.reject(defaultWriterLockException('close')); 4786 } 4787 if (WritableStreamCloseQueuedOrInFlight(stream) === true) { 4788 return Promise.reject(new TypeError('cannot close an already-closing stream')); 4789 } 4790 return WritableStreamDefaultWriterClose(this); 4791 } 4792 }, { 4793 key: 'releaseLock', 4794 value: function releaseLock() { 4795 if (IsWritableStreamDefaultWriter(this) === false) { 4796 throw defaultWriterBrandCheckException('releaseLock'); 4797 } 4798 var stream = this._ownerWritableStream; 4799 if (stream === undefined) { 4800 return; 4801 } 4802 assert(stream._writer !== undefined); 4803 WritableStreamDefaultWriterRelease(this); 4804 } 4805 }, { 4806 key: 'write', 4807 value: function write(chunk) { 4808 if (IsWritableStreamDefaultWriter(this) === false) { 4809 return Promise.reject(defaultWriterBrandCheckException('write')); 4810 } 4811 if (this._ownerWritableStream === undefined) { 4812 return Promise.reject(defaultWriterLockException('write to')); 4813 } 4814 return WritableStreamDefaultWriterWrite(this, chunk); 4815 } 4816 }, { 4817 key: 'closed', 4818 get: function get() { 4819 if (IsWritableStreamDefaultWriter(this) === false) { 4820 return Promise.reject(defaultWriterBrandCheckException('closed')); 4821 } 4822 return this._closedPromise; 4823 } 4824 }, {
4825 key: 'desiredSize', 4826 get: function get() { 4827 if (IsWritableStreamDefaultWriter(this) === false) { 4828 throw defaultWriterBrandCheckException('desiredSize'); 4829 } 4830 if (this._ownerWritableStream === undefined) { 4831 throw defaultWriterLockException('desiredSize'); 4832 } 4833 return WritableStreamDefaultWriterGetDesiredSize(this); 4834 } 4835 }, { 4836 key: 'ready', 4837 get: function get() { 4838 if (IsWritableStreamDefaultWriter(this) === false) { 4839 return Promise.reject(defaultWriterBrandCheckException('ready')); 4840 } 4841 return this._readyPromise; 4842 } 4843 }]); 4844 return WritableStreamDefaultWriter; 4845 }(); 4846 function IsWritableStreamDefaultWriter(x) { 4847 if (!typeIsObject(x)) { 4848 return false; 4849 } 4850 if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { 4851 return false; 4852 } 4853 return true; 4854 } 4855 function WritableStreamDefaultWriterAbort(writer, reason) { 4856 var stream = writer._ownerWritableStream; 4857 assert(stream !== undefined); 4858 return WritableStreamAbort(stream, reason); 4859 } 4860 function WritableStreamDefaultWriterClose(writer) { 4861 var stream = writer._ownerWritableStream; 4862 assert(stream !== undefined); 4863 var state = stream._state; 4864 if (state === 'closed' || state === 'errored') { 4865 return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); 4866 } 4867 assert(state === 'writable' || state === 'erroring'); 4868 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 4869 var promise = new Promise(function (resolve, reject) { 4870 var closeRequest = { 4871 _resolve: resolve, 4872 _reject: reject 4873 }; 4874 stream._closeRequest = closeRequest; 4875 }); 4876 if (stream._backpressure === true && state === 'writable') { 4877 defaultWriterReadyPromiseResolve(writer); 4878 } 4879 WritableStreamDefaultControllerClose(stream._writableStreamController); 4880 return promise; 4881 } 4882 function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { 4883 var stream = writer._ownerWritableStream; 4884 assert(stream !== undefined); 4885 var state = stream._state; 4886 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 4887 return Promise.resolve(); 4888 } 4889 if (state === 'errored') { 4890 return Promise.reject(stream._storedError); 4891 } 4892 assert(state === 'writable' || state === 'erroring'); 4893 return WritableStreamDefaultWriterClose(writer); 4894 } 4895 function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { 4896 if (writer._closedPromiseState === 'pending') { 4897 defaultWriterClosedPromiseReject(writer, error); 4898 } else { 4899 defaultWriterClosedPromiseResetToRejected(writer, error); 4900 } 4901 writer._closedPromise.catch(function () {}); 4902 } 4903 function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { 4904 if (writer._readyPromiseState === 'pending') { 4905 defaultWriterReadyPromiseReject(writer, error); 4906 } else { 4907 defaultWriterReadyPromiseResetToRejected(writer, error); 4908 } 4909 writer._readyPromise.catch(function () {}); 4910 } 4911 function WritableStreamDefaultWriterGetDesiredSize(writer) { 4912 var stream = writer._ownerWritableStream; 4913 var state = stream._state; 4914 if (state === 'errored' || state === 'erroring') { 4915 return null; 4916 } 4917 if (state === 'closed') { 4918 return 0; 4919 } 4920 return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); 4921 } 4922 function WritableStreamDefaultWriterRelease(writer) { 4923 var stream = writer._ownerWritableStream; 4924 assert(stream !== undefined); 4925 assert(stream._writer === writer); 4926 var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); 4927 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); 4928 WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); 4929 stream._writer = undefined; 4930 writer._ownerWritableStream = undefined; 4931 } 4932 function WritableStreamDefaultWriterWrite(writer, chunk) { 4933 var stream = writer._ownerWritableStream; 4934 assert(stream !== undefined); 4935 var controller = stream._writableStreamController; 4936 var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); 4937 if (stream !== writer._ownerWritableStream) { 4938 return Promise.reject(defaultWriterLockException('write to')); 4939 } 4940 var state = stream._state; 4941 if (state === 'errored') { 4942 return Promise.reject(stream._storedError); 4943 }
4944 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 4945 return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); 4946 } 4947 if (state === 'erroring') { 4948 return Promise.reject(stream._storedError); 4949 } 4950 assert(state === 'writable'); 4951 var promise = WritableStreamAddWriteRequest(stream); 4952 WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); 4953 return promise; 4954 } 4955 var WritableStreamDefaultController = function () { 4956 function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { 4957 _classCallCheck(this, WritableStreamDefaultController); 4958 if (IsWritableStream(stream) === false) { 4959 throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); 4960 } 4961 if (stream._writableStreamController !== undefined) { 4962 throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); 4963 } 4964 this._controlledWritableStream = stream; 4965 this._underlyingSink = underlyingSink; 4966 this._queue = undefined; 4967 this._queueTotalSize = undefined; 4968 ResetQueue(this); 4969 this._started = false; 4970 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 4971 this._strategySize = normalizedStrategy.size; 4972 this._strategyHWM = normalizedStrategy.highWaterMark; 4973 var backpressure = WritableStreamDefaultControllerGetBackpressure(this); 4974 WritableStreamUpdateBackpressure(stream, backpressure); 4975 } 4976 _createClass(WritableStreamDefaultController, [{ 4977 key: 'error', 4978 value: function error(e) { 4979 if (IsWritableStreamDefaultController(this) === false) { 4980 throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); 4981 } 4982 var state = this._controlledWritableStream._state; 4983 if (state !== 'writable') { 4984 return; 4985 } 4986 WritableStreamDefaultControllerError(this, e); 4987 } 4988 }, { 4989 key: '__abortSteps', 4990 value: function __abortSteps(reason) { 4991 return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); 4992 } 4993 }, { 4994 key: '__errorSteps', 4995 value: function __errorSteps() { 4996 ResetQueue(this); 4997 } 4998 }, { 4999 key: '__startSteps', 5000 value: function __startSteps() { 5001 var _this = this; 5002 var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); 5003 var stream = this._controlledWritableStream; 5004 Promise.resolve(startResult).then(function () { 5005 assert(stream._state === 'writable' || stream._state === 'erroring'); 5006 _this._started = true; 5007 WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); 5008 }, function (r) { 5009 assert(stream._state === 'writable' || stream._state === 'erroring'); 5010 _this._started = true; 5011 WritableStreamDealWithRejection(stream, r); 5012 }).catch(rethrowAssertionErrorRejection); 5013 } 5014 }]); 5015 return WritableStreamDefaultController; 5016 }(); 5017 function WritableStreamDefaultControllerClose(controller) { 5018 EnqueueValueWithSize(controller, 'close', 0); 5019 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 5020 } 5021 function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { 5022 var strategySize = controller._strategySize; 5023 if (strategySize === undefined) { 5024 return 1; 5025 } 5026 try { 5027 return strategySize(chunk); 5028 } catch (chunkSizeE) { 5029 WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 5030 return 1; 5031 } 5032 } 5033 function WritableStreamDefaultControllerGetDesiredSize(controller) { 5034 return controller._strategyHWM - controller._queueTotalSize; 5035 } 5036 function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { 5037 var writeRecord = { chunk: chunk }; 5038 try { 5039 EnqueueValueWithSize(controller, writeRecord, chunkSize); 5040 } catch (enqueueE) { 5041 WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 5042 return; 5043 } 5044 var stream = controller._controlledWritableStream;
5045 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { 5046 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 5047 WritableStreamUpdateBackpressure(stream, backpressure); 5048 } 5049 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 5050 } 5051 function IsWritableStreamDefaultController(x) { 5052 if (!typeIsObject(x)) { 5053 return false; 5054 } 5055 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { 5056 return false; 5057 } 5058 return true; 5059 } 5060 function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { 5061 var stream = controller._controlledWritableStream; 5062 if (controller._started === false) { 5063 return; 5064 } 5065 if (stream._inFlightWriteRequest !== undefined) { 5066 return; 5067 } 5068 var state = stream._state; 5069 if (state === 'closed' || state === 'errored') { 5070 return; 5071 } 5072 if (state === 'erroring') { 5073 WritableStreamFinishErroring(stream); 5074 return; 5075 } 5076 if (controller._queue.length === 0) { 5077 return; 5078 } 5079 var writeRecord = PeekQueueValue(controller); 5080 if (writeRecord === 'close') { 5081 WritableStreamDefaultControllerProcessClose(controller); 5082 } else { 5083 WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); 5084 } 5085 } 5086 function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { 5087 if (controller._controlledWritableStream._state === 'writable') { 5088 WritableStreamDefaultControllerError(controller, error); 5089 } 5090 } 5091 function WritableStreamDefaultControllerProcessClose(controller) { 5092 var stream = controller._controlledWritableStream; 5093 WritableStreamMarkCloseRequestInFlight(stream); 5094 DequeueValue(controller); 5095 assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); 5096 var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); 5097 sinkClosePromise.then(function () { 5098 WritableStreamFinishInFlightClose(stream); 5099 }, function (reason) { 5100 WritableStreamFinishInFlightCloseWithError(stream, reason); 5101 }).catch(rethrowAssertionErrorRejection); 5102 } 5103 function WritableStreamDefaultControllerProcessWrite(controller, chunk) { 5104 var stream = controller._controlledWritableStream; 5105 WritableStreamMarkFirstWriteRequestInFlight(stream); 5106 var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); 5107 sinkWritePromise.then(function () { 5108 WritableStreamFinishInFlightWrite(stream); 5109 var state = stream._state; 5110 assert(state === 'writable' || state === 'erroring'); 5111 DequeueValue(controller); 5112 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { 5113 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 5114 WritableStreamUpdateBackpressure(stream, backpressure); 5115 } 5116 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 5117 }, function (reason) { 5118 WritableStreamFinishInFlightWriteWithError(stream, reason); 5119 }).catch(rethrowAssertionErrorRejection); 5120 } 5121 function WritableStreamDefaultControllerGetBackpressure(controller) { 5122 var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); 5123 return desiredSize <= 0; 5124 } 5125 function WritableStreamDefaultControllerError(controller, error) { 5126 var stream = controller._controlledWritableStream; 5127 assert(stream._state === 'writable'); 5128 WritableStreamStartErroring(stream, error); 5129 } 5130 function streamBrandCheckException(name) { 5131 return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); 5132 } 5133 function defaultWriterBrandCheckException(name) { 5134 return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); 5135 } 5136 function defaultWriterLockException(name) { 5137 return new TypeError('Cannot ' + name + ' a stream using a released writer'); 5138 } 5139 function defaultWriterClosedPromiseInitialize(writer) { 5140 writer._closedPromise = new Promise(function (resolve, reject) { 5141 writer._closedPromise_resolve = resolve; 5142 writer._closedPromise_reject = reject;
5143 writer._closedPromiseState = 'pending'; 5144 }); 5145 } 5146 function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { 5147 writer._closedPromise = Promise.reject(reason); 5148 writer._closedPromise_resolve = undefined; 5149 writer._closedPromise_reject = undefined; 5150 writer._closedPromiseState = 'rejected'; 5151 } 5152 function defaultWriterClosedPromiseInitializeAsResolved(writer) { 5153 writer._closedPromise = Promise.resolve(undefined); 5154 writer._closedPromise_resolve = undefined; 5155 writer._closedPromise_reject = undefined; 5156 writer._closedPromiseState = 'resolved'; 5157 } 5158 function defaultWriterClosedPromiseReject(writer, reason) { 5159 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 5160 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 5161 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 5162 writer._closedPromise_reject(reason); 5163 writer._closedPromise_resolve = undefined; 5164 writer._closedPromise_reject = undefined; 5165 writer._closedPromiseState = 'rejected'; 5166 } 5167 function defaultWriterClosedPromiseResetToRejected(writer, reason) { 5168 assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); 5169 assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); 5170 assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); 5171 writer._closedPromise = Promise.reject(reason); 5172 writer._closedPromiseState = 'rejected'; 5173 } 5174 function defaultWriterClosedPromiseResolve(writer) { 5175 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 5176 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 5177 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 5178 writer._closedPromise_resolve(undefined); 5179 writer._closedPromise_resolve = undefined; 5180 writer._closedPromise_reject = undefined; 5181 writer._closedPromiseState = 'resolved'; 5182 } 5183 function defaultWriterReadyPromiseInitialize(writer) { 5184 writer._readyPromise = new Promise(function (resolve, reject) { 5185 writer._readyPromise_resolve = resolve; 5186 writer._readyPromise_reject = reject; 5187 }); 5188 writer._readyPromiseState = 'pending'; 5189 } 5190 function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { 5191 writer._readyPromise = Promise.reject(reason); 5192 writer._readyPromise_resolve = undefined; 5193 writer._readyPromise_reject = undefined; 5194 writer._readyPromiseState = 'rejected'; 5195 } 5196 function defaultWriterReadyPromiseInitializeAsResolved(writer) { 5197 writer._readyPromise = Promise.resolve(undefined); 5198 writer._readyPromise_resolve = undefined; 5199 writer._readyPromise_reject = undefined; 5200 writer._readyPromiseState = 'fulfilled'; 5201 } 5202 function defaultWriterReadyPromiseReject(writer, reason) { 5203 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 5204 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 5205 writer._readyPromise_reject(reason); 5206 writer._readyPromise_resolve = undefined; 5207 writer._readyPromise_reject = undefined; 5208 writer._readyPromiseState = 'rejected'; 5209 } 5210 function defaultWriterReadyPromiseReset(writer) { 5211 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 5212 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 5213 writer._readyPromise = new Promise(function (resolve, reject) { 5214 writer._readyPromise_resolve = resolve; 5215 writer._readyPromise_reject = reject; 5216 }); 5217 writer._readyPromiseState = 'pending'; 5218 } 5219 function defaultWriterReadyPromiseResetToRejected(writer, reason) { 5220 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 5221 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 5222 writer._readyPromise = Promise.reject(reason); 5223 writer._readyPromiseState = 'rejected'; 5224 } 5225 function defaultWriterReadyPromiseResolve(writer) { 5226 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 5227 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 5228 writer._readyPromise_resolve(undefined); 5229 writer._readyPromise_resolve = undefined; 5230 writer._readyPromise_reject = undefined; 5231 writer._readyPromiseState = 'fulfilled'; 5232 } 5233}, function (module, exports, __w_pdfjs_require__) { 5234 "use strict"; 5235 5236 var _require = __w_pdfjs_require__(0), 5237 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; 5238 var _require2 = __w_pdfjs_require__(1), 5239 assert = _require2.assert; 5240 exports.DequeueValue = function (container) { 5241 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 5242 assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); 5243 var pair = container._queue.shift(); 5244 container._queueTotalSize -= pair.size; 5245 if (container._queueTotalSize < 0) { 5246 container._queueTotalSize = 0; 5247 } 5248 return pair.value; 5249 }; 5250 exports.EnqueueValueWithSize = function (container, value, size) { 5251 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); 5252 size = Number(size); 5253 if (!IsFiniteNonNegativeNumber(size)) { 5254 throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); 5255 } 5256 container._queue.push({ 5257 value: value, 5258 size: size 5259 }); 5260 container._queueTotalSize += size; 5261 }; 5262 exports.PeekQueueValue = function (container) { 5263 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 5264 assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); 5265 var pair = container._queue[0]; 5266 return pair.value; 5267 }; 5268 exports.ResetQueue = function (container) { 5269 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 5270 container._queue = []; 5271 container._queueTotalSize = 0; 5272 }; 5273}, function (module, exports, __w_pdfjs_require__) { 5274 "use strict"; 5275 5276 var _createClass = function () { 5277 function defineProperties(target, props) { 5278 for (var i = 0; i < props.length; i++) { 5279 var descriptor = props[i]; 5280 descriptor.enumerable = descriptor.enumerable || false; 5281 descriptor.configurable = true; 5282 if ("value" in descriptor) descriptor.writable = true; 5283 Object.defineProperty(target, descriptor.key, descriptor); 5284 } 5285 } 5286 return function (Constructor, protoProps, staticProps) { 5287 if (protoProps) defineProperties(Constructor.prototype, protoProps); 5288 if (staticProps) defineProperties(Constructor, staticProps); 5289 return Constructor; 5290 }; 5291 }(); 5292 function _classCallCheck(instance, Constructor) { 5293 if (!(instance instanceof Constructor)) { 5294 throw new TypeError("Cannot call a class as a function"); 5295 } 5296 } 5297 var _require = __w_pdfjs_require__(0), 5298 ArrayBufferCopy = _require.ArrayBufferCopy, 5299 CreateIterResultObject = _require.CreateIterResultObject, 5300 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, 5301 InvokeOrNoop = _require.InvokeOrNoop, 5302 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 5303 TransferArrayBuffer = _require.TransferArrayBuffer, 5304 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 5305 ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; 5306 var _require2 = __w_pdfjs_require__(0), 5307 createArrayFromList = _require2.createArrayFromList, 5308 createDataProperty = _require2.createDataProperty, 5309 typeIsObject = _require2.typeIsObject; 5310 var _require3 = __w_pdfjs_require__(1), 5311 assert = _require3.assert, 5312 rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; 5313 var _require4 = __w_pdfjs_require__(3), 5314 DequeueValue = _require4.DequeueValue, 5315 EnqueueValueWithSize = _require4.EnqueueValueWithSize, 5316 ResetQueue = _require4.ResetQueue; 5317 var _require5 = __w_pdfjs_require__(2), 5318 AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, 5319 IsWritableStream = _require5.IsWritableStream, 5320 IsWritableStreamLocked = _require5.IsWritableStreamLocked, 5321 WritableStreamAbort = _require5.WritableStreamAbort, 5322 WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, 5323 WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, 5324 WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, 5325 WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; 5326 var ReadableStream = function () { 5327 function ReadableStream() { 5328 var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 5329 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 5330 size = _ref.size, 5331 highWaterMark = _ref.highWaterMark; 5332 _classCallCheck(this, ReadableStream); 5333 this._state = 'readable'; 5334 this._reader = undefined; 5335 this._storedError = undefined; 5336 this._disturbed = false;
5337 this._readableStreamController = undefined; 5338 var type = underlyingSource.type; 5339 var typeString = String(type); 5340 if (typeString === 'bytes') { 5341 if (highWaterMark === undefined) { 5342 highWaterMark = 0; 5343 } 5344 this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); 5345 } else if (type === undefined) { 5346 if (highWaterMark === undefined) { 5347 highWaterMark = 1; 5348 } 5349 this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); 5350 } else { 5351 throw new RangeError('Invalid type is specified'); 5352 } 5353 } 5354 _createClass(ReadableStream, [{ 5355 key: 'cancel', 5356 value: function cancel(reason) { 5357 if (IsReadableStream(this) === false) { 5358 return Promise.reject(streamBrandCheckException('cancel')); 5359 } 5360 if (IsReadableStreamLocked(this) === true) { 5361 return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); 5362 } 5363 return ReadableStreamCancel(this, reason); 5364 } 5365 }, { 5366 key: 'getReader', 5367 value: function getReader() { 5368 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 5369 mode = _ref2.mode; 5370 if (IsReadableStream(this) === false) { 5371 throw streamBrandCheckException('getReader'); 5372 } 5373 if (mode === undefined) { 5374 return AcquireReadableStreamDefaultReader(this); 5375 } 5376 mode = String(mode); 5377 if (mode === 'byob') { 5378 return AcquireReadableStreamBYOBReader(this); 5379 } 5380 throw new RangeError('Invalid mode is specified'); 5381 } 5382 }, { 5383 key: 'pipeThrough', 5384 value: function pipeThrough(_ref3, options) { 5385 var writable = _ref3.writable, 5386 readable = _ref3.readable; 5387 var promise = this.pipeTo(writable, options); 5388 ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); 5389 return readable; 5390 } 5391 }, { 5392 key: 'pipeTo', 5393 value: function pipeTo(dest) { 5394 var _this = this; 5395 var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 5396 preventClose = _ref4.preventClose, 5397 preventAbort = _ref4.preventAbort, 5398 preventCancel = _ref4.preventCancel; 5399 if (IsReadableStream(this) === false) { 5400 return Promise.reject(streamBrandCheckException('pipeTo')); 5401 } 5402 if (IsWritableStream(dest) === false) { 5403 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); 5404 } 5405 preventClose = Boolean(preventClose); 5406 preventAbort = Boolean(preventAbort); 5407 preventCancel = Boolean(preventCancel); 5408 if (IsReadableStreamLocked(this) === true) { 5409 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); 5410 } 5411 if (IsWritableStreamLocked(dest) === true) { 5412 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); 5413 } 5414 var reader = AcquireReadableStreamDefaultReader(this); 5415 var writer = AcquireWritableStreamDefaultWriter(dest); 5416 var shuttingDown = false; 5417 var currentWrite = Promise.resolve(); 5418 return new Promise(function (resolve, reject) { 5419 function pipeLoop() { 5420 currentWrite = Promise.resolve(); 5421 if (shuttingDown === true) { 5422 return Promise.resolve(); 5423 } 5424 return writer._readyPromise.then(function () { 5425 return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { 5426 var value = _ref5.value, 5427 done = _ref5.done; 5428 if (done === true) { 5429 return; 5430 } 5431 currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {}); 5432 }); 5433 }).then(pipeLoop); 5434 } 5435 isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { 5436 if (preventAbort === false) { 5437 shutdownWithAction(function () { 5438 return WritableStreamAbort(dest, storedError); 5439 }, true, storedError); 5440 } else { 5441 shutdown(true, storedError); 5442 } 5443 }); 5444 isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { 5445 if (preventCancel === false) { 5446 shutdownWithAction(function () { 5447 return ReadableStreamCancel(_this, storedError); 5448 }, true, storedError); 5449 } else { 5450 shutdown(true, storedError); 5451 } 5452 }); 5453 isOrBecomesClosed(_this, reader._closedPromise, function () { 5454 if (preventClose === false) { 5455 shutdownWithAction(function () { 5456 return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); 5457 }); 5458 } else { 5459 shutdown(); 5460 } 5461 }); 5462 if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { 5463 var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); 5464 if (preventCancel === false) { 5465 shutdownWithAction(function () { 5466 return ReadableStreamCancel(_this, destClosed); 5467 }, true, destClosed); 5468 } else { 5469 shutdown(true, destClosed); 5470 } 5471 } 5472 pipeLoop().catch(function (err) { 5473 currentWrite = Promise.resolve(); 5474 rethrowAssertionErrorRejection(err); 5475 }); 5476 function waitForWritesToFinish() { 5477 var oldCurrentWrite = currentWrite; 5478 return currentWrite.then(function () { 5479 return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; 5480 }); 5481 } 5482 function isOrBecomesErrored(stream, promise, action) { 5483 if (stream._state === 'errored') { 5484 action(stream._storedError); 5485 } else { 5486 promise.catch(action).catch(rethrowAssertionErrorRejection); 5487 } 5488 } 5489 function isOrBecomesClosed(stream, promise, action) { 5490 if (stream._state === 'closed') { 5491 action(); 5492 } else { 5493 promise.then(action).catch(rethrowAssertionErrorRejection); 5494 } 5495 } 5496 function shutdownWithAction(action, originalIsError, originalError) { 5497 if (shuttingDown === true) { 5498 return; 5499 } 5500 shuttingDown = true; 5501 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 5502 waitForWritesToFinish().then(doTheRest); 5503 } else { 5504 doTheRest(); 5505 } 5506 function doTheRest() { 5507 action().then(function () { 5508 return finalize(originalIsError, originalError); 5509 }, function (newError) { 5510 return finalize(true, newError); 5511 }).catch(rethrowAssertionErrorRejection); 5512 } 5513 } 5514 function shutdown(isError, error) { 5515 if (shuttingDown === true) { 5516 return; 5517 } 5518 shuttingDown = true; 5519 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 5520 waitForWritesToFinish().then(function () { 5521 return finalize(isError, error); 5522 }).catch(rethrowAssertionErrorRejection); 5523 } else { 5524 finalize(isError, error); 5525 } 5526 } 5527 function finalize(isError, error) { 5528 WritableStreamDefaultWriterRelease(writer); 5529 ReadableStreamReaderGenericRelease(reader); 5530 if (isError) { 5531 reject(error); 5532 } else { 5533 resolve(undefined); 5534 } 5535 } 5536 }); 5537 } 5538 }, {
5539 key: 'tee', 5540 value: function tee() { 5541 if (IsReadableStream(this) === false) { 5542 throw streamBrandCheckException('tee'); 5543 } 5544 var branches = ReadableStreamTee(this, false); 5545 return createArrayFromList(branches); 5546 } 5547 }, { 5548 key: 'locked', 5549 get: function get() { 5550 if (IsReadableStream(this) === false) { 5551 throw streamBrandCheckException('locked'); 5552 } 5553 return IsReadableStreamLocked(this); 5554 } 5555 }]); 5556 return ReadableStream; 5557 }(); 5558 module.exports = { 5559 ReadableStream: ReadableStream, 5560 IsReadableStreamDisturbed: IsReadableStreamDisturbed, 5561 ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, 5562 ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, 5563 ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, 5564 ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize 5565 }; 5566 function AcquireReadableStreamBYOBReader(stream) { 5567 return new ReadableStreamBYOBReader(stream); 5568 } 5569 function AcquireReadableStreamDefaultReader(stream) { 5570 return new ReadableStreamDefaultReader(stream); 5571 } 5572 function IsReadableStream(x) { 5573 if (!typeIsObject(x)) { 5574 return false; 5575 } 5576 if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { 5577 return false; 5578 } 5579 return true; 5580 } 5581 function IsReadableStreamDisturbed(stream) { 5582 assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); 5583 return stream._disturbed; 5584 } 5585 function IsReadableStreamLocked(stream) { 5586 assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); 5587 if (stream._reader === undefined) { 5588 return false; 5589 } 5590 return true; 5591 } 5592 function ReadableStreamTee(stream, cloneForBranch2) { 5593 assert(IsReadableStream(stream) === true); 5594 assert(typeof cloneForBranch2 === 'boolean'); 5595 var reader = AcquireReadableStreamDefaultReader(stream); 5596 var teeState = { 5597 closedOrErrored: false, 5598 canceled1: false, 5599 canceled2: false, 5600 reason1: undefined, 5601 reason2: undefined 5602 }; 5603 teeState.promise = new Promise(function (resolve) { 5604 teeState._resolve = resolve; 5605 }); 5606 var pull = create_ReadableStreamTeePullFunction(); 5607 pull._reader = reader; 5608 pull._teeState = teeState; 5609 pull._cloneForBranch2 = cloneForBranch2; 5610 var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); 5611 cancel1._stream = stream; 5612 cancel1._teeState = teeState; 5613 var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); 5614 cancel2._stream = stream; 5615 cancel2._teeState = teeState; 5616 var underlyingSource1 = Object.create(Object.prototype);
5617 createDataProperty(underlyingSource1, 'pull', pull); 5618 createDataProperty(underlyingSource1, 'cancel', cancel1); 5619 var branch1Stream = new ReadableStream(underlyingSource1); 5620 var underlyingSource2 = Object.create(Object.prototype); 5621 createDataProperty(underlyingSource2, 'pull', pull); 5622 createDataProperty(underlyingSource2, 'cancel', cancel2); 5623 var branch2Stream = new ReadableStream(underlyingSource2); 5624 pull._branch1 = branch1Stream._readableStreamController; 5625 pull._branch2 = branch2Stream._readableStreamController; 5626 reader._closedPromise.catch(function (r) { 5627 if (teeState.closedOrErrored === true) { 5628 return; 5629 } 5630 ReadableStreamDefaultControllerError(pull._branch1, r); 5631 ReadableStreamDefaultControllerError(pull._branch2, r); 5632 teeState.closedOrErrored = true; 5633 }); 5634 return [branch1Stream, branch2Stream]; 5635 } 5636 function create_ReadableStreamTeePullFunction() { 5637 function f() { 5638 var reader = f._reader, 5639 branch1 = f._branch1, 5640 branch2 = f._branch2, 5641 teeState = f._teeState; 5642 return ReadableStreamDefaultReaderRead(reader).then(function (result) { 5643 assert(typeIsObject(result)); 5644 var value = result.value; 5645 var done = result.done; 5646 assert(typeof done === 'boolean'); 5647 if (done === true && teeState.closedOrErrored === false) { 5648 if (teeState.canceled1 === false) { 5649 ReadableStreamDefaultControllerClose(branch1); 5650 } 5651 if (teeState.canceled2 === false) { 5652 ReadableStreamDefaultControllerClose(branch2); 5653 } 5654 teeState.closedOrErrored = true; 5655 } 5656 if (teeState.closedOrErrored === true) { 5657 return; 5658 } 5659 var value1 = value; 5660 var value2 = value; 5661 if (teeState.canceled1 === false) { 5662 ReadableStreamDefaultControllerEnqueue(branch1, value1); 5663 } 5664 if (teeState.canceled2 === false) { 5665 ReadableStreamDefaultControllerEnqueue(branch2, value2); 5666 } 5667 }); 5668 } 5669 return f; 5670 } 5671 function create_ReadableStreamTeeBranch1CancelFunction() { 5672 function f(reason) { 5673 var stream = f._stream, 5674 teeState = f._teeState; 5675 teeState.canceled1 = true; 5676 teeState.reason1 = reason; 5677 if (teeState.canceled2 === true) { 5678 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 5679 var cancelResult = ReadableStreamCancel(stream, compositeReason); 5680 teeState._resolve(cancelResult); 5681 } 5682 return teeState.promise; 5683 } 5684 return f; 5685 } 5686 function create_ReadableStreamTeeBranch2CancelFunction() { 5687 function f(reason) { 5688 var stream = f._stream, 5689 teeState = f._teeState; 5690 teeState.canceled2 = true; 5691 teeState.reason2 = reason; 5692 if (teeState.canceled1 === true) { 5693 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 5694 var cancelResult = ReadableStreamCancel(stream, compositeReason); 5695 teeState._resolve(cancelResult); 5696 } 5697 return teeState.promise; 5698 } 5699 return f; 5700 } 5701 function ReadableStreamAddReadIntoRequest(stream) { 5702 assert(IsReadableStreamBYOBReader(stream._reader) === true); 5703 assert(stream._state === 'readable' || stream._state === 'closed'); 5704 var promise = new Promise(function (resolve, reject) { 5705 var readIntoRequest = { 5706 _resolve: resolve, 5707 _reject: reject 5708 }; 5709 stream._reader._readIntoRequests.push(readIntoRequest); 5710 }); 5711 return promise; 5712 } 5713 function ReadableStreamAddReadRequest(stream) { 5714 assert(IsReadableStreamDefaultReader(stream._reader) === true); 5715 assert(stream._state === 'readable'); 5716 var promise = new Promise(function (resolve, reject) { 5717 var readRequest = { 5718 _resolve: resolve, 5719 _reject: reject 5720 }; 5721 stream._reader._readRequests.push(readRequest); 5722 }); 5723 return promise; 5724 } 5725 function ReadableStreamCancel(stream, reason) { 5726 stream._disturbed = true; 5727 if (stream._state === 'closed') { 5728 return Promise.resolve(undefined); 5729 } 5730 if (stream._state === 'errored') { 5731 return Promise.reject(stream._storedError); 5732 } 5733 ReadableStreamClose(stream); 5734 var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); 5735 return sourceCancelPromise.then(function () { 5736 return undefined; 5737 }); 5738 } 5739 function ReadableStreamClose(stream) { 5740 assert(stream._state === 'readable'); 5741 stream._state = 'closed'; 5742 var reader = stream._reader; 5743 if (reader === undefined) { 5744 return undefined; 5745 } 5746 if (IsReadableStreamDefaultReader(reader) === true) { 5747 for (var i = 0; i < reader._readRequests.length; i++) { 5748 var _resolve = reader._readRequests[i]._resolve; 5749 _resolve(CreateIterResultObject(undefined, true)); 5750 } 5751 reader._readRequests = []; 5752 } 5753 defaultReaderClosedPromiseResolve(reader); 5754 return undefined; 5755 } 5756 function ReadableStreamError(stream, e) {
5757 assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); 5758 assert(stream._state === 'readable', 'state must be readable'); 5759 stream._state = 'errored'; 5760 stream._storedError = e; 5761 var reader = stream._reader; 5762 if (reader === undefined) { 5763 return undefined; 5764 } 5765 if (IsReadableStreamDefaultReader(reader) === true) { 5766 for (var i = 0; i < reader._readRequests.length; i++) { 5767 var readRequest = reader._readRequests[i]; 5768 readRequest._reject(e); 5769 } 5770 reader._readRequests = []; 5771 } else { 5772 assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); 5773 for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { 5774 var readIntoRequest = reader._readIntoRequests[_i]; 5775 readIntoRequest._reject(e); 5776 } 5777 reader._readIntoRequests = []; 5778 } 5779 defaultReaderClosedPromiseReject(reader, e); 5780 reader._closedPromise.catch(function () {}); 5781 } 5782 function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { 5783 var reader = stream._reader; 5784 assert(reader._readIntoRequests.length > 0); 5785 var readIntoRequest = reader._readIntoRequests.shift(); 5786 readIntoRequest._resolve(CreateIterResultObject(chunk, done)); 5787 } 5788 function ReadableStreamFulfillReadRequest(stream, chunk, done) { 5789 var reader = stream._reader; 5790 assert(reader._readRequests.length > 0); 5791 var readRequest = reader._readRequests.shift(); 5792 readRequest._resolve(CreateIterResultObject(chunk, done)); 5793 } 5794 function ReadableStreamGetNumReadIntoRequests(stream) { 5795 return stream._reader._readIntoRequests.length; 5796 } 5797 function ReadableStreamGetNumReadRequests(stream) { 5798 return stream._reader._readRequests.length; 5799 } 5800 function ReadableStreamHasBYOBReader(stream) { 5801 var reader = stream._reader; 5802 if (reader === undefined) { 5803 return false; 5804 } 5805 if (IsReadableStreamBYOBReader(reader) === false) { 5806 return false; 5807 } 5808 return true; 5809 } 5810 function ReadableStreamHasDefaultReader(stream) { 5811 var reader = stream._reader; 5812 if (reader === undefined) { 5813 return false; 5814 } 5815 if (IsReadableStreamDefaultReader(reader) === false) { 5816 return false; 5817 } 5818 return true; 5819 } 5820 var ReadableStreamDefaultReader = function () { 5821 function ReadableStreamDefaultReader(stream) { 5822 _classCallCheck(this, ReadableStreamDefaultReader); 5823 if (IsReadableStream(stream) === false) { 5824 throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); 5825 } 5826 if (IsReadableStreamLocked(stream) === true) { 5827 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 5828 } 5829 ReadableStreamReaderGenericInitialize(this, stream); 5830 this._readRequests = []; 5831 } 5832 _createClass(ReadableStreamDefaultReader, [{ 5833 key: 'cancel', 5834 value: function cancel(reason) { 5835 if (IsReadableStreamDefaultReader(this) === false) { 5836 return Promise.reject(defaultReaderBrandCheckException('cancel')); 5837 } 5838 if (this._ownerReadableStream === undefined) { 5839 return Promise.reject(readerLockException('cancel')); 5840 } 5841 return ReadableStreamReaderGenericCancel(this, reason); 5842 } 5843 }, { 5844 key: 'read', 5845 value: function read() { 5846 if (IsReadableStreamDefaultReader(this) === false) { 5847 return Promise.reject(defaultReaderBrandCheckException('read')); 5848 } 5849 if (this._ownerReadableStream === undefined) { 5850 return Promise.reject(readerLockException('read from')); 5851 } 5852 return ReadableStreamDefaultReaderRead(this); 5853 } 5854 }, { 5855 key: 'releaseLock', 5856 value: function releaseLock() { 5857 if (IsReadableStreamDefaultReader(this) === false) { 5858 throw defaultReaderBrandCheckException('releaseLock'); 5859 } 5860 if (this._ownerReadableStream === undefined) { 5861 return; 5862 } 5863 if (this._readRequests.length > 0) { 5864 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 5865 } 5866 ReadableStreamReaderGenericRelease(this); 5867 } 5868 }, {
5869 key: 'closed', 5870 get: function get() { 5871 if (IsReadableStreamDefaultReader(this) === false) { 5872 return Promise.reject(defaultReaderBrandCheckException('closed')); 5873 } 5874 return this._closedPromise; 5875 } 5876 }]); 5877 return ReadableStreamDefaultReader; 5878 }(); 5879 var ReadableStreamBYOBReader = function () { 5880 function ReadableStreamBYOBReader(stream) { 5881 _classCallCheck(this, ReadableStreamBYOBReader); 5882 if (!IsReadableStream(stream)) { 5883 throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); 5884 } 5885 if (IsReadableByteStreamController(stream._readableStreamController) === false) { 5886 throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); 5887 } 5888 if (IsReadableStreamLocked(stream)) { 5889 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 5890 } 5891 ReadableStreamReaderGenericInitialize(this, stream); 5892 this._readIntoRequests = []; 5893 } 5894 _createClass(ReadableStreamBYOBReader, [{ 5895 key: 'cancel', 5896 value: function cancel(reason) { 5897 if (!IsReadableStreamBYOBReader(this)) { 5898 return Promise.reject(byobReaderBrandCheckException('cancel')); 5899 } 5900 if (this._ownerReadableStream === undefined) { 5901 return Promise.reject(readerLockException('cancel')); 5902 } 5903 return ReadableStreamReaderGenericCancel(this, reason); 5904 } 5905 }, { 5906 key: 'read', 5907 value: function read(view) { 5908 if (!IsReadableStreamBYOBReader(this)) { 5909 return Promise.reject(byobReaderBrandCheckException('read')); 5910 } 5911 if (this._ownerReadableStream === undefined) { 5912 return Promise.reject(readerLockException('read from')); 5913 } 5914 if (!ArrayBuffer.isView(view)) { 5915 return Promise.reject(new TypeError('view must be an array buffer view')); 5916 } 5917 if (view.byteLength === 0) { 5918 return Promise.reject(new TypeError('view must have non-zero byteLength')); 5919 } 5920 return ReadableStreamBYOBReaderRead(this, view); 5921 } 5922 }, { 5923 key: 'releaseLock', 5924 value: function releaseLock() { 5925 if (!IsReadableStreamBYOBReader(this)) { 5926 throw byobReaderBrandCheckException('releaseLock'); 5927 } 5928 if (this._ownerReadableStream === undefined) { 5929 return; 5930 } 5931 if (this._readIntoRequests.length > 0) { 5932 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 5933 } 5934 ReadableStreamReaderGenericRelease(this); 5935 } 5936 }, { 5937 key: 'closed', 5938 get: function get() { 5939 if (!IsReadableStreamBYOBReader(this)) { 5940 return Promise.reject(byobReaderBrandCheckException('closed')); 5941 } 5942 return this._closedPromise; 5943 } 5944 }]); 5945 return ReadableStreamBYOBReader; 5946 }(); 5947 function IsReadableStreamBYOBReader(x) { 5948 if (!typeIsObject(x)) { 5949 return false; 5950 } 5951 if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { 5952 return false; 5953 } 5954 return true; 5955 } 5956 function IsReadableStreamDefaultReader(x) { 5957 if (!typeIsObject(x)) { 5958 return false; 5959 } 5960 if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { 5961 return false; 5962 } 5963 return true; 5964 } 5965 function ReadableStreamReaderGenericInitialize(reader, stream) { 5966 reader._ownerReadableStream = stream; 5967 stream._reader = reader; 5968 if (stream._state === 'readable') { 5969 defaultReaderClosedPromiseInitialize(reader); 5970 } else if (stream._state === 'closed') { 5971 defaultReaderClosedPromiseInitializeAsResolved(reader); 5972 } else { 5973 assert(stream._state === 'errored', 'state must be errored'); 5974 defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); 5975 reader._closedPromise.catch(function () {}); 5976 } 5977 } 5978 function ReadableStreamReaderGenericCancel(reader, reason) { 5979 var stream = reader._ownerReadableStream; 5980 assert(stream !== undefined); 5981 return ReadableStreamCancel(stream, reason); 5982 } 5983 function ReadableStreamReaderGenericRelease(reader) { 5984 assert(reader._ownerReadableStream !== undefined); 5985 assert(reader._ownerReadableStream._reader === reader); 5986 if (reader._ownerReadableStream._state === 'readable') { 5987 defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 5988 } else { 5989 defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 5990 } 5991 reader._closedPromise.catch(function () {}); 5992 reader._ownerReadableStream._reader = undefined; 5993 reader._ownerReadableStream = undefined; 5994 } 5995 function ReadableStreamBYOBReaderRead(reader, view) { 5996 var stream = reader._ownerReadableStream; 5997 assert(stream !== undefined); 5998 stream._disturbed = true; 5999 if (stream._state === 'errored') { 6000 return Promise.reject(stream._storedError); 6001 } 6002 return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); 6003 } 6004 function ReadableStreamDefaultReaderRead(reader) { 6005 var stream = reader._ownerReadableStream; 6006 assert(stream !== undefined); 6007 stream._disturbed = true; 6008 if (stream._state === 'closed') { 6009 return Promise.resolve(CreateIterResultObject(undefined, true)); 6010 } 6011 if (stream._state === 'errored') { 6012 return Promise.reject(stream._storedError); 6013 } 6014 assert(stream._state === 'readable'); 6015 return stream._readableStreamController.__pullSteps(); 6016 } 6017 var ReadableStreamDefaultController = function () { 6018 function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { 6019 _classCallCheck(this, ReadableStreamDefaultController);
6020 if (IsReadableStream(stream) === false) { 6021 throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); 6022 } 6023 if (stream._readableStreamController !== undefined) { 6024 throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); 6025 } 6026 this._controlledReadableStream = stream; 6027 this._underlyingSource = underlyingSource; 6028 this._queue = undefined; 6029 this._queueTotalSize = undefined; 6030 ResetQueue(this); 6031 this._started = false; 6032 this._closeRequested = false; 6033 this._pullAgain = false; 6034 this._pulling = false; 6035 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 6036 this._strategySize = normalizedStrategy.size; 6037 this._strategyHWM = normalizedStrategy.highWaterMark; 6038 var controller = this; 6039 var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); 6040 Promise.resolve(startResult).then(function () { 6041 controller._started = true; 6042 assert(controller._pulling === false); 6043 assert(controller._pullAgain === false); 6044 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 6045 }, function (r) { 6046 ReadableStreamDefaultControllerErrorIfNeeded(controller, r); 6047 }).catch(rethrowAssertionErrorRejection); 6048 } 6049 _createClass(ReadableStreamDefaultController, [{ 6050 key: 'close', 6051 value: function close() { 6052 if (IsReadableStreamDefaultController(this) === false) { 6053 throw defaultControllerBrandCheckException('close'); 6054 } 6055 if (this._closeRequested === true) { 6056 throw new TypeError('The stream has already been closed; do not close it again!'); 6057 } 6058 var state = this._controlledReadableStream._state; 6059 if (state !== 'readable') { 6060 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 6061 } 6062 ReadableStreamDefaultControllerClose(this); 6063 } 6064 }, { 6065 key: 'enqueue', 6066 value: function enqueue(chunk) { 6067 if (IsReadableStreamDefaultController(this) === false) { 6068 throw defaultControllerBrandCheckException('enqueue'); 6069 } 6070 if (this._closeRequested === true) { 6071 throw new TypeError('stream is closed or draining'); 6072 } 6073 var state = this._controlledReadableStream._state; 6074 if (state !== 'readable') { 6075 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 6076 } 6077 return ReadableStreamDefaultControllerEnqueue(this, chunk); 6078 } 6079 }, { 6080 key: 'error', 6081 value: function error(e) { 6082 if (IsReadableStreamDefaultController(this) === false) { 6083 throw defaultControllerBrandCheckException('error'); 6084 } 6085 var stream = this._controlledReadableStream; 6086 if (stream._state !== 'readable') { 6087 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 6088 } 6089 ReadableStreamDefaultControllerError(this, e); 6090 } 6091 }, { 6092 key: '__cancelSteps', 6093 value: function __cancelSteps(reason) { 6094 ResetQueue(this); 6095 return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); 6096 } 6097 }, { 6098 key: '__pullSteps', 6099 value: function __pullSteps() { 6100 var stream = this._controlledReadableStream; 6101 if (this._queue.length > 0) { 6102 var chunk = DequeueValue(this); 6103 if (this._closeRequested === true && this._queue.length === 0) { 6104 ReadableStreamClose(stream); 6105 } else { 6106 ReadableStreamDefaultControllerCallPullIfNeeded(this); 6107 } 6108 return Promise.resolve(CreateIterResultObject(chunk, false)); 6109 } 6110 var pendingPromise = ReadableStreamAddReadRequest(stream); 6111 ReadableStreamDefaultControllerCallPullIfNeeded(this); 6112 return pendingPromise; 6113 } 6114 }, { 6115 key: 'desiredSize', 6116 get: function get() { 6117 if (IsReadableStreamDefaultController(this) === false) { 6118 throw defaultControllerBrandCheckException('desiredSize'); 6119 } 6120 return ReadableStreamDefaultControllerGetDesiredSize(this); 6121 } 6122 }]); 6123 return ReadableStreamDefaultController; 6124 }(); 6125 function IsReadableStreamDefaultController(x) { 6126 if (!typeIsObject(x)) { 6127 return false;
6128 } 6129 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { 6130 return false; 6131 } 6132 return true; 6133 } 6134 function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { 6135 var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); 6136 if (shouldPull === false) { 6137 return undefined; 6138 } 6139 if (controller._pulling === true) { 6140 controller._pullAgain = true; 6141 return undefined; 6142 } 6143 assert(controller._pullAgain === false); 6144 controller._pulling = true; 6145 var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); 6146 pullPromise.then(function () { 6147 controller._pulling = false; 6148 if (controller._pullAgain === true) { 6149 controller._pullAgain = false; 6150 return ReadableStreamDefaultControllerCallPullIfNeeded(controller); 6151 } 6152 return undefined; 6153 }, function (e) { 6154 ReadableStreamDefaultControllerErrorIfNeeded(controller, e); 6155 }).catch(rethrowAssertionErrorRejection); 6156 return undefined; 6157 } 6158 function ReadableStreamDefaultControllerShouldCallPull(controller) { 6159 var stream = controller._controlledReadableStream; 6160 if (stream._state === 'closed' || stream._state === 'errored') { 6161 return false; 6162 } 6163 if (controller._closeRequested === true) { 6164 return false; 6165 } 6166 if (controller._started === false) { 6167 return false; 6168 } 6169 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 6170 return true; 6171 } 6172 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 6173 if (desiredSize > 0) { 6174 return true; 6175 } 6176 return false; 6177 } 6178 function ReadableStreamDefaultControllerClose(controller) { 6179 var stream = controller._controlledReadableStream; 6180 assert(controller._closeRequested === false); 6181 assert(stream._state === 'readable'); 6182 controller._closeRequested = true; 6183 if (controller._queue.length === 0) { 6184 ReadableStreamClose(stream); 6185 } 6186 } 6187 function ReadableStreamDefaultControllerEnqueue(controller, chunk) { 6188 var stream = controller._controlledReadableStream; 6189 assert(controller._closeRequested === false); 6190 assert(stream._state === 'readable'); 6191 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 6192 ReadableStreamFulfillReadRequest(stream, chunk, false); 6193 } else { 6194 var chunkSize = 1; 6195 if (controller._strategySize !== undefined) { 6196 var strategySize = controller._strategySize; 6197 try { 6198 chunkSize = strategySize(chunk); 6199 } catch (chunkSizeE) { 6200 ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 6201 throw chunkSizeE; 6202 } 6203 } 6204 try { 6205 EnqueueValueWithSize(controller, chunk, chunkSize); 6206 } catch (enqueueE) { 6207 ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 6208 throw enqueueE; 6209 } 6210 } 6211 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 6212 return undefined; 6213 } 6214 function ReadableStreamDefaultControllerError(controller, e) { 6215 var stream = controller._controlledReadableStream; 6216 assert(stream._state === 'readable'); 6217 ResetQueue(controller); 6218 ReadableStreamError(stream, e); 6219 } 6220 function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { 6221 if (controller._controlledReadableStream._state === 'readable') { 6222 ReadableStreamDefaultControllerError(controller, e); 6223 } 6224 } 6225 function ReadableStreamDefaultControllerGetDesiredSize(controller) { 6226 var stream = controller._controlledReadableStream; 6227 var state = stream._state; 6228 if (state === 'errored') { 6229 return null; 6230 } 6231 if (state === 'closed') { 6232 return 0; 6233 } 6234 return controller._strategyHWM - controller._queueTotalSize; 6235 } 6236 var ReadableStreamBYOBRequest = function () { 6237 function ReadableStreamBYOBRequest(controller, view) { 6238 _classCallCheck(this, ReadableStreamBYOBRequest); 6239 this._associatedReadableByteStreamController = controller; 6240 this._view = view; 6241 } 6242 _createClass(ReadableStreamBYOBRequest, [{ 6243 key: 'respond', 6244 value: function respond(bytesWritten) { 6245 if (IsReadableStreamBYOBRequest(this) === false) { 6246 throw byobRequestBrandCheckException('respond'); 6247 } 6248 if (this._associatedReadableByteStreamController === undefined) { 6249 throw new TypeError('This BYOB request has been invalidated'); 6250 } 6251 ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); 6252 } 6253 }, {
6254 key: 'respondWithNewView', 6255 value: function respondWithNewView(view) { 6256 if (IsReadableStreamBYOBRequest(this) === false) { 6257 throw byobRequestBrandCheckException('respond'); 6258 } 6259 if (this._associatedReadableByteStreamController === undefined) { 6260 throw new TypeError('This BYOB request has been invalidated'); 6261 } 6262 if (!ArrayBuffer.isView(view)) { 6263 throw new TypeError('You can only respond with array buffer views'); 6264 } 6265 ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); 6266 } 6267 }, { 6268 key: 'view', 6269 get: function get() { 6270 return this._view; 6271 } 6272 }]); 6273 return ReadableStreamBYOBRequest; 6274 }(); 6275 var ReadableByteStreamController = function () { 6276 function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { 6277 _classCallCheck(this, ReadableByteStreamController); 6278 if (IsReadableStream(stream) === false) { 6279 throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); 6280 } 6281 if (stream._readableStreamController !== undefined) { 6282 throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); 6283 } 6284 this._controlledReadableStream = stream; 6285 this._underlyingByteSource = underlyingByteSource; 6286 this._pullAgain = false; 6287 this._pulling = false; 6288 ReadableByteStreamControllerClearPendingPullIntos(this); 6289 this._queue = this._queueTotalSize = undefined; 6290 ResetQueue(this); 6291 this._closeRequested = false; 6292 this._started = false; 6293 this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); 6294 var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; 6295 if (autoAllocateChunkSize !== undefined) { 6296 if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { 6297 throw new RangeError('autoAllocateChunkSize must be a positive integer'); 6298 } 6299 } 6300 this._autoAllocateChunkSize = autoAllocateChunkSize; 6301 this._pendingPullIntos = []; 6302 var controller = this; 6303 var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); 6304 Promise.resolve(startResult).then(function () { 6305 controller._started = true; 6306 assert(controller._pulling === false); 6307 assert(controller._pullAgain === false); 6308 ReadableByteStreamControllerCallPullIfNeeded(controller); 6309 }, function (r) { 6310 if (stream._state === 'readable') { 6311 ReadableByteStreamControllerError(controller, r); 6312 } 6313 }).catch(rethrowAssertionErrorRejection); 6314 } 6315 _createClass(ReadableByteStreamController, [{ 6316 key: 'close', 6317 value: function close() { 6318 if (IsReadableByteStreamController(this) === false) { 6319 throw byteStreamControllerBrandCheckException('close'); 6320 } 6321 if (this._closeRequested === true) { 6322 throw new TypeError('The stream has already been closed; do not close it again!'); 6323 } 6324 var state = this._controlledReadableStream._state; 6325 if (state !== 'readable') { 6326 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 6327 } 6328 ReadableByteStreamControllerClose(this); 6329 } 6330 }, { 6331 key: 'enqueue', 6332 value: function enqueue(chunk) { 6333 if (IsReadableByteStreamController(this) === false) { 6334 throw byteStreamControllerBrandCheckException('enqueue'); 6335 } 6336 if (this._closeRequested === true) { 6337 throw new TypeError('stream is closed or draining'); 6338 } 6339 var state = this._controlledReadableStream._state; 6340 if (state !== 'readable') { 6341 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 6342 } 6343 if (!ArrayBuffer.isView(chunk)) { 6344 throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); 6345 } 6346 ReadableByteStreamControllerEnqueue(this, chunk); 6347 } 6348 }, {
6349 key: 'error', 6350 value: function error(e) { 6351 if (IsReadableByteStreamController(this) === false) { 6352 throw byteStreamControllerBrandCheckException('error'); 6353 } 6354 var stream = this._controlledReadableStream; 6355 if (stream._state !== 'readable') { 6356 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 6357 } 6358 ReadableByteStreamControllerError(this, e); 6359 } 6360 }, { 6361 key: '__cancelSteps', 6362 value: function __cancelSteps(reason) { 6363 if (this._pendingPullIntos.length > 0) { 6364 var firstDescriptor = this._pendingPullIntos[0]; 6365 firstDescriptor.bytesFilled = 0; 6366 } 6367 ResetQueue(this); 6368 return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); 6369 } 6370 }, { 6371 key: '__pullSteps', 6372 value: function __pullSteps() { 6373 var stream = this._controlledReadableStream; 6374 assert(ReadableStreamHasDefaultReader(stream) === true); 6375 if (this._queueTotalSize > 0) { 6376 assert(ReadableStreamGetNumReadRequests(stream) === 0); 6377 var entry = this._queue.shift(); 6378 this._queueTotalSize -= entry.byteLength; 6379 ReadableByteStreamControllerHandleQueueDrain(this); 6380 var view = void 0; 6381 try { 6382 view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); 6383 } catch (viewE) { 6384 return Promise.reject(viewE); 6385 } 6386 return Promise.resolve(CreateIterResultObject(view, false)); 6387 } 6388 var autoAllocateChunkSize = this._autoAllocateChunkSize; 6389 if (autoAllocateChunkSize !== undefined) { 6390 var buffer = void 0; 6391 try { 6392 buffer = new ArrayBuffer(autoAllocateChunkSize); 6393 } catch (bufferE) { 6394 return Promise.reject(bufferE); 6395 } 6396 var pullIntoDescriptor = { 6397 buffer: buffer, 6398 byteOffset: 0, 6399 byteLength: autoAllocateChunkSize, 6400 bytesFilled: 0, 6401 elementSize: 1, 6402 ctor: Uint8Array, 6403 readerType: 'default' 6404 }; 6405 this._pendingPullIntos.push(pullIntoDescriptor); 6406 } 6407 var promise = ReadableStreamAddReadRequest(stream); 6408 ReadableByteStreamControllerCallPullIfNeeded(this); 6409 return promise; 6410 } 6411 }, { 6412 key: 'byobRequest', 6413 get: function get() { 6414 if (IsReadableByteStreamController(this) === false) { 6415 throw byteStreamControllerBrandCheckException('byobRequest'); 6416 } 6417 if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { 6418 var firstDescriptor = this._pendingPullIntos[0]; 6419 var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); 6420 this._byobRequest = new ReadableStreamBYOBRequest(this, view); 6421 } 6422 return this._byobRequest; 6423 } 6424 }, { 6425 key: 'desiredSize', 6426 get: function get() { 6427 if (IsReadableByteStreamController(this) === false) { 6428 throw byteStreamControllerBrandCheckException('desiredSize'); 6429 } 6430 return ReadableByteStreamControllerGetDesiredSize(this); 6431 } 6432 }]); 6433 return ReadableByteStreamController; 6434 }(); 6435 function IsReadableByteStreamController(x) { 6436 if (!typeIsObject(x)) { 6437 return false; 6438 } 6439 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { 6440 return false; 6441 } 6442 return true; 6443 } 6444 function IsReadableStreamBYOBRequest(x) { 6445 if (!typeIsObject(x)) { 6446 return false; 6447 } 6448 if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { 6449 return false; 6450 } 6451 return true; 6452 } 6453 function ReadableByteStreamControllerCallPullIfNeeded(controller) { 6454 var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); 6455 if (shouldPull === false) { 6456 return undefined; 6457 } 6458 if (controller._pulling === true) { 6459 controller._pullAgain = true; 6460 return undefined; 6461 } 6462 assert(controller._pullAgain === false); 6463 controller._pulling = true; 6464 var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); 6465 pullPromise.then(function () { 6466 controller._pulling = false;
6467 if (controller._pullAgain === true) { 6468 controller._pullAgain = false; 6469 ReadableByteStreamControllerCallPullIfNeeded(controller); 6470 } 6471 }, function (e) { 6472 if (controller._controlledReadableStream._state === 'readable') { 6473 ReadableByteStreamControllerError(controller, e); 6474 } 6475 }).catch(rethrowAssertionErrorRejection); 6476 return undefined; 6477 } 6478 function ReadableByteStreamControllerClearPendingPullIntos(controller) { 6479 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 6480 controller._pendingPullIntos = []; 6481 } 6482 function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { 6483 assert(stream._state !== 'errored', 'state must not be errored'); 6484 var done = false; 6485 if (stream._state === 'closed') { 6486 assert(pullIntoDescriptor.bytesFilled === 0); 6487 done = true; 6488 } 6489 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 6490 if (pullIntoDescriptor.readerType === 'default') { 6491 ReadableStreamFulfillReadRequest(stream, filledView, done); 6492 } else { 6493 assert(pullIntoDescriptor.readerType === 'byob'); 6494 ReadableStreamFulfillReadIntoRequest(stream, filledView, done); 6495 } 6496 } 6497 function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { 6498 var bytesFilled = pullIntoDescriptor.bytesFilled; 6499 var elementSize = pullIntoDescriptor.elementSize; 6500 assert(bytesFilled <= pullIntoDescriptor.byteLength); 6501 assert(bytesFilled % elementSize === 0); 6502 return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); 6503 } 6504 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { 6505 controller._queue.push({ 6506 buffer: buffer, 6507 byteOffset: byteOffset, 6508 byteLength: byteLength 6509 }); 6510 controller._queueTotalSize += byteLength; 6511 } 6512 function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { 6513 var elementSize = pullIntoDescriptor.elementSize; 6514 var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; 6515 var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); 6516 var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; 6517 var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; 6518 var totalBytesToCopyRemaining = maxBytesToCopy; 6519 var ready = false; 6520 if (maxAlignedBytes > currentAlignedBytes) { 6521 totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; 6522 ready = true; 6523 } 6524 var queue = controller._queue; 6525 while (totalBytesToCopyRemaining > 0) { 6526 var headOfQueue = queue[0]; 6527 var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); 6528 var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 6529 ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); 6530 if (headOfQueue.byteLength === bytesToCopy) { 6531 queue.shift(); 6532 } else { 6533 headOfQueue.byteOffset += bytesToCopy; 6534 headOfQueue.byteLength -= bytesToCopy; 6535 } 6536 controller._queueTotalSize -= bytesToCopy; 6537 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); 6538 totalBytesToCopyRemaining -= bytesToCopy; 6539 } 6540 if (ready === false) { 6541 assert(controller._queueTotalSize === 0, 'queue must be empty'); 6542 assert(pullIntoDescriptor.bytesFilled > 0); 6543 assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); 6544 } 6545 return ready; 6546 } 6547 function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { 6548 assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); 6549 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 6550 pullIntoDescriptor.bytesFilled += size; 6551 } 6552 function ReadableByteStreamControllerHandleQueueDrain(controller) { 6553 assert(controller._controlledReadableStream._state === 'readable'); 6554 if (controller._queueTotalSize === 0 && controller._closeRequested === true) { 6555 ReadableStreamClose(controller._controlledReadableStream); 6556 } else { 6557 ReadableByteStreamControllerCallPullIfNeeded(controller); 6558 } 6559 } 6560 function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { 6561 if (controller._byobRequest === undefined) { 6562 return; 6563 } 6564 controller._byobRequest._associatedReadableByteStreamController = undefined; 6565 controller._byobRequest._view = undefined; 6566 controller._byobRequest = undefined; 6567 } 6568 function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { 6569 assert(controller._closeRequested === false); 6570 while (controller._pendingPullIntos.length > 0) { 6571 if (controller._queueTotalSize === 0) { 6572 return; 6573 } 6574 var pullIntoDescriptor = controller._pendingPullIntos[0]; 6575 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 6576 ReadableByteStreamControllerShiftPendingPullInto(controller); 6577 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 6578 } 6579 } 6580 } 6581 function ReadableByteStreamControllerPullInto(controller, view) { 6582 var stream = controller._controlledReadableStream; 6583 var elementSize = 1; 6584 if (view.constructor !== DataView) { 6585 elementSize = view.constructor.BYTES_PER_ELEMENT; 6586 } 6587 var ctor = view.constructor; 6588 var pullIntoDescriptor = { 6589 buffer: view.buffer, 6590 byteOffset: view.byteOffset, 6591 byteLength: view.byteLength, 6592 bytesFilled: 0, 6593 elementSize: elementSize, 6594 ctor: ctor, 6595 readerType: 'byob' 6596 }; 6597 if (controller._pendingPullIntos.length > 0) { 6598 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 6599 controller._pendingPullIntos.push(pullIntoDescriptor); 6600 return ReadableStreamAddReadIntoRequest(stream); 6601 } 6602 if (stream._state === 'closed') { 6603 var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); 6604 return Promise.resolve(CreateIterResultObject(emptyView, true)); 6605 } 6606 if (controller._queueTotalSize > 0) { 6607 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 6608 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 6609 ReadableByteStreamControllerHandleQueueDrain(controller); 6610 return Promise.resolve(CreateIterResultObject(filledView, false)); 6611 } 6612 if (controller._closeRequested === true) { 6613 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 6614 ReadableByteStreamControllerError(controller, e); 6615 return Promise.reject(e); 6616 } 6617 } 6618 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 6619 controller._pendingPullIntos.push(pullIntoDescriptor); 6620 var promise = ReadableStreamAddReadIntoRequest(stream); 6621 ReadableByteStreamControllerCallPullIfNeeded(controller); 6622 return promise; 6623 } 6624 function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { 6625 firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); 6626 assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); 6627 var stream = controller._controlledReadableStream;
6628 if (ReadableStreamHasBYOBReader(stream) === true) { 6629 while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { 6630 var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); 6631 ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); 6632 } 6633 } 6634 } 6635 function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { 6636 if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { 6637 throw new RangeError('bytesWritten out of range'); 6638 } 6639 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); 6640 if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { 6641 return; 6642 } 6643 ReadableByteStreamControllerShiftPendingPullInto(controller); 6644 var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; 6645 if (remainderSize > 0) { 6646 var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 6647 var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); 6648 ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); 6649 } 6650 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 6651 pullIntoDescriptor.bytesFilled -= remainderSize; 6652 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 6653 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 6654 } 6655 function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { 6656 var firstDescriptor = controller._pendingPullIntos[0]; 6657 var stream = controller._controlledReadableStream; 6658 if (stream._state === 'closed') { 6659 if (bytesWritten !== 0) { 6660 throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); 6661 } 6662 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); 6663 } else { 6664 assert(stream._state === 'readable'); 6665 ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); 6666 } 6667 } 6668 function ReadableByteStreamControllerShiftPendingPullInto(controller) { 6669 var descriptor = controller._pendingPullIntos.shift(); 6670 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 6671 return descriptor; 6672 } 6673 function ReadableByteStreamControllerShouldCallPull(controller) { 6674 var stream = controller._controlledReadableStream; 6675 if (stream._state !== 'readable') { 6676 return false; 6677 } 6678 if (controller._closeRequested === true) { 6679 return false; 6680 } 6681 if (controller._started === false) { 6682 return false; 6683 } 6684 if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 6685 return true; 6686 } 6687 if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { 6688 return true; 6689 } 6690 if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { 6691 return true; 6692 } 6693 return false; 6694 } 6695 function ReadableByteStreamControllerClose(controller) { 6696 var stream = controller._controlledReadableStream; 6697 assert(controller._closeRequested === false); 6698 assert(stream._state === 'readable'); 6699 if (controller._queueTotalSize > 0) { 6700 controller._closeRequested = true; 6701 return; 6702 } 6703 if (controller._pendingPullIntos.length > 0) { 6704 var firstPendingPullInto = controller._pendingPullIntos[0]; 6705 if (firstPendingPullInto.bytesFilled > 0) { 6706 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 6707 ReadableByteStreamControllerError(controller, e); 6708 throw e; 6709 } 6710 } 6711 ReadableStreamClose(stream); 6712 } 6713 function ReadableByteStreamControllerEnqueue(controller, chunk) { 6714 var stream = controller._controlledReadableStream; 6715 assert(controller._closeRequested === false); 6716 assert(stream._state === 'readable'); 6717 var buffer = chunk.buffer; 6718 var byteOffset = chunk.byteOffset; 6719 var byteLength = chunk.byteLength; 6720 var transferredBuffer = TransferArrayBuffer(buffer);
6721 if (ReadableStreamHasDefaultReader(stream) === true) { 6722 if (ReadableStreamGetNumReadRequests(stream) === 0) { 6723 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 6724 } else { 6725 assert(controller._queue.length === 0); 6726 var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); 6727 ReadableStreamFulfillReadRequest(stream, transferredView, false); 6728 } 6729 } else if (ReadableStreamHasBYOBReader(stream) === true) { 6730 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 6731 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 6732 } else { 6733 assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); 6734 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 6735 } 6736 } 6737 function ReadableByteStreamControllerError(controller, e) { 6738 var stream = controller._controlledReadableStream; 6739 assert(stream._state === 'readable'); 6740 ReadableByteStreamControllerClearPendingPullIntos(controller); 6741 ResetQueue(controller); 6742 ReadableStreamError(stream, e); 6743 } 6744 function ReadableByteStreamControllerGetDesiredSize(controller) { 6745 var stream = controller._controlledReadableStream; 6746 var state = stream._state; 6747 if (state === 'errored') { 6748 return null; 6749 } 6750 if (state === 'closed') { 6751 return 0; 6752 } 6753 return controller._strategyHWM - controller._queueTotalSize; 6754 } 6755 function ReadableByteStreamControllerRespond(controller, bytesWritten) { 6756 bytesWritten = Number(bytesWritten); 6757 if (IsFiniteNonNegativeNumber(bytesWritten) === false) { 6758 throw new RangeError('bytesWritten must be a finite'); 6759 } 6760 assert(controller._pendingPullIntos.length > 0); 6761 ReadableByteStreamControllerRespondInternal(controller, bytesWritten); 6762 } 6763 function ReadableByteStreamControllerRespondWithNewView(controller, view) { 6764 assert(controller._pendingPullIntos.length > 0); 6765 var firstDescriptor = controller._pendingPullIntos[0]; 6766 if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { 6767 throw new RangeError('The region specified by view does not match byobRequest'); 6768 } 6769 if (firstDescriptor.byteLength !== view.byteLength) { 6770 throw new RangeError('The buffer of view has different capacity than byobRequest'); 6771 } 6772 firstDescriptor.buffer = view.buffer; 6773 ReadableByteStreamControllerRespondInternal(controller, view.byteLength); 6774 } 6775 function streamBrandCheckException(name) { 6776 return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); 6777 } 6778 function readerLockException(name) { 6779 return new TypeError('Cannot ' + name + ' a stream using a released reader'); 6780 } 6781 function defaultReaderBrandCheckException(name) { 6782 return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); 6783 } 6784 function defaultReaderClosedPromiseInitialize(reader) { 6785 reader._closedPromise = new Promise(function (resolve, reject) { 6786 reader._closedPromise_resolve = resolve; 6787 reader._closedPromise_reject = reject; 6788 }); 6789 } 6790 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { 6791 reader._closedPromise = Promise.reject(reason); 6792 reader._closedPromise_resolve = undefined; 6793 reader._closedPromise_reject = undefined; 6794 } 6795 function defaultReaderClosedPromiseInitializeAsResolved(reader) { 6796 reader._closedPromise = Promise.resolve(undefined); 6797 reader._closedPromise_resolve = undefined; 6798 reader._closedPromise_reject = undefined; 6799 } 6800 function defaultReaderClosedPromiseReject(reader, reason) { 6801 assert(reader._closedPromise_resolve !== undefined); 6802 assert(reader._closedPromise_reject !== undefined); 6803 reader._closedPromise_reject(reason); 6804 reader._closedPromise_resolve = undefined; 6805 reader._closedPromise_reject = undefined; 6806 } 6807 function defaultReaderClosedPromiseResetToRejected(reader, reason) { 6808 assert(reader._closedPromise_resolve === undefined); 6809 assert(reader._closedPromise_reject === undefined); 6810 reader._closedPromise = Promise.reject(reason); 6811 } 6812 function defaultReaderClosedPromiseResolve(reader) { 6813 assert(reader._closedPromise_resolve !== undefined); 6814 assert(reader._closedPromise_reject !== undefined); 6815 reader._closedPromise_resolve(undefined); 6816 reader._closedPromise_resolve = undefined; 6817 reader._closedPromise_reject = undefined; 6818 } 6819 function byobReaderBrandCheckException(name) { 6820 return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); 6821 } 6822 function defaultControllerBrandCheckException(name) { 6823 return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); 6824 } 6825 function byobRequestBrandCheckException(name) { 6826 return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); 6827 } 6828 function byteStreamControllerBrandCheckException(name) { 6829 return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); 6830 } 6831 function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { 6832 try { 6833 Promise.prototype.then.call(promise, undefined, function () {}); 6834 } catch (e) {} 6835 } 6836}, function (module, exports, __w_pdfjs_require__) { 6837 "use strict"; 6838 6839 var transformStream = __w_pdfjs_require__(6); 6840 var readableStream = __w_pdfjs_require__(4); 6841 var writableStream = __w_pdfjs_require__(2); 6842 exports.TransformStream = transformStream.TransformStream; 6843 exports.ReadableStream = readableStream.ReadableStream; 6844 exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; 6845 exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; 6846 exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; 6847 exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; 6848 exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; 6849 exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; 6850 exports.IsWritableStream = writableStream.IsWritableStream; 6851 exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; 6852 exports.WritableStream = writableStream.WritableStream; 6853 exports.WritableStreamAbort = writableStream.WritableStreamAbort; 6854 exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; 6855 exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; 6856 exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; 6857 exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; 6858}, function (module, exports, __w_pdfjs_require__) { 6859 "use strict"; 6860 6861 var _createClass = function () { 6862 function defineProperties(target, props) { 6863 for (var i = 0; i < props.length; i++) { 6864 var descriptor = props[i]; 6865 descriptor.enumerable = descriptor.enumerable || false; 6866 descriptor.configurable = true; 6867 if ("value" in descriptor) descriptor.writable = true; 6868 Object.defineProperty(target, descriptor.key, descriptor); 6869 } 6870 } 6871 return function (Constructor, protoProps, staticProps) { 6872 if (protoProps) defineProperties(Constructor.prototype, protoProps); 6873 if (staticProps) defineProperties(Constructor, staticProps); 6874 return Constructor; 6875 }; 6876 }(); 6877 function _classCallCheck(instance, Constructor) { 6878 if (!(instance instanceof Constructor)) { 6879 throw new TypeError("Cannot call a class as a function"); 6880 } 6881 } 6882 var _require = __w_pdfjs_require__(1), 6883 assert = _require.assert; 6884 var _require2 = __w_pdfjs_require__(0), 6885 InvokeOrNoop = _require2.InvokeOrNoop, 6886 PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, 6887 PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, 6888 typeIsObject = _require2.typeIsObject; 6889 var _require3 = __w_pdfjs_require__(4), 6890 ReadableStream = _require3.ReadableStream, 6891 ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, 6892 ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, 6893 ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, 6894 ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; 6895 var _require4 = __w_pdfjs_require__(2), 6896 WritableStream = _require4.WritableStream, 6897 WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; 6898 function TransformStreamCloseReadable(transformStream) { 6899 if (transformStream._errored === true) { 6900 throw new TypeError('TransformStream is already errored'); 6901 } 6902 if (transformStream._readableClosed === true) { 6903 throw new TypeError('Readable side is already closed'); 6904 } 6905 TransformStreamCloseReadableInternal(transformStream); 6906 } 6907 function TransformStreamEnqueueToReadable(transformStream, chunk) { 6908 if (transformStream._errored === true) { 6909 throw new TypeError('TransformStream is already errored'); 6910 } 6911 if (transformStream._readableClosed === true) { 6912 throw new TypeError('Readable side is already closed'); 6913 } 6914 var controller = transformStream._readableController; 6915 try { 6916 ReadableStreamDefaultControllerEnqueue(controller, chunk); 6917 } catch (e) { 6918 transformStream._readableClosed = true; 6919 TransformStreamErrorIfNeeded(transformStream, e); 6920 throw transformStream._storedError; 6921 } 6922 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 6923 var maybeBackpressure = desiredSize <= 0; 6924 if (maybeBackpressure === true && transformStream._backpressure === false) { 6925 TransformStreamSetBackpressure(transformStream, true); 6926 } 6927 } 6928 function TransformStreamError(transformStream, e) { 6929 if (transformStream._errored === true) { 6930 throw new TypeError('TransformStream is already errored'); 6931 } 6932 TransformStreamErrorInternal(transformStream, e); 6933 } 6934 function TransformStreamCloseReadableInternal(transformStream) { 6935 assert(transformStream._errored === false); 6936 assert(transformStream._readableClosed === false); 6937 try { 6938 ReadableStreamDefaultControllerClose(transformStream._readableController); 6939 } catch (e) { 6940 assert(false); 6941 } 6942 transformStream._readableClosed = true; 6943 } 6944 function TransformStreamErrorIfNeeded(transformStream, e) { 6945 if (transformStream._errored === false) { 6946 TransformStreamErrorInternal(transformStream, e); 6947 } 6948 } 6949 function TransformStreamErrorInternal(transformStream, e) { 6950 assert(transformStream._errored === false); 6951 transformStream._errored = true; 6952 transformStream._storedError = e; 6953 if (transformStream._writableDone === false) { 6954 WritableStreamDefaultControllerError(transformStream._writableController, e); 6955 } 6956 if (transformStream._readableClosed === false) { 6957 ReadableStreamDefaultControllerError(transformStream._readableController, e); 6958 } 6959 } 6960 function TransformStreamReadableReadyPromise(transformStream) { 6961 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 6962 if (transformStream._backpressure === false) { 6963 return Promise.resolve(); 6964 } 6965 assert(transformStream._backpressure === true, '_backpressure should have been initialized'); 6966 return transformStream._backpressureChangePromise; 6967 } 6968 function TransformStreamSetBackpressure(transformStream, backpressure) { 6969 assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); 6970 if (transformStream._backpressureChangePromise !== undefined) { 6971 transformStream._backpressureChangePromise_resolve(backpressure); 6972 } 6973 transformStream._backpressureChangePromise = new Promise(function (resolve) { 6974 transformStream._backpressureChangePromise_resolve = resolve; 6975 }); 6976 transformStream._backpressureChangePromise.then(function (resolution) { 6977 assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); 6978 }); 6979 transformStream._backpressure = backpressure; 6980 } 6981 function TransformStreamDefaultTransform(chunk, transformStreamController) { 6982 var transformStream = transformStreamController._controlledTransformStream; 6983 TransformStreamEnqueueToReadable(transformStream, chunk); 6984 return Promise.resolve(); 6985 } 6986 function TransformStreamTransform(transformStream, chunk) { 6987 assert(transformStream._errored === false); 6988 assert(transformStream._transforming === false); 6989 assert(transformStream._backpressure === false); 6990 transformStream._transforming = true; 6991 var transformer = transformStream._transformer; 6992 var controller = transformStream._transformStreamController; 6993 var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); 6994 return transformPromise.then(function () { 6995 transformStream._transforming = false;
6996 return TransformStreamReadableReadyPromise(transformStream); 6997 }, function (e) { 6998 TransformStreamErrorIfNeeded(transformStream, e); 6999 return Promise.reject(e); 7000 }); 7001 } 7002 function IsTransformStreamDefaultController(x) { 7003 if (!typeIsObject(x)) { 7004 return false; 7005 } 7006 if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { 7007 return false; 7008 } 7009 return true; 7010 } 7011 function IsTransformStream(x) { 7012 if (!typeIsObject(x)) { 7013 return false; 7014 } 7015 if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { 7016 return false; 7017 } 7018 return true; 7019 } 7020 var TransformStreamSink = function () { 7021 function TransformStreamSink(transformStream, startPromise) { 7022 _classCallCheck(this, TransformStreamSink); 7023 this._transformStream = transformStream; 7024 this._startPromise = startPromise; 7025 } 7026 _createClass(TransformStreamSink, [{ 7027 key: 'start', 7028 value: function start(c) { 7029 var transformStream = this._transformStream; 7030 transformStream._writableController = c; 7031 return this._startPromise.then(function () { 7032 return TransformStreamReadableReadyPromise(transformStream); 7033 }); 7034 } 7035 }, { 7036 key: 'write', 7037 value: function write(chunk) { 7038 var transformStream = this._transformStream; 7039 return TransformStreamTransform(transformStream, chunk); 7040 } 7041 }, { 7042 key: 'abort', 7043 value: function abort() { 7044 var transformStream = this._transformStream; 7045 transformStream._writableDone = true; 7046 TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); 7047 } 7048 }, { 7049 key: 'close', 7050 value: function close() { 7051 var transformStream = this._transformStream; 7052 assert(transformStream._transforming === false); 7053 transformStream._writableDone = true; 7054 var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); 7055 return flushPromise.then(function () { 7056 if (transformStream._errored === true) { 7057 return Promise.reject(transformStream._storedError); 7058 } 7059 if (transformStream._readableClosed === false) { 7060 TransformStreamCloseReadableInternal(transformStream); 7061 } 7062 return Promise.resolve(); 7063 }).catch(function (r) { 7064 TransformStreamErrorIfNeeded(transformStream, r); 7065 return Promise.reject(transformStream._storedError); 7066 }); 7067 } 7068 }]); 7069 return TransformStreamSink; 7070 }(); 7071 var TransformStreamSource = function () { 7072 function TransformStreamSource(transformStream, startPromise) { 7073 _classCallCheck(this, TransformStreamSource); 7074 this._transformStream = transformStream; 7075 this._startPromise = startPromise; 7076 } 7077 _createClass(TransformStreamSource, [{ 7078 key: 'start', 7079 value: function start(c) { 7080 var transformStream = this._transformStream; 7081 transformStream._readableController = c; 7082 return this._startPromise.then(function () { 7083 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 7084 if (transformStream._backpressure === true) { 7085 return Promise.resolve(); 7086 } 7087 assert(transformStream._backpressure === false, '_backpressure should have been initialized'); 7088 return transformStream._backpressureChangePromise; 7089 }); 7090 } 7091 }, { 7092 key: 'pull', 7093 value: function pull() { 7094 var transformStream = this._transformStream; 7095 assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); 7096 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 7097 TransformStreamSetBackpressure(transformStream, false); 7098 return transformStream._backpressureChangePromise; 7099 } 7100 }, { 7101 key: 'cancel', 7102 value: function cancel() { 7103 var transformStream = this._transformStream; 7104 transformStream._readableClosed = true; 7105 TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); 7106 } 7107 }]); 7108 return TransformStreamSource; 7109 }(); 7110 var TransformStreamDefaultController = function () { 7111 function TransformStreamDefaultController(transformStream) { 7112 _classCallCheck(this, TransformStreamDefaultController); 7113 if (IsTransformStream(transformStream) === false) { 7114 throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); 7115 } 7116 if (transformStream._transformStreamController !== undefined) { 7117 throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); 7118 } 7119 this._controlledTransformStream = transformStream; 7120 } 7121 _createClass(TransformStreamDefaultController, [{ 7122 key: 'enqueue', 7123 value: function enqueue(chunk) { 7124 if (IsTransformStreamDefaultController(this) === false) { 7125 throw defaultControllerBrandCheckException('enqueue'); 7126 } 7127 TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); 7128 } 7129 }, {
7130 key: 'close', 7131 value: function close() { 7132 if (IsTransformStreamDefaultController(this) === false) { 7133 throw defaultControllerBrandCheckException('close'); 7134 } 7135 TransformStreamCloseReadable(this._controlledTransformStream); 7136 } 7137 }, { 7138 key: 'error', 7139 value: function error(reason) { 7140 if (IsTransformStreamDefaultController(this) === false) { 7141 throw defaultControllerBrandCheckException('error'); 7142 } 7143 TransformStreamError(this._controlledTransformStream, reason); 7144 } 7145 }, { 7146 key: 'desiredSize', 7147 get: function get() { 7148 if (IsTransformStreamDefaultController(this) === false) { 7149 throw defaultControllerBrandCheckException('desiredSize'); 7150 } 7151 var transformStream = this._controlledTransformStream; 7152 var readableController = transformStream._readableController; 7153 return ReadableStreamDefaultControllerGetDesiredSize(readableController); 7154 } 7155 }]); 7156 return TransformStreamDefaultController; 7157 }(); 7158 var TransformStream = function () { 7159 function TransformStream() { 7160 var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 7161 _classCallCheck(this, TransformStream); 7162 this._transformer = transformer; 7163 var readableStrategy = transformer.readableStrategy, 7164 writableStrategy = transformer.writableStrategy; 7165 this._transforming = false; 7166 this._errored = false; 7167 this._storedError = undefined; 7168 this._writableController = undefined; 7169 this._readableController = undefined; 7170 this._transformStreamController = undefined; 7171 this._writableDone = false; 7172 this._readableClosed = false; 7173 this._backpressure = undefined; 7174 this._backpressureChangePromise = undefined; 7175 this._backpressureChangePromise_resolve = undefined; 7176 this._transformStreamController = new TransformStreamDefaultController(this); 7177 var startPromise_resolve = void 0; 7178 var startPromise = new Promise(function (resolve) { 7179 startPromise_resolve = resolve; 7180 }); 7181 var source = new TransformStreamSource(this, startPromise); 7182 this._readable = new ReadableStream(source, readableStrategy); 7183 var sink = new TransformStreamSink(this, startPromise); 7184 this._writable = new WritableStream(sink, writableStrategy); 7185 assert(this._writableController !== undefined); 7186 assert(this._readableController !== undefined); 7187 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); 7188 TransformStreamSetBackpressure(this, desiredSize <= 0); 7189 var transformStream = this; 7190 var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); 7191 startPromise_resolve(startResult); 7192 startPromise.catch(function (e) { 7193 if (transformStream._errored === false) { 7194 transformStream._errored = true; 7195 transformStream._storedError = e; 7196 } 7197 }); 7198 } 7199 _createClass(TransformStream, [{ 7200 key: 'readable', 7201 get: function get() { 7202 if (IsTransformStream(this) === false) { 7203 throw streamBrandCheckException('readable'); 7204 } 7205 return this._readable; 7206 } 7207 }, { 7208 key: 'writable', 7209 get: function get() { 7210 if (IsTransformStream(this) === false) { 7211 throw streamBrandCheckException('writable'); 7212 } 7213 return this._writable; 7214 } 7215 }]); 7216 return TransformStream; 7217 }(); 7218 module.exports = { TransformStream: TransformStream }; 7219 function defaultControllerBrandCheckException(name) { 7220 return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); 7221 } 7222 function streamBrandCheckException(name) { 7223 return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); 7224 } 7225}, function (module, exports, __w_pdfjs_require__) { 7226 module.exports = __w_pdfjs_require__(5); 7227}])); 7228 7229/***/ }), 7230/* 127 */ 7231/***/ (function(module, exports, __w_pdfjs_require__) { 7232 7233"use strict"; 7234 7235 7236var _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; }; 7237 7238{ 7239 var isURLSupported = false;
7240 try { 7241 if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { 7242 var u = new URL('b', 'http://a'); 7243 u.pathname = 'c%20d'; 7244 isURLSupported = u.href === 'http://a/c%20d'; 7245 } 7246 } catch (ex) {} 7247 if (isURLSupported) { 7248 exports.URL = URL; 7249 } else { 7250 var PolyfillURL = __w_pdfjs_require__(128).URL; 7251 var OriginalURL = __w_pdfjs_require__(3).URL; 7252 if (OriginalURL) { 7253 PolyfillURL.createObjectURL = function (blob) { 7254 return OriginalURL.createObjectURL.apply(OriginalURL, arguments); 7255 }; 7256 PolyfillURL.revokeObjectURL = function (url) { 7257 OriginalURL.revokeObjectURL(url); 7258 }; 7259 } 7260 exports.URL = PolyfillURL; 7261 } 7262} 7263 7264/***/ }), 7265/* 128 */ 7266/***/ (function(module, exports, __w_pdfjs_require__) { 7267 7268"use strict"; 7269 7270 7271(function URLConstructorClosure() { 7272 'use strict'; 7273 7274 var relative = Object.create(null); 7275 relative['ftp'] = 21; 7276 relative['file'] = 0; 7277 relative['gopher'] = 70; 7278 relative['http'] = 80; 7279 relative['https'] = 443; 7280 relative['ws'] = 80; 7281 relative['wss'] = 443; 7282 var relativePathDotMapping = Object.create(null); 7283 relativePathDotMapping['%2e'] = '.'; 7284 relativePathDotMapping['.%2e'] = '..'; 7285 relativePathDotMapping['%2e.'] = '..'; 7286 relativePathDotMapping['%2e%2e'] = '..'; 7287 function isRelativeScheme(scheme) { 7288 return relative[scheme] !== undefined; 7289 }
7290 function invalid() { 7291 clear.call(this); 7292 this._isInvalid = true; 7293 } 7294 function IDNAToASCII(h) { 7295 if (h === '') { 7296 invalid.call(this); 7297 } 7298 return h.toLowerCase(); 7299 } 7300 function percentEscape(c) { 7301 var unicode = c.charCodeAt(0); 7302 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { 7303 return c; 7304 } 7305 return encodeURIComponent(c); 7306 } 7307 function percentEscapeQuery(c) { 7308 var unicode = c.charCodeAt(0); 7309 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { 7310 return c; 7311 } 7312 return encodeURIComponent(c); 7313 } 7314 var EOF, 7315 ALPHA = /[a-zA-Z]/, 7316 ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; 7317 function parse(input, stateOverride, base) { 7318 function err(message) { 7319 errors.push(message); 7320 } 7321 var state = stateOverride || 'scheme start', 7322 cursor = 0, 7323 buffer = '', 7324 seenAt = false, 7325 seenBracket = false, 7326 errors = []; 7327 loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { 7328 var c = input[cursor]; 7329 switch (state) { 7330 case 'scheme start': 7331 if (c && ALPHA.test(c)) { 7332 buffer += c.toLowerCase(); 7333 state = 'scheme'; 7334 } else if (!stateOverride) { 7335 buffer = ''; 7336 state = 'no scheme'; 7337 continue; 7338 } else { 7339 err('Invalid scheme.'); 7340 break loop; 7341 } 7342 break; 7343 case 'scheme': 7344 if (c && ALPHANUMERIC.test(c)) { 7345 buffer += c.toLowerCase(); 7346 } else if (c === ':') { 7347 this._scheme = buffer; 7348 buffer = ''; 7349 if (stateOverride) { 7350 break loop; 7351 } 7352 if (isRelativeScheme(this._scheme)) { 7353 this._isRelative = true; 7354 } 7355 if (this._scheme === 'file') { 7356 state = 'relative'; 7357 } else if (this._isRelative && base && base._scheme === this._scheme) { 7358 state = 'relative or authority'; 7359 } else if (this._isRelative) { 7360 state = 'authority first slash'; 7361 } else { 7362 state = 'scheme data'; 7363 } 7364 } else if (!stateOverride) { 7365 buffer = ''; 7366 cursor = 0; 7367 state = 'no scheme'; 7368 continue; 7369 } else if (c === EOF) { 7370 break loop; 7371 } else { 7372 err('Code point not allowed in scheme: ' + c); 7373 break loop; 7374 } 7375 break; 7376 case 'scheme data': 7377 if (c === '?') { 7378 this._query = '?'; 7379 state = 'query'; 7380 } else if (c === '#') { 7381 this._fragment = '#'; 7382 state = 'fragment'; 7383 } else { 7384 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 7385 this._schemeData += percentEscape(c); 7386 } 7387 } 7388 break; 7389 case 'no scheme': 7390 if (!base || !isRelativeScheme(base._scheme)) { 7391 err('Missing scheme.'); 7392 invalid.call(this); 7393 } else { 7394 state = 'relative'; 7395 continue; 7396 } 7397 break; 7398 case 'relative or authority': 7399 if (c === '/' && input[cursor + 1] === '/') { 7400 state = 'authority ignore slashes'; 7401 } else { 7402 err('Expected /, got: ' + c); 7403 state = 'relative'; 7404 continue; 7405 } 7406 break; 7407 case 'relative': 7408 this._isRelative = true; 7409 if (this._scheme !== 'file') { 7410 this._scheme = base._scheme; 7411 } 7412 if (c === EOF) { 7413 this._host = base._host; 7414 this._port = base._port; 7415 this._path = base._path.slice(); 7416 this._query = base._query; 7417 this._username = base._username; 7418 this._password = base._password; 7419 break loop; 7420 } else if (c === '/' || c === '\\') { 7421 if (c === '\\') { 7422 err('\\ is an invalid code point.'); 7423 } 7424 state = 'relative slash'; 7425 } else if (c === '?') { 7426 this._host = base._host; 7427 this._port = base._port; 7428 this._path = base._path.slice(); 7429 this._query = '?'; 7430 this._username = base._username; 7431 this._password = base._password; 7432 state = 'query'; 7433 } else if (c === '#') { 7434 this._host = base._host; 7435 this._port = base._port; 7436 this._path = base._path.slice(); 7437 this._query = base._query; 7438 this._fragment = '#'; 7439 this._username = base._username; 7440 this._password = base._password; 7441 state = 'fragment'; 7442 } else { 7443 var nextC = input[cursor + 1]; 7444 var nextNextC = input[cursor + 2]; 7445 if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { 7446 this._host = base._host; 7447 this._port = base._port; 7448 this._username = base._username; 7449 this._password = base._password; 7450 this._path = base._path.slice(); 7451 this._path.pop(); 7452 } 7453 state = 'relative path'; 7454 continue; 7455 } 7456 break; 7457 case 'relative slash': 7458 if (c === '/' || c === '\\') { 7459 if (c === '\\') {
7460 err('\\ is an invalid code point.'); 7461 } 7462 if (this._scheme === 'file') { 7463 state = 'file host'; 7464 } else { 7465 state = 'authority ignore slashes'; 7466 } 7467 } else { 7468 if (this._scheme !== 'file') { 7469 this._host = base._host; 7470 this._port = base._port; 7471 this._username = base._username; 7472 this._password = base._password; 7473 } 7474 state = 'relative path'; 7475 continue; 7476 } 7477 break; 7478 case 'authority first slash': 7479 if (c === '/') { 7480 state = 'authority second slash'; 7481 } else { 7482 err('Expected \'/\', got: ' + c); 7483 state = 'authority ignore slashes'; 7484 continue; 7485 } 7486 break; 7487 case 'authority second slash': 7488 state = 'authority ignore slashes'; 7489 if (c !== '/') { 7490 err('Expected \'/\', got: ' + c); 7491 continue; 7492 } 7493 break; 7494 case 'authority ignore slashes': 7495 if (c !== '/' && c !== '\\') { 7496 state = 'authority'; 7497 continue; 7498 } else { 7499 err('Expected authority, got: ' + c); 7500 } 7501 break; 7502 case 'authority': 7503 if (c === '@') { 7504 if (seenAt) { 7505 err('@ already seen.'); 7506 buffer += '%40'; 7507 } 7508 seenAt = true; 7509 for (var i = 0; i < buffer.length; i++) { 7510 var cp = buffer[i]; 7511 if (cp === '\t' || cp === '\n' || cp === '\r') { 7512 err('Invalid whitespace in authority.'); 7513 continue; 7514 } 7515 if (cp === ':' && this._password === null) { 7516 this._password = ''; 7517 continue; 7518 } 7519 var tempC = percentEscape(cp); 7520 if (this._password !== null) { 7521 this._password += tempC; 7522 } else { 7523 this._username += tempC; 7524 } 7525 } 7526 buffer = ''; 7527 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 7528 cursor -= buffer.length; 7529 buffer = ''; 7530 state = 'host'; 7531 continue; 7532 } else { 7533 buffer += c; 7534 } 7535 break; 7536 case 'file host': 7537 if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 7538 if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { 7539 state = 'relative path'; 7540 } else if (buffer.length === 0) { 7541 state = 'relative path start'; 7542 } else { 7543 this._host = IDNAToASCII.call(this, buffer); 7544 buffer = ''; 7545 state = 'relative path start'; 7546 } 7547 continue; 7548 } else if (c === '\t' || c === '\n' || c === '\r') { 7549 err('Invalid whitespace in file host.'); 7550 } else { 7551 buffer += c; 7552 } 7553 break; 7554 case 'host': 7555 case 'hostname': 7556 if (c === ':' && !seenBracket) { 7557 this._host = IDNAToASCII.call(this, buffer); 7558 buffer = ''; 7559 state = 'port'; 7560 if (stateOverride === 'hostname') { 7561 break loop; 7562 } 7563 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 7564 this._host = IDNAToASCII.call(this, buffer); 7565 buffer = ''; 7566 state = 'relative path start'; 7567 if (stateOverride) { 7568 break loop; 7569 } 7570 continue; 7571 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 7572 if (c === '[') { 7573 seenBracket = true; 7574 } else if (c === ']') { 7575 seenBracket = false; 7576 } 7577 buffer += c; 7578 } else { 7579 err('Invalid code point in host/hostname: ' + c); 7580 } 7581 break; 7582 case 'port': 7583 if (/[0-9]/.test(c)) { 7584 buffer += c; 7585 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { 7586 if (buffer !== '') { 7587 var temp = parseInt(buffer, 10); 7588 if (temp !== relative[this._scheme]) { 7589 this._port = temp + ''; 7590 } 7591 buffer = ''; 7592 } 7593 if (stateOverride) { 7594 break loop; 7595 } 7596 state = 'relative path start'; 7597 continue; 7598 } else if (c === '\t' || c === '\n' || c === '\r') { 7599 err('Invalid code point in port: ' + c); 7600 } else { 7601 invalid.call(this); 7602 } 7603 break; 7604 case 'relative path start': 7605 if (c === '\\') { 7606 err('\'\\\' not allowed in path.'); 7607 } 7608 state = 'relative path'; 7609 if (c !== '/' && c !== '\\') { 7610 continue; 7611 } 7612 break; 7613 case 'relative path': 7614 if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { 7615 if (c === '\\') { 7616 err('\\ not allowed in relative path.'); 7617 } 7618 var tmp; 7619 if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { 7620 buffer = tmp; 7621 } 7622 if (buffer === '..') { 7623 this._path.pop(); 7624 if (c !== '/' && c !== '\\') { 7625 this._path.push(''); 7626 } 7627 } else if (buffer === '.' && c !== '/' && c !== '\\') { 7628 this._path.push(''); 7629 } else if (buffer !== '.') { 7630 if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { 7631 buffer = buffer[0] + ':'; 7632 } 7633 this._path.push(buffer); 7634 } 7635 buffer = ''; 7636 if (c === '?') { 7637 this._query = '?'; 7638 state = 'query'; 7639 } else if (c === '#') { 7640 this._fragment = '#'; 7641 state = 'fragment'; 7642 } 7643 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 7644 buffer += percentEscape(c); 7645 } 7646 break; 7647 case 'query': 7648 if (!stateOverride && c === '#') { 7649 this._fragment = '#'; 7650 state = 'fragment'; 7651 } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 7652 this._query += percentEscapeQuery(c); 7653 } 7654 break; 7655 case 'fragment': 7656 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 7657 this._fragment += c; 7658 } 7659 break; 7660 } 7661 cursor++; 7662 } 7663 } 7664 function clear() { 7665 this._scheme = ''; 7666 this._schemeData = ''; 7667 this._username = ''; 7668 this._password = null; 7669 this._host = ''; 7670 this._port = ''; 7671 this._path = []; 7672 this._query = ''; 7673 this._fragment = ''; 7674 this._isInvalid = false;
7675 this._isRelative = false; 7676 } 7677 function JURL(url, base) { 7678 if (base !== undefined && !(base instanceof JURL)) { 7679 base = new JURL(String(base)); 7680 } 7681 this._url = url; 7682 clear.call(this); 7683 var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); 7684 parse.call(this, input, null, base); 7685 } 7686 JURL.prototype = { 7687 toString: function toString() { 7688 return this.href; 7689 }, 7690 7691 get href() { 7692 if (this._isInvalid) { 7693 return this._url; 7694 } 7695 var authority = ''; 7696 if (this._username !== '' || this._password !== null) { 7697 authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; 7698 } 7699 return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; 7700 }, 7701 set href(value) { 7702 clear.call(this); 7703 parse.call(this, value); 7704 }, 7705 get protocol() { 7706 return this._scheme + ':'; 7707 }, 7708 set protocol(value) { 7709 if (this._isInvalid) { 7710 return; 7711 } 7712 parse.call(this, value + ':', 'scheme start'); 7713 }, 7714 get host() { 7715 return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; 7716 }, 7717 set host(value) { 7718 if (this._isInvalid || !this._isRelative) { 7719 return; 7720 } 7721 parse.call(this, value, 'host'); 7722 }, 7723 get hostname() { 7724 return this._host; 7725 }, 7726 set hostname(value) { 7727 if (this._isInvalid || !this._isRelative) { 7728 return; 7729 } 7730 parse.call(this, value, 'hostname'); 7731 }, 7732 get port() { 7733 return this._port; 7734 }, 7735 set port(value) { 7736 if (this._isInvalid || !this._isRelative) { 7737 return; 7738 } 7739 parse.call(this, value, 'port'); 7740 }, 7741 get pathname() { 7742 return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; 7743 }, 7744 set pathname(value) { 7745 if (this._isInvalid || !this._isRelative) { 7746 return; 7747 } 7748 this._path = []; 7749 parse.call(this, value, 'relative path start'); 7750 }, 7751 get search() { 7752 return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; 7753 }, 7754 set search(value) { 7755 if (this._isInvalid || !this._isRelative) { 7756 return; 7757 } 7758 this._query = '?'; 7759 if (value[0] === '?') { 7760 value = value.slice(1); 7761 } 7762 parse.call(this, value, 'query'); 7763 }, 7764 get hash() { 7765 return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; 7766 }, 7767 set hash(value) { 7768 if (this._isInvalid) { 7769 return; 7770 } 7771 this._fragment = '#'; 7772 if (value[0] === '#') { 7773 value = value.slice(1); 7774 } 7775 parse.call(this, value, 'fragment'); 7776 }, 7777 get origin() { 7778 var host; 7779 if (this._isInvalid || !this._scheme) { 7780 return ''; 7781 } 7782 switch (this._scheme) { 7783 case 'data': 7784 case 'file': 7785 case 'javascript': 7786 case 'mailto': 7787 return 'null'; 7788 case 'blob': 7789 try { 7790 return new JURL(this._schemeData).origin || 'null'; 7791 } catch (_) {} 7792 return 'null'; 7793 } 7794 host = this.host; 7795 if (!host) { 7796 return ''; 7797 } 7798 return this._scheme + '://' + host; 7799 } 7800 }; 7801 exports.URL = JURL; 7802})(); 7803 7804/***/ }), 7805/* 129 */ 7806/***/ (function(module, exports, __w_pdfjs_require__) { 7807 7808"use strict"; 7809 7810 7811Object.defineProperty(exports, "__esModule", { 7812 value: true 7813}); 7814exports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = undefined; 7815 7816var _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); }
7816 else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 7817 7818var _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; }; }(); 7819 7820var _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; }; 7821 7822var _util = __w_pdfjs_require__(1); 7823 7824var _dom_utils = __w_pdfjs_require__(130); 7825 7826var _font_loader = __w_pdfjs_require__(131); 7827 7828var _api_compatibility = __w_pdfjs_require__(132); 7829 7830var _canvas = __w_pdfjs_require__(133); 7831 7832var _global_scope = __w_pdfjs_require__(3); 7833 7834var _global_scope2 = _interopRequireDefault(_global_scope); 7835 7836var _worker_options = __w_pdfjs_require__(135); 7837 7838var _message_handler = __w_pdfjs_require__(136); 7839 7840var _metadata = __w_pdfjs_require__(141); 7841 7842var _transport_stream = __w_pdfjs_require__(143); 7843 7844var _webgl = __w_pdfjs_require__(144); 7845 7846function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 7847 7848function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } 7849 7850function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7851 7852var DEFAULT_RANGE_CHUNK_SIZE = 65536; 7853var isWorkerDisabled = false; 7854var fallbackWorkerSrc = void 0; 7855var fakeWorkerFilesLoader = null; 7856{ 7857 var useRequireEnsure = false; 7858 if (typeof window === 'undefined') { 7859 isWorkerDisabled = true; 7860 if (typeof require.ensure === 'undefined') { 7861 require.ensure = require('node-ensure'); 7862 } 7863 useRequireEnsure = true; 7864 } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { 7865 useRequireEnsure = true; 7866 } 7867 if (typeof requirejs !== 'undefined' && requirejs.toUrl) { 7868 fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); 7869 } 7870 var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; 7871 fakeWorkerFilesLoader = useRequireEnsure ? function () { 7872 return new Promise(function (resolve, reject) { 7873 require.ensure([], function () { 7874 try { 7875 var worker = void 0; 7876 worker = require('./pdf.worker.js'); 7877 resolve(worker.WorkerMessageHandler); 7878 } catch (ex) { 7879 reject(ex); 7880 } 7881 }, reject, 'pdfjsWorker'); 7882 }); 7883 } : dynamicLoaderSupported ? function () { 7884 return new Promise(function (resolve, reject) { 7885 requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { 7886 try { 7887 resolve(worker.WorkerMessageHandler); 7888 } catch (ex) { 7889 reject(ex); 7890 } 7891 }, reject); 7892 }); 7893 } : null; 7894 if (!fallbackWorkerSrc && typeof document !== 'undefined') { 7895 var pdfjsFilePath = document.currentScript && document.currentScript.src; 7896 if (pdfjsFilePath) { 7897 fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); 7898 } 7899 } 7900} 7901var createPDFNetworkStream; 7902function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { 7903 createPDFNetworkStream = pdfNetworkStreamFactory; 7904} 7905function getDocument(src) { 7906 var task = new PDFDocumentLoadingTask(); 7907 var source; 7908 if (typeof src === 'string') { 7909 source = { url: src }; 7910 } else if ((0, _util.isArrayBuffer)(src)) { 7911 source = { data: src }; 7912 } else if (src instanceof PDFDataRangeTransport) { 7913 source = { range: src }; 7914 } else { 7915 if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') { 7916 throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); 7917 } 7918 if (!src.url && !src.data && !src.range) { 7919 throw new Error('Invalid parameter object: need either .data, .range or .url'); 7920 } 7921 source = src; 7922 } 7923 var params = Object.create(null); 7924 var rangeTransport = null; 7925 var worker = null; 7926 for (var key in source) { 7927 if (key === 'url' && typeof window !== 'undefined') { 7928 params[key] = new _util.URL(source[key], window.location).href; 7929 continue; 7930 } else if (key === 'range') { 7931 rangeTransport = source[key]; 7932 continue; 7933 } else if (key === 'worker') { 7934 worker = source[key]; 7935 continue; 7936 } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { 7937 var pdfBytes = source[key]; 7938 if (typeof pdfBytes === 'string') { 7939 params[key] = (0, _util.stringToBytes)(pdfBytes); 7940 } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _typeof(pdfBytes)) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { 7941 params[key] = new Uint8Array(pdfBytes); 7942 } else if ((0, _util.isArrayBuffer)(pdfBytes)) { 7943 params[key] = new Uint8Array(pdfBytes); 7944 } else { 7945 throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); 7946 } 7947 continue; 7948 } 7949 params[key] = source[key]; 7950 } 7951 params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; 7952 params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory; 7953 params.ignoreErrors = params.stopAtErrors !== true; 7954 params.pdfBug = params.pdfBug === true; 7955 var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); 7956 if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { 7957 params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; 7958 } 7959 if (!Number.isInteger(params.maxImageSize)) { 7960 params.maxImageSize = -1; 7961 } 7962 if (typeof params.isEvalSupported !== 'boolean') { 7963 params.isEvalSupported = true; 7964 } 7965 if (typeof params.disableFontFace !== 'boolean') { 7966 params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; 7967 } 7968 if (typeof params.disableRange !== 'boolean') { 7969 params.disableRange = false;
7970 } 7971 if (typeof params.disableStream !== 'boolean') { 7972 params.disableStream = false; 7973 } 7974 if (typeof params.disableAutoFetch !== 'boolean') { 7975 params.disableAutoFetch = false; 7976 } 7977 if (typeof params.disableCreateObjectURL !== 'boolean') { 7978 params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; 7979 } 7980 (0, _util.setVerbosityLevel)(params.verbosity); 7981 if (!worker) { 7982 var workerParams = { 7983 postMessageTransfers: params.postMessageTransfers, 7984 verbosity: params.verbosity 7985 }; 7986 var workerPort = _worker_options.GlobalWorkerOptions.workerPort; 7987 if (workerPort) { 7988 workerParams.port = workerPort; 7989 worker = PDFWorker.fromPort(workerParams); 7990 } else { 7991 worker = new PDFWorker(workerParams); 7992 } 7993 task._worker = worker; 7994 } 7995 var docId = task.docId; 7996 worker.promise.then(function () { 7997 if (task.destroyed) { 7998 throw new Error('Loading aborted'); 7999 } 8000 return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { 8001 if (task.destroyed) { 8002 throw new Error('Loading aborted'); 8003 } 8004 var networkStream = void 0; 8005 if (rangeTransport) { 8006 networkStream = new _transport_stream.PDFDataTransportStream({ 8007 length: params.length, 8008 initialData: params.initialData, 8009 disableRange: params.disableRange, 8010 disableStream: params.disableStream 8011 }, rangeTransport); 8012 } else if (!params.data) { 8013 networkStream = createPDFNetworkStream({ 8014 url: params.url, 8015 length: params.length, 8016 httpHeaders: params.httpHeaders, 8017 withCredentials: params.withCredentials, 8018 rangeChunkSize: params.rangeChunkSize, 8019 disableRange: params.disableRange, 8020 disableStream: params.disableStream 8021 }); 8022 } 8023 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); 8024 messageHandler.postMessageTransfers = worker.postMessageTransfers; 8025 var transport = new WorkerTransport(messageHandler, task, networkStream, params); 8026 task._transport = transport; 8027 messageHandler.send('Ready', null); 8028 }); 8029 }).catch(task._capability.reject); 8030 return task; 8031} 8032function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { 8033 if (worker.destroyed) { 8034 return Promise.reject(new Error('Worker was destroyed')); 8035 } 8036 if (pdfDataRangeTransport) { 8037 source.length = pdfDataRangeTransport.length; 8038 source.initialData = pdfDataRangeTransport.initialData; 8039 } 8040 return worker.messageHandler.sendWithPromise('GetDocRequest', { 8041 docId: docId, 8042 apiVersion: '2.0.943', 8043 source: { 8044 data: source.data, 8045 url: source.url, 8046 password: source.password, 8047 disableAutoFetch: source.disableAutoFetch, 8048 rangeChunkSize: source.rangeChunkSize, 8049 length: source.length 8050 }, 8051 maxImageSize: source.maxImageSize, 8052 disableFontFace: source.disableFontFace, 8053 disableCreateObjectURL: source.disableCreateObjectURL, 8054 postMessageTransfers: worker.postMessageTransfers, 8055 docBaseUrl: source.docBaseUrl, 8056 nativeImageDecoderSupport: source.nativeImageDecoderSupport, 8057 ignoreErrors: source.ignoreErrors, 8058 isEvalSupported: source.isEvalSupported 8059 }).then(function (workerId) { 8060 if (worker.destroyed) { 8061 throw new Error('Worker was destroyed'); 8062 } 8063 return workerId; 8064 }); 8065} 8066var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { 8067 var nextDocumentId = 0; 8068 function PDFDocumentLoadingTask() { 8069 this._capability = (0, _util.createPromiseCapability)(); 8070 this._transport = null; 8071 this._worker = null; 8072 this.docId = 'd' + nextDocumentId++; 8073 this.destroyed = false; 8074 this.onPassword = null; 8075 this.onProgress = null; 8076 this.onUnsupportedFeature = null; 8077 } 8078 PDFDocumentLoadingTask.prototype = { 8079 get promise() { 8080 return this._capability.promise; 8081 }, 8082 destroy: function destroy() { 8083 var _this = this; 8084 8085 this.destroyed = true; 8086 var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); 8087 return transportDestroyed.then(function () { 8088 _this._transport = null; 8089 if (_this._worker) { 8090 _this._worker.destroy(); 8091 _this._worker = null; 8092 } 8093 }); 8094 }, 8095 8096 then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) { 8097 return this.promise.then.apply(this.promise, arguments); 8098 } 8099 }; 8100 return PDFDocumentLoadingTask; 8101}(); 8102 8103var PDFDataRangeTransport = function () { 8104 function PDFDataRangeTransport(length, initialData) { 8105 _classCallCheck(this, PDFDataRangeTransport); 8106 8107 this.length = length; 8108 this.initialData = initialData; 8109 this._rangeListeners = []; 8110 this._progressListeners = []; 8111 this._progressiveReadListeners = []; 8112 this._readyCapability = (0, _util.createPromiseCapability)(); 8113 } 8114 8115 _createClass(PDFDataRangeTransport, [{ 8116 key: 'addRangeListener', 8117 value: function addRangeListener(listener) { 8118 this._rangeListeners.push(listener); 8119 } 8120 }, { 8121 key: 'addProgressListener', 8122 value: function addProgressListener(listener) { 8123 this._progressListeners.push(listener); 8124 } 8125 }, { 8126 key: 'addProgressiveReadListener', 8127 value: function addProgressiveReadListener(listener) { 8128 this._progressiveReadListeners.push(listener); 8129 } 8130 }, { 8131 key: 'onDataRange', 8132 value: function onDataRange(begin, chunk) { 8133 var _iteratorNormalCompletion = true; 8134 var _didIteratorError = false;
8135 var _iteratorError = undefined; 8136 8137 try { 8138 for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 8139 var listener = _step.value; 8140 8141 listener(begin, chunk); 8142 } 8143 } catch (err) { 8144 _didIteratorError = true; 8145 _iteratorError = err; 8146 } finally { 8147 try { 8148 if (!_iteratorNormalCompletion && _iterator.return) { 8149 _iterator.return(); 8150 } 8151 } finally { 8152 if (_didIteratorError) { 8153 throw _iteratorError; 8154 } 8155 } 8156 } 8157 } 8158 }, { 8159 key: 'onDataProgress', 8160 value: function onDataProgress(loaded) { 8161 var _this2 = this; 8162 8163 this._readyCapability.promise.then(function () { 8164 var _iteratorNormalCompletion2 = true; 8165 var _didIteratorError2 = false; 8166 var _iteratorError2 = undefined; 8167 8168 try { 8169 for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 8170 var listener = _step2.value; 8171 8172 listener(loaded); 8173 } 8174 } catch (err) { 8175 _didIteratorError2 = true; 8176 _iteratorError2 = err; 8177 } finally { 8178 try { 8179 if (!_iteratorNormalCompletion2 && _iterator2.return) { 8180 _iterator2.return(); 8181 } 8182 } finally { 8183 if (_didIteratorError2) { 8184 throw _iteratorError2; 8185 } 8186 } 8187 } 8188 }); 8189 } 8190 }, { 8191 key: 'onDataProgressiveRead', 8192 value: function onDataProgressiveRead(chunk) { 8193 var _this3 = this; 8194 8195 this._readyCapability.promise.then(function () { 8196 var _iteratorNormalCompletion3 = true; 8197 var _didIteratorError3 = false; 8198 var _iteratorError3 = undefined; 8199 8200 try { 8201 for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { 8202 var listener = _step3.value; 8203 8204 listener(chunk); 8205 } 8206 } catch (err) { 8207 _didIteratorError3 = true; 8208 _iteratorError3 = err; 8209 } finally { 8210 try { 8211 if (!_iteratorNormalCompletion3 && _iterator3.return) { 8212 _iterator3.return(); 8213 } 8214 } finally { 8215 if (_didIteratorError3) { 8216 throw _iteratorError3; 8217 } 8218 } 8219 } 8220 }); 8221 } 8222 }, { 8223 key: 'transportReady', 8224 value: function transportReady() { 8225 this._readyCapability.resolve(); 8226 } 8227 }, { 8228 key: 'requestDataRange', 8229 value: function requestDataRange(begin, end) { 8230 (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); 8231 } 8232 }, { 8233 key: 'abort', 8234 value: function abort() {} 8235 }]); 8236 8237 return PDFDataRangeTransport; 8238}(); 8239 8240var PDFDocumentProxy = function () { 8241 function PDFDocumentProxy(pdfInfo, transport, loadingTask) { 8242 _classCallCheck(this, PDFDocumentProxy); 8243 8244 this.loadingTask = loadingTask; 8245 this._pdfInfo = pdfInfo; 8246 this._transport = transport; 8247 } 8248 8249 _createClass(PDFDocumentProxy, [{ 8250 key: 'getPage', 8251 value: function getPage(pageNumber) { 8252 return this._transport.getPage(pageNumber); 8253 } 8254 }, { 8255 key: 'getPageIndex', 8256 value: function getPageIndex(ref) { 8257 return this._transport.getPageIndex(ref); 8258 } 8259 }, { 8260 key: 'getDestinations', 8261 value: function getDestinations() { 8262 return this._transport.getDestinations(); 8263 } 8264 }, { 8265 key: 'getDestination', 8266 value: function getDestination(id) { 8267 return this._transport.getDestination(id); 8268 } 8269 }, { 8270 key: 'getPageLabels', 8271 value: function getPageLabels() { 8272 return this._transport.getPageLabels(); 8273 } 8274 }, { 8275 key: 'getPageMode', 8276 value: function getPageMode() { 8277 return this._transport.getPageMode(); 8278 } 8279 }, { 8280 key: 'getAttachments', 8281 value: function getAttachments() { 8282 return this._transport.getAttachments(); 8283 } 8284 }, { 8285 key: 'getJavaScript', 8286 value: function getJavaScript() { 8287 return this._transport.getJavaScript(); 8288 } 8289 }, { 8290 key: 'getOutline', 8291 value: function getOutline() { 8292 return this._transport.getOutline(); 8293 } 8294 }, { 8295 key: 'getPermissions', 8296 value: function getPermissions() { 8297 return this._transport.getPermissions(); 8298 } 8299 }, { 8300 key: 'getMetadata', 8301 value: function getMetadata() { 8302 return this._transport.getMetadata(); 8303 } 8304 }, { 8305 key: 'getData', 8306 value: function getData() { 8307 return this._transport.getData(); 8308 } 8309 }, { 8310 key: 'getDownloadInfo', 8311 value: function getDownloadInfo() { 8312 return this._transport.downloadInfoCapability.promise; 8313 } 8314 }, { 8315 key: 'getStats', 8316 value: function getStats() { 8317 return this._transport.getStats(); 8318 } 8319 }, { 8320 key: 'cleanup', 8321 value: function cleanup() { 8322 this._transport.startCleanup(); 8323 } 8324 }, { 8325 key: 'destroy', 8326 value: function destroy() { 8327 return this.loadingTask.destroy(); 8328 } 8329 }, { 8330 key: 'numPages', 8331 get: function get() { 8332 return this._pdfInfo.numPages; 8333 } 8334 }, { 8335 key: 'fingerprint', 8336 get: function get() { 8337 return this._pdfInfo.fingerprint; 8338 } 8339 }, { 8340 key: 'loadingParams', 8341 get: function get() { 8342 return this._transport.loadingParams; 8343 } 8344 }]); 8345 8346 return PDFDocumentProxy; 8347}(); 8348 8349var PDFPageProxy = function PDFPageProxyClosure() { 8350 function PDFPageProxy(pageIndex, pageInfo, transport) { 8351 var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8352 8353 this.pageIndex = pageIndex; 8354 this._pageInfo = pageInfo; 8355 this.transport = transport; 8356 this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer; 8357 this._pdfBug = pdfBug; 8358 this.commonObjs = transport.commonObjs; 8359 this.objs = new PDFObjects(); 8360 this.cleanupAfterRender = false; 8361 this.pendingCleanup = false; 8362 this.intentStates = Object.create(null); 8363 this.destroyed = false; 8364 } 8365 PDFPageProxy.prototype = { 8366 get pageNumber() { 8367 return this.pageIndex + 1; 8368 }, 8369 get rotate() { 8370 return this._pageInfo.rotate; 8371 }, 8372 get ref() { 8373 return this._pageInfo.ref; 8374 }, 8375 get userUnit() { 8376 return this._pageInfo.userUnit; 8377 }, 8378 get view() { 8379 return this._pageInfo.view; 8380 }, 8381 getViewport: function getViewport(scale) { 8382 var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate; 8383 var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 8384 8385 return new _dom_utils.PageViewport({
8386 viewBox: this.view, 8387 scale: scale, 8388 rotation: rotate, 8389 dontFlip: dontFlip 8390 }); 8391 }, 8392 8393 getAnnotations: function PDFPageProxy_getAnnotations(params) { 8394 var intent = params && params.intent || null; 8395 if (!this.annotationsPromise || this.annotationsIntent !== intent) { 8396 this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent); 8397 this.annotationsIntent = intent; 8398 } 8399 return this.annotationsPromise; 8400 }, 8401 render: function PDFPageProxy_render(params) { 8402 var _this4 = this; 8403 8404 var stats = this._stats; 8405 stats.time('Overall'); 8406 this.pendingCleanup = false; 8407 var renderingIntent = params.intent === 'print' ? 'print' : 'display'; 8408 var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory(); 8409 var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL }); 8410 if (!this.intentStates[renderingIntent]) { 8411 this.intentStates[renderingIntent] = Object.create(null); 8412 } 8413 var intentState = this.intentStates[renderingIntent]; 8414 if (!intentState.displayReadyCapability) { 8415 intentState.receivingOperatorList = true; 8416 intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); 8417 intentState.operatorList = { 8418 fnArray: [], 8419 argsArray: [], 8420 lastChunk: false 8421 }; 8422 stats.time('Page Request'); 8423 this.transport.messageHandler.send('RenderPageRequest', { 8424 pageIndex: this.pageNumber - 1, 8425 intent: renderingIntent, 8426 renderInteractiveForms: params.renderInteractiveForms === true 8427 }); 8428 } 8429 var complete = function complete(error) { 8430 var i = intentState.renderTasks.indexOf(internalRenderTask); 8431 if (i >= 0) { 8432 intentState.renderTasks.splice(i, 1); 8433 } 8434 if (_this4.cleanupAfterRender) { 8435 _this4.pendingCleanup = true; 8436 } 8437 _this4._tryCleanup(); 8438 if (error) { 8439 internalRenderTask.capability.reject(error); 8440 } else { 8441 internalRenderTask.capability.resolve(); 8442 } 8443 stats.timeEnd('Rendering'); 8444 stats.timeEnd('Overall'); 8445 }; 8446 var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext, this._pdfBug); 8447 internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print'; 8448 if (!intentState.renderTasks) { 8449 intentState.renderTasks = []; 8450 } 8451 intentState.renderTasks.push(internalRenderTask); 8452 var renderTask = internalRenderTask.task; 8453 intentState.displayReadyCapability.promise.then(function (transparency) { 8454 if (_this4.pendingCleanup) { 8455 complete(); 8456 return; 8457 } 8458 stats.time('Rendering');
8459 internalRenderTask.initializeGraphics(transparency); 8460 internalRenderTask.operatorListChanged(); 8461 }).catch(complete); 8462 return renderTask; 8463 }, 8464 getOperatorList: function PDFPageProxy_getOperatorList() { 8465 function operatorListChanged() { 8466 if (intentState.operatorList.lastChunk) { 8467 intentState.opListReadCapability.resolve(intentState.operatorList); 8468 var i = intentState.renderTasks.indexOf(opListTask); 8469 if (i >= 0) { 8470 intentState.renderTasks.splice(i, 1); 8471 } 8472 } 8473 } 8474 var renderingIntent = 'oplist'; 8475 if (!this.intentStates[renderingIntent]) { 8476 this.intentStates[renderingIntent] = Object.create(null); 8477 } 8478 var intentState = this.intentStates[renderingIntent]; 8479 var opListTask; 8480 if (!intentState.opListReadCapability) { 8481 opListTask = {}; 8482 opListTask.operatorListChanged = operatorListChanged; 8483 intentState.receivingOperatorList = true; 8484 intentState.opListReadCapability = (0, _util.createPromiseCapability)(); 8485 intentState.renderTasks = []; 8486 intentState.renderTasks.push(opListTask); 8487 intentState.operatorList = { 8488 fnArray: [], 8489 argsArray: [], 8490 lastChunk: false 8491 }; 8492 this._stats.time('Page Request'); 8493 this.transport.messageHandler.send('RenderPageRequest', { 8494 pageIndex: this.pageIndex, 8495 intent: renderingIntent 8496 }); 8497 } 8498 return intentState.opListReadCapability.promise; 8499 }, 8500 streamTextContent: function streamTextContent() { 8501 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 8502 8503 var TEXT_CONTENT_CHUNK_SIZE = 100; 8504 return this.transport.messageHandler.sendWithStream('GetTextContent', { 8505 pageIndex: this.pageNumber - 1, 8506 normalizeWhitespace: params.normalizeWhitespace === true, 8507 combineTextItems: params.disableCombineTextItems !== true 8508 }, { 8509 highWaterMark: TEXT_CONTENT_CHUNK_SIZE, 8510 size: function size(textContent) { 8511 return textContent.items.length; 8512 } 8513 }); 8514 }, 8515 8516 getTextContent: function PDFPageProxy_getTextContent(params) { 8517 params = params || {}; 8518 var readableStream = this.streamTextContent(params); 8519 return new Promise(function (resolve, reject) { 8520 function pump() { 8521 reader.read().then(function (_ref) { 8522 var _textContent$items; 8523 8524 var value = _ref.value, 8525 done = _ref.done; 8526 8527 if (done) { 8528 resolve(textContent); 8529 return; 8530 } 8531 Object.assign(textContent.styles, value.styles); 8532 (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); 8533 pump(); 8534 }, reject); 8535 } 8536 var reader = readableStream.getReader(); 8537 var textContent = { 8538 items: [], 8539 styles: Object.create(null) 8540 }; 8541 pump(); 8542 }); 8543 }, 8544 _destroy: function PDFPageProxy_destroy() { 8545 this.destroyed = true; 8546 this.transport.pageCache[this.pageIndex] = null; 8547 var waitOn = []; 8548 Object.keys(this.intentStates).forEach(function (intent) { 8549 if (intent === 'oplist') { 8550 return; 8551 } 8552 var intentState = this.intentStates[intent]; 8553 intentState.renderTasks.forEach(function (renderTask) { 8554 var renderCompleted = renderTask.capability.promise.catch(function () {}); 8555 waitOn.push(renderCompleted); 8556 renderTask.cancel(); 8557 }); 8558 }, this); 8559 this.objs.clear(); 8560 this.annotationsPromise = null; 8561 this.pendingCleanup = false; 8562 return Promise.all(waitOn); 8563 }, 8564 cleanup: function cleanup() { 8565 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 8566 8567 this.pendingCleanup = true; 8568 this._tryCleanup(resetStats); 8569 }, 8570 _tryCleanup: function _tryCleanup() { 8571 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
8572 8573 if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { 8574 var intentState = this.intentStates[intent]; 8575 return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; 8576 }, this)) { 8577 return; 8578 } 8579 Object.keys(this.intentStates).forEach(function (intent) { 8580 delete this.intentStates[intent]; 8581 }, this); 8582 this.objs.clear(); 8583 this.annotationsPromise = null; 8584 if (resetStats && this._stats instanceof _dom_utils.StatTimer) { 8585 this._stats = new _dom_utils.StatTimer(); 8586 } 8587 this.pendingCleanup = false; 8588 }, 8589 8590 _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) { 8591 var intentState = this.intentStates[intent]; 8592 if (intentState.displayReadyCapability) { 8593 intentState.displayReadyCapability.resolve(transparency); 8594 } 8595 }, 8596 _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) { 8597 var intentState = this.intentStates[intent]; 8598 var i, ii; 8599 for (i = 0, ii = operatorListChunk.length; i < ii; i++) { 8600 intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); 8601 intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); 8602 } 8603 intentState.operatorList.lastChunk = operatorListChunk.lastChunk; 8604 for (i = 0; i < intentState.renderTasks.length; i++) { 8605 intentState.renderTasks[i].operatorListChanged(); 8606 } 8607 if (operatorListChunk.lastChunk) { 8608 intentState.receivingOperatorList = false; 8609 this._tryCleanup(); 8610 } 8611 }, 8612 get stats() { 8613 return this._stats instanceof _dom_utils.StatTimer ? this._stats : null; 8614 } 8615 }; 8616 return PDFPageProxy; 8617}(); 8618 8619var LoopbackPort = function () { 8620 function LoopbackPort() { 8621 var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 8622 8623 _classCallCheck(this, LoopbackPort); 8624 8625 this._listeners = []; 8626 this._defer = defer; 8627 this._deferred = Promise.resolve(undefined); 8628 } 8629 8630 _createClass(LoopbackPort, [{ 8631 key: 'postMessage', 8632 value: function postMessage(obj, transfers) { 8633 var _this5 = this; 8634 8635 function cloneValue(value) { 8636 if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) { 8637 return value; 8638 } 8639 if (cloned.has(value)) { 8640 return cloned.get(value); 8641 } 8642 var result; 8643 var buffer; 8644 if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { 8645 var transferable = transfers && transfers.includes(buffer); 8646 if (value === buffer) { 8647 result = value; 8648 } else if (transferable) { 8649 result = new value.constructor(buffer, value.byteOffset, value.byteLength); 8650 } else { 8651 result = new value.constructor(value); 8652 } 8653 cloned.set(value, result); 8654 return result; 8655 } 8656 result = Array.isArray(value) ? [] : {}; 8657 cloned.set(value, result); 8658 for (var i in value) { 8659 var desc, 8660 p = value; 8661 while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { 8662 p = Object.getPrototypeOf(p); 8663 } 8664 if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { 8665 continue; 8666 } 8667 result[i] = cloneValue(desc.value); 8668 } 8669 return result; 8670 } 8671 if (!this._defer) { 8672 this._listeners.forEach(function (listener) { 8673 listener.call(this, { data: obj }); 8674 }, this); 8675 return; 8676 } 8677 var cloned = new WeakMap(); 8678 var e = { data: cloneValue(obj) }; 8679 this._deferred.then(function () { 8680 _this5._listeners.forEach(function (listener) { 8681 listener.call(this, e); 8682 }, _this5); 8683 }); 8684 } 8685 }, { 8686 key: 'addEventListener', 8687 value: function addEventListener(name, listener) { 8688 this._listeners.push(listener); 8689 } 8690 }, { 8691 key: 'removeEventListener', 8692 value: function removeEventListener(name, listener) { 8693 var i = this._listeners.indexOf(listener); 8694 this._listeners.splice(i, 1); 8695 } 8696 }, { 8697 key: 'terminate', 8698 value: function terminate() { 8699 this._listeners = []; 8700 } 8701 }]); 8702 8703 return LoopbackPort; 8704}(); 8705 8706var PDFWorker = function PDFWorkerClosure() { 8707 var nextFakeWorkerId = 0; 8708 function getWorkerSrc() { 8709 if (_worker_options.GlobalWorkerOptions.workerSrc) { 8710 return _worker_options.GlobalWorkerOptions.workerSrc; 8711 } 8712 if (typeof fallbackWorkerSrc !== 'undefined') { 8713 return fallbackWorkerSrc; 8714 } 8715 throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); 8716 } 8717 function getMainThreadWorkerMessageHandler() { 8718 try { 8719 if (typeof window !== 'undefined') { 8720 return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; 8721 } 8722 } catch (ex) {} 8723 return null; 8724 } 8725 var fakeWorkerFilesLoadedCapability = void 0; 8726 function setupFakeWorkerGlobal() { 8727 if (fakeWorkerFilesLoadedCapability) { 8728 return fakeWorkerFilesLoadedCapability.promise; 8729 } 8730 fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); 8731 var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); 8732 if (mainWorkerMessageHandler) { 8733 fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); 8734 return fakeWorkerFilesLoadedCapability.promise; 8735 } 8736 var loader = fakeWorkerFilesLoader || function () { 8737 return (0, _dom_utils.loadScript)(getWorkerSrc()).then(function () { 8738 return window.pdfjsWorker.WorkerMessageHandler; 8739 }); 8740 }; 8741 loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); 8742 return fakeWorkerFilesLoadedCapability.promise; 8743 } 8744 function createCDNWrapper(url) { 8745 var wrapper = 'importScripts(\'' + url + '\');'; 8746 return _util.URL.createObjectURL(new Blob([wrapper])); 8747 } 8748 var pdfWorkerPorts = new WeakMap(); 8749 function PDFWorker() { 8750 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 8751 _ref2$name = _ref2.name, 8752 name = _ref2$name === undefined ? null : _ref2$name, 8753 _ref2$port = _ref2.port, 8754 port = _ref2$port === undefined ? null : _ref2$port, 8755 _ref2$postMessageTran = _ref2.postMessageTransfers, 8756 postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran, 8757 _ref2$verbosity = _ref2.verbosity, 8758 verbosity = _ref2$verbosity === undefined ? (0, _util.getVerbosityLevel)() : _ref2$verbosity; 8759 8760 if (port && pdfWorkerPorts.has(port)) { 8761 throw new Error('Cannot use more than one PDFWorker per port'); 8762 } 8763 this.name = name; 8764 this.destroyed = false;
8765 this.postMessageTransfers = postMessageTransfers !== false; 8766 this.verbosity = verbosity; 8767 this._readyCapability = (0, _util.createPromiseCapability)(); 8768 this._port = null; 8769 this._webWorker = null; 8770 this._messageHandler = null; 8771 if (port) { 8772 pdfWorkerPorts.set(port, this); 8773 this._initializeFromPort(port); 8774 return; 8775 } 8776 this._initialize(); 8777 } 8778 PDFWorker.prototype = { 8779 get promise() { 8780 return this._readyCapability.promise; 8781 }, 8782 get port() { 8783 return this._port; 8784 }, 8785 get messageHandler() { 8786 return this._messageHandler; 8787 }, 8788 _initializeFromPort: function PDFWorker_initializeFromPort(port) { 8789 this._port = port; 8790 this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); 8791 this._messageHandler.on('ready', function () {}); 8792 this._readyCapability.resolve(); 8793 }, 8794 _initialize: function PDFWorker_initialize() { 8795 var _this6 = this; 8796 8797 if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { 8798 var workerSrc = getWorkerSrc(); 8799 try { 8800 if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { 8801 workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); 8802 } 8803 var worker = new Worker(workerSrc); 8804 var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); 8805 var terminateEarly = function terminateEarly() { 8806 worker.removeEventListener('error', onWorkerError); 8807 messageHandler.destroy(); 8808 worker.terminate(); 8809 if (_this6.destroyed) { 8810 _this6._readyCapability.reject(new Error('Worker was destroyed')); 8811 } else { 8812 _this6._setupFakeWorker(); 8813 } 8814 }; 8815 var onWorkerError = function onWorkerError() { 8816 if (!_this6._webWorker) { 8817 terminateEarly(); 8818 } 8819 }; 8820 worker.addEventListener('error', onWorkerError); 8821 messageHandler.on('test', function (data) { 8822 worker.removeEventListener('error', onWorkerError); 8823 if (_this6.destroyed) { 8824 terminateEarly(); 8825 return; 8826 } 8827 if (data && data.supportTypedArray) { 8828 _this6._messageHandler = messageHandler; 8829 _this6._port = worker; 8830 _this6._webWorker = worker; 8831 if (!data.supportTransfers) { 8832 _this6.postMessageTransfers = false; 8833 } 8834 _this6._readyCapability.resolve(); 8835 messageHandler.send('configure', { verbosity: _this6.verbosity }); 8836 } else { 8837 _this6._setupFakeWorker(); 8838 messageHandler.destroy(); 8839 worker.terminate(); 8840 } 8841 }); 8842 messageHandler.on('ready', function (data) { 8843 worker.removeEventListener('error', onWorkerError); 8844 if (_this6.destroyed) { 8845 terminateEarly(); 8846 return; 8847 } 8848 try { 8849 sendTest(); 8850 } catch (e) { 8851 _this6._setupFakeWorker(); 8852 } 8853 }); 8854 var sendTest = function sendTest() { 8855 var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]); 8856 try { 8857 messageHandler.send('test', testObj, [testObj.buffer]); 8858 } catch (ex) { 8859 (0, _util.info)('Cannot use postMessage transfers'); 8860 testObj[0] = 0; 8861 messageHandler.send('test', testObj); 8862 } 8863 }; 8864 sendTest(); 8865 return; 8866 } catch (e) { 8867 (0, _util.info)('The worker has been disabled.'); 8868 } 8869 } 8870 this._setupFakeWorker(); 8871 }, 8872 _setupFakeWorker: function PDFWorker_setupFakeWorker() { 8873 var _this7 = this; 8874 8875 if (!isWorkerDisabled) { 8876 (0, _util.warn)('Setting up fake worker.'); 8877 isWorkerDisabled = true; 8878 } 8879 setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { 8880 if (_this7.destroyed) { 8881 _this7._readyCapability.reject(new Error('Worker was destroyed')); 8882 return; 8883 } 8884 var port = new LoopbackPort(); 8885 _this7._port = port;
8886 var id = 'fake' + nextFakeWorkerId++; 8887 var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); 8888 WorkerMessageHandler.setup(workerHandler, port); 8889 var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); 8890 _this7._messageHandler = messageHandler; 8891 _this7._readyCapability.resolve(); 8892 }).catch(function (reason) { 8893 _this7._readyCapability.reject(new Error('Setting up fake worker failed: "' + reason.message + '".')); 8894 }); 8895 }, 8896 destroy: function PDFWorker_destroy() { 8897 this.destroyed = true; 8898 if (this._webWorker) { 8899 this._webWorker.terminate(); 8900 this._webWorker = null; 8901 } 8902 pdfWorkerPorts.delete(this._port); 8903 this._port = null; 8904 if (this._messageHandler) { 8905 this._messageHandler.destroy(); 8906 this._messageHandler = null; 8907 } 8908 } 8909 }; 8910 PDFWorker.fromPort = function (params) { 8911 if (!params || !params.port) { 8912 throw new Error('PDFWorker.fromPort - invalid method signature.'); 8913 } 8914 if (pdfWorkerPorts.has(params.port)) { 8915 return pdfWorkerPorts.get(params.port); 8916 } 8917 return new PDFWorker(params); 8918 }; 8919 PDFWorker.getWorkerSrc = function () { 8920 return getWorkerSrc(); 8921 }; 8922 return PDFWorker; 8923}(); 8924 8925var WorkerTransport = function () { 8926 function WorkerTransport(messageHandler, loadingTask, networkStream, params) { 8927 _classCallCheck(this, WorkerTransport); 8928 8929 this.messageHandler = messageHandler; 8930 this.loadingTask = loadingTask; 8931 this.commonObjs = new PDFObjects(); 8932 this.fontLoader = new _font_loader.FontLoader(loadingTask.docId); 8933 this._params = params; 8934 this.CMapReaderFactory = new params.CMapReaderFactory({ 8935 baseUrl: params.cMapUrl, 8936 isCompressed: params.cMapPacked 8937 }); 8938 this.destroyed = false; 8939 this.destroyCapability = null; 8940 this._passwordCapability = null; 8941 this._networkStream = networkStream; 8942 this._fullReader = null; 8943 this._lastProgress = null; 8944 this.pageCache = []; 8945 this.pagePromises = []; 8946 this.downloadInfoCapability = (0, _util.createPromiseCapability)(); 8947 this.setupMessageHandler(); 8948 } 8949 8950 _createClass(WorkerTransport, [{ 8951 key: 'destroy', 8952 value: function destroy() { 8953 var _this8 = this; 8954 8955 if (this.destroyCapability) { 8956 return this.destroyCapability.promise; 8957 } 8958 this.destroyed = true; 8959 this.destroyCapability = (0, _util.createPromiseCapability)(); 8960 if (this._passwordCapability) { 8961 this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); 8962 } 8963 var waitOn = []; 8964 this.pageCache.forEach(function (page) { 8965 if (page) { 8966 waitOn.push(page._destroy()); 8967 } 8968 }); 8969 this.pageCache = []; 8970 this.pagePromises = []; 8971 var terminated = this.messageHandler.sendWithPromise('Terminate', null); 8972 waitOn.push(terminated); 8973 Promise.all(waitOn).then(function () { 8974 _this8.fontLoader.clear(); 8975 if (_this8._networkStream) { 8976 _this8._networkStream.cancelAllRequests(); 8977 } 8978 if (_this8.messageHandler) { 8979 _this8.messageHandler.destroy(); 8980 _this8.messageHandler = null; 8981 } 8982 _this8.destroyCapability.resolve(); 8983 }, this.destroyCapability.reject); 8984 return this.destroyCapability.promise; 8985 } 8986 }, { 8987 key: 'setupMessageHandler', 8988 value: function setupMessageHandler() { 8989 var messageHandler = this.messageHandler, 8990 loadingTask = this.loadingTask; 8991 8992 messageHandler.on('GetReader', function (data, sink) { 8993 var _this9 = this; 8994 8995 (0, _util.assert)(this._networkStream); 8996 this._fullReader = this._networkStream.getFullReader(); 8997 this._fullReader.onProgress = function (evt) { 8998 _this9._lastProgress = { 8999 loaded: evt.loaded, 9000 total: evt.total 9001 }; 9002 }; 9003 sink.onPull = function () { 9004 _this9._fullReader.read().then(function (_ref3) { 9005 var value = _ref3.value, 9006 done = _ref3.done; 9007 9008 if (done) { 9009 sink.close(); 9010 return; 9011 } 9012 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 9013 sink.enqueue(new Uint8Array(value), 1, [value]); 9014 }).catch(function (reason) { 9015 sink.error(reason); 9016 }); 9017 }; 9018 sink.onCancel = function (reason) { 9019 _this9._fullReader.cancel(reason); 9020 }; 9021 }, this); 9022 messageHandler.on('ReaderHeadersReady', function (data) { 9023 var _this10 = this; 9024 9025 var headersCapability = (0, _util.createPromiseCapability)(); 9026 var fullReader = this._fullReader; 9027 fullReader.headersReady.then(function () { 9028 if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { 9029 if (_this10._lastProgress && loadingTask.onProgress) { 9030 loadingTask.onProgress(_this10._lastProgress); 9031 } 9032 fullReader.onProgress = function (evt) { 9033 if (loadingTask.onProgress) { 9034 loadingTask.onProgress({ 9035 loaded: evt.loaded, 9036 total: evt.total 9037 }); 9038 } 9039 }; 9040 } 9041 headersCapability.resolve({ 9042 isStreamingSupported: fullReader.isStreamingSupported, 9043 isRangeSupported: fullReader.isRangeSupported, 9044 contentLength: fullReader.contentLength 9045 }); 9046 }, headersCapability.reject); 9047 return headersCapability.promise; 9048 }, this); 9049 messageHandler.on('GetRangeReader', function (data, sink) { 9050 (0, _util.assert)(this._networkStream); 9051 var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); 9052 sink.onPull = function () { 9053 rangeReader.read().then(function (_ref4) { 9054 var value = _ref4.value, 9055 done = _ref4.done; 9056 9057 if (done) { 9058 sink.close(); 9059 return; 9060 } 9061 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 9062 sink.enqueue(new Uint8Array(value), 1, [value]); 9063 }).catch(function (reason) { 9064 sink.error(reason); 9065 }); 9066 }; 9067 sink.onCancel = function (reason) { 9068 rangeReader.cancel(reason); 9069 }; 9070 }, this); 9071 messageHandler.on('GetDoc', function (_ref5) { 9072 var pdfInfo = _ref5.pdfInfo; 9073 9074 this.numPages = pdfInfo.numPages; 9075 this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask); 9076 loadingTask._capability.resolve(this.pdfDocument); 9077 }, this); 9078 messageHandler.on('PasswordRequest', function (exception) { 9079 var _this11 = this; 9080 9081 this._passwordCapability = (0, _util.createPromiseCapability)(); 9082 if (loadingTask.onPassword) { 9083 var updatePassword = function updatePassword(password) { 9084 _this11._passwordCapability.resolve({ password: password }); 9085 }; 9086 try { 9087 loadingTask.onPassword(updatePassword, exception.code); 9088 } catch (ex) { 9089 this._passwordCapability.reject(ex); 9090 } 9091 } else { 9092 this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); 9093 } 9094 return this._passwordCapability.promise; 9095 }, this); 9096 messageHandler.on('PasswordException', function (exception) { 9097 loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); 9098 }, this); 9099 messageHandler.on('InvalidPDF', function (exception) { 9100 loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); 9101 }, this); 9102 messageHandler.on('MissingPDF', function (exception) { 9103 loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); 9104 }, this); 9105 messageHandler.on('UnexpectedResponse', function (exception) { 9106 loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); 9107 }, this); 9108 messageHandler.on('UnknownError', function (exception) { 9109 loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); 9110 }, this); 9111 messageHandler.on('DataLoaded', function (data) { 9112 if (loadingTask.onProgress) { 9113 loadingTask.onProgress({ 9114 loaded: data.length, 9115 total: data.length 9116 }); 9117 } 9118 this.downloadInfoCapability.resolve(data); 9119 }, this); 9120 messageHandler.on('StartRenderPage', function (data) { 9121 if (this.destroyed) { 9122 return; 9123 } 9124 var page = this.pageCache[data.pageIndex]; 9125 page._stats.timeEnd('Page Request'); 9126 page._startRenderPage(data.transparency, data.intent); 9127 }, this); 9128 messageHandler.on('RenderPageChunk', function (data) { 9129 if (this.destroyed) { 9130 return; 9131 } 9132 var page = this.pageCache[data.pageIndex]; 9133 page._renderPageChunk(data.operatorList, data.intent); 9134 }, this); 9135 messageHandler.on('commonobj', function (data) { 9136 var _this12 = this; 9137 9138 if (this.destroyed) { 9139 return; 9140 } 9141 9142 var _data = _slicedToArray(data, 3), 9143 id = _data[0], 9144 type = _data[1], 9145 exportedData = _data[2]; 9146 9147 if (this.commonObjs.hasData(id)) { 9148 return; 9149 } 9150 switch (type) { 9151 case 'Font': 9152 var params = this._params; 9153 if ('error' in exportedData) { 9154 var exportedError = exportedData.error; 9155 (0, _util.warn)('Error during font loading: ' + exportedError); 9156 this.commonObjs.resolve(id, exportedError); 9157 break; 9158 } 9159 var fontRegistry = null; 9160 if (params.pdfBug && _global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled) { 9161 fontRegistry = { 9162 registerFont: function registerFont(font, url) { 9163 _global_scope2.default['FontInspector'].fontAdded(font, url); 9164 } 9165 }; 9166 } 9167 var font = new _font_loader.FontFaceObject(exportedData, { 9168 isEvalSupported: params.isEvalSupported, 9169 disableFontFace: params.disableFontFace, 9170 ignoreErrors: params.ignoreErrors, 9171 onUnsupportedFeature: this._onUnsupportedFeature.bind(this), 9172 fontRegistry: fontRegistry 9173 }); 9174 var fontReady = function fontReady(fontObjs) { 9175 _this12.commonObjs.resolve(id, font); 9176 }; 9177 this.fontLoader.bind([font], fontReady); 9178 break; 9179 case 'FontPath': 9180 this.commonObjs.resolve(id, exportedData); 9181 break; 9182 default: 9183 throw new Error('Got unknown common object type ' + type); 9184 } 9185 }, this); 9186 messageHandler.on('obj', function (data) { 9187 if (this.destroyed) { 9188 return; 9189 } 9190 9191 var _data2 = _slicedToArray(data, 4), 9192 id = _data2[0], 9193 pageIndex = _data2[1], 9194 type = _data2[2], 9195 imageData = _data2[3]; 9196 9197 var pageProxy = this.pageCache[pageIndex]; 9198 if (pageProxy.objs.hasData(id)) { 9199 return; 9200 } 9201 switch (type) { 9202 case 'JpegStream': 9203 return new Promise(function (resolve, reject) { 9204 var img = new Image(); 9205 img.onload = function () { 9206 resolve(img); 9207 }; 9208 img.onerror = function () { 9209 reject(new Error('Error during JPEG image loading')); 9210 }; 9211 img.src = imageData; 9212 }).then(function (img) { 9213 pageProxy.objs.resolve(id, img); 9214 }); 9215 case 'Image': 9216 pageProxy.objs.resolve(id, imageData); 9217 var MAX_IMAGE_SIZE_TO_STORE = 8000000; 9218 if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { 9219 pageProxy.cleanupAfterRender = true; 9220 } 9221 break; 9222 default: 9223 throw new Error('Got unknown object type ' + type); 9224 } 9225 }, this); 9226 messageHandler.on('DocProgress', function (data) { 9227 if (this.destroyed) { 9228 return; 9229 } 9230 if (loadingTask.onProgress) { 9231 loadingTask.onProgress({ 9232 loaded: data.loaded, 9233 total: data.total 9234 }); 9235 } 9236 }, this); 9237 messageHandler.on('PageError', function (data) { 9238 if (this.destroyed) { 9239 return; 9240 } 9241 var page = this.pageCache[data.pageNum - 1]; 9242 var intentState = page.intentStates[data.intent]; 9243 if (intentState.displayReadyCapability) { 9244 intentState.displayReadyCapability.reject(data.error); 9245 } else { 9246 throw new Error(data.error); 9247 } 9248 if (intentState.operatorList) { 9249 intentState.operatorList.lastChunk = true; 9250 for (var i = 0; i < intentState.renderTasks.length; i++) { 9251 intentState.renderTasks[i].operatorListChanged(); 9252 } 9253 } 9254 }, this); 9255 messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this); 9256 messageHandler.on('JpegDecode', function (data) { 9257 if (this.destroyed) { 9258 return Promise.reject(new Error('Worker was destroyed')); 9259 } 9260 if (typeof document === 'undefined') { 9261 return Promise.reject(new Error('"document" is not defined.')); 9262 } 9263 9264 var _data3 = _slicedToArray(data, 2), 9265 imageUrl = _data3[0], 9266 components = _data3[1]; 9267 9268 if (components !== 3 && components !== 1) { 9269 return Promise.reject(new Error('Only 3 components or 1 component can be returned')); 9270 } 9271 return new Promise(function (resolve, reject) { 9272 var img = new Image(); 9273 img.onload = function () { 9274 var width = img.width;
9275 var height = img.height; 9276 var size = width * height; 9277 var rgbaLength = size * 4; 9278 var buf = new Uint8ClampedArray(size * components); 9279 var tmpCanvas = document.createElement('canvas'); 9280 tmpCanvas.width = width; 9281 tmpCanvas.height = height; 9282 var tmpCtx = tmpCanvas.getContext('2d'); 9283 tmpCtx.drawImage(img, 0, 0); 9284 var data = tmpCtx.getImageData(0, 0, width, height).data; 9285 if (components === 3) { 9286 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { 9287 buf[j] = data[i]; 9288 buf[j + 1] = data[i + 1]; 9289 buf[j + 2] = data[i + 2]; 9290 } 9291 } else if (components === 1) { 9292 for (var _i = 0, _j = 0; _i < rgbaLength; _i += 4, _j++) { 9293 buf[_j] = data[_i]; 9294 } 9295 } 9296 resolve({ 9297 data: buf, 9298 width: width, 9299 height: height 9300 }); 9301 }; 9302 img.onerror = function () { 9303 reject(new Error('JpegDecode failed to load image')); 9304 }; 9305 img.src = imageUrl; 9306 }); 9307 }, this); 9308 messageHandler.on('FetchBuiltInCMap', function (data) { 9309 if (this.destroyed) { 9310 return Promise.reject(new Error('Worker was destroyed')); 9311 } 9312 return this.CMapReaderFactory.fetch({ name: data.name }); 9313 }, this); 9314 } 9315 }, { 9316 key: '_onUnsupportedFeature', 9317 value: function _onUnsupportedFeature(_ref6) { 9318 var featureId = _ref6.featureId; 9319 9320 if (this.destroyed) { 9321 return; 9322 } 9323 if (this.loadingTask.onUnsupportedFeature) { 9324 this.loadingTask.onUnsupportedFeature(featureId); 9325 } 9326 } 9327 }, { 9328 key: 'getData', 9329 value: function getData() { 9330 return this.messageHandler.sendWithPromise('GetData', null); 9331 } 9332 }, { 9333 key: 'getPage', 9334 value: function getPage(pageNumber) { 9335 var _this13 = this; 9336 9337 if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) { 9338 return Promise.reject(new Error('Invalid page request')); 9339 } 9340 var pageIndex = pageNumber - 1; 9341 if (pageIndex in this.pagePromises) { 9342 return this.pagePromises[pageIndex]; 9343 } 9344 var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) { 9345 if (_this13.destroyed) { 9346 throw new Error('Transport destroyed'); 9347 } 9348 var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug); 9349 _this13.pageCache[pageIndex] = page; 9350 return page; 9351 }); 9352 this.pagePromises[pageIndex] = promise; 9353 return promise; 9354 } 9355 }, { 9356 key: 'getPageIndex', 9357 value: function getPageIndex(ref) { 9358 return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }).catch(function (reason) { 9359 return Promise.reject(new Error(reason)); 9360 }); 9361 } 9362 }, { 9363 key: 'getAnnotations', 9364 value: function getAnnotations(pageIndex, intent) { 9365 return this.messageHandler.sendWithPromise('GetAnnotations', { 9366 pageIndex: pageIndex, 9367 intent: intent 9368 }); 9369 } 9370 }, { 9371 key: 'getDestinations', 9372 value: function getDestinations() { 9373 return this.messageHandler.sendWithPromise('GetDestinations', null); 9374 } 9375 }, { 9376 key: 'getDestination', 9377 value: function getDestination(id) { 9378 if (typeof id !== 'string') { 9379 return Promise.reject(new Error('Invalid destination request.')); 9380 } 9381 return this.messageHandler.sendWithPromise('GetDestination', { id: id }); 9382 } 9383 }, { 9384 key: 'getPageLabels', 9385 value: function getPageLabels() { 9386 return this.messageHandler.sendWithPromise('GetPageLabels', null); 9387 } 9388 }, { 9389 key: 'getPageMode', 9390 value: function getPageMode() { 9391 return this.messageHandler.sendWithPromise('GetPageMode', null); 9392 } 9393 }, { 9394 key: 'getAttachments', 9395 value: function getAttachments() { 9396 return this.messageHandler.sendWithPromise('GetAttachments', null); 9397 } 9398 }, { 9399 key: 'getJavaScript', 9400 value: function getJavaScript() {
9401 return this.messageHandler.sendWithPromise('GetJavaScript', null); 9402 } 9403 }, { 9404 key: 'getOutline', 9405 value: function getOutline() { 9406 return this.messageHandler.sendWithPromise('GetOutline', null); 9407 } 9408 }, { 9409 key: 'getPermissions', 9410 value: function getPermissions() { 9411 return this.messageHandler.sendWithPromise('GetPermissions', null); 9412 } 9413 }, { 9414 key: 'getMetadata', 9415 value: function getMetadata() { 9416 var _this14 = this; 9417 9418 return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { 9419 return { 9420 info: results[0], 9421 metadata: results[1] ? new _metadata.Metadata(results[1]) : null, 9422 contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null 9423 }; 9424 }); 9425 } 9426 }, { 9427 key: 'getStats', 9428 value: function getStats() { 9429 return this.messageHandler.sendWithPromise('GetStats', null); 9430 } 9431 }, { 9432 key: 'startCleanup', 9433 value: function startCleanup() { 9434 var _this15 = this; 9435 9436 this.messageHandler.sendWithPromise('Cleanup', null).then(function () { 9437 for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) { 9438 var page = _this15.pageCache[i]; 9439 if (page) { 9440 page.cleanup(); 9441 } 9442 } 9443 _this15.commonObjs.clear(); 9444 _this15.fontLoader.clear(); 9445 }); 9446 } 9447 }, { 9448 key: 'loadingParams', 9449 get: function get() { 9450 var params = this._params; 9451 return (0, _util.shadow)(this, 'loadingParams', { 9452 disableAutoFetch: params.disableAutoFetch, 9453 disableCreateObjectURL: params.disableCreateObjectURL, 9454 disableFontFace: params.disableFontFace, 9455 nativeImageDecoderSupport: params.nativeImageDecoderSupport 9456 }); 9457 } 9458 }]); 9459 9460 return WorkerTransport; 9461}(); 9462 9463var PDFObjects = function PDFObjectsClosure() { 9464 function PDFObjects() { 9465 this.objs = Object.create(null); 9466 } 9467 PDFObjects.prototype = { 9468 ensureObj: function PDFObjects_ensureObj(objId) { 9469 if (this.objs[objId]) { 9470 return this.objs[objId]; 9471 } 9472 var obj = { 9473 capability: (0, _util.createPromiseCapability)(), 9474 data: null, 9475 resolved: false 9476 }; 9477 this.objs[objId] = obj; 9478 return obj; 9479 }, 9480 get: function PDFObjects_get(objId, callback) { 9481 if (callback) { 9482 this.ensureObj(objId).capability.promise.then(callback); 9483 return null; 9484 } 9485 var obj = this.objs[objId]; 9486 if (!obj || !obj.resolved) { 9487 throw new Error('Requesting object that isn\'t resolved yet ' + objId); 9488 } 9489 return obj.data; 9490 }, 9491 resolve: function PDFObjects_resolve(objId, data) { 9492 var obj = this.ensureObj(objId); 9493 obj.resolved = true; 9494 obj.data = data; 9495 obj.capability.resolve(data); 9496 },
9497 isResolved: function PDFObjects_isResolved(objId) { 9498 var objs = this.objs; 9499 if (!objs[objId]) { 9500 return false; 9501 } 9502 return objs[objId].resolved; 9503 }, 9504 hasData: function PDFObjects_hasData(objId) { 9505 return this.isResolved(objId); 9506 }, 9507 getData: function PDFObjects_getData(objId) { 9508 var objs = this.objs; 9509 if (!objs[objId] || !objs[objId].resolved) { 9510 return null; 9511 } 9512 return objs[objId].data; 9513 }, 9514 clear: function PDFObjects_clear() { 9515 this.objs = Object.create(null); 9516 } 9517 }; 9518 return PDFObjects; 9519}(); 9520var RenderTask = function RenderTaskClosure() { 9521 function RenderTask(internalRenderTask) { 9522 this._internalRenderTask = internalRenderTask; 9523 this.onContinue = null; 9524 } 9525 RenderTask.prototype = { 9526 get promise() { 9527 return this._internalRenderTask.capability.promise; 9528 }, 9529 cancel: function RenderTask_cancel() { 9530 this._internalRenderTask.cancel(); 9531 }, 9532 then: function RenderTask_then(onFulfilled, onRejected) { 9533 return this.promise.then.apply(this.promise, arguments); 9534 } 9535 }; 9536 return RenderTask; 9537}(); 9538var InternalRenderTask = function InternalRenderTaskClosure() { 9539 var canvasInRendering = new WeakMap(); 9540 function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) { 9541 var pdfBug = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false; 9542 9543 this.callback = callback; 9544 this.params = params; 9545 this.objs = objs; 9546 this.commonObjs = commonObjs; 9547 this.operatorListIdx = null; 9548 this.operatorList = operatorList; 9549 this.pageNumber = pageNumber; 9550 this.canvasFactory = canvasFactory; 9551 this.webGLContext = webGLContext; 9552 this._pdfBug = pdfBug; 9553 this.running = false; 9554 this.graphicsReadyCallback = null; 9555 this.graphicsReady = false; 9556 this.useRequestAnimationFrame = false; 9557 this.cancelled = false; 9558 this.capability = (0, _util.createPromiseCapability)(); 9559 this.task = new RenderTask(this); 9560 this._continueBound = this._continue.bind(this); 9561 this._scheduleNextBound = this._scheduleNext.bind(this); 9562 this._nextBound = this._next.bind(this); 9563 this._canvas = params.canvasContext.canvas; 9564 } 9565 InternalRenderTask.prototype = {
9566 initializeGraphics: function initializeGraphics(transparency) { 9567 if (this.cancelled) { 9568 return; 9569 } 9570 if (this._canvas) { 9571 if (canvasInRendering.has(this._canvas)) { 9572 throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); 9573 } 9574 canvasInRendering.set(this._canvas, this); 9575 } 9576 if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) { 9577 this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1); 9578 this.stepper.init(this.operatorList); 9579 this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); 9580 } 9581 var params = this.params; 9582 this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer); 9583 this.gfx.beginDrawing({ 9584 transform: params.transform, 9585 viewport: params.viewport, 9586 transparency: transparency, 9587 background: params.background 9588 }); 9589 this.operatorListIdx = 0; 9590 this.graphicsReady = true; 9591 if (this.graphicsReadyCallback) { 9592 this.graphicsReadyCallback(); 9593 } 9594 }, 9595 9596 cancel: function InternalRenderTask_cancel() { 9597 this.running = false; 9598 this.cancelled = true; 9599 if (this._canvas) { 9600 canvasInRendering.delete(this._canvas); 9601 } 9602 this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas')); 9603 }, 9604 operatorListChanged: function InternalRenderTask_operatorListChanged() { 9605 if (!this.graphicsReady) { 9606 if (!this.graphicsReadyCallback) { 9607 this.graphicsReadyCallback = this._continueBound; 9608 } 9609 return; 9610 } 9611 if (this.stepper) { 9612 this.stepper.updateOperatorList(this.operatorList); 9613 } 9614 if (this.running) { 9615 return; 9616 } 9617 this._continue(); 9618 }, 9619 _continue: function InternalRenderTask__continue() { 9620 this.running = true; 9621 if (this.cancelled) { 9622 return; 9623 } 9624 if (this.task.onContinue) { 9625 this.task.onContinue(this._scheduleNextBound); 9626 } else { 9627 this._scheduleNext(); 9628 } 9629 }, 9630 _scheduleNext: function InternalRenderTask__scheduleNext() { 9631 var _this16 = this; 9632 9633 if (this.useRequestAnimationFrame && typeof window !== 'undefined') { 9634 window.requestAnimationFrame(function () { 9635 _this16._nextBound().catch(_this16.callback); 9636 }); 9637 } else { 9638 Promise.resolve().then(this._nextBound).catch(this.callback); 9639 } 9640 }, 9641 _next: function InternalRenderTask__next() { 9642 var _this17 = this; 9643 9644 return new Promise(function () { 9645 if (_this17.cancelled) { 9646 return; 9647 } 9648 _this17.operatorListIdx = _this17.gfx.executeOperatorList(_this17.operatorList, _this17.operatorListIdx, _this17._continueBound, _this17.stepper); 9649 if (_this17.operatorListIdx === _this17.operatorList.argsArray.length) { 9650 _this17.running = false; 9651 if (_this17.operatorList.lastChunk) { 9652 _this17.gfx.endDrawing(); 9653 if (_this17._canvas) { 9654 canvasInRendering.delete(_this17._canvas); 9655 } 9656 _this17.callback(); 9657 } 9658 } 9659 }); 9660 } 9661 }; 9662 return InternalRenderTask; 9663}(); 9664var version, build; 9665{ 9666 exports.version = version = '2.0.943'; 9667 exports.build = build = 'dc98bf76'; 9668} 9669exports.getDocument = getDocument; 9670exports.LoopbackPort = LoopbackPort; 9671exports.PDFDataRangeTransport = PDFDataRangeTransport; 9672exports.PDFWorker = PDFWorker; 9673exports.PDFDocumentProxy = PDFDocumentProxy; 9674exports.PDFPageProxy = PDFPageProxy; 9675exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; 9676exports.version = version; 9677exports.build = build; 9678 9679/***/ }), 9680/* 130 */ 9681/***/ (function(module, exports, __w_pdfjs_require__) { 9682 9683"use strict"; 9684 9685 9686Object.defineProperty(exports, "__esModule", { 9687 value: true 9688}); 9689exports.loadScript = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exp
9689orts.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = exports.PageViewport = undefined; 9690 9691var _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; }; }(); 9692 9693var _util = __w_pdfjs_require__(1); 9694 9695function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 9696 9697var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; 9698var SVG_NS = 'http://www.w3.org/2000/svg'; 9699 9700var DOMCanvasFactory = function () { 9701 function DOMCanvasFactory() { 9702 _classCallCheck(this, DOMCanvasFactory); 9703 } 9704 9705 _createClass(DOMCanvasFactory, [{ 9706 key: 'create', 9707 value: function create(width, height) { 9708 if (width <= 0 || height <= 0) { 9709 throw new Error('invalid canvas size'); 9710 } 9711 var canvas = document.createElement('canvas'); 9712 var context = canvas.getContext('2d'); 9713 canvas.width = width; 9714 canvas.height = height; 9715 return { 9716 canvas: canvas, 9717 context: context 9718 }; 9719 } 9720 }, { 9721 key: 'reset', 9722 value: function reset(canvasAndContext, width, height) { 9723 if (!canvasAndContext.canvas) { 9724 throw new Error('canvas is not specified'); 9725 } 9726 if (width <= 0 || height <= 0) { 9727 throw new Error('invalid canvas size'); 9728 } 9729 canvasAndContext.canvas.width = width; 9730 canvasAndContext.canvas.height = height; 9731 } 9732 }, { 9733 key: 'destroy', 9734 value: function destroy(canvasAndContext) { 9735 if (!canvasAndContext.canvas) { 9736 throw new Error('canvas is not specified'); 9737 } 9738 canvasAndContext.canvas.width = 0; 9739 canvasAndContext.canvas.height = 0; 9740 canvasAndContext.canvas = null; 9741 canvasAndContext.context = null; 9742 } 9743 }]); 9744 9745 return DOMCanvasFactory; 9746}(); 9747 9748var DOMCMapReaderFactory = function () { 9749 function DOMCMapReaderFactory(_ref) { 9750 var _ref$baseUrl = _ref.baseUrl, 9751 baseUrl = _ref$baseUrl === undefined ? null : _ref$baseUrl, 9752 _ref$isCompressed = _ref.isCompressed, 9753 isCompressed = _ref$isCompressed === undefined ? false : _ref$isCompressed; 9754 9755 _classCallCheck(this, DOMCMapReaderFactory); 9756 9757 this.baseUrl = baseUrl; 9758 this.isCompressed = isCompressed; 9759 } 9760 9761 _createClass(DOMCMapReaderFactory, [{ 9762 key: 'fetch', 9763 value: function fetch(_ref2) { 9764 var _this = this; 9765 9766 var name = _ref2.name; 9767 9768 if (!this.baseUrl) { 9769 return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.')); 9770 } 9771 if (!name) { 9772 return Promise.reject(new Error('CMap name must be specified.')); 9773 } 9774 return new Promise(function (resolve, reject) { 9775 var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : ''); 9776 var request = new XMLHttpRequest(); 9777 request.open('GET', url, true); 9778 if (_this.isCompressed) { 9779 request.responseType = 'arraybuffer'; 9780 } 9781 request.onreadystatechange = function () { 9782 if (request.readyState !== XMLHttpRequest.DONE) { 9783 return; 9784 } 9785 if (request.status === 200 || request.status === 0) { 9786 var data = void 0; 9787 if (_this.isCompressed && request.response) { 9788 data = new Uint8Array(request.response); 9789 } else if (!_this.isCompressed && request.responseText) { 9790 data = (0, _util.stringToBytes)(request.responseText); 9791 } 9792 if (data) { 9793 resolve({ 9794 cMapData: data, 9795 compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE 9796 }); 9797 return; 9798 } 9799 } 9800 reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url)); 9801 }; 9802 request.send(null); 9803 }); 9804 } 9805 }]); 9806 9807 return DOMCMapReaderFactory; 9808}(); 9809 9810var DOMSVGFactory = function () { 9811 function DOMSVGFactory() { 9812 _classCallCheck(this, DOMSVGFactory); 9813 } 9814 9815 _createClass(DOMSVGFactory, [{ 9816 key: 'create', 9817 value: function create(width, height) { 9818 (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); 9819 var svg = document.createElementNS(SVG_NS, 'svg:svg'); 9820 svg.setAttribute('version', '1.1'); 9821 svg.setAttribute('width', width + 'px'); 9822 svg.setAttribute('height', height + 'px'); 9823 svg.setAttribute('preserveAspectRatio', 'none'); 9824 svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); 9825 return svg; 9826 } 9827 }, { 9828 key: 'createElement', 9829 value: function createElement(type) { 9830 (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); 9831 return document.createElementNS(SVG_NS, type); 9832 } 9833 }]); 9834 9835 return DOMSVGFactory; 9836}(); 9837 9838var PageViewport = function () { 9839 function PageViewport(_ref3) { 9840 var viewBox = _ref3.viewBox, 9841 scale = _ref3.scale, 9842 rotation = _ref3.rotation, 9843 _ref3$offsetX = _ref3.offsetX, 9844 offsetX = _ref3$offsetX === undefined ? 0 : _ref3$offsetX, 9845 _ref3$offsetY = _ref3.offsetY, 9846 offsetY = _ref3$offsetY === undefined ? 0 : _ref3$offsetY, 9847 _ref3$dontFlip = _ref3.dontFlip, 9848 dontFlip = _ref3$dontFlip === undefined ? false : _ref3$dontFlip; 9849 9850 _classCallCheck(this, PageViewport); 9851 9852 this.viewBox = viewBox; 9853 this.scale = scale; 9854 this.rotation = rotation; 9855 this.offsetX = offsetX; 9856 this.offsetY = offsetY; 9857 var centerX = (viewBox[2] + viewBox[0]) / 2; 9858 var centerY = (viewBox[3] + viewBox[1]) / 2; 9859 var rotateA = void 0, 9860 rotateB = void 0, 9861 rotateC = void 0, 9862 rotateD = void 0; 9863 rotation = rotation % 360; 9864 rotation = rotation < 0 ? rotation + 360 : rotation; 9865 switch (rotation) { 9866 case 180: 9867 rotateA = -1; 9868 rotateB = 0; 9869 rotateC = 0; 9870 rotateD = 1; 9871 break; 9872 case 90: 9873 rotateA = 0; 9874 rotateB = 1; 9875 rotateC = 1; 9876 rotateD = 0; 9877 break; 9878 case 270: 9879 rotateA = 0; 9880 rotateB = -1; 9881 rotateC = -1; 9882 rotateD = 0; 9883 break; 9884 default: 9885 rotateA = 1; 9886 rotateB = 0; 9887 rotateC = 0; 9888 rotateD = -1; 9889 break; 9890 } 9891 if (dontFlip) { 9892 rotateC = -rotateC; 9893 rotateD = -rotateD; 9894 } 9895 var offsetCanvasX = void 0, 9896 offsetCanvasY = void 0; 9897 var width = void 0, 9898 height = void 0; 9899 if (rotateA === 0) { 9900 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; 9901 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; 9902 width = Math.abs(viewBox[3] - viewBox[1]) * scale; 9903 height = Math.abs(viewBox[2] - viewBox[0]) * scale; 9904 } else { 9905 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; 9906 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; 9907 width = Math.abs(viewBox[2] - viewBox[0]) * scale; 9908 height = Math.abs(viewBox[3] - viewBox[1]) * scale; 9909 } 9910 this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; 9911 this.width = width; 9912 this.height = height; 9913 } 9914 9915 _createClass(PageViewport, [{ 9916 key: 'clone', 9917 value: function clone() { 9918 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 9919 _ref4$scale = _ref4.scale, 9920 scale = _ref4$scale === undefined ? this.scale : _ref4$scale, 9921 _ref4$rotation = _ref4.rotation, 9922 rotation = _ref4$rotation === undefined ? this.rotation : _ref4$rotation, 9923 _ref4$dontFlip = _ref4.dontFlip, 9924 dontFlip = _ref4$dontFlip === undefined ? false : _ref4$dontFlip; 9925 9926 return new PageViewport({
9927 viewBox: this.viewBox.slice(), 9928 scale: scale, 9929 rotation: rotation, 9930 offsetX: this.offsetX, 9931 offsetY: this.offsetY, 9932 dontFlip: dontFlip 9933 }); 9934 } 9935 }, { 9936 key: 'convertToViewportPoint', 9937 value: function convertToViewportPoint(x, y) { 9938 return _util.Util.applyTransform([x, y], this.transform); 9939 } 9940 }, { 9941 key: 'convertToViewportRectangle', 9942 value: function convertToViewportRectangle(rect) { 9943 var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform); 9944 var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform); 9945 return [tl[0], tl[1], br[0], br[1]]; 9946 } 9947 }, { 9948 key: 'convertToPdfPoint', 9949 value: function convertToPdfPoint(x, y) { 9950 return _util.Util.applyInverseTransform([x, y], this.transform); 9951 } 9952 }]); 9953 9954 return PageViewport; 9955}(); 9956 9957var RenderingCancelledException = function RenderingCancelledException() { 9958 function RenderingCancelledException(msg, type) { 9959 this.message = msg; 9960 this.type = type; 9961 } 9962 RenderingCancelledException.prototype = new Error(); 9963 RenderingCancelledException.prototype.name = 'RenderingCancelledException'; 9964 RenderingCancelledException.constructor = RenderingCancelledException; 9965 return RenderingCancelledException; 9966}(); 9967var LinkTarget = { 9968 NONE: 0, 9969 SELF: 1, 9970 BLANK: 2, 9971 PARENT: 3, 9972 TOP: 4 9973}; 9974var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; 9975function addLinkAttributes(link) { 9976 var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 9977 url = _ref5.url, 9978 target = _ref5.target, 9979 rel = _ref5.rel; 9980 9981 link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; 9982 if (url) { 9983 var LinkTargetValues = Object.values(LinkTarget); 9984 var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; 9985 link.target = LinkTargetStringMap[targetIndex]; 9986 link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL; 9987 } 9988} 9989function getFilenameFromUrl(url) { 9990 var anchor = url.indexOf('#'); 9991 var query = url.indexOf('?'); 9992 var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); 9993 return url.substring(url.lastIndexOf('/', end) + 1, end); 9994} 9995 9996var StatTimer = function () { 9997 function StatTimer() { 9998 var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 9999 10000 _classCallCheck(this, StatTimer); 10001 10002 this.enabled = !!enable; 10003 this.started = Object.create(null); 10004 this.times = []; 10005 } 10006 10007 _createClass(StatTimer, [{ 10008 key: 'time', 10009 value: function time(name) { 10010 if (!this.enabled) { 10011 return; 10012 } 10013 if (name in this.started) { 10014 (0, _util.warn)('Timer is already running for ' + name); 10015 } 10016 this.started[name] = Date.now(); 10017 } 10018 }, { 10019 key: 'timeEnd', 10020 value: function timeEnd(name) { 10021 if (!this.enabled) { 10022 return; 10023 } 10024 if (!(name in this.started)) { 10025 (0, _util.warn)('Timer has not been started for ' + name); 10026 } 10027 this.times.push({ 10028 'name': name, 10029 'start': this.started[name], 10030 'end': Date.now() 10031 }); 10032 delete this.started[name]; 10033 } 10034 }, { 10035 key: 'toString', 10036 value: function toString() { 10037 var times = this.times; 10038 var out = '', 10039 longest = 0; 10040 for (var i = 0, ii = times.length; i < ii; ++i) { 10041 var name = times[i]['name']; 10042 if (name.length > longest) { 10043 longest = name.length; 10044 } 10045 } 10046 for (var _i = 0, _ii = times.length; _i < _ii; ++_i) { 10047 var span = times[_i]; 10048 var duration = span.end - span.start; 10049 out += span['name'].padEnd(longest) + ' ' + duration + 'ms\n'; 10050 } 10051 return out; 10052 } 10053 }]); 10054 10055 return StatTimer; 10056}(); 10057 10058var DummyStatTimer = function () { 10059 function DummyStatTimer() { 10060 _classCallCheck(this, DummyStatTimer); 10061 10062 (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); 10063 } 10064 10065 _createClass(DummyStatTimer, null, [{ 10066 key: 'time', 10067 value: function time(name) {} 10068 }, { 10069 key: 'timeEnd', 10070 value: function timeEnd(name) {} 10071 }, { 10072 key: 'toString', 10073 value: function toString() { 10074 return ''; 10075 } 10076 }]); 10077 10078 return DummyStatTimer; 10079}(); 10080 10081function loadScript(src) { 10082 return new Promise(function (resolve, reject) { 10083 var script = document.createElement('script'); 10084 script.src = src; 10085 script.onload = resolve; 10086 script.onerror = function () { 10087 reject(new Error('Cannot load script at: ' + script.src)); 10088 }; 10089 (document.head || document.documentElement).appendChild(script); 10090 }); 10091} 10092exports.PageViewport = PageViewport; 10093exports.RenderingCancelledException = RenderingCancelledException; 10094exports.addLinkAttributes = addLinkAttributes; 10095exports.getFilenameFromUrl = getFilenameFromUrl; 10096exports.LinkTarget = LinkTarget; 10097exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
10098exports.DOMCanvasFactory = DOMCanvasFactory; 10099exports.DOMCMapReaderFactory = DOMCMapReaderFactory; 10100exports.DOMSVGFactory = DOMSVGFactory; 10101exports.StatTimer = StatTimer; 10102exports.DummyStatTimer = DummyStatTimer; 10103exports.loadScript = loadScript; 10104 10105/***/ }), 10106/* 131 */ 10107/***/ (function(module, exports, __w_pdfjs_require__) { 10108 10109"use strict"; 10110 10111 10112Object.defineProperty(exports, "__esModule", { 10113 value: true 10114}); 10115exports.FontLoader = exports.FontFaceObject = undefined; 10116 10117var _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; }; }(); 10118 10119var _util = __w_pdfjs_require__(1); 10120 10121function _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; } 10122 10123function _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; } 10124 10125function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 10126 10127var BaseFontLoader = function () { 10128 function BaseFontLoader(docId) { 10129 _classCallCheck(this, BaseFontLoader); 10130 10131 if (this.constructor === BaseFontLoader) { 10132 (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); 10133 } 10134 this.docId = docId; 10135 this.nativeFontFaces = []; 10136 this.styleElement = null; 10137 this.loadingContext = { 10138 requests: [], 10139 nextRequestId: 0 10140 }; 10141 } 10142 10143 _createClass(BaseFontLoader, [{ 10144 key: 'addNativeFontFace', 10145 value: function addNativeFontFace(nativeFontFace) { 10146 this.nativeFontFaces.push(nativeFontFace); 10147 document.fonts.add(nativeFontFace); 10148 } 10149 }, { 10150 key: 'insertRule', 10151 value: function insertRule(rule) { 10152 var styleElement = this.styleElement; 10153 if (!styleElement) { 10154 styleElement = this.styleElement = document.createElement('style'); 10155 styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId; 10156 document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); 10157 } 10158 var styleSheet = styleElement.sheet; 10159 styleSheet.insertRule(rule, styleSheet.cssRules.length); 10160 } 10161 }, { 10162 key: 'clear', 10163 value: function clear() { 10164 this.nativeFontFaces.forEach(function (nativeFontFace) { 10165 document.fonts.delete(nativeFontFace); 10166 }); 10167 this.nativeFontFaces.length = 0; 10168 if (this.styleElement) { 10169 this.styleElement.remove(); 10170 this.styleElement = null; 10171 } 10172 } 10173 }, { 10174 key: 'bind', 10175 value: function bind(fonts, callback) { 10176 var rules = []; 10177 var fontsToLoad = []; 10178 var fontLoadPromises = []; 10179 var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) { 10180 return nativeFontFace.loaded.catch(function (reason) { 10181 (0, _util.warn)('Failed to load font "' + nativeFontFace.family + '": ' + reason); 10182 }); 10183 }; 10184 var _iteratorNormalCompletion = true; 10185 var _didIteratorError = false; 10186 var _iteratorError = undefined; 10187 10188 try { 10189 for (var _iterator = fonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 10190 var font = _step.value; 10191 10192 if (font.attached || font.missingFile) { 10193 continue; 10194 } 10195 font.attached = true; 10196 if (this.isFontLoadingAPISupported) { 10197 var nativeFontFace = font.createNativeFontFace(); 10198 if (nativeFontFace) { 10199 this.addNativeFontFace(nativeFontFace);
10200 fontLoadPromises.push(getNativeFontPromise(nativeFontFace)); 10201 } 10202 } else { 10203 var rule = font.createFontFaceRule(); 10204 if (rule) { 10205 this.insertRule(rule); 10206 rules.push(rule); 10207 fontsToLoad.push(font); 10208 } 10209 } 10210 } 10211 } catch (err) { 10212 _didIteratorError = true; 10213 _iteratorError = err; 10214 } finally { 10215 try { 10216 if (!_iteratorNormalCompletion && _iterator.return) { 10217 _iterator.return(); 10218 } 10219 } finally { 10220 if (_didIteratorError) { 10221 throw _iteratorError; 10222 } 10223 } 10224 } 10225 10226 var request = this._queueLoadingCallback(callback); 10227 if (this.isFontLoadingAPISupported) { 10228 Promise.all(fontLoadPromises).then(request.complete); 10229 } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) { 10230 this._prepareFontLoadEvent(rules, fontsToLoad, request); 10231 } else { 10232 request.complete(); 10233 } 10234 } 10235 }, { 10236 key: '_queueLoadingCallback', 10237 value: function _queueLoadingCallback(callback) { 10238 function completeRequest() { 10239 (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); 10240 request.done = true; 10241 while (context.requests.length > 0 && context.requests[0].done) { 10242 var otherRequest = context.requests.shift(); 10243 setTimeout(otherRequest.callback, 0); 10244 } 10245 } 10246 var context = this.loadingContext; 10247 var request = { 10248 id: 'pdfjs-font-loading-' + context.nextRequestId++, 10249 done: false, 10250 complete: completeRequest, 10251 callback: callback 10252 }; 10253 context.requests.push(request); 10254 return request; 10255 } 10256 }, { 10257 key: '_prepareFontLoadEvent', 10258 value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { 10259 (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); 10260 } 10261 }, { 10262 key: 'isFontLoadingAPISupported', 10263 get: function get() { 10264 (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); 10265 } 10266 }, { 10267 key: 'isSyncFontLoadingSupported', 10268 get: function get() { 10269 (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); 10270 } 10271 }, { 10272 key: '_loadTestFont', 10273 get: function get() { 10274 (0, _util.unreachable)('Abstract method `_loadTestFont`.'); 10275 } 10276 }]); 10277 10278 return BaseFontLoader; 10279}(); 10280 10281var FontLoader = void 0; 10282{ 10283 exports.FontLoader = FontLoader = function (_BaseFontLoader) { 10284 _inherits(GenericFontLoader, _BaseFontLoader); 10285 10286 function GenericFontLoader(docId) { 10287 _classCallCheck(this, GenericFontLoader); 10288 10289 var _this = _possibleConstructorReturn(this, (GenericFontLoader.__proto__ || Object.getPrototypeOf(GenericFontLoader)).call(this, docId)); 10290 10291 _this.loadTestFontId = 0; 10292 return _this; 10293 } 10294 10295 _createClass(GenericFontLoader, [{ 10296 key: '_prepareFontLoadEvent', 10297 value: function _prepareFontLoadEvent(rules, fonts, request) { 10298 function int32(data, offset) { 10299 return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; 10300 } 10301 function spliceString(s, offset, remove, insert) { 10302 var chunk1 = s.substring(0, offset); 10303 var chunk2 = s.substring(offset + remove); 10304 return chunk1 + insert + chunk2; 10305 } 10306 var i = void 0, 10307 ii = void 0; 10308 var canvas = document.createElement('canvas'); 10309 canvas.width = 1; 10310 canvas.height = 1; 10311 var ctx = canvas.getContext('2d'); 10312 var called = 0; 10313 function isFontReady(name, callback) { 10314 called++; 10315 if (called > 30) { 10316 (0, _util.warn)('Load test font never loaded.'); 10317 callback(); 10318 return; 10319 } 10320 ctx.font = '30px ' + name; 10321 ctx.fillText('.', 0, 20); 10322 var imageData = ctx.getImageData(0, 0, 1, 1); 10323 if (imageData.data[3] > 0) { 10324 callback(); 10325 return; 10326 } 10327 setTimeout(isFontReady.bind(null, name, callback)); 10328 } 10329 var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++; 10330 var data = this._loadTestFont; 10331 var COMMENT_OFFSET = 976;
10332 data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); 10333 var CFF_CHECKSUM_OFFSET = 16; 10334 var XXXX_VALUE = 0x58585858; 10335 var checksum = int32(data, CFF_CHECKSUM_OFFSET); 10336 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { 10337 checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; 10338 } 10339 if (i < loadTestFontId.length) { 10340 checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; 10341 } 10342 data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); 10343 var url = 'url(data:font/opentype;base64,' + btoa(data) + ');'; 10344 var rule = '@font-face {font-family:"' + loadTestFontId + '";src:' + url + '}'; 10345 this.insertRule(rule); 10346 var names = []; 10347 for (i = 0, ii = fonts.length; i < ii; i++) { 10348 names.push(fonts[i].loadedName); 10349 } 10350 names.push(loadTestFontId); 10351 var div = document.createElement('div'); 10352 div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); 10353 for (i = 0, ii = names.length; i < ii; ++i) { 10354 var span = document.createElement('span'); 10355 span.textContent = 'Hi'; 10356 span.style.fontFamily = names[i]; 10357 div.appendChild(span); 10358 } 10359 document.body.appendChild(div); 10360 isFontReady(loadTestFontId, function () { 10361 document.body.removeChild(div); 10362 request.complete(); 10363 }); 10364 } 10365 }, { 10366 key: 'isFontLoadingAPISupported', 10367 get: function get() { 10368 var supported = typeof document !== 'undefined' && !!document.fonts; 10369 if (supported && typeof navigator !== 'undefined') { 10370 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 10371 if (m && m[1] < 63) { 10372 supported = false; 10373 } 10374 } 10375 return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); 10376 } 10377 }, { 10378 key: 'isSyncFontLoadingSupported', 10379 get: function get() { 10380 var supported = false; 10381 if (typeof navigator === 'undefined') { 10382 supported = true; 10383 } else { 10384 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 10385 if (m && m[1] >= 14) { 10386 supported = true; 10387 } 10388 } 10389 return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); 10390 } 10391 }, { 10392 key: '_loadTestFont', 10393 get: function get() { 10394 var getLoadTestFont = function getLoadTestFont() { 10395 return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=='); 10396 }; 10397 return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); 10398 } 10399 }]); 10400 10401 return GenericFontLoader; 10402 }(BaseFontLoader); 10403} 10404var IsEvalSupportedCached = { 10405 get value() { 10406 return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); 10407 } 10408}; 10409 10410var FontFaceObject = function () { 10411 function FontFaceObject(translatedData, _ref) { 10412 var _ref$isEvalSupported = _ref.isEvalSupported, 10413 isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported, 10414 _ref$disableFontFace = _ref.disableFontFace, 10415 disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace, 10416 _ref$ignoreErrors = _ref.ignoreErrors, 10417 ignoreErrors = _ref$ignoreErrors === undefined ? false : _ref$ignoreErrors, 10418 _ref$onUnsupportedFea = _ref.onUnsupportedFeature, 10419 onUnsupportedFeature = _ref$onUnsupportedFea === undefined ? null : _ref$onUnsupportedFea, 10420 _ref$fontRegistry = _ref.fontRegistry, 10421 fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry; 10422 10423 _classCallCheck(this, FontFaceObject); 10424 10425 this.compiledGlyphs = Object.create(null); 10426 for (var i in translatedData) { 10427 this[i] = translatedData[i]; 10428 } 10429 this.isEvalSupported = isEvalSupported !== false; 10430 this.disableFontFace = disableFontFace === true; 10431 this.ignoreErrors = ignoreErrors === true; 10432 this._onUnsupportedFeature = onUnsupportedFeature; 10433 this.fontRegistry = fontRegistry; 10434 } 10435 10436 _createClass(FontFaceObject, [{ 10437 key: 'createNativeFontFace', 10438 value: function createNativeFontFace() { 10439 if (!this.data || this.disableFontFace) { 10440 return null; 10441 } 10442 var nativeFontFace = new FontFace(this.loadedName, this.data, {}); 10443 if (this.fontRegistry) { 10444 this.fontRegistry.registerFont(this); 10445 } 10446 return nativeFontFace; 10447 } 10448 }, { 10449 key: 'createFontFaceRule', 10450 value: function createFontFaceRule() { 10451 if (!this.data || this.disableFontFace) { 10452 return null; 10453 } 10454 var data = (0, _util.bytesToString)(new Uint8Array(this.data)); 10455 var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');'; 10456 var rule = '@font-face {font-family:"' + this.loadedName + '";src:' + url + '}'; 10457 if (this.fontRegistry) { 10458 this.fontRegistry.registerFont(this, url); 10459 } 10460 return rule; 10461 } 10462 }, { 10463 key: 'getPathGenerator', 10464 value: function getPathGenerator(objs, character) { 10465 if (this.compiledGlyphs[character] !== undefined) { 10466 return this.compiledGlyphs[character]; 10467 } 10468 var cmds = void 0, 10469 current = void 0;
10470 try { 10471 cmds = objs.get(this.loadedName + '_path_' + character); 10472 } catch (ex) { 10473 if (!this.ignoreErrors) { 10474 throw ex; 10475 } 10476 if (this._onUnsupportedFeature) { 10477 this._onUnsupportedFeature({ featureId: _util.UNSUPPORTED_FEATURES.font }); 10478 } 10479 (0, _util.warn)('getPathGenerator - ignoring character: "' + ex + '".'); 10480 return this.compiledGlyphs[character] = function (c, size) {}; 10481 } 10482 if (this.isEvalSupported && IsEvalSupportedCached.value) { 10483 var args = void 0, 10484 js = ''; 10485 for (var i = 0, ii = cmds.length; i < ii; i++) { 10486 current = cmds[i]; 10487 if (current.args !== undefined) { 10488 args = current.args.join(','); 10489 } else { 10490 args = ''; 10491 } 10492 js += 'c.' + current.cmd + '(' + args + ');\n'; 10493 } 10494 return this.compiledGlyphs[character] = new Function('c', 'size', js); 10495 } 10496 return this.compiledGlyphs[character] = function (c, size) { 10497 for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { 10498 current = cmds[_i]; 10499 if (current.cmd === 'scale') { 10500 current.args = [size, -size]; 10501 } 10502 c[current.cmd].apply(c, current.args); 10503 } 10504 }; 10505 } 10506 }]); 10507 10508 return FontFaceObject; 10509}(); 10510 10511exports.FontFaceObject = FontFaceObject; 10512exports.FontLoader = FontLoader; 10513 10514/***/ }), 10515/* 132 */ 10516/***/ (function(module, exports, __w_pdfjs_require__) { 10517 10518"use strict"; 10519 10520 10521var compatibilityParams = Object.create(null); 10522{ 10523 var isNodeJS = __w_pdfjs_require__(4); 10524 var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; 10525 var isIE = /Trident/.test(userAgent); 10526 var isIOSChrome = /CriOS/.test(userAgent); 10527 (function checkOnBlobSupport() { 10528 if (isIE || isIOSChrome) { 10529 compatibilityParams.disableCreateObjectURL = true; 10530 } 10531 })(); 10532 (function checkFontFaceAndImage() { 10533 if (isNodeJS()) { 10534 compatibilityParams.disableFontFace = true; 10535 compatibilityParams.nativeImageDecoderSupport = 'none'; 10536 } 10537 })(); 10538} 10539exports.apiCompatibilityParams = Object.freeze(compatibilityParams); 10540 10541/***/ }), 10542/* 133 */ 10543/***/ (function(module, exports, __w_pdfjs_require__) { 10544 10545"use strict"; 10546 10547 10548Object.defineProperty(exports, "__esModule", { 10549 value: true 10550}); 10551exports.CanvasGraphics = undefined; 10552 10553var _util = __w_pdfjs_require__(1); 10554 10555var _pattern_helper = __w_pdfjs_require__(134); 10556 10557var MIN_FONT_SIZE = 16; 10558var MAX_FONT_SIZE = 100; 10559var MAX_GROUP_SIZE = 4096; 10560var MIN_WIDTH_FACTOR = 0.65; 10561var COMPILE_TYPE3_GLYPHS = true; 10562var MAX_SIZE_TO_COMPILE = 1000; 10563var FULL_CHUNK_HEIGHT = 16; 10564var IsLittleEndianCached = { 10565 get value() { 10566 return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); 10567 } 10568}; 10569function addContextCurrentTransform(ctx) { 10570 if (!ctx.mozCurrentTransform) { 10571 ctx._originalSave = ctx.save; 10572 ctx._originalRestore = ctx.restore; 10573 ctx._originalRotate = ctx.rotate; 10574 ctx._originalScale = ctx.scale; 10575 ctx._originalTranslate = ctx.translate; 10576 ctx._originalTransform = ctx.transform; 10577 ctx._originalSetTransform = ctx.setTransform; 10578 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; 10579 ctx._transformStack = []; 10580 Object.defineProperty(ctx, 'mozCurrentTransform', { 10581 get: function getCurrentTransform() { 10582 return this._transformMatrix; 10583 } 10584 }); 10585 Object.defineProperty(ctx, 'mozCurrentTransformInverse', { 10586 get: function getCurrentTransformInverse() { 10587 var m = this._transformMatrix; 10588 var a = m[0], 10589 b = m[1], 10590 c = m[2], 10591 d = m[3], 10592 e = m[4], 10593 f = m[5]; 10594 var ad_bc = a * d - b * c; 10595 var bc_ad = b * c - a * d; 10596 return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc]; 10597 } 10598 }); 10599 ctx.save = function ctxSave() { 10600 var old = this._transformMatrix; 10601 this._transformStack.push(old); 10602 this._transformMatrix = old.slice(0, 6); 10603 this._originalSave(); 10604 }; 10605 ctx.restore = function ctxRestore() { 10606 var prev = this._transformStack.pop(); 10607 if (prev) { 10608 this._transformMatrix = prev; 10609 this._originalRestore(); 10610 } 10611 }; 10612 ctx.translate = function ctxTranslate(x, y) { 10613 var m = this._transformMatrix; 10614 m[4] = m[0] * x + m[2] * y + m[4]; 10615 m[5] = m[1] * x + m[3] * y + m[5]; 10616 this._originalTranslate(x, y); 10617 }; 10618 ctx.scale = function ctxScale(x, y) { 10619 var m = this._transformMatrix; 10620 m[0] = m[0] * x; 10621 m[1] = m[1] * x; 10622 m[2] = m[2] * y; 10623 m[3] = m[3] * y; 10624 this._originalScale(x, y); 10625 }; 10626 ctx.transform = function ctxTransform(a, b, c, d, e, f) { 10627 var m = this._transformMatrix; 10628 this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]]; 10629 ctx._originalTransform(a, b, c, d, e, f); 10630 }; 10631 ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { 10632 this._transformMatrix = [a, b, c, d, e, f]; 10633 ctx._originalSetTransform(a, b, c, d, e, f); 10634 }; 10635 ctx.rotate = function ctxRotate(angle) {
10636 var cosValue = Math.cos(angle); 10637 var sinValue = Math.sin(angle); 10638 var m = this._transformMatrix; 10639 this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]]; 10640 this._originalRotate(angle); 10641 }; 10642 } 10643} 10644var CachedCanvases = function CachedCanvasesClosure() { 10645 function CachedCanvases(canvasFactory) { 10646 this.canvasFactory = canvasFactory; 10647 this.cache = Object.create(null); 10648 } 10649 CachedCanvases.prototype = { 10650 getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { 10651 var canvasEntry; 10652 if (this.cache[id] !== undefined) { 10653 canvasEntry = this.cache[id]; 10654 this.canvasFactory.reset(canvasEntry, width, height); 10655 canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); 10656 } else { 10657 canvasEntry = this.canvasFactory.create(width, height); 10658 this.cache[id] = canvasEntry; 10659 } 10660 if (trackTransform) { 10661 addContextCurrentTransform(canvasEntry.context); 10662 } 10663 return canvasEntry; 10664 }, 10665 clear: function clear() { 10666 for (var id in this.cache) { 10667 var canvasEntry = this.cache[id]; 10668 this.canvasFactory.destroy(canvasEntry); 10669 delete this.cache[id]; 10670 } 10671 } 10672 }; 10673 return CachedCanvases; 10674}(); 10675function compileType3Glyph(imgData) { 10676 var POINT_TO_PROCESS_LIMIT = 1000; 10677 var width = imgData.width, 10678 height = imgData.height; 10679 var i, 10680 j, 10681 j0, 10682 width1 = width + 1; 10683 var points = new Uint8Array(width1 * (height + 1)); 10684 var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); 10685 var lineSize = width + 7 & ~7, 10686 data0 = imgData.data; 10687 var data = new Uint8Array(lineSize * height), 10688 pos = 0, 10689 ii; 10690 for (i = 0, ii = data0.length; i < ii; i++) { 10691 var mask = 128, 10692 elem = data0[i]; 10693 while (mask > 0) { 10694 data[pos++] = elem & mask ? 0 : 255; 10695 mask >>= 1; 10696 } 10697 } 10698 var count = 0; 10699 pos = 0; 10700 if (data[pos] !== 0) { 10701 points[0] = 1; 10702 ++count; 10703 } 10704 for (j = 1; j < width; j++) { 10705 if (data[pos] !== data[pos + 1]) { 10706 points[j] = data[pos] ? 2 : 1; 10707 ++count; 10708 } 10709 pos++; 10710 } 10711 if (data[pos] !== 0) { 10712 points[j] = 2; 10713 ++count; 10714 } 10715 for (i = 1; i < height; i++) { 10716 pos = i * lineSize; 10717 j0 = i * width1; 10718 if (data[pos - lineSize] !== data[pos]) { 10719 points[j0] = data[pos] ? 1 : 8; 10720 ++count; 10721 } 10722 var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); 10723 for (j = 1; j < width; j++) { 10724 sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); 10725 if (POINT_TYPES[sum]) { 10726 points[j0 + j] = POINT_TYPES[sum]; 10727 ++count; 10728 } 10729 pos++; 10730 } 10731 if (data[pos - lineSize] !== data[pos]) { 10732 points[j0 + j] = data[pos] ? 2 : 4; 10733 ++count; 10734 } 10735 if (count > POINT_TO_PROCESS_LIMIT) { 10736 return null; 10737 } 10738 } 10739 pos = lineSize * (height - 1); 10740 j0 = i * width1; 10741 if (data[pos] !== 0) { 10742 points[j0] = 8; 10743 ++count; 10744 } 10745 for (j = 1; j < width; j++) { 10746 if (data[pos] !== data[pos + 1]) { 10747 points[j0 + j] = data[pos] ? 4 : 8; 10748 ++count; 10749 } 10750 pos++; 10751 } 10752 if (data[pos] !== 0) { 10753 points[j0 + j] = 4; 10754 ++count; 10755 } 10756 if (count > POINT_TO_PROCESS_LIMIT) { 10757 return null; 10758 } 10759 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); 10760 var outlines = []; 10761 for (i = 0; count && i <= height; i++) { 10762 var p = i * width1; 10763 var end = p + width; 10764 while (p < end && !points[p]) { 10765 p++; 10766 } 10767 if (p === end) { 10768 continue; 10769 } 10770 var coords = [p % width1, i]; 10771 var type = points[p], 10772 p0 = p, 10773 pp; 10774 do { 10775 var step = steps[type]; 10776 do { 10777 p += step; 10778 } while (!points[p]); 10779 pp = points[p]; 10780 if (pp !== 5 && pp !== 10) { 10781 type = pp; 10782 points[p] = 0; 10783 } else { 10784 type = pp & 0x33 * type >> 4; 10785 points[p] &= type >> 2 | type << 2; 10786 } 10787 coords.push(p % width1); 10788 coords.push(p / width1 | 0); 10789 --count; 10790 } while (p0 !== p); 10791 outlines.push(coords); 10792 --i; 10793 } 10794 var drawOutline = function drawOutline(c) { 10795 c.save(); 10796 c.scale(1 / width, -1 / height); 10797 c.translate(0, -height); 10798 c.beginPath(); 10799 for (var i = 0, ii = outlines.length; i < ii; i++) { 10800 var o = outlines[i]; 10801 c.moveTo(o[0], o[1]); 10802 for (var j = 2, jj = o.length; j < jj; j += 2) { 10803 c.lineTo(o[j], o[j + 1]); 10804 } 10805 } 10806 c.fill(); 10807 c.beginPath();
10808 c.restore(); 10809 }; 10810 return drawOutline; 10811} 10812var CanvasExtraState = function CanvasExtraStateClosure() { 10813 function CanvasExtraState() { 10814 this.alphaIsShape = false; 10815 this.fontSize = 0; 10816 this.fontSizeScale = 1; 10817 this.textMatrix = _util.IDENTITY_MATRIX; 10818 this.textMatrixScale = 1; 10819 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 10820 this.leading = 0; 10821 this.x = 0; 10822 this.y = 0; 10823 this.lineX = 0; 10824 this.lineY = 0; 10825 this.charSpacing = 0; 10826 this.wordSpacing = 0; 10827 this.textHScale = 1; 10828 this.textRenderingMode = _util.TextRenderingMode.FILL; 10829 this.textRise = 0; 10830 this.fillColor = '#000000'; 10831 this.strokeColor = '#000000'; 10832 this.patternFill = false; 10833 this.fillAlpha = 1; 10834 this.strokeAlpha = 1; 10835 this.lineWidth = 1; 10836 this.activeSMask = null; 10837 this.resumeSMaskCtx = null; 10838 } 10839 CanvasExtraState.prototype = { 10840 clone: function CanvasExtraState_clone() { 10841 return Object.create(this); 10842 }, 10843 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { 10844 this.x = x; 10845 this.y = y; 10846 } 10847 }; 10848 return CanvasExtraState; 10849}(); 10850var CanvasGraphics = function CanvasGraphicsClosure() { 10851 var EXECUTION_TIME = 15; 10852 var EXECUTION_STEPS = 10; 10853 function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { 10854 this.ctx = canvasCtx; 10855 this.current = new CanvasExtraState(); 10856 this.stateStack = []; 10857 this.pendingClip = null; 10858 this.pendingEOFill = false; 10859 this.res = null; 10860 this.xobjs = null; 10861 this.commonObjs = commonObjs; 10862 this.objs = objs; 10863 this.canvasFactory = canvasFactory; 10864 this.webGLContext = webGLContext; 10865 this.imageLayer = imageLayer; 10866 this.groupStack = []; 10867 this.processingType3 = null; 10868 this.baseTransform = null; 10869 this.baseTransformStack = []; 10870 this.groupLevel = 0; 10871 this.smaskStack = []; 10872 this.smaskCounter = 0; 10873 this.tempSMask = null; 10874 this.cachedCanvases = new CachedCanvases(this.canvasFactory); 10875 if (canvasCtx) { 10876 addContextCurrentTransform(canvasCtx); 10877 } 10878 this._cachedGetSinglePixelWidth = null; 10879 } 10880 function putBinaryImageData(ctx, imgData) { 10881 if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { 10882 ctx.putImageData(imgData, 0, 0); 10883 return; 10884 } 10885 var height = imgData.height, 10886 width = imgData.width; 10887 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 10888 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 10889 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 10890 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 10891 var srcPos = 0, 10892 destPos; 10893 var src = imgData.data; 10894 var dest = chunkImgData.data; 10895 var i, j, thisChunkHeight, elemsInThisChunk; 10896 if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { 10897 var srcLength = src.byteLength; 10898 var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); 10899 var dest32DataLength = dest32.length; 10900 var fullSrcDiff = width + 7 >> 3; 10901 var white = 0xFFFFFFFF; 10902 var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; 10903 for (i = 0; i < totalChunks; i++) { 10904 thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 10905 destPos = 0; 10906 for (j = 0; j < thisChunkHeight; j++) { 10907 var srcDiff = srcLength - srcPos; 10908 var k = 0; 10909 var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; 10910 var kEndUnrolled = kEnd & ~7; 10911 var mask = 0; 10912 var srcByte = 0; 10913 for (; k < kEndUnrolled; k += 8) { 10914 srcByte = src[srcPos++]; 10915 dest32[destPos++] = srcByte & 128 ? white : black; 10916 dest32[destPos++] = srcByte & 64 ? white : black; 10917 dest32[destPos++] = srcByte & 32 ? white : black; 10918 dest32[destPos++] = srcByte & 16 ? white : black; 10919 dest32[destPos++] = srcByte & 8 ? white : black; 10920 dest32[destPos++] = srcByte & 4 ? white : black; 10921 dest32[destPos++] = srcByte & 2 ? white : black; 10922 dest32[destPos++] = srcByte & 1 ? white : black; 10923 } 10924 for (; k < kEnd; k++) { 10925 if (mask === 0) { 10926 srcByte = src[srcPos++]; 10927 mask = 128; 10928 } 10929 dest32[destPos++] = srcByte & mask ? white : black; 10930 mask >>= 1; 10931 } 10932 } 10933 while (destPos < dest32DataLength) { 10934 dest32[destPos++] = 0; 10935 } 10936 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 10937 } 10938 } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { 10939 j = 0; 10940 elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; 10941 for (i = 0; i < fullChunks; i++) { 10942 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 10943 srcPos += elemsInThisChunk; 10944 ctx.putImageData(chunkImgData, 0, j); 10945 j += FULL_CHUNK_HEIGHT; 10946 } 10947 if (i < totalChunks) { 10948 elemsInThisChunk = width * partialChunkHeight * 4; 10949 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 10950 ctx.putImageData(chunkImgData, 0, j); 10951 } 10952 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { 10953 thisChunkHeight = FULL_CHUNK_HEIGHT; 10954 elemsInThisChunk = width * thisChunkHeight; 10955 for (i = 0; i < totalChunks; i++) { 10956 if (i >= fullChunks) { 10957 thisChunkHeight = partialChunkHeight; 10958 elemsInThisChunk = width * thisChunkHeight; 10959 } 10960 destPos = 0;
10961 for (j = elemsInThisChunk; j--;) { 10962 dest[destPos++] = src[srcPos++]; 10963 dest[destPos++] = src[srcPos++]; 10964 dest[destPos++] = src[srcPos++]; 10965 dest[destPos++] = 255; 10966 } 10967 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 10968 } 10969 } else { 10970 throw new Error('bad image kind: ' + imgData.kind); 10971 } 10972 } 10973 function putBinaryImageMask(ctx, imgData) { 10974 var height = imgData.height, 10975 width = imgData.width; 10976 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 10977 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 10978 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 10979 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 10980 var srcPos = 0; 10981 var src = imgData.data; 10982 var dest = chunkImgData.data; 10983 for (var i = 0; i < totalChunks; i++) { 10984 var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 10985 var destPos = 3; 10986 for (var j = 0; j < thisChunkHeight; j++) { 10987 var mask = 0; 10988 for (var k = 0; k < width; k++) { 10989 if (!mask) { 10990 var elem = src[srcPos++]; 10991 mask = 128; 10992 } 10993 dest[destPos] = elem & mask ? 0 : 255; 10994 destPos += 4; 10995 mask >>= 1; 10996 } 10997 } 10998 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 10999 } 11000 } 11001 function copyCtxState(sourceCtx, destCtx) { 11002 var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; 11003 for (var i = 0, ii = properties.length; i < ii; i++) { 11004 var property = properties[i]; 11005 if (sourceCtx[property] !== undefined) { 11006 destCtx[property] = sourceCtx[property]; 11007 } 11008 } 11009 if (sourceCtx.setLineDash !== undefined) { 11010 destCtx.setLineDash(sourceCtx.getLineDash()); 11011 destCtx.lineDashOffset = sourceCtx.lineDashOffset; 11012 } 11013 } 11014 function resetCtxToDefault(ctx) { 11015 ctx.strokeStyle = '#000000'; 11016 ctx.fillStyle = '#000000'; 11017 ctx.fillRule = 'nonzero'; 11018 ctx.globalAlpha = 1; 11019 ctx.lineWidth = 1; 11020 ctx.lineCap = 'butt'; 11021 ctx.lineJoin = 'miter'; 11022 ctx.miterLimit = 10; 11023 ctx.globalCompositeOperation = 'source-over'; 11024 ctx.font = '10px sans-serif'; 11025 if (ctx.setLineDash !== undefined) { 11026 ctx.setLineDash([]); 11027 ctx.lineDashOffset = 0; 11028 } 11029 } 11030 function composeSMaskBackdrop(bytes, r0, g0, b0) { 11031 var length = bytes.length; 11032 for (var i = 3; i < length; i += 4) { 11033 var alpha = bytes[i]; 11034 if (alpha === 0) { 11035 bytes[i - 3] = r0; 11036 bytes[i - 2] = g0; 11037 bytes[i - 1] = b0; 11038 } else if (alpha < 255) { 11039 var alpha_ = 255 - alpha; 11040 bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; 11041 bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; 11042 bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; 11043 } 11044 } 11045 } 11046 function composeSMaskAlpha(maskData, layerData, transferMap) { 11047 var length = maskData.length; 11048 var scale = 1 / 255; 11049 for (var i = 3; i < length; i += 4) { 11050 var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; 11051 layerData[i] = layerData[i] * alpha * scale | 0; 11052 } 11053 } 11054 function composeSMaskLuminosity(maskData, layerData, transferMap) { 11055 var length = maskData.length; 11056 for (var i = 3; i < length; i += 4) { 11057 var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; 11058 layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; 11059 } 11060 } 11061 function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { 11062 var hasBackdrop = !!backdrop; 11063 var r0 = hasBackdrop ? backdrop[0] : 0; 11064 var g0 = hasBackdrop ? backdrop[1] : 0; 11065 var b0 = hasBackdrop ? backdrop[2] : 0; 11066 var composeFn; 11067 if (subtype === 'Luminosity') { 11068 composeFn = composeSMaskLuminosity; 11069 } else { 11070 composeFn = composeSMaskAlpha; 11071 } 11072 var PIXELS_TO_PROCESS = 1048576; 11073 var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); 11074 for (var row = 0; row < height; row += chunkSize) { 11075 var chunkHeight = Math.min(chunkSize, height - row); 11076 var maskData = maskCtx.getImageData(0, row, width, chunkHeight); 11077 var layerData = layerCtx.getImageData(0, row, width, chunkHeight); 11078 if (hasBackdrop) { 11079 composeSMaskBackdrop(maskData.data, r0, g0, b0); 11080 } 11081 composeFn(maskData.data, layerData.data, transferMap); 11082 maskCtx.putImageData(layerData, 0, row); 11083 } 11084 } 11085 function composeSMask(ctx, smask, layerCtx, webGLContext) { 11086 var mask = smask.canvas; 11087 var maskCtx = smask.context; 11088 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); 11089 var backdrop = smask.backdrop || null; 11090 if (!smask.transferMap && webGLContext.isEnabled) { 11091 var composed = webGLContext.composeSMask({ 11092 layer: layerCtx.canvas, 11093 mask: mask, 11094 properties: { 11095 subtype: smask.subtype, 11096 backdrop: backdrop 11097 } 11098 }); 11099 ctx.setTransform(1, 0, 0, 1, 0, 0); 11100 ctx.drawImage(composed, smask.offsetX, smask.offsetY); 11101 return; 11102 } 11103 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); 11104 ctx.drawImage(mask, 0, 0); 11105 }
11106 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 11107 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 11108 var NORMAL_CLIP = {}; 11109 var EO_CLIP = {}; 11110 CanvasGraphics.prototype = { 11111 beginDrawing: function beginDrawing(_ref) { 11112 var transform = _ref.transform, 11113 viewport = _ref.viewport, 11114 transparency = _ref.transparency, 11115 _ref$background = _ref.background, 11116 background = _ref$background === undefined ? null : _ref$background; 11117 11118 var width = this.ctx.canvas.width; 11119 var height = this.ctx.canvas.height; 11120 this.ctx.save(); 11121 this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; 11122 this.ctx.fillRect(0, 0, width, height); 11123 this.ctx.restore(); 11124 if (transparency) { 11125 var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); 11126 this.compositeCtx = this.ctx; 11127 this.transparentCanvas = transparentCanvas.canvas; 11128 this.ctx = transparentCanvas.context; 11129 this.ctx.save(); 11130 this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); 11131 } 11132 this.ctx.save(); 11133 resetCtxToDefault(this.ctx); 11134 if (transform) { 11135 this.ctx.transform.apply(this.ctx, transform); 11136 } 11137 this.ctx.transform.apply(this.ctx, viewport.transform); 11138 this.baseTransform = this.ctx.mozCurrentTransform.slice(); 11139 if (this.imageLayer) { 11140 this.imageLayer.beginLayout(); 11141 } 11142 }, 11143 11144 executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { 11145 var argsArray = operatorList.argsArray; 11146 var fnArray = operatorList.fnArray; 11147 var i = executionStartIdx || 0; 11148 var argsArrayLen = argsArray.length; 11149 if (argsArrayLen === i) { 11150 return i; 11151 } 11152 var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; 11153 var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; 11154 var steps = 0; 11155 var commonObjs = this.commonObjs; 11156 var objs = this.objs; 11157 var fnId; 11158 while (true) { 11159 if (stepper !== undefined && i === stepper.nextBreakPoint) { 11160 stepper.breakIt(i, continueCallback); 11161 return i; 11162 } 11163 fnId = fnArray[i]; 11164 if (fnId !== _util.OPS.dependency) { 11165 this[fnId].apply(this, argsArray[i]); 11166 } else { 11167 var deps = argsArray[i]; 11168 for (var n = 0, nn = deps.length; n < nn; n++) { 11169 var depObjId = deps[n]; 11170 var common = depObjId[0] === 'g' && depObjId[1] === '_'; 11171 var objsPool = common ? commonObjs : objs; 11172 if (!objsPool.isResolved(depObjId)) { 11173 objsPool.get(depObjId, continueCallback); 11174 return i; 11175 } 11176 } 11177 } 11178 i++; 11179 if (i === argsArrayLen) { 11180 return i; 11181 } 11182 if (chunkOperations && ++steps > EXECUTION_STEPS) { 11183 if (Date.now() > endTime) { 11184 continueCallback(); 11185 return i; 11186 } 11187 steps = 0; 11188 } 11189 } 11190 }, 11191 endDrawing: function CanvasGraphics_endDrawing() { 11192 if (this.current.activeSMask !== null) { 11193 this.endSMaskGroup(); 11194 } 11195 this.ctx.restore(); 11196 if (this.transparentCanvas) { 11197 this.ctx = this.compositeCtx; 11198 this.ctx.save(); 11199 this.ctx.setTransform(1, 0, 0, 1, 0, 0); 11200 this.ctx.drawImage(this.transparentCanvas, 0, 0); 11201 this.ctx.restore(); 11202 this.transparentCanvas = null; 11203 } 11204 this.cachedCanvases.clear(); 11205 this.webGLContext.clear(); 11206 if (this.imageLayer) { 11207 this.imageLayer.endLayout(); 11208 } 11209 }, 11210 setLineWidth: function CanvasGraphics_setLineWidth(width) { 11211 this.current.lineWidth = width; 11212 this.ctx.lineWidth = width; 11213 }, 11214 setLineCap: function CanvasGraphics_setLineCap(style) { 11215 this.ctx.lineCap = LINE_CAP_STYLES[style]; 11216 }, 11217 setLineJoin: function CanvasGraphics_setLineJoin(style) { 11218 this.ctx.lineJoin = LINE_JOIN_STYLES[style]; 11219 }, 11220 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { 11221 this.ctx.miterLimit = limit; 11222 }, 11223 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { 11224 var ctx = this.ctx; 11225 if (ctx.setLineDash !== undefined) { 11226 ctx.setLineDash(dashArray); 11227 ctx.lineDashOffset = dashPhase; 11228 } 11229 }, 11230 setRenderingIntent: function CanvasGraphics_setRenderingIntent
vendor: 4,102 bytes, lines 11230-11336
11230(intent) {}, 11231 setFlatness: function CanvasGraphics_setFlatness(flatness) {}, 11232 setGState: function CanvasGraphics_setGState(states) { 11233 for (var i = 0, ii = states.length; i < ii; i++) { 11234 var state = states[i]; 11235 var key = state[0]; 11236 var value = state[1]; 11237 switch (key) { 11238 case 'LW': 11239 this.setLineWidth(value); 11240 break; 11241 case 'LC': 11242 this.setLineCap(value); 11243 break; 11244 case 'LJ': 11245 this.setLineJoin(value); 11246 break; 11247 case 'ML': 11248 this.setMiterLimit(value); 11249 break; 11250 case 'D': 11251 this.setDash(value[0], value[1]); 11252 break; 11253 case 'RI': 11254 this.setRenderingIntent(value); 11255 break; 11256 case 'FL': 11257 this.setFlatness(value); 11258 break; 11259 case 'Font': 11260 this.setFont(value[0], value[1]); 11261 break; 11262 case 'CA': 11263 this.current.strokeAlpha = state[1]; 11264 break; 11265 case 'ca': 11266 this.current.fillAlpha = state[1]; 11267 this.ctx.globalAlpha = state[1]; 11268 break; 11269 case 'BM': 11270 this.ctx.globalCompositeOperation = value; 11271 break; 11272 case 'SMask': 11273 if (this.current.activeSMask) { 11274 if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { 11275 this.suspendSMaskGroup(); 11276 } else { 11277 this.endSMaskGroup(); 11278 } 11279 } 11280 this.current.activeSMask = value ? this.tempSMask : null; 11281 if (this.current.activeSMask) { 11282 this.beginSMaskGroup(); 11283 } 11284 this.tempSMask = null; 11285 break; 11286 } 11287 } 11288 }, 11289 beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { 11290 var activeSMask = this.current.activeSMask; 11291 var drawnWidth = activeSMask.canvas.width; 11292 var drawnHeight = activeSMask.canvas.height; 11293 var cacheId = 'smaskGroupAt' + this.groupLevel; 11294 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 11295 var currentCtx = this.ctx; 11296 var currentTransform = currentCtx.mozCurrentTransform; 11297 this.ctx.save(); 11298 var groupCtx = scratchCanvas.context; 11299 groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); 11300 groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); 11301 groupCtx.transform.apply(groupCtx, currentTransform); 11302 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; 11303 copyCtxState(currentCtx, groupCtx); 11304 this.ctx = groupCtx; 11305 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 11306 this.groupStack.push(currentCtx); 11307 this.groupLevel++; 11308 }, 11309 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { 11310 var groupCtx = this.ctx; 11311 this.groupLevel--; 11312 this.ctx = this.groupStack.pop(); 11313 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); 11314 this.ctx.restore(); 11315 this.ctx.save(); 11316 copyCtxState(groupCtx, this.ctx); 11317 this.current.resumeSMaskCtx = groupCtx; 11318 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 11319 this.ctx.transform.apply(this.ctx, deltaTransform); 11320 groupCtx.save(); 11321 groupCtx.setTransform(1, 0, 0, 1, 0, 0); 11322 groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); 11323 groupCtx.restore(); 11324 }, 11325 resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { 11326 var groupCtx = this.current.resumeSMaskCtx; 11327 var currentCtx = this.ctx; 11328 this.ctx = groupCtx; 11329 this.groupStack.push(currentCtx); 11330 this.groupLevel++; 11331 }, 11332 endSMaskGroup: function CanvasGraphics_endSMaskGroup() { 11333 var groupCtx = this.ctx; 11334 this.groupLevel--; 11335 this.ctx = this.groupStack.pop(); 11336 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
11337 this.ctx.restore(); 11338 copyCtxState(groupCtx, this.ctx); 11339 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 11340 this.ctx.transform.apply(this.ctx, deltaTransform); 11341 }, 11342 save: function CanvasGraphics_save() { 11343 this.ctx.save(); 11344 var old = this.current; 11345 this.stateStack.push(old); 11346 this.current = old.clone(); 11347 this.current.resumeSMaskCtx = null; 11348 }, 11349 restore: function CanvasGraphics_restore() { 11350 if (this.current.resumeSMaskCtx) { 11351 this.resumeSMaskGroup(); 11352 } 11353 if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { 11354 this.endSMaskGroup(); 11355 } 11356 if (this.stateStack.length !== 0) { 11357 this.current = this.stateStack.pop(); 11358 this.ctx.restore(); 11359 this.pendingClip = null; 11360 this._cachedGetSinglePixelWidth = null; 11361 } 11362 }, 11363 transform: function CanvasGraphics_transform(a, b, c, d, e, f) { 11364 this.ctx.transform(a, b, c, d, e, f); 11365 this._cachedGetSinglePixelWidth = null; 11366 }, 11367 constructPath: function CanvasGraphics_constructPath(ops, args) { 11368 var ctx = this.ctx; 11369 var current = this.current; 11370 var x = current.x, 11371 y = current.y; 11372 for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { 11373 switch (ops[i] | 0) { 11374 case _util.OPS.rectangle: 11375 x = args[j++]; 11376 y = args[j++]; 11377 var width = args[j++]; 11378 var height = args[j++]; 11379 if (width === 0) { 11380 width = this.getSinglePixelWidth(); 11381 } 11382 if (height === 0) { 11383 height = this.getSinglePixelWidth(); 11384 } 11385 var xw = x + width; 11386 var yh = y + height; 11387 this.ctx.moveTo(x, y); 11388 this.ctx.lineTo(xw, y); 11389 this.ctx.lineTo(xw, yh); 11390 this.ctx.lineTo(x, yh); 11391 this.ctx.lineTo(x, y); 11392 this.ctx.closePath(); 11393 break; 11394 case _util.OPS.moveTo: 11395 x = args[j++]; 11396 y = args[j++]; 11397 ctx.moveTo(x, y); 11398 break; 11399 case _util.OPS.lineTo: 11400 x = args[j++]; 11401 y = args[j++]; 11402 ctx.lineTo(x, y); 11403 break; 11404 case _util.OPS.curveTo: 11405 x = args[j + 4]; 11406 y = args[j + 5]; 11407 ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); 11408 j += 6; 11409 break; 11410 case _util.OPS.curveTo2: 11411 ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); 11412 x = args[j + 2]; 11413 y = args[j + 3]; 11414 j += 4; 11415 break; 11416 case _util.OPS.curveTo3: 11417 x = args[j + 2]; 11418 y = args[j + 3]; 11419 ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); 11420 j += 4; 11421 break; 11422 case _util.OPS.closePath: 11423 ctx.closePath(); 11424 break; 11425 } 11426 } 11427 current.setCurrentPoint(x, y); 11428 }, 11429 closePath: function CanvasGraphics_closePath() { 11430 this.ctx.closePath(); 11431 }, 11432 stroke: function CanvasGraphics_stroke(consumePath) { 11433 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 11434 var ctx = this.ctx; 11435 var strokeColor = this.current.strokeColor; 11436 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); 11437 ctx.globalAlpha = this.current.strokeAlpha; 11438 if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { 11439 ctx.save(); 11440 ctx.strokeStyle = strokeColor.getPattern(ctx, this); 11441 ctx.stroke(); 11442 ctx.restore(); 11443 } else { 11444 ctx.stroke(); 11445 } 11446 if (consumePath) { 11447 this.consumePath(); 11448 } 11449 ctx.globalAlpha = this.current.fillAlpha; 11450 }, 11451 closeStroke: function CanvasGraphics_closeStroke() { 11452 this.closePath(); 11453 this.stroke(); 11454 }, 11455 fill: function CanvasGraphics_fill(consumePath) {
11456 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 11457 var ctx = this.ctx; 11458 var fillColor = this.current.fillColor; 11459 var isPatternFill = this.current.patternFill; 11460 var needRestore = false; 11461 if (isPatternFill) { 11462 ctx.save(); 11463 if (this.baseTransform) { 11464 ctx.setTransform.apply(ctx, this.baseTransform); 11465 } 11466 ctx.fillStyle = fillColor.getPattern(ctx, this); 11467 needRestore = true; 11468 } 11469 if (this.pendingEOFill) { 11470 ctx.fill('evenodd'); 11471 this.pendingEOFill = false; 11472 } else { 11473 ctx.fill(); 11474 } 11475 if (needRestore) { 11476 ctx.restore(); 11477 } 11478 if (consumePath) { 11479 this.consumePath(); 11480 } 11481 }, 11482 eoFill: function CanvasGraphics_eoFill() { 11483 this.pendingEOFill = true; 11484 this.fill(); 11485 }, 11486 fillStroke: function CanvasGraphics_fillStroke() { 11487 this.fill(false); 11488 this.stroke(false); 11489 this.consumePath(); 11490 }, 11491 eoFillStroke: function CanvasGraphics_eoFillStroke() { 11492 this.pendingEOFill = true; 11493 this.fillStroke(); 11494 }, 11495 closeFillStroke: function CanvasGraphics_closeFillStroke() { 11496 this.closePath(); 11497 this.fillStroke(); 11498 }, 11499 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { 11500 this.pendingEOFill = true; 11501 this.closePath(); 11502 this.fillStroke(); 11503 }, 11504 endPath: function CanvasGraphics_endPath() { 11505 this.consumePath(); 11506 }, 11507 clip: function CanvasGraphics_clip() { 11508 this.pendingClip = NORMAL_CLIP; 11509 }, 11510 eoClip: function CanvasGraphics_eoClip() { 11511 this.pendingClip = EO_CLIP; 11512 }, 11513 beginText: function CanvasGraphics_beginText() { 11514 this.current.textMatrix = _util.IDENTITY_MATRIX; 11515 this.current.textMatrixScale = 1; 11516 this.current.x = this.current.lineX = 0; 11517 this.current.y = this.current.lineY = 0; 11518 }, 11519 endText: function CanvasGraphics_endText() { 11520 var paths = this.pendingTextPaths; 11521 var ctx = this.ctx; 11522 if (paths === undefined) { 11523 ctx.beginPath(); 11524 return; 11525 } 11526 ctx.save(); 11527 ctx.beginPath(); 11528 for (var i = 0; i < paths.length; i++) { 11529 var path = paths[i]; 11530 ctx.setTransform.apply(ctx, path.transform); 11531 ctx.translate(path.x, path.y); 11532 path.addToPath(ctx, path.fontSize); 11533 } 11534 ctx.restore(); 11535 ctx.clip(); 11536 ctx.beginPath(); 11537 delete this.pendingTextPaths; 11538 }, 11539 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { 11540 this.current.charSpacing = spacing; 11541 }, 11542 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { 11543 this.current.wordSpacing = spacing; 11544 }, 11545 setHScale: function CanvasGraphics_setHScale(scale) { 11546 this.current.textHScale = scale / 100; 11547 }, 11548 setLeading: function CanvasGraphics_setLeading(leading) { 11549 this.current.leading = -leading; 11550 }, 11551 setFont: function CanvasGraphics_setFont(fontRefName, size) { 11552 var fontObj = this.commonObjs.get(fontRefName); 11553 var current = this.current; 11554 if (!fontObj) { 11555 throw new Error('Can\'t find font for ' + fontRefName); 11556 } 11557 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 11558 if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { 11559 (0, _util.warn)('Invalid font matrix for font ' + fontRefName); 11560 } 11561 if (size < 0) { 11562 size = -size; 11563 current.fontDirection = -1; 11564 } else { 11565 current.fontDirection = 1; 11566 } 11567 this.current.font = fontObj; 11568 this.current.fontSize = size; 11569 if (fontObj.isType3Font) { 11570 return; 11571 } 11572 var name = fontObj.loadedName || 'sans-serif'; 11573 var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; 11574 var italic = fontObj.italic ? 'italic' : 'normal'; 11575 var typeface = '"' + name + '", ' + fontObj.fallbackName; 11576 var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; 11577 this.current.fontSizeScale = size / browserFontSize; 11578 var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; 11579 this.ctx.font = rule; 11580 }, 11581 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { 11582 this.current.textRenderingMode = mode; 11583 }, 11584 setTextRise: function CanvasGraphics_setTextRise(rise) { 11585 this.current.textRise = rise; 11586 }, 11587 moveText: function CanvasGraphics_moveText(x, y) { 11588 this.current.x = this.current.lineX += x; 11589 this.current.y = this.current.lineY += y; 11590 },
11591 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { 11592 this.setLeading(-y); 11593 this.moveText(x, y); 11594 }, 11595 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { 11596 this.current.textMatrix = [a, b, c, d, e, f]; 11597 this.current.textMatrixScale = Math.sqrt(a * a + b * b); 11598 this.current.x = this.current.lineX = 0; 11599 this.current.y = this.current.lineY = 0; 11600 }, 11601 nextLine: function CanvasGraphics_nextLine() { 11602 this.moveText(0, this.current.leading); 11603 }, 11604 paintChar: function paintChar(character, x, y, patternTransform) { 11605 var ctx = this.ctx; 11606 var current = this.current; 11607 var font = current.font; 11608 var textRenderingMode = current.textRenderingMode; 11609 var fontSize = current.fontSize / current.fontSizeScale; 11610 var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 11611 var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); 11612 var patternFill = current.patternFill && font.data; 11613 var addToPath; 11614 if (font.disableFontFace || isAddToPathSet || patternFill) { 11615 addToPath = font.getPathGenerator(this.commonObjs, character); 11616 } 11617 if (font.disableFontFace || patternFill) { 11618 ctx.save(); 11619 ctx.translate(x, y); 11620 ctx.beginPath(); 11621 addToPath(ctx, fontSize); 11622 if (patternTransform) { 11623 ctx.setTransform.apply(ctx, patternTransform); 11624 } 11625 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11626 ctx.fill(); 11627 } 11628 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11629 ctx.stroke(); 11630 } 11631 ctx.restore(); 11632 } else { 11633 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11634 ctx.fillText(character, x, y); 11635 } 11636 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11637 ctx.strokeText(character, x, y); 11638 } 11639 } 11640 if (isAddToPathSet) { 11641 var paths = this.pendingTextPaths || (this.pendingTextPaths = []); 11642 paths.push({ 11643 transform: ctx.mozCurrentTransform, 11644 x: x, 11645 y: y, 11646 fontSize: fontSize, 11647 addToPath: addToPath 11648 }); 11649 } 11650 }, 11651 11652 get isFontSubpixelAAEnabled() { 11653 var ctx = this.canvasFactory.create(10, 10).context; 11654 ctx.scale(1.5, 1); 11655 ctx.fillText('I', 0, 10); 11656 var data = ctx.getImageData(0, 0, 10, 10).data; 11657 var enabled = false; 11658 for (var i = 3; i < data.length; i += 4) { 11659 if (data[i] > 0 && data[i] < 255) { 11660 enabled = true; 11661 break; 11662 } 11663 } 11664 return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); 11665 }, 11666 showText: function CanvasGraphics_showText(glyphs) { 11667 var current = this.current; 11668 var font = current.font; 11669 if (font.isType3Font) { 11670 return this.showType3Text(glyphs); 11671 } 11672 var fontSize = current.fontSize; 11673 if (fontSize === 0) { 11674 return; 11675 } 11676 var ctx = this.ctx; 11677 var fontSizeScale = current.fontSizeScale; 11678 var charSpacing = current.charSpacing; 11679 var wordSpacing = current.wordSpacing; 11680 var fontDirection = current.fontDirection; 11681 var textHScale = current.textHScale * fontDirection; 11682 var glyphsLength = glyphs.length; 11683 var vertical = font.vertical; 11684 var spacingDir = vertical ? 1 : -1; 11685 var defaultVMetrics = font.defaultVMetrics; 11686 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 11687 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; 11688 ctx.save(); 11689 var patternTransform = void 0; 11690 if (current.patternFill) { 11691 ctx.save(); 11692 var pattern = current.fillColor.getPattern(ctx, this); 11693 patternTransform = ctx.mozCurrentTransform;
11694 ctx.restore(); 11695 ctx.fillStyle = pattern; 11696 } 11697 ctx.transform.apply(ctx, current.textMatrix); 11698 ctx.translate(current.x, current.y + current.textRise); 11699 if (fontDirection > 0) { 11700 ctx.scale(textHScale, -1); 11701 } else { 11702 ctx.scale(textHScale, 1); 11703 } 11704 var lineWidth = current.lineWidth; 11705 var scale = current.textMatrixScale; 11706 if (scale === 0 || lineWidth === 0) { 11707 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 11708 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11709 this._cachedGetSinglePixelWidth = null; 11710 lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; 11711 } 11712 } else { 11713 lineWidth /= scale; 11714 } 11715 if (fontSizeScale !== 1.0) { 11716 ctx.scale(fontSizeScale, fontSizeScale); 11717 lineWidth /= fontSizeScale; 11718 } 11719 ctx.lineWidth = lineWidth; 11720 var x = 0, 11721 i; 11722 for (i = 0; i < glyphsLength; ++i) { 11723 var glyph = glyphs[i]; 11724 if ((0, _util.isNum)(glyph)) { 11725 x += spacingDir * glyph * fontSize / 1000; 11726 continue; 11727 } 11728 var restoreNeeded = false; 11729 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 11730 var character = glyph.fontChar; 11731 var accent = glyph.accent; 11732 var scaledX, scaledY, scaledAccentX, scaledAccentY; 11733 var width = glyph.width; 11734 if (vertical) { 11735 var vmetric, vx, vy; 11736 vmetric = glyph.vmetric || defaultVMetrics; 11737 vx = glyph.vmetric ? vmetric[1] : width * 0.5; 11738 vx = -vx * widthAdvanceScale; 11739 vy = vmetric[2] * widthAdvanceScale; 11740 width = vmetric ? -vmetric[0] : width; 11741 scaledX = vx / fontSizeScale; 11742 scaledY = (x + vy) / fontSizeScale; 11743 } else { 11744 scaledX = x / fontSizeScale; 11745 scaledY = 0; 11746 } 11747 if (font.remeasure && width > 0) { 11748 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; 11749 if (width < measuredWidth && this.isFontSubpixelAAEnabled) { 11750 var characterScaleX = width / measuredWidth; 11751 restoreNeeded = true; 11752 ctx.save(); 11753 ctx.scale(characterScaleX, 1); 11754 scaledX /= characterScaleX; 11755 } else if (width !== measuredWidth) { 11756 scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; 11757 } 11758 } 11759 if (glyph.isInFont || font.missingFile) { 11760 if (simpleFillText && !accent) { 11761 ctx.fillText(character, scaledX, scaledY); 11762 } else { 11763 this.paintChar(character, scaledX, scaledY, patternTransform); 11764 if (accent) { 11765 scaledAccentX = scaledX + accent.offset.x / fontSizeScale; 11766 scaledAccentY = scaledY - accent.offset.y / fontSizeScale; 11767 this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); 11768 } 11769 } 11770 } 11771 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 11772 x += charWidth; 11773 if (restoreNeeded) { 11774 ctx.restore(); 11775 } 11776 } 11777 if (vertical) { 11778 current.y -= x * textHScale; 11779 } else { 11780 current.x += x * textHScale; 11781 } 11782 ctx.restore(); 11783 }, 11784 showType3Text: function CanvasGraphics_showType3Text(glyphs) { 11785 var ctx = this.ctx; 11786 var current = this.current; 11787 var font = current.font; 11788 var fontSize = current.fontSize; 11789 var fontDirection = current.fontDirection; 11790 var spacingDir = font.vertical ? 1 : -1; 11791 var charSpacing = current.charSpacing; 11792 var wordSpacing = current.wordSpacing; 11793 var textHScale = current.textHScale * fontDirection; 11794 var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; 11795 var glyphsLength = glyphs.length; 11796 var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; 11797 var i, glyph, width, spacingLength; 11798 if (isTextInvisible || fontSize === 0) { 11799 return; 11800 } 11801 this._cachedGetSinglePixelWidth = null; 11802 ctx.save(); 11803 ctx.transform.apply(ctx, current.textMatrix); 11804 ctx.translate(current.x, current.y); 11805 ctx.scale(textHScale, fontDirection); 11806 for (i = 0; i < glyphsLength; ++i) { 11807 glyph = glyphs[i];
11808 if ((0, _util.isNum)(glyph)) { 11809 spacingLength = spacingDir * glyph * fontSize / 1000; 11810 this.ctx.translate(spacingLength, 0); 11811 current.x += spacingLength * textHScale; 11812 continue; 11813 } 11814 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 11815 var operatorList = font.charProcOperatorList[glyph.operatorListId]; 11816 if (!operatorList) { 11817 (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.'); 11818 continue; 11819 } 11820 this.processingType3 = glyph; 11821 this.save(); 11822 ctx.scale(fontSize, fontSize); 11823 ctx.transform.apply(ctx, fontMatrix); 11824 this.executeOperatorList(operatorList); 11825 this.restore(); 11826 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); 11827 width = transformed[0] * fontSize + spacing; 11828 ctx.translate(width, 0); 11829 current.x += width * textHScale; 11830 } 11831 ctx.restore(); 11832 this.processingType3 = null; 11833 }, 11834 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, 11835 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { 11836 this.ctx.rect(llx, lly, urx - llx, ury - lly); 11837 this.clip(); 11838 this.endPath(); 11839 }, 11840 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { 11841 var _this = this; 11842 11843 var pattern; 11844 if (IR[0] === 'TilingPattern') { 11845 var color = IR[1]; 11846 var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); 11847 var canvasGraphicsFactory = { 11848 createCanvasGraphics: function createCanvasGraphics(ctx) { 11849 return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); 11850 } 11851 }; 11852 pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); 11853 } else { 11854 pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); 11855 } 11856 return pattern; 11857 }, 11858 setStrokeColorN: function CanvasGraphics_setStrokeColorN() { 11859 this.current.strokeColor = this.getColorN_Pattern(arguments); 11860 }, 11861 setFillColorN: function CanvasGraphics_setFillColorN() { 11862 this.current.fillColor = this.getColorN_Pattern(arguments); 11863 this.current.patternFill = true; 11864 }, 11865 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { 11866 var color = _util.Util.makeCssRgb(r, g, b); 11867 this.ctx.strokeStyle = color; 11868 this.current.strokeColor = color; 11869 }, 11870 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { 11871 var color = _util.Util.makeCssRgb(r, g, b); 11872 this.ctx.fillStyle = color; 11873 this.current.fillColor = color; 11874 this.current.patternFill = false; 11875 }, 11876 shadingFill: function CanvasGraphics_shadingFill(patternIR) { 11877 var ctx = this.ctx; 11878 this.save(); 11879 var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); 11880 ctx.fillStyle = pattern.getPattern(ctx, this, true); 11881 var inv = ctx.mozCurrentTransformInverse; 11882 if (inv) { 11883 var canvas = ctx.canvas; 11884 var width = canvas.width; 11885 var height = canvas.height; 11886 var bl = _util.Util.applyTransform([0, 0], inv); 11887 var br = _util.Util.applyTransform([0, height], inv); 11888 var ul = _util.Util.applyTransform([width, 0], inv); 11889 var ur = _util.Util.applyTransform([width, height], inv); 11890 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); 11891 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); 11892 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); 11893 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); 11894 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); 11895 } else { 11896 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); 11897 } 11898 this.restore(); 11899 }, 11900 beginInlineImage: function CanvasGraphics_beginInlineImage() { 11901 (0, _util.unreachable)('Should not call beginInlineImage'); 11902 }, 11903 beginImageData: function CanvasGraphics_beginImageData() { 11904 (0, _util.unreachable)('Should not call beginImageData'); 11905 }, 11906 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { 11907 this.save(); 11908 this.baseTransformStack.push(this.baseTransform); 11909 if (Array.isArray(matrix) && matrix.length === 6) { 11910 this.transform.apply(this, matrix); 11911 } 11912 this.baseTransform = this.ctx.mozCurrentTransform; 11913 if (Array.isArray(bbox) && bbox.length === 4) { 11914 var width = bbox[2] - bbox[0]; 11915 var height = bbox[3] - bbox[1]; 11916 this.ctx.rect(bbox[0], bbox[1], width, height); 11917 this.clip(); 11918 this.endPath(); 11919 } 11920 }, 11921 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
11922 this.restore(); 11923 this.baseTransform = this.baseTransformStack.pop(); 11924 }, 11925 beginGroup: function CanvasGraphics_beginGroup(group) { 11926 this.save(); 11927 var currentCtx = this.ctx; 11928 if (!group.isolated) { 11929 (0, _util.info)('TODO: Support non-isolated groups.'); 11930 } 11931 if (group.knockout) { 11932 (0, _util.warn)('Knockout groups not supported.'); 11933 } 11934 var currentTransform = currentCtx.mozCurrentTransform; 11935 if (group.matrix) { 11936 currentCtx.transform.apply(currentCtx, group.matrix); 11937 } 11938 if (!group.bbox) { 11939 throw new Error('Bounding box is required.'); 11940 } 11941 var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); 11942 var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; 11943 bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; 11944 var offsetX = Math.floor(bounds[0]); 11945 var offsetY = Math.floor(bounds[1]); 11946 var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); 11947 var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); 11948 var scaleX = 1, 11949 scaleY = 1; 11950 if (drawnWidth > MAX_GROUP_SIZE) { 11951 scaleX = drawnWidth / MAX_GROUP_SIZE; 11952 drawnWidth = MAX_GROUP_SIZE; 11953 } 11954 if (drawnHeight > MAX_GROUP_SIZE) { 11955 scaleY = drawnHeight / MAX_GROUP_SIZE; 11956 drawnHeight = MAX_GROUP_SIZE; 11957 } 11958 var cacheId = 'groupAt' + this.groupLevel; 11959 if (group.smask) { 11960 cacheId += '_smask_' + this.smaskCounter++ % 2; 11961 } 11962 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 11963 var groupCtx = scratchCanvas.context; 11964 groupCtx.scale(1 / scaleX, 1 / scaleY); 11965 groupCtx.translate(-offsetX, -offsetY); 11966 groupCtx.transform.apply(groupCtx, currentTransform); 11967 if (group.smask) { 11968 this.smaskStack.push({ 11969 canvas: scratchCanvas.canvas, 11970 context: groupCtx, 11971 offsetX: offsetX, 11972 offsetY: offsetY, 11973 scaleX: scaleX, 11974 scaleY: scaleY, 11975 subtype: group.smask.subtype, 11976 backdrop: group.smask.backdrop, 11977 transferMap: group.smask.transferMap || null, 11978 startTransformInverse: null 11979 }); 11980 } else { 11981 currentCtx.setTransform(1, 0, 0, 1, 0, 0); 11982 currentCtx.translate(offsetX, offsetY); 11983 currentCtx.scale(scaleX, scaleY); 11984 } 11985 copyCtxState(currentCtx, groupCtx); 11986 this.ctx = groupCtx; 11987 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 11988 this.groupStack.push(currentCtx); 11989 this.groupLevel++; 11990 this.current.activeSMask = null; 11991 }, 11992 endGroup: function CanvasGraphics_endGroup(group) { 11993 this.groupLevel--; 11994 var groupCtx = this.ctx; 11995 this.ctx = this.groupStack.pop(); 11996 if (this.ctx.imageSmoothingEnabled !== undefined) { 11997 this.ctx.imageSmoothingEnabled = false; 11998 } else { 11999 this.ctx.mozImageSmoothingEnabled = false; 12000 } 12001 if (group.smask) { 12002 this.tempSMask = this.smaskStack.pop(); 12003 } else { 12004 this.ctx.drawImage(groupCtx.canvas, 0, 0); 12005 } 12006 this.restore(); 12007 }, 12008 beginAnnotations: function CanvasGraphics_beginAnnotations() { 12009 this.save(); 12010 if (this.baseTransform) { 12011 this.ctx.setTransform.apply(this.ctx, this.baseTransform); 12012 } 12013 }, 12014 endAnnotations: function CanvasGraphics_endAnnotations() { 12015 this.restore(); 12016 }, 12017 beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { 12018 this.save(); 12019 resetCtxToDefault(this.ctx); 12020 this.current = new CanvasExtraState(); 12021 if (Array.isArray(rect) && rect.length === 4) { 12022 var width = rect[2] - rect[0]; 12023 var height = rect[3] - rect[1]; 12024 this.ctx.rect(rect[0], rect[1], width, height); 12025 this.clip(); 12026 this.endPath(); 12027 } 12028 this.transform.apply(this, transform); 12029 this.transform.apply(this, matrix); 12030 }, 12031 endAnnotation: function CanvasGraphics_endAnnotation() {
vendor: 6,303 bytes, lines 12032-12191
12032 this.restore(); 12033 }, 12034 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { 12035 var domImage = this.objs.get(objId); 12036 if (!domImage) { 12037 (0, _util.warn)('Dependent image isn\'t ready yet'); 12038 return; 12039 } 12040 this.save(); 12041 var ctx = this.ctx; 12042 ctx.scale(1 / w, -1 / h); 12043 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); 12044 if (this.imageLayer) { 12045 var currentTransform = ctx.mozCurrentTransformInverse; 12046 var position = this.getCanvasPosition(0, 0); 12047 this.imageLayer.appendImage({ 12048 objId: objId, 12049 left: position[0], 12050 top: position[1], 12051 width: w / currentTransform[0], 12052 height: h / currentTransform[3] 12053 }); 12054 } 12055 this.restore(); 12056 }, 12057 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { 12058 var ctx = this.ctx; 12059 var width = img.width, 12060 height = img.height; 12061 var fillColor = this.current.fillColor; 12062 var isPatternFill = this.current.patternFill; 12063 var glyph = this.processingType3; 12064 if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { 12065 if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { 12066 glyph.compiled = compileType3Glyph({ 12067 data: img.data, 12068 width: width, 12069 height: height 12070 }); 12071 } else { 12072 glyph.compiled = null; 12073 } 12074 } 12075 if (glyph && glyph.compiled) { 12076 glyph.compiled(ctx); 12077 return; 12078 } 12079 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 12080 var maskCtx = maskCanvas.context; 12081 maskCtx.save(); 12082 putBinaryImageMask(maskCtx, img); 12083 maskCtx.globalCompositeOperation = 'source-in'; 12084 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 12085 maskCtx.fillRect(0, 0, width, height); 12086 maskCtx.restore(); 12087 this.paintInlineImageXObject(maskCanvas.canvas); 12088 }, 12089 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { 12090 var width = imgData.width; 12091 var height = imgData.height; 12092 var fillColor = this.current.fillColor; 12093 var isPatternFill = this.current.patternFill; 12094 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 12095 var maskCtx = maskCanvas.context; 12096 maskCtx.save(); 12097 putBinaryImageMask(maskCtx, imgData); 12098 maskCtx.globalCompositeOperation = 'source-in'; 12099 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 12100 maskCtx.fillRect(0, 0, width, height); 12101 maskCtx.restore(); 12102 var ctx = this.ctx; 12103 for (var i = 0, ii = positions.length; i < ii; i += 2) { 12104 ctx.save(); 12105 ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); 12106 ctx.scale(1, -1); 12107 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 12108 ctx.restore(); 12109 } 12110 }, 12111 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { 12112 var ctx = this.ctx; 12113 var fillColor = this.current.fillColor; 12114 var isPatternFill = this.current.patternFill; 12115 for (var i = 0, ii = images.length; i < ii; i++) { 12116 var image = images[i]; 12117 var width = image.width, 12118 height = image.height; 12119 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 12120 var maskCtx = maskCanvas.context; 12121 maskCtx.save(); 12122 putBinaryImageMask(maskCtx, image); 12123 maskCtx.globalCompositeOperation = 'source-in'; 12124 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 12125 maskCtx.fillRect(0, 0, width, height); 12126 maskCtx.restore(); 12127 ctx.save(); 12128 ctx.transform.apply(ctx, image.transform); 12129 ctx.scale(1, -1); 12130 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 12131 ctx.restore(); 12132 } 12133 }, 12134 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { 12135 var imgData = this.objs.get(objId); 12136 if (!imgData) { 12137 (0, _util.warn)('Dependent image isn\'t ready yet'); 12138 return; 12139 } 12140 this.paintInlineImageXObject(imgData); 12141 }, 12142 paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { 12143 var imgData = this.objs.get(objId); 12144 if (!imgData) { 12145 (0, _util.warn)('Dependent image isn\'t ready yet'); 12146 return; 12147 } 12148 var width = imgData.width; 12149 var height = imgData.height; 12150 var map = []; 12151 for (var i = 0, ii = positions.length; i < ii; i += 2) { 12152 map.push({ 12153 transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], 12154 x: 0, 12155 y: 0, 12156 w: width, 12157 h: height 12158 }); 12159 } 12160 this.paintInlineImageXObjectGroup(imgData, map); 12161 }, 12162 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { 12163 var width = imgData.width; 12164 var height = imgData.height; 12165 var ctx = this.ctx; 12166 this.save(); 12167 ctx.scale(1 / width, -1 / height); 12168 var currentTransform = ctx.mozCurrentTransformInverse; 12169 var a = currentTransform[0], 12170 b = currentTransform[1]; 12171 var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); 12172 var c = currentTransform[2], 12173 d = currentTransform[3]; 12174 var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); 12175 var imgToPaint, tmpCanvas; 12176 if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { 12177 imgToPaint = imgData; 12178 } else { 12179 tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); 12180 var tmpCtx = tmpCanvas.context; 12181 putBinaryImageData(tmpCtx, imgData); 12182 imgToPaint = tmpCanvas.canvas; 12183 } 12184 var paintWidth = width, 12185 paintHeight = height; 12186 var tmpCanvasId = 'prescale1'; 12187 while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { 12188 var newWidth = paintWidth, 12189 newHeight = paintHeight; 12190 if (widthScale > 2 && paintWidth > 1) { 12191 newWidth = Math.ceil(paintWidth / 2);
12192 widthScale /= paintWidth / newWidth; 12193 } 12194 if (heightScale > 2 && paintHeight > 1) { 12195 newHeight = Math.ceil(paintHeight / 2); 12196 heightScale /= paintHeight / newHeight; 12197 } 12198 tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); 12199 tmpCtx = tmpCanvas.context; 12200 tmpCtx.clearRect(0, 0, newWidth, newHeight); 12201 tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); 12202 imgToPaint = tmpCanvas.canvas; 12203 paintWidth = newWidth; 12204 paintHeight = newHeight; 12205 tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; 12206 } 12207 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); 12208 if (this.imageLayer) { 12209 var position = this.getCanvasPosition(0, -height); 12210 this.imageLayer.appendImage({ 12211 imgData: imgData, 12212 left: position[0], 12213 top: position[1], 12214 width: width / currentTransform[0], 12215 height: height / currentTransform[3] 12216 }); 12217 } 12218 this.restore(); 12219 }, 12220 paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { 12221 var ctx = this.ctx; 12222 var w = imgData.width; 12223 var h = imgData.height; 12224 var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); 12225 var tmpCtx = tmpCanvas.context; 12226 putBinaryImageData(tmpCtx, imgData); 12227 for (var i = 0, ii = map.length; i < ii; i++) { 12228 var entry = map[i]; 12229 ctx.save(); 12230 ctx.transform.apply(ctx, entry.transform); 12231 ctx.scale(1, -1); 12232 ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); 12233 if (this.imageLayer) { 12234 var position = this.getCanvasPosition(entry.x, entry.y); 12235 this.imageLayer.appendImage({ 12236 imgData: imgData, 12237 left: position[0], 12238 top: position[1], 12239 width: w, 12240 height: h 12241 }); 12242 } 12243 ctx.restore(); 12244 } 12245 }, 12246 paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { 12247 this.ctx.fillRect(0, 0, 1, 1); 12248 }, 12249 paintXObject: function CanvasGraphics_paintXObject() { 12250 (0, _util.warn)('Unsupported \'paintXObject\' command.'); 12251 }, 12252 markPoint: function CanvasGraphics_markPoint(tag) {}, 12253 markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, 12254 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, 12255 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, 12256 endMarkedContent: function CanvasGraphics_endMarkedContent() {}, 12257 beginCompat: function CanvasGraphics_beginCompat() {}, 12258 endCompat: function CanvasGraphics_endCompat() {}, 12259 consumePath: function CanvasGraphics_consumePath() { 12260 var ctx = this.ctx; 12261 if (this.pendingClip) { 12262 if (this.pendingClip === EO_CLIP) { 12263 ctx.clip('evenodd'); 12264 } else { 12265 ctx.clip(); 12266 } 12267 this.pendingClip = null; 12268 } 12269 ctx.beginPath(); 12270 }, 12271 getSinglePixelWidth: function getSinglePixelWidth(scale) { 12272 if (this._cachedGetSinglePixelWidth === null) { 12273 var inverse = this.ctx.mozCurrentTransformInverse; 12274 this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); 12275 } 12276 return this._cachedGetSinglePixelWidth; 12277 }, 12278 12279 getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { 12280 var transform = this.ctx.mozCurrentTransform; 12281 return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; 12282 } 12283 }; 12284 for (var op in _util.OPS) { 12285 CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; 12286 } 12287 return CanvasGraphics; 12288}(); 12289exports.CanvasGraphics = CanvasGraphics; 12290 12291/***/ }), 12292/* 134 */ 12293/***/ (function(module, exports, __w_pdfjs_require__) { 12294 12295"use strict"; 12296 12297 12298Object.defineProperty(exports, "__esModule", { 12299 value: true 12300}); 12301exports.TilingPattern = exports.getShadingPatternFromIR = undefined; 12302 12303var _util = __w_pdfjs_require__(1); 12304 12305var ShadingIRs = {}; 12306ShadingIRs.RadialAxial = { 12307 fromIR: function RadialAxial_fromIR(raw) { 12308 var type = raw[1]; 12309 var colorStops = raw[2]; 12310 var p0 = raw[3]; 12311 var p1 = raw[4]; 12312 var r0 = raw[5]; 12313 var r1 = raw[6]; 12314 return { 12315 type: 'Pattern', 12316 getPattern: function RadialAxial_getPattern(ctx) { 12317 var grad; 12318 if (type === 'axial') { 12319 grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); 12320 } else if (type === 'radial') { 12321 grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); 12322 } 12323 for (var i = 0, ii = colorStops.length; i < ii; ++i) { 12324 var c = colorStops[i];
vendor: 4,110 bytes, lines 12325-12450
12325 grad.addColorStop(c[0], c[1]); 12326 } 12327 return grad; 12328 } 12329 }; 12330 } 12331}; 12332var createMeshCanvas = function createMeshCanvasClosure() { 12333 function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { 12334 var coords = context.coords, 12335 colors = context.colors; 12336 var bytes = data.data, 12337 rowSize = data.width * 4; 12338 var tmp; 12339 if (coords[p1 + 1] > coords[p2 + 1]) { 12340 tmp = p1; 12341 p1 = p2; 12342 p2 = tmp; 12343 tmp = c1; 12344 c1 = c2; 12345 c2 = tmp; 12346 } 12347 if (coords[p2 + 1] > coords[p3 + 1]) { 12348 tmp = p2; 12349 p2 = p3; 12350 p3 = tmp; 12351 tmp = c2; 12352 c2 = c3; 12353 c3 = tmp; 12354 } 12355 if (coords[p1 + 1] > coords[p2 + 1]) { 12356 tmp = p1; 12357 p1 = p2; 12358 p2 = tmp; 12359 tmp = c1; 12360 c1 = c2; 12361 c2 = tmp; 12362 } 12363 var x1 = (coords[p1] + context.offsetX) * context.scaleX; 12364 var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; 12365 var x2 = (coords[p2] + context.offsetX) * context.scaleX; 12366 var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; 12367 var x3 = (coords[p3] + context.offsetX) * context.scaleX; 12368 var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; 12369 if (y1 >= y3) { 12370 return; 12371 } 12372 var c1r = colors[c1], 12373 c1g = colors[c1 + 1], 12374 c1b = colors[c1 + 2]; 12375 var c2r = colors[c2], 12376 c2g = colors[c2 + 1], 12377 c2b = colors[c2 + 2]; 12378 var c3r = colors[c3], 12379 c3g = colors[c3 + 1], 12380 c3b = colors[c3 + 2]; 12381 var minY = Math.round(y1), 12382 maxY = Math.round(y3); 12383 var xa, car, cag, cab; 12384 var xb, cbr, cbg, cbb; 12385 var k; 12386 for (var y = minY; y <= maxY; y++) { 12387 if (y < y2) { 12388 k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); 12389 xa = x1 - (x1 - x2) * k; 12390 car = c1r - (c1r - c2r) * k; 12391 cag = c1g - (c1g - c2g) * k; 12392 cab = c1b - (c1b - c2b) * k; 12393 } else { 12394 k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); 12395 xa = x2 - (x2 - x3) * k; 12396 car = c2r - (c2r - c3r) * k; 12397 cag = c2g - (c2g - c3g) * k; 12398 cab = c2b - (c2b - c3b) * k; 12399 } 12400 k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); 12401 xb = x1 - (x1 - x3) * k; 12402 cbr = c1r - (c1r - c3r) * k; 12403 cbg = c1g - (c1g - c3g) * k; 12404 cbb = c1b - (c1b - c3b) * k; 12405 var x1_ = Math.round(Math.min(xa, xb)); 12406 var x2_ = Math.round(Math.max(xa, xb)); 12407 var j = rowSize * y + x1_ * 4; 12408 for (var x = x1_; x <= x2_; x++) { 12409 k = (xa - x) / (xa - xb); 12410 k = k < 0 ? 0 : k > 1 ? 1 : k; 12411 bytes[j++] = car - (car - cbr) * k | 0; 12412 bytes[j++] = cag - (cag - cbg) * k | 0; 12413 bytes[j++] = cab - (cab - cbb) * k | 0; 12414 bytes[j++] = 255; 12415 } 12416 } 12417 } 12418 function drawFigure(data, figure, context) { 12419 var ps = figure.coords; 12420 var cs = figure.colors; 12421 var i, ii; 12422 switch (figure.type) { 12423 case 'lattice': 12424 var verticesPerRow = figure.verticesPerRow; 12425 var rows = Math.floor(ps.length / verticesPerRow) - 1; 12426 var cols = verticesPerRow - 1; 12427 for (i = 0; i < rows; i++) { 12428 var q = i * verticesPerRow; 12429 for (var j = 0; j < cols; j++, q++) { 12430 drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); 12431 drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); 12432 } 12433 } 12434 break; 12435 case 'triangles': 12436 for (i = 0, ii = ps.length; i < ii; i += 3) { 12437 drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); 12438 } 12439 break; 12440 default: 12441 throw new Error('illegal figure'); 12442 } 12443 } 12444 function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { 12445 var EXPECTED_SCALE = 1.1; 12446 var MAX_PATTERN_SIZE = 3000; 12447 var BORDER_SIZE = 2; 12448 var offsetX = Math.floor(bounds[0]); 12449 var offsetY = Math.floor(bounds[1]); 12450 var boundsWidth = Math.ceil(bounds[2]) - offsetX;
12451 var boundsHeight = Math.ceil(bounds[3]) - offsetY; 12452 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 12453 var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 12454 var scaleX = boundsWidth / width; 12455 var scaleY = boundsHeight / height; 12456 var context = { 12457 coords: coords, 12458 colors: colors, 12459 offsetX: -offsetX, 12460 offsetY: -offsetY, 12461 scaleX: 1 / scaleX, 12462 scaleY: 1 / scaleY 12463 }; 12464 var paddedWidth = width + BORDER_SIZE * 2; 12465 var paddedHeight = height + BORDER_SIZE * 2; 12466 var canvas, tmpCanvas, i, ii; 12467 if (webGLContext.isEnabled) { 12468 canvas = webGLContext.drawFigures({ 12469 width: width, 12470 height: height, 12471 backgroundColor: backgroundColor, 12472 figures: figures, 12473 context: context 12474 }); 12475 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 12476 tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); 12477 canvas = tmpCanvas.canvas; 12478 } else { 12479 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 12480 var tmpCtx = tmpCanvas.context; 12481 var data = tmpCtx.createImageData(width, height); 12482 if (backgroundColor) { 12483 var bytes = data.data; 12484 for (i = 0, ii = bytes.length; i < ii; i += 4) { 12485 bytes[i] = backgroundColor[0]; 12486 bytes[i + 1] = backgroundColor[1]; 12487 bytes[i + 2] = backgroundColor[2]; 12488 bytes[i + 3] = 255; 12489 } 12490 } 12491 for (i = 0; i < figures.length; i++) { 12492 drawFigure(data, figures[i], context); 12493 } 12494 tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); 12495 canvas = tmpCanvas.canvas; 12496 } 12497 return { 12498 canvas: canvas, 12499 offsetX: offsetX - BORDER_SIZE * scaleX, 12500 offsetY: offsetY - BORDER_SIZE * scaleY, 12501 scaleX: scaleX, 12502 scaleY: scaleY 12503 }; 12504 } 12505 return createMeshCanvas; 12506}(); 12507ShadingIRs.Mesh = { 12508 fromIR: function Mesh_fromIR(raw) { 12509 var coords = raw[2]; 12510 var colors = raw[3]; 12511 var figures = raw[4]; 12512 var bounds = raw[5]; 12513 var matrix = raw[6]; 12514 var background = raw[8]; 12515 return { 12516 type: 'Pattern', 12517 getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { 12518 var scale; 12519 if (shadingFill) { 12520 scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); 12521 } else { 12522 scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); 12523 if (matrix) { 12524 var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); 12525 scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; 12526 } 12527 } 12528 var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); 12529 if (!shadingFill) { 12530 ctx.setTransform.apply(ctx, owner.baseTransform); 12531 if (matrix) { 12532 ctx.transform.apply(ctx, matrix); 12533 } 12534 } 12535 ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); 12536 ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); 12537 return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); 12538 } 12539 }; 12540 } 12541}; 12542ShadingIRs.Dummy = { 12543 fromIR: function Dummy_fromIR() { 12544 return { 12545 type: 'Pattern', 12546 getPattern: function Dummy_fromIR_getPattern() { 12547 return 'hotpink'; 12548 } 12549 }; 12550 } 12551}; 12552function getShadingPatternFromIR(raw) { 12553 var shadingIR = ShadingIRs[raw[0]]; 12554 if (!shadingIR) { 12555 throw new Error('Unknown IR type: ' + raw[0]); 12556 } 12557 return shadingIR.fromIR(raw); 12558} 12559var TilingPattern = function TilingPatternClosure() { 12560 var PaintType = { 12561 COLORED: 1, 12562 UNCOLORED: 2 12563 }; 12564 var MAX_PATTERN_SIZE = 3000; 12565 function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { 12566 this.operatorList = IR[2]; 12567 this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; 12568 this.bbox = IR[4]; 12569 this.xstep = IR[5]; 12570 this.ystep = IR[6]; 12571 this.paintType = IR[7]; 12572 this.tilingType = IR[8]; 12573 this.color = color; 12574 this.canvasGraphicsFactory = canvasGraphicsFactory; 12575 this.baseTransform = baseTransform; 12576 this.type = 'Pattern'; 12577 this.ctx = ctx; 12578 } 12579 TilingPattern.prototype = { 12580 createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { 12581 var operatorList = this.operatorList; 12582 var bbox = this.bbox; 12583 var xstep = this.xstep; 12584 var ystep = this.ystep; 12585 var paintType = this.paintType; 12586 var tilingType = this.tilingType; 12587 var color = this.color; 12588 var canvasGraphicsFactory = this.canvasGraphicsFactory; 12589 (0, _util.info)('TilingType: ' + tilingType); 12590 var x0 = bbox[0], 12591 y0 = bbox[1], 12592 x1 = bbox[2], 12593 y1 = bbox[3]; 12594 var topLeft = [x0, y0]; 12595 var botRight = [x0 + xstep, y0 + ystep]; 12596 var width = botRight[0] - topLeft[0]; 12597 var height = botRight[1] - topLeft[1]; 12598 var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix
12598); 12599 var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); 12600 var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; 12601 width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE); 12602 height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE); 12603 var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true); 12604 var tmpCtx = tmpCanvas.context; 12605 var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); 12606 graphics.groupLevel = owner.groupLevel; 12607 this.setFillAndStrokeStyleToContext(graphics, paintType, color); 12608 this.setScale(width, height, xstep, ystep); 12609 this.transformToScale(graphics); 12610 var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]]; 12611 graphics.transform.apply(graphics, tmpTranslate); 12612 this.clipBbox(graphics, bbox, x0, y0, x1, y1); 12613 graphics.executeOperatorList(operatorList); 12614 return tmpCanvas.canvas; 12615 }, 12616 setScale: function TilingPattern_setScale(width, height, xstep, ystep) { 12617 this.scale = [width / xstep, height / ystep]; 12618 }, 12619 transformToScale: function TilingPattern_transformToScale(graphics) { 12620 var scale = this.scale; 12621 var tmpScale = [scale[0], 0, 0, scale[1], 0, 0]; 12622 graphics.transform.apply(graphics, tmpScale); 12623 }, 12624 scaleToContext: function TilingPattern_scaleToContext() { 12625 var scale = this.scale; 12626 this.ctx.scale(1 / scale[0], 1 / scale[1]); 12627 }, 12628 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { 12629 if (Array.isArray(bbox) && bbox.length === 4) { 12630 var bboxWidth = x1 - x0; 12631 var bboxHeight = y1 - y0; 12632 graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); 12633 graphics.clip(); 12634 graphics.endPath(); 12635 } 12636 }, 12637 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { 12638 var context = graphics.ctx, 12639 current = graphics.current; 12640 switch (paintType) { 12641 case PaintType.COLORED: 12642 var ctx = this.ctx; 12643 context.fillStyle = ctx.fillStyle; 12644 context.strokeStyle = ctx.strokeStyle; 12645 current.fillColor = ctx.fillStyle; 12646 current.strokeColor = ctx.strokeStyle; 12647 break; 12648 case PaintType.UNCOLORED: 12649 var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); 12650 context.fillStyle = cssColor; 12651 context.strokeStyle = cssColor; 12652 current.fillColor = cssColor; 12653 current.strokeColor = cssColor; 12654 break; 12655 default: 12656 throw new _util.FormatError('Unsupported paint type: ' + paintType); 12657 } 12658 }, 12659 getPattern: function TilingPattern_getPattern(ctx, owner) { 12660 var temporaryPatternCanvas = this.createPatternCanvas(owner); 12661 ctx = this.ctx; 12662 ctx.setTransform.apply(ctx, this.baseTransform); 12663 ctx.transform.apply(ctx, this.matrix); 12664 this.scaleToContext(); 12665 return ctx.createPattern(temporaryPatternCanvas, 'repeat'); 12666 } 12667 }; 12668 return TilingPattern; 12669}(); 12670exports.getShadingPatternFromIR = getShadingPatternFromIR; 12671exports.TilingPattern = TilingPattern; 12672 12673/***/ }), 12674/* 135 */ 12675/***/ (function(module, exports, __w_pdfjs_require__) { 12676 12677"use strict"; 12678 12679 12680Object.defineProperty(exports, "__esModule", { 12681 value: true 12682}); 12683var GlobalWorkerOptions = Object.create(null); 12684GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; 12685GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; 12686exports.GlobalWorkerOptions = GlobalWorkerOptions; 12687 12688/***/ }), 12689/* 136 */ 12690/***/ (function(module, exports, __w_pdfjs_require__) { 12691 12692"use strict"; 12693 12694 12695Object.defineProperty(exports, "__esModule", { 12696 value: true 12697}); 12698exports.MessageHandler = undefined; 12699 12700var _regenerator = __w_pdfjs_require__(137); 12701 12702var _regenerator2 = _interopRequireDefault(_regenerator); 12703 12704var _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; }; 12705 12706var resolveCall = function () { 12707 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(fn, args) { 12708 var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; 12709 return _regenerator2.default.wrap(function _callee$(_context) { 12710 while (1) { 12711 switch (_context.prev = _context.next) { 12712 case 0: 12713 if (fn) { 12714 _context.next = 2; 12715 break; 12716 } 12717 12718 return _context.abrupt('return'); 12719 12720 case 2: 12721 return _context.abrupt('return', fn.apply(thisArg, args)); 12722 12723 case 3: 12724 case 'end': 12725 return _context.stop(); 12726 } 12727 } 12728 }, _callee, this); 12729 })); 12730
12731 return function resolveCall(_x2, _x3) { 12732 return _ref.apply(this, arguments); 12733 }; 12734}(); 12735 12736var _util = __w_pdfjs_require__(1); 12737 12738function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 12739 12740function _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"); }); }; } 12741 12742function wrapReason(reason) { 12743 if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') { 12744 return reason; 12745 } 12746 switch (reason.name) { 12747 case 'AbortException': 12748 return new _util.AbortException(reason.message); 12749 case 'MissingPDFException': 12750 return new _util.MissingPDFException(reason.message); 12751 case 'UnexpectedResponseException': 12752 return new _util.UnexpectedResponseException(reason.message, reason.status); 12753 default: 12754 return new _util.UnknownErrorException(reason.message, reason.details); 12755 } 12756} 12757function makeReasonSerializable(reason) { 12758 if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { 12759 return reason; 12760 } 12761 return new _util.UnknownErrorException(reason.message, reason.toString()); 12762} 12763function resolveOrReject(capability, success, reason) { 12764 if (success) { 12765 capability.resolve(); 12766 } else { 12767 capability.reject(reason); 12768 } 12769} 12770function finalize(promise) { 12771 return Promise.resolve(promise).catch(function () {}); 12772} 12773function MessageHandler(sourceName, targetName, comObj) { 12774 var _this = this; 12775 12776 this.sourceName = sourceName; 12777 this.targetName = targetName; 12778 this.comObj = comObj; 12779 this.callbackId = 1; 12780 this.streamId = 1; 12781 this.postMessageTransfers = true; 12782 this.streamSinks = Object.create(null); 12783 this.streamControllers = Object.create(null); 12784 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); 12785 var ah = this.actionHandler = Object.create(null); 12786 this._onComObjOnMessage = function (event) { 12787 var data = event.data; 12788 if (data.targetName !== _this.sourceName) { 12789 return; 12790 } 12791 if (data.stream) { 12792 _this._processStreamMessage(data); 12793 } else if (data.isReply) { 12794 var callbackId = data.callbackId; 12795 if (data.callbackId in callbacksCapabilities) { 12796 var callback = callbacksCapabilities[callbackId]; 12797 delete callbacksCapabilities[callbackId]; 12798 if ('error' in data) { 12799 callback.reject(wrapReason(data.error)); 12800 } else { 12801 callback.resolve(data.data); 12802 } 12803 } else { 12804 throw new Error('Cannot resolve callback ' + callbackId); 12805 } 12806 } else if (data.action in ah) { 12807 var action = ah[data.action]; 12808 if (data.callbackId) { 12809 var _sourceName = _this.sourceName; 12810 var _targetName = data.sourceName; 12811 Promise.resolve().then(function () { 12812 return action[0].call(action[1], data.data); 12813 }).then(function (result) { 12814 comObj.postMessage({ 12815 sourceName: _sourceName, 12816 targetName: _targetName, 12817 isReply: true, 12818 callbackId: data.callbackId, 12819 data: result 12820 }); 12821 }, function (reason) { 12822 comObj.postMessage({ 12823 sourceName: _sourceName, 12824 targetName: _targetName, 12825 isReply: true, 12826 callbackId: data.callbackId, 12827 error: makeReasonSerializable(reason) 12828 }); 12829 }); 12830 } else if (data.streamId) { 12831 _this._createStreamSink(data); 12832 } else { 12833 action[0].call(action[1], data.data); 12834 } 12835 } else { 12836 throw new Error('Unknown action from worker: ' + data.action); 12837 } 12838 }; 12839 comObj.addEventListener('message', this._onComObjOnMessage); 12840} 12841MessageHandler.prototype = { 12842 on: function on(actionName, handler, scope) { 12843 var ah = this.actionHandler; 12844 if (ah[actionName]) { 12845 throw new Error('There is already an actionName called "' + actionName + '"'); 12846 } 12847 ah[actionName] = [handler, scope]; 12848 }, 12849 send: function send(actionName, data, transfers) { 12850 var message = { 12851 sourceName: this.sourceName, 12852 targetName: this.targetName, 12853 action: actionName, 12854 data: data 12855 }; 12856 this.postMessage(message, transfers); 12857 },
12858 sendWithPromise: function sendWithPromise(actionName, data, transfers) { 12859 var callbackId = this.callbackId++; 12860 var message = { 12861 sourceName: this.sourceName, 12862 targetName: this.targetName, 12863 action: actionName, 12864 data: data, 12865 callbackId: callbackId 12866 }; 12867 var capability = (0, _util.createPromiseCapability)(); 12868 this.callbacksCapabilities[callbackId] = capability; 12869 try { 12870 this.postMessage(message, transfers); 12871 } catch (e) { 12872 capability.reject(e); 12873 } 12874 return capability.promise; 12875 }, 12876 sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { 12877 var _this2 = this; 12878 12879 var streamId = this.streamId++; 12880 var sourceName = this.sourceName; 12881 var targetName = this.targetName; 12882 return new _util.ReadableStream({ 12883 start: function start(controller) { 12884 var startCapability = (0, _util.createPromiseCapability)(); 12885 _this2.streamControllers[streamId] = { 12886 controller: controller, 12887 startCall: startCapability, 12888 isClosed: false 12889 }; 12890 _this2.postMessage({ 12891 sourceName: sourceName, 12892 targetName: targetName, 12893 action: actionName, 12894 streamId: streamId, 12895 data: data, 12896 desiredSize: controller.desiredSize 12897 }); 12898 return startCapability.promise; 12899 }, 12900 pull: function pull(controller) { 12901 var pullCapability = (0, _util.createPromiseCapability)(); 12902 _this2.streamControllers[streamId].pullCall = pullCapability; 12903 _this2.postMessage({ 12904 sourceName: sourceName, 12905 targetName: targetName, 12906 stream: 'pull', 12907 streamId: streamId, 12908 desiredSize: controller.desiredSize 12909 }); 12910 return pullCapability.promise; 12911 }, 12912 cancel: function cancel(reason) { 12913 var cancelCapability = (0, _util.createPromiseCapability)(); 12914 _this2.streamControllers[streamId].cancelCall = cancelCapability; 12915 _this2.streamControllers[streamId].isClosed = true; 12916 _this2.postMessage({ 12917 sourceName: sourceName, 12918 targetName: targetName, 12919 stream: 'cancel', 12920 reason: reason, 12921 streamId: streamId 12922 }); 12923 return cancelCapability.promise; 12924 } 12925 }, queueingStrategy); 12926 }, 12927 _createStreamSink: function _createStreamSink(data) { 12928 var _this3 = this; 12929 12930 var self = this; 12931 var action = this.actionHandler[data.action]; 12932 var streamId = data.streamId; 12933 var desiredSize = data.desiredSize; 12934 var sourceName = this.sourceName; 12935 var targetName = data.sourceName; 12936 var capability = (0, _util.createPromiseCapability)(); 12937 var sendStreamRequest = function sendStreamRequest(_ref2) { 12938 var stream = _ref2.stream, 12939 chunk = _ref2.chunk, 12940 transfers = _ref2.transfers, 12941 success = _ref2.success, 12942 reason = _ref2.reason; 12943 12944 _this3.postMessage({ 12945 sourceName: sourceName, 12946 targetName: targetName, 12947 stream: stream, 12948 streamId: streamId, 12949 chunk: chunk, 12950 success: success, 12951 reason: reason 12952 }, transfers); 12953 }; 12954 var streamSink = { 12955 enqueue: function enqueue(chunk) { 12956 var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; 12957 var transfers = arguments[2]; 12958 12959 if (this.isCancelled) { 12960 return; 12961 } 12962 var lastDesiredSize = this.desiredSize; 12963 this.desiredSize -= size; 12964 if (lastDesiredSize > 0 && this.desiredSize <= 0) { 12965 this.sinkCapability = (0, _util.createPromiseCapability)(); 12966 this.ready = this.sinkCapability.promise; 12967 } 12968 sendStreamRequest({ 12969 stream: 'enqueue', 12970 chunk: chunk, 12971 transfers: transfers 12972 }); 12973 }, 12974 close: function close() { 12975 if (this.isCancelled) { 12976 return; 12977 } 12978 this.isCancelled = true; 12979 sendStreamRequest({ stream: 'close' }); 12980 delete self.streamSinks[streamId]; 12981 }, 12982 error: function error(reason) { 12983 if (this.isCancelled) { 12984 return; 12985 } 12986 this.isCancelled = true;
12987 sendStreamRequest({ 12988 stream: 'error', 12989 reason: reason 12990 }); 12991 }, 12992 12993 sinkCapability: capability, 12994 onPull: null, 12995 onCancel: null, 12996 isCancelled: false, 12997 desiredSize: desiredSize, 12998 ready: null 12999 }; 13000 streamSink.sinkCapability.resolve(); 13001 streamSink.ready = streamSink.sinkCapability.promise; 13002 this.streamSinks[streamId] = streamSink; 13003 resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { 13004 sendStreamRequest({ 13005 stream: 'start_complete', 13006 success: true 13007 }); 13008 }, function (reason) { 13009 sendStreamRequest({ 13010 stream: 'start_complete', 13011 success: false, 13012 reason: reason 13013 }); 13014 }); 13015 }, 13016 _processStreamMessage: function _processStreamMessage(data) { 13017 var _this4 = this; 13018 13019 var sourceName = this.sourceName; 13020 var targetName = data.sourceName; 13021 var streamId = data.streamId; 13022 var sendStreamResponse = function sendStreamResponse(_ref3) { 13023 var stream = _ref3.stream, 13024 success = _ref3.success, 13025 reason = _ref3.reason; 13026 13027 _this4.comObj.postMessage({ 13028 sourceName: sourceName, 13029 targetName: targetName, 13030 stream: stream, 13031 success: success, 13032 streamId: streamId, 13033 reason: reason 13034 }); 13035 }; 13036 var deleteStreamController = function deleteStreamController() { 13037 Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { 13038 return capability && finalize(capability.promise); 13039 })).then(function () { 13040 delete _this4.streamControllers[data.streamId]; 13041 }); 13042 }; 13043 switch (data.stream) { 13044 case 'start_complete': 13045 resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); 13046 break; 13047 case 'pull_complete': 13048 resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); 13049 break; 13050 case 'pull': 13051 if (!this.streamSinks[data.streamId]) { 13052 sendStreamResponse({ 13053 stream: 'pull_complete', 13054 success: true 13055 }); 13056 break; 13057 } 13058 if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { 13059 this.streamSinks[data.streamId].sinkCapability.resolve(); 13060 } 13061 this.streamSinks[data.streamId].desiredSize = data.desiredSize; 13062 resolveCall(this.streamSinks[data.streamId].onPull).then(function () { 13063 sendStreamResponse({ 13064 stream: 'pull_complete', 13065 success: true 13066 }); 13067 }, function (reason) { 13068 sendStreamResponse({ 13069 stream: 'pull_complete', 13070 success: false, 13071 reason: reason 13072 }); 13073 }); 13074 break; 13075 case 'enqueue': 13076 (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); 13077 if (!this.streamControllers[data.streamId].isClosed) { 13078 this.streamControllers[data.streamId].controller.enqueue(data.chunk); 13079 } 13080 break; 13081 case 'close': 13082 (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); 13083 if (this.streamControllers[data.streamId].isClosed) { 13084 break; 13085 } 13086 this.streamControllers[data.streamId].isClosed = true; 13087 this.streamControllers[data.streamId].controller.close(); 13088 deleteStreamController(); 13089 break; 13090 case 'error': 13091 (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); 13092 this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); 13093 deleteStreamController(); 13094 break; 13095 case 'cancel_complete': 13096 resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); 13097 deleteStreamController(); 13098 break; 13099 case 'cancel': 13100 if (!this.streamSinks[data.streamId]) { 13101 break; 13102 } 13103 resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { 13104 sendStreamResponse({ 13105 stream: 'cancel_complete', 13106 success: true 13107 }); 13108 }, function (reason) { 13109 sendStreamResponse({ 13110 stream: 'cancel_complete', 13111 success: false, 13112 reason: reason 13113 }); 13114 }); 13115 this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); 13116 this.streamSinks[data.streamId].isCancelled = true; 13117 delete this.streamSinks[data.streamId]; 13118 break; 13119 default: 13120 throw new Error('Unexpected stream case'); 13121 } 13122 }, 13123 postMessage: function postMessage(message, transfers) { 13124 if (transfers && this.postMessageTransfers) { 13125 this.comObj.postMessage(message, transfers); 13126 } else { 13127 this.comObj.postMessage(message); 13128 } 13129 }, 13130 destroy: function destroy() { 13131 this.comObj.removeEventListener('message', this._onComObjOnMessage); 13132 } 13133}; 13134exports.MessageHandler = MessageHandler; 13135 13136/***/ }), 13137/* 137 */ 13138/***/ (function(module, exports, __w_pdfjs_require__) { 13139 13140"use strict"; 13141 13142 13143module.exports = __w_pdfjs_require__(138); 13144 13145/***/ }), 13146/* 138 */ 13147/***/ (function(module, exports, __w_pdfjs_require__) { 13148 13149"use strict"; 13150 13151 13152var g = function () { 13153 return this; 13154}() || Function("return this")();
vendor: 9,980 bytes, lines 13155-13447
13155var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; 13156var oldRuntime = hadRuntime && g.regeneratorRuntime; 13157g.regeneratorRuntime = undefined; 13158module.exports = __w_pdfjs_require__(139); 13159if (hadRuntime) { 13160 g.regeneratorRuntime = oldRuntime; 13161} else { 13162 try { 13163 delete g.regeneratorRuntime; 13164 } catch (e) { 13165 g.regeneratorRuntime = undefined; 13166 } 13167} 13168 13169/***/ }), 13170/* 139 */ 13171/***/ (function(module, exports, __w_pdfjs_require__) { 13172 13173"use strict"; 13174/* WEBPACK VAR INJECTION */(function(module) { 13175 13176var _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; }; 13177 13178!function (global) { 13179 "use strict"; 13180 13181 var Op = Object.prototype; 13182 var hasOwn = Op.hasOwnProperty; 13183 var undefined; 13184 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 13185 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 13186 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 13187 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 13188 var inModule = ( false ? undefined : _typeof(module)) === "object"; 13189 var runtime = global.regeneratorRuntime; 13190 if (runtime) { 13191 if (inModule) { 13192 module.exports = runtime; 13193 } 13194 return; 13195 } 13196 runtime = global.regeneratorRuntime = inModule ? module.exports : {}; 13197 function wrap(innerFn, outerFn, self, tryLocsList) { 13198 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 13199 var generator = Object.create(protoGenerator.prototype); 13200 var context = new Context(tryLocsList || []); 13201 generator._invoke = makeInvokeMethod(innerFn, self, context); 13202 return generator; 13203 } 13204 runtime.wrap = wrap; 13205 function tryCatch(fn, obj, arg) { 13206 try { 13207 return { 13208 type: "normal", 13209 arg: fn.call(obj, arg) 13210 }; 13211 } catch (err) { 13212 return { 13213 type: "throw", 13214 arg: err 13215 }; 13216 } 13217 } 13218 var GenStateSuspendedStart = "suspendedStart"; 13219 var GenStateSuspendedYield = "suspendedYield"; 13220 var GenStateExecuting = "executing"; 13221 var GenStateCompleted = "completed"; 13222 var ContinueSentinel = {}; 13223 function Generator() {} 13224 function GeneratorFunction() {} 13225 function GeneratorFunctionPrototype() {} 13226 var IteratorPrototype = {}; 13227 IteratorPrototype[iteratorSymbol] = function () { 13228 return this; 13229 }; 13230 var getProto = Object.getPrototypeOf; 13231 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 13232 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 13233 IteratorPrototype = NativeIteratorPrototype; 13234 } 13235 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); 13236 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 13237 GeneratorFunctionPrototype.constructor = GeneratorFunction; 13238 GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; 13239 function defineIteratorMethods(prototype) { 13240 ["next", "throw", "return"].forEach(function (method) { 13241 prototype[method] = function (arg) { 13242 return this._invoke(method, arg); 13243 }; 13244 }); 13245 } 13246 runtime.isGeneratorFunction = function (genFun) { 13247 var ctor = typeof genFun === "function" && genFun.constructor; 13248 return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; 13249 }; 13250 runtime.mark = function (genFun) { 13251 if (Object.setPrototypeOf) { 13252 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 13253 } else { 13254 genFun.__proto__ = GeneratorFunctionPrototype; 13255 if (!(toStringTagSymbol in genFun)) { 13256 genFun[toStringTagSymbol] = "GeneratorFunction"; 13257 } 13258 } 13259 genFun.prototype = Object.create(Gp); 13260 return genFun; 13261 }; 13262 runtime.awrap = function (arg) { 13263 return { __await: arg }; 13264 }; 13265 function AsyncIterator(generator) { 13266 function invoke(method, arg, resolve, reject) { 13267 var record = tryCatch(generator[method], generator, arg); 13268 if (record.type === "throw") { 13269 reject(record.arg); 13270 } else { 13271 var result = record.arg; 13272 var value = result.value; 13273 if (value && (typeof value === "undefined" ? "undefined" : _typeof(value)) === "object" && hasOwn.call(value, "__await")) { 13274 return Promise.resolve(value.__await).then(function (value) { 13275 invoke("next", value, resolve, reject); 13276 }, function (err) { 13277 invoke("throw", err, resolve, reject); 13278 }); 13279 } 13280 return Promise.resolve(value).then(function (unwrapped) { 13281 result.value = unwrapped; 13282 resolve(result); 13283 }, reject); 13284 } 13285 } 13286 var previousPromise; 13287 function enqueue(method, arg) { 13288 function callInvokeWithMethodAndArg() { 13289 return new Promise(function (resolve, reject) { 13290 invoke(method, arg, resolve, reject); 13291 }); 13292 } 13293 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); 13294 } 13295 this._invoke = enqueue; 13296 } 13297 defineIteratorMethods(AsyncIterator.prototype); 13298 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 13299 return this; 13300 }; 13301 runtime.AsyncIterator = AsyncIterator; 13302 runtime.async = function (innerFn, outerFn, self, tryLocsList) { 13303 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); 13304 return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { 13305 return result.done ? result.value : iter.next(); 13306 }); 13307 }; 13308 function makeInvokeMethod(innerFn, self, context) { 13309 var state = GenStateSuspendedStart; 13310 return function invoke(method, arg) { 13311 if (state === GenStateExecuting) { 13312 throw new Error("Generator is already running"); 13313 } 13314 if (state === GenStateCompleted) { 13315 if (method === "throw") { 13316 throw arg; 13317 } 13318 return doneResult(); 13319 } 13320 context.method = method; 13321 context.arg = arg; 13322 while (true) { 13323 var delegate = context.delegate; 13324 if (delegate) { 13325 var delegateResult = maybeInvokeDelegate(delegate, context); 13326 if (delegateResult) { 13327 if (delegateResult === ContinueSentinel) continue; 13328 return delegateResult; 13329 } 13330 } 13331 if (context.method === "next") { 13332 context.sent = context._sent = context.arg; 13333 } else if (context.method === "throw") { 13334 if (state === GenStateSuspendedStart) { 13335 state = GenStateCompleted; 13336 throw context.arg; 13337 } 13338 context.dispatchException(context.arg); 13339 } else if (context.method === "return") { 13340 context.abrupt("return", context.arg); 13341 } 13342 state = GenStateExecuting; 13343 var record = tryCatch(innerFn, self, context); 13344 if (record.type === "normal") { 13345 state = context.done ? GenStateCompleted : GenStateSuspendedYield; 13346 if (record.arg === ContinueSentinel) { 13347 continue; 13348 } 13349 return { 13350 value: record.arg, 13351 done: context.done 13352 }; 13353 } else if (record.type === "throw") { 13354 state = GenStateCompleted; 13355 context.method = "throw"; 13356 context.arg = record.arg; 13357 } 13358 } 13359 }; 13360 } 13361 function maybeInvokeDelegate(delegate, context) { 13362 var method = delegate.iterator[context.method]; 13363 if (method === undefined) { 13364 context.delegate = null; 13365 if (context.method === "throw") { 13366 if (delegate.iterator.return) { 13367 context.method = "return"; 13368 context.arg = undefined; 13369 maybeInvokeDelegate(delegate, context); 13370 if (context.method === "throw") { 13371 return ContinueSentinel; 13372 } 13373 } 13374 context.method = "throw"; 13375 context.arg = new TypeError("The iterator does not provide a 'throw' method"); 13376 } 13377 return ContinueSentinel; 13378 } 13379 var record = tryCatch(method, delegate.iterator, context.arg); 13380 if (record.type === "throw") { 13381 context.method = "throw"; 13382 context.arg = record.arg; 13383 context.delegate = null; 13384 return ContinueSentinel; 13385 } 13386 var info = record.arg; 13387 if (!info) { 13388 context.method = "throw"; 13389 context.arg = new TypeError("iterator result is not an object"); 13390 context.delegate = null; 13391 return ContinueSentinel; 13392 } 13393 if (info.done) { 13394 context[delegate.resultName] = info.value; 13395 context.next = delegate.nextLoc; 13396 if (context.method !== "return") { 13397 context.method = "next"; 13398 context.arg = undefined; 13399 } 13400 } else { 13401 return info; 13402 } 13403 context.delegate = null; 13404 return ContinueSentinel; 13405 } 13406 defineIteratorMethods(Gp); 13407 Gp[toStringTagSymbol] = "Generator"; 13408 Gp[iteratorSymbol] = function () { 13409 return this; 13410 }; 13411 Gp.toString = function () { 13412 return "[object Generator]"; 13413 }; 13414 function pushTryEntry(locs) { 13415 var entry = { tryLoc: locs[0] }; 13416 if (1 in locs) { 13417 entry.catchLoc = locs[1]; 13418 } 13419 if (2 in locs) { 13420 entry.finallyLoc = locs[2]; 13421 entry.afterLoc = locs[3]; 13422 } 13423 this.tryEntries.push(entry); 13424 } 13425 function resetTryEntry(entry) { 13426 var record = entry.completion || {}; 13427 record.type = "normal"; 13428 delete record.arg; 13429 entry.completion = record; 13430 } 13431 function Context(tryLocsList) { 13432 this.tryEntries = [{ tryLoc: "root" }]; 13433 tryLocsList.forEach(pushTryEntry, this); 13434 this.reset(true); 13435 } 13436 runtime.keys = function (object) { 13437 var keys = []; 13438 for (var key in object) { 13439 keys.push(key); 13440 } 13441 keys.reverse(); 13442 return function next() { 13443 while (keys.length) { 13444 var key = keys.pop(); 13445 if (key in object) { 13446 next.value = key; 13447 next.done = false;
vendor: 4,115 bytes, lines 13448-13584
13448 return next; 13449 } 13450 } 13451 next.done = true; 13452 return next; 13453 }; 13454 }; 13455 function values(iterable) { 13456 if (iterable) { 13457 var iteratorMethod = iterable[iteratorSymbol]; 13458 if (iteratorMethod) { 13459 return iteratorMethod.call(iterable); 13460 } 13461 if (typeof iterable.next === "function") { 13462 return iterable; 13463 } 13464 if (!isNaN(iterable.length)) { 13465 var i = -1, 13466 next = function next() { 13467 while (++i < iterable.length) { 13468 if (hasOwn.call(iterable, i)) { 13469 next.value = iterable[i]; 13470 next.done = false; 13471 return next; 13472 } 13473 } 13474 next.value = undefined; 13475 next.done = true; 13476 return next; 13477 }; 13478 return next.next = next; 13479 } 13480 } 13481 return { next: doneResult }; 13482 } 13483 runtime.values = values; 13484 function doneResult() { 13485 return { 13486 value: undefined, 13487 done: true 13488 }; 13489 } 13490 Context.prototype = { 13491 constructor: Context, 13492 reset: function reset(skipTempReset) { 13493 this.prev = 0; 13494 this.next = 0; 13495 this.sent = this._sent = undefined; 13496 this.done = false; 13497 this.delegate = null; 13498 this.method = "next"; 13499 this.arg = undefined; 13500 this.tryEntries.forEach(resetTryEntry); 13501 if (!skipTempReset) { 13502 for (var name in this) { 13503 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { 13504 this[name] = undefined; 13505 } 13506 } 13507 } 13508 }, 13509 stop: function stop() { 13510 this.done = true; 13511 var rootEntry = this.tryEntries[0]; 13512 var rootRecord = rootEntry.completion; 13513 if (rootRecord.type === "throw") { 13514 throw rootRecord.arg; 13515 } 13516 return this.rval; 13517 }, 13518 dispatchException: function dispatchException(exception) { 13519 if (this.done) { 13520 throw exception; 13521 } 13522 var context = this; 13523 function handle(loc, caught) { 13524 record.type = "throw"; 13525 record.arg = exception; 13526 context.next = loc; 13527 if (caught) { 13528 context.method = "next"; 13529 context.arg = undefined; 13530 } 13531 return !!caught; 13532 } 13533 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13534 var entry = this.tryEntries[i]; 13535 var record = entry.completion; 13536 if (entry.tryLoc === "root") { 13537 return handle("end"); 13538 } 13539 if (entry.tryLoc <= this.prev) { 13540 var hasCatch = hasOwn.call(entry, "catchLoc"); 13541 var hasFinally = hasOwn.call(entry, "finallyLoc"); 13542 if (hasCatch && hasFinally) { 13543 if (this.prev < entry.catchLoc) { 13544 return handle(entry.catchLoc, true); 13545 } else if (this.prev < entry.finallyLoc) { 13546 return handle(entry.finallyLoc); 13547 } 13548 } else if (hasCatch) { 13549 if (this.prev < entry.catchLoc) { 13550 return handle(entry.catchLoc, true); 13551 } 13552 } else if (hasFinally) { 13553 if (this.prev < entry.finallyLoc) { 13554 return handle(entry.finallyLoc); 13555 } 13556 } else { 13557 throw new Error("try statement without catch or finally"); 13558 } 13559 } 13560 } 13561 }, 13562 abrupt: function abrupt(type, arg) { 13563 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13564 var entry = this.tryEntries[i]; 13565 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { 13566 var finallyEntry = entry; 13567 break; 13568 } 13569 } 13570 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { 13571 finallyEntry = null; 13572 } 13573 var record = finallyEntry ? finallyEntry.completion : {}; 13574 record.type = type; 13575 record.arg = arg; 13576 if (finallyEntry) { 13577 this.method = "next"; 13578 this.next = finallyEntry.finallyLoc; 13579 return ContinueSentinel; 13580 } 13581 return this.complete(record); 13582 }, 13583 complete: function complete(record, afterLoc) { 13584 if (record.type === "throw") {
13585 throw record.arg; 13586 } 13587 if (record.type === "break" || record.type === "continue") { 13588 this.next = record.arg; 13589 } else if (record.type === "return") { 13590 this.rval = this.arg = record.arg; 13591 this.method = "return"; 13592 this.next = "end"; 13593 } else if (record.type === "normal" && afterLoc) { 13594 this.next = afterLoc; 13595 } 13596 return ContinueSentinel; 13597 }, 13598 finish: function finish(finallyLoc) { 13599 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13600 var entry = this.tryEntries[i]; 13601 if (entry.finallyLoc === finallyLoc) { 13602 this.complete(entry.completion, entry.afterLoc); 13603 resetTryEntry(entry); 13604 return ContinueSentinel; 13605 } 13606 } 13607 }, 13608 "catch": function _catch(tryLoc) { 13609 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13610 var entry = this.tryEntries[i]; 13611 if (entry.tryLoc === tryLoc) { 13612 var record = entry.completion; 13613 if (record.type === "throw") { 13614 var thrown = record.arg; 13615 resetTryEntry(entry); 13616 } 13617 return thrown; 13618 } 13619 } 13620 throw new Error("illegal catch attempt"); 13621 }, 13622 delegateYield: function delegateYield(iterable, resultName, nextLoc) { 13623 this.delegate = { 13624 iterator: values(iterable), 13625 resultName: resultName, 13626 nextLoc: nextLoc 13627 }; 13628 if (this.method === "next") { 13629 this.arg = undefined; 13630 } 13631 return ContinueSentinel; 13632 } 13633 }; 13634}(function () { 13635 return this; 13636}() || Function("return this")()); 13637/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(140)(module))) 13638 13639/***/ }), 13640/* 140 */ 13641/***/ (function(module, exports, __w_pdfjs_require__) { 13642 13643"use strict"; 13644 13645 13646module.exports = function (module) { 13647 if (!module.webpackPolyfill) { 13648 module.deprecate = function () {}; 13649 module.paths = []; 13650 if (!module.children) module.children = []; 13651 Object.defineProperty(module, "loaded", { 13652 enumerable: true, 13653 get: function get() { 13654 return module.l; 13655 } 13656 }); 13657 Object.defineProperty(module, "id", { 13658 enumerable: true, 13659 get: function get() { 13660 return module.i; 13661 } 13662 }); 13663 module.webpackPolyfill = 1; 13664 } 13665 return module; 13666}; 13667 13668/***/ }), 13669/* 141 */ 13670/***/ (function(module, exports, __w_pdfjs_require__) { 13671 13672"use strict"; 13673 13674 13675Object.defineProperty(exports, "__esModule", { 13676 value: true 13677}); 13678exports.Metadata = undefined; 13679 13680var _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; }; }(); 13681 13682var _util = __w_pdfjs_require__(1); 13683 13684var _xml_parser = __w_pdfjs_require__(142); 13685 13686function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 13687 13688var Metadata = function () { 13689 function Metadata(data) { 13690 _classCallCheck(this, Metadata); 13691 13692 (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); 13693 data = this._repair(data); 13694 var parser = new _xml_parser.SimpleXMLParser(); 13695 var xmlDocument = parser.parseFromString(data); 13696 this._metadata = Object.create(null); 13697 if (xmlDocument) { 13698 this._parse(xmlDocument); 13699 } 13700 } 13701 13702 _createClass(Metadata, [{ 13703 key: '_repair', 13704 value: function _repair(data) { 13705 return data.replace(/>\\376\\377([^<]+)/g, function (all, codes) { 13706 var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { 13707 return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); 13708 }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { 13709 switch (name) { 13710 case 'amp': 13711 return '&'; 13712 case 'apos': 13713 return '\''; 13714 case 'gt': 13715 return '>'; 13716 case 'lt': 13717 return '<'; 13718 case 'quot': 13719 return '\"'; 13720 } 13721 throw new Error('_repair: ' + name + ' isn\'t defined.'); 13722 }); 13723 var chars = ''; 13724 for (var i = 0, ii = bytes.length; i < ii; i += 2) {
13725 var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); 13726 if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { 13727 chars += String.fromCharCode(code); 13728 } else { 13729 chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; 13730 } 13731 } 13732 return '>' + chars; 13733 }); 13734 } 13735 }, { 13736 key: '_parse', 13737 value: function _parse(xmlDocument) { 13738 var rdf = xmlDocument.documentElement; 13739 if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 13740 rdf = rdf.firstChild; 13741 while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 13742 rdf = rdf.nextSibling; 13743 } 13744 } 13745 var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; 13746 if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { 13747 return; 13748 } 13749 var children = rdf.childNodes; 13750 for (var i = 0, ii = children.length; i < ii; i++) { 13751 var desc = children[i]; 13752 if (desc.nodeName.toLowerCase() !== 'rdf:description') { 13753 continue; 13754 } 13755 for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { 13756 if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { 13757 var entry = desc.childNodes[j]; 13758 var name = entry.nodeName.toLowerCase(); 13759 this._metadata[name] = entry.textContent.trim(); 13760 } 13761 } 13762 } 13763 } 13764 }, { 13765 key: 'get', 13766 value: function get(name) { 13767 return this._metadata[name] || null; 13768 } 13769 }, { 13770 key: 'getAll', 13771 value: function getAll() { 13772 return this._metadata; 13773 } 13774 }, { 13775 key: 'has', 13776 value: function has(name) { 13777 return typeof this._metadata[name] !== 'undefined'; 13778 } 13779 }]); 13780 13781 return Metadata; 13782}(); 13783 13784exports.Metadata = Metadata; 13785 13786/***/ }), 13787/* 142 */ 13788/***/ (function(module, exports, __w_pdfjs_require__) { 13789 13790"use strict"; 13791 13792 13793Object.defineProperty(exports, "__esModule", { 13794 value: true 13795}); 13796 13797var _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"); } }; }(); 13798 13799var _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); } }; 13800 13801var _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; }; }(); 13802 13803function _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; } 13804 13805function _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, { c
13805onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 13806 13807function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 13808 13809var XMLParserErrorCode = { 13810 NoError: 0, 13811 EndOfDocument: -1, 13812 UnterminatedCdat: -2, 13813 UnterminatedXmlDeclaration: -3, 13814 UnterminatedDoctypeDeclaration: -4, 13815 UnterminatedComment: -5, 13816 MalformedElement: -6, 13817 OutOfMemory: -7, 13818 UnterminatedAttributeValue: -8, 13819 UnterminatedElement: -9, 13820 ElementNeverBegun: -10 13821}; 13822function isWhitespace(s, index) { 13823 var ch = s[index]; 13824 return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; 13825} 13826function isWhitespaceString(s) { 13827 for (var i = 0, ii = s.length; i < ii; i++) { 13828 if (!isWhitespace(s, i)) { 13829 return false; 13830 } 13831 } 13832 return true; 13833} 13834 13835var XMLParserBase = function () { 13836 function XMLParserBase() { 13837 _classCallCheck(this, XMLParserBase); 13838 } 13839 13840 _createClass(XMLParserBase, [{ 13841 key: '_resolveEntities', 13842 value: function _resolveEntities(s) { 13843 return s.replace(/&([^;]+);/g, function (all, entity) { 13844 if (entity.substring(0, 2) === '#x') { 13845 return String.fromCharCode(parseInt(entity.substring(2), 16)); 13846 } else if (entity.substring(0, 1) === '#') { 13847 return String.fromCharCode(parseInt(entity.substring(1), 10)); 13848 } 13849 switch (entity) { 13850 case 'lt': 13851 return '<'; 13852 case 'gt': 13853 return '>'; 13854 case 'amp': 13855 return '&'; 13856 case 'quot': 13857 return '\"'; 13858 } 13859 return this.onResolveEntity(entity); 13860 }); 13861 } 13862 }, { 13863 key: '_parseContent', 13864 value: function _parseContent(s, start) { 13865 var pos = start, 13866 name = void 0, 13867 attributes = []; 13868 function skipWs() { 13869 while (pos < s.length && isWhitespace(s, pos)) { 13870 ++pos; 13871 } 13872 } 13873 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 13874 ++pos; 13875 } 13876 name = s.substring(start, pos); 13877 skipWs(); 13878 while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { 13879 skipWs(); 13880 var attrName = '', 13881 attrValue = ''; 13882 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { 13883 attrName += s[pos]; 13884 ++pos; 13885 } 13886 skipWs(); 13887 if (s[pos] !== '=') { 13888 return null; 13889 } 13890 ++pos; 13891 skipWs(); 13892 var attrEndChar = s[pos]; 13893 if (attrEndChar !== '\"' && attrEndChar !== '\'') { 13894 return null; 13895 } 13896 var attrEndIndex = s.indexOf(attrEndChar, ++pos); 13897 if (attrEndIndex < 0) { 13898 return null; 13899 } 13900 attrValue = s.substring(pos, attrEndIndex); 13901 attributes.push({ 13902 name: attrName, 13903 value: this._resolveEntities(attrValue) 13904 }); 13905 pos = attrEndIndex + 1; 13906 skipWs(); 13907 } 13908 return { 13909 name: name, 13910 attributes: attributes, 13911 parsed: pos - start 13912 }; 13913 } 13914 }, { 13915 key: '_parseProcessingInstruction', 13916 value: function _parseProcessingInstruction(s, start) { 13917 var pos = start, 13918 name = void 0, 13919 value = void 0; 13920 function skipWs() { 13921 while (pos < s.length && isWhitespace(s, pos)) { 13922 ++pos; 13923 } 13924 } 13925 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 13926 ++pos; 13927 } 13928 name = s.substring(start, pos); 13929 skipWs(); 13930 var attrStart = pos; 13931 while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { 13932 ++pos; 13933 } 13934 value = s.substring(attrStart, pos); 13935 return { 13936 name: name, 13937 value: value, 13938 parsed: pos - start 13939 }; 13940 } 13941 }, { 13942 key: 'parseXml', 13943 value: function parseXml(s) { 13944 var i = 0; 13945 while (i < s.length) { 13946 var ch = s[i]; 13947 var j = i; 13948 if (ch === '<') { 13949 ++j; 13950 var ch2 = s[j]; 13951 var q = void 0; 13952 switch (ch2) { 13953 case '/': 13954 ++j; 13955 q = s.indexOf('>', j); 13956 if (q < 0) { 13957 this.onError(XMLParserErrorCode.UnterminatedElement); 13958 return; 13959 } 13960 this.onEndElement(s.substring(j, q)); 13961 j = q + 1; 13962 break; 13963 case '?': 13964 ++j; 13965 var pi = this._parseProcessingInstruction(s, j); 13966 if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { 13967 this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); 13968 return; 13969 } 13970 this.onPi(pi.name, pi.value); 13971 j += pi.parsed + 2; 13972 break; 13973 case '!': 13974 if (s.substring(j + 1, j + 3) === '--') { 13975 q = s.indexOf('-->', j + 3); 13976 if (q < 0) { 13977 this.onError(XMLParserErrorCode.UnterminatedComment); 13978 return; 13979 } 13980 this.onComment(s.substring(j + 3, q)); 13981 j = q + 3; 13982 } else if (s.substring(j + 1, j + 8) === '[CDATA[') { 13983 q = s.indexOf(']]>', j + 8); 13984 if (q < 0) { 13985 this.onError(XMLParserErrorCode.UnterminatedCdat); 13986 return; 13987 } 13988 this.onCdata(s.substring(j + 8, q)); 13989 j = q + 3; 13990 } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { 13991 var q2 = s.indexOf('[', j + 8); 13992 var complexDoctype = false;
13993 q = s.indexOf('>', j + 8); 13994 if (q < 0) { 13995 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 13996 return; 13997 } 13998 if (q2 > 0 && q > q2) { 13999 q = s.indexOf(']>', j + 8); 14000 if (q < 0) { 14001 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 14002 return; 14003 } 14004 complexDoctype = true; 14005 } 14006 var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); 14007 this.onDoctype(doctypeContent); 14008 j = q + (complexDoctype ? 2 : 1); 14009 } else { 14010 this.onError(XMLParserErrorCode.MalformedElement); 14011 return; 14012 } 14013 break; 14014 default: 14015 var content = this._parseContent(s, j); 14016 if (content === null) { 14017 this.onError(XMLParserErrorCode.MalformedElement); 14018 return; 14019 } 14020 var isClosed = false; 14021 if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { 14022 isClosed = true; 14023 } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { 14024 this.onError(XMLParserErrorCode.UnterminatedElement); 14025 return; 14026 } 14027 this.onBeginElement(content.name, content.attributes, isClosed); 14028 j += content.parsed + (isClosed ? 2 : 1); 14029 break; 14030 } 14031 } else { 14032 while (j < s.length && s[j] !== '<') { 14033 j++; 14034 } 14035 var text = s.substring(i, j); 14036 this.onText(this._resolveEntities(text)); 14037 } 14038 i = j; 14039 } 14040 } 14041 }, { 14042 key: 'onResolveEntity', 14043 value: function onResolveEntity(name) { 14044 return '&' + name + ';'; 14045 } 14046 }, { 14047 key: 'onPi', 14048 value: function onPi(name, value) {} 14049 }, { 14050 key: 'onComment', 14051 value: function onComment(text) {} 14052 }, { 14053 key: 'onCdata', 14054 value: function onCdata(text) {} 14055 }, { 14056 key: 'onDoctype', 14057 value: function onDoctype(doctypeContent) {} 14058 }, { 14059 key: 'onText', 14060 value: function onText(text) {} 14061 }, { 14062 key: 'onBeginElement', 14063 value: function onBeginElement(name, attributes, isEmpty) {} 14064 }, { 14065 key: 'onEndElement', 14066 value: function onEndElement(name) {} 14067 }, { 14068 key: 'onError', 14069 value: function onError(code) {} 14070 }]); 14071 14072 return XMLParserBase; 14073}(); 14074 14075var SimpleDOMNode = function () { 14076 function SimpleDOMNode(nodeName, nodeValue) { 14077 _classCallCheck(this, SimpleDOMNode); 14078 14079 this.nodeName = nodeName; 14080 this.nodeValue = nodeValue; 14081 Object.defineProperty(this, 'parentNode', { 14082 value: null, 14083 writable: true 14084 }); 14085 } 14086 14087 _createClass(SimpleDOMNode, [{ 14088 key: 'hasChildNodes', 14089 value: function hasChildNodes() { 14090 return this.childNodes && this.childNodes.length > 0; 14091 } 14092 }, { 14093 key: 'firstChild', 14094 get: function get() { 14095 return this.childNodes[0]; 14096 } 14097 }, { 14098 key: 'nextSibling', 14099 get: function get() { 14100 var index = this.parentNode.childNodes.indexOf(this); 14101 return this.parentNode.childNodes[index + 1]; 14102 } 14103 }, { 14104 key: 'textContent', 14105 get: function get() { 14106 if (!this.childNodes) { 14107 return this.nodeValue || ''; 14108 } 14109 return this.childNodes.map(function (child) { 14110 return child.textContent; 14111 }).join(''); 14112 } 14113 }]); 14114 14115 return SimpleDOMNode; 14116}(); 14117 14118var SimpleXMLParser = function (_XMLParserBase) { 14119 _inherits(SimpleXMLParser, _XMLParserBase); 14120 14121 function SimpleXMLParser() { 14122 _classCallCheck(this, SimpleXMLParser); 14123 14124 var _this = _possibleConstructorReturn(this, (SimpleXMLParser.__proto__ || Object.getPrototypeOf(SimpleXMLParser)).call(this)); 14125 14126 _this._currentFragment = null; 14127 _this._stack = null; 14128 _this._errorCode = XMLParserErrorCode.NoError; 14129 return _this; 14130 } 14131 14132 _createClass(SimpleXMLParser, [{ 14133 key: 'parseFromString', 14134 value: function parseFromString(data) { 14135 this._currentFragment = []; 14136 this._stack = []; 14137 this._errorCode = XMLParserErrorCode.NoError; 14138 this.parseXml(data); 14139 if (this._errorCode !== XMLParserErrorCode.NoError) { 14140 return undefined; 14141 } 14142 14143 var _currentFragment = _slicedToArray(this._currentFragment, 1), 14144 documentElement = _currentFragment[0]; 14145 14146 if (!documentElement) { 14147 return undefined; 14148 } 14149 return { documentElement: documentElement }; 14150 } 14151 }, { 14152 key: 'onResolveEntity', 14153 value: function onResolveEntity(name) { 14154 switch (name) { 14155 case 'apos': 14156 return '\''; 14157 } 14158 return _get(SimpleXMLParser.prototype.__proto__ || Object.getPrototypeOf(SimpleXMLParser.prototype), 'onResolveEntity', this).call(this, name); 14159 } 14160 }, { 14161 key: 'onText', 14162 value: function onText(text) { 14163 if (isWhitespaceString(text)) { 14164 return; 14165 } 14166 var node = new SimpleDOMNode('#text', text); 14167 this._currentFragment.push(node); 14168 } 14169 }, { 14170 key: 'onCdata', 14171 value: function onCdata(text) { 14172 var node = new SimpleDOMNode('#text', text); 14173 this._currentFragment.push(node); 14174 } 14175 }, { 14176 key: 'onBeginElement', 14177 value: function onBeginElement(name, attributes, isEmpty) { 14178 var node = new SimpleDOMNode(name); 14179 node.childNodes = []; 14180 this._currentFragment.push(node); 14181 if (isEmpty) { 14182 return; 14183 } 14184 this._stack.push(this._currentFragment); 14185 this._currentFragment = node.childNodes; 14186 } 14187 }, { 14188 key: 'onEndElement', 14189 value: function onEndElement(name) { 14190 this._currentFragment = this._stack.pop(); 14191 var lastElement = this._currentFragment[this._currentFragment.length - 1]; 14192 for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { 14193 lastElement.childNodes[i].parentNode = lastElement; 14194 } 14195 } 14196 }, { 14197 key: 'onError', 14198 value: function onError(code) { 14199 this._errorCode = code; 14200 } 14201 }]); 14202 14203 return SimpleXMLParser; 14204}(XMLParserBase); 14205 14206exports.SimpleXMLParser = SimpleXMLParser; 14207 14208/***/ }), 14209/* 143 */ 14210/***/ (function(module, exports, __w_pdfjs_require__) { 14211 14212"use strict"; 14213 14214 14215Object.defineProperty(exports, "__esModule", { 14216 value: true 14217}); 14218exports.PDFDataTransportStream = undefined; 14219 14220var _regenerator = __w_pdfjs_require__(137); 14221 14222var _regenerator2 = _interopRequireDefault(_regenerator); 14223 14224var _util = __w_pdfjs_require__(1); 14225 14226function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 14227 14228function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
14228y { 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"); }); }; } 14229 14230var PDFDataTransportStream = function PDFDataTransportStreamClosure() { 14231 function PDFDataTransportStream(params, pdfDataRangeTransport) { 14232 var _this = this; 14233 14234 (0, _util.assert)(pdfDataRangeTransport); 14235 this._queuedChunks = []; 14236 var initialData = params.initialData; 14237 if (initialData && initialData.length > 0) { 14238 var buffer = new Uint8Array(initialData).buffer; 14239 this._queuedChunks.push(buffer); 14240 } 14241 this._pdfDataRangeTransport = pdfDataRangeTransport; 14242 this._isStreamingSupported = !params.disableStream; 14243 this._isRangeSupported = !params.disableRange; 14244 this._contentLength = params.length; 14245 this._fullRequestReader = null; 14246 this._rangeReaders = []; 14247 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { 14248 _this._onReceiveData({ 14249 begin: begin, 14250 chunk: chunk 14251 }); 14252 }); 14253 this._pdfDataRangeTransport.addProgressListener(function (loaded) { 14254 _this._onProgress({ loaded: loaded }); 14255 }); 14256 this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { 14257 _this._onReceiveData({ chunk: chunk }); 14258 }); 14259 this._pdfDataRangeTransport.transportReady(); 14260 } 14261 PDFDataTransportStream.prototype = { 14262 _onReceiveData: function PDFDataTransportStream_onReceiveData(args) { 14263 var buffer = new Uint8Array(args.chunk).buffer; 14264 if (args.begin === undefined) { 14265 if (this._fullRequestReader) { 14266 this._fullRequestReader._enqueue(buffer); 14267 } else { 14268 this._queuedChunks.push(buffer); 14269 } 14270 } else { 14271 var found = this._rangeReaders.some(function (rangeReader) { 14272 if (rangeReader._begin !== args.begin) { 14273 return false; 14274 } 14275 rangeReader._enqueue(buffer); 14276 return true; 14277 }); 14278 (0, _util.assert)(found); 14279 } 14280 }, 14281 _onProgress: function PDFDataTransportStream_onDataProgress(evt) { 14282 if (this._rangeReaders.length > 0) { 14283 var firstReader = this._rangeReaders[0]; 14284 if (firstReader.onProgress) { 14285 firstReader.onProgress({ loaded: evt.loaded }); 14286 } 14287 } 14288 }, 14289 _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) { 14290 var i = this._rangeReaders.indexOf(reader); 14291 if (i >= 0) { 14292 this._rangeReaders.splice(i, 1); 14293 } 14294 }, 14295 getFullReader: function PDFDataTransportStream_getFullReader() { 14296 (0, _util.assert)(!this._fullRequestReader); 14297 var queuedChunks = this._queuedChunks; 14298 this._queuedChunks = null; 14299 return new PDFDataTransportStreamReader(this, queuedChunks); 14300 }, 14301 getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) { 14302 var reader = new PDFDataTransportStreamRangeReader(this, begin, end); 14303 this._pdfDataRangeTransport.requestDataRange(begin, end); 14304 this._rangeReaders.push(reader); 14305 return reader; 14306 }, 14307 cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) { 14308 if (this._fullRequestReader) { 14309 this._fullRequestReader.cancel(reason); 14310 } 14311 var readers = this._rangeReaders.slice(0); 14312 readers.forEach(function (rangeReader) { 14313 rangeReader.cancel(reason); 14314 }); 14315 this._pdfDataRangeTransport.abort(); 14316 } 14317 }; 14318 function PDFDataTransportStreamReader(stream, queuedChunks) { 14319 this._stream = stream; 14320 this._done = false; 14321 this._filename = null; 14322 this._queuedChunks = queuedChunks || []; 14323 this._requests = []; 14324 this._headersReady = Promise.resolve(); 14325 stream._fullRequestReader = this; 14326 this.onProgress = null; 14327 } 14328 PDFDataTransportStreamReader.prototype = { 14329 _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) { 14330 if (this._done) { 14331 return; 14332 } 14333 if (this._requests.length > 0) { 14334 var requestCapability = this._requests.shift(); 14335 requestCapability.resolve({ 14336 value: chunk, 14337 done: false 14338 }); 14339 return; 14340 } 14341 this._queuedChunks.push(chunk); 14342 }, 14343 get headersReady() { 14344 return this._headersReady; 14345 }, 14346 get filename() { 14347 return this._filename; 14348 }, 14349 get isRangeSupported() { 14350 return this._stream._isRangeSupported; 14351 }, 14352 get isStreamingSupported() { 14353 return this._stream._isStreamingSupported; 14354 }, 14355 get contentLength() { 14356 return this._stream._contentLength; 14357 }, 14358 read: function () { 14359 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 14360 var chunk, requestCapability; 14361 return _regenerator2.default.wrap(function _callee$(_context) { 14362 while (1) { 14363 switch (_context.prev = _context.next) { 14364 case 0: 14365 if (!(this._queuedChunks.length > 0)) { 14366 _context.next = 3; 14367 break; 14368 } 14369 14370 chunk = this._queuedChunks.shift(); 14371 return _context.abrupt('return', { 14372 value: chunk, 14373 done: false 14374 }); 14375 14376 case 3: 14377 if (!this._done) { 14378 _context.next = 5; 14379 break; 14380 } 14381 14382 return _context.abrupt('return', { 14383 value: undefined, 14384 done: true 14385 }); 14386 14387 case 5: 14388 requestCapability = (0, _util.createPromiseCapability)(); 14389 14390 this._requests.push(requestCapability); 14391 return _context.abrupt('return', requestCapability.promise); 14392 14393 case 8: 14394 case 'end': 14395 return _context.stop(); 14396 } 14397 } 14398 }, _callee, this); 14399 })); 14400 14401 function read() { 14402 return _ref.apply(this, arguments); 14403 } 14404 14405 return read; 14406 }(), 14407 14408 cancel: function PDFDataTransportStreamReader_cancel(reason) { 14409 this._done = true;
14410 this._requests.forEach(function (requestCapability) { 14411 requestCapability.resolve({ 14412 value: undefined, 14413 done: true 14414 }); 14415 }); 14416 this._requests = []; 14417 } 14418 }; 14419 function PDFDataTransportStreamRangeReader(stream, begin, end) { 14420 this._stream = stream; 14421 this._begin = begin; 14422 this._end = end; 14423 this._queuedChunk = null; 14424 this._requests = []; 14425 this._done = false; 14426 this.onProgress = null; 14427 } 14428 PDFDataTransportStreamRangeReader.prototype = { 14429 _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) { 14430 if (this._done) { 14431 return; 14432 } 14433 if (this._requests.length === 0) { 14434 this._queuedChunk = chunk; 14435 } else { 14436 var requestsCapability = this._requests.shift(); 14437 requestsCapability.resolve({ 14438 value: chunk, 14439 done: false 14440 }); 14441 this._requests.forEach(function (requestCapability) { 14442 requestCapability.resolve({ 14443 value: undefined, 14444 done: true 14445 }); 14446 }); 14447 this._requests = []; 14448 } 14449 this._done = true; 14450 this._stream._removeRangeReader(this); 14451 }, 14452 get isStreamingSupported() { 14453 return false; 14454 }, 14455 read: function () { 14456 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 14457 var chunk, requestCapability; 14458 return _regenerator2.default.wrap(function _callee2$(_context2) { 14459 while (1) { 14460 switch (_context2.prev = _context2.next) { 14461 case 0: 14462 if (!this._queuedChunk) { 14463 _context2.next = 4; 14464 break; 14465 } 14466 14467 chunk = this._queuedChunk; 14468 14469 this._queuedChunk = null; 14470 return _context2.abrupt('return', { 14471 value: chunk, 14472 done: false 14473 }); 14474 14475 case 4: 14476 if (!this._done) { 14477 _context2.next = 6; 14478 break; 14479 } 14480 14481 return _context2.abrupt('return', { 14482 value: undefined, 14483 done: true 14484 }); 14485 14486 case 6: 14487 requestCapability = (0, _util.createPromiseCapability)(); 14488 14489 this._requests.push(requestCapability); 14490 return _context2.abrupt('return', requestCapability.promise); 14491 14492 case 9: 14493 case 'end': 14494 return _context2.stop(); 14495 } 14496 } 14497 }, _callee2, this); 14498 })); 14499 14500 function read() { 14501 return _ref2.apply(this, arguments); 14502 } 14503 14504 return read; 14505 }(), 14506 14507 cancel: function PDFDataTransportStreamRangeReader_cancel(reason) { 14508 this._done = true; 14509 this._requests.forEach(function (requestCapability) { 14510 requestCapability.resolve({ 14511 value: undefined, 14512 done: true 14513 }); 14514 }); 14515 this._requests = []; 14516 this._stream._removeRangeReader(this); 14517 } 14518 }; 14519 return PDFDataTransportStream; 14520}(); 14521exports.PDFDataTransportStream = PDFDataTransportStream; 14522 14523/***/ }), 14524/* 144 */ 14525/***/ (function(module, exports, __w_pdfjs_require__) { 14526 14527"use strict"; 14528 14529 14530Object.defineProperty(exports, "__esModule", { 14531 value: true 14532}); 14533exports.WebGLContext = undefined; 14534 14535var _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; }; }(); 14536 14537var _util = __w_pdfjs_require__(1); 14538 14539function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 14540 14541var WebGLContext = function () { 14542 function WebGLContext(_ref) { 14543 var _ref$enable = _ref.enable, 14544 enable = _ref$enable === undefined ? false : _ref$enable; 14545 14546 _classCallCheck(this, WebGLContext); 14547 14548 this._enabled = enable === true; 14549 } 14550 14551 _createClass(WebGLContext, [{ 14552 key: 'composeSMask', 14553 value: function composeSMask(_ref2) { 14554 var layer = _ref2.layer, 14555 mask = _ref2.mask, 14556 properties = _ref2.properties; 14557 14558 return WebGLUtils.composeSMask(layer, mask, properties); 14559 } 14560 }, { 14561 key: 'drawFigures', 14562 value: function drawFigures(_ref3) { 14563 var width = _ref3.width, 14564 height = _ref3.height, 14565 backgroundColor = _ref3.backgroundColor, 14566 figures = _ref3.figures, 14567 context = _ref3.context; 14568 14569 return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); 14570 } 14571 }, { 14572 key: 'clear', 14573 value: function clear() { 14574 WebGLUtils.cleanup(); 14575 } 14576 }, { 14577 key: 'isEnabled', 14578 get: function get() { 14579 var enabled = this._enabled; 14580 if (enabled) { 14581 enabled = WebGLUtils.tryInitGL(); 14582 } 14583 return (0, _util.shadow)(this, 'isEnabled', enabled); 14584 } 14585 }]); 14586 14587 return WebGLContext; 14588}(); 14589 14590var WebGLUtils = function WebGLUtilsClosure() { 14591 function loadShader(gl, code, shaderType) { 14592 var shader = gl.createShader(shaderType);
vendor: 11,433 bytes, lines 14593-14838
14593 gl.shaderSource(shader, code); 14594 gl.compileShader(shader); 14595 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); 14596 if (!compiled) { 14597 var errorMsg = gl.getShaderInfoLog(shader); 14598 throw new Error('Error during shader compilation: ' + errorMsg); 14599 } 14600 return shader; 14601 } 14602 function createVertexShader(gl, code) { 14603 return loadShader(gl, code, gl.VERTEX_SHADER); 14604 } 14605 function createFragmentShader(gl, code) { 14606 return loadShader(gl, code, gl.FRAGMENT_SHADER); 14607 } 14608 function createProgram(gl, shaders) { 14609 var program = gl.createProgram(); 14610 for (var i = 0, ii = shaders.length; i < ii; ++i) { 14611 gl.attachShader(program, shaders[i]); 14612 } 14613 gl.linkProgram(program); 14614 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); 14615 if (!linked) { 14616 var errorMsg = gl.getProgramInfoLog(program); 14617 throw new Error('Error during program linking: ' + errorMsg); 14618 } 14619 return program; 14620 } 14621 function createTexture(gl, image, textureId) { 14622 gl.activeTexture(textureId); 14623 var texture = gl.createTexture(); 14624 gl.bindTexture(gl.TEXTURE_2D, texture); 14625 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); 14626 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); 14627 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); 14628 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); 14629 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); 14630 return texture; 14631 } 14632 var currentGL, currentCanvas; 14633 function generateGL() { 14634 if (currentGL) { 14635 return; 14636 } 14637 currentCanvas = document.createElement('canvas'); 14638 currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false }); 14639 } 14640 var smaskVertexShaderCode = '\ 14641 attribute vec2 a_position; \ 14642 attribute vec2 a_texCoord; \ 14643 \ 14644 uniform vec2 u_resolution; \ 14645 \ 14646 varying vec2 v_texCoord; \ 14647 \ 14648 void main() { \ 14649 vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ 14650 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 14651 \ 14652 v_texCoord = a_texCoord; \ 14653 } '; 14654 var smaskFragmentShaderCode = '\ 14655 precision mediump float; \ 14656 \ 14657 uniform vec4 u_backdrop; \ 14658 uniform int u_subtype; \ 14659 uniform sampler2D u_image; \ 14660 uniform sampler2D u_mask; \ 14661 \ 14662 varying vec2 v_texCoord; \ 14663 \ 14664 void main() { \ 14665 vec4 imageColor = texture2D(u_image, v_texCoord); \ 14666 vec4 maskColor = texture2D(u_mask, v_texCoord); \ 14667 if (u_backdrop.a > 0.0) { \ 14668 maskColor.rgb = maskColor.rgb * maskColor.a + \ 14669 u_backdrop.rgb * (1.0 - maskColor.a); \ 14670 } \ 14671 float lum; \ 14672 if (u_subtype == 0) { \ 14673 lum = maskColor.a; \ 14674 } else { \ 14675 lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ 14676 maskColor.b * 0.11; \ 14677 } \ 14678 imageColor.a *= lum; \ 14679 imageColor.rgb *= imageColor.a; \ 14680 gl_FragColor = imageColor; \ 14681 } '; 14682 var smaskCache = null; 14683 function initSmaskGL() { 14684 var canvas, gl; 14685 generateGL(); 14686 canvas = currentCanvas; 14687 currentCanvas = null; 14688 gl = currentGL; 14689 currentGL = null; 14690 var vertexShader = createVertexShader(gl, smaskVertexShaderCode); 14691 var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); 14692 var program = createProgram(gl, [vertexShader, fragmentShader]); 14693 gl.useProgram(program); 14694 var cache = {}; 14695 cache.gl = gl; 14696 cache.canvas = canvas; 14697 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 14698 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 14699 cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); 14700 cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); 14701 var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); 14702 var texLayerLocation = gl.getUniformLocation(program, 'u_image'); 14703 var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); 14704 var texCoordBuffer = gl.createBuffer(); 14705 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); 14706 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW); 14707 gl.enableVertexAttribArray(texCoordLocation); 14708 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); 14709 gl.uniform1i(texLayerLocation, 0); 14710 gl.uniform1i(texMaskLocation, 1); 14711 smaskCache = cache; 14712 } 14713 function composeSMask(layer, mask, properties) { 14714 var width = layer.width, 14715 height = layer.height; 14716 if (!smaskCache) { 14717 initSmaskGL(); 14718 } 14719 var cache = smaskCache, 14720 canvas = cache.canvas, 14721 gl = cache.gl; 14722 canvas.width = width; 14723 canvas.height = height; 14724 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 14725 gl.uniform2f(cache.resolutionLocation, width, height); 14726 if (properties.backdrop) { 14727 gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); 14728 } else { 14729 gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); 14730 } 14731 gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); 14732 var texture = createTexture(gl, layer, gl.TEXTURE0); 14733 var maskTexture = createTexture(gl, mask, gl.TEXTURE1); 14734 var buffer = gl.createBuffer(); 14735 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 14736 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); 14737 gl.enableVertexAttribArray(cache.positionLocation); 14738 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 14739 gl.clearColor(0, 0, 0, 0); 14740 gl.enable(gl.BLEND); 14741 gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); 14742 gl.clear(gl.COLOR_BUFFER_BIT); 14743 gl.drawArrays(gl.TRIANGLES, 0, 6); 14744 gl.flush(); 14745 gl.deleteTexture(texture); 14746 gl.deleteTexture(maskTexture); 14747 gl.deleteBuffer(buffer); 14748 return canvas; 14749 } 14750 var figuresVertexShaderCode = '\ 14751 attribute vec2 a_position; \ 14752 attribute vec3 a_color; \ 14753 \ 14754 uniform vec2 u_resolution; \ 14755 uniform vec2 u_scale; \ 14756 uniform vec2 u_offset; \ 14757 \ 14758 varying vec4 v_color; \ 14759 \ 14760 void main() { \ 14761 vec2 position = (a_position + u_offset) * u_scale; \ 14762 vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ 14763 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 14764 \ 14765 v_color = vec4(a_color / 255.0, 1.0); \ 14766 } '; 14767 var figuresFragmentShaderCode = '\ 14768 precision mediump float; \ 14769 \ 14770 varying vec4 v_color; \ 14771 \ 14772 void main() { \ 14773 gl_FragColor = v_color; \ 14774 } '; 14775 var figuresCache = null; 14776 function initFiguresGL() { 14777 var canvas, gl; 14778 generateGL(); 14779 canvas = currentCanvas; 14780 currentCanvas = null; 14781 gl = currentGL; 14782 currentGL = null; 14783 var vertexShader = createVertexShader(gl, figuresVertexShaderCode); 14784 var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); 14785 var program = createProgram(gl, [vertexShader, fragmentShader]); 14786 gl.useProgram(program); 14787 var cache = {}; 14788 cache.gl = gl; 14789 cache.canvas = canvas; 14790 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 14791 cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); 14792 cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); 14793 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 14794 cache.colorLocation = gl.getAttribLocation(program, 'a_color'); 14795 figuresCache = cache; 14796 } 14797 function drawFigures(width, height, backgroundColor, figures, context) { 14798 if (!figuresCache) { 14799 initFiguresGL(); 14800 } 14801 var cache = figuresCache, 14802 canvas = cache.canvas, 14803 gl = cache.gl; 14804 canvas.width = width; 14805 canvas.height = height; 14806 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 14807 gl.uniform2f(cache.resolutionLocation, width, height); 14808 var count = 0; 14809 var i, ii, rows; 14810 for (i = 0, ii = figures.length; i < ii; i++) { 14811 switch (figures[i].type) { 14812 case 'lattice': 14813 rows = figures[i].coords.length / figures[i].verticesPerRow | 0; 14814 count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; 14815 break; 14816 case 'triangles': 14817 count += figures[i].coords.length; 14818 break; 14819 } 14820 } 14821 var coords = new Float32Array(count * 2); 14822 var colors = new Uint8Array(count * 3); 14823 var coordsMap = context.coords, 14824 colorsMap = context.colors; 14825 var pIndex = 0, 14826 cIndex = 0; 14827 for (i = 0, ii = figures.length; i < ii; i++) { 14828 var figure = figures[i], 14829 ps = figure.coords, 14830 cs = figure.colors; 14831 switch (figure.type) { 14832 case 'lattice': 14833 var cols = figure.verticesPerRow; 14834 rows = ps.length / cols | 0; 14835 for (var row = 1; row < rows; row++) { 14836 var offset = row * cols + 1; 14837 for (var col = 1; col < cols; col++, offset++) { 14838 coords[pIndex] = coordsMap[ps[offset - cols - 1]];
14839 coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; 14840 coords[pIndex + 2] = coordsMap[ps[offset - cols]]; 14841 coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; 14842 coords[pIndex + 4] = coordsMap[ps[offset - 1]]; 14843 coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; 14844 colors[cIndex] = colorsMap[cs[offset - cols - 1]]; 14845 colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; 14846 colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; 14847 colors[cIndex + 3] = colorsMap[cs[offset - cols]]; 14848 colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; 14849 colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; 14850 colors[cIndex + 6] = colorsMap[cs[offset - 1]]; 14851 colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; 14852 colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; 14853 coords[pIndex + 6] = coords[pIndex + 2]; 14854 coords[pIndex + 7] = coords[pIndex + 3]; 14855 coords[pIndex + 8] = coords[pIndex + 4]; 14856 coords[pIndex + 9] = coords[pIndex + 5]; 14857 coords[pIndex + 10] = coordsMap[ps[offset]]; 14858 coords[pIndex + 11] = coordsMap[ps[offset] + 1]; 14859 colors[cIndex + 9] = colors[cIndex + 3]; 14860 colors[cIndex + 10] = colors[cIndex + 4]; 14861 colors[cIndex + 11] = colors[cIndex + 5]; 14862 colors[cIndex + 12] = colors[cIndex + 6]; 14863 colors[cIndex + 13] = colors[cIndex + 7]; 14864 colors[cIndex + 14] = colors[cIndex + 8]; 14865 colors[cIndex + 15] = colorsMap[cs[offset]]; 14866 colors[cIndex + 16] = colorsMap[cs[offset] + 1]; 14867 colors[cIndex + 17] = colorsMap[cs[offset] + 2]; 14868 pIndex += 12; 14869 cIndex += 18; 14870 } 14871 } 14872 break; 14873 case 'triangles': 14874 for (var j = 0, jj = ps.length; j < jj; j++) { 14875 coords[pIndex] = coordsMap[ps[j]]; 14876 coords[pIndex + 1] = coordsMap[ps[j] + 1]; 14877 colors[cIndex] = colorsMap[cs[j]]; 14878 colors[cIndex + 1] = colorsMap[cs[j] + 1]; 14879 colors[cIndex + 2] = colorsMap[cs[j] + 2]; 14880 pIndex += 2; 14881 cIndex += 3; 14882 } 14883 break; 14884 } 14885 } 14886 if (backgroundColor) { 14887 gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); 14888 } else { 14889 gl.clearColor(0, 0, 0, 0); 14890 } 14891 gl.clear(gl.COLOR_BUFFER_BIT); 14892 var coordsBuffer = gl.createBuffer(); 14893 gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); 14894 gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); 14895 gl.enableVertexAttribArray(cache.positionLocation); 14896 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 14897 var colorsBuffer = gl.createBuffer(); 14898 gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); 14899 gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); 14900 gl.enableVertexAttribArray(cache.colorLocation); 14901 gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); 14902 gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); 14903 gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); 14904 gl.drawArrays(gl.TRIANGLES, 0, count); 14905 gl.flush(); 14906 gl.deleteBuffer(coordsBuffer); 14907 gl.deleteBuffer(colorsBuffer); 14908 return canvas; 14909 } 14910 return { 14911 tryInitGL: function tryInitGL() { 14912 try { 14913 generateGL(); 14914 return !!currentGL; 14915 } catch (ex) {} 14916 return false; 14917 }, 14918 14919 composeSMask: composeSMask, 14920 drawFigures: drawFigures, 14921 cleanup: function cleanup() { 14922 if (smaskCache && smaskCache.canvas) { 14923 smaskCache.canvas.width = 0; 14924 smaskCache.canvas.height = 0; 14925 } 14926 if (figuresCache && figuresCache.canvas) { 14927 figuresCache.canvas.width = 0; 14928 figuresCache.canvas.height = 0; 14929 } 14930 smaskCache = null; 14931 figuresCache = null; 14932 } 14933 }; 14934}(); 14935exports.WebGLContext = WebGLContext; 14936 14937/***/ }), 14938/* 145 */ 14939/***/ (function(module, exports, __w_pdfjs_require__) { 14940 14941"use strict"; 14942 14943 14944Object.defineProperty(exports, "__esModule", { 14945 value: true 14946}); 14947exports.renderTextLayer = undefined; 14948 14949var _util = __w_pdfjs_require__(1); 14950 14951var _global_scope = __w_pdfjs_require__(3); 14952 14953var _global_scope2 = _interopRequireDefault(_global_scope); 14954 14955function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 14956 14957var renderTextLayer = function renderTextLayerClosure() { 14958 var MAX_TEXT_DIVS_TO_RENDER = 100000; 14959 var NonWhitespaceRegexp = /\S/; 14960 function isAllWhitespace(str) { 14961 return !NonWhitespaceRegexp.test(str); 14962 } 14963 var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; 14964 function appendText(task, geom, styles) { 14965 var textDiv = document.createElement('div'); 14966 var textDivProperties = { 14967 style: null, 14968 angle: 0, 14969 canvasWidth: 0, 14970 isWhitespace: false, 14971 originalTransform: null, 14972 paddingBottom: 0, 14973 paddingLeft: 0, 14974 paddingRight: 0, 14975 paddingTop: 0, 14976 scale: 1 14977 }; 14978 task._textDivs.push(textDiv); 14979 if (isAllWhitespace(geom.str)) { 14980 textDivProperties.isWhitespace = true; 14981 task._textDivProperties.set(textDiv, textDivProperties); 14982 return; 14983 } 14984 var tx = _util.Util.transform(task._viewport.transform, geom.transform); 14985 var angle = Math.atan2(tx[1], tx[0]); 14986 var style = styles[geom.fontName]; 14987 if (style.vertical) { 14988 angle += Math.PI / 2; 14989 } 14990 var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); 14991 var fontAscent = fontHeight; 14992 if (style.ascent) { 14993 fontAscent = style.ascent * fontAscent; 14994 }
14994 else if (style.descent) { 14995 fontAscent = (1 + style.descent) * fontAscent; 14996 } 14997 var left; 14998 var top; 14999 if (angle === 0) { 15000 left = tx[4]; 15001 top = tx[5] - fontAscent; 15002 } else { 15003 left = tx[4] + fontAscent * Math.sin(angle); 15004 top = tx[5] - fontAscent * Math.cos(angle); 15005 } 15006 styleBuf[1] = left; 15007 styleBuf[3] = top; 15008 styleBuf[5] = fontHeight; 15009 styleBuf[7] = style.fontFamily; 15010 textDivProperties.style = styleBuf.join(''); 15011 textDiv.setAttribute('style', textDivProperties.style); 15012 textDiv.textContent = geom.str; 15013 if (task._fontInspectorEnabled) { 15014 textDiv.dataset.fontName = geom.fontName; 15015 } 15016 if (angle !== 0) { 15017 textDivProperties.angle = angle * (180 / Math.PI); 15018 } 15019 if (geom.str.length > 1) { 15020 if (style.vertical) { 15021 textDivProperties.canvasWidth = geom.height * task._viewport.scale; 15022 } else { 15023 textDivProperties.canvasWidth = geom.width * task._viewport.scale; 15024 } 15025 } 15026 task._textDivProperties.set(textDiv, textDivProperties); 15027 if (task._textContentStream) { 15028 task._layoutText(textDiv); 15029 } 15030 if (task._enhanceTextSelection) { 15031 var angleCos = 1, 15032 angleSin = 0; 15033 if (angle !== 0) { 15034 angleCos = Math.cos(angle); 15035 angleSin = Math.sin(angle); 15036 } 15037 var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; 15038 var divHeight = fontHeight; 15039 var m, b; 15040 if (angle !== 0) { 15041 m = [angleCos, angleSin, -angleSin, angleCos, left, top]; 15042 b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); 15043 } else { 15044 b = [left, top, left + divWidth, top + divHeight]; 15045 } 15046 task._bounds.push({ 15047 left: b[0], 15048 top: b[1], 15049 right: b[2], 15050 bottom: b[3], 15051 div: textDiv, 15052 size: [divWidth, divHeight], 15053 m: m 15054 }); 15055 } 15056 } 15057 function render(task) { 15058 if (task._canceled) { 15059 return; 15060 } 15061 var textDivs = task._textDivs; 15062 var capability = task._capability; 15063 var textDivsLength = textDivs.length; 15064 if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { 15065 task._renderingDone = true; 15066 capability.resolve(); 15067 return; 15068 } 15069 if (!task._textContentStream) { 15070 for (var i = 0; i < textDivsLength; i++) { 15071 task._layoutText(textDivs[i]); 15072 } 15073 } 15074 task._renderingDone = true; 15075 capability.resolve(); 15076 } 15077 function expand(task) { 15078 var bounds = task._bounds; 15079 var viewport = task._viewport; 15080 var expanded = expandBounds(viewport.width, viewport.height, bounds); 15081 for (var i = 0; i < expanded.length; i++) { 15082 var div = bounds[i].div; 15083 var divProperties = task._textDivProperties.get(div); 15084 if (divProperties.angle === 0) { 15085 divProperties.paddingLeft = bounds[i].left - expanded[i].left; 15086 divProperties.paddingTop = bounds[i].top - expanded[i].top; 15087 divProperties.paddingRight = expanded[i].right - bounds[i].right; 15088 divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; 15089 task._textDivProperties.set(div, divProperties); 15090 continue; 15091 } 15092 var e = expanded[i], 15093 b = bounds[i]; 15094 var m = b.m, 15095 c = m[0], 15096 s = m[1]; 15097 var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; 15098 var ts = new Float64Array(64); 15099 points.forEach(function (p, i) { 15100 var t = _util.Util.applyTransform(p, m); 15101 ts[i + 0] = c && (e.left - t[0]) / c; 15102 ts[i + 4] = s && (e.top - t[1]) / s; 15103 ts[i + 8] = c && (e.right - t[0]) / c; 15104 ts[i + 12] = s && (e.bottom - t[1]) / s; 15105 ts[i + 16] = s && (e.left - t[0]) / -s; 15106 ts[i + 20] = c && (e.top - t[1]) / c; 15107 ts[i + 24] = s && (e.right - t[0]) / -s; 15108 ts[i + 28] = c && (e.bottom - t[1]) / c; 15109 ts[i + 32] = c && (e.left - t[0]) / -c; 15110 ts[i + 36] = s && (e.top - t[1]) / -s; 15111 ts[i + 40] = c && (e.right - t[0]) / -c; 15112 ts[i + 44] = s && (e.bottom - t[1]) / -s; 15113 ts[i + 48] = s && (e.left - t[0]) / s; 15114 ts[i + 52] = c && (e.top - t[1]) / -c; 15115 ts[i + 56] = s && (e.right - t[0]) / s; 15116 ts[i + 60] = c && (e.bottom - t[1]) / -c; 15117 }); 15118 var findPositiveMin = function findPositiveMin(ts, offset, count) { 15119 var result = 0; 15120 for (var i = 0; i < count; i++) { 15121 var t = ts[offset++]; 15122 if (t > 0) { 15123 result = result ? Math.min(t, result) : t; 15124 } 15125 } 15126 return result; 15127 }; 15128 var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
15129 divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; 15130 divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; 15131 divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; 15132 divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; 15133 task._textDivProperties.set(div, divProperties); 15134 } 15135 } 15136 function expandBounds(width, height, boxes) { 15137 var bounds = boxes.map(function (box, i) { 15138 return { 15139 x1: box.left, 15140 y1: box.top, 15141 x2: box.right, 15142 y2: box.bottom, 15143 index: i, 15144 x1New: undefined, 15145 x2New: undefined 15146 }; 15147 }); 15148 expandBoundsLTR(width, bounds); 15149 var expanded = new Array(boxes.length); 15150 bounds.forEach(function (b) { 15151 var i = b.index; 15152 expanded[i] = { 15153 left: b.x1New, 15154 top: 0, 15155 right: b.x2New, 15156 bottom: 0 15157 }; 15158 }); 15159 boxes.map(function (box, i) { 15160 var e = expanded[i], 15161 b = bounds[i]; 15162 b.x1 = box.top; 15163 b.y1 = width - e.right; 15164 b.x2 = box.bottom; 15165 b.y2 = width - e.left; 15166 b.index = i; 15167 b.x1New = undefined; 15168 b.x2New = undefined; 15169 }); 15170 expandBoundsLTR(height, bounds); 15171 bounds.forEach(function (b) { 15172 var i = b.index; 15173 expanded[i].top = b.x1New; 15174 expanded[i].bottom = b.x2New; 15175 }); 15176 return expanded; 15177 } 15178 function expandBoundsLTR(width, bounds) { 15179 bounds.sort(function (a, b) { 15180 return a.x1 - b.x1 || a.index - b.index; 15181 }); 15182 var fakeBoundary = { 15183 x1: -Infinity, 15184 y1: -Infinity, 15185 x2: 0, 15186 y2: Infinity, 15187 index: -1, 15188 x1New: 0, 15189 x2New: 0 15190 }; 15191 var horizon = [{ 15192 start: -Infinity, 15193 end: Infinity, 15194 boundary: fakeBoundary 15195 }]; 15196 bounds.forEach(function (boundary) { 15197 var i = 0; 15198 while (i < horizon.length && horizon[i].end <= boundary.y1) { 15199 i++; 15200 } 15201 var j = horizon.length - 1; 15202 while (j >= 0 && horizon[j].start >= boundary.y2) { 15203 j--; 15204 } 15205 var horizonPart, affectedBoundary; 15206 var q, 15207 k, 15208 maxXNew = -Infinity; 15209 for (q = i; q <= j; q++) { 15210 horizonPart = horizon[q]; 15211 affectedBoundary = horizonPart.boundary; 15212 var xNew; 15213 if (affectedBoundary.x2 > boundary.x1) { 15214 xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; 15215 } else if (affectedBoundary.x2New === undefined) { 15216 xNew = (affectedBoundary.x2 + boundary.x1) / 2; 15217 } else { 15218 xNew = affectedBoundary.x2New; 15219 } 15220 if (xNew > maxXNew) { 15221 maxXNew = xNew; 15222 } 15223 } 15224 boundary.x1New = maxXNew; 15225 for (q = i; q <= j; q++) { 15226 horizonPart = horizon[q]; 15227 affectedBoundary = horizonPart.boundary; 15228 if (affectedBoundary.x2New === undefined) { 15229 if (affectedBoundary.x2 > boundary.x1) { 15230 if (affectedBoundary.index > boundary.index) { 15231 affectedBoundary.x2New = affectedBoundary.x2; 15232 } 15233 } else { 15234 affectedBoundary.x2New = maxXNew; 15235 } 15236 } else if (affectedBoundary.x2New > maxXNew) { 15237 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); 15238 } 15239 } 15240 var changedHorizon = [], 15241 lastBoundary = null; 15242 for (q = i; q <= j; q++) { 15243 horizonPart = horizon[q]; 15244 affectedBoundary = horizonPart.boundary; 15245 var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; 15246 if (lastBoundary === useBoundary) { 15247 changedHorizon[changedHorizon.length - 1].end = horizonPart.end; 15248 } else { 15249 changedHorizon.push({ 15250 start: horizonPart.start, 15251 end: horizonPart.end, 15252 boundary: useBoundary 15253 }); 15254 lastBoundary = useBoundary; 15255 } 15256 } 15257 if (horizon[i].start < boundary.y1) { 15258 changedHorizon[0].start = boundary.y1; 15259 changedHorizon.unshift({ 15260 start: horizon[i].start, 15261 end: boundary.y1, 15262 boundary: horizon[i].boundary 15263 }); 15264 } 15265 if (boundary.y2 < horizon[j].end) { 15266 changedHorizon[changedHorizon.length - 1].end = boundary.y2; 15267 changedHorizon.push({ 15268 start: boundary.y2, 15269 end: horizon[j].end, 15270 boundary: horizon[j].boundary 15271 }); 15272 } 15273 for (q = i; q <= j; q++) { 15274 horizonPart = horizon[q]; 15275 affectedBoundary = horizonPart.boundary; 15276 if (affectedBoundary.x2New !== undefined) { 15277 continue; 15278 } 15279 var used = false;
15280 for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { 15281 used = horizon[k].boundary === affectedBoundary; 15282 } 15283 for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { 15284 used = horizon[k].boundary === affectedBoundary; 15285 } 15286 for (k = 0; !used && k < changedHorizon.length; k++) { 15287 used = changedHorizon[k].boundary === affectedBoundary; 15288 } 15289 if (!used) { 15290 affectedBoundary.x2New = maxXNew; 15291 } 15292 } 15293 Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); 15294 }); 15295 horizon.forEach(function (horizonPart) { 15296 var affectedBoundary = horizonPart.boundary; 15297 if (affectedBoundary.x2New === undefined) { 15298 affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); 15299 } 15300 }); 15301 } 15302 function TextLayerRenderTask(_ref) { 15303 var textContent = _ref.textContent, 15304 textContentStream = _ref.textContentStream, 15305 container = _ref.container, 15306 viewport = _ref.viewport, 15307 textDivs = _ref.textDivs, 15308 textContentItemsStr = _ref.textContentItemsStr, 15309 enhanceTextSelection = _ref.enhanceTextSelection; 15310 15311 this._textContent = textContent; 15312 this._textContentStream = textContentStream; 15313 this._container = container; 15314 this._viewport = viewport; 15315 this._textDivs = textDivs || []; 15316 this._textContentItemsStr = textContentItemsStr || []; 15317 this._enhanceTextSelection = !!enhanceTextSelection; 15318 this._fontInspectorEnabled = !!(_global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled); 15319 this._reader = null; 15320 this._layoutTextLastFontSize = null; 15321 this._layoutTextLastFontFamily = null; 15322 this._layoutTextCtx = null; 15323 this._textDivProperties = new WeakMap(); 15324 this._renderingDone = false; 15325 this._canceled = false; 15326 this._capability = (0, _util.createPromiseCapability)(); 15327 this._renderTimer = null; 15328 this._bounds = []; 15329 } 15330 TextLayerRenderTask.prototype = { 15331 get promise() { 15332 return this._capability.promise; 15333 }, 15334 cancel: function TextLayer_cancel() { 15335 if (this._reader) { 15336 this._reader.cancel(new _util.AbortException('text layer task cancelled')); 15337 this._reader = null; 15338 } 15339 this._canceled = true; 15340 if (this._renderTimer !== null) { 15341 clearTimeout(this._renderTimer); 15342 this._renderTimer = null; 15343 } 15344 this._capability.reject('canceled'); 15345 }, 15346 _processItems: function _processItems(items, styleCache) { 15347 for (var i = 0, len = items.length; i < len; i++) { 15348 this._textContentItemsStr.push(items[i].str); 15349 appendText(this, items[i], styleCache); 15350 } 15351 }, 15352 _layoutText: function _layoutText(textDiv) { 15353 var textLayerFrag = this._container; 15354 var textDivProperties = this._textDivProperties.get(textDiv); 15355 if (textDivProperties.isWhitespace) { 15356 return; 15357 } 15358 var fontSize = textDiv.style.fontSize; 15359 var fontFamily = textDiv.style.fontFamily; 15360 if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { 15361 this._layoutTextCtx.font = fontSize + ' ' + fontFamily; 15362 this._layoutTextLastFontSize = fontSize; 15363 this._layoutTextLastFontFamily = fontFamily; 15364 } 15365 var width = this._layoutTextCtx.measureText(textDiv.textContent).width; 15366 var transform = ''; 15367 if (textDivProperties.canvasWidth !== 0 && width > 0) { 15368 textDivProperties.scale = textDivProperties.canvasWidth / width; 15369 transform = 'scaleX(' + textDivProperties.scale + ')'; 15370 } 15371 if (textDivProperties.angle !== 0) { 15372 transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform; 15373 } 15374 if (transform !== '') { 15375 textDivProperties.originalTransform = transform; 15376 textDiv.style.transform = transform; 15377 } 15378 this._textDivProperties.set(textDiv, textDivProperties); 15379 textLayerFrag.appendChild(textDiv); 15380 }, 15381 15382 _render: function TextLayer_render(timeout) { 15383 var _this = this; 15384 15385 var capability = (0, _util.createPromiseCapability)(); 15386 var styleCache = Object.create(null); 15387 var canvas = document.createElement('canvas'); 15388 canvas.mozOpaque = true; 15389 this._layoutTextCtx = canvas.getContext('2d', { alpha: false }); 15390 if (this._textContent) { 15391 var textItems = this._textContent.items; 15392 var textStyles = this._textContent.styles; 15393 this._processItems(textItems, textStyles); 15394 capability.resolve(); 15395 } else if (this._textContentStream) { 15396 var pump = function pump() { 15397 _this._reader.read().then(function (_ref2) { 15398 var value = _ref2.value, 15399 done = _ref2.done; 15400 15401 if (done) { 15402 capability.resolve(); 15403 return; 15404 } 15405 Object.assign(styleCache, value.styles); 15406 _this._processItems(value.items, styleCache); 15407 pump(); 15408 }, capability.reject); 15409 }; 15410 this._reader = this._textContentStream.getReader(); 15411 pump(); 15412 } else { 15413 throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); 15414 } 15415 capability.promise.then(function () { 15416 styleCache = null; 15417 if (!timeout) { 15418 render(_this); 15419 } else { 15420 _this._renderTimer = setTimeout(function () { 15421 render(_this); 15422 _this._renderTimer = null; 15423 }, timeout); 15424 } 15425 }, this._capability.reject); 15426 }, 15427 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { 15428 if (!this._enhanceTextSelection || !this._renderingDone) { 15429 return; 15430 } 15431 if (this._bounds !== null) { 15432 expand(this); 15433 this._bounds = null; 15434 } 15435 for (var i = 0, ii = this._textDivs.length; i < ii; i++) { 15436 var div = this._textDivs[i]; 15437 var divProperties = this._textDivProperties.get(div); 15438 if (divProperties.isWhitespace) { 15439 continue; 15440 } 15441 if (expandDivs) { 15442 var transform = '', 15443 padding = ''; 15444 if (divProperties.scale !== 1) { 15445 transform = 'scaleX(' + divProperties.scale + ')'; 15446 } 15447 if (divProperties.angle !== 0) { 15448 transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; 15449 } 15450 if (divProperties.paddingLeft !== 0) { 15451 padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; 15452 transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; 15453 } 15454 if (divProperties.paddingTop !== 0) { 15455 padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; 15456 transform += ' translateY(' + -divProperties.paddingTop + 'px)'; 15457 } 15458 if (divProperties.paddingRight !== 0) { 15459 padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; 15460 } 15461 if (divProperties.paddingBottom !== 0) { 15462 padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; 15463 } 15464 if (padding !== '') { 15465 div.setAttribute('style', divProperties.style + padding); 15466 } 15467 if (transform !== '') { 15468 div.style.transform = transform; 15469 } 15470 } else { 15471 div.style.padding = 0; 15472 div.style.transform = divProperties.originalTransform || ''; 15473 } 15474 } 15475 } 15476 }; 15477 function renderTextLayer(renderParameters) { 15478 var task = new TextLayerRenderTask({ 15479 textContent: renderParameters.textContent, 15480 textContentStream: renderParameters.textContentStream, 15481 container: renderParameters.container, 15482 viewport: renderParameters.viewport, 15483 textDivs: renderParameters.textDivs, 15484 textContentItemsStr: renderParameters.textContentItemsStr, 15485 enhanceTextSelection: renderParameters.enhanceTextSelection 15486 }); 15487 task._render(renderParameters.timeout); 15488 return task; 15489 } 15490 return renderTextLayer; 15491}(); 15492exports.renderTextLayer = renderTextLayer; 15493 15494/***/ }), 15495/* 146 */ 15496/***/ (function(module, exports, __w_pdfjs_require__) { 15497 15498"use strict"; 15499 15500 15501Object.defineProperty(exports, "__esModule", { 15502 value: true 15503}); 15504exports.AnnotationLayer = undefined; 15505 15506var _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); } }; 15507 15508var _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; }; }(); 15509 15510var _dom_utils = __w_pdfjs_require__(130); 15511 15512var _util = __w_pdfjs_require__(1); 15513 15514function _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; } 15515 15516function _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, { c
15516onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 15517 15518function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 15519 15520var AnnotationElementFactory = function () { 15521 function AnnotationElementFactory() { 15522 _classCallCheck(this, AnnotationElementFactory); 15523 } 15524 15525 _createClass(AnnotationElementFactory, null, [{ 15526 key: 'create', 15527 value: function create(parameters) { 15528 var subtype = parameters.data.annotationType; 15529 switch (subtype) { 15530 case _util.AnnotationType.LINK: 15531 return new LinkAnnotationElement(parameters); 15532 case _util.AnnotationType.TEXT: 15533 return new TextAnnotationElement(parameters); 15534 case _util.AnnotationType.WIDGET: 15535 var fieldType = parameters.data.fieldType; 15536 switch (fieldType) { 15537 case 'Tx': 15538 return new TextWidgetAnnotationElement(parameters); 15539 case 'Btn': 15540 if (parameters.data.radioButton) { 15541 return new RadioButtonWidgetAnnotationElement(parameters); 15542 } else if (parameters.data.checkBox) { 15543 return new CheckboxWidgetAnnotationElement(parameters); 15544 } 15545 return new PushButtonWidgetAnnotationElement(parameters); 15546 case 'Ch': 15547 return new ChoiceWidgetAnnotationElement(parameters); 15548 } 15549 return new WidgetAnnotationElement(parameters); 15550 case _util.AnnotationType.POPUP: 15551 return new PopupAnnotationElement(parameters); 15552 case _util.AnnotationType.LINE: 15553 return new LineAnnotationElement(parameters); 15554 case _util.AnnotationType.SQUARE: 15555 return new SquareAnnotationElement(parameters); 15556 case _util.AnnotationType.CIRCLE: 15557 return new CircleAnnotationElement(parameters); 15558 case _util.AnnotationType.POLYLINE: 15559 return new PolylineAnnotationElement(parameters); 15560 case _util.AnnotationType.INK: 15561 return new InkAnnotationElement(parameters); 15562 case _util.AnnotationType.POLYGON: 15563 return new PolygonAnnotationElement(parameters); 15564 case _util.AnnotationType.HIGHLIGHT: 15565 return new HighlightAnnotationElement(parameters); 15566 case _util.AnnotationType.UNDERLINE: 15567 return new UnderlineAnnotationElement(parameters); 15568 case _util.AnnotationType.SQUIGGLY: 15569 return new SquigglyAnnotationElement(parameters); 15570 case _util.AnnotationType.STRIKEOUT: 15571 return new StrikeOutAnnotationElement(parameters); 15572 case _util.AnnotationType.STAMP: 15573 return new StampAnnotationElement(parameters); 15574 case _util.AnnotationType.FILEATTACHMENT: 15575 return new FileAttachmentAnnotationElement(parameters); 15576 default: 15577 return new AnnotationElement(parameters); 15578 } 15579 } 15580 }]); 15581 15582 return AnnotationElementFactory; 15583}(); 15584 15585var AnnotationElement = function () { 15586 function AnnotationElement(parameters) { 15587 var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 15588 var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 15589 15590 _classCallCheck(this, AnnotationElement); 15591 15592 this.isRenderable = isRenderable; 15593 this.data = parameters.data; 15594 this.layer = parameters.layer; 15595 this.page = parameters.page; 15596 this.viewport = parameters.viewport; 15597 this.linkService = parameters.linkService; 15598 this.downloadManager = parameters.downloadManager; 15599 this.imageResourcesPath = parameters.imageResourcesPath; 15600 this.renderInteractiveForms = parameters.renderInteractiveForms; 15601 this.svgFactory = parameters.svgFactory; 15602 if (isRenderable) { 15603 this.container = this._createContainer(ignoreBorder); 15604 } 15605 } 15606 15607 _createClass(AnnotationElement, [{ 15608 key: '_createContainer', 15609 value: function _createContainer() { 15610 var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
15611 15612 var data = this.data, 15613 page = this.page, 15614 viewport = this.viewport; 15615 var container = document.createElement('section'); 15616 var width = data.rect[2] - data.rect[0]; 15617 var height = data.rect[3] - data.rect[1]; 15618 container.setAttribute('data-annotation-id', data.id); 15619 var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); 15620 container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; 15621 container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; 15622 if (!ignoreBorder && data.borderStyle.width > 0) { 15623 container.style.borderWidth = data.borderStyle.width + 'px'; 15624 if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { 15625 width = width - 2 * data.borderStyle.width; 15626 height = height - 2 * data.borderStyle.width; 15627 } 15628 var horizontalRadius = data.borderStyle.horizontalCornerRadius; 15629 var verticalRadius = data.borderStyle.verticalCornerRadius; 15630 if (horizontalRadius > 0 || verticalRadius > 0) { 15631 var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; 15632 container.style.borderRadius = radius; 15633 } 15634 switch (data.borderStyle.style) { 15635 case _util.AnnotationBorderStyleType.SOLID: 15636 container.style.borderStyle = 'solid'; 15637 break; 15638 case _util.AnnotationBorderStyleType.DASHED: 15639 container.style.borderStyle = 'dashed'; 15640 break; 15641 case _util.AnnotationBorderStyleType.BEVELED: 15642 (0, _util.warn)('Unimplemented border style: beveled'); 15643 break; 15644 case _util.AnnotationBorderStyleType.INSET: 15645 (0, _util.warn)('Unimplemented border style: inset'); 15646 break; 15647 case _util.AnnotationBorderStyleType.UNDERLINE: 15648 container.style.borderBottomStyle = 'solid'; 15649 break; 15650 default: 15651 break; 15652 } 15653 if (data.color) { 15654 container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); 15655 } else { 15656 container.style.borderWidth = 0; 15657 } 15658 } 15659 container.style.left = rect[0] + 'px'; 15660 container.style.top = rect[1] + 'px'; 15661 container.style.width = width + 'px'; 15662 container.style.height = height + 'px'; 15663 return container; 15664 } 15665 }, { 15666 key: '_createPopup', 15667 value: function _createPopup(container, trigger, data) { 15668 if (!trigger) { 15669 trigger = document.createElement('div'); 15670 trigger.style.height = container.style.height; 15671 trigger.style.width = container.style.width; 15672 container.appendChild(trigger); 15673 } 15674 var popupElement = new PopupElement({ 15675 container: container, 15676 trigger: trigger, 15677 color: data.color, 15678 title: data.title, 15679 contents: data.contents, 15680 hideWrapper: true 15681 }); 15682 var popup = popupElement.render(); 15683 popup.style.left = container.style.width; 15684 container.appendChild(popup); 15685 } 15686 }, { 15687 key: 'render', 15688 value: function render() { 15689 (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); 15690 } 15691 }]); 15692 15693 return AnnotationElement; 15694}(); 15695 15696var LinkAnnotationElement = function (_AnnotationElement) { 15697 _inherits(LinkAnnotationElement, _AnnotationElement); 15698 15699 function LinkAnnotationElement(parameters) { 15700 _classCallCheck(this, LinkAnnotationElement); 15701 15702 var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); 15703 return _possibleConstructorReturn(this, (LinkAnnotationElement.__proto__ || Object.getPrototypeOf(LinkAnnotationElement)).call(this, parameters, isRenderable)); 15704 } 15705 15706 _createClass(LinkAnnotationElement, [{ 15707 key: 'render', 15708 value: function render() { 15709 this.container.className = 'linkAnnotation'; 15710 var data = this.data, 15711 linkService = this.linkService; 15712 15713 var link = document.createElement('a'); 15714 (0, _dom_utils.addLinkAttributes)(link, { 15715 url: data.url, 15716 target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget, 15717 rel: linkService.externalLinkRel 15718 }); 15719 if (!data.url) { 15720 if (data.action) { 15721 this._bindNamedAction(link, data.action); 15722 } else { 15723 this._bindLink(link, data.dest); 15724 } 15725 } 15726 this.container.appendChild(link); 15727 return this.container; 15728 } 15729 }, { 15730 key: '_bindLink', 15731 value: function _bindLink(link, destination) { 15732 var _this2 = this; 15733 15734 link.href = this.linkService.getDestinationHash(destination); 15735 link.onclick = function () { 15736 if (destination) { 15737 _this2.linkService.navigateTo(destination); 15738 } 15739 return false;
15740 }; 15741 if (destination) { 15742 link.className = 'internalLink'; 15743 } 15744 } 15745 }, { 15746 key: '_bindNamedAction', 15747 value: function _bindNamedAction(link, action) { 15748 var _this3 = this; 15749 15750 link.href = this.linkService.getAnchorUrl(''); 15751 link.onclick = function () { 15752 _this3.linkService.executeNamedAction(action); 15753 return false; 15754 }; 15755 link.className = 'internalLink'; 15756 } 15757 }]); 15758 15759 return LinkAnnotationElement; 15760}(AnnotationElement); 15761 15762var TextAnnotationElement = function (_AnnotationElement2) { 15763 _inherits(TextAnnotationElement, _AnnotationElement2); 15764 15765 function TextAnnotationElement(parameters) { 15766 _classCallCheck(this, TextAnnotationElement); 15767 15768 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 15769 return _possibleConstructorReturn(this, (TextAnnotationElement.__proto__ || Object.getPrototypeOf(TextAnnotationElement)).call(this, parameters, isRenderable)); 15770 } 15771 15772 _createClass(TextAnnotationElement, [{ 15773 key: 'render', 15774 value: function render() { 15775 this.container.className = 'textAnnotation'; 15776 var image = document.createElement('img'); 15777 image.style.height = this.container.style.height; 15778 image.style.width = this.container.style.width; 15779 image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; 15780 image.alt = '[{{type}} Annotation]'; 15781 image.dataset.l10nId = 'text_annotation_type'; 15782 image.dataset.l10nArgs = JSON.stringify({ type: this.data.name }); 15783 if (!this.data.hasPopup) { 15784 this._createPopup(this.container, image, this.data); 15785 } 15786 this.container.appendChild(image); 15787 return this.container; 15788 } 15789 }]); 15790 15791 return TextAnnotationElement; 15792}(AnnotationElement); 15793 15794var WidgetAnnotationElement = function (_AnnotationElement3) { 15795 _inherits(WidgetAnnotationElement, _AnnotationElement3); 15796 15797 function WidgetAnnotationElement() { 15798 _classCallCheck(this, WidgetAnnotationElement); 15799 15800 return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.getPrototypeOf(WidgetAnnotationElement)).apply(this, arguments)); 15801 } 15802 15803 _createClass(WidgetAnnotationElement, [{ 15804 key: 'render', 15805 value: function render() { 15806 return this.container; 15807 } 15808 }]); 15809 15810 return WidgetAnnotationElement; 15811}(AnnotationElement); 15812 15813var TextWidgetAnnotationElement = function (_WidgetAnnotationElem) { 15814 _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); 15815 15816 function TextWidgetAnnotationElement(parameters) { 15817 _classCallCheck(this, TextWidgetAnnotationElement); 15818 15819 var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; 15820 return _possibleConstructorReturn(this, (TextWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(TextWidgetAnnotationElement)).call(this, parameters, isRenderable)); 15821 } 15822 15823 _createClass(TextWidgetAnnotationElement, [{ 15824 key: 'render', 15825 value: function render() { 15826 var TEXT_ALIGNMENT = ['left', 'center', 'right']; 15827 this.container.className = 'textWidgetAnnotation'; 15828 var element = null; 15829 if (this.renderInteractiveForms) { 15830 if (this.data.multiLine) { 15831 element = document.createElement('textarea'); 15832 element.textContent = this.data.fieldValue; 15833 } else { 15834 element = document.createElement('input'); 15835 element.type = 'text'; 15836 element.setAttribute('value', this.data.fieldValue); 15837 } 15838 element.disabled = this.data.readOnly; 15839 if (this.data.maxLen !== null) { 15840 element.maxLength = this.data.maxLen; 15841 } 15842 if (this.data.comb) { 15843 var fieldWidth = this.data.rect[2] - this.data.rect[0]; 15844 var combWidth = fieldWidth / this.data.maxLen; 15845 element.classList.add('comb'); 15846 element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; 15847 } 15848 } else { 15849 element = document.createElement('div'); 15850 element.textContent = this.data.fieldValue; 15851 element.style.verticalAlign = 'middle'; 15852 element.style.display = 'table-cell'; 15853 var font = null; 15854 if (this.data.fontRefName) { 15855 font = this.page.commonObjs.getData(this.data.fontRefName); 15856 } 15857 this._setTextStyle(element, font); 15858 } 15859 if (this.data.textAlignment !== null) { 15860 element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; 15861 } 15862 this.container.appendChild(element); 15863 return this.container; 15864 } 15865 }, { 15866 key: '_setTextStyle', 15867 value: function _setTextStyle(element, font) { 15868 var style = element.style; 15869 style.fontSize = this.data.fontSize + 'px'; 15870 style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; 15871 if (!font) { 15872 return; 15873 } 15874 style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; 15875 style.fontStyle = font.italic ? 'italic' : 'normal'; 15876 var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; 15877 var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; 15878 style.fontFamily = fontFamily + fallbackName; 15879 } 15880 }]); 15881 15882 return TextWidgetAnnotationElement; 15883}(WidgetAnnotationElement); 15884 15885var CheckboxWidgetAnnotationElement = function (_WidgetAnnotationElem2) { 15886 _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); 15887 15888 function CheckboxWidgetAnnotationElement(parameters) { 15889 _classCallCheck(this, CheckboxWidgetAnnotationElement); 15890 15891 return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(CheckboxWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); 15892 } 15893 15894 _createClass(CheckboxWidgetAnnotationElement, [{ 15895 key: 'render', 15896 value: function render() { 15897 this.container.className = 'buttonWidgetAnnotation checkBox'; 15898 var element = document.createElement('input'); 15899 element.disabled = this.data.readOnly; 15900 element.type = 'checkbox'; 15901 if (this.data.fieldValue && this.data.fieldValue !== 'Off') { 15902 element.setAttribute('checked', true); 15903 } 15904 this.container.appendChild(element); 15905 return this.container; 15906 } 15907 }]); 15908 15909 return CheckboxWidgetAnnotationElement; 15910}(WidgetAnnotationElement); 15911 15912var RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) { 15913 _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); 15914 15915 function RadioButtonWidgetAnnotationElement(parameters) { 15916 _classCallCheck(this, RadioButtonWidgetAnnotationElement); 15917 15918 return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(RadioButtonWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); 15919 } 15920 15921 _createClass(RadioButtonWidgetAnnotationElement, [{ 15922 key: 'render', 15923 value: function render() { 15924 this.container.className = 'buttonWidgetAnnotation radioButton'; 15925 var element = document.createElement('input'); 15926 element.disabled = this.data.readOnly; 15927 element.type = 'radio'; 15928 element.name = this.data.fieldName; 15929 if (this.data.fieldValue === this.data.buttonValue) { 15930 element.setAttribute('checked', true); 15931 } 15932 this.container.appendChild(element); 15933 return this.container; 15934 } 15935 }]); 15936 15937 return RadioButtonWidgetAnnotationElement; 15938}(WidgetAnnotationElement); 15939 15940var PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) { 15941 _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); 15942 15943 function PushButtonWidgetAnnotationElement() { 15944 _classCallCheck(this, PushButtonWidgetAnnotationElement); 15945 15946 return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments)); 15947 } 15948 15949 _createClass(PushButtonWidgetAnnotationElement, [{ 15950 key: 'render', 15951 value: function render() { 15952 var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this); 15953 container.className = 'buttonWidgetAnnotation pushButton'; 15954 return container; 15955 } 15956 }]); 15957 15958 return PushButtonWidgetAnnotationElement; 15959}(LinkAnnotationElement); 15960 15961var ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) { 15962 _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); 15963 15964 function ChoiceWidgetAnnotationElement(parameters) { 15965 _classCallCheck(this, ChoiceWidgetAnnotationElement); 15966 15967 return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); 15968 } 15969 15970 _createClass(ChoiceWidgetAnnotationElement, [{ 15971 key: 'render', 15972 value: function render() { 15973 this.container.className = 'choiceWidgetAnnotation'; 15974 var selectElement = document.createElement('select'); 15975 selectElement.disabled = this.data.readOnly; 15976 if (!this.data.combo) { 15977 selectElement.size = this.data.options.length; 15978 if (this.data.multiSelect) { 15979 selectElement.multiple = true; 15980 } 15981 } 15982 for (var i = 0, ii = this.data.options.length; i < ii; i++) { 15983 var option = this.data.options[i]; 15984 var optionElement = document.createElement('option'); 15985 optionElement.textContent = option.displayValue; 15986 optionElement.value = option.exportValue; 15987 if (this.data.fieldValue.includes(option.displayValue)) { 15988 optionElement.setAttribute('selected', true); 15989 } 15990 selectElement.appendChild(optionElement); 15991 } 15992 this.container.appendChild(selectElement); 15993 return this.container; 15994 } 15995 }]); 15996 15997 return ChoiceWidgetAnnotationElement; 15998}(WidgetAnnotationElement); 15999 16000var PopupAnnotationElement = function (_AnnotationElement4) { 16001 _inherits(PopupAnnotationElement, _AnnotationElement4); 16002 16003 function PopupAnnotationElement(parameters) { 16004 _classCallCheck(this, PopupAnnotationElement); 16005 16006 var isRenderable = !!(parameters.data.title || parameters.data.contents); 16007 return _possibleConstructorReturn(this, (PopupAnnotationElement.__proto__ || Object.getPrototypeOf(PopupAnnotationElement)).call(this, parameters, isRenderable)); 16008 } 16009 16010 _createClass(PopupAnnotationElement, [{ 16011 key: 'render', 16012 value: function render() { 16013 var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; 16014 this.container.className = 'popupAnnotation'; 16015 if (IGNORE_TYPES.includes(this.data.parentType)) { 16016 return this.container; 16017 } 16018 var selector = '[data-annotation-id="' + this.data.parentId + '"]'; 16019 var parentElement = this.layer.querySelector(selector); 16020 if (!parentElement) { 16021 return this.container; 16022 } 16023 var popup = new PopupElement({ 16024 container: this.container, 16025 trigger: parentElement, 16026 color: this.data.color, 16027 title: this.data.title, 16028 contents: this.data.contents 16029 }); 16030 var parentLeft = parseFloat(parentElement.style.left); 16031 var parentWidth = parseFloat(parentElement.style.width); 16032 this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; 16033 this.container.style.left = parentLeft + parentWidth + 'px';
16034 this.container.appendChild(popup.render()); 16035 return this.container; 16036 } 16037 }]); 16038 16039 return PopupAnnotationElement; 16040}(AnnotationElement); 16041 16042var PopupElement = function () { 16043 function PopupElement(parameters) { 16044 _classCallCheck(this, PopupElement); 16045 16046 this.container = parameters.container; 16047 this.trigger = parameters.trigger; 16048 this.color = parameters.color; 16049 this.title = parameters.title; 16050 this.contents = parameters.contents; 16051 this.hideWrapper = parameters.hideWrapper || false; 16052 this.pinned = false; 16053 } 16054 16055 _createClass(PopupElement, [{ 16056 key: 'render', 16057 value: function render() { 16058 var BACKGROUND_ENLIGHT = 0.7; 16059 var wrapper = document.createElement('div'); 16060 wrapper.className = 'popupWrapper'; 16061 this.hideElement = this.hideWrapper ? wrapper : this.container; 16062 this.hideElement.setAttribute('hidden', true); 16063 var popup = document.createElement('div'); 16064 popup.className = 'popup'; 16065 var color = this.color; 16066 if (color) { 16067 var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; 16068 var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; 16069 var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; 16070 popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); 16071 } 16072 var contents = this._formatContents(this.contents); 16073 var title = document.createElement('h1'); 16074 title.textContent = this.title; 16075 this.trigger.addEventListener('click', this._toggle.bind(this)); 16076 this.trigger.addEventListener('mouseover', this._show.bind(this, false)); 16077 this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); 16078 popup.addEventListener('click', this._hide.bind(this, true)); 16079 popup.appendChild(title); 16080 popup.appendChild(contents); 16081 wrapper.appendChild(popup); 16082 return wrapper; 16083 } 16084 }, { 16085 key: '_formatContents', 16086 value: function _formatContents(contents) { 16087 var p = document.createElement('p'); 16088 var lines = contents.split(/(?:\r\n?|\n)/); 16089 for (var i = 0, ii = lines.length; i < ii; ++i) { 16090 var line = lines[i]; 16091 p.appendChild(document.createTextNode(line)); 16092 if (i < ii - 1) { 16093 p.appendChild(document.createElement('br')); 16094 } 16095 } 16096 return p; 16097 } 16098 }, { 16099 key: '_toggle', 16100 value: function _toggle() { 16101 if (this.pinned) { 16102 this._hide(true); 16103 } else { 16104 this._show(true); 16105 } 16106 } 16107 }, { 16108 key: '_show', 16109 value: function _show() { 16110 var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 16111 16112 if (pin) { 16113 this.pinned = true; 16114 } 16115 if (this.hideElement.hasAttribute('hidden')) { 16116 this.hideElement.removeAttribute('hidden'); 16117 this.container.style.zIndex += 1; 16118 } 16119 } 16120 }, { 16121 key: '_hide', 16122 value: function _hide() { 16123 var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16124 16125 if (unpin) { 16126 this.pinned = false; 16127 } 16128 if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { 16129 this.hideElement.setAttribute('hidden', true); 16130 this.container.style.zIndex -= 1; 16131 } 16132 } 16133 }]); 16134 16135 return PopupElement; 16136}(); 16137 16138var LineAnnotationElement = function (_AnnotationElement5) { 16139 _inherits(LineAnnotationElement, _AnnotationElement5); 16140 16141 function LineAnnotationElement(parameters) { 16142 _classCallCheck(this, LineAnnotationElement); 16143 16144 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16145 return _possibleConstructorReturn(this, (LineAnnotationElement.__proto__ || Object.getPrototypeOf(LineAnnotationElement)).call(this, parameters, isRenderable, true)); 16146 } 16147 16148 _createClass(LineAnnotationElement, [{ 16149 key: 'render', 16150 value: function render() { 16151 this.container.className = 'lineAnnotation'; 16152 var data = this.data; 16153 var width = data.rect[2] - data.rect[0]; 16154 var height = data.rect[3] - data.rect[1]; 16155 var svg = this.svgFactory.create(width, height); 16156 var line = this.svgFactory.createElement('svg:line'); 16157 line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); 16158 line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); 16159 line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); 16160 line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); 16161 line.setAttribute('stroke-width', data.borderStyle.width); 16162 line.setAttribute('stroke', 'transparent'); 16163 svg.appendChild(line); 16164 this.container.append(svg); 16165 this._createPopup(this.container, line, data); 16166 return this.container; 16167 } 16168 }]); 16169 16170 return LineAnnotationElement; 16171}(AnnotationElement); 16172 16173var SquareAnnotationElement = function (_AnnotationElement6) { 16174 _inherits(SquareAnnotationElement, _AnnotationElement6); 16175 16176 function SquareAnnotationElement(parameters) { 16177 _classCallCheck(this, SquareAnnotationElement); 16178 16179 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16180 return _possibleConstructorReturn(this, (SquareAnnotationElement.__proto__ || Object.getPrototypeOf(SquareAnnotationElement)).call(this, parameters, isRenderable, true)); 16181 } 16182 16183 _createClass(SquareAnnotationElement, [{ 16184 key: 'render', 16185 value: function render() { 16186 this.container.className = 'squareAnnotation'; 16187 var data = this.data; 16188 var width = data.rect[2] - data.rect[0]; 16189 var height = data.rect[3] - data.rect[1]; 16190 var svg = this.svgFactory.create(width, height); 16191 var borderWidth = data.borderStyle.width; 16192 var square = this.svgFactory.createElement('svg:rect'); 16193 square.setAttribute('x', borderWidth / 2); 16194 square.setAttribute('y', borderWidth / 2); 16195 square.setAttribute('width', width - borderWidth); 16196 square.setAttribute('height', height - borderWidth); 16197 square.setAttribute('stroke-width', borderWidth); 16198 square.setAttribute('stroke', 'transparent'); 16199 square.setAttribute('fill', 'none'); 16200 svg.appendChild(square); 16201 this.container.append(svg); 16202 this._createPopup(this.container, square, data); 16203 return this.container; 16204 } 16205 }]); 16206 16207 return SquareAnnotationElement; 16208}(AnnotationElement); 16209 16210var CircleAnnotationElement = function (_AnnotationElement7) { 16211 _inherits(CircleAnnotationElement, _AnnotationElement7); 16212 16213 function CircleAnnotationElement(parameters) { 16214 _classCallCheck(this, CircleAnnotationElement); 16215 16216 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16217 return _possibleConstructorReturn(this, (CircleAnnotationElement.__proto__ || Object.getPrototypeOf(CircleAnnotationElement)).call(this, parameters, isRenderable, true)); 16218 } 16219 16220 _createClass(CircleAnnotationElement, [{ 16221 key: 'render', 16222 value: function render() { 16223 this.container.className = 'circleAnnotation'; 16224 var data = this.data; 16225 var width = data.rect[2] - data.rect[0]; 16226 var height = data.rect[3] - data.rect[1]; 16227 var svg = this.svgFactory.create(width, height); 16228 var borderWidth = data.borderStyle.width; 16229 var circle = this.svgFactory.createElement('svg:ellipse'); 16230 circle.setAttribute('cx', width / 2); 16231 circle.setAttribute('cy', height / 2); 16232 circle.setAttribute('rx', width / 2 - borderWidth / 2); 16233 circle.setAttribute('ry', height / 2 - borderWidth / 2); 16234 circle.setAttribute('stroke-width', borderWidth); 16235 circle.setAttribute('stroke', 'transparent'); 16236 circle.setAttribute('fill', 'none'); 16237 svg.appendChild(circle); 16238 this.container.append(svg); 16239 this._createPopup(this.container, circle, data); 16240 return this.container; 16241 } 16242 }]); 16243 16244 return CircleAnnotationElement; 16245}(AnnotationElement); 16246 16247var PolylineAnnotationElement = function (_AnnotationElement8) { 16248 _inherits(PolylineAnnotationElement, _AnnotationElement8); 16249 16250 function PolylineAnnotationElement(parameters) { 16251 _classCallCheck(this, PolylineAnnotationElement); 16252 16253 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16254 16255 var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true)); 16256 16257 _this15.containerClassName = 'polylineAnnotation'; 16258 _this15.svgElementName = 'svg:polyline'; 16259 return _this15; 16260 } 16261 16262 _createClass(PolylineAnnotationElement, [{ 16263 key: 'render', 16264 value: function render() { 16265 this.container.className = this.containerClassName; 16266 var data = this.data; 16267 var width = data.rect[2] - data.rect[0]; 16268 var height = data.rect[3] - data.rect[1]; 16269 var svg = this.svgFactory.create(width, height); 16270 var vertices = data.vertices; 16271 var points = []; 16272 for (var i = 0, ii = vertices.length; i < ii; i++) { 16273 var x = vertices[i].x - data.rect[0]; 16274 var y = data.rect[3] - vertices[i].y; 16275 points.push(x + ',' + y); 16276 } 16277 points = points.join(' '); 16278 var borderWidth = data.borderStyle.width; 16279 var polyline = this.svgFactory.createElement(this.svgElementName); 16280 polyline.setAttribute('points', points); 16281 polyline.setAttribute('stroke-width', borderWidth); 16282 polyline.setAttribute('stroke', 'transparent'); 16283 polyline.setAttribute('fill', 'none');
16284 svg.appendChild(polyline); 16285 this.container.append(svg); 16286 this._createPopup(this.container, polyline, data); 16287 return this.container; 16288 } 16289 }]); 16290 16291 return PolylineAnnotationElement; 16292}(AnnotationElement); 16293 16294var PolygonAnnotationElement = function (_PolylineAnnotationEl) { 16295 _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); 16296 16297 function PolygonAnnotationElement(parameters) { 16298 _classCallCheck(this, PolygonAnnotationElement); 16299 16300 var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters)); 16301 16302 _this16.containerClassName = 'polygonAnnotation'; 16303 _this16.svgElementName = 'svg:polygon'; 16304 return _this16; 16305 } 16306 16307 return PolygonAnnotationElement; 16308}(PolylineAnnotationElement); 16309 16310var InkAnnotationElement = function (_AnnotationElement9) { 16311 _inherits(InkAnnotationElement, _AnnotationElement9); 16312 16313 function InkAnnotationElement(parameters) { 16314 _classCallCheck(this, InkAnnotationElement); 16315 16316 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16317 16318 var _this17 = _possibleConstructorReturn(this, (InkAnnotationElement.__proto__ || Object.getPrototypeOf(InkAnnotationElement)).call(this, parameters, isRenderable, true)); 16319 16320 _this17.containerClassName = 'inkAnnotation'; 16321 _this17.svgElementName = 'svg:polyline'; 16322 return _this17; 16323 } 16324 16325 _createClass(InkAnnotationElement, [{ 16326 key: 'render', 16327 value: function render() { 16328 this.container.className = this.containerClassName; 16329 var data = this.data; 16330 var width = data.rect[2] - data.rect[0]; 16331 var height = data.rect[3] - data.rect[1]; 16332 var svg = this.svgFactory.create(width, height); 16333 var inkLists = data.inkLists; 16334 for (var i = 0, ii = inkLists.length; i < ii; i++) { 16335 var inkList = inkLists[i]; 16336 var points = []; 16337 for (var j = 0, jj = inkList.length; j < jj; j++) { 16338 var x = inkList[j].x - data.rect[0]; 16339 var y = data.rect[3] - inkList[j].y; 16340 points.push(x + ',' + y); 16341 } 16342 points = points.join(' '); 16343 var borderWidth = data.borderStyle.width; 16344 var polyline = this.svgFactory.createElement(this.svgElementName); 16345 polyline.setAttribute('points', points); 16346 polyline.setAttribute('stroke-width', borderWidth); 16347 polyline.setAttribute('stroke', 'transparent'); 16348 polyline.setAttribute('fill', 'none'); 16349 this._createPopup(this.container, polyline, data); 16350 svg.appendChild(polyline); 16351 } 16352 this.container.append(svg); 16353 return this.container; 16354 } 16355 }]); 16356 16357 return InkAnnotationElement; 16358}(AnnotationElement); 16359 16360var HighlightAnnotationElement = function (_AnnotationElement10) { 16361 _inherits(HighlightAnnotationElement, _AnnotationElement10); 16362 16363 function HighlightAnnotationElement(parameters) { 16364 _classCallCheck(this, HighlightAnnotationElement); 16365 16366 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16367 return _possibleConstructorReturn(this, (HighlightAnnotationElement.__proto__ || Object.getPrototypeOf(HighlightAnnotationElement)).call(this, parameters, isRenderable, true)); 16368 } 16369 16370 _createClass(HighlightAnnotationElement, [{ 16371 key: 'render', 16372 value: function render() { 16373 this.container.className = 'highlightAnnotation'; 16374 if (!this.data.hasPopup) { 16375 this._createPopup(this.container, null, this.data); 16376 } 16377 return this.container; 16378 } 16379 }]); 16380 16381 return HighlightAnnotationElement; 16382}(AnnotationElement); 16383 16384var UnderlineAnnotationElement = function (_AnnotationElement11) { 16385 _inherits(UnderlineAnnotationElement, _AnnotationElement11); 16386 16387 function UnderlineAnnotationElement(parameters) { 16388 _classCallCheck(this, UnderlineAnnotationElement); 16389 16390 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16391 return _possibleConstructorReturn(this, (UnderlineAnnotationElement.__proto__ || Object.getPrototypeOf(UnderlineAnnotationElement)).call(this, parameters, isRenderable, true)); 16392 } 16393 16394 _createClass(UnderlineAnnotationElement, [{ 16395 key: 'render', 16396 value: function render() { 16397 this.container.className = 'underlineAnnotation'; 16398 if (!this.data.hasPopup) { 16399 this._createPopup(this.container, null, this.data); 16400 } 16401 return this.container; 16402 } 16403 }]); 16404 16405 return UnderlineAnnotationElement; 16406}(AnnotationElement); 16407 16408var SquigglyAnnotationElement = function (_AnnotationElement12) { 16409 _inherits(SquigglyAnnotationElement, _AnnotationElement12); 16410 16411 function SquigglyAnnotationElement(parameters) { 16412 _classCallCheck(this, SquigglyAnnotationElement); 16413 16414 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16415 return _possibleConstructorReturn(this, (SquigglyAnnotationElement.__proto__ || Object.getPrototypeOf(SquigglyAnnotationElement)).call(this, parameters, isRenderable, true)); 16416 } 16417 16418 _createClass(SquigglyAnnotationElement, [{ 16419 key: 'render', 16420 value: function render() { 16421 this.container.className = 'squigglyAnnotation'; 16422 if (!this.data.hasPopup) { 16423 this._createPopup(this.container, null, this.data); 16424 } 16425 return this.container; 16426 } 16427 }]); 16428 16429 return SquigglyAnnotationElement; 16430}(AnnotationElement); 16431 16432var StrikeOutAnnotationElement = function (_AnnotationElement13) { 16433 _inherits(StrikeOutAnnotationElement, _AnnotationElement13); 16434 16435 function StrikeOutAnnotationElement(parameters) { 16436 _classCallCheck(this, StrikeOutAnnotationElement); 16437 16438 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16439 return _possibleConstructorReturn(this, (StrikeOutAnnotationElement.__proto__ || Object.getPrototypeOf(StrikeOutAnnotationElement)).call(this, parameters, isRenderable, true)); 16440 } 16441 16442 _createClass(StrikeOutAnnotationElement, [{ 16443 key: 'render', 16444 value: function render() { 16445 this.container.className = 'strikeoutAnnotation'; 16446 if (!this.data.hasPopup) { 16447 this._createPopup(this.container, null, this.data); 16448 } 16449 return this.container; 16450 } 16451 }]); 16452 16453 return StrikeOutAnnotationElement; 16454}(AnnotationElement); 16455 16456var StampAnnotationElement = function (_AnnotationElement14) { 16457 _inherits(StampAnnotationElement, _AnnotationElement14); 16458 16459 function StampAnnotationElement(parameters) { 16460 _classCallCheck(this, StampAnnotationElement); 16461 16462 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16463 return _possibleConstructorReturn(this, (StampAnnotationElement.__proto__ || Object.getPrototypeOf(StampAnnotationElement)).call(this, parameters, isRenderable, true)); 16464 } 16465 16466 _createClass(StampAnnotationElement, [{ 16467 key: 'render', 16468 value: function render() { 16469 this.container.className = 'stampAnnotation'; 16470 if (!this.data.hasPopup) { 16471 this._createPopup(this.container, null, this.data); 16472 } 16473 return this.container; 16474 } 16475 }]); 16476 16477 return StampAnnotationElement; 16478}(AnnotationElement); 16479 16480var FileAttachmentAnnotationElement = function (_AnnotationElement15) { 16481 _inherits(FileAttachmentAnnotationElement, _AnnotationElement15); 16482 16483 function FileAttachmentAnnotationElement(parameters) { 16484 _classCallCheck(this, FileAttachmentAnnotationElement); 16485 16486 var _this23 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true)); 16487 16488 var _this23$data$file = _this23.data.file, 16489 filename = _this23$data$file.filename, 16490 content = _this23$data$file.content; 16491 16492 _this23.filename = (0, _dom_utils.getFilenameFromUrl)(filename); 16493 _this23.content = content; 16494 if (_this23.linkService.eventBus) { 16495 _this23.linkService.eventBus.dispatch('fileattachmentannotation', { 16496 source: _this23, 16497 id: (0, _util.stringToPDFString)(filename), 16498 filename: filename, 16499 content: content 16500 }); 16501 } 16502 return _this23; 16503 } 16504 16505 _createClass(FileAttachmentAnnotationElement, [{ 16506 key: 'render', 16507 value: function render() { 16508 this.container.className = 'fileAttachmentAnnotation'; 16509 var trigger = document.createElement('div'); 16510 trigger.style.height = this.container.style.height; 16511 trigger.style.width = this.container.style.width; 16512 trigger.addEventListener('dblclick', this._download.bind(this)); 16513 if (!this.data.hasPopup && (this.data.title || this.data.contents)) { 16514 this._createPopup(this.container, trigger, this.data); 16515 } 16516 this.container.appendChild(trigger); 16517 return this.container; 16518 } 16519 }, { 16520 key: '_download', 16521 value: function _download() { 16522 if (!this.downloadManager) { 16523 (0, _util.warn)('Download cannot be started due to unavailable download manager'); 16524 return; 16525 } 16526 this.downloadManager.downloadData(this.content, this.filename, ''); 16527 } 16528 }]); 16529 16530 return FileAttachmentAnnotationElement; 16531}(AnnotationElement); 16532 16533var AnnotationLayer = function () { 16534 function AnnotationLayer() { 16535 _classCallCheck(this, AnnotationLayer); 16536 } 16537 16538 _createClass(AnnotationLayer, null, [{ 16539 key: 'render', 16540 value: function render(parameters) { 16541 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 16542 var data = parameters.annotations[i]; 16543 if (!data) { 16544 continue; 16545 } 16546 var element = AnnotationElementFactory.create({ 16547 data: data, 16548 layer: parameters.div, 16549 page: parameters.page, 16550 viewport: parameters.viewport, 16551 linkService: parameters.linkService, 16552 downloadManager: parameters.downloadManager, 16553 imageResourcesPath: parameters.imageResourcesPath || '', 16554 renderInteractiveForms: parameters.renderInteractiveForms || false, 16555 svgFactory: new _dom_utils.DOMSVGFactory() 16556 }); 16557 if (element.isRenderable) { 16558 parameters.div.appendChild(element.render()); 16559 } 16560 } 16561 } 16562 }, { 16563 key: 'update', 16564 value: function update(parameters) { 16565 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 16566 var data = parameters.annotations[i]; 16567 var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); 16568 if (element) { 16569 element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; 16570 } 16571 } 16572 parameters.div.removeAttribute('hidden'); 16573 } 16574 }]); 16575 16576 return AnnotationLayer; 16577}(); 16578 16579exports.AnnotationLayer = AnnotationLayer; 16580 16581/***/ }), 16582/* 147 */ 16583/***/ (function(module, exports, __w_pdfjs_require__) { 16584 16585"use strict"; 16586 16587 16588Object.defineProperty(exports, "__esModule", { 16589 value: true 16590}); 16591exports.SVGGraphics = undefined; 16592 16593var _util = __w_pdfjs_require__(1); 16594 16595var _dom_utils = __w_pdfjs_require__(130); 16596 16597var _is_node = __w_pdfjs_require__(4); 16598 16599var _is_node2 = _interopRequireDefault(_is_node); 16600 16601function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 16602 16603var SVGGraphics = function SVGGraphics() { 16604 throw new Error('Not implemented: SVGGraphics'); 16605}; 16606{ 16607 var SVG_DEFAULTS = { 16608 fontStyle: 'normal', 16609 fontWeight: 'normal', 16610 fillColor: '#000000' 16611 }; 16612 var convertImgDataToPng = function convertImgDataToPngClosure() { 16613 var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); 16614 var CHUNK_WRAPPER_SIZE = 12; 16615 var crcTable = new Int32Array(256); 16616 for (var i = 0; i < 256; i++) { 16617 var c = i; 16618 for (var h = 0; h < 8; h++) { 16619 if (c & 1) { 16620 c = 0xedB88320 ^ c >> 1 & 0x7fffffff; 16621 } else { 16622 c = c >> 1 & 0x7fffffff; 16623 } 16624 } 16625 crcTable[i] = c; 16626 } 16627 function crc32(data, start, end) { 16628 var crc = -1; 16629 for (var i = start; i < end; i++) { 16630 var a = (crc ^ data[i]) & 0xff;
16631 var b = crcTable[a]; 16632 crc = crc >>> 8 ^ b; 16633 } 16634 return crc ^ -1; 16635 } 16636 function writePngChunk(type, body, data, offset) { 16637 var p = offset; 16638 var len = body.length; 16639 data[p] = len >> 24 & 0xff; 16640 data[p + 1] = len >> 16 & 0xff; 16641 data[p + 2] = len >> 8 & 0xff; 16642 data[p + 3] = len & 0xff; 16643 p += 4; 16644 data[p] = type.charCodeAt(0) & 0xff; 16645 data[p + 1] = type.charCodeAt(1) & 0xff; 16646 data[p + 2] = type.charCodeAt(2) & 0xff; 16647 data[p + 3] = type.charCodeAt(3) & 0xff; 16648 p += 4; 16649 data.set(body, p); 16650 p += body.length; 16651 var crc = crc32(data, offset + 4, p); 16652 data[p] = crc >> 24 & 0xff; 16653 data[p + 1] = crc >> 16 & 0xff; 16654 data[p + 2] = crc >> 8 & 0xff; 16655 data[p + 3] = crc & 0xff; 16656 } 16657 function adler32(data, start, end) { 16658 var a = 1; 16659 var b = 0; 16660 for (var i = start; i < end; ++i) { 16661 a = (a + (data[i] & 0xff)) % 65521; 16662 b = (b + a) % 65521; 16663 } 16664 return b << 16 | a; 16665 } 16666 function deflateSync(literals) { 16667 if (!(0, _is_node2.default)()) { 16668 return deflateSyncUncompressed(literals); 16669 } 16670 try { 16671 var input; 16672 if (parseInt(process.versions.node) >= 8) { 16673 input = literals; 16674 } else { 16675 input = new Buffer(literals); 16676 } 16677 var output = require('zlib').deflateSync(input, { level: 9 }); 16678 return output instanceof Uint8Array ? output : new Uint8Array(output); 16679 } catch (e) { 16680 (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); 16681 } 16682 return deflateSyncUncompressed(literals); 16683 } 16684 function deflateSyncUncompressed(literals) { 16685 var len = literals.length; 16686 var maxBlockLength = 0xFFFF; 16687 var deflateBlocks = Math.ceil(len / maxBlockLength); 16688 var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); 16689 var pi = 0; 16690 idat[pi++] = 0x78; 16691 idat[pi++] = 0x9c; 16692 var pos = 0; 16693 while (len > maxBlockLength) { 16694 idat[pi++] = 0x00; 16695 idat[pi++] = 0xff; 16696 idat[pi++] = 0xff; 16697 idat[pi++] = 0x00; 16698 idat[pi++] = 0x00; 16699 idat.set(literals.subarray(pos, pos + maxBlockLength), pi); 16700 pi += maxBlockLength; 16701 pos += maxBlockLength; 16702 len -= maxBlockLength; 16703 } 16704 idat[pi++] = 0x01; 16705 idat[pi++] = len & 0xff; 16706 idat[pi++] = len >> 8 & 0xff; 16707 idat[pi++] = ~len & 0xffff & 0xff; 16708 idat[pi++] = (~len & 0xffff) >> 8 & 0xff; 16709 idat.set(literals.subarray(pos), pi); 16710 pi += literals.length - pos; 16711 var adler = adler32(literals, 0, literals.length); 16712 idat[pi++] = adler >> 24 & 0xff; 16713 idat[pi++] = adler >> 16 & 0xff; 16714 idat[pi++] = adler >> 8 & 0xff; 16715 idat[pi++] = adler & 0xff; 16716 return idat; 16717 } 16718 function encode(imgData, kind, forceDataSchema, isMask) { 16719 var width = imgData.width; 16720 var height = imgData.height; 16721 var bitDepth, colorType, lineSize; 16722 var bytes = imgData.data; 16723 switch (kind) { 16724 case _util.ImageKind.GRAYSCALE_1BPP: 16725 colorType = 0; 16726 bitDepth = 1; 16727 lineSize = width + 7 >> 3; 16728 break; 16729 case _util.ImageKind.RGB_24BPP: 16730 colorType = 2; 16731 bitDepth = 8; 16732 lineSize = width * 3; 16733 break; 16734 case _util.ImageKind.RGBA_32BPP: 16735 colorType = 6; 16736 bitDepth = 8; 16737 lineSize = width * 4; 16738 break; 16739 default: 16740 throw new Error('invalid format'); 16741 } 16742 var literals = new Uint8Array((1 + lineSize) * height); 16743 var offsetLiterals = 0, 16744 offsetBytes = 0; 16745 var y, i; 16746 for (y = 0; y < height; ++y) { 16747 literals[offsetLiterals++] = 0; 16748 literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); 16749 offsetBytes += lineSize; 16750 offsetLiterals += lineSize; 16751 } 16752 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { 16753 offsetLiterals = 0; 16754 for (y = 0; y < height; y++) { 16755 offsetLiterals++; 16756 for (i = 0; i < lineSize; i++) { 16757 literals[offsetLiterals++] ^= 0xFF; 16758 } 16759 } 16760 } 16761 var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); 16762 var idat = deflateSync(literals); 16763 var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; 16764 var data = new Uint8Array(pngLength); 16765 var offset = 0; 16766 data.set(PNG_HEADER, offset); 16767 offset += PNG_HEADER.length; 16768 writePngChunk('IHDR', ihdr, data, offset); 16769 offset += CHUNK_WRAPPER_SIZE + ihdr.length; 16770 writePngChunk('IDATA', idat, data, offset); 16771 offset += CHUNK_WRAPPER_SIZE + idat.length; 16772 writePngChunk('IEND', new Uint8Array(0), data, offset); 16773 return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); 16774 } 16775 return function convertImgDataToPng(imgData, forceDataSchema, isMask) { 16776 var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; 16777 return encode(imgData, kind, forceDataSchema, isMask); 16778 }; 16779 }(); 16780 var SVGExtraState = function SVGExtraStateClosure() { 16781 function SVGExtraState() { 16782 this.fontSizeScale = 1;
vendor: 14,800 bytes, lines 16783-17196
16783 this.fontWeight = SVG_DEFAULTS.fontWeight; 16784 this.fontSize = 0; 16785 this.textMatrix = _util.IDENTITY_MATRIX; 16786 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 16787 this.leading = 0; 16788 this.textRenderingMode = _util.TextRenderingMode.FILL; 16789 this.x = 0; 16790 this.y = 0; 16791 this.lineX = 0; 16792 this.lineY = 0; 16793 this.charSpacing = 0; 16794 this.wordSpacing = 0; 16795 this.textHScale = 1; 16796 this.textRise = 0; 16797 this.fillColor = SVG_DEFAULTS.fillColor; 16798 this.strokeColor = '#000000'; 16799 this.fillAlpha = 1; 16800 this.strokeAlpha = 1; 16801 this.lineWidth = 1; 16802 this.lineJoin = ''; 16803 this.lineCap = ''; 16804 this.miterLimit = 0; 16805 this.dashArray = []; 16806 this.dashPhase = 0; 16807 this.dependencies = []; 16808 this.activeClipUrl = null; 16809 this.clipGroup = null; 16810 this.maskId = ''; 16811 } 16812 SVGExtraState.prototype = { 16813 clone: function SVGExtraState_clone() { 16814 return Object.create(this); 16815 }, 16816 setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { 16817 this.x = x; 16818 this.y = y; 16819 } 16820 }; 16821 return SVGExtraState; 16822 }(); 16823 exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() { 16824 function opListToTree(opList) { 16825 var opTree = []; 16826 var tmp = []; 16827 var opListLen = opList.length; 16828 for (var x = 0; x < opListLen; x++) { 16829 if (opList[x].fn === 'save') { 16830 opTree.push({ 16831 'fnId': 92, 16832 'fn': 'group', 16833 'items': [] 16834 }); 16835 tmp.push(opTree); 16836 opTree = opTree[opTree.length - 1].items; 16837 continue; 16838 } 16839 if (opList[x].fn === 'restore') { 16840 opTree = tmp.pop(); 16841 } else { 16842 opTree.push(opList[x]); 16843 } 16844 } 16845 return opTree; 16846 } 16847 function pf(value) { 16848 if (Number.isInteger(value)) { 16849 return value.toString(); 16850 } 16851 var s = value.toFixed(10); 16852 var i = s.length - 1; 16853 if (s[i] !== '0') { 16854 return s; 16855 } 16856 do { 16857 i--; 16858 } while (s[i] === '0'); 16859 return s.substring(0, s[i] === '.' ? i : i + 1); 16860 } 16861 function pm(m) { 16862 if (m[4] === 0 && m[5] === 0) { 16863 if (m[1] === 0 && m[2] === 0) { 16864 if (m[0] === 1 && m[3] === 1) { 16865 return ''; 16866 } 16867 return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; 16868 } 16869 if (m[0] === m[3] && m[1] === -m[2]) { 16870 var a = Math.acos(m[0]) * 180 / Math.PI; 16871 return 'rotate(' + pf(a) + ')'; 16872 } 16873 } else { 16874 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { 16875 return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; 16876 } 16877 } 16878 return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; 16879 } 16880 function SVGGraphics(commonObjs, objs, forceDataSchema) { 16881 this.svgFactory = new _dom_utils.DOMSVGFactory(); 16882 this.current = new SVGExtraState(); 16883 this.transformMatrix = _util.IDENTITY_MATRIX; 16884 this.transformStack = []; 16885 this.extraStack = []; 16886 this.commonObjs = commonObjs; 16887 this.objs = objs; 16888 this.pendingClip = null; 16889 this.pendingEOFill = false; 16890 this.embedFonts = false; 16891 this.embeddedFonts = Object.create(null); 16892 this.cssStyle = null; 16893 this.forceDataSchema = !!forceDataSchema; 16894 } 16895 var XML_NS = 'http://www.w3.org/XML/1998/namespace'; 16896 var XLINK_NS = 'http://www.w3.org/1999/xlink'; 16897 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 16898 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 16899 var clipCount = 0; 16900 var maskCount = 0; 16901 SVGGraphics.prototype = { 16902 save: function SVGGraphics_save() { 16903 this.transformStack.push(this.transformMatrix); 16904 var old = this.current; 16905 this.extraStack.push(old); 16906 this.current = old.clone(); 16907 }, 16908 restore: function SVGGraphics_restore() { 16909 this.transformMatrix = this.transformStack.pop(); 16910 this.current = this.extraStack.pop(); 16911 this.pendingClip = null; 16912 this.tgrp = null; 16913 }, 16914 group: function SVGGraphics_group(items) { 16915 this.save(); 16916 this.executeOpTree(items); 16917 this.restore(); 16918 }, 16919 loadDependencies: function SVGGraphics_loadDependencies(operatorList) { 16920 var _this = this; 16921 16922 var fnArray = operatorList.fnArray; 16923 var fnArrayLen = fnArray.length; 16924 var argsArray = operatorList.argsArray; 16925 for (var i = 0; i < fnArrayLen; i++) { 16926 if (_util.OPS.dependency === fnArray[i]) { 16927 var deps = argsArray[i]; 16928 for (var n = 0, nn = deps.length; n < nn; n++) { 16929 var obj = deps[n]; 16930 var common = obj.substring(0, 2) === 'g_'; 16931 var promise; 16932 if (common) { 16933 promise = new Promise(function (resolve) { 16934 _this.commonObjs.get(obj, resolve); 16935 }); 16936 } else { 16937 promise = new Promise(function (resolve) { 16938 _this.objs.get(obj, resolve); 16939 }); 16940 } 16941 this.current.dependencies.push(promise); 16942 } 16943 } 16944 } 16945 return Promise.all(this.current.dependencies); 16946 }, 16947 transform: function SVGGraphics_transform(a, b, c, d, e, f) { 16948 var transformMatrix = [a, b, c, d, e, f]; 16949 this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); 16950 this.tgrp = null; 16951 }, 16952 getSVG: function SVGGraphics_getSVG(operatorList, viewport) { 16953 var _this2 = this; 16954 16955 this.viewport = viewport; 16956 var svgElement = this._initialize(viewport); 16957 return this.loadDependencies(operatorList).then(function () { 16958 _this2.transformMatrix = _util.IDENTITY_MATRIX; 16959 var opTree = _this2.convertOpList(operatorList); 16960 _this2.executeOpTree(opTree); 16961 return svgElement; 16962 }); 16963 }, 16964 convertOpList: function SVGGraphics_convertOpList(operatorList) { 16965 var argsArray = operatorList.argsArray; 16966 var fnArray = operatorList.fnArray; 16967 var fnArrayLen = fnArray.length; 16968 var REVOPS = []; 16969 var opList = []; 16970 for (var op in _util.OPS) { 16971 REVOPS[_util.OPS[op]] = op; 16972 } 16973 for (var x = 0; x < fnArrayLen; x++) { 16974 var fnId = fnArray[x]; 16975 opList.push({ 16976 'fnId': fnId, 16977 'fn': REVOPS[fnId], 16978 'args': argsArray[x] 16979 }); 16980 } 16981 return opListToTree(opList); 16982 }, 16983 executeOpTree: function SVGGraphics_executeOpTree(opTree) { 16984 var opTreeLen = opTree.length; 16985 for (var x = 0; x < opTreeLen; x++) { 16986 var fn = opTree[x].fn; 16987 var fnId = opTree[x].fnId; 16988 var args = opTree[x].args; 16989 switch (fnId | 0) { 16990 case _util.OPS.beginText: 16991 this.beginText(); 16992 break; 16993 case _util.OPS.dependency: 16994 break; 16995 case _util.OPS.setLeading: 16996 this.setLeading(args); 16997 break; 16998 case _util.OPS.setLeadingMoveText: 16999 this.setLeadingMoveText(args[0], args[1]); 17000 break; 17001 case _util.OPS.setFont: 17002 this.setFont(args); 17003 break; 17004 case _util.OPS.showText: 17005 this.showText(args[0]); 17006 break; 17007 case _util.OPS.showSpacedText: 17008 this.showText(args[0]); 17009 break; 17010 case _util.OPS.endText: 17011 this.endText(); 17012 break; 17013 case _util.OPS.moveText: 17014 this.moveText(args[0], args[1]); 17015 break; 17016 case _util.OPS.setCharSpacing: 17017 this.setCharSpacing(args[0]); 17018 break; 17019 case _util.OPS.setWordSpacing: 17020 this.setWordSpacing(args[0]); 17021 break; 17022 case _util.OPS.setHScale: 17023 this.setHScale(args[0]); 17024 break; 17025 case _util.OPS.setTextMatrix: 17026 this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); 17027 break; 17028 case _util.OPS.setTextRise: 17029 this.setTextRise(args[0]); 17030 break; 17031 case _util.OPS.setTextRenderingMode: 17032 this.setTextRenderingMode(args[0]); 17033 break; 17034 case _util.OPS.setLineWidth: 17035 this.setLineWidth(args[0]); 17036 break; 17037 case _util.OPS.setLineJoin: 17038 this.setLineJoin(args[0]); 17039 break; 17040 case _util.OPS.setLineCap: 17041 this.setLineCap(args[0]); 17042 break; 17043 case _util.OPS.setMiterLimit: 17044 this.setMiterLimit(args[0]); 17045 break; 17046 case _util.OPS.setFillRGBColor: 17047 this.setFillRGBColor(args[0], args[1], args[2]); 17048 break; 17049 case _util.OPS.setStrokeRGBColor: 17050 this.setStrokeRGBColor(args[0], args[1], args[2]); 17051 break; 17052 case _util.OPS.setDash: 17053 this.setDash(args[0], args[1]); 17054 break; 17055 case _util.OPS.setGState: 17056 this.setGState(args[0]); 17057 break; 17058 case _util.OPS.fill: 17059 this.fill(); 17060 break; 17061 case _util.OPS.eoFill: 17062 this.eoFill(); 17063 break; 17064 case _util.OPS.stroke: 17065 this.stroke(); 17066 break; 17067 case _util.OPS.fillStroke: 17068 this.fillStroke(); 17069 break; 17070 case _util.OPS.eoFillStroke: 17071 this.eoFillStroke(); 17072 break; 17073 case _util.OPS.clip: 17074 this.clip('nonzero'); 17075 break; 17076 case _util.OPS.eoClip: 17077 this.clip('evenodd'); 17078 break; 17079 case _util.OPS.paintSolidColorImageMask: 17080 this.paintSolidColorImageMask(); 17081 break; 17082 case _util.OPS.paintJpegXObject: 17083 this.paintJpegXObject(args[0], args[1], args[2]); 17084 break; 17085 case _util.OPS.paintImageXObject: 17086 this.paintImageXObject(args[0]); 17087 break; 17088 case _util.OPS.paintInlineImageXObject: 17089 this.paintInlineImageXObject(args[0]); 17090 break; 17091 case _util.OPS.paintImageMaskXObject: 17092 this.paintImageMaskXObject(args[0]); 17093 break; 17094 case _util.OPS.paintFormXObjectBegin: 17095 this.paintFormXObjectBegin(args[0], args[1]); 17096 break; 17097 case _util.OPS.paintFormXObjectEnd: 17098 this.paintFormXObjectEnd(); 17099 break; 17100 case _util.OPS.closePath: 17101 this.closePath(); 17102 break; 17103 case _util.OPS.closeStroke: 17104 this.closeStroke(); 17105 break; 17106 case _util.OPS.closeFillStroke: 17107 this.closeFillStroke(); 17108 break; 17109 case _util.OPS.closeEOFillStroke: 17110 this.closeEOFillStroke(); 17111 break; 17112 case _util.OPS.nextLine: 17113 this.nextLine(); 17114 break; 17115 case _util.OPS.transform: 17116 this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); 17117 break; 17118 case _util.OPS.constructPath: 17119 this.constructPath(args[0], args[1]); 17120 break; 17121 case _util.OPS.endPath: 17122 this.endPath(); 17123 break; 17124 case 92: 17125 this.group(opTree[x].items); 17126 break; 17127 default: 17128 (0, _util.warn)('Unimplemented operator ' + fn); 17129 break; 17130 } 17131 } 17132 }, 17133 setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { 17134 this.current.wordSpacing = wordSpacing; 17135 }, 17136 setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { 17137 this.current.charSpacing = charSpacing; 17138 }, 17139 nextLine: function SVGGraphics_nextLine() { 17140 this.moveText(0, this.current.leading); 17141 }, 17142 setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { 17143 var current = this.current; 17144 this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f]; 17145 this.current.x = this.current.lineX = 0; 17146 this.current.y = this.current.lineY = 0; 17147 current.xcoords = []; 17148 current.tspan = this.svgFactory.createElement('svg:tspan'); 17149 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 17150 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 17151 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17152 current.txtElement = this.svgFactory.createElement('svg:text'); 17153 current.txtElement.appendChild(current.tspan); 17154 }, 17155 beginText: function SVGGraphics_beginText() { 17156 this.current.x = this.current.lineX = 0; 17157 this.current.y = this.current.lineY = 0; 17158 this.current.textMatrix = _util.IDENTITY_MATRIX; 17159 this.current.lineMatrix = _util.IDENTITY_MATRIX; 17160 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 17161 this.current.txtElement = this.svgFactory.createElement('svg:text'); 17162 this.current.txtgrp = this.svgFactory.createElement('svg:g'); 17163 this.current.xcoords = []; 17164 }, 17165 moveText: function SVGGraphics_moveText(x, y) { 17166 var current = this.current; 17167 this.current.x = this.current.lineX += x; 17168 this.current.y = this.current.lineY += y; 17169 current.xcoords = []; 17170 current.tspan = this.svgFactory.createElement('svg:tspan'); 17171 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 17172 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 17173 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17174 }, 17175 showText: function SVGGraphics_showText(glyphs) { 17176 var current = this.current; 17177 var font = current.font; 17178 var fontSize = current.fontSize; 17179 if (fontSize === 0) { 17180 return; 17181 } 17182 var charSpacing = current.charSpacing; 17183 var wordSpacing = current.wordSpacing; 17184 var fontDirection = current.fontDirection; 17185 var textHScale = current.textHScale * fontDirection; 17186 var glyphsLength = glyphs.length; 17187 var vertical = font.vertical; 17188 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 17189 var x = 0, 17190 i; 17191 for (i = 0; i < glyphsLength; ++i) { 17192 var glyph = glyphs[i]; 17193 if (glyph === null) { 17194 x += fontDirection * wordSpacing; 17195 continue; 17196 }
17196 else if ((0, _util.isNum)(glyph)) { 17197 x += -glyph * fontSize * 0.001; 17198 continue; 17199 } 17200 var width = glyph.width; 17201 var character = glyph.fontChar; 17202 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 17203 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 17204 if (!glyph.isInFont && !font.missingFile) { 17205 x += charWidth; 17206 continue; 17207 } 17208 current.xcoords.push(current.x + x * textHScale); 17209 current.tspan.textContent += character; 17210 x += charWidth; 17211 } 17212 if (vertical) { 17213 current.y -= x * textHScale; 17214 } else { 17215 current.x += x * textHScale; 17216 } 17217 current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); 17218 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17219 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 17220 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 17221 if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { 17222 current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); 17223 } 17224 if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { 17225 current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); 17226 } 17227 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 17228 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 17229 if (current.fillColor !== SVG_DEFAULTS.fillColor) { 17230 current.tspan.setAttributeNS(null, 'fill', current.fillColor); 17231 } 17232 if (current.fillAlpha < 1) { 17233 current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 17234 } 17235 } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { 17236 current.tspan.setAttributeNS(null, 'fill', 'transparent'); 17237 } else { 17238 current.tspan.setAttributeNS(null, 'fill', 'none'); 17239 } 17240 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 17241 this._setStrokeAttributes(current.tspan); 17242 } 17243 var textMatrix = current.textMatrix; 17244 if (current.textRise !== 0) { 17245 textMatrix = textMatrix.slice(); 17246 textMatrix[5] += current.textRise; 17247 } 17248 current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)'); 17249 current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); 17250 current.txtElement.appendChild(current.tspan); 17251 current.txtgrp.appendChild(current.txtElement); 17252 this._ensureTransformGroup().appendChild(current.txtElement); 17253 }, 17254 setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { 17255 this.setLeading(-y); 17256 this.moveText(x, y); 17257 }, 17258 addFontStyle: function SVGGraphics_addFontStyle(fontObj) { 17259 if (!this.cssStyle) { 17260 this.cssStyle = this.svgFactory.createElement('svg:style'); 17261 this.cssStyle.setAttributeNS(null, 'type', 'text/css'); 17262 this.defs.appendChild(this.cssStyle); 17263 } 17264 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); 17265 this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n'; 17266 }, 17267 setFont: function SVGGraphics_setFont(details) { 17268 var current = this.current; 17269 var fontObj = this.commonObjs.get(details[0]); 17270 var size = details[1]; 17271 this.current.font = fontObj; 17272 if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { 17273 this.addFontStyle(fontObj); 17274 this.embeddedFonts[fontObj.loadedName] = fontObj; 17275 } 17276 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 17277 var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; 17278 var italic = fontObj.italic ? 'italic' : 'normal'; 17279 if (size < 0) { 17280 size = -size; 17281 current.fontDirection = -1; 17282 } else { 17283 current.fontDirection = 1; 17284 } 17285 current.fontSize = size; 17286 current.fontFamily = fontObj.loadedName; 17287 current.fontWeight = bold; 17288 current.fontStyle = italic; 17289 current.tspan = this.svgFactory.createElement('svg:tspan'); 17290 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17291 current.xcoords = []; 17292 }, 17293 endText: function endText() { 17294 var current = this.current; 17295 if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { 17296 current.element = current.txtElement; 17297 this.clip('nonzero'); 17298 this.endPath(); 17299 } 17300 }, 17301 17302 setLineWidth: function SVGGraphics_setLineWidth(width) { 17303 this.current.lineWidth = width; 17304 }, 17305 setLineCap: function SVGGraphics_setLineCap(style) { 17306 this.current.lineCap = LINE_CAP_STYLES[style]; 17307 }, 17308 setLineJoin: function SVGGraphics_setLineJoin(style) { 17309 this.current.lineJoin = LINE_JOIN_STYLES[style]; 17310 }, 17311 setMiterLimit: function SVGGraphics_setMiterLimit(limit) { 17312 this.current.miterLimit = limit; 17313 }, 17314 setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) { 17315 this.current.strokeAlpha = strokeAlpha; 17316 }, 17317 setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { 17318 var color = _util.Util.makeCssRgb(r, g, b); 17319 this.current.strokeColor = color; 17320 }, 17321 setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) { 17322 this.current.fillAlpha = fillAlpha; 17323 }, 17324 setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { 17325 var color = _util.Util.makeCssRgb(r, g, b); 17326 this.current.fillColor = color; 17327 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 17328 this.current.xcoords = []; 17329 }, 17330 setDash: function SVGGraphics_setDash(dashArray, dashPhase) { 17331 this.current.dashArray = dashArray; 17332 this.current.dashPhase = dashPhase; 17333 }, 17334 constructPath: function SVGGraphics_constructPath(ops, args) { 17335 var current = this.current; 17336 var x = current.x, 17337 y = current.y; 17338 current.path = this.svgFactory.createElement('svg:path'); 17339 var d = []; 17340 var opLength = ops.length; 17341 for (var i = 0, j = 0; i < opLength; i++) { 17342 switch (ops[i] | 0) { 17343 case _util.OPS.rectangle: 17344 x = args[j++]; 17345 y = args[j++]; 17346 var width = args[j++]; 17347 var height = args[j++]; 17348 var xw = x + width; 17349 var yh = y + height; 17350 d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); 17351 break; 17352 case _util.OPS.moveTo: 17353 x = args[j++]; 17354 y = args[j++]; 17355 d.push('M', pf(x), pf(y)); 17356 break; 17357 case _util.OPS.lineTo: 17358 x = args[j++]; 17359 y = args[j++]; 17360 d.push('L', pf(x), pf(y)); 17361 break; 17362 case _util.OPS.curveTo: 17363 x = args[j + 4]; 17364 y = args[j + 5]; 17365 d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); 17366 j += 6; 17367 break; 17368 case _util.OPS.curveTo2: 17369 x = args[j + 2]; 17370 y = args[j + 3]; 17371 d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); 17372 j += 4; 17373 break; 17374 case _util.OPS.curveTo3: 17375 x = args[j + 2]; 17376 y = args[j + 3]; 17377 d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); 17378 j += 4; 17379 break; 17380 case _util.OPS.closePath: 17381 d.push('Z'); 17382 break; 17383 } 17384 } 17385 current.path.setAttributeNS(null, 'd', d.join(' ')); 17386 current.path.setAttributeNS(null, 'fill', 'none'); 17387 this._ensureTransformGroup().appendChild(current.path); 17388 current.element = current.path; 17389 current.setCurrentPoint(x, y); 17390 }, 17391 endPath: function SVGGraphics_endPath() { 17392 if (!this.pendingClip) { 17393 return; 17394 } 17395 var current = this.current; 17396 var clipId = 'clippath' + clipCount; 17397 clipCount++; 17398 var clipPath = this.svgFactory.createElement('svg:clipPath'); 17399 clipPath.setAttributeNS(null, 'id', clipId); 17400 clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 17401 var clipElement = current.element.cloneNode(true); 17402 if (this.pendingClip === 'evenodd') { 17403 clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); 17404 } else { 17405 clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); 17406 } 17407 this.pendingClip = null; 17408 clipPath.appendChild(clipElement); 17409 this.defs.appendChild(clipPath); 17410 if (current.activeClipUrl) { 17411 current.clipGroup = null; 17412 this.extraStack.forEach(function (prev) { 17413 prev.clipGroup = null; 17414 }); 17415 clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); 17416 } 17417 current.activeClipUrl = 'url(#' + clipId + ')'; 17418 this.tgrp = null; 17419 }, 17420 clip: function SVGGraphics_clip(type) { 17421 this.pendingClip = type; 17422 }, 17423 closePath: function SVGGraphics_closePath() { 17424 var current = this.current; 17425 if (current.path) { 17426 var d = current.path.getAttributeNS(null, 'd'); 17427 d += 'Z'; 17428 current.path.setAttributeNS(null, 'd', d); 17429 } 17430 }, 17431 setLeading: function SVGGraphics_setLeading(leading) { 17432 this.current.leading = -leading; 17433 }, 17434 setTextRise: function SVGGraphics_setTextRise(textRise) { 17435 this.current.textRise = textRise; 17436 }, 17437 setTextRenderingMode: function setTextRenderingMode(textRenderingMode) { 17438 this.current.textRenderingMode = textRenderingMode; 17439 }, 17440 17441 setHScale: function SVGGraphics_setHScale(scale) { 17442 this.current.textHScale = scale / 100; 17443 }, 17444 setGState: function SVGGraphics_setGState(states) { 17445 for (var i = 0, ii = states.length; i < ii; i++) { 17446 var state = states[i]; 17447 var key = state[0]; 17448 var value = state[1]; 17449 switch (key) { 17450 case 'LW': 17451 this.setLineWidth(value); 17452 break; 17453 case 'LC': 17454 this.setLineCap(value); 17455 break; 17456 case 'LJ': 17457 this.setLineJoin(value); 17458 break; 17459 case 'ML': 17460 this.setMiterLimit(value); 17461 break; 17462 case 'D': 17463 this.setDash(value[0], value[1]); 17464 break; 17465 case 'Font': 17466 this.setFont(value); 17467 break; 17468 case 'CA': 17469 this.setStrokeAlpha(value); 17470 break; 17471 case 'ca': 17472 this.setFillAlpha(value); 17473 break; 17474 default: 17475 (0, _util.warn)('Unimplemented graphic state ' + key); 17476 break; 17477 } 17478 } 17479 }, 17480 fill: function SVGGraphics_fill() { 17481 var current = this.current; 17482 if (current.element) { 17483 current.element.setAttributeNS(null, 'fill', current.fillColor); 17484 current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 17485 this.endPath(); 17486 } 17487 }, 17488 stroke: function SVGGraphics_stroke() { 17489 var current = this.current; 17490 if (current.element) { 17491 this._setStrokeAttributes(current.element); 17492 current.element.setAttributeNS(null, 'fill', 'none'); 17493 this.endPath(); 17494 } 17495 }, 17496 _setStrokeAttributes: function _setStrokeAttributes(element) { 17497 var current = this.current; 17498 element.setAttributeNS(null, 'stroke', current.strokeColor); 17499 element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); 17500 element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); 17501 element.setAttributeNS(null, 'stroke-linecap', current.lineCap); 17502 element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); 17503 element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px'); 17504 element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' ')); 17505 element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px'); 17506 }, 17507 17508 eoFill: function SVGGraphics_eoFill() { 17509 if (this.current.element) { 17510 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 17511 } 17512 this.fill(); 17513 }, 17514 fillStroke: function SVGGraphics_fillStroke() { 17515 this.stroke(); 17516 this.fill(); 17517 }, 17518 eoFillStroke: function SVGGraphics_eoFillStroke() { 17519 if (this.current.element) { 17520 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 17521 } 17522 this.fillStroke(); 17523 }, 17524 closeStroke: function SVGGraphics_closeStroke() { 17525 this.closePath(); 17526 this.stroke(); 17527 }, 17528 closeFillStroke: function SVGGraphics_closeFillStroke() { 17529 this.closePath(); 17530 this.fillStroke(); 17531 }, 17532 closeEOFillStroke: function closeEOFillStroke() { 17533 this.closePath(); 17534 this.eoFillStroke(); 17535 }, 17536 17537 paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() { 17538 var current = this.current; 17539 var rect = this.svgFactory.createElement('svg:rect'); 17540 rect.setAttributeNS(null, 'x', '0'); 17541 rect.setAttributeNS(null, 'y', '0'); 17542 rect.setAttributeNS(null, 'width', '1px'); 17543 rect.setAttributeNS(null, 'height', '1px'); 17544 rect.setAttributeNS(null, 'fill', current.fillColor); 17545 this._ensureTransformGroup().appendChild(rect); 17546 }, 17547 paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { 17548 var imgObj = this.objs.get(objId); 17549 var imgEl = this.svgFactory.createElement('svg:image'); 17550 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); 17551 imgEl.setAttributeNS(null, 'width', pf(w)); 17552 imgEl.setAttributeNS(null, 'height', pf(h)); 17553 imgEl.setAttributeNS(null, 'x', '0'); 17554 imgEl.setAttributeNS(null, 'y', pf(-h)); 17555 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); 17556 this._ensureTransformGroup().appendChild(imgEl); 17557 }, 17558 paintImageXObject: function SVGGraphics_paintImageXObject(objId) { 17559 var imgData = this.objs.get(objId); 17560 if (!imgData) { 17561 (0, _util.warn)('Dependent image isn\'t ready yet'); 17562 return; 17563 } 17564 this.paintInlineImageXObject(imgData); 17565 }, 17566 paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) { 17567 var width = imgData.width; 17568 var height = imgData.height; 17569 var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); 17570 var cliprect = this.svgFactory.createElement('svg:rect'); 17571 cliprect.setAttributeNS(null, 'x', '0'); 17572 cliprect.setAttributeNS(null, 'y', '0'); 17573 cliprect.setAttributeNS(null, 'width', pf(width)); 17574 cliprect.setAttributeNS(null, 'height', pf(height)); 17575 this.current.element = cliprect; 17576 this.clip('nonzero'); 17577 var imgEl = this.svgFactory.createElement('svg:image'); 17578 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); 17579 imgEl.setAttributeNS(null, 'x', '0'); 17580 imgEl.setAttributeNS(null, 'y', pf(-height)); 17581 imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); 17582 imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); 17583 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')'); 17584 if (mask) { 17585 mask.appendChild(imgEl); 17586 } else { 17587 this._ensureTransformGroup().appendChild(imgEl); 17588 } 17589 }, 17590 paintImageMa
17590skXObject: function SVGGraphics_paintImageMaskXObject(imgData) { 17591 var current = this.current; 17592 var width = imgData.width; 17593 var height = imgData.height; 17594 var fillColor = current.fillColor; 17595 current.maskId = 'mask' + maskCount++; 17596 var mask = this.svgFactory.createElement('svg:mask'); 17597 mask.setAttributeNS(null, 'id', current.maskId); 17598 var rect = this.svgFactory.createElement('svg:rect'); 17599 rect.setAttributeNS(null, 'x', '0'); 17600 rect.setAttributeNS(null, 'y', '0'); 17601 rect.setAttributeNS(null, 'width', pf(width)); 17602 rect.setAttributeNS(null, 'height', pf(height)); 17603 rect.setAttributeNS(null, 'fill', fillColor); 17604 rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')'); 17605 this.defs.appendChild(mask); 17606 this._ensureTransformGroup().appendChild(rect); 17607 this.paintInlineImageXObject(imgData, mask); 17608 }, 17609 paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { 17610 if (Array.isArray(matrix) && matrix.length === 6) { 17611 this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); 17612 } 17613 if (Array.isArray(bbox) && bbox.length === 4) { 17614 var width = bbox[2] - bbox[0]; 17615 var height = bbox[3] - bbox[1]; 17616 var cliprect = this.svgFactory.createElement('svg:rect'); 17617 cliprect.setAttributeNS(null, 'x', bbox[0]); 17618 cliprect.setAttributeNS(null, 'y', bbox[1]); 17619 cliprect.setAttributeNS(null, 'width', pf(width)); 17620 cliprect.setAttributeNS(null, 'height', pf(height)); 17621 this.current.element = cliprect; 17622 this.clip('nonzero'); 17623 this.endPath(); 17624 } 17625 }, 17626 paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {}, 17627 _initialize: function _initialize(viewport) { 17628 var svg = this.svgFactory.create(viewport.width, viewport.height); 17629 var definitions = this.svgFactory.createElement('svg:defs'); 17630 svg.appendChild(definitions); 17631 this.defs = definitions; 17632 var rootGroup = this.svgFactory.createElement('svg:g'); 17633 rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); 17634 svg.appendChild(rootGroup); 17635 this.svg = rootGroup; 17636 return svg; 17637 }, 17638 17639 _ensureClipGroup: function SVGGraphics_ensureClipGroup() { 17640 if (!this.current.clipGroup) { 17641 var clipGroup = this.svgFactory.createElement('svg:g'); 17642 clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); 17643 this.svg.appendChild(clipGroup); 17644 this.current.clipGroup = clipGroup; 17645 } 17646 return this.current.clipGroup; 17647 }, 17648 _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() { 17649 if (!this.tgrp) { 17650 this.tgrp = this.svgFactory.createElement('svg:g'); 17651 this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 17652 if (this.current.activeClipUrl) { 17653 this._ensureClipGroup().appendChild(this.tgrp); 17654 } else { 17655 this.svg.appendChild(this.tgrp); 17656 } 17657 } 17658 return this.tgrp; 17659 } 17660 }; 17661 return SVGGraphics; 17662 }(); 17663} 17664exports.SVGGraphics = SVGGraphics; 17665 17666/***/ }), 17667/* 148 */ 17668/***/ (function(module, exports, __w_pdfjs_require__) { 17669 17670"use strict"; 17671 17672 17673Object.defineProperty(exports, "__esModule", { 17674 value: true 17675}); 17676exports.PDFNodeStream = undefined; 17677 17678var _regenerator = __w_pdfjs_require__(137); 17679 17680var _regenerator2 = _interopRequireDefault(_regenerator); 17681 17682var _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; }; }(); 17683 17684var _util = __w_pdfjs_require__(1); 17685 17686var _network_utils = __w_pdfjs_require__(149); 17687 17688function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 17689 17690function _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; } 17691 17692function _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, { c
17692onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 17693 17694function _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"); }); }; } 17695 17696function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17697 17698var fs = require('fs'); 17699var http = require('http'); 17700var https = require('https'); 17701var url = require('url'); 17702 17703var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; 17704function parseUrl(sourceUrl) { 17705 var parsedUrl = url.parse(sourceUrl); 17706 if (parsedUrl.protocol === 'file:' || parsedUrl.host) { 17707 return parsedUrl; 17708 } 17709 if (/^[a-z]:[/\\]/i.test(sourceUrl)) { 17710 return url.parse('file:///' + sourceUrl); 17711 } 17712 if (!parsedUrl.host) { 17713 parsedUrl.protocol = 'file:'; 17714 } 17715 return parsedUrl; 17716} 17717 17718var PDFNodeStream = function () { 17719 function PDFNodeStream(source) { 17720 _classCallCheck(this, PDFNodeStream); 17721 17722 this.source = source; 17723 this.url = parseUrl(source.url); 17724 this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; 17725 this.isFsUrl = this.url.protocol === 'file:'; 17726 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 17727 this._fullRequest = null; 17728 this._rangeRequestReaders = []; 17729 } 17730 17731 _createClass(PDFNodeStream, [{ 17732 key: 'getFullReader', 17733 value: function getFullReader() { 17734 (0, _util.assert)(!this._fullRequest); 17735 this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); 17736 return this._fullRequest; 17737 } 17738 }, { 17739 key: 'getRangeReader', 17740 value: function getRangeReader(start, end) { 17741 var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); 17742 this._rangeRequestReaders.push(rangeReader); 17743 return rangeReader; 17744 } 17745 }, { 17746 key: 'cancelAllRequests', 17747 value: function cancelAllRequests(reason) { 17748 if (this._fullRequest) { 17749 this._fullRequest.cancel(reason); 17750 } 17751 var readers = this._rangeRequestReaders.slice(0); 17752 readers.forEach(function (reader) { 17753 reader.cancel(reason); 17754 }); 17755 } 17756 }]); 17757 17758 return PDFNodeStream; 17759}(); 17760 17761var BaseFullReader = function () { 17762 function BaseFullReader(stream) { 17763 _classCallCheck(this, BaseFullReader); 17764 17765 this._url = stream.url; 17766 this._done = false; 17767 this._storedError = null; 17768 this.onProgress = null; 17769 var source = stream.source; 17770 this._contentLength = source.length; 17771 this._loaded = 0; 17772 this._filename = null; 17773 this._disableRange = source.disableRange || false; 17774 this._rangeChunkSize = source.rangeChunkSize; 17775 if (!this._rangeChunkSize && !this._disableRange) { 17776 this._disableRange = true; 17777 } 17778 this._isStreamingSupported = !source.disableStream; 17779 this._isRangeSupported = !source.disableRange; 17780 this._readableStream = null; 17781 this._readCapability = (0, _util.createPromiseCapability)(); 17782 this._headersCapability = (0, _util.createPromiseCapability)(); 17783 } 17784 17785 _createClass(BaseFullReader, [{ 17786 key: 'read', 17787 value: function () { 17788 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 17789 var chunk, buffer; 17790 return _regenerator2.default.wrap(function _callee$(_context) { 17791 while (1) { 17792 switch (_context.prev = _context.next) { 17793 case 0: 17794 _context.next = 2; 17795 return this._readCapability.promise; 17796 17797 case 2: 17798 if (!this._done) { 17799 _context.next = 4; 17800 break; 17801 } 17802 17803 return _context.abrupt('return', { 17804 value: undefined, 17805 done: true 17806 }); 17807 17808 case 4: 17809 if (!this._storedError) { 17810 _context.next = 6; 17811 break; 17812 } 17813 17814 throw this._storedError; 17815 17816 case 6: 17817 chunk = this._readableStream.read(); 17818 17819 if (!(chunk === null)) { 17820 _context.next = 10; 17821 break; 17822 } 17823 17824 this._readCapability = (0, _util.createPromiseCapability)(); 17825 return _context.abrupt('return', this.read()); 17826 17827 case 10: 17828 this._loaded += chunk.length; 17829 if (this.onProgress) { 17830 this.onProgress({ 17831 loaded: this._loaded, 17832 total: this._contentLength 17833 }); 17834 } 17835 buffer = new Uint8Array(chunk).buffer; 17836 return _context.abrupt('return', { 17837 value: buffer, 17838 done: false 17839 }); 17840 17841 case 14: 17842 case 'end': 17843 return _context.stop(); 17844 } 17845 } 17846 }, _callee, this); 17847 })); 17848 17849 function read() { 17850 return _ref.apply(this, arguments); 17851 } 17852 17853 return read; 17854 }() 17855 }, { 17856 key: 'cancel', 17857 value: function cancel(reason) { 17858 if (!this._readableStream) { 17859 this._error(reason); 17860 return; 17861 } 17862 this._readableStream.destroy(reason); 17863 } 17864 }, { 17865 key: '_error', 17866 value: function _error(reason) { 17867 this._storedError = reason; 17868 this._readCapability.resolve(); 17869 } 17870 }, { 17871 key: '_setReadableStream', 17872 value: function _setReadableStream(readableStream) { 17873 var _this = this; 17874 17875 this._readableStream = readableStream; 17876 readableStream.on('readable', function () { 17877 _this._readCapability.resolve(); 17878 }); 17879 readableStream.on('end', function () { 17880 readableStream.destroy(); 17881 _this._done = true; 17882 _this._readCapability.resolve(); 17883 }); 17884 readableStream.on('error', function (reason) { 17885 _this._error(reason); 17886 }); 17887 if (!this._isStreamingSupported && this._isRangeSupported) { 17888 this._error(new _util.AbortException('streaming is disabled')); 17889 } 17890 if (this._storedError) { 17891 this._readableStream.destroy(this._storedError); 17892 } 17893 } 17894 }, { 17895 key: 'headersReady', 17896 get: function get() { 17897 return this._headersCapability.promise; 17898 } 17899 }, { 17900 key: 'filename', 17901 get: function get() { 17902 return this._filename; 17903 } 17904 }, { 17905 key: 'contentLength', 17906 get: function get() { 17907 return this._contentLength; 17908 } 17909 }, { 17910 key: 'isRangeSupported', 17911 get: function get() { 17912 return this._isRangeSupported; 17913 } 17914 }, { 17915 key: 'isStreamingSupported', 17916 get: function get() { 17917 return this._isStreamingSupported; 17918 } 17919 }]); 17920 17921 return BaseFullReader; 17922}(); 17923 17924var BaseRangeReader = function () { 17925 function BaseRangeReader(stream) { 17926 _classCallCheck(this, BaseRangeReader); 17927 17928 this._url = stream.url; 17929 this._done = false;
17930 this._storedError = null; 17931 this.onProgress = null; 17932 this._loaded = 0; 17933 this._readableStream = null; 17934 this._readCapability = (0, _util.createPromiseCapability)(); 17935 var source = stream.source; 17936 this._isStreamingSupported = !source.disableStream; 17937 } 17938 17939 _createClass(BaseRangeReader, [{ 17940 key: 'read', 17941 value: function () { 17942 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 17943 var chunk, buffer; 17944 return _regenerator2.default.wrap(function _callee2$(_context2) { 17945 while (1) { 17946 switch (_context2.prev = _context2.next) { 17947 case 0: 17948 _context2.next = 2; 17949 return this._readCapability.promise; 17950 17951 case 2: 17952 if (!this._done) { 17953 _context2.next = 4; 17954 break; 17955 } 17956 17957 return _context2.abrupt('return', { 17958 value: undefined, 17959 done: true 17960 }); 17961 17962 case 4: 17963 if (!this._storedError) { 17964 _context2.next = 6; 17965 break; 17966 } 17967 17968 throw this._storedError; 17969 17970 case 6: 17971 chunk = this._readableStream.read(); 17972 17973 if (!(chunk === null)) { 17974 _context2.next = 10; 17975 break; 17976 } 17977 17978 this._readCapability = (0, _util.createPromiseCapability)(); 17979 return _context2.abrupt('return', this.read()); 17980 17981 case 10: 17982 this._loaded += chunk.length; 17983 if (this.onProgress) { 17984 this.onProgress({ loaded: this._loaded }); 17985 } 17986 buffer = new Uint8Array(chunk).buffer; 17987 return _context2.abrupt('return', { 17988 value: buffer, 17989 done: false 17990 }); 17991 17992 case 14: 17993 case 'end': 17994 return _context2.stop(); 17995 } 17996 } 17997 }, _callee2, this); 17998 })); 17999 18000 function read() { 18001 return _ref2.apply(this, arguments); 18002 } 18003 18004 return read; 18005 }() 18006 }, { 18007 key: 'cancel', 18008 value: function cancel(reason) { 18009 if (!this._readableStream) { 18010 this._error(reason); 18011 return; 18012 } 18013 this._readableStream.destroy(reason); 18014 } 18015 }, { 18016 key: '_error', 18017 value: function _error(reason) { 18018 this._storedError = reason; 18019 this._readCapability.resolve(); 18020 } 18021 }, { 18022 key: '_setReadableStream', 18023 value: function _setReadableStream(readableStream) { 18024 var _this2 = this; 18025 18026 this._readableStream = readableStream; 18027 readableStream.on('readable', function () { 18028 _this2._readCapability.resolve(); 18029 }); 18030 readableStream.on('end', function () { 18031 readableStream.destroy(); 18032 _this2._done = true; 18033 _this2._readCapability.resolve(); 18034 }); 18035 readableStream.on('error', function (reason) { 18036 _this2._error(reason); 18037 }); 18038 if (this._storedError) { 18039 this._readableStream.destroy(this._storedError); 18040 } 18041 } 18042 }, { 18043 key: 'isStreamingSupported', 18044 get: function get() { 18045 return this._isStreamingSupported; 18046 } 18047 }]); 18048 18049 return BaseRangeReader; 18050}(); 18051 18052function createRequestOptions(url, headers) { 18053 return { 18054 protocol: url.protocol, 18055 auth: url.auth, 18056 host: url.hostname, 18057 port: url.port, 18058 path: url.path, 18059 method: 'GET', 18060 headers: headers 18061 }; 18062} 18063 18064var PDFNodeStreamFullReader = function (_BaseFullReader) { 18065 _inherits(PDFNodeStreamFullReader, _BaseFullReader); 18066 18067 function PDFNodeStreamFullReader(stream) { 18068 _classCallCheck(this, PDFNodeStreamFullReader); 18069 18070 var _this3 = _possibleConstructorReturn(this, (PDFNodeStreamFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFullReader)).call(this, stream)); 18071 18072 var handleResponse = function handleResponse(response) { 18073 if (response.statusCode === 404) { 18074 var error = new _util.MissingPDFException('Missing PDF "' + _this3._url + '".'); 18075 _this3._storedError = error; 18076 _this3._headersCapability.reject(error); 18077 return; 18078 } 18079 _this3._headersCapability.resolve(); 18080 _this3._setReadableStream(response); 18081 var getResponseHeader = function getResponseHeader(name) { 18082 return _this3._readableStream.headers[name.toLowerCase()]; 18083 }; 18084 18085 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 18086 getResponseHeader: getResponseHeader, 18087 isHttp: stream.isHttp, 18088 rangeChunkSize: _this3._rangeChunkSize, 18089 disableRange: _this3._disableRange 18090 }), 18091 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 18092 suggestedLength = _validateRangeRequest.suggestedLength; 18093 18094 _this3._isRangeSupported = allowRangeRequests; 18095 _this3._contentLength = suggestedLength || _this3._contentLength; 18096 _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 18097 }; 18098 _this3._request = null; 18099 if (_this3._url.protocol === 'http:') { 18100 _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 18101 } else { 18102 _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 18103 } 18104 _this3._request.on('error', function (reason) { 18105 _this3._storedError = reason; 18106 _this3._headersCapability.reject(reason); 18107 }); 18108 _this3._request.end(); 18109 return _this3; 18110 } 18111 18112 return PDFNodeStreamFullReader; 18113}(BaseFullReader); 18114 18115var PDFNodeStreamRangeReader = function (_BaseRangeReader) { 18116 _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); 18117 18118 function PDFNodeStreamRangeReader(stream, start, end) { 18119 _classCallCheck(this, PDFNodeStreamRangeReader); 18120 18121 var _this4 = _possibleConstructorReturn(this, (PDFNodeStreamRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamRangeReader)).call(this, stream)); 18122 18123 _this4._httpHeaders = {}; 18124 for (var property in stream.httpHeaders) { 18125 var value = stream.httpHeaders[property]; 18126 if (typeof value === 'undefined') { 18127 continue; 18128 } 18129 _this4._httpHeaders[property] = value; 18130 } 18131 _this4._httpHeaders['Range'] = 'bytes=' + start + '-' + (end - 1); 18132 var handleResponse = function handleResponse(response) { 18133 if (response.statusCode === 404) { 18134 var error = new _util.MissingPDFException('Missing PDF "' + _this4._url + '".'); 18135 _this4._storedError = error; 18136 return; 18137 } 18138 _this4._setReadableStream(response); 18139 }; 18140 _this4._request = null; 18141 if (_this4._url.protocol === 'http:') { 18142 _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 18143 } else { 18144 _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 18145 } 18146 _this4._request.on('error', function (reason) { 18147 _this4._storedError = reason; 18148 }); 18149 _this4._request.end(); 18150 return _this4; 18151 } 18152 18153 return PDFNodeStreamRangeReader; 18154}(BaseRangeReader); 18155 18156var PDFNodeStreamFsFullReader = function (_BaseFullReader2) { 18157 _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); 18158 18159 function PDFNodeStreamFsFullReader(stream) { 18160 _classCallCheck(this, PDFNodeStreamFsFullReader); 18161 18162 var _this5 = _possibleConstructorReturn(this, (PDFNodeStreamFsFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsFullReader)).call(this, stream)); 18163 18164 var path = decodeURIComponent(_this5._url.path); 18165 if (fileUriRegex.test(_this5._url.href)) { 18166 path = path.replace(/^\//, ''); 18167 } 18168 fs.lstat(path, function (error, stat) { 18169 if (error) { 18170 if (error.code === 'ENOENT') { 18171 error = new _util.MissingPDFException('Missing PDF "' + path + '".'); 18172 } 18173 _this5._storedError = error; 18174 _this5._headersCapability.reject(error); 18175 return; 18176 } 18177 _this5._contentLength = stat.size; 18178 _this5._setReadableStream(fs.createReadStream(path)); 18179 _this5._headersCapability.resolve(); 18180 }); 18181 return _this5; 18182 } 18183 18184 return PDFNodeStreamFsFullReader; 18185}(BaseFullReader); 18186 18187var PDFNodeStreamFsRangeReader = function (_BaseRangeReader2) { 18188 _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); 18189 18190 function PDFNodeStreamFsRangeReader(stream, start, end) { 18191 _classCallCheck(this, PDFNodeStreamFsRangeReader); 18192 18193 var _this6 = _possibleConstructorReturn(this, (PDFNodeStreamFsRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsRangeReader)).call(this, stream)); 18194 18195 var path = decodeURIComponent(_this6._url.path); 18196 if (fileUriRegex.test(_this6._url.href)) { 18197 path = path.replace(/^\//, ''); 18198 } 18199 _this6._setReadableStream(fs.createReadStream(path, { 18200 start: start, 18201 end: end - 1 18202 })); 18203 return _this6; 18204 } 18205 18206 return PDFNodeStreamFsRangeReader; 18207}(BaseRangeReader); 18208 18209exports.PDFNodeStream = PDFNodeStream; 18210 18211/***/ }), 18212/* 149 */ 18213/***/ (function(module, exports, __w_pdfjs_require__) { 18214 18215"use strict"; 18216 18217 18218Object.defineProperty(exports, "__esModule", { 18219 value: true 18220});
18221exports.validateResponseStatus = exports.validateRangeRequestCapabilities = exports.extractFilenameFromHeader = exports.createResponseStatusError = undefined; 18222 18223var _util = __w_pdfjs_require__(1); 18224 18225var _content_disposition = __w_pdfjs_require__(150); 18226 18227function validateRangeRequestCapabilities(_ref) { 18228 var getResponseHeader = _ref.getResponseHeader, 18229 isHttp = _ref.isHttp, 18230 rangeChunkSize = _ref.rangeChunkSize, 18231 disableRange = _ref.disableRange; 18232 18233 (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); 18234 var returnValues = { 18235 allowRangeRequests: false, 18236 suggestedLength: undefined 18237 }; 18238 var length = parseInt(getResponseHeader('Content-Length'), 10); 18239 if (!Number.isInteger(length)) { 18240 return returnValues; 18241 } 18242 returnValues.suggestedLength = length; 18243 if (length <= 2 * rangeChunkSize) { 18244 return returnValues; 18245 } 18246 if (disableRange || !isHttp) { 18247 return returnValues; 18248 } 18249 if (getResponseHeader('Accept-Ranges') !== 'bytes') { 18250 return returnValues; 18251 } 18252 var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; 18253 if (contentEncoding !== 'identity') { 18254 return returnValues; 18255 } 18256 returnValues.allowRangeRequests = true; 18257 return returnValues; 18258} 18259function extractFilenameFromHeader(getResponseHeader) { 18260 var contentDisposition = getResponseHeader('Content-Disposition'); 18261 if (contentDisposition) { 18262 var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); 18263 if (/\.pdf$/i.test(filename)) { 18264 return filename; 18265 } 18266 } 18267 return null; 18268} 18269function createResponseStatusError(status, url) { 18270 if (status === 404 || status === 0 && /^file:/.test(url)) { 18271 return new _util.MissingPDFException('Missing PDF "' + url + '".'); 18272 } 18273 return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); 18274} 18275function validateResponseStatus(status) { 18276 return status === 200 || status === 206; 18277} 18278exports.createResponseStatusError = createResponseStatusError; 18279exports.extractFilenameFromHeader = extractFilenameFromHeader; 18280exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; 18281exports.validateResponseStatus = validateResponseStatus; 18282 18283/***/ }), 18284/* 150 */ 18285/***/ (function(module, exports, __w_pdfjs_require__) { 18286 18287"use strict"; 18288 18289 18290Object.defineProperty(exports, "__esModule", { 18291 value: true 18292}); 18293 18294var _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"); } }; }(); 18295 18296function getFilenameFromContentDispositionHeader(contentDisposition) { 18297 var needsEncodingFixup = true; 18298 var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); 18299 if (tmp) { 18300 tmp = tmp[1]; 18301 var filename = rfc2616unquote(tmp); 18302 filename = unescape(filename); 18303 filename = rfc5987decode(filename); 18304 filename = rfc2047decode(filename); 18305 return fixupEncoding(filename); 18306 } 18307 tmp = rfc2231getparam(contentDisposition); 18308 if (tmp) { 18309 var _filename = rfc2047decode(tmp); 18310 return fixupEncoding(_filename); 18311 } 18312 tmp = toParamRegExp('filename', 'i').exec(contentDisposition); 18313 if (tmp) { 18314 tmp = tmp[1]; 18315 var _filename2 = rfc2616unquote(tmp); 18316 _filename2 = rfc2047decode(_filename2); 18317 return fixupEncoding(_filename2); 18318 } 18319 function toParamRegExp(attributePattern, flags) { 18320 return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); 18321 } 18322 function textdecode(encoding, value) { 18323 if (encoding) { 18324 if (!/^[\x00-\xFF]+$/.test(value)) { 18325 return value; 18326 }
18327 try { 18328 var decoder = new TextDecoder(encoding, { fatal: true }); 18329 var bytes = new Array(value.length); 18330 for (var i = 0; i < value.length; ++i) { 18331 bytes[i] = value.charCodeAt(i); 18332 } 18333 value = decoder.decode(new Uint8Array(bytes)); 18334 needsEncodingFixup = false; 18335 } catch (e) { 18336 if (/^utf-?8$/i.test(encoding)) { 18337 try { 18338 value = decodeURIComponent(escape(value)); 18339 needsEncodingFixup = false; 18340 } catch (err) {} 18341 } 18342 } 18343 } 18344 return value; 18345 } 18346 function fixupEncoding(value) { 18347 if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { 18348 value = textdecode('utf-8', value); 18349 if (needsEncodingFixup) { 18350 value = textdecode('iso-8859-1', value); 18351 } 18352 } 18353 return value; 18354 } 18355 function rfc2231getparam(contentDisposition) { 18356 var matches = [], 18357 match = void 0; 18358 var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); 18359 while ((match = iter.exec(contentDisposition)) !== null) { 18360 var _match = match, 18361 _match2 = _slicedToArray(_match, 4), 18362 n = _match2[1], 18363 quot = _match2[2], 18364 part = _match2[3]; 18365 18366 n = parseInt(n, 10); 18367 if (n in matches) { 18368 if (n === 0) { 18369 break; 18370 } 18371 continue; 18372 } 18373 matches[n] = [quot, part]; 18374 } 18375 var parts = []; 18376 for (var _n = 0; _n < matches.length; ++_n) { 18377 if (!(_n in matches)) { 18378 break; 18379 } 18380 18381 var _matches$_n = _slicedToArray(matches[_n], 2), 18382 _quot = _matches$_n[0], 18383 _part = _matches$_n[1]; 18384 18385 _part = rfc2616unquote(_part); 18386 if (_quot) { 18387 _part = unescape(_part); 18388 if (_n === 0) { 18389 _part = rfc5987decode(_part); 18390 } 18391 } 18392 parts.push(_part); 18393 } 18394 return parts.join(''); 18395 } 18396 function rfc2616unquote(value) { 18397 if (value.charAt(0) === '"') { 18398 var parts = value.slice(1).split('\\"'); 18399 for (var i = 0; i < parts.length; ++i) { 18400 var quotindex = parts[i].indexOf('"'); 18401 if (quotindex !== -1) { 18402 parts[i] = parts[i].slice(0, quotindex); 18403 parts.length = i + 1; 18404 } 18405 parts[i] = parts[i].replace(/\\(.)/g, '$1'); 18406 } 18407 value = parts.join('"'); 18408 } 18409 return value; 18410 } 18411 function rfc5987decode(extvalue) { 18412 var encodingend = extvalue.indexOf('\''); 18413 if (encodingend === -1) { 18414 return extvalue; 18415 } 18416 var encoding = extvalue.slice(0, encodingend); 18417 var langvalue = extvalue.slice(encodingend + 1); 18418 var value = langvalue.replace(/^[^']*'/, ''); 18419 return textdecode(encoding, value); 18420 } 18421 function rfc2047decode(value) { 18422 if (value.slice(0, 2) !== '=?' || /[\x00-\x19\x80-\xff]/.test(value)) { 18423 return value; 18424 } 18425 return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { 18426 if (encoding === 'q' || encoding === 'Q') { 18427 text = text.replace(/_/g, ' '); 18428 text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { 18429 return String.fromCharCode(parseInt(hex, 16)); 18430 }); 18431 return textdecode(charset, text); 18432 } 18433 try { 18434 text = atob(text); 18435 } catch (e) {} 18436 return textdecode(charset, text); 18437 }); 18438 } 18439 return ''; 18440} 18441exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; 18442 18443/***/ }), 18444/* 151 */ 18445/***/ (function(module, exports, __w_pdfjs_require__) { 18446 18447"use strict"; 18448 18449 18450Object.defineProperty(exports, "__esModule", { 18451 value: true 18452}); 18453exports.PDFFetchStream = undefined; 18454 18455var _regenerator = __w_pdfjs_require__(137); 18456 18457var _regenerator2 = _interopRequireDefault(_regenerator); 18458 18459var _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; }; }(); 18460 18461var _util = __w_pdfjs_require__(1); 18462 18463var _network_utils = __w_pdfjs_require__(149); 18464 18465function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 18466 18467function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
18467y { 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"); }); }; } 18468 18469function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 18470 18471function createFetchOptions(headers, withCredentials, abortController) { 18472 return { 18473 method: 'GET', 18474 headers: headers, 18475 signal: abortController && abortController.signal, 18476 mode: 'cors', 18477 credentials: withCredentials ? 'include' : 'same-origin', 18478 redirect: 'follow' 18479 }; 18480} 18481 18482var PDFFetchStream = function () { 18483 function PDFFetchStream(source) { 18484 _classCallCheck(this, PDFFetchStream); 18485 18486 this.source = source; 18487 this.isHttp = /^https?:/i.test(source.url); 18488 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 18489 this._fullRequestReader = null; 18490 this._rangeRequestReaders = []; 18491 } 18492 18493 _createClass(PDFFetchStream, [{ 18494 key: 'getFullReader', 18495 value: function getFullReader() { 18496 (0, _util.assert)(!this._fullRequestReader); 18497 this._fullRequestReader = new PDFFetchStreamReader(this); 18498 return this._fullRequestReader; 18499 } 18500 }, { 18501 key: 'getRangeReader', 18502 value: function getRangeReader(begin, end) { 18503 var reader = new PDFFetchStreamRangeReader(this, begin, end); 18504 this._rangeRequestReaders.push(reader); 18505 return reader; 18506 } 18507 }, { 18508 key: 'cancelAllRequests', 18509 value: function cancelAllRequests(reason) { 18510 if (this._fullRequestReader) { 18511 this._fullRequestReader.cancel(reason); 18512 } 18513 var readers = this._rangeRequestReaders.slice(0); 18514 readers.forEach(function (reader) { 18515 reader.cancel(reason); 18516 }); 18517 } 18518 }]); 18519 18520 return PDFFetchStream; 18521}(); 18522 18523var PDFFetchStreamReader = function () { 18524 function PDFFetchStreamReader(stream) { 18525 var _this = this; 18526 18527 _classCallCheck(this, PDFFetchStreamReader); 18528 18529 this._stream = stream; 18530 this._reader = null; 18531 this._loaded = 0; 18532 this._filename = null; 18533 var source = stream.source; 18534 this._withCredentials = source.withCredentials; 18535 this._contentLength = source.length; 18536 this._headersCapability = (0, _util.createPromiseCapability)(); 18537 this._disableRange = source.disableRange || false; 18538 this._rangeChunkSize = source.rangeChunkSize; 18539 if (!this._rangeChunkSize && !this._disableRange) { 18540 this._disableRange = true; 18541 } 18542 if (typeof AbortController !== 'undefined') { 18543 this._abortController = new AbortController(); 18544 } 18545 this._isStreamingSupported = !source.disableStream; 18546 this._isRangeSupported = !source.disableRange; 18547 this._headers = new Headers(); 18548 for (var property in this._stream.httpHeaders) { 18549 var value = this._stream.httpHeaders[property]; 18550 if (typeof value === 'undefined') { 18551 continue; 18552 } 18553 this._headers.append(property, value); 18554 } 18555 var url = source.url; 18556 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 18557 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 18558 throw (0, _network_utils.createResponseStatusError)(response.status, url); 18559 } 18560 _this._reader = response.body.getReader(); 18561 _this._headersCapability.resolve(); 18562 var getResponseHeader = function getResponseHeader(name) { 18563 return response.headers.get(name); 18564 }; 18565 18566 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 18567 getResponseHeader: getResponseHeader, 18568 isHttp: _this._stream.isHttp, 18569 rangeChunkSize: _this._rangeChunkSize, 18570 disableRange: _this._disableRange 18571 }), 18572 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 18573 suggestedLength = _validateRangeRequest.suggestedLength; 18574 18575 _this._isRangeSupported = allowRangeRequests; 18576 _this._contentLength = suggestedLength || _this._contentLength; 18577 _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 18578 if (!_this._isStreamingSupported && _this._isRangeSupported) { 18579 _this.cancel(new _util.AbortException('streaming is disabled')); 18580 } 18581 }).catch(this._headersCapability.reject); 18582 this.onProgress = null; 18583 } 18584 18585 _createClass(PDFFetchStreamReader, [{ 18586 key: 'read', 18587 value: function () { 18588 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 18589 var _ref2, value, done, buffer; 18590 18591 return _regenerator2.default.wrap(function _callee$(_context) { 18592 while (1) { 18593 switch (_context.prev = _context.next) { 18594 case 0: 18595 _context.next = 2; 18596 return this._headersCapability.promise; 18597 18598 case 2: 18599 _context.next = 4; 18600 return this._reader.read(); 18601 18602 case 4: 18603 _ref2 = _context.sent; 18604 value = _ref2.value; 18605 done = _ref2.done; 18606 18607 if (!done) { 18608 _context.next = 9; 18609 break; 18610 } 18611 18612 return _context.abrupt('return', { 18613 value: value, 18614 done: done 18615 }); 18616 18617 case 9: 18618 this._loaded += value.byteLength; 18619 if (this.onProgress) { 18620 this.onProgress({ 18621 loaded: this._loaded, 18622 total: this._contentLength 18623 }); 18624 } 18625 buffer = new Uint8Array(value).buffer; 18626 return _context.abrupt('return', { 18627 value: buffer, 18628 done: false 18629 }); 18630 18631 case 13: 18632 case 'end': 18633 return _context.stop(); 18634 } 18635 } 18636 }, _callee, this); 18637 })); 18638 18639 function read() { 18640 return _ref.apply(this, arguments); 18641 } 18642 18643 return read; 18644 }() 18645 }, { 18646 key: 'cancel', 18647 value: function cancel(reason) { 18648 if (this._reader) { 18649 this._reader.cancel(reason); 18650 } 18651 if (this._abortController) { 18652 this._abortController.abort(); 18653 } 18654 } 18655 }, { 18656 key: 'headersReady', 18657 get: function get() { 18658 return this._headersCapability.promise; 18659 } 18660 }, { 18661 key: 'filename', 18662 get: function get() { 18663 return this._filename; 18664 } 18665 }, { 18666 key: 'contentLength', 18667 get: function get() { 18668 return this._contentLength; 18669 } 18670 }, { 18671 key: 'isRangeSupported', 18672 get: function get() { 18673 return this._isRangeSupported; 18674 } 18675 }, { 18676 key: 'isStreamingSupported', 18677 get: function get() { 18678 return this._isStreamingSupported; 18679 } 18680 }]); 18681 18682 return PDFFetchStreamReader; 18683}(); 18684 18685var PDFFetchStreamRangeReader = function () { 18686 function PDFFetchStreamRangeReader(stream, begin, end) { 18687 var _this2 = this; 18688 18689 _classCallCheck(this, PDFFetchStreamRangeReader); 18690 18691 this._stream = stream; 18692 this._reader = null; 18693 this._loaded = 0; 18694 var source = stream.source; 18695 this._withCredentials = source.withCredentials; 18696 this._readCapability = (0, _util.createPromiseCapability)(); 18697 this._isStreamingSupported = !source.disableStream; 18698 if (typeof AbortController !== 'undefined') { 18699 this._abortController = new AbortController(); 18700 } 18701 this._headers = new Headers(); 18702 for (var property in this._stream.httpHeaders) { 18703 var value = this._stream.httpHeaders[property]; 18704 if (typeof value === 'undefined') { 18705 continue; 18706 } 18707 this._headers.append(property, value); 18708 } 18709 var rangeStr = begin + '-' + (end - 1); 18710 this._headers.append('Range', 'bytes=' + rangeStr); 18711 var url = source.url; 18712 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 18713 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 18714 throw (0, _network_utils.createResponseStatusError)(response.status, url); 18715 } 18716 _this2._readCapability.resolve(); 18717 _this2._reader = response.body.getReader(); 18718 }); 18719 this.onProgress = null; 18720 } 18721 18722 _createClass(PDFFetchStreamRangeReader, [{ 18723 key: 'read', 18724 value: function () { 18725 var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 18726 var _ref4, value, done, buffer; 18727 18728 return _regenerator2.default.wrap(function _callee2$(_context2) { 18729 while (1) { 18730 switch (_context2.prev = _context2.next) { 18731 case 0: 18732 _context2.next = 2; 18733 return this._readCapability.promise; 18734 18735 case 2: 18736 _context2.next = 4; 18737 return this._reader.read(); 18738 18739 case 4: 18740 _ref4 = _context2.sent; 18741 value = _ref4.value; 18742 done = _ref4.done; 18743 18744 if (!done) { 18745 _context2.next = 9; 18746 break; 18747 } 18748 18749 return _context2.abrupt('return', { 18750 value: value, 18751 done: done 18752 }); 18753 18754 case 9: 18755 this._loaded += value.byteLength; 18756 if (this.onProgress) { 18757 this.onProgress({ loaded: this._loaded }); 18758 } 18759 buffer = new Uint8Array(value).buffer; 18760 return _context2.abrupt('return', { 18761 value: buffer, 18762 done: false 18763 }); 18764 18765 case 13: 18766 case 'end': 18767 return _context2.stop(); 18768 } 18769 } 18770 }, _callee2, this); 18771 })); 18772 18773 function read() { 18774 return _ref3.apply(this, arguments); 18775 } 18776 18777 return read; 18778 }() 18779 }, { 18780 key: 'cancel', 18781 value: function cancel(reason) { 18782 if (this._reader) { 18783 this._reader.cancel(reason); 18784 } 18785 if (this._abortController) { 18786 this._abortController.abort(); 18787 } 18788 } 18789 }, { 18790 key: 'isStreamingSupported', 18791 get: function get() { 18792 return this._isStreamingSupported; 18793 } 18794 }]); 18795 18796 return PDFFetchStreamRangeReader; 18797}(); 18798 18799exports.PDFFetchStream = PDFFetchStream; 18800 18801/***/ }), 18802/* 152 */ 18803/***/ (function(module, exports, __w_pdfjs_require__) { 18804 18805"use strict"; 18806 18807 18808Object.defineProperty(exports, "__esModule", { 18809 value: true 18810}); 18811exports.NetworkManager = exports.PDFNetworkStream = undefined; 18812 18813var _regenerator = __w_pdfjs_require__(137); 18814 18815var _regenerator2 = _interopRequireDefault(_regenerator); 18816 18817var _util = __w_pdfjs_require__(1); 18818 18819var _network_utils = __w_pdfjs_require__(149); 18820 18821var _global_scope = __w_pdfjs_require__(3); 18822 18823var _global_scope2 = _interopRequireDefault(_global_scope); 18824 18825function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 18826 18827function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
18827y { 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"); }); }; } 18828 18829; 18830var OK_RESPONSE = 200; 18831var PARTIAL_CONTENT_RESPONSE = 206; 18832function NetworkManager(url, args) { 18833 this.url = url; 18834 args = args || {}; 18835 this.isHttp = /^https?:/i.test(url); 18836 this.httpHeaders = this.isHttp && args.httpHeaders || {}; 18837 this.withCredentials = args.withCredentials || false; 18838 this.getXhr = args.getXhr || function NetworkManager_getXhr() { 18839 return new XMLHttpRequest(); 18840 }; 18841 this.currXhrId = 0; 18842 this.pendingRequests = Object.create(null); 18843 this.loadedRequests = Object.create(null); 18844} 18845function getArrayBuffer(xhr) { 18846 var data = xhr.response; 18847 if (typeof data !== 'string') { 18848 return data; 18849 } 18850 var array = (0, _util.stringToBytes)(data); 18851 return array.buffer; 18852} 18853var supportsMozChunked = function supportsMozChunkedClosure() { 18854 try { 18855 var x = new XMLHttpRequest(); 18856 x.open('GET', _global_scope2.default.location.href); 18857 x.responseType = 'moz-chunked-arraybuffer'; 18858 return x.responseType === 'moz-chunked-arraybuffer'; 18859 } catch (e) { 18860 return false; 18861 } 18862}(); 18863NetworkManager.prototype = { 18864 requestRange: function NetworkManager_requestRange(begin, end, listeners) { 18865 var args = { 18866 begin: begin, 18867 end: end 18868 }; 18869 for (var prop in listeners) { 18870 args[prop] = listeners[prop]; 18871 } 18872 return this.request(args); 18873 }, 18874 requestFull: function NetworkManager_requestFull(listeners) { 18875 return this.request(listeners); 18876 }, 18877 request: function NetworkManager_request(args) { 18878 var xhr = this.getXhr(); 18879 var xhrId = this.currXhrId++; 18880 var pendingRequest = this.pendingRequests[xhrId] = { xhr: xhr }; 18881 xhr.open('GET', this.url); 18882 xhr.withCredentials = this.withCredentials; 18883 for (var property in this.httpHeaders) { 18884 var value = this.httpHeaders[property]; 18885 if (typeof value === 'undefined') { 18886 continue; 18887 } 18888 xhr.setRequestHeader(property, value); 18889 } 18890 if (this.isHttp && 'begin' in args && 'end' in args) { 18891 var rangeStr = args.begin + '-' + (args.end - 1); 18892 xhr.setRequestHeader('Range', 'bytes=' + rangeStr); 18893 pendingRequest.expectedStatus = 206; 18894 } else { 18895 pendingRequest.expectedStatus = 200; 18896 } 18897 var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData; 18898 if (useMozChunkedLoading) { 18899 xhr.responseType = 'moz-chunked-arraybuffer'; 18900 pendingRequest.onProgressiveData = args.onProgressiveData; 18901 pendingRequest.mozChunked = true; 18902 } else { 18903 xhr.responseType = 'arraybuffer'; 18904 } 18905 if (args.onError) { 18906 xhr.onerror = function (evt) { 18907 args.onError(xhr.status); 18908 }; 18909 } 18910 xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); 18911 xhr.onprogress = this.onProgress.bind(this, xhrId); 18912 pendingRequest.onHeadersReceived = args.onHeadersReceived; 18913 pendingRequest.onDone = args.onDone; 18914 pendingRequest.onError = args.onError; 18915 pendingRequest.onProgress = args.onProgress; 18916 xhr.send(null); 18917 return xhrId; 18918 }, 18919 onProgress: function NetworkManager_onProgress(xhrId, evt) { 18920 var pendingRequest = this.pendingRequests[xhrId]; 18921 if (!pendingRequest) { 18922 return; 18923 } 18924 if (pendingRequest.mozChunked) { 18925 var chunk = getArrayBuffer(pendingRequest.xhr); 18926 pendingRequest.onProgressiveData(chunk); 18927 } 18928 var onProgress = pendingRequest.onProgress; 18929 if (onProgress) { 18930 onProgress(evt); 18931 } 18932 }, 18933 onStateChange: function NetworkManager_onStateChange(xhrId, evt) { 18934 var pendingRequest = this.pendingRequests[xhrId]; 18935 if (!pendingRequest) { 18936 return; 18937 } 18938 var xhr = pendingRequest.xhr; 18939 if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { 18940 pendingRequest.onHeadersReceived(); 18941 delete pendingRequest.onHeadersReceived; 18942 } 18943 if (xhr.readyState !== 4) { 18944 return; 18945 } 18946 if (!(xhrId in this.pendingRequests)) { 18947 return; 18948 } 18949 delete this.pendingRequests[xhrId]; 18950 if (xhr.status === 0 && this.isHttp) { 18951 if (pendingRequest.onError) { 18952 pendingRequest.onError(xhr.status); 18953 } 18954 return; 18955 } 18956 var xhrStatus = xhr.status || OK_RESPONSE; 18957 var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
18958 if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { 18959 if (pendingRequest.onError) { 18960 pendingRequest.onError(xhr.status); 18961 } 18962 return; 18963 } 18964 this.loadedRequests[xhrId] = true; 18965 var chunk = getArrayBuffer(xhr); 18966 if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { 18967 var rangeHeader = xhr.getResponseHeader('Content-Range'); 18968 var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); 18969 var begin = parseInt(matches[1], 10); 18970 pendingRequest.onDone({ 18971 begin: begin, 18972 chunk: chunk 18973 }); 18974 } else if (pendingRequest.onProgressiveData) { 18975 pendingRequest.onDone(null); 18976 } else if (chunk) { 18977 pendingRequest.onDone({ 18978 begin: 0, 18979 chunk: chunk 18980 }); 18981 } else if (pendingRequest.onError) { 18982 pendingRequest.onError(xhr.status); 18983 } 18984 }, 18985 hasPendingRequests: function NetworkManager_hasPendingRequests() { 18986 for (var xhrId in this.pendingRequests) { 18987 return true; 18988 } 18989 return false; 18990 }, 18991 getRequestXhr: function NetworkManager_getXhr(xhrId) { 18992 return this.pendingRequests[xhrId].xhr; 18993 }, 18994 isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) { 18995 return !!this.pendingRequests[xhrId].onProgressiveData; 18996 }, 18997 isPendingRequest: function NetworkManager_isPendingRequest(xhrId) { 18998 return xhrId in this.pendingRequests; 18999 }, 19000 isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) { 19001 return xhrId in this.loadedRequests; 19002 }, 19003 abortAllRequests: function NetworkManager_abortAllRequests() { 19004 for (var xhrId in this.pendingRequests) { 19005 this.abortRequest(xhrId | 0); 19006 } 19007 }, 19008 abortRequest: function NetworkManager_abortRequest(xhrId) { 19009 var xhr = this.pendingRequests[xhrId].xhr; 19010 delete this.pendingRequests[xhrId]; 19011 xhr.abort(); 19012 } 19013}; 19014function PDFNetworkStream(source) { 19015 this._source = source; 19016 this._manager = new NetworkManager(source.url, { 19017 httpHeaders: source.httpHeaders, 19018 withCredentials: source.withCredentials 19019 }); 19020 this._rangeChunkSize = source.rangeChunkSize; 19021 this._fullRequestReader = null; 19022 this._rangeRequestReaders = []; 19023} 19024PDFNetworkStream.prototype = { 19025 _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) { 19026 var i = this._rangeRequestReaders.indexOf(reader); 19027 if (i >= 0) { 19028 this._rangeRequestReaders.splice(i, 1); 19029 } 19030 }, 19031 getFullReader: function PDFNetworkStream_getFullReader() { 19032 (0, _util.assert)(!this._fullRequestReader); 19033 this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); 19034 return this._fullRequestReader; 19035 }, 19036 getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) { 19037 var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); 19038 reader.onClosed = this._onRangeRequestReaderClosed.bind(this); 19039 this._rangeRequestReaders.push(reader); 19040 return reader; 19041 }, 19042 cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) { 19043 if (this._fullRequestReader) { 19044 this._fullRequestReader.cancel(reason); 19045 } 19046 var readers = this._rangeRequestReaders.slice(0); 19047 readers.forEach(function (reader) { 19048 reader.cancel(reason); 19049 }); 19050 } 19051}; 19052function PDFNetworkStreamFullRequestReader(manager, source) { 19053 this._manager = manager; 19054 var args = { 19055 onHeadersReceived: this._onHeadersReceived.bind(this), 19056 onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this), 19057 onDone: this._onDone.bind(this), 19058 onError: this._onError.bind(this), 19059 onProgress: this._onProgress.bind(this) 19060 }; 19061 this._url = source.url; 19062 this._fullRequestId = manager.requestFull(args); 19063 this._headersReceivedCapability = (0, _util.createPromiseCapability)(); 19064 this._disableRange = source.disableRange || false; 19065 this._contentLength = source.length; 19066 this._rangeChunkSize = source.rangeChunkSize; 19067 if (!this._rangeChunkSize && !this._disableRange) { 19068 this._disableRange = true; 19069 } 19070 this._isStreamingSupported = false; 19071 this._isRangeSupported = false; 19072 this._cachedChunks = []; 19073 this._requests = []; 19074 this._done = false;
19075 this._storedError = undefined; 19076 this._filename = null; 19077 this.onProgress = null; 19078} 19079PDFNetworkStreamFullRequestReader.prototype = { 19080 _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() { 19081 var fullRequestXhrId = this._fullRequestId; 19082 var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); 19083 var getResponseHeader = function getResponseHeader(name) { 19084 return fullRequestXhr.getResponseHeader(name); 19085 }; 19086 19087 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 19088 getResponseHeader: getResponseHeader, 19089 isHttp: this._manager.isHttp, 19090 rangeChunkSize: this._rangeChunkSize, 19091 disableRange: this._disableRange 19092 }), 19093 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 19094 suggestedLength = _validateRangeRequest.suggestedLength; 19095 19096 if (allowRangeRequests) { 19097 this._isRangeSupported = true; 19098 } 19099 this._contentLength = suggestedLength || this._contentLength; 19100 this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 19101 var networkManager = this._manager; 19102 if (networkManager.isStreamingRequest(fullRequestXhrId)) { 19103 this._isStreamingSupported = true; 19104 } else if (this._isRangeSupported) { 19105 networkManager.abortRequest(fullRequestXhrId); 19106 } 19107 this._headersReceivedCapability.resolve(); 19108 }, 19109 _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) { 19110 if (this._requests.length > 0) { 19111 var requestCapability = this._requests.shift(); 19112 requestCapability.resolve({ 19113 value: chunk, 19114 done: false 19115 }); 19116 } else { 19117 this._cachedChunks.push(chunk); 19118 } 19119 }, 19120 _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) { 19121 if (args) { 19122 this._onProgressiveData(args.chunk); 19123 } 19124 this._done = true; 19125 if (this._cachedChunks.length > 0) { 19126 return; 19127 } 19128 this._requests.forEach(function (requestCapability) { 19129 requestCapability.resolve({ 19130 value: undefined, 19131 done: true 19132 }); 19133 }); 19134 this._requests = []; 19135 }, 19136 _onError: function PDFNetworkStreamFullRequestReader_onError(status) { 19137 var url = this._url; 19138 var exception = (0, _network_utils.createResponseStatusError)(status, url); 19139 this._storedError = exception; 19140 this._headersReceivedCapability.reject(exception); 19141 this._requests.forEach(function (requestCapability) { 19142 requestCapability.reject(exception); 19143 }); 19144 this._requests = []; 19145 this._cachedChunks = []; 19146 }, 19147 _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) { 19148 if (this.onProgress) { 19149 this.onProgress({ 19150 loaded: data.loaded, 19151 total: data.lengthComputable ? data.total : this._contentLength 19152 }); 19153 } 19154 }, 19155 get filename() { 19156 return this._filename; 19157 }, 19158 get isRangeSupported() { 19159 return this._isRangeSupported; 19160 }, 19161 get isStreamingSupported() { 19162 return this._isStreamingSupported; 19163 }, 19164 get contentLength() { 19165 return this._contentLength; 19166 }, 19167 get headersReady() { 19168 return this._headersReceivedCapability.promise; 19169 }, 19170 read: function () { 19171 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 19172 var chunk, requestCapability; 19173 return _regenerator2.default.wrap(function _callee$(_context) { 19174 while (1) { 19175 switch (_context.prev = _context.next) { 19176 case 0: 19177 if (!this._storedError) { 19178 _context.next = 2; 19179 break; 19180 } 19181 19182 throw this._storedError; 19183 19184 case 2: 19185 if (!(this._cachedChunks.length > 0)) { 19186 _context.next = 5; 19187 break; 19188 } 19189 19190 chunk = this._cachedChunks.shift(); 19191 return _context.abrupt('return', { 19192 value: chunk, 19193 done: false 19194 }); 19195 19196 case 5: 19197 if (!this._done) { 19198 _context.next = 7; 19199 break; 19200 } 19201 19202 return _context.abrupt('return', { 19203 value: undefined, 19204 done: true 19205 }); 19206 19207 case 7: 19208 requestCapability = (0, _util.createPromiseCapability)(); 19209 19210 this._requests.push(requestCapability); 19211 return _context.abrupt('return', requestCapability.promise); 19212 19213 case 10: 19214 case 'end': 19215 return _context.stop(); 19216 } 19217 } 19218 }, _callee, this); 19219 })); 19220 19221 function read() { 19222 return _ref.apply(this, arguments); 19223 } 19224 19225 return read; 19226 }(), 19227 19228 cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) { 19229 this._done = true; 19230 this._headersReceivedCapability.reject(reason);
19231 this._requests.forEach(function (requestCapability) { 19232 requestCapability.resolve({ 19233 value: undefined, 19234 done: true 19235 }); 19236 }); 19237 this._requests = []; 19238 if (this._manager.isPendingRequest(this._fullRequestId)) { 19239 this._manager.abortRequest(this._fullRequestId); 19240 } 19241 this._fullRequestReader = null; 19242 } 19243}; 19244function PDFNetworkStreamRangeRequestReader(manager, begin, end) { 19245 this._manager = manager; 19246 var args = { 19247 onDone: this._onDone.bind(this), 19248 onProgress: this._onProgress.bind(this) 19249 }; 19250 this._requestId = manager.requestRange(begin, end, args); 19251 this._requests = []; 19252 this._queuedChunk = null; 19253 this._done = false; 19254 this.onProgress = null; 19255 this.onClosed = null; 19256} 19257PDFNetworkStreamRangeRequestReader.prototype = { 19258 _close: function PDFNetworkStreamRangeRequestReader_close() { 19259 if (this.onClosed) { 19260 this.onClosed(this); 19261 } 19262 }, 19263 _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) { 19264 var chunk = data.chunk; 19265 if (this._requests.length > 0) { 19266 var requestCapability = this._requests.shift(); 19267 requestCapability.resolve({ 19268 value: chunk, 19269 done: false 19270 }); 19271 } else { 19272 this._queuedChunk = chunk; 19273 } 19274 this._done = true; 19275 this._requests.forEach(function (requestCapability) { 19276 requestCapability.resolve({ 19277 value: undefined, 19278 done: true 19279 }); 19280 }); 19281 this._requests = []; 19282 this._close(); 19283 }, 19284 _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) { 19285 if (!this.isStreamingSupported && this.onProgress) { 19286 this.onProgress({ loaded: evt.loaded }); 19287 } 19288 }, 19289 get isStreamingSupported() { 19290 return false; 19291 }, 19292 read: function () { 19293 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 19294 var chunk, requestCapability; 19295 return _regenerator2.default.wrap(function _callee2$(_context2) { 19296 while (1) { 19297 switch (_context2.prev = _context2.next) { 19298 case 0: 19299 if (!(this._queuedChunk !== null)) { 19300 _context2.next = 4; 19301 break; 19302 } 19303 19304 chunk = this._queuedChunk; 19305 19306 this._queuedChunk = null; 19307 return _context2.abrupt('return', { 19308 value: chunk, 19309 done: false 19310 }); 19311 19312 case 4: 19313 if (!this._done) { 19314 _context2.next = 6; 19315 break; 19316 } 19317 19318 return _context2.abrupt('return', { 19319 value: undefined, 19320 done: true 19321 }); 19322 19323 case 6: 19324 requestCapability = (0, _util.createPromiseCapability)(); 19325 19326 this._requests.push(requestCapability); 19327 return _context2.abrupt('return', requestCapability.promise); 19328 19329 case 9: 19330 case 'end': 19331 return _context2.stop(); 19332 } 19333 } 19334 }, _callee2, this); 19335 })); 19336 19337 function read() { 19338 return _ref2.apply(this, arguments); 19339 } 19340 19341 return read; 19342 }(), 19343 19344 cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) { 19345 this._done = true; 19346 this._requests.forEach(function (requestCapability) { 19347 requestCapability.resolve({ 19348 value: undefined, 19349 done: true 19350 }); 19351 }); 19352 this._requests = []; 19353 if (this._manager.isPendingRequest(this._requestId)) { 19354 this._manager.abortRequest(this._requestId); 19355 } 19356 this._close(); 19357 } 19358}; 19359exports.PDFNetworkStream = PDFNetworkStream; 19360exports.NetworkManager = NetworkManager; 19361 19362/***/ }) 19363/******/ ]); 19364}); 19365//# sourceMappingURL=pdf.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.