1/** 2 * @licstart The following is the entire license notice for the 3 * Javascript code in this page 4 * 5 * Copyright 2019 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.2.228'; 127var pdfjsBuild = 'd7afb74a'; 128 129var pdfjsSharedUtil = __w_pdfjs_require__(1); 130 131var pdfjsDisplayAPI = __w_pdfjs_require__(147); 132 133var pdfjsDisplayTextLayer = __w_pdfjs_require__(162); 134 135var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163); 136 137var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(151); 138 139var pdfjsDisplaySVG = __w_pdfjs_require__(164); 140 141var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(156); 142 143var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153); 144 145{ 146 var isNodeJS = __w_pdfjs_require__(4); 147 148 if (isNodeJS()) { 149 var PDFNodeStream = __w_pdfjs_require__(165).PDFNodeStream; 150 151 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 152 return new PDFNodeStream(params); 153 }); 154 } else { 155 var PDFNetworkStream = __w_pdfjs_require__(168).PDFNetworkStream; 156 157 var PDFFetchStream; 158 159 if (pdfjsDisplayDisplayUtils.isFetchSupported()) { 160 PDFFetchStream = __w_pdfjs_require__(169).PDFFetchStream; 161 } 162 163 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 164 if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) { 165 return new PDFFetchStream(params); 166 } 167 168 return new PDFNetworkStream(params); 169 }); 170 } 171} 172exports.build = pdfjsDisplayAPI.build; 173exports.version = pdfjsDisplayAPI.version; 174exports.getDocument = pdfjsDisplayAPI.getDocument; 175exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; 176exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; 177exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; 178exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; 179exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; 180exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; 181exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; 182exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; 183exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; 184exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; 185exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; 186exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; 187exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; 188exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; 189exports.OPS = pdfjsSharedUtil.OPS; 190exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; 191exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; 192exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; 193exports.createObjectURL = pdfjsSharedUtil.createObjectURL; 194exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; 195exports.shadow = pdfjsSharedUtil.shadow; 196exports.Util = pdfjsSharedUtil.Util; 197exports.ReadableStream = pdfjsSharedUtil.ReadableStream; 198exports.URL = pdfjsSharedUtil.URL; 199exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException; 200exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl; 201exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget; 202exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes; 203exports.loadScript = pdfjsDisplayDisplayUtils.loadScript; 204exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString; 205exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; 206exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; 207 208/***/ }), 209/* 1 */ 210/***/ (function(module, exports, __w_pdfjs_require__) { 211 212"use strict"; 213 214 215Object.defineProperty(exports, "__esModule", { 216 value: true 217}); 218exports.arrayByteLength = arrayByteLength; 219exports.arraysToBytes = arraysToBytes; 220exports.assert = assert; 221exports.bytesToString = bytesToString; 222exports.createPromiseCapability = createPromiseCapability; 223exports.getVerbosityLevel = getVerbosityLevel; 224exports.info = info; 225exports.isArrayBuffer = isArrayBuffer; 226exports.isArrayEqual = isArrayEqual; 227exports.isBool = isBool; 228exports.isEmptyObj = isEmptyObj; 229exports.isNum = isNum; 230exports.isString = isString; 231exports.isSpace = isSpace; 232exports.isSameOrigin = isSameOrigin; 233exports.createValidAbsoluteUrl = createValidAbsoluteUrl; 234exports.isLittleEndian = isLittleEndian; 235exports.isEvalSupported = isEvalSupported; 236exports.log2 = log2; 237exports.readInt8 = readInt8; 238exports.readUint16 = readUint16; 239exports.readUint32 = readUint32; 240exports.removeNullCharacters = removeNullCharacters; 241exports.setVerbosityLevel = setVerbosityLevel; 242exports.shadow = shadow; 243exports.string32 = string32; 244exports.stringToBytes = stringToBytes; 245exports.stringToPDFString = stringToPDFString; 246exports.stringToUTF8String = stringToUTF8String; 247exports.utf8StringToString = utf8StringToString; 248exports.warn = warn; 249exports.unreachable = unreachable; 250Object.defineProperty(exports, "ReadableStream", { 251 enumerable: true, 252 get: function get() { 253 return _streams_polyfill.ReadableStream; 254 } 255}); 256Object.defineProperty(exports, "URL", { 257 enumerable: true, 258 get: function get() { 259 return _url_polyfill.URL; 260 } 261}); 262exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = 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 = void 0; 263 264__w_pdfjs_require__(2); 265 266var _streams_polyfill = __w_pdfjs_require__(143); 267 268var _url_polyfill = __w_pdfjs_require__(145); 269 270function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 271 272var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; 273exports.IDENTITY_MATRIX = IDENTITY_MATRIX; 274var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; 275exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; 276var NativeImageDecoding = { 277 NONE: 'none', 278 DECODE: 'decode', 279 DISPLAY: 'display' 280}; 281exports.NativeImageDecoding = NativeImageDecoding; 282var PermissionFlag = { 283 PRINT: 0x04, 284 MODIFY_CONTENTS: 0x08, 285 COPY: 0x10, 286 MODIFY_ANNOTATIONS: 0x20, 287 FILL_INTERACTIVE_FORMS: 0x100, 288 COPY_FOR_ACCESSIBILITY: 0x200, 289 ASSEMBLE: 0x400, 290 PRINT_HIGH_QUALITY: 0x800 291}; 292exports.PermissionFlag = PermissionFlag; 293var TextRenderingMode = { 294 FILL: 0, 295 STROKE: 1, 296 FILL_STROKE: 2, 297 INVISIBLE: 3, 298 FILL_ADD_TO_PATH: 4, 299 STROKE_ADD_TO_PATH: 5, 300 FILL_STROKE_ADD_TO_PATH: 6, 301 ADD_TO_PATH: 7, 302 FILL_STROKE_MASK: 3, 303 ADD_TO_PATH_FLAG: 4 304}; 305exports.TextRenderingMode = TextRenderingMode; 306var ImageKind = { 307 GRAYSCALE_1BPP: 1, 308 RGB_24BPP: 2, 309 RGBA_32BPP: 3 310}; 311exports.ImageKind = ImageKind; 312var AnnotationType = { 313 TEXT: 1, 314 LINK: 2, 315 FREETEXT: 3, 316 LINE: 4, 317 SQUARE: 5, 318 CIRCLE: 6, 319 POLYGON: 7, 320 POLYLINE: 8, 321 HIGHLIGHT: 9, 322 UNDERLINE: 10, 323 SQUIGGLY: 11, 324 STRIKEOUT: 12, 325 STAMP: 13, 326 CARET: 14, 327 INK: 15, 328 POPUP: 16, 329 FILEATTACHMENT: 17, 330 SOUND: 18, 331 MOVIE: 19, 332 WIDGET: 20, 333 SCREEN: 21, 334 PRINTERMARK: 22, 335 TRAPNET: 23, 336 WATERMARK: 24, 337 THREED: 25, 338 REDACT: 26 339}; 340exports.AnnotationType = AnnotationType; 341var AnnotationFlag = { 342 INVISIBLE: 0x01, 343 HIDDEN: 0x02, 344 PRINT: 0x04, 345 NOZOOM: 0x08, 346 NOROTATE: 0x10, 347 NOVIEW: 0x20, 348 READONLY: 0x40, 349 LOCKED: 0x80, 350 TOGGLENOVIEW: 0x100, 351 LOCKEDCONTENTS: 0x200 352}; 353exports.AnnotationFlag = AnnotationFlag; 354var AnnotationFieldFlag = { 355 READONLY: 0x0000001, 356 REQUIRED: 0x0000002, 357 NOEXPORT: 0x0000004, 358 MULTILINE: 0x0001000, 359 PASSWORD: 0x0002000, 360 NOTOGGLETOOFF: 0x0004000, 361 RADIO: 0x0008000, 362 PUSHBUTTON: 0x0010000, 363 COMBO: 0x0020000, 364 EDIT: 0x0040000, 365 SORT: 0x0080000, 366 FILESELECT: 0x0100000, 367 MULTISELECT: 0x0200000, 368 DONOTSPELLCHECK: 0x0400000, 369 DONOTSCROLL: 0x0800000, 370 COMB: 0x1000000, 371 RICHTEXT: 0x2000000, 372 RADIOSINUNISON: 0x2000000, 373 COMMITONSELCHANGE: 0x4000000 374}; 375exports.AnnotationFieldFlag = AnnotationFieldFlag; 376var AnnotationBorderStyleType = { 377 SOLID: 1, 378 DASHED: 2, 379 BEVELED: 3, 380 INSET: 4, 381 UNDERLINE: 5 382}; 383exports.AnnotationBorderStyleType = AnnotationBorderStyleType; 384var StreamType = { 385 UNKNOWN: 0, 386 FLATE: 1, 387 LZW: 2, 388 DCT: 3, 389 JPX: 4, 390 JBIG: 5, 391 A85: 6, 392 AHX: 7, 393 CCF: 8, 394 RL: 9 395}; 396exports.StreamType = StreamType; 397var FontType = { 398 UNKNOWN: 0, 399 TYPE1: 1, 400 TYPE1C: 2, 401 CIDFONTTYPE0: 3, 402 CIDFONTTYPE0C: 4, 403 TRUETYPE: 5, 404 CIDFONTTYPE2: 6, 405 TYPE3: 7, 406 OPENTYPE: 8, 407 TYPE0: 9, 408 MMTYPE1: 10 409}; 410exports.FontType = FontType; 411var VerbosityLevel = { 412 ERRORS: 0, 413 WARNINGS: 1, 414 INFOS: 5 415}; 416exports.VerbosityLevel = VerbosityLevel; 417var CMapCompressionType = { 418 NONE: 0, 419 BINARY: 1, 420 STREAM: 2 421}; 422exports.CMapCompressionType = CMapCompressionType; 423var OPS = { 424 dependency: 1, 425 setLineWidth: 2, 426 setLineCap: 3, 427 setLineJoin: 4, 428 setMiterLimit: 5, 429 setDash: 6, 430 setRenderingIntent: 7, 431 setFlatness: 8, 432 setGState: 9, 433 save: 10, 434 restore: 11, 435 transform: 12, 436 moveTo: 13, 437 lineTo: 14, 438 curveTo: 15, 439 curveTo2: 16, 440 curveTo3: 17, 441 closePath: 18, 442 rectangle: 19, 443 stroke: 20, 444 closeStroke: 21, 445 fill: 22, 446 eoFill: 23, 447 fillStroke: 24, 448 eoFillStroke: 25, 449 closeFillStroke: 26, 450 closeEOFillStroke: 27, 451 endPath: 28, 452 clip: 29, 453 eoClip: 30, 454 beginText: 31, 455 endText: 32, 456 setCharSpacing: 33, 457 setWordSpacing: 34, 458 setHScale: 35, 459 setLeading: 36, 460 setFont: 37, 461 setTextRenderingMode: 38, 462 setTextRise: 39, 463 moveText: 40, 464 setLeadingMoveText: 41, 465 setTextMatrix: 42, 466 nextLine: 43, 467 showText: 44, 468 showSpacedText: 45, 469 nextLineShowText: 46, 470 nextLineSetSpacingShowText: 47, 471 setCharWidth: 48, 472 setCharWidthAndBounds: 49, 473 setStrokeColorSpace: 50, 474 setFillColorSpace: 51, 475 setStrokeColor: 52, 476 setStrokeColorN: 53, 477 setFillColor: 54, 478 setFillColorN: 55, 479 setStrokeGray: 56, 480 setFillGray: 57, 481 setStrokeRGBColor: 58, 482 setFillRGBColor: 59, 483 setStrokeCMYKColor: 60, 484 setFillCMYKColor: 61, 485 shadingFill: 62, 486 beginInlineImage: 63, 487 beginImageData: 64, 488 endInlineImage: 65, 489 paintXObject: 66, 490 markPoint: 67, 491 markPointProps: 68, 492 beginMarkedContent: 69, 493 beginMarkedContentProps: 70, 494 endMarkedContent: 71, 495 beginCompat: 72, 496 endCompat: 73, 497 paintFormXObjectBegin: 74, 498 paintFormXObjectEnd: 75, 499 beginGroup: 76, 500 endGroup: 77, 501 beginAnnotations: 78, 502 endAnnotations: 79, 503 beginAnnotation: 80, 504 endAnnotation: 81, 505 paintJpegXObject: 82, 506 paintImageMaskXObject: 83, 507 paintImageMaskXObjectGroup: 84, 508 paintImageXObject: 85, 509 paintInlineImageXObject: 86, 510 paintInlineImageXObjectGroup: 87, 511 paintImageXObjectRepeat: 88, 512 paintImageMaskXObjectRepeat: 89, 513 paintSolidColorImageMask: 90, 514 constructPath: 91 515}; 516exports.OPS = OPS; 517var UNSUPPORTED_FEATURES = { 518 unknown: 'unknown', 519 forms: 'forms', 520 javaScript: 'javaScript', 521 smask: 'smask', 522 shadingPattern: 'shadingPattern', 523 font: 'font' 524}; 525exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; 526var PasswordResponses = { 527 NEED_PASSWORD: 1, 528 INCORRECT_PASSWORD: 2 529}; 530exports.PasswordResponses = PasswordResponses; 531var verbosity = VerbosityLevel.WARNINGS; 532 533function setVerbosityLevel(level) { 534 if (Number.isInteger(level)) { 535 verbosity = level; 536 } 537} 538 539function getVerbosityLevel() { 540 return verbosity; 541} 542 543function info(msg) { 544 if (verbosity >= VerbosityLevel.INFOS) { 545 console.log('Info: ' + msg); 546 } 547} 548 549function warn(msg) { 550 if (verbosity >= VerbosityLevel.WARNINGS) { 551 console.log('Warning: ' + msg); 552 } 553} 554 555function unreachable(msg) { 556 throw new Error(msg); 557} 558 559function assert(cond, msg) { 560 if (!cond) { 561 unreachable(msg); 562 } 563} 564 565function isSameOrigin(baseUrl, otherUrl) { 566 try { 567 var base = new _url_polyfill.URL(baseUrl); 568 569 if (!base.origin || base.origin === 'null') { 570 return false; 571 } 572 } catch (e) { 573 return false; 574 } 575 576 var other = new _url_polyfill.URL(otherUrl, base); 577 return base.origin === other.origin; 578} 579 580function _isValidProtocol(url) { 581 if (!url) { 582 return false; 583 } 584 585 switch (url.protocol) { 586 case 'http:': 587 case 'https:': 588 case 'ftp:': 589 case 'mailto:': 590 case 'tel:': 591 return true; 592 593 default: 594 return false; 595 } 596} 597 598function createValidAbsoluteUrl(url, baseUrl) { 599 if (!url) { 600 return null; 601 } 602 603 try { 604 var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); 605 606 if (_isValidProtocol(absoluteUrl)) { 607 return absoluteUrl; 608 } 609 } catch (ex) {} 610 611 return null; 612} 613 614function shadow(obj, prop, value) { 615 Object.defineProperty(obj, prop, { 616 value: value, 617 enumerable: true, 618 configurable: true, 619 writable: false 620 }); 621 return value; 622} 623 624var PasswordException = function PasswordExceptionClosure() { 625 function PasswordException(msg, code) { 626 this.name = 'PasswordException'; 627 this.message = msg; 628 this.code = code; 629 } 630 631 PasswordException.prototype = new Error(); 632 PasswordException.constructor = PasswordException; 633 return PasswordException; 634}(); 635 636exports.PasswordException = PasswordException; 637 638var UnknownErrorException = function UnknownErrorExceptionClosure() { 639 function UnknownErrorException(msg, details) { 640 this.name = 'UnknownErrorException'; 641 this.message = msg; 642 this.details = details; 643 } 644 645 UnknownErrorException.prototype = new Error(); 646 UnknownErrorException.constructor = UnknownErrorException; 647 return UnknownErrorException; 648}(); 649 650exports.UnknownErrorException = UnknownErrorException; 651 652var InvalidPDFException = function InvalidPDFExceptionClosure() { 653 function InvalidPDFException(msg) { 654 this.name = 'InvalidPDFException'; 655 this.message = msg; 656 } 657 658 InvalidPDFException.prototype = new Error(); 659 InvalidPDFException.constructor = InvalidPDFException; 660 return InvalidPDFException; 661}(); 662 663exports.InvalidPDFException = InvalidPDFException; 664 665var MissingPDFException = function MissingPDFExceptionClosure() { 666 function MissingPDFException(msg) { 667 this.name = 'MissingPDFException'; 668 this.message = msg; 669 } 670 671 MissingPDFException.prototype = new Error(); 672 MissingPDFException.constructor = MissingPDFException; 673 return MissingPDFException; 674}(); 675 676exports.MissingPDFException = MissingPDFException; 677 678var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { 679 function UnexpectedResponseException(msg, status) { 680 this.name = 'UnexpectedResponseException'; 681 this.message = msg; 682 this.status = status; 683 } 684 685 UnexpectedResponseException.prototype = new Error(); 686 UnexpectedResponseException.constructor = UnexpectedResponseException; 687 return UnexpectedResponseException; 688}(); 689 690exports.UnexpectedResponseException = UnexpectedResponseException; 691 692var FormatError = function FormatErrorClosure() { 693 function FormatError(msg) { 694 this.message = msg; 695 } 696 697 FormatError.prototype = new Error(); 698 FormatError.prototype.name = 'FormatError'; 699 FormatError.constructor = FormatError; 700 return FormatError; 701}(); 702 703exports.FormatError = FormatError; 704 705var AbortException = function AbortExceptionClosure() { 706 function AbortException(msg) { 707 this.name = 'AbortException'; 708 this.message = msg; 709 } 710 711 AbortException.prototype = new Error(); 712 AbortException.constructor = AbortException; 713 return AbortException; 714}(); 715 716exports.AbortException = AbortException; 717var NullCharactersRegExp = /\x00/g; 718 719function removeNullCharacters(str) { 720 if (typeof str !== 'string') { 721 warn('The argument for removeNullCharacters must be a string.'); 722 return str; 723 } 724 725 return str.replace(NullCharactersRegExp, ''); 726} 727 728function bytesToString(bytes) { 729 assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); 730 var length = bytes.length; 731 var MAX_ARGUMENT_COUNT = 8192; 732 733 if (length < MAX_ARGUMENT_COUNT) { 734 return String.fromCharCode.apply(null, bytes); 735 } 736 737 var strBuf = []; 738 739 for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { 740 var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); 741 var chunk = bytes.subarray(i, chunkEnd); 742 strBuf.push(String.fromCharCode.apply(null, chunk)); 743 } 744 745 return strBuf.join(''); 746} 747 748function stringToBytes(str) { 749 assert(typeof str === 'string', 'Invalid argument for stringToBytes'); 750 var length = str.length; 751 var bytes = new Uint8Array(length); 752 753 for (var i = 0; i < length; ++i) { 754 bytes[i] = str.charCodeAt(i) & 0xFF; 755 } 756 757 return bytes; 758} 759 760function arrayByteLength(arr) { 761 if (arr.length !== undefined) { 762 return arr.length; 763 } 764 765 assert(arr.byteLength !== undefined); 766 return arr.byteLength; 767} 768 769function arraysToBytes(arr) { 770 if (arr.length === 1 && arr[0] instanceof Uint8Array) { 771 return arr[0]; 772 } 773 774 var resultLength = 0; 775 var i, 776 ii = arr.length; 777 var item, itemLength; 778 779 for (i = 0; i < ii; i++) { 780 item = arr[i]; 781 itemLength = arrayByteLength(item); 782 resultLength += itemLength; 783 } 784 785 var pos = 0; 786 var data = new Uint8Array(resultLength); 787 788 for (i = 0; i < ii; i++) { 789 item = arr[i]; 790 791 if (!(item instanceof Uint8Array)) { 792 if (typeof item === 'string') { 793 item = stringToBytes(item); 794 } else { 795 item = new Uint8Array(item); 796 } 797 } 798 799 itemLength = item.byteLength; 800 data.set(item, pos); 801 pos += itemLength; 802 } 803 804 return data; 805} 806 807function string32(value) { 808 return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); 809} 810 811function log2(x) { 812 if (x <= 0) { 813 return 0; 814 } 815 816 return Math.ceil(Math.log2(x)); 817} 818 819function readInt8(data, start) { 820 return data[start] << 24 >> 24; 821} 822 823function readUint16(data, offset) { 824 return data[offset] << 8 | data[offset + 1]; 825} 826 827function readUint32(data, offset) { 828 return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; 829} 830 831function isLittleEndian() { 832 var buffer8 = new Uint8Array(4); 833 buffer8[0] = 1; 834 var view32 = new Uint32Array(buffer8.buffer, 0, 1); 835 return view32[0] === 1; 836} 837 838function isEvalSupported() { 839 try { 840 new Function(''); 841 return true; 842 } catch (e) { 843 return false; 844 } 845} 846 847var Util = function UtilClosure() { 848 function Util() {} 849 850 var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; 851 852 Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { 853 rgbBuf[1] = r; 854 rgbBuf[3] = g; 855 rgbBuf[5] = b; 856 return rgbBuf.join(''); 857 }; 858 859 Util.transform = function Util_transform(m1, m2) { 860 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]]; 861 }; 862 863 Util.applyTransform = function Util_applyTransform(p, m) { 864 var xt = p[0] * m[0] + p[1] * m[2] + m[4]; 865 var yt = p[0] * m[1] + p[1] * m[3] + m[5]; 866 return [xt, yt]; 867 }; 868 869 Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { 870 var d = m[0] * m[3] - m[1] * m[2]; 871 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; 872 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; 873 return [xt, yt]; 874 }; 875 876 Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { 877 var p1 = Util.applyTransform(r, m); 878 var p2 = Util.applyTransform(r.slice(2, 4), m); 879 var p3 = Util.applyTransform([r[0], r[3]], m); 880 var p4 = Util.applyTransform([r[2], r[1]], m); 881 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])]; 882 }; 883 884 Util.inverseTransform = function Util_inverseTransform(m) { 885 var d = m[0] * m[3] - m[1] * m[2]; 886 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]; 887 }; 888 889 Util.apply3dTransform = function Util_apply3dTransform(m, v) { 890 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]]; 891 }; 892 893 Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { 894 var transpose = [m[0], m[2], m[1], m[3]]; 895 var a = m[0] * transpose[0] + m[1] * transpose[2]; 896 var b = m[0] * transpose[1] + m[1] * transpose[3]; 897 var c = m[2] * transpose[0] + m[3] * transpose[2]; 898 var d = m[2] * transpose[1] + m[3] * transpose[3]; 899 var first = (a + d) / 2; 900 var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; 901 var sx = first + second || 1; 902 var sy = first - second || 1; 903 return [Math.sqrt(sx), Math.sqrt(sy)]; 904 }; 905 906 Util.normalizeRect = function Util_normalizeRect(rect) { 907 var r = rect.slice(0); 908 909 if (rect[0] > rect[2]) { 910 r[0] = rect[2]; 911 r[2] = rect[0]; 912 } 913 914 if (rect[1] > rect[3]) { 915 r[1] = rect[3]; 916 r[3] = rect[1]; 917 } 918 919 return r; 920 }; 921 922 Util.intersect = function Util_intersect(rect1, rect2) { 923 function compare(a, b) { 924 return a - b; 925 } 926 927 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), 928 orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), 929 result = []; 930 rect1 = Util.normalizeRect(rect1); 931 rect2 = Util.normalizeRect(rect2); 932 933 if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { 934 result[0] = orderedX[1]; 935 result[2] = orderedX[2]; 936 } else { 937 return false; 938 } 939 940 if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { 941 result[1] = orderedY[1]; 942 result[3] = orderedY[2]; 943 } else { 944 return false; 945 } 946 947 return result; 948 }; 949 950 return Util; 951}(); 952 953exports.Util = Util; 954var 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]; 955 956function stringToPDFString(str) { 957 var i, 958 n = str.length, 959 strBuf = []; 960 961 if (str[0] === '\xFE' && str[1] === '\xFF') { 962 for (i = 2; i < n; i += 2) { 963 strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); 964 } 965 } else { 966 for (i = 0; i < n; ++i) { 967 var code = PDFStringTranslateTable[str.charCodeAt(i)]; 968 strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); 969 } 970 } 971 972 return strBuf.join(''); 973} 974 975function stringToUTF8String(str) { 976 return decodeURIComponent(escape(str)); 977} 978 979function utf8StringToString(str) { 980 return unescape(encodeURIComponent(str)); 981} 982 983function isEmptyObj(obj) { 984 for (var key in obj) { 985 return false; 986 } 987 988 return true; 989} 990 991function isBool(v) { 992 return typeof v === 'boolean'; 993} 994 995function isNum(v) { 996 return typeof v === 'number'; 997} 998 999function isString(v) { 1000 return typeof v === 'string'; 1001} 1002 1003function isArrayBuffer(v) { 1004 return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; 1005} 1006 1007function isArrayEqual(arr1, arr2) { 1008 if (arr1.length !== arr2.length) { 1009 return false; 1010 } 1011 1012 return arr1.every(function (element, index) { 1013 return element === arr2[index]; 1014 }); 1015} 1016 1017function isSpace(ch) { 1018 return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; 1019} 1020 1021function createPromiseCapability() { 1022 var capability = Object.create(null); 1023 var isSettled = false; 1024 Object.defineProperty(capability, 'settled', { 1025 get: function get() { 1026 return isSettled; 1027 } 1028 }); 1029 capability.promise = new Promise(function (resolve, reject) { 1030 capability.resolve = function (data) { 1031 isSettled = true; 1032 resolve(data); 1033 }; 1034 1035 capability.reject = function (reason) { 1036 isSettled = true; 1037 reject(reason); 1038 }; 1039 }); 1040 return capability; 1041} 1042 1043var createObjectURL = function createObjectURLClosure() { 1044 var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 1045 return function createObjectURL(data, contentType) { 1046 var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 1047 1048 if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { 1049 var blob = new Blob([data], { 1050 type: contentType 1051 }); 1052 return _url_polyfill.URL.createObjectURL(blob); 1053 } 1054 1055 var buffer = 'data:' + contentType + ';base64,'; 1056 1057 for (var i = 0, ii = data.length; i < ii; i += 3) { 1058 var b1 = data[i] & 0xFF; 1059 var b2 = data[i + 1] & 0xFF; 1060 var b3 = data[i + 2] & 0xFF; 1061 var d1 = b1 >> 2, 1062 d2 = (b1 & 3) << 4 | b2 >> 4; 1063 var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; 1064 var d4 = i + 2 < ii ? b3 & 0x3F : 64; 1065 buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; 1066 } 1067 1068 return buffer; 1069 }; 1070}(); 1071 1072exports.createObjectURL = createObjectURL; 1073 1074/***/ }), 1075/* 2 */ 1076/***/ (function(module, exports, __w_pdfjs_require__) { 1077 1078"use strict"; 1079 1080 1081function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 1082 1083var globalScope = __w_pdfjs_require__(3); 1084 1085if (!globalScope._pdfjsCompatibilityChecked) { 1086 globalScope._pdfjsCompatibilityChecked = true; 1087 1088 var isNodeJS = __w_pdfjs_require__(4); 1089 1090 var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; 1091 1092 (function checkNodeBtoa() { 1093 if (globalScope.btoa || !isNodeJS()) { 1094 return; 1095 } 1096 1097 globalScope.btoa = function (chars) { 1098 return Buffer.from(chars, 'binary').toString('base64'); 1099 }; 1100 })(); 1101 1102 (function checkNodeAtob() { 1103 if (globalScope.atob || !isNodeJS()) { 1104 return; 1105 } 1106 1107 globalScope.atob = function (input) { 1108 return Buffer.from(input, 'base64').toString('binary'); 1109 }; 1110 })(); 1111 1112 (function checkChildNodeRemove() { 1113 if (!hasDOM) { 1114 return; 1115 } 1116 1117 if (typeof Element.prototype.remove !== 'undefined') { 1118 return; 1119 } 1120 1121 Element.prototype.remove = function () { 1122 if (this.parentNode) { 1123 this.parentNode.removeChild(this); 1124 } 1125 }; 1126 })(); 1127 1128 (function checkDOMTokenListAddRemove() { 1129 if (!hasDOM || isNodeJS()) { 1130 return; 1131 } 1132 1133 var div = document.createElement('div'); 1134 div.classList.add('testOne', 'testTwo'); 1135 1136 if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { 1137 return; 1138 } 1139 1140 var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; 1141 var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; 1142 1143 DOMTokenList.prototype.add = function () { 1144 for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { 1145 tokens[_key] = arguments[_key]; 1146 } 1147 1148 for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) { 1149 var token = _tokens[_i]; 1150 OriginalDOMTokenListAdd.call(this, token); 1151 } 1152 }; 1153 1154 DOMTokenList.prototype.remove = function () { 1155 for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 1156 tokens[_key2] = arguments[_key2]; 1157 } 1158 1159 for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) { 1160 var token = _tokens2[_i2]; 1161 OriginalDOMTokenListRemove.call(this, token); 1162 } 1163 }; 1164 })(); 1165 1166 (function checkDOMTokenListToggle() { 1167 if (!hasDOM || isNodeJS()) { 1168 return; 1169 } 1170 1171 var div = document.createElement('div'); 1172 1173 if (div.classList.toggle('test', 0) === false) { 1174 return; 1175 } 1176 1177 DOMTokenList.prototype.toggle = function (token) { 1178 var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); 1179 return this[force ? 'add' : 'remove'](token), force; 1180 }; 1181 })(); 1182 1183 (function checkStringStartsWith() { 1184 if (String.prototype.startsWith) { 1185 return; 1186 } 1187 1188 __w_pdfjs_require__(5); 1189 })(); 1190 1191 (function checkStringEndsWith() { 1192 if (String.prototype.endsWith) { 1193 return; 1194 } 1195 1196 __w_pdfjs_require__(36); 1197 })(); 1198 1199 (function checkStringIncludes() { 1200 if (String.prototype.includes) { 1201 return; 1202 } 1203 1204 __w_pdfjs_require__(38); 1205 })(); 1206 1207 (function checkArrayIncludes() { 1208 if (Array.prototype.includes) { 1209 return; 1210 } 1211 1212 __w_pdfjs_require__(40); 1213 })(); 1214 1215 (function checkArrayFrom() { 1216 if (Array.from) { 1217 return; 1218 } 1219 1220 __w_pdfjs_require__(47); 1221 })(); 1222 1223 (function checkObjectAssign() { 1224 if (Object.assign) { 1225 return; 1226 } 1227 1228 __w_pdfjs_require__(70); 1229 })(); 1230 1231 (function checkMathLog2() { 1232 if (Math.log2) { 1233 return; 1234 } 1235 1236 Math.log2 = __w_pdfjs_require__(75); 1237 })(); 1238 1239 (function checkNumberIsNaN() { 1240 if (Number.isNaN) { 1241 return; 1242 } 1243 1244 Number.isNaN = __w_pdfjs_require__(77); 1245 })(); 1246 1247 (function checkNumberIsInteger() { 1248 if (Number.isInteger) { 1249 return; 1250 } 1251 1252 Number.isInteger = __w_pdfjs_require__(79); 1253 })(); 1254 1255 (function checkPromise() { 1256 if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) { 1257 return; 1258 } 1259 1260 globalScope.Promise = __w_pdfjs_require__(82); 1261 })(); 1262 1263 (function checkWeakMap() { 1264 if (globalScope.WeakMap) { 1265 return; 1266 } 1267 1268 globalScope.WeakMap = __w_pdfjs_require__(102); 1269 })(); 1270 1271 (function checkWeakSet() { 1272 if (globalScope.WeakSet) { 1273 return; 1274 } 1275 1276 globalScope.WeakSet = __w_pdfjs_require__(119); 1277 })(); 1278 1279 (function checkStringCodePointAt() { 1280 if (String.codePointAt) { 1281 return; 1282 } 1283 1284 String.codePointAt = __w_pdfjs_require__(123); 1285 })(); 1286 1287 (function checkStringFromCodePoint() { 1288 if (String.fromCodePoint) { 1289 return; 1290 } 1291 1292 String.fromCodePoint = __w_pdfjs_require__(125); 1293 })(); 1294 1295 (function checkSymbol() { 1296 if (globalScope.Symbol) { 1297 return; 1298 } 1299 1300 __w_pdfjs_require__(127); 1301 })(); 1302 1303 (function checkStringPadStart() { 1304 if (String.prototype.padStart) { 1305 return; 1306 } 1307 1308 __w_pdfjs_require__(134); 1309 })(); 1310 1311 (function checkStringPadEnd() { 1312 if (String.prototype.padEnd) { 1313 return; 1314 } 1315 1316 __w_pdfjs_require__(138); 1317 })(); 1318 1319 (function checkObjectValues() { 1320 if (Object.values) { 1321 return; 1322 } 1323 1324 Object.values = __w_pdfjs_require__(140); 1325 })(); 1326} 1327 1328/***/ }), 1329/* 3 */ 1330/***/ (function(module, exports, __w_pdfjs_require__) { 1331 1332"use strict"; 1333 1334 1335module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; 1336 1337/***/ }), 1338/* 4 */ 1339/***/ (function(module, exports, __w_pdfjs_require__) { 1340 1341"use strict"; 1342 1343 1344function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 1345 1346module.exports = function isNodeJS() { 1347 return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron']; 1348}; 1349 1350/***/ }), 1351/* 5 */ 1352/***/ (function(module, exports, __w_pdfjs_require__) { 1353 1354"use strict"; 1355 1356 1357__w_pdfjs_require__(6); 1358 1359module.exports = __w_pdfjs_require__(9).String.startsWith; 1360 1361/***/ }), 1362/* 6 */ 1363/***/ (function(module, exports, __w_pdfjs_require__) { 1364 1365"use strict"; 1366 1367 1368var $export = __w_pdfjs_require__(7); 1369 1370var toLength = __w_pdfjs_require__(28); 1371 1372var context = __w_pdfjs_require__(30); 1373 1374var STARTS_WITH = 'startsWith'; 1375var $startsWith = ''[STARTS_WITH]; 1376$export($export.P + $export.F * __w_pdfjs_require__(35)(STARTS_WITH), 'String', { 1377 startsWith: function startsWith(searchString) { 1378 var that = context(this, searchString, STARTS_WITH); 1379 var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); 1380 var search = String(searchString); 1381 return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; 1382 } 1383}); 1384 1385/***/ }), 1386/* 7 */ 1387/***/ (function(module, exports, __w_pdfjs_require__) { 1388 1389"use strict"; 1390 1391 1392var global = __w_pdfjs_require__(8); 1393 1394var core = __w_pdfjs_require__(9); 1395 1396var hide = __w_pdfjs_require__(10); 1397 1398var redefine = __w_pdfjs_require__(20); 1399 1400var ctx = __w_pdfjs_require__(26); 1401 1402var PROTOTYPE = 'prototype'; 1403 1404var $export = function $export(type, name, source) { 1405 var IS_FORCED = type & $export.F; 1406 var IS_GLOBAL = type & $export.G; 1407 var IS_STATIC = type & $export.S; 1408 var IS_PROTO = type & $export.P; 1409 var IS_BIND = type & $export.B; 1410 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; 1411 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 1412 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); 1413 var key, own, out, exp; 1414 if (IS_GLOBAL) source = name; 1415 1416 for (key in source) { 1417 own = !IS_FORCED && target && target[key] !== undefined; 1418 out = (own ? target : source)[key]; 1419 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 1420 if (target) redefine(target, key, out, type & $export.U); 1421 if (exports[key] != out) hide(exports, key, exp); 1422 if (IS_PROTO && expProto[key] != out) expProto[key] = out; 1423 } 1424}; 1425 1426global.core = core; 1427$export.F = 1; 1428$export.G = 2; 1429$export.S = 4; 1430$export.P = 8; 1431$export.B = 16; 1432$export.W = 32; 1433$export.U = 64; 1434$export.R = 128; 1435module.exports = $export; 1436 1437/***/ }), 1438/* 8 */ 1439/***/ (function(module, exports, __w_pdfjs_require__) { 1440 1441"use strict"; 1442 1443 1444var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); 1445if (typeof __g == 'number') __g = global; 1446 1447/***/ }), 1448/* 9 */ 1449/***/ (function(module, exports, __w_pdfjs_require__) { 1450 1451"use strict"; 1452 1453 1454var core = module.exports = { 1455 version: '2.6.9' 1456}; 1457if (typeof __e == 'number') __e = core; 1458 1459/***/ }), 1460/* 10 */ 1461/***/ (function(module, exports, __w_pdfjs_require__) { 1462 1463"use strict"; 1464 1465 1466var dP = __w_pdfjs_require__(11); 1467 1468var createDesc = __w_pdfjs_require__(19); 1469 1470module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { 1471 return dP.f(object, key, createDesc(1, value)); 1472} : function (object, key, value) { 1473 object[key] = value; 1474 return object; 1475}; 1476 1477/***/ }), 1478/* 11 */ 1479/***/ (function(module, exports, __w_pdfjs_require__) { 1480 1481"use strict"; 1482 1483 1484var anObject = __w_pdfjs_require__(12); 1485 1486var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 1487 1488var toPrimitive = __w_pdfjs_require__(18); 1489 1490var dP = Object.defineProperty; 1491exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { 1492 anObject(O); 1493 P = toPrimitive(P, true); 1494 anObject(Attributes); 1495 if (IE8_DOM_DEFINE) try { 1496 return dP(O, P, Attributes); 1497 } catch (e) {} 1498 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 1499 if ('value' in Attributes) O[P] = Attributes.value; 1500 return O; 1501}; 1502 1503/***/ }), 1504/* 12 */ 1505/***/ (function(module, exports, __w_pdfjs_require__) { 1506 1507"use strict"; 1508 1509 1510var isObject = __w_pdfjs_require__(13); 1511 1512module.exports = function (it) { 1513 if (!isObject(it)) throw TypeError(it + ' is not an object!'); 1514 return it; 1515}; 1516 1517/***/ }), 1518/* 13 */ 1519/***/ (function(module, exports, __w_pdfjs_require__) { 1520 1521"use strict"; 1522 1523 1524function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 1525 1526module.exports = function (it) { 1527 return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; 1528}; 1529 1530/***/ }), 1531/* 14 */ 1532/***/ (function(module, exports, __w_pdfjs_require__) { 1533 1534"use strict"; 1535 1536 1537module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { 1538 return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { 1539 get: function get() { 1540 return 7; 1541 } 1542 }).a != 7; 1543}); 1544 1545/***/ }), 1546/* 15 */ 1547/***/ (function(module, exports, __w_pdfjs_require__) { 1548 1549"use strict"; 1550 1551 1552module.exports = !__w_pdfjs_require__(16)(function () { 1553 return Object.defineProperty({}, 'a', { 1554 get: function get() { 1555 return 7; 1556 } 1557 }).a != 7; 1558}); 1559 1560/***/ }), 1561/* 16 */ 1562/***/ (function(module, exports, __w_pdfjs_require__) { 1563 1564"use strict"; 1565 1566 1567module.exports = function (exec) { 1568 try { 1569 return !!exec(); 1570 } catch (e) { 1571 return true; 1572 } 1573}; 1574 1575/***/ }), 1576/* 17 */ 1577/***/ (function(module, exports, __w_pdfjs_require__) { 1578 1579"use strict"; 1580 1581 1582var isObject = __w_pdfjs_require__(13); 1583 1584var document = __w_pdfjs_require__(8).document; 1585 1586var is = isObject(document) && isObject(document.createElement); 1587 1588module.exports = function (it) { 1589 return is ? document.createElement(it) : {}; 1590}; 1591 1592/***/ }), 1593/* 18 */ 1594/***/ (function(module, exports, __w_pdfjs_require__) { 1595 1596"use strict"; 1597 1598 1599var isObject = __w_pdfjs_require__(13); 1600 1601module.exports = function (it, S) { 1602 if (!isObject(it)) return it; 1603 var fn, val; 1604 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1605 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 1606 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1607 throw TypeError("Can't convert object to primitive value"); 1608}; 1609 1610/***/ }), 1611/* 19 */ 1612/***/ (function(module, exports, __w_pdfjs_require__) { 1613 1614"use strict"; 1615 1616 1617module.exports = function (bitmap, value) { 1618 return { 1619 enumerable: !(bitmap & 1), 1620 configurable: !(bitmap & 2), 1621 writable: !(bitmap & 4), 1622 value: value 1623 }; 1624}; 1625 1626/***/ }), 1627/* 20 */ 1628/***/ (function(module, exports, __w_pdfjs_require__) { 1629 1630"use strict"; 1631 1632 1633var global = __w_pdfjs_require__(8); 1634 1635var hide = __w_pdfjs_require__(10); 1636 1637var has = __w_pdfjs_require__(21); 1638 1639var SRC = __w_pdfjs_require__(22)('src'); 1640 1641var $toString = __w_pdfjs_require__(23); 1642 1643var TO_STRING = 'toString'; 1644var TPL = ('' + $toString).split(TO_STRING); 1645 1646__w_pdfjs_require__(9).inspectSource = function (it) { 1647 return $toString.call(it); 1648}; 1649 1650(module.exports = function (O, key, val, safe) { 1651 var isFunction = typeof val == 'function'; 1652 if (isFunction) has(val, 'name') || hide(val, 'name', key); 1653 if (O[key] === val) return; 1654 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); 1655 1656 if (O === global) { 1657 O[key] = val; 1658 } else if (!safe) { 1659 delete O[key]; 1660 hide(O, key, val); 1661 } else if (O[key]) { 1662 O[key] = val; 1663 } else { 1664 hide(O, key, val); 1665 } 1666})(Function.prototype, TO_STRING, function toString() { 1667 return typeof this == 'function' && this[SRC] || $toString.call(this); 1668}); 1669 1670/***/ }), 1671/* 21 */ 1672/***/ (function(module, exports, __w_pdfjs_require__) { 1673 1674"use strict"; 1675 1676 1677var hasOwnProperty = {}.hasOwnProperty; 1678 1679module.exports = function (it, key) { 1680 return hasOwnProperty.call(it, key); 1681}; 1682 1683/***/ }), 1684/* 22 */ 1685/***/ (function(module, exports, __w_pdfjs_require__) { 1686 1687"use strict"; 1688 1689 1690var id = 0; 1691var px = Math.random(); 1692 1693module.exports = function (key) { 1694 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 1695}; 1696 1697/***/ }), 1698/* 23 */ 1699/***/ (function(module, exports, __w_pdfjs_require__) { 1700 1701"use strict"; 1702 1703 1704module.exports = __w_pdfjs_require__(24)('native-function-to-string', Function.toString); 1705 1706/***/ }), 1707/* 24 */ 1708/***/ (function(module, exports, __w_pdfjs_require__) { 1709 1710"use strict"; 1711 1712 1713var core = __w_pdfjs_require__(9); 1714 1715var global = __w_pdfjs_require__(8); 1716 1717var SHARED = '__core-js_shared__'; 1718var store = global[SHARED] || (global[SHARED] = {}); 1719(module.exports = function (key, value) { 1720 return store[key] || (store[key] = value !== undefined ? value : {}); 1721})('versions', []).push({ 1722 version: core.version, 1723 mode: __w_pdfjs_require__(25) ? 'pure' : 'global', 1724 copyright: '© 2019 Denis Pushkarev (zloirock.ru)' 1725}); 1726 1727/***/ }), 1728/* 25 */ 1729/***/ (function(module, exports, __w_pdfjs_require__) { 1730 1731"use strict"; 1732 1733 1734module.exports = false; 1735 1736/***/ }), 1737/* 26 */ 1738/***/ (function(module, exports, __w_pdfjs_require__) { 1739 1740"use strict"; 1741 1742 1743var aFunction = __w_pdfjs_require__(27); 1744 1745module.exports = function (fn, that, length) { 1746 aFunction(fn); 1747 if (that === undefined) return fn; 1748 1749 switch (length) { 1750 case 1: 1751 return function (a) { 1752 return fn.call(that, a); 1753 }; 1754 1755 case 2: 1756 return function (a, b) { 1757 return fn.call(that, a, b); 1758 }; 1759 1760 case 3: 1761 return function (a, b, c) { 1762 return fn.call(that, a, b, c); 1763 }; 1764 } 1765 1766 return function () { 1767 return fn.apply(that, arguments); 1768 }; 1769}; 1770 1771/***/ }), 1772/* 27 */ 1773/***/ (function(module, exports, __w_pdfjs_require__) { 1774 1775"use strict"; 1776 1777 1778module.exports = function (it) { 1779 if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 1780 return it; 1781}; 1782 1783/***/ }), 1784/* 28 */ 1785/***/ (function(module, exports, __w_pdfjs_require__) { 1786 1787"use strict"; 1788 1789 1790var toInteger = __w_pdfjs_require__(29); 1791 1792var min = Math.min; 1793 1794module.exports = function (it) { 1795 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; 1796}; 1797 1798/***/ }), 1799/* 29 */ 1800/***/ (function(module, exports, __w_pdfjs_require__) { 1801 1802"use strict"; 1803 1804 1805var ceil = Math.ceil; 1806var floor = Math.floor; 1807 1808module.exports = function (it) { 1809 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 1810}; 1811 1812/***/ }), 1813/* 30 */ 1814/***/ (function(module, exports, __w_pdfjs_require__) { 1815 1816"use strict"; 1817 1818 1819var isRegExp = __w_pdfjs_require__(31); 1820 1821var defined = __w_pdfjs_require__(34); 1822 1823module.exports = function (that, searchString, NAME) { 1824 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); 1825 return String(defined(that)); 1826}; 1827 1828/***/ }), 1829/* 31 */ 1830/***/ (function(module, exports, __w_pdfjs_require__) { 1831 1832"use strict"; 1833 1834 1835var isObject = __w_pdfjs_require__(13); 1836 1837var cof = __w_pdfjs_require__(32); 1838 1839var MATCH = __w_pdfjs_require__(33)('match'); 1840 1841module.exports = function (it) { 1842 var isRegExp; 1843 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); 1844}; 1845 1846/***/ }), 1847/* 32 */ 1848/***/ (function(module, exports, __w_pdfjs_require__) { 1849 1850"use strict"; 1851 1852 1853var toString = {}.toString; 1854 1855module.exports = function (it) { 1856 return toString.call(it).slice(8, -1); 1857}; 1858 1859/***/ }), 1860/* 33 */ 1861/***/ (function(module, exports, __w_pdfjs_require__) { 1862 1863"use strict"; 1864 1865 1866var store = __w_pdfjs_require__(24)('wks'); 1867 1868var uid = __w_pdfjs_require__(22); 1869 1870var _Symbol = __w_pdfjs_require__(8).Symbol; 1871 1872var USE_SYMBOL = typeof _Symbol == 'function'; 1873 1874var $exports = module.exports = function (name) { 1875 return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); 1876}; 1877 1878$exports.store = store; 1879 1880/***/ }), 1881/* 34 */ 1882/***/ (function(module, exports, __w_pdfjs_require__) { 1883 1884"use strict"; 1885 1886 1887module.exports = function (it) { 1888 if (it == undefined) throw TypeError("Can't call method on " + it); 1889 return it; 1890}; 1891 1892/***/ }), 1893/* 35 */ 1894/***/ (function(module, exports, __w_pdfjs_require__) { 1895 1896"use strict"; 1897 1898 1899var MATCH = __w_pdfjs_require__(33)('match'); 1900 1901module.exports = function (KEY) { 1902 var re = /./; 1903 1904 try { 1905 '/./'[KEY](re); 1906 } catch (e) { 1907 try { 1908 re[MATCH] = false; 1909 return !'/./'[KEY](re); 1910 } catch (f) {} 1911 } 1912 1913 return true; 1914}; 1915 1916/***/ }), 1917/* 36 */ 1918/***/ (function(module, exports, __w_pdfjs_require__) { 1919 1920"use strict"; 1921 1922 1923__w_pdfjs_require__(37); 1924 1925module.exports = __w_pdfjs_require__(9).String.endsWith; 1926 1927/***/ }), 1928/* 37 */ 1929/***/ (function(module, exports, __w_pdfjs_require__) { 1930 1931"use strict"; 1932 1933 1934var $export = __w_pdfjs_require__(7); 1935 1936var toLength = __w_pdfjs_require__(28); 1937 1938var context = __w_pdfjs_require__(30); 1939 1940var ENDS_WITH = 'endsWith'; 1941var $endsWith = ''[ENDS_WITH]; 1942$export($export.P + $export.F * __w_pdfjs_require__(35)(ENDS_WITH), 'String', { 1943 endsWith: function endsWith(searchString) { 1944 var that = context(this, searchString, ENDS_WITH); 1945 var endPosition = arguments.length > 1 ? arguments[1] : undefined; 1946 var len = toLength(that.length); 1947 var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); 1948 var search = String(searchString); 1949 return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; 1950 } 1951}); 1952 1953/***/ }), 1954/* 38 */ 1955/***/ (function(module, exports, __w_pdfjs_require__) { 1956 1957"use strict"; 1958 1959 1960__w_pdfjs_require__(39); 1961 1962module.exports = __w_pdfjs_require__(9).String.includes; 1963 1964/***/ }), 1965/* 39 */ 1966/***/ (function(module, exports, __w_pdfjs_require__) { 1967 1968"use strict"; 1969 1970 1971var $export = __w_pdfjs_require__(7); 1972 1973var context = __w_pdfjs_require__(30); 1974 1975var INCLUDES = 'includes'; 1976$export($export.P + $export.F * __w_pdfjs_require__(35)(INCLUDES), 'String', { 1977 includes: function includes(searchString) { 1978 return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); 1979 } 1980}); 1981 1982/***/ }), 1983/* 40 */ 1984/***/ (function(module, exports, __w_pdfjs_require__) { 1985 1986"use strict"; 1987 1988 1989__w_pdfjs_require__(41); 1990 1991module.exports = __w_pdfjs_require__(9).Array.includes; 1992 1993/***/ }), 1994/* 41 */ 1995/***/ (function(module, exports, __w_pdfjs_require__) { 1996 1997"use strict"; 1998 1999 2000var $export = __w_pdfjs_require__(7); 2001 2002var $includes = __w_pdfjs_require__(42)(true); 2003 2004$export($export.P, 'Array', { 2005 includes: function includes(el) { 2006 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 2007 } 2008}); 2009 2010__w_pdfjs_require__(46)('includes'); 2011 2012/***/ }), 2013/* 42 */ 2014/***/ (function(module, exports, __w_pdfjs_require__) { 2015 2016"use strict"; 2017 2018 2019var toIObject = __w_pdfjs_require__(43); 2020 2021var toLength = __w_pdfjs_require__(28); 2022 2023var toAbsoluteIndex = __w_pdfjs_require__(45); 2024 2025module.exports = function (IS_INCLUDES) { 2026 return function ($this, el, fromIndex) { 2027 var O = toIObject($this); 2028 var length = toLength(O.length); 2029 var index = toAbsoluteIndex(fromIndex, length); 2030 var value; 2031 if (IS_INCLUDES && el != el) while (length > index) { 2032 value = O[index++]; 2033 if (value != value) return true; 2034 } else for (; length > index; index++) { 2035 if (IS_INCLUDES || index in O) { 2036 if (O[index] === el) return IS_INCLUDES || index || 0; 2037 } 2038 } 2039 return !IS_INCLUDES && -1; 2040 }; 2041}; 2042 2043/***/ }), 2044/* 43 */ 2045/***/ (function(module, exports, __w_pdfjs_require__) { 2046 2047"use strict"; 2048 2049 2050var IObject = __w_pdfjs_require__(44); 2051 2052var defined = __w_pdfjs_require__(34); 2053 2054module.exports = function (it) { 2055 return IObject(defined(it)); 2056}; 2057 2058/***/ }), 2059/* 44 */ 2060/***/ (function(module, exports, __w_pdfjs_require__) { 2061 2062"use strict"; 2063 2064 2065var cof = __w_pdfjs_require__(32); 2066 2067module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 2068 return cof(it) == 'String' ? it.split('') : Object(it); 2069}; 2070 2071/***/ }), 2072/* 45 */ 2073/***/ (function(module, exports, __w_pdfjs_require__) { 2074 2075"use strict"; 2076 2077 2078var toInteger = __w_pdfjs_require__(29); 2079 2080var max = Math.max; 2081var min = Math.min; 2082 2083module.exports = function (index, length) { 2084 index = toInteger(index); 2085 return index < 0 ? max(index + length, 0) : min(index, length); 2086}; 2087 2088/***/ }), 2089/* 46 */ 2090/***/ (function(module, exports, __w_pdfjs_require__) { 2091 2092"use strict"; 2093 2094 2095var UNSCOPABLES = __w_pdfjs_require__(33)('unscopables'); 2096 2097var ArrayProto = Array.prototype; 2098if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); 2099 2100module.exports = function (key) { 2101 ArrayProto[UNSCOPABLES][key] = true; 2102}; 2103 2104/***/ }), 2105/* 47 */ 2106/***/ (function(module, exports, __w_pdfjs_require__) { 2107 2108"use strict"; 2109 2110 2111__w_pdfjs_require__(48); 2112 2113__w_pdfjs_require__(63); 2114 2115module.exports = __w_pdfjs_require__(9).Array.from; 2116 2117/***/ }), 2118/* 48 */ 2119/***/ (function(module, exports, __w_pdfjs_require__) { 2120 2121"use strict"; 2122 2123 2124var $at = __w_pdfjs_require__(49)(true); 2125 2126__w_pdfjs_require__(50)(String, 'String', function (iterated) { 2127 this._t = String(iterated); 2128 this._i = 0; 2129}, function () { 2130 var O = this._t; 2131 var index = this._i; 2132 var point; 2133 if (index >= O.length) return { 2134 value: undefined, 2135 done: true 2136 }; 2137 point = $at(O, index); 2138 this._i += point.length; 2139 return { 2140 value: point, 2141 done: false 2142 }; 2143}); 2144 2145/***/ }), 2146/* 49 */ 2147/***/ (function(module, exports, __w_pdfjs_require__) { 2148 2149"use strict"; 2150 2151 2152var toInteger = __w_pdfjs_require__(29); 2153 2154var defined = __w_pdfjs_require__(34); 2155 2156module.exports = function (TO_STRING) { 2157 return function (that, pos) { 2158 var s = String(defined(that)); 2159 var i = toInteger(pos); 2160 var l = s.length; 2161 var a, b; 2162 if (i < 0 || i >= l) return TO_STRING ? '' : undefined; 2163 a = s.charCodeAt(i); 2164 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; 2165 }; 2166}; 2167 2168/***/ }), 2169/* 50 */ 2170/***/ (function(module, exports, __w_pdfjs_require__) { 2171 2172"use strict"; 2173 2174 2175var LIBRARY = __w_pdfjs_require__(25); 2176 2177var $export = __w_pdfjs_require__(7); 2178 2179var redefine = __w_pdfjs_require__(20); 2180 2181var hide = __w_pdfjs_require__(10); 2182 2183var Iterators = __w_pdfjs_require__(51); 2184 2185var $iterCreate = __w_pdfjs_require__(52); 2186 2187var setToStringTag = __w_pdfjs_require__(60); 2188 2189var getPrototypeOf = __w_pdfjs_require__(61); 2190 2191var ITERATOR = __w_pdfjs_require__(33)('iterator'); 2192 2193var BUGGY = !([].keys && 'next' in [].keys()); 2194var FF_ITERATOR = '@@iterator'; 2195var KEYS = 'keys'; 2196var VALUES = 'values'; 2197 2198var returnThis = function returnThis() { 2199 return this; 2200}; 2201 2202module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 2203 $iterCreate(Constructor, NAME, next); 2204 2205 var getMethod = function getMethod(kind) { 2206 if (!BUGGY && kind in proto) return proto[kind]; 2207 2208 switch (kind) { 2209 case KEYS: 2210 return function keys() { 2211 return new Constructor(this, kind); 2212 }; 2213 2214 case VALUES: 2215 return function values() { 2216 return new Constructor(this, kind); 2217 }; 2218 } 2219 2220 return function entries() { 2221 return new Constructor(this, kind); 2222 }; 2223 }; 2224 2225 var TAG = NAME + ' Iterator'; 2226 var DEF_VALUES = DEFAULT == VALUES; 2227 var VALUES_BUG = false; 2228 var proto = Base.prototype; 2229 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 2230 var $default = $native || getMethod(DEFAULT); 2231 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 2232 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 2233 var methods, key, IteratorPrototype; 2234 2235 if ($anyNative) { 2236 IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 2237 2238 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 2239 setToStringTag(IteratorPrototype, TAG, true); 2240 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); 2241 } 2242 } 2243 2244 if (DEF_VALUES && $native && $native.name !== VALUES) { 2245 VALUES_BUG = true; 2246 2247 $default = function values() { 2248 return $native.call(this); 2249 }; 2250 } 2251 2252 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 2253 hide(proto, ITERATOR, $default); 2254 } 2255 2256 Iterators[NAME] = $default; 2257 Iterators[TAG] = returnThis; 2258 2259 if (DEFAULT) { 2260 methods = { 2261 values: DEF_VALUES ? $default : getMethod(VALUES), 2262 keys: IS_SET ? $default : getMethod(KEYS), 2263 entries: $entries 2264 }; 2265 if (FORCED) for (key in methods) { 2266 if (!(key in proto)) redefine(proto, key, methods[key]); 2267 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 2268 } 2269 2270 return methods; 2271}; 2272 2273/***/ }), 2274/* 51 */ 2275/***/ (function(module, exports, __w_pdfjs_require__) { 2276 2277"use strict"; 2278 2279 2280module.exports = {}; 2281 2282/***/ }), 2283/* 52 */ 2284/***/ (function(module, exports, __w_pdfjs_require__) { 2285 2286"use strict"; 2287 2288 2289var create = __w_pdfjs_require__(53); 2290 2291var descriptor = __w_pdfjs_require__(19); 2292 2293var setToStringTag = __w_pdfjs_require__(60); 2294 2295var IteratorPrototype = {}; 2296 2297__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(33)('iterator'), function () { 2298 return this; 2299}); 2300 2301module.exports = function (Constructor, NAME, next) { 2302 Constructor.prototype = create(IteratorPrototype, { 2303 next: descriptor(1, next) 2304 }); 2305 setToStringTag(Constructor, NAME + ' Iterator'); 2306}; 2307 2308/***/ }), 2309/* 53 */ 2310/***/ (function(module, exports, __w_pdfjs_require__) { 2311 2312"use strict"; 2313 2314 2315var anObject = __w_pdfjs_require__(12); 2316 2317var dPs = __w_pdfjs_require__(54); 2318 2319var enumBugKeys = __w_pdfjs_require__(58); 2320 2321var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); 2322 2323var Empty = function Empty() {}; 2324 2325var PROTOTYPE = 'prototype'; 2326 2327var _createDict = function createDict() { 2328 var iframe = __w_pdfjs_require__(17)('iframe'); 2329 2330 var i = enumBugKeys.length; 2331 var lt = '<'; 2332 var gt = '>'; 2333 var iframeDocument; 2334 iframe.style.display = 'none'; 2335 2336 __w_pdfjs_require__(59).appendChild(iframe); 2337 2338 iframe.src = 'javascript:'; 2339 iframeDocument = iframe.contentWindow.document; 2340 iframeDocument.open(); 2341 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 2342 iframeDocument.close(); 2343 _createDict = iframeDocument.F; 2344 2345 while (i--) { 2346 delete _createDict[PROTOTYPE][enumBugKeys[i]]; 2347 } 2348 2349 return _createDict(); 2350}; 2351 2352module.exports = Object.create || function create(O, Properties) { 2353 var result; 2354 2355 if (O !== null) { 2356 Empty[PROTOTYPE] = anObject(O); 2357 result = new Empty(); 2358 Empty[PROTOTYPE] = null; 2359 result[IE_PROTO] = O; 2360 } else result = _createDict(); 2361 2362 return Properties === undefined ? result : dPs(result, Properties); 2363}; 2364 2365/***/ }), 2366/* 54 */ 2367/***/ (function(module, exports, __w_pdfjs_require__) { 2368 2369"use strict"; 2370 2371 2372var dP = __w_pdfjs_require__(11); 2373 2374var anObject = __w_pdfjs_require__(12); 2375 2376var getKeys = __w_pdfjs_require__(55); 2377 2378module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { 2379 anObject(O); 2380 var keys = getKeys(Properties); 2381 var length = keys.length; 2382 var i = 0; 2383 var P; 2384 2385 while (length > i) { 2386 dP.f(O, P = keys[i++], Properties[P]); 2387 } 2388 2389 return O; 2390}; 2391 2392/***/ }), 2393/* 55 */ 2394/***/ (function(module, exports, __w_pdfjs_require__) { 2395 2396"use strict"; 2397 2398 2399var $keys = __w_pdfjs_require__(56); 2400 2401var enumBugKeys = __w_pdfjs_require__(58); 2402 2403module.exports = Object.keys || function keys(O) { 2404 return $keys(O, enumBugKeys); 2405}; 2406 2407/***/ }), 2408/* 56 */ 2409/***/ (function(module, exports, __w_pdfjs_require__) { 2410 2411"use strict"; 2412 2413 2414var has = __w_pdfjs_require__(21); 2415 2416var toIObject = __w_pdfjs_require__(43); 2417 2418var arrayIndexOf = __w_pdfjs_require__(42)(false); 2419 2420var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); 2421 2422module.exports = function (object, names) { 2423 var O = toIObject(object); 2424 var i = 0; 2425 var result = []; 2426 var key; 2427 2428 for (key in O) { 2429 if (key != IE_PROTO) has(O, key) && result.push(key); 2430 } 2431 2432 while (names.length > i) { 2433 if (has(O, key = names[i++])) { 2434 ~arrayIndexOf(result, key) || result.push(key); 2435 } 2436 } 2437 2438 return result; 2439}; 2440 2441/***/ }), 2442/* 57 */ 2443/***/ (function(module, exports, __w_pdfjs_require__) { 2444 2445"use strict"; 2446 2447 2448var shared = __w_pdfjs_require__(24)('keys'); 2449 2450var uid = __w_pdfjs_require__(22); 2451 2452module.exports = function (key) { 2453 return shared[key] || (shared[key] = uid(key)); 2454}; 2455 2456/***/ }), 2457/* 58 */ 2458/***/ (function(module, exports, __w_pdfjs_require__) { 2459 2460"use strict"; 2461 2462 2463module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); 2464 2465/***/ }), 2466/* 59 */ 2467/***/ (function(module, exports, __w_pdfjs_require__) { 2468 2469"use strict"; 2470 2471 2472var document = __w_pdfjs_require__(8).document; 2473 2474module.exports = document && document.documentElement; 2475 2476/***/ }), 2477/* 60 */ 2478/***/ (function(module, exports, __w_pdfjs_require__) { 2479 2480"use strict"; 2481 2482 2483var def = __w_pdfjs_require__(11).f; 2484 2485var has = __w_pdfjs_require__(21); 2486 2487var TAG = __w_pdfjs_require__(33)('toStringTag'); 2488 2489module.exports = function (it, tag, stat) { 2490 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { 2491 configurable: true, 2492 value: tag 2493 }); 2494}; 2495 2496/***/ }), 2497/* 61 */ 2498/***/ (function(module, exports, __w_pdfjs_require__) { 2499 2500"use strict"; 2501 2502 2503var has = __w_pdfjs_require__(21); 2504 2505var toObject = __w_pdfjs_require__(62); 2506 2507var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); 2508 2509var ObjectProto = Object.prototype; 2510 2511module.exports = Object.getPrototypeOf || function (O) { 2512 O = toObject(O); 2513 if (has(O, IE_PROTO)) return O[IE_PROTO]; 2514 2515 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 2516 return O.constructor.prototype; 2517 } 2518 2519 return O instanceof Object ? ObjectProto : null; 2520}; 2521 2522/***/ }), 2523/* 62 */ 2524/***/ (function(module, exports, __w_pdfjs_require__) { 2525 2526"use strict"; 2527 2528 2529var defined = __w_pdfjs_require__(34); 2530 2531module.exports = function (it) { 2532 return Object(defined(it)); 2533}; 2534 2535/***/ }), 2536/* 63 */ 2537/***/ (function(module, exports, __w_pdfjs_require__) { 2538 2539"use strict"; 2540 2541 2542var ctx = __w_pdfjs_require__(26); 2543 2544var $export = __w_pdfjs_require__(7); 2545 2546var toObject = __w_pdfjs_require__(62); 2547 2548var call = __w_pdfjs_require__(64); 2549 2550var isArrayIter = __w_pdfjs_require__(65); 2551 2552var toLength = __w_pdfjs_require__(28); 2553 2554var createProperty = __w_pdfjs_require__(66); 2555 2556var getIterFn = __w_pdfjs_require__(67); 2557 2558$export($export.S + $export.F * !__w_pdfjs_require__(69)(function (iter) { 2559 Array.from(iter); 2560}), 'Array', { 2561 from: function from(arrayLike) { 2562 var O = toObject(arrayLike); 2563 var C = typeof this == 'function' ? this : Array; 2564 var aLen = arguments.length; 2565 var mapfn = aLen > 1 ? arguments[1] : undefined; 2566 var mapping = mapfn !== undefined; 2567 var index = 0; 2568 var iterFn = getIterFn(O); 2569 var length, result, step, iterator; 2570 if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); 2571 2572 if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { 2573 for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { 2574 createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); 2575 } 2576 } else { 2577 length = toLength(O.length); 2578 2579 for (result = new C(length); length > index; index++) { 2580 createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); 2581 } 2582 } 2583 2584 result.length = index; 2585 return result; 2586 } 2587}); 2588 2589/***/ }), 2590/* 64 */ 2591/***/ (function(module, exports, __w_pdfjs_require__) { 2592 2593"use strict"; 2594 2595 2596var anObject = __w_pdfjs_require__(12); 2597 2598module.exports = function (iterator, fn, value, entries) { 2599 try { 2600 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 2601 } catch (e) { 2602 var ret = iterator['return']; 2603 if (ret !== undefined) anObject(ret.call(iterator)); 2604 throw e; 2605 } 2606}; 2607 2608/***/ }), 2609/* 65 */ 2610/***/ (function(module, exports, __w_pdfjs_require__) { 2611 2612"use strict"; 2613 2614 2615var Iterators = __w_pdfjs_require__(51); 2616 2617var ITERATOR = __w_pdfjs_require__(33)('iterator'); 2618 2619var ArrayProto = Array.prototype; 2620 2621module.exports = function (it) { 2622 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 2623}; 2624 2625/***/ }), 2626/* 66 */ 2627/***/ (function(module, exports, __w_pdfjs_require__) { 2628 2629"use strict"; 2630 2631 2632var $defineProperty = __w_pdfjs_require__(11); 2633 2634var createDesc = __w_pdfjs_require__(19); 2635 2636module.exports = function (object, index, value) { 2637 if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; 2638}; 2639 2640/***/ }), 2641/* 67 */ 2642/***/ (function(module, exports, __w_pdfjs_require__) { 2643 2644"use strict"; 2645 2646 2647var classof = __w_pdfjs_require__(68); 2648 2649var ITERATOR = __w_pdfjs_require__(33)('iterator'); 2650 2651var Iterators = __w_pdfjs_require__(51); 2652 2653module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { 2654 if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; 2655}; 2656 2657/***/ }), 2658/* 68 */ 2659/***/ (function(module, exports, __w_pdfjs_require__) { 2660 2661"use strict"; 2662 2663 2664var cof = __w_pdfjs_require__(32); 2665 2666var TAG = __w_pdfjs_require__(33)('toStringTag'); 2667 2668var ARG = cof(function () { 2669 return arguments; 2670}()) == 'Arguments'; 2671 2672var tryGet = function tryGet(it, key) { 2673 try { 2674 return it[key]; 2675 } catch (e) {} 2676}; 2677 2678module.exports = function (it) { 2679 var O, T, B; 2680 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; 2681}; 2682 2683/***/ }), 2684/* 69 */ 2685/***/ (function(module, exports, __w_pdfjs_require__) { 2686 2687"use strict"; 2688 2689 2690var ITERATOR = __w_pdfjs_require__(33)('iterator'); 2691 2692var SAFE_CLOSING = false; 2693 2694try { 2695 var riter = [7][ITERATOR](); 2696 2697 riter['return'] = function () { 2698 SAFE_CLOSING = true; 2699 }; 2700 2701 Array.from(riter, function () { 2702 throw 2; 2703 }); 2704} catch (e) {} 2705 2706module.exports = function (exec, skipClosing) { 2707 if (!skipClosing && !SAFE_CLOSING) return false; 2708 var safe = false; 2709 2710 try { 2711 var arr = [7]; 2712 var iter = arr[ITERATOR](); 2713 2714 iter.next = function () { 2715 return { 2716 done: safe = true 2717 }; 2718 }; 2719 2720 arr[ITERATOR] = function () { 2721 return iter; 2722 }; 2723 2724 exec(arr); 2725 } catch (e) {} 2726 2727 return safe; 2728}; 2729 2730/***/ }), 2731/* 70 */ 2732/***/ (function(module, exports, __w_pdfjs_require__) { 2733 2734"use strict"; 2735 2736 2737__w_pdfjs_require__(71); 2738 2739module.exports = __w_pdfjs_require__(9).Object.assign; 2740 2741/***/ }), 2742/* 71 */ 2743/***/ (function(module, exports, __w_pdfjs_require__) { 2744 2745"use strict"; 2746 2747 2748var $export = __w_pdfjs_require__(7); 2749 2750$export($export.S + $export.F, 'Object', { 2751 assign: __w_pdfjs_require__(72) 2752}); 2753 2754/***/ }), 2755/* 72 */ 2756/***/ (function(module, exports, __w_pdfjs_require__) { 2757 2758"use strict"; 2759 2760 2761var DESCRIPTORS = __w_pdfjs_require__(15); 2762 2763var getKeys = __w_pdfjs_require__(55); 2764 2765var gOPS = __w_pdfjs_require__(73); 2766 2767var pIE = __w_pdfjs_require__(74); 2768 2769var toObject = __w_pdfjs_require__(62); 2770 2771var IObject = __w_pdfjs_require__(44); 2772 2773var $assign = Object.assign; 2774module.exports = !$assign || __w_pdfjs_require__(16)(function () { 2775 var A = {}; 2776 var B = {}; 2777 var S = Symbol(); 2778 var K = 'abcdefghijklmnopqrst'; 2779 A[S] = 7; 2780 K.split('').forEach(function (k) { 2781 B[k] = k; 2782 }); 2783 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 2784}) ? function assign(target, source) { 2785 var T = toObject(target); 2786 var aLen = arguments.length; 2787 var index = 1; 2788 var getSymbols = gOPS.f; 2789 var isEnum = pIE.f; 2790 2791 while (aLen > index) { 2792 var S = IObject(arguments[index++]); 2793 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); 2794 var length = keys.length; 2795 var j = 0; 2796 var key; 2797 2798 while (length > j) { 2799 key = keys[j++]; 2800 if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; 2801 } 2802 } 2803 2804 return T; 2805} : $assign; 2806 2807/***/ }), 2808/* 73 */ 2809/***/ (function(module, exports, __w_pdfjs_require__) { 2810 2811"use strict"; 2812 2813 2814exports.f = Object.getOwnPropertySymbols; 2815 2816/***/ }), 2817/* 74 */ 2818/***/ (function(module, exports, __w_pdfjs_require__) { 2819 2820"use strict"; 2821 2822 2823exports.f = {}.propertyIsEnumerable; 2824 2825/***/ }), 2826/* 75 */ 2827/***/ (function(module, exports, __w_pdfjs_require__) { 2828 2829"use strict"; 2830 2831 2832__w_pdfjs_require__(76); 2833 2834module.exports = __w_pdfjs_require__(9).Math.log2; 2835 2836/***/ }), 2837/* 76 */ 2838/***/ (function(module, exports, __w_pdfjs_require__) { 2839 2840"use strict"; 2841 2842 2843var $export = __w_pdfjs_require__(7); 2844 2845$export($export.S, 'Math', { 2846 log2: function log2(x) { 2847 return Math.log(x) / Math.LN2; 2848 } 2849}); 2850 2851/***/ }), 2852/* 77 */ 2853/***/ (function(module, exports, __w_pdfjs_require__) { 2854 2855"use strict"; 2856 2857 2858__w_pdfjs_require__(78); 2859 2860module.exports = __w_pdfjs_require__(9).Number.isNaN; 2861 2862/***/ }), 2863/* 78 */ 2864/***/ (function(module, exports, __w_pdfjs_require__) { 2865 2866"use strict"; 2867 2868 2869var $export = __w_pdfjs_require__(7); 2870 2871$export($export.S, 'Number', { 2872 isNaN: function isNaN(number) { 2873 return number != number; 2874 } 2875}); 2876 2877/***/ }), 2878/* 79 */ 2879/***/ (function(module, exports, __w_pdfjs_require__) { 2880 2881"use strict"; 2882 2883 2884__w_pdfjs_require__(80); 2885 2886module.exports = __w_pdfjs_require__(9).Number.isInteger; 2887 2888/***/ }), 2889/* 80 */ 2890/***/ (function(module, exports, __w_pdfjs_require__) { 2891 2892"use strict"; 2893 2894 2895var $export = __w_pdfjs_require__(7); 2896 2897$export($export.S, 'Number', { 2898 isInteger: __w_pdfjs_require__(81) 2899}); 2900 2901/***/ }), 2902/* 81 */ 2903/***/ (function(module, exports, __w_pdfjs_require__) { 2904 2905"use strict"; 2906 2907 2908var isObject = __w_pdfjs_require__(13); 2909 2910var floor = Math.floor; 2911 2912module.exports = function isInteger(it) { 2913 return !isObject(it) && isFinite(it) && floor(it) === it; 2914}; 2915 2916/***/ }), 2917/* 82 */ 2918/***/ (function(module, exports, __w_pdfjs_require__) { 2919 2920"use strict"; 2921 2922 2923__w_pdfjs_require__(83); 2924 2925__w_pdfjs_require__(48); 2926 2927__w_pdfjs_require__(84); 2928 2929__w_pdfjs_require__(87); 2930 2931__w_pdfjs_require__(100); 2932 2933__w_pdfjs_require__(101); 2934 2935module.exports = __w_pdfjs_require__(9).Promise; 2936 2937/***/ }), 2938/* 83 */ 2939/***/ (function(module, exports, __w_pdfjs_require__) { 2940 2941"use strict"; 2942 2943 2944var classof = __w_pdfjs_require__(68); 2945 2946var test = {}; 2947test[__w_pdfjs_require__(33)('toStringTag')] = 'z'; 2948 2949if (test + '' != '[object z]') { 2950 __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { 2951 return '[object ' + classof(this) + ']'; 2952 }, true); 2953} 2954 2955/***/ }), 2956/* 84 */ 2957/***/ (function(module, exports, __w_pdfjs_require__) { 2958 2959"use strict"; 2960 2961 2962var $iterators = __w_pdfjs_require__(85); 2963 2964var getKeys = __w_pdfjs_require__(55); 2965 2966var redefine = __w_pdfjs_require__(20); 2967 2968var global = __w_pdfjs_require__(8); 2969 2970var hide = __w_pdfjs_require__(10); 2971 2972var Iterators = __w_pdfjs_require__(51); 2973 2974var wks = __w_pdfjs_require__(33); 2975 2976var ITERATOR = wks('iterator'); 2977var TO_STRING_TAG = wks('toStringTag'); 2978var ArrayValues = Iterators.Array; 2979var DOMIterables = { 2980 CSSRuleList: true, 2981 CSSStyleDeclaration: false, 2982 CSSValueList: false, 2983 ClientRectList: false, 2984 DOMRectList: false, 2985 DOMStringList: false, 2986 DOMTokenList: true, 2987 DataTransferItemList: false, 2988 FileList: false, 2989 HTMLAllCollection: false, 2990 HTMLCollection: false, 2991 HTMLFormElement: false, 2992 HTMLSelectElement: false, 2993 MediaList: true, 2994 MimeTypeArray: false, 2995 NamedNodeMap: false, 2996 NodeList: true, 2997 PaintRequestList: false, 2998 Plugin: false, 2999 PluginArray: false, 3000 SVGLengthList: false, 3001 SVGNumberList: false, 3002 SVGPathSegList: false, 3003 SVGPointList: false, 3004 SVGStringList: false, 3005 SVGTransformList: false, 3006 SourceBufferList: false, 3007 StyleSheetList: true, 3008 TextTrackCueList: false, 3009 TextTrackList: false, 3010 TouchList: false 3011}; 3012 3013for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { 3014 var NAME = collections[i]; 3015 var explicit = DOMIterables[NAME]; 3016 var Collection = global[NAME]; 3017 var proto = Collection && Collection.prototype; 3018 var key; 3019 3020 if (proto) { 3021 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); 3022 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 3023 Iterators[NAME] = ArrayValues; 3024 if (explicit) for (key in $iterators) { 3025 if (!proto[key]) redefine(proto, key, $iterators[key], true); 3026 } 3027 } 3028} 3029 3030/***/ }), 3031/* 85 */ 3032/***/ (function(module, exports, __w_pdfjs_require__) { 3033 3034"use strict"; 3035 3036 3037var addToUnscopables = __w_pdfjs_require__(46); 3038 3039var step = __w_pdfjs_require__(86); 3040 3041var Iterators = __w_pdfjs_require__(51); 3042 3043var toIObject = __w_pdfjs_require__(43); 3044 3045module.exports = __w_pdfjs_require__(50)(Array, 'Array', function (iterated, kind) { 3046 this._t = toIObject(iterated); 3047 this._i = 0; 3048 this._k = kind; 3049}, function () { 3050 var O = this._t; 3051 var kind = this._k; 3052 var index = this._i++; 3053 3054 if (!O || index >= O.length) { 3055 this._t = undefined; 3056 return step(1); 3057 } 3058 3059 if (kind == 'keys') return step(0, index); 3060 if (kind == 'values') return step(0, O[index]); 3061 return step(0, [index, O[index]]); 3062}, 'values'); 3063Iterators.Arguments = Iterators.Array; 3064addToUnscopables('keys'); 3065addToUnscopables('values'); 3066addToUnscopables('entries'); 3067 3068/***/ }), 3069/* 86 */ 3070/***/ (function(module, exports, __w_pdfjs_require__) { 3071 3072"use strict"; 3073 3074 3075module.exports = function (done, value) { 3076 return { 3077 value: value, 3078 done: !!done 3079 }; 3080}; 3081 3082/***/ }), 3083/* 87 */ 3084/***/ (function(module, exports, __w_pdfjs_require__) { 3085 3086"use strict"; 3087 3088 3089var LIBRARY = __w_pdfjs_require__(25); 3090 3091var global = __w_pdfjs_require__(8); 3092 3093var ctx = __w_pdfjs_require__(26); 3094 3095var classof = __w_pdfjs_require__(68); 3096 3097var $export = __w_pdfjs_require__(7); 3098 3099var isObject = __w_pdfjs_require__(13); 3100 3101var aFunction = __w_pdfjs_require__(27); 3102 3103var anInstance = __w_pdfjs_require__(88); 3104 3105var forOf = __w_pdfjs_require__(89); 3106 3107var speciesConstructor = __w_pdfjs_require__(90); 3108 3109var task = __w_pdfjs_require__(91).set; 3110 3111var microtask = __w_pdfjs_require__(93)(); 3112 3113var newPromiseCapabilityModule = __w_pdfjs_require__(94); 3114 3115var perform = __w_pdfjs_require__(95); 3116 3117var userAgent = __w_pdfjs_require__(96); 3118 3119var promiseResolve = __w_pdfjs_require__(97); 3120 3121var PROMISE = 'Promise'; 3122var TypeError = global.TypeError; 3123var process = global.process; 3124var versions = process && process.versions; 3125var v8 = versions && versions.v8 || ''; 3126var $Promise = global[PROMISE]; 3127var isNode = classof(process) == 'process'; 3128 3129var empty = function empty() {}; 3130 3131var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; 3132var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; 3133var USE_NATIVE = !!function () { 3134 try { 3135 var promise = $Promise.resolve(1); 3136 3137 var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(33)('species')] = function (exec) { 3138 exec(empty, empty); 3139 }; 3140 3141 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; 3142 } catch (e) {} 3143}(); 3144 3145var isThenable = function isThenable(it) { 3146 var then; 3147 return isObject(it) && typeof (then = it.then) == 'function' ? then : false; 3148}; 3149 3150var notify = function notify(promise, isReject) { 3151 if (promise._n) return; 3152 promise._n = true; 3153 var chain = promise._c; 3154 microtask(function () { 3155 var value = promise._v; 3156 var ok = promise._s == 1; 3157 var i = 0; 3158 3159 var run = function run(reaction) { 3160 var handler = ok ? reaction.ok : reaction.fail; 3161 var resolve = reaction.resolve; 3162 var reject = reaction.reject; 3163 var domain = reaction.domain; 3164 var result, then, exited; 3165 3166 try { 3167 if (handler) { 3168 if (!ok) { 3169 if (promise._h == 2) onHandleUnhandled(promise); 3170 promise._h = 1; 3171 } 3172 3173 if (handler === true) result = value;else { 3174 if (domain) domain.enter(); 3175 result = handler(value); 3176 3177 if (domain) { 3178 domain.exit(); 3179 exited = true; 3180 } 3181 } 3182 3183 if (result === reaction.promise) { 3184 reject(TypeError('Promise-chain cycle')); 3185 } else if (then = isThenable(result)) { 3186 then.call(result, resolve, reject); 3187 } else resolve(result); 3188 } else reject(value); 3189 } catch (e) { 3190 if (domain && !exited) domain.exit(); 3191 reject(e); 3192 } 3193 }; 3194 3195 while (chain.length > i) { 3196 run(chain[i++]); 3197 } 3198 3199 promise._c = []; 3200 promise._n = false; 3201 if (isReject && !promise._h) onUnhandled(promise); 3202 }); 3203}; 3204 3205var onUnhandled = function onUnhandled(promise) { 3206 task.call(global, function () { 3207 var value = promise._v; 3208 var unhandled = isUnhandled(promise); 3209 var result, handler, console; 3210 3211 if (unhandled) { 3212 result = perform(function () { 3213 if (isNode) { 3214 process.emit('unhandledRejection', value, promise); 3215 } else if (handler = global.onunhandledrejection) { 3216 handler({ 3217 promise: promise, 3218 reason: value 3219 }); 3220 } else if ((console = global.console) && console.error) { 3221 console.error('Unhandled promise rejection', value); 3222 } 3223 }); 3224 promise._h = isNode || isUnhandled(promise) ? 2 : 1; 3225 } 3226 3227 promise._a = undefined; 3228 if (unhandled && result.e) throw result.v; 3229 }); 3230}; 3231 3232var isUnhandled = function isUnhandled(promise) { 3233 return promise._h !== 1 && (promise._a || promise._c).length === 0; 3234}; 3235 3236var onHandleUnhandled = function onHandleUnhandled(promise) { 3237 task.call(global, function () { 3238 var handler; 3239 3240 if (isNode) { 3241 process.emit('rejectionHandled', promise); 3242 } else if (handler = global.onrejectionhandled) { 3243 handler({ 3244 promise: promise, 3245 reason: promise._v 3246 }); 3247 } 3248 }); 3249}; 3250 3251var $reject = function $reject(value) { 3252 var promise = this; 3253 if (promise._d) return; 3254 promise._d = true; 3255 promise = promise._w || promise; 3256 promise._v = value; 3257 promise._s = 2; 3258 if (!promise._a) promise._a = promise._c.slice(); 3259 notify(promise, true); 3260}; 3261 3262var $resolve = function $resolve(value) { 3263 var promise = this; 3264 var then; 3265 if (promise._d) return; 3266 promise._d = true; 3267 promise = promise._w || promise; 3268 3269 try { 3270 if (promise === value) throw TypeError("Promise can't be resolved itself"); 3271 3272 if (then = isThenable(value)) { 3273 microtask(function () { 3274 var wrapper = { 3275 _w: promise, 3276 _d: false 3277 }; 3278 3279 try { 3280 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 3281 } catch (e) { 3282 $reject.call(wrapper, e); 3283 } 3284 }); 3285 } else { 3286 promise._v = value; 3287 promise._s = 1; 3288 notify(promise, false); 3289 } 3290 } catch (e) { 3291 $reject.call({ 3292 _w: promise, 3293 _d: false 3294 }, e); 3295 } 3296}; 3297 3298if (!USE_NATIVE) { 3299 $Promise = function Promise(executor) { 3300 anInstance(this, $Promise, PROMISE, '_h'); 3301 aFunction(executor); 3302 Internal.call(this); 3303 3304 try { 3305 executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 3306 } catch (err) { 3307 $reject.call(this, err); 3308 } 3309 }; 3310 3311 Internal = function Promise(executor) { 3312 this._c = []; 3313 this._a = undefined; 3314 this._s = 0; 3315 this._d = false; 3316 this._v = undefined; 3317 this._h = 0; 3318 this._n = false; 3319 }; 3320 3321 Internal.prototype = __w_pdfjs_require__(98)($Promise.prototype, { 3322 then: function then(onFulfilled, onRejected) { 3323 var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 3324 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 3325 reaction.fail = typeof onRejected == 'function' && onRejected; 3326 reaction.domain = isNode ? process.domain : undefined; 3327 3328 this._c.push(reaction); 3329 3330 if (this._a) this._a.push(reaction); 3331 if (this._s) notify(this, false); 3332 return reaction.promise; 3333 }, 3334 'catch': function _catch(onRejected) { 3335 return this.then(undefined, onRejected); 3336 } 3337 }); 3338 3339 OwnPromiseCapability = function OwnPromiseCapability() { 3340 var promise = new Internal(); 3341 this.promise = promise; 3342 this.resolve = ctx($resolve, promise, 1); 3343 this.reject = ctx($reject, promise, 1); 3344 }; 3345 3346 newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { 3347 return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); 3348 }; 3349} 3350 3351$export($export.G + $export.W + $export.F * !USE_NATIVE, { 3352 Promise: $Promise 3353}); 3354 3355__w_pdfjs_require__(60)($Promise, PROMISE); 3356 3357__w_pdfjs_require__(99)(PROMISE); 3358 3359Wrapper = __w_pdfjs_require__(9)[PROMISE]; 3360$export($export.S + $export.F * !USE_NATIVE, PROMISE, { 3361 reject: function reject(r) { 3362 var capability = newPromiseCapability(this); 3363 var $$reject = capability.reject; 3364 $$reject(r); 3365 return capability.promise; 3366 } 3367}); 3368$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 3369 resolve: function resolve(x) { 3370 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); 3371 } 3372}); 3373$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(69)(function (iter) { 3374 $Promise.all(iter)['catch'](empty); 3375})), PROMISE, { 3376 all: function all(iterable) { 3377 var C = this; 3378 var capability = newPromiseCapability(C); 3379 var resolve = capability.resolve; 3380 var reject = capability.reject; 3381 var result = perform(function () { 3382 var values = []; 3383 var index = 0; 3384 var remaining = 1; 3385 forOf(iterable, false, function (promise) { 3386 var $index = index++; 3387 var alreadyCalled = false; 3388 values.push(undefined); 3389 remaining++; 3390 C.resolve(promise).then(function (value) { 3391 if (alreadyCalled) return; 3392 alreadyCalled = true; 3393 values[$index] = value; 3394 --remaining || resolve(values); 3395 }, reject); 3396 }); 3397 --remaining || resolve(values); 3398 }); 3399 if (result.e) reject(result.v); 3400 return capability.promise; 3401 }, 3402 race: function race(iterable) { 3403 var C = this; 3404 var capability = newPromiseCapability(C); 3405 var reject = capability.reject; 3406 var result = perform(function () { 3407 forOf(iterable, false, function (promise) { 3408 C.resolve(promise).then(capability.resolve, reject); 3409 }); 3410 }); 3411 if (result.e) reject(result.v); 3412 return capability.promise; 3413 } 3414}); 3415 3416/***/ }), 3417/* 88 */ 3418/***/ (function(module, exports, __w_pdfjs_require__) { 3419 3420"use strict"; 3421 3422 3423module.exports = function (it, Constructor, name, forbiddenField) { 3424 if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { 3425 throw TypeError(name + ': incorrect invocation!'); 3426 } 3427 3428 return it; 3429}; 3430 3431/***/ }), 3432/* 89 */ 3433/***/ (function(module, exports, __w_pdfjs_require__) { 3434 3435"use strict"; 3436 3437 3438var ctx = __w_pdfjs_require__(26); 3439 3440var call = __w_pdfjs_require__(64); 3441 3442var isArrayIter = __w_pdfjs_require__(65); 3443 3444var anObject = __w_pdfjs_require__(12); 3445 3446var toLength = __w_pdfjs_require__(28); 3447 3448var getIterFn = __w_pdfjs_require__(67); 3449 3450var BREAK = {}; 3451var RETURN = {}; 3452 3453var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { 3454 var iterFn = ITERATOR ? function () { 3455 return iterable; 3456 } : getIterFn(iterable); 3457 var f = ctx(fn, that, entries ? 2 : 1); 3458 var index = 0; 3459 var length, step, iterator, result; 3460 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); 3461 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { 3462 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 3463 if (result === BREAK || result === RETURN) return result; 3464 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { 3465 result = call(iterator, f, step.value, entries); 3466 if (result === BREAK || result === RETURN) return result; 3467 } 3468}; 3469 3470_exports.BREAK = BREAK; 3471_exports.RETURN = RETURN; 3472 3473/***/ }), 3474/* 90 */ 3475/***/ (function(module, exports, __w_pdfjs_require__) { 3476 3477"use strict"; 3478 3479 3480var anObject = __w_pdfjs_require__(12); 3481 3482var aFunction = __w_pdfjs_require__(27); 3483 3484var SPECIES = __w_pdfjs_require__(33)('species'); 3485 3486module.exports = function (O, D) { 3487 var C = anObject(O).constructor; 3488 var S; 3489 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 3490}; 3491 3492/***/ }), 3493/* 91 */ 3494/***/ (function(module, exports, __w_pdfjs_require__) { 3495 3496"use strict"; 3497 3498 3499var ctx = __w_pdfjs_require__(26); 3500 3501var invoke = __w_pdfjs_require__(92); 3502 3503var html = __w_pdfjs_require__(59); 3504 3505var cel = __w_pdfjs_require__(17); 3506 3507var global = __w_pdfjs_require__(8); 3508 3509var process = global.process; 3510var setTask = global.setImmediate; 3511var clearTask = global.clearImmediate; 3512var MessageChannel = global.MessageChannel; 3513var Dispatch = global.Dispatch; 3514var counter = 0; 3515var queue = {}; 3516var ONREADYSTATECHANGE = 'onreadystatechange'; 3517var defer, channel, port; 3518 3519var run = function run() { 3520 var id = +this; 3521 3522 if (queue.hasOwnProperty(id)) { 3523 var fn = queue[id]; 3524 delete queue[id]; 3525 fn(); 3526 } 3527}; 3528 3529var listener = function listener(event) { 3530 run.call(event.data); 3531}; 3532 3533if (!setTask || !clearTask) { 3534 setTask = function setImmediate(fn) { 3535 var args = []; 3536 var i = 1; 3537 3538 while (arguments.length > i) { 3539 args.push(arguments[i++]); 3540 } 3541 3542 queue[++counter] = function () { 3543 invoke(typeof fn == 'function' ? fn : Function(fn), args); 3544 }; 3545 3546 defer(counter); 3547 return counter; 3548 }; 3549 3550 clearTask = function clearImmediate(id) { 3551 delete queue[id]; 3552 }; 3553 3554 if (__w_pdfjs_require__(32)(process) == 'process') { 3555 defer = function defer(id) { 3556 process.nextTick(ctx(run, id, 1)); 3557 }; 3558 } else if (Dispatch && Dispatch.now) { 3559 defer = function defer(id) { 3560 Dispatch.now(ctx(run, id, 1)); 3561 }; 3562 } else if (MessageChannel) { 3563 channel = new MessageChannel(); 3564 port = channel.port2; 3565 channel.port1.onmessage = listener; 3566 defer = ctx(port.postMessage, port, 1); 3567 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { 3568 defer = function defer(id) { 3569 global.postMessage(id + '', '*'); 3570 }; 3571 3572 global.addEventListener('message', listener, false); 3573 } else if (ONREADYSTATECHANGE in cel('script')) { 3574 defer = function defer(id) { 3575 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { 3576 html.removeChild(this); 3577 run.call(id); 3578 }; 3579 }; 3580 } else { 3581 defer = function defer(id) { 3582 setTimeout(ctx(run, id, 1), 0); 3583 }; 3584 } 3585} 3586 3587module.exports = { 3588 set: setTask, 3589 clear: clearTask 3590}; 3591 3592/***/ }), 3593/* 92 */ 3594/***/ (function(module, exports, __w_pdfjs_require__) { 3595 3596"use strict"; 3597 3598 3599module.exports = function (fn, args, that) { 3600 var un = that === undefined; 3601 3602 switch (args.length) { 3603 case 0: 3604 return un ? fn() : fn.call(that); 3605 3606 case 1: 3607 return un ? fn(args[0]) : fn.call(that, args[0]); 3608 3609 case 2: 3610 return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); 3611 3612 case 3: 3613 return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); 3614 3615 case 4: 3616 return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); 3617 } 3618 3619 return fn.apply(that, args); 3620}; 3621 3622/***/ }), 3623/* 93 */ 3624/***/ (function(module, exports, __w_pdfjs_require__) { 3625 3626"use strict"; 3627 3628 3629var global = __w_pdfjs_require__(8); 3630 3631var macrotask = __w_pdfjs_require__(91).set; 3632 3633var Observer = global.MutationObserver || global.WebKitMutationObserver; 3634var process = global.process; 3635var Promise = global.Promise; 3636var isNode = __w_pdfjs_require__(32)(process) == 'process'; 3637 3638module.exports = function () { 3639 var head, last, notify; 3640 3641 var flush = function flush() { 3642 var parent, fn; 3643 if (isNode && (parent = process.domain)) parent.exit(); 3644 3645 while (head) { 3646 fn = head.fn; 3647 head = head.next; 3648 3649 try { 3650 fn(); 3651 } catch (e) { 3652 if (head) notify();else last = undefined; 3653 throw e; 3654 } 3655 } 3656 3657 last = undefined; 3658 if (parent) parent.enter(); 3659 }; 3660 3661 if (isNode) { 3662 notify = function notify() { 3663 process.nextTick(flush); 3664 }; 3665 } else if (Observer && !(global.navigator && global.navigator.standalone)) { 3666 var toggle = true; 3667 var node = document.createTextNode(''); 3668 new Observer(flush).observe(node, { 3669 characterData: true 3670 }); 3671 3672 notify = function notify() { 3673 node.data = toggle = !toggle; 3674 }; 3675 } else if (Promise && Promise.resolve) { 3676 var promise = Promise.resolve(undefined); 3677 3678 notify = function notify() { 3679 promise.then(flush); 3680 }; 3681 } else { 3682 notify = function notify() { 3683 macrotask.call(global, flush); 3684 }; 3685 } 3686 3687 return function (fn) { 3688 var task = { 3689 fn: fn, 3690 next: undefined 3691 }; 3692 if (last) last.next = task; 3693 3694 if (!head) { 3695 head = task; 3696 notify(); 3697 } 3698 3699 last = task; 3700 }; 3701}; 3702 3703/***/ }), 3704/* 94 */ 3705/***/ (function(module, exports, __w_pdfjs_require__) { 3706 3707"use strict"; 3708 3709 3710var aFunction = __w_pdfjs_require__(27); 3711 3712function PromiseCapability(C) { 3713 var resolve, reject; 3714 this.promise = new C(function ($$resolve, $$reject) { 3715 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 3716 resolve = $$resolve; 3717 reject = $$reject; 3718 }); 3719 this.resolve = aFunction(resolve); 3720 this.reject = aFunction(reject); 3721} 3722 3723module.exports.f = function (C) { 3724 return new PromiseCapability(C); 3725}; 3726 3727/***/ }), 3728/* 95 */ 3729/***/ (function(module, exports, __w_pdfjs_require__) { 3730 3731"use strict"; 3732 3733 3734module.exports = function (exec) { 3735 try { 3736 return { 3737 e: false, 3738 v: exec() 3739 }; 3740 } catch (e) { 3741 return { 3742 e: true, 3743 v: e 3744 }; 3745 } 3746}; 3747 3748/***/ }), 3749/* 96 */ 3750/***/ (function(module, exports, __w_pdfjs_require__) { 3751 3752"use strict"; 3753 3754 3755var global = __w_pdfjs_require__(8); 3756 3757var navigator = global.navigator; 3758module.exports = navigator && navigator.userAgent || ''; 3759 3760/***/ }), 3761/* 97 */ 3762/***/ (function(module, exports, __w_pdfjs_require__) { 3763 3764"use strict"; 3765 3766 3767var anObject = __w_pdfjs_require__(12); 3768 3769var isObject = __w_pdfjs_require__(13); 3770 3771var newPromiseCapability = __w_pdfjs_require__(94); 3772 3773module.exports = function (C, x) { 3774 anObject(C); 3775 if (isObject(x) && x.constructor === C) return x; 3776 var promiseCapability = newPromiseCapability.f(C); 3777 var resolve = promiseCapability.resolve; 3778 resolve(x); 3779 return promiseCapability.promise; 3780}; 3781 3782/***/ }), 3783/* 98 */ 3784/***/ (function(module, exports, __w_pdfjs_require__) { 3785 3786"use strict"; 3787 3788 3789var redefine = __w_pdfjs_require__(20); 3790 3791module.exports = function (target, src, safe) { 3792 for (var key in src) { 3793 redefine(target, key, src[key], safe); 3794 } 3795 3796 return target; 3797}; 3798 3799/***/ }), 3800/* 99 */ 3801/***/ (function(module, exports, __w_pdfjs_require__) { 3802 3803"use strict"; 3804 3805 3806var global = __w_pdfjs_require__(8); 3807 3808var dP = __w_pdfjs_require__(11); 3809 3810var DESCRIPTORS = __w_pdfjs_require__(15); 3811 3812var SPECIES = __w_pdfjs_require__(33)('species'); 3813 3814module.exports = function (KEY) { 3815 var C = global[KEY]; 3816 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { 3817 configurable: true, 3818 get: function get() { 3819 return this; 3820 } 3821 }); 3822}; 3823 3824/***/ }), 3825/* 100 */ 3826/***/ (function(module, exports, __w_pdfjs_require__) { 3827 3828"use strict"; 3829 3830 3831var $export = __w_pdfjs_require__(7); 3832 3833var core = __w_pdfjs_require__(9); 3834 3835var global = __w_pdfjs_require__(8); 3836 3837var speciesConstructor = __w_pdfjs_require__(90); 3838 3839var promiseResolve = __w_pdfjs_require__(97); 3840 3841$export($export.P + $export.R, 'Promise', { 3842 'finally': function _finally(onFinally) { 3843 var C = speciesConstructor(this, core.Promise || global.Promise); 3844 var isFunction = typeof onFinally == 'function'; 3845 return this.then(isFunction ? function (x) { 3846 return promiseResolve(C, onFinally()).then(function () { 3847 return x; 3848 }); 3849 } : onFinally, isFunction ? function (e) { 3850 return promiseResolve(C, onFinally()).then(function () { 3851 throw e; 3852 }); 3853 } : onFinally); 3854 } 3855}); 3856 3857/***/ }), 3858/* 101 */ 3859/***/ (function(module, exports, __w_pdfjs_require__) { 3860 3861"use strict"; 3862 3863 3864var $export = __w_pdfjs_require__(7); 3865 3866var newPromiseCapability = __w_pdfjs_require__(94); 3867 3868var perform = __w_pdfjs_require__(95); 3869 3870$export($export.S, 'Promise', { 3871 'try': function _try(callbackfn) { 3872 var promiseCapability = newPromiseCapability.f(this); 3873 var result = perform(callbackfn); 3874 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); 3875 return promiseCapability.promise; 3876 } 3877}); 3878 3879/***/ }), 3880/* 102 */ 3881/***/ (function(module, exports, __w_pdfjs_require__) { 3882 3883"use strict"; 3884 3885 3886__w_pdfjs_require__(83); 3887 3888__w_pdfjs_require__(84); 3889 3890__w_pdfjs_require__(103); 3891 3892__w_pdfjs_require__(115); 3893 3894__w_pdfjs_require__(117); 3895 3896module.exports = __w_pdfjs_require__(9).WeakMap; 3897 3898/***/ }), 3899/* 103 */ 3900/***/ (function(module, exports, __w_pdfjs_require__) { 3901 3902"use strict"; 3903 3904 3905var global = __w_pdfjs_require__(8); 3906 3907var each = __w_pdfjs_require__(104)(0); 3908 3909var redefine = __w_pdfjs_require__(20); 3910 3911var meta = __w_pdfjs_require__(108); 3912 3913var assign = __w_pdfjs_require__(72); 3914 3915var weak = __w_pdfjs_require__(109); 3916 3917var isObject = __w_pdfjs_require__(13); 3918 3919var validate = __w_pdfjs_require__(110); 3920 3921var NATIVE_WEAK_MAP = __w_pdfjs_require__(110); 3922 3923var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; 3924var WEAK_MAP = 'WeakMap'; 3925var getWeak = meta.getWeak; 3926var isExtensible = Object.isExtensible; 3927var uncaughtFrozenStore = weak.ufstore; 3928var InternalMap; 3929 3930var wrapper = function wrapper(get) { 3931 return function WeakMap() { 3932 return get(this, arguments.length > 0 ? arguments[0] : undefined); 3933 }; 3934}; 3935 3936var methods = { 3937 get: function get(key) { 3938 if (isObject(key)) { 3939 var data = getWeak(key); 3940 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); 3941 return data ? data[this._i] : undefined; 3942 } 3943 }, 3944 set: function set(key, value) { 3945 return weak.def(validate(this, WEAK_MAP), key, value); 3946 } 3947}; 3948 3949var $WeakMap = module.exports = __w_pdfjs_require__(111)(WEAK_MAP, wrapper, methods, weak, true, true); 3950 3951if (NATIVE_WEAK_MAP && IS_IE11) { 3952 InternalMap = weak.getConstructor(wrapper, WEAK_MAP); 3953 assign(InternalMap.prototype, methods); 3954 meta.NEED = true; 3955 each(['delete', 'has', 'get', 'set'], function (key) { 3956 var proto = $WeakMap.prototype; 3957 var method = proto[key]; 3958 redefine(proto, key, function (a, b) { 3959 if (isObject(a) && !isExtensible(a)) { 3960 if (!this._f) this._f = new InternalMap(); 3961 3962 var result = this._f[key](a, b); 3963 3964 return key == 'set' ? this : result; 3965 } 3966 3967 return method.call(this, a, b); 3968 }); 3969 }); 3970} 3971 3972/***/ }), 3973/* 104 */ 3974/***/ (function(module, exports, __w_pdfjs_require__) { 3975 3976"use strict"; 3977 3978 3979var ctx = __w_pdfjs_require__(26); 3980 3981var IObject = __w_pdfjs_require__(44); 3982 3983var toObject = __w_pdfjs_require__(62); 3984 3985var toLength = __w_pdfjs_require__(28); 3986 3987var asc = __w_pdfjs_require__(105); 3988 3989module.exports = function (TYPE, $create) { 3990 var IS_MAP = TYPE == 1; 3991 var IS_FILTER = TYPE == 2; 3992 var IS_SOME = TYPE == 3; 3993 var IS_EVERY = TYPE == 4; 3994 var IS_FIND_INDEX = TYPE == 6; 3995 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 3996 var create = $create || asc; 3997 return function ($this, callbackfn, that) { 3998 var O = toObject($this); 3999 var self = IObject(O); 4000 var f = ctx(callbackfn, that, 3); 4001 var length = toLength(self.length); 4002 var index = 0; 4003 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; 4004 var val, res; 4005 4006 for (; length > index; index++) { 4007 if (NO_HOLES || index in self) { 4008 val = self[index]; 4009 res = f(val, index, O); 4010 4011 if (TYPE) { 4012 if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { 4013 case 3: 4014 return true; 4015 4016 case 5: 4017 return val; 4018 4019 case 6: 4020 return index; 4021 4022 case 2: 4023 result.push(val); 4024 } else if (IS_EVERY) return false; 4025 } 4026 } 4027 } 4028 4029 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; 4030 }; 4031}; 4032 4033/***/ }), 4034/* 105 */ 4035/***/ (function(module, exports, __w_pdfjs_require__) { 4036 4037"use strict"; 4038 4039 4040var speciesConstructor = __w_pdfjs_require__(106); 4041 4042module.exports = function (original, length) { 4043 return new (speciesConstructor(original))(length); 4044}; 4045 4046/***/ }), 4047/* 106 */ 4048/***/ (function(module, exports, __w_pdfjs_require__) { 4049 4050"use strict"; 4051 4052 4053var isObject = __w_pdfjs_require__(13); 4054 4055var isArray = __w_pdfjs_require__(107); 4056 4057var SPECIES = __w_pdfjs_require__(33)('species'); 4058 4059module.exports = function (original) { 4060 var C; 4061 4062 if (isArray(original)) { 4063 C = original.constructor; 4064 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 4065 4066 if (isObject(C)) { 4067 C = C[SPECIES]; 4068 if (C === null) C = undefined; 4069 } 4070 } 4071 4072 return C === undefined ? Array : C; 4073}; 4074 4075/***/ }), 4076/* 107 */ 4077/***/ (function(module, exports, __w_pdfjs_require__) { 4078 4079"use strict"; 4080 4081 4082var cof = __w_pdfjs_require__(32); 4083 4084module.exports = Array.isArray || function isArray(arg) { 4085 return cof(arg) == 'Array'; 4086}; 4087 4088/***/ }), 4089/* 108 */ 4090/***/ (function(module, exports, __w_pdfjs_require__) { 4091 4092"use strict"; 4093 4094 4095function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4096 4097var META = __w_pdfjs_require__(22)('meta'); 4098 4099var isObject = __w_pdfjs_require__(13); 4100 4101var has = __w_pdfjs_require__(21); 4102 4103var setDesc = __w_pdfjs_require__(11).f; 4104 4105var id = 0; 4106 4107var isExtensible = Object.isExtensible || function () { 4108 return true; 4109}; 4110 4111var FREEZE = !__w_pdfjs_require__(16)(function () { 4112 return isExtensible(Object.preventExtensions({})); 4113}); 4114 4115var setMeta = function setMeta(it) { 4116 setDesc(it, META, { 4117 value: { 4118 i: 'O' + ++id, 4119 w: {} 4120 } 4121 }); 4122}; 4123 4124var fastKey = function fastKey(it, create) { 4125 if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 4126 4127 if (!has(it, META)) { 4128 if (!isExtensible(it)) return 'F'; 4129 if (!create) return 'E'; 4130 setMeta(it); 4131 } 4132 4133 return it[META].i; 4134}; 4135 4136var getWeak = function getWeak(it, create) { 4137 if (!has(it, META)) { 4138 if (!isExtensible(it)) return true; 4139 if (!create) return false; 4140 setMeta(it); 4141 } 4142 4143 return it[META].w; 4144}; 4145 4146var onFreeze = function onFreeze(it) { 4147 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 4148 return it; 4149}; 4150 4151var meta = module.exports = { 4152 KEY: META, 4153 NEED: false, 4154 fastKey: fastKey, 4155 getWeak: getWeak, 4156 onFreeze: onFreeze 4157}; 4158 4159/***/ }), 4160/* 109 */ 4161/***/ (function(module, exports, __w_pdfjs_require__) { 4162 4163"use strict"; 4164 4165 4166var redefineAll = __w_pdfjs_require__(98); 4167 4168var getWeak = __w_pdfjs_require__(108).getWeak; 4169 4170var anObject = __w_pdfjs_require__(12); 4171 4172var isObject = __w_pdfjs_require__(13); 4173 4174var anInstance = __w_pdfjs_require__(88); 4175 4176var forOf = __w_pdfjs_require__(89); 4177 4178var createArrayMethod = __w_pdfjs_require__(104); 4179 4180var $has = __w_pdfjs_require__(21); 4181 4182var validate = __w_pdfjs_require__(110); 4183 4184var arrayFind = createArrayMethod(5); 4185var arrayFindIndex = createArrayMethod(6); 4186var id = 0; 4187 4188var uncaughtFrozenStore = function uncaughtFrozenStore(that) { 4189 return that._l || (that._l = new UncaughtFrozenStore()); 4190}; 4191 4192var UncaughtFrozenStore = function UncaughtFrozenStore() { 4193 this.a = []; 4194}; 4195 4196var findUncaughtFrozen = function findUncaughtFrozen(store, key) { 4197 return arrayFind(store.a, function (it) { 4198 return it[0] === key; 4199 }); 4200}; 4201 4202UncaughtFrozenStore.prototype = { 4203 get: function get(key) { 4204 var entry = findUncaughtFrozen(this, key); 4205 if (entry) return entry[1]; 4206 }, 4207 has: function has(key) { 4208 return !!findUncaughtFrozen(this, key); 4209 }, 4210 set: function set(key, value) { 4211 var entry = findUncaughtFrozen(this, key); 4212 if (entry) entry[1] = value;else this.a.push([key, value]); 4213 }, 4214 'delete': function _delete(key) { 4215 var index = arrayFindIndex(this.a, function (it) { 4216 return it[0] === key; 4217 }); 4218 if (~index) this.a.splice(index, 1); 4219 return !!~index; 4220 } 4221}; 4222module.exports = { 4223 getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { 4224 var C = wrapper(function (that, iterable) { 4225 anInstance(that, C, NAME, '_i'); 4226 that._t = NAME; 4227 that._i = id++; 4228 that._l = undefined; 4229 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 4230 }); 4231 redefineAll(C.prototype, { 4232 'delete': function _delete(key) { 4233 if (!isObject(key)) return false; 4234 var data = getWeak(key); 4235 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); 4236 return data && $has(data, this._i) && delete data[this._i]; 4237 }, 4238 has: function has(key) { 4239 if (!isObject(key)) return false; 4240 var data = getWeak(key); 4241 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); 4242 return data && $has(data, this._i); 4243 } 4244 }); 4245 return C; 4246 }, 4247 def: function def(that, key, value) { 4248 var data = getWeak(anObject(key), true); 4249 if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; 4250 return that; 4251 }, 4252 ufstore: uncaughtFrozenStore 4253}; 4254 4255/***/ }), 4256/* 110 */ 4257/***/ (function(module, exports, __w_pdfjs_require__) { 4258 4259"use strict"; 4260 4261 4262var isObject = __w_pdfjs_require__(13); 4263 4264module.exports = function (it, TYPE) { 4265 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); 4266 return it; 4267}; 4268 4269/***/ }), 4270/* 111 */ 4271/***/ (function(module, exports, __w_pdfjs_require__) { 4272 4273"use strict"; 4274 4275 4276var global = __w_pdfjs_require__(8); 4277 4278var $export = __w_pdfjs_require__(7); 4279 4280var redefine = __w_pdfjs_require__(20); 4281 4282var redefineAll = __w_pdfjs_require__(98); 4283 4284var meta = __w_pdfjs_require__(108); 4285 4286var forOf = __w_pdfjs_require__(89); 4287 4288var anInstance = __w_pdfjs_require__(88); 4289 4290var isObject = __w_pdfjs_require__(13); 4291 4292var fails = __w_pdfjs_require__(16); 4293 4294var $iterDetect = __w_pdfjs_require__(69); 4295 4296var setToStringTag = __w_pdfjs_require__(60); 4297 4298var inheritIfRequired = __w_pdfjs_require__(112); 4299 4300module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { 4301 var Base = global[NAME]; 4302 var C = Base; 4303 var ADDER = IS_MAP ? 'set' : 'add'; 4304 var proto = C && C.prototype; 4305 var O = {}; 4306 4307 var fixMethod = function fixMethod(KEY) { 4308 var fn = proto[KEY]; 4309 redefine(proto, KEY, KEY == 'delete' ? function (a) { 4310 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 4311 } : KEY == 'has' ? function has(a) { 4312 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 4313 } : KEY == 'get' ? function get(a) { 4314 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); 4315 } : KEY == 'add' ? function add(a) { 4316 fn.call(this, a === 0 ? 0 : a); 4317 return this; 4318 } : function set(a, b) { 4319 fn.call(this, a === 0 ? 0 : a, b); 4320 return this; 4321 }); 4322 }; 4323 4324 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { 4325 new C().entries().next(); 4326 }))) { 4327 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); 4328 redefineAll(C.prototype, methods); 4329 meta.NEED = true; 4330 } else { 4331 var instance = new C(); 4332 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; 4333 var THROWS_ON_PRIMITIVES = fails(function () { 4334 instance.has(1); 4335 }); 4336 var ACCEPT_ITERABLES = $iterDetect(function (iter) { 4337 new C(iter); 4338 }); 4339 var BUGGY_ZERO = !IS_WEAK && fails(function () { 4340 var $instance = new C(); 4341 var index = 5; 4342 4343 while (index--) { 4344 $instance[ADDER](index, index); 4345 } 4346 4347 return !$instance.has(-0); 4348 }); 4349 4350 if (!ACCEPT_ITERABLES) { 4351 C = wrapper(function (target, iterable) { 4352 anInstance(target, C, NAME); 4353 var that = inheritIfRequired(new Base(), target, C); 4354 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 4355 return that; 4356 }); 4357 C.prototype = proto; 4358 proto.constructor = C; 4359 } 4360 4361 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { 4362 fixMethod('delete'); 4363 fixMethod('has'); 4364 IS_MAP && fixMethod('get'); 4365 } 4366 4367 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); 4368 if (IS_WEAK && proto.clear) delete proto.clear; 4369 } 4370 4371 setToStringTag(C, NAME); 4372 O[NAME] = C; 4373 $export($export.G + $export.W + $export.F * (C != Base), O); 4374 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); 4375 return C; 4376}; 4377 4378/***/ }), 4379/* 112 */ 4380/***/ (function(module, exports, __w_pdfjs_require__) { 4381 4382"use strict"; 4383 4384 4385var isObject = __w_pdfjs_require__(13); 4386 4387var setPrototypeOf = __w_pdfjs_require__(113).set; 4388 4389module.exports = function (that, target, C) { 4390 var S = target.constructor; 4391 var P; 4392 4393 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { 4394 setPrototypeOf(that, P); 4395 } 4396 4397 return that; 4398}; 4399 4400/***/ }), 4401/* 113 */ 4402/***/ (function(module, exports, __w_pdfjs_require__) { 4403 4404"use strict"; 4405 4406 4407var isObject = __w_pdfjs_require__(13); 4408 4409var anObject = __w_pdfjs_require__(12); 4410 4411var check = function check(O, proto) { 4412 anObject(O); 4413 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 4414}; 4415 4416module.exports = { 4417 set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { 4418 try { 4419 set = __w_pdfjs_require__(26)(Function.call, __w_pdfjs_require__(114).f(Object.prototype, '__proto__').set, 2); 4420 set(test, []); 4421 buggy = !(test instanceof Array); 4422 } catch (e) { 4423 buggy = true; 4424 } 4425 4426 return function setPrototypeOf(O, proto) { 4427 check(O, proto); 4428 if (buggy) O.__proto__ = proto;else set(O, proto); 4429 return O; 4430 }; 4431 }({}, false) : undefined), 4432 check: check 4433}; 4434 4435/***/ }), 4436/* 114 */ 4437/***/ (function(module, exports, __w_pdfjs_require__) { 4438 4439"use strict"; 4440 4441 4442var pIE = __w_pdfjs_require__(74); 4443 4444var createDesc = __w_pdfjs_require__(19); 4445 4446var toIObject = __w_pdfjs_require__(43); 4447 4448var toPrimitive = __w_pdfjs_require__(18); 4449 4450var has = __w_pdfjs_require__(21); 4451 4452var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 4453 4454var gOPD = Object.getOwnPropertyDescriptor; 4455exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { 4456 O = toIObject(O); 4457 P = toPrimitive(P, true); 4458 if (IE8_DOM_DEFINE) try { 4459 return gOPD(O, P); 4460 } catch (e) {} 4461 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 4462}; 4463 4464/***/ }), 4465/* 115 */ 4466/***/ (function(module, exports, __w_pdfjs_require__) { 4467 4468"use strict"; 4469 4470 4471__w_pdfjs_require__(116)('WeakMap'); 4472 4473/***/ }), 4474/* 116 */ 4475/***/ (function(module, exports, __w_pdfjs_require__) { 4476 4477"use strict"; 4478 4479 4480var $export = __w_pdfjs_require__(7); 4481 4482module.exports = function (COLLECTION) { 4483 $export($export.S, COLLECTION, { 4484 of: function of() { 4485 var length = arguments.length; 4486 var A = new Array(length); 4487 4488 while (length--) { 4489 A[length] = arguments[length]; 4490 } 4491 4492 return new this(A); 4493 } 4494 }); 4495}; 4496 4497/***/ }), 4498/* 117 */ 4499/***/ (function(module, exports, __w_pdfjs_require__) { 4500 4501"use strict"; 4502 4503 4504__w_pdfjs_require__(118)('WeakMap'); 4505 4506/***/ }), 4507/* 118 */ 4508/***/ (function(module, exports, __w_pdfjs_require__) { 4509 4510"use strict"; 4511 4512 4513var $export = __w_pdfjs_require__(7); 4514 4515var aFunction = __w_pdfjs_require__(27); 4516 4517var ctx = __w_pdfjs_require__(26); 4518 4519var forOf = __w_pdfjs_require__(89); 4520 4521module.exports = function (COLLECTION) { 4522 $export($export.S, COLLECTION, { 4523 from: function from(source) { 4524 var mapFn = arguments[1]; 4525 var mapping, A, n, cb; 4526 aFunction(this); 4527 mapping = mapFn !== undefined; 4528 if (mapping) aFunction(mapFn); 4529 if (source == undefined) return new this(); 4530 A = []; 4531 4532 if (mapping) { 4533 n = 0; 4534 cb = ctx(mapFn, arguments[2], 2); 4535 forOf(source, false, function (nextItem) { 4536 A.push(cb(nextItem, n++)); 4537 }); 4538 } else { 4539 forOf(source, false, A.push, A); 4540 } 4541 4542 return new this(A); 4543 } 4544 }); 4545}; 4546 4547/***/ }), 4548/* 119 */ 4549/***/ (function(module, exports, __w_pdfjs_require__) { 4550 4551"use strict"; 4552 4553 4554__w_pdfjs_require__(83); 4555 4556__w_pdfjs_require__(84); 4557 4558__w_pdfjs_require__(120); 4559 4560__w_pdfjs_require__(121); 4561 4562__w_pdfjs_require__(122); 4563 4564module.exports = __w_pdfjs_require__(9).WeakSet; 4565 4566/***/ }), 4567/* 120 */ 4568/***/ (function(module, exports, __w_pdfjs_require__) { 4569 4570"use strict"; 4571 4572 4573var weak = __w_pdfjs_require__(109); 4574 4575var validate = __w_pdfjs_require__(110); 4576 4577var WEAK_SET = 'WeakSet'; 4578 4579__w_pdfjs_require__(111)(WEAK_SET, function (get) { 4580 return function WeakSet() { 4581 return get(this, arguments.length > 0 ? arguments[0] : undefined); 4582 }; 4583}, { 4584 add: function add(value) { 4585 return weak.def(validate(this, WEAK_SET), value, true); 4586 } 4587}, weak, false, true); 4588 4589/***/ }), 4590/* 121 */ 4591/***/ (function(module, exports, __w_pdfjs_require__) { 4592 4593"use strict"; 4594 4595 4596__w_pdfjs_require__(116)('WeakSet'); 4597 4598/***/ }), 4599/* 122 */ 4600/***/ (function(module, exports, __w_pdfjs_require__) { 4601 4602"use strict"; 4603 4604 4605__w_pdfjs_require__(118)('WeakSet'); 4606 4607/***/ }), 4608/* 123 */ 4609/***/ (function(module, exports, __w_pdfjs_require__) { 4610 4611"use strict"; 4612 4613 4614__w_pdfjs_require__(124); 4615 4616module.exports = __w_pdfjs_require__(9).String.codePointAt; 4617 4618/***/ }), 4619/* 124 */ 4620/***/ (function(module, exports, __w_pdfjs_require__) { 4621 4622"use strict"; 4623 4624 4625var $export = __w_pdfjs_require__(7); 4626 4627var $at = __w_pdfjs_require__(49)(false); 4628 4629$export($export.P, 'String', { 4630 codePointAt: function codePointAt(pos) { 4631 return $at(this, pos); 4632 } 4633}); 4634 4635/***/ }), 4636/* 125 */ 4637/***/ (function(module, exports, __w_pdfjs_require__) { 4638 4639"use strict"; 4640 4641 4642__w_pdfjs_require__(126); 4643 4644module.exports = __w_pdfjs_require__(9).String.fromCodePoint; 4645 4646/***/ }), 4647/* 126 */ 4648/***/ (function(module, exports, __w_pdfjs_require__) { 4649 4650"use strict"; 4651 4652 4653var $export = __w_pdfjs_require__(7); 4654 4655var toAbsoluteIndex = __w_pdfjs_require__(45); 4656 4657var fromCharCode = String.fromCharCode; 4658var $fromCodePoint = String.fromCodePoint; 4659$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { 4660 fromCodePoint: function fromCodePoint(x) { 4661 var res = []; 4662 var aLen = arguments.length; 4663 var i = 0; 4664 var code; 4665 4666 while (aLen > i) { 4667 code = +arguments[i++]; 4668 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); 4669 res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); 4670 } 4671 4672 return res.join(''); 4673 } 4674}); 4675 4676/***/ }), 4677/* 127 */ 4678/***/ (function(module, exports, __w_pdfjs_require__) { 4679 4680"use strict"; 4681 4682 4683__w_pdfjs_require__(128); 4684 4685__w_pdfjs_require__(83); 4686 4687module.exports = __w_pdfjs_require__(9).Symbol; 4688 4689/***/ }), 4690/* 128 */ 4691/***/ (function(module, exports, __w_pdfjs_require__) { 4692 4693"use strict"; 4694 4695 4696function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 4697 4698var global = __w_pdfjs_require__(8); 4699 4700var has = __w_pdfjs_require__(21); 4701 4702var DESCRIPTORS = __w_pdfjs_require__(15); 4703 4704var $export = __w_pdfjs_require__(7); 4705 4706var redefine = __w_pdfjs_require__(20); 4707 4708var META = __w_pdfjs_require__(108).KEY; 4709 4710var $fails = __w_pdfjs_require__(16); 4711 4712var shared = __w_pdfjs_require__(24); 4713 4714var setToStringTag = __w_pdfjs_require__(60); 4715 4716var uid = __w_pdfjs_require__(22); 4717 4718var wks = __w_pdfjs_require__(33); 4719 4720var wksExt = __w_pdfjs_require__(129); 4721 4722var wksDefine = __w_pdfjs_require__(130); 4723 4724var enumKeys = __w_pdfjs_require__(131); 4725 4726var isArray = __w_pdfjs_require__(107); 4727 4728var anObject = __w_pdfjs_require__(12); 4729 4730var isObject = __w_pdfjs_require__(13); 4731 4732var toObject = __w_pdfjs_require__(62); 4733 4734var toIObject = __w_pdfjs_require__(43); 4735 4736var toPrimitive = __w_pdfjs_require__(18); 4737 4738var createDesc = __w_pdfjs_require__(19); 4739 4740var _create = __w_pdfjs_require__(53); 4741 4742var gOPNExt = __w_pdfjs_require__(132); 4743 4744var $GOPD = __w_pdfjs_require__(114); 4745 4746var $GOPS = __w_pdfjs_require__(73); 4747 4748var $DP = __w_pdfjs_require__(11); 4749 4750var $keys = __w_pdfjs_require__(55); 4751 4752var gOPD = $GOPD.f; 4753var dP = $DP.f; 4754var gOPN = gOPNExt.f; 4755var $Symbol = global.Symbol; 4756var $JSON = global.JSON; 4757 4758var _stringify = $JSON && $JSON.stringify; 4759 4760var PROTOTYPE = 'prototype'; 4761var HIDDEN = wks('_hidden'); 4762var TO_PRIMITIVE = wks('toPrimitive'); 4763var isEnum = {}.propertyIsEnumerable; 4764var SymbolRegistry = shared('symbol-registry'); 4765var AllSymbols = shared('symbols'); 4766var OPSymbols = shared('op-symbols'); 4767var ObjectProto = Object[PROTOTYPE]; 4768var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; 4769var QObject = global.QObject; 4770var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 4771var setSymbolDesc = DESCRIPTORS && $fails(function () { 4772 return _create(dP({}, 'a', { 4773 get: function get() { 4774 return dP(this, 'a', { 4775 value: 7 4776 }).a; 4777 } 4778 })).a != 7; 4779}) ? function (it, key, D) { 4780 var protoDesc = gOPD(ObjectProto, key); 4781 if (protoDesc) delete ObjectProto[key]; 4782 dP(it, key, D); 4783 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 4784} : dP; 4785 4786var wrap = function wrap(tag) { 4787 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 4788 4789 sym._k = tag; 4790 return sym; 4791}; 4792 4793var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { 4794 return _typeof(it) == 'symbol'; 4795} : function (it) { 4796 return it instanceof $Symbol; 4797}; 4798 4799var $defineProperty = function defineProperty(it, key, D) { 4800 if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 4801 anObject(it); 4802 key = toPrimitive(key, true); 4803 anObject(D); 4804 4805 if (has(AllSymbols, key)) { 4806 if (!D.enumerable) { 4807 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 4808 it[HIDDEN][key] = true; 4809 } else { 4810 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 4811 D = _create(D, { 4812 enumerable: createDesc(0, false) 4813 }); 4814 } 4815 4816 return setSymbolDesc(it, key, D); 4817 } 4818 4819 return dP(it, key, D); 4820}; 4821 4822var $defineProperties = function defineProperties(it, P) { 4823 anObject(it); 4824 var keys = enumKeys(P = toIObject(P)); 4825 var i = 0; 4826 var l = keys.length; 4827 var key; 4828 4829 while (l > i) { 4830 $defineProperty(it, key = keys[i++], P[key]); 4831 } 4832 4833 return it; 4834}; 4835 4836var $create = function create(it, P) { 4837 return P === undefined ? _create(it) : $defineProperties(_create(it), P); 4838}; 4839 4840var $propertyIsEnumerable = function propertyIsEnumerable(key) { 4841 var E = isEnum.call(this, key = toPrimitive(key, true)); 4842 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 4843 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 4844}; 4845 4846var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 4847 it = toIObject(it); 4848 key = toPrimitive(key, true); 4849 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 4850 var D = gOPD(it, key); 4851 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 4852 return D; 4853}; 4854 4855var $getOwnPropertyNames = function getOwnPropertyNames(it) { 4856 var names = gOPN(toIObject(it)); 4857 var result = []; 4858 var i = 0; 4859 var key; 4860 4861 while (names.length > i) { 4862 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 4863 } 4864 4865 return result; 4866}; 4867 4868var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 4869 var IS_OP = it === ObjectProto; 4870 var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 4871 var result = []; 4872 var i = 0; 4873 var key; 4874 4875 while (names.length > i) { 4876 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 4877 } 4878 4879 return result; 4880}; 4881 4882if (!USE_NATIVE) { 4883 $Symbol = function _Symbol() { 4884 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 4885 var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 4886 4887 var $set = function $set(value) { 4888 if (this === ObjectProto) $set.call(OPSymbols, value); 4889 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 4890 setSymbolDesc(this, tag, createDesc(1, value)); 4891 }; 4892 4893 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { 4894 configurable: true, 4895 set: $set 4896 }); 4897 return wrap(tag); 4898 }; 4899 4900 redefine($Symbol[PROTOTYPE], 'toString', function toString() { 4901 return this._k; 4902 }); 4903 $GOPD.f = $getOwnPropertyDescriptor; 4904 $DP.f = $defineProperty; 4905 __w_pdfjs_require__(133).f = gOPNExt.f = $getOwnPropertyNames; 4906 __w_pdfjs_require__(74).f = $propertyIsEnumerable; 4907 $GOPS.f = $getOwnPropertySymbols; 4908 4909 if (DESCRIPTORS && !__w_pdfjs_require__(25)) { 4910 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 4911 } 4912 4913 wksExt.f = function (name) { 4914 return wrap(wks(name)); 4915 }; 4916} 4917 4918$export($export.G + $export.W + $export.F * !USE_NATIVE, { 4919 Symbol: $Symbol 4920}); 4921 4922for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { 4923 wks(es6Symbols[j++]); 4924} 4925 4926for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { 4927 wksDefine(wellKnownSymbols[k++]); 4928} 4929 4930$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 4931 'for': function _for(key) { 4932 return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); 4933 }, 4934 keyFor: function keyFor(sym) { 4935 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 4936 4937 for (var key in SymbolRegistry) { 4938 if (SymbolRegistry[key] === sym) return key; 4939 } 4940 }, 4941 useSetter: function useSetter() { 4942 setter = true; 4943 }, 4944 useSimple: function useSimple() { 4945 setter = false; 4946 } 4947}); 4948$export($export.S + $export.F * !USE_NATIVE, 'Object', { 4949 create: $create, 4950 defineProperty: $defineProperty, 4951 defineProperties: $defineProperties, 4952 getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 4953 getOwnPropertyNames: $getOwnPropertyNames, 4954 getOwnPropertySymbols: $getOwnPropertySymbols 4955}); 4956var FAILS_ON_PRIMITIVES = $fails(function () { 4957 $GOPS.f(1); 4958}); 4959$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { 4960 getOwnPropertySymbols: function getOwnPropertySymbols(it) { 4961 return $GOPS.f(toObject(it)); 4962 } 4963}); 4964$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 4965 var S = $Symbol(); 4966 return _stringify([S]) != '[null]' || _stringify({ 4967 a: S 4968 }) != '{}' || _stringify(Object(S)) != '{}'; 4969})), 'JSON', { 4970 stringify: function stringify(it) { 4971 var args = [it]; 4972 var i = 1; 4973 var replacer, $replacer; 4974 4975 while (arguments.length > i) { 4976 args.push(arguments[i++]); 4977 } 4978 4979 $replacer = replacer = args[1]; 4980 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; 4981 if (!isArray(replacer)) replacer = function replacer(key, value) { 4982 if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 4983 if (!isSymbol(value)) return value; 4984 }; 4985 args[1] = replacer; 4986 return _stringify.apply($JSON, args); 4987 } 4988}); 4989$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 4990setToStringTag($Symbol, 'Symbol'); 4991setToStringTag(Math, 'Math', true); 4992setToStringTag(global.JSON, 'JSON', true); 4993 4994/***/ }), 4995/* 129 */ 4996/***/ (function(module, exports, __w_pdfjs_require__) { 4997 4998"use strict"; 4999 5000 5001exports.f = __w_pdfjs_require__(33); 5002 5003/***/ }), 5004/* 130 */ 5005/***/ (function(module, exports, __w_pdfjs_require__) { 5006 5007"use strict"; 5008 5009 5010var global = __w_pdfjs_require__(8); 5011 5012var core = __w_pdfjs_require__(9); 5013 5014var LIBRARY = __w_pdfjs_require__(25); 5015 5016var wksExt = __w_pdfjs_require__(129); 5017 5018var defineProperty = __w_pdfjs_require__(11).f; 5019 5020module.exports = function (name) { 5021 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 5022 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { 5023 value: wksExt.f(name) 5024 }); 5025}; 5026 5027/***/ }), 5028/* 131 */ 5029/***/ (function(module, exports, __w_pdfjs_require__) { 5030 5031"use strict"; 5032 5033 5034var getKeys = __w_pdfjs_require__(55); 5035 5036var gOPS = __w_pdfjs_require__(73); 5037 5038var pIE = __w_pdfjs_require__(74); 5039 5040module.exports = function (it) { 5041 var result = getKeys(it); 5042 var getSymbols = gOPS.f; 5043 5044 if (getSymbols) { 5045 var symbols = getSymbols(it); 5046 var isEnum = pIE.f; 5047 var i = 0; 5048 var key; 5049 5050 while (symbols.length > i) { 5051 if (isEnum.call(it, key = symbols[i++])) result.push(key); 5052 } 5053 } 5054 5055 return result; 5056}; 5057 5058/***/ }), 5059/* 132 */ 5060/***/ (function(module, exports, __w_pdfjs_require__) { 5061 5062"use strict"; 5063 5064 5065function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 5066 5067var toIObject = __w_pdfjs_require__(43); 5068 5069var gOPN = __w_pdfjs_require__(133).f; 5070 5071var toString = {}.toString; 5072var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; 5073 5074var getWindowNames = function getWindowNames(it) { 5075 try { 5076 return gOPN(it); 5077 } catch (e) { 5078 return windowNames.slice(); 5079 } 5080}; 5081 5082module.exports.f = function getOwnPropertyNames(it) { 5083 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 5084}; 5085 5086/***/ }), 5087/* 133 */ 5088/***/ (function(module, exports, __w_pdfjs_require__) { 5089 5090"use strict"; 5091 5092 5093var $keys = __w_pdfjs_require__(56); 5094 5095var hiddenKeys = __w_pdfjs_require__(58).concat('length', 'prototype'); 5096 5097exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 5098 return $keys(O, hiddenKeys); 5099}; 5100 5101/***/ }), 5102/* 134 */ 5103/***/ (function(module, exports, __w_pdfjs_require__) { 5104 5105"use strict"; 5106 5107 5108__w_pdfjs_require__(135); 5109 5110module.exports = __w_pdfjs_require__(9).String.padStart; 5111 5112/***/ }), 5113/* 135 */ 5114/***/ (function(module, exports, __w_pdfjs_require__) { 5115 5116"use strict"; 5117 5118 5119var $export = __w_pdfjs_require__(7); 5120 5121var $pad = __w_pdfjs_require__(136); 5122 5123var userAgent = __w_pdfjs_require__(96); 5124 5125var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); 5126$export($export.P + $export.F * WEBKIT_BUG, 'String', { 5127 padStart: function padStart(maxLength) { 5128 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); 5129 } 5130}); 5131 5132/***/ }), 5133/* 136 */ 5134/***/ (function(module, exports, __w_pdfjs_require__) { 5135 5136"use strict"; 5137 5138 5139var toLength = __w_pdfjs_require__(28); 5140 5141var repeat = __w_pdfjs_require__(137); 5142 5143var defined = __w_pdfjs_require__(34); 5144 5145module.exports = function (that, maxLength, fillString, left) { 5146 var S = String(defined(that)); 5147 var stringLength = S.length; 5148 var fillStr = fillString === undefined ? ' ' : String(fillString); 5149 var intMaxLength = toLength(maxLength); 5150 if (intMaxLength <= stringLength || fillStr == '') return S; 5151 var fillLen = intMaxLength - stringLength; 5152 var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); 5153 if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); 5154 return left ? stringFiller + S : S + stringFiller; 5155}; 5156 5157/***/ }), 5158/* 137 */ 5159/***/ (function(module, exports, __w_pdfjs_require__) { 5160 5161"use strict"; 5162 5163 5164var toInteger = __w_pdfjs_require__(29); 5165 5166var defined = __w_pdfjs_require__(34); 5167 5168module.exports = function repeat(count) { 5169 var str = String(defined(this)); 5170 var res = ''; 5171 var n = toInteger(count); 5172 if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); 5173 5174 for (; n > 0; (n >>>= 1) && (str += str)) { 5175 if (n & 1) res += str; 5176 } 5177 5178 return res; 5179}; 5180 5181/***/ }), 5182/* 138 */ 5183/***/ (function(module, exports, __w_pdfjs_require__) { 5184 5185"use strict"; 5186 5187 5188__w_pdfjs_require__(139); 5189 5190module.exports = __w_pdfjs_require__(9).String.padEnd; 5191 5192/***/ }), 5193/* 139 */ 5194/***/ (function(module, exports, __w_pdfjs_require__) { 5195 5196"use strict"; 5197 5198 5199var $export = __w_pdfjs_require__(7); 5200 5201var $pad = __w_pdfjs_require__(136); 5202 5203var userAgent = __w_pdfjs_require__(96); 5204 5205var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); 5206$export($export.P + $export.F * WEBKIT_BUG, 'String', { 5207 padEnd: function padEnd(maxLength) { 5208 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); 5209 } 5210}); 5211 5212/***/ }), 5213/* 140 */ 5214/***/ (function(module, exports, __w_pdfjs_require__) { 5215 5216"use strict"; 5217 5218 5219__w_pdfjs_require__(141); 5220 5221module.exports = __w_pdfjs_require__(9).Object.values; 5222 5223/***/ }), 5224/* 141 */ 5225/***/ (function(module, exports, __w_pdfjs_require__) { 5226 5227"use strict"; 5228 5229 5230var $export = __w_pdfjs_require__(7); 5231 5232var $values = __w_pdfjs_require__(142)(false); 5233 5234$export($export.S, 'Object', { 5235 values: function values(it) { 5236 return $values(it); 5237 } 5238}); 5239 5240/***/ }), 5241/* 142 */ 5242/***/ (function(module, exports, __w_pdfjs_require__) { 5243 5244"use strict"; 5245 5246 5247var DESCRIPTORS = __w_pdfjs_require__(15); 5248 5249var getKeys = __w_pdfjs_require__(55); 5250 5251var toIObject = __w_pdfjs_require__(43); 5252 5253var isEnum = __w_pdfjs_require__(74).f; 5254 5255module.exports = function (isEntries) { 5256 return function (it) { 5257 var O = toIObject(it); 5258 var keys = getKeys(O); 5259 var length = keys.length; 5260 var i = 0; 5261 var result = []; 5262 var key; 5263 5264 while (length > i) { 5265 key = keys[i++]; 5266 5267 if (!DESCRIPTORS || isEnum.call(O, key)) { 5268 result.push(isEntries ? [key, O[key]] : O[key]); 5269 } 5270 } 5271 5272 return result; 5273 }; 5274}; 5275 5276/***/ }), 5277/* 143 */ 5278/***/ (function(module, exports, __w_pdfjs_require__) { 5279 5280"use strict"; 5281 5282 5283{ 5284 var isReadableStreamSupported = false; 5285 5286 if (typeof ReadableStream !== 'undefined') { 5287 try { 5288 new ReadableStream({ 5289 start: function start(controller) { 5290 controller.close(); 5291 } 5292 }); 5293 isReadableStreamSupported = true; 5294 } catch (e) {} 5295 } 5296 5297 if (isReadableStreamSupported) { 5298 exports.ReadableStream = ReadableStream; 5299 } else { 5300 exports.ReadableStream = __w_pdfjs_require__(144).ReadableStream; 5301 } 5302} 5303 5304/***/ }), 5305/* 144 */ 5306/***/ (function(module, exports, __w_pdfjs_require__) { 5307 5308"use strict"; 5309 5310 5311function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } 5312 5313(function (e, a) { 5314 for (var i in a) { 5315 e[i] = a[i]; 5316 } 5317})(exports, function (modules) { 5318 var installedModules = {}; 5319 5320 function __w_pdfjs_require__(moduleId) { 5321 if (installedModules[moduleId]) return installedModules[moduleId].exports; 5322 var module = installedModules[moduleId] = { 5323 i: moduleId, 5324 l: false, 5325 exports: {} 5326 }; 5327 modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 5328 module.l = true; 5329 return module.exports; 5330 } 5331 5332 __w_pdfjs_require__.m = modules; 5333 __w_pdfjs_require__.c = installedModules; 5334 5335 __w_pdfjs_require__.i = function (value) { 5336 return value; 5337 }; 5338 5339 __w_pdfjs_require__.d = function (exports, name, getter) { 5340 if (!__w_pdfjs_require__.o(exports, name)) { 5341 Object.defineProperty(exports, name, { 5342 configurable: false, 5343 enumerable: true, 5344 get: getter 5345 }); 5346 } 5347 }; 5348 5349 __w_pdfjs_require__.n = function (module) { 5350 var getter = module && module.__esModule ? function getDefault() { 5351 return module['default']; 5352 } : function getModuleExports() { 5353 return module; 5354 }; 5355 5356 __w_pdfjs_require__.d(getter, 'a', getter); 5357 5358 return getter; 5359 }; 5360 5361 __w_pdfjs_require__.o = function (object, property) { 5362 return Object.prototype.hasOwnProperty.call(object, property); 5363 }; 5364 5365 __w_pdfjs_require__.p = ""; 5366 return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); 5367}([function (module, exports, __w_pdfjs_require__) { 5368 "use strict"; 5369 5370 var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { 5371 return _typeof2(obj); 5372 } : function (obj) { 5373 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 5374 }; 5375 5376 var _require = __w_pdfjs_require__(1), 5377 assert = _require.assert; 5378 5379 function IsPropertyKey(argument) { 5380 return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; 5381 } 5382 5383 exports.typeIsObject = function (x) { 5384 return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; 5385 }; 5386 5387 exports.createDataProperty = function (o, p, v) { 5388 assert(exports.typeIsObject(o)); 5389 Object.defineProperty(o, p, { 5390 value: v, 5391 writable: true, 5392 enumerable: true, 5393 configurable: true 5394 }); 5395 }; 5396 5397 exports.createArrayFromList = function (elements) { 5398 return elements.slice(); 5399 }; 5400 5401 exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { 5402 new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); 5403 }; 5404 5405 exports.CreateIterResultObject = function (value, done) { 5406 assert(typeof done === 'boolean'); 5407 var obj = {}; 5408 Object.defineProperty(obj, 'value', { 5409 value: value, 5410 enumerable: true, 5411 writable: true, 5412 configurable: true 5413 }); 5414 Object.defineProperty(obj, 'done', { 5415 value: done, 5416 enumerable: true, 5417 writable: true, 5418 configurable: true 5419 }); 5420 return obj; 5421 }; 5422 5423 exports.IsFiniteNonNegativeNumber = function (v) { 5424 if (Number.isNaN(v)) { 5425 return false; 5426 } 5427 5428 if (v === Infinity) { 5429 return false; 5430 } 5431 5432 if (v < 0) { 5433 return false; 5434 } 5435 5436 return true; 5437 }; 5438 5439 function Call(F, V, args) { 5440 if (typeof F !== 'function') { 5441 throw new TypeError('Argument is not a function'); 5442 } 5443 5444 return Function.prototype.apply.call(F, V, args); 5445 } 5446 5447 exports.InvokeOrNoop = function (O, P, args) { 5448 assert(O !== undefined); 5449 assert(IsPropertyKey(P)); 5450 assert(Array.isArray(args)); 5451 var method = O[P]; 5452 5453 if (method === undefined) { 5454 return undefined; 5455 } 5456 5457 return Call(method, O, args); 5458 }; 5459 5460 exports.PromiseInvokeOrNoop = function (O, P, args) { 5461 assert(O !== undefined); 5462 assert(IsPropertyKey(P)); 5463 assert(Array.isArray(args)); 5464 5465 try { 5466 return Promise.resolve(exports.InvokeOrNoop(O, P, args)); 5467 } catch (returnValueE) { 5468 return Promise.reject(returnValueE); 5469 } 5470 }; 5471 5472 exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { 5473 assert(O !== undefined); 5474 assert(IsPropertyKey(P)); 5475 assert(Array.isArray(args)); 5476 assert(Array.isArray(argsF)); 5477 var method = void 0; 5478 5479 try { 5480 method = O[P]; 5481 } catch (methodE) { 5482 return Promise.reject(methodE); 5483 } 5484 5485 if (method === undefined) { 5486 return F.apply(null, argsF); 5487 } 5488 5489 try { 5490 return Promise.resolve(Call(method, O, args)); 5491 } catch (e) { 5492 return Promise.reject(e); 5493 } 5494 }; 5495 5496 exports.TransferArrayBuffer = function (O) { 5497 return O.slice(); 5498 }; 5499 5500 exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { 5501 highWaterMark = Number(highWaterMark); 5502 5503 if (Number.isNaN(highWaterMark) || highWaterMark < 0) { 5504 throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); 5505 } 5506 5507 return highWaterMark; 5508 }; 5509 5510 exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { 5511 if (size !== undefined && typeof size !== 'function') { 5512 throw new TypeError('size property of a queuing strategy must be a function'); 5513 } 5514 5515 highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); 5516 return { 5517 size: size, 5518 highWaterMark: highWaterMark 5519 }; 5520 }; 5521}, function (module, exports, __w_pdfjs_require__) { 5522 "use strict"; 5523 5524 function rethrowAssertionErrorRejection(e) { 5525 if (e && e.constructor === AssertionError) { 5526 setTimeout(function () { 5527 throw e; 5528 }, 0); 5529 } 5530 } 5531 5532 function AssertionError(message) { 5533 this.name = 'AssertionError'; 5534 this.message = message || ''; 5535 this.stack = new Error().stack; 5536 } 5537 5538 AssertionError.prototype = Object.create(Error.prototype); 5539 AssertionError.prototype.constructor = AssertionError; 5540 5541 function assert(value, message) { 5542 if (!value) { 5543 throw new AssertionError(message); 5544 } 5545 } 5546 5547 module.exports = { 5548 rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, 5549 AssertionError: AssertionError, 5550 assert: assert 5551 }; 5552}, function (module, exports, __w_pdfjs_require__) { 5553 "use strict"; 5554 5555 var _createClass = function () { 5556 function defineProperties(target, props) { 5557 for (var i = 0; i < props.length; i++) { 5558 var descriptor = props[i]; 5559 descriptor.enumerable = descriptor.enumerable || false; 5560 descriptor.configurable = true; 5561 if ("value" in descriptor) descriptor.writable = true; 5562 Object.defineProperty(target, descriptor.key, descriptor); 5563 } 5564 } 5565 5566 return function (Constructor, protoProps, staticProps) { 5567 if (protoProps) defineProperties(Constructor.prototype, protoProps); 5568 if (staticProps) defineProperties(Constructor, staticProps); 5569 return Constructor; 5570 }; 5571 }(); 5572 5573 function _classCallCheck(instance, Constructor) { 5574 if (!(instance instanceof Constructor)) { 5575 throw new TypeError("Cannot call a class as a function"); 5576 } 5577 } 5578 5579 var _require = __w_pdfjs_require__(0), 5580 InvokeOrNoop = _require.InvokeOrNoop, 5581 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 5582 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 5583 typeIsObject = _require.typeIsObject; 5584 5585 var _require2 = __w_pdfjs_require__(1), 5586 assert = _require2.assert, 5587 rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; 5588 5589 var _require3 = __w_pdfjs_require__(3), 5590 DequeueValue = _require3.DequeueValue, 5591 EnqueueValueWithSize = _require3.EnqueueValueWithSize, 5592 PeekQueueValue = _require3.PeekQueueValue, 5593 ResetQueue = _require3.ResetQueue; 5594 5595 var WritableStream = function () { 5596 function WritableStream() { 5597 var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 5598 5599 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 5600 size = _ref.size, 5601 _ref$highWaterMark = _ref.highWaterMark, 5602 highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; 5603 5604 _classCallCheck(this, WritableStream); 5605 5606 this._state = 'writable'; 5607 this._storedError = undefined; 5608 this._writer = undefined; 5609 this._writableStreamController = undefined; 5610 this._writeRequests = []; 5611 this._inFlightWriteRequest = undefined; 5612 this._closeRequest = undefined; 5613 this._inFlightCloseRequest = undefined; 5614 this._pendingAbortRequest = undefined; 5615 this._backpressure = false; 5616 var type = underlyingSink.type; 5617 5618 if (type !== undefined) { 5619 throw new RangeError('Invalid type is specified'); 5620 } 5621 5622 this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); 5623 5624 this._writableStreamController.__startSteps(); 5625 } 5626 5627 _createClass(WritableStream, [{ 5628 key: 'abort', 5629 value: function abort(reason) { 5630 if (IsWritableStream(this) === false) { 5631 return Promise.reject(streamBrandCheckException('abort')); 5632 } 5633 5634 if (IsWritableStreamLocked(this) === true) { 5635 return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); 5636 } 5637 5638 return WritableStreamAbort(this, reason); 5639 } 5640 }, { 5641 key: 'getWriter', 5642 value: function getWriter() { 5643 if (IsWritableStream(this) === false) { 5644 throw streamBrandCheckException('getWriter'); 5645 } 5646 5647 return AcquireWritableStreamDefaultWriter(this); 5648 } 5649 }, { 5650 key: 'locked', 5651 get: function get() { 5652 if (IsWritableStream(this) === false) { 5653 throw streamBrandCheckException('locked'); 5654 } 5655 5656 return IsWritableStreamLocked(this); 5657 } 5658 }]); 5659 5660 return WritableStream; 5661 }(); 5662 5663 module.exports = { 5664 AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, 5665 IsWritableStream: IsWritableStream, 5666 IsWritableStreamLocked: IsWritableStreamLocked, 5667 WritableStream: WritableStream, 5668 WritableStreamAbort: WritableStreamAbort, 5669 WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, 5670 WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, 5671 WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, 5672 WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, 5673 WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight 5674 }; 5675 5676 function AcquireWritableStreamDefaultWriter(stream) { 5677 return new WritableStreamDefaultWriter(stream); 5678 } 5679 5680 function IsWritableStream(x) { 5681 if (!typeIsObject(x)) { 5682 return false; 5683 } 5684 5685 if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { 5686 return false; 5687 } 5688 5689 return true; 5690 } 5691 5692 function IsWritableStreamLocked(stream) { 5693 assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); 5694 5695 if (stream._writer === undefined) { 5696 return false; 5697 } 5698 5699 return true; 5700 } 5701 5702 function WritableStreamAbort(stream, reason) { 5703 var state = stream._state; 5704 5705 if (state === 'closed') { 5706 return Promise.resolve(undefined); 5707 } 5708 5709 if (state === 'errored') { 5710 return Promise.reject(stream._storedError); 5711 } 5712 5713 var error = new TypeError('Requested to abort'); 5714 5715 if (stream._pendingAbortRequest !== undefined) { 5716 return Promise.reject(error); 5717 } 5718 5719 assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); 5720 var wasAlreadyErroring = false; 5721 5722 if (state === 'erroring') { 5723 wasAlreadyErroring = true; 5724 reason = undefined; 5725 } 5726 5727 var promise = new Promise(function (resolve, reject) { 5728 stream._pendingAbortRequest = { 5729 _resolve: resolve, 5730 _reject: reject, 5731 _reason: reason, 5732 _wasAlreadyErroring: wasAlreadyErroring 5733 }; 5734 }); 5735 5736 if (wasAlreadyErroring === false) { 5737 WritableStreamStartErroring(stream, error); 5738 } 5739 5740 return promise; 5741 } 5742 5743 function WritableStreamAddWriteRequest(stream) { 5744 assert(IsWritableStreamLocked(stream) === true); 5745 assert(stream._state === 'writable'); 5746 var promise = new Promise(function (resolve, reject) { 5747 var writeRequest = { 5748 _resolve: resolve, 5749 _reject: reject 5750 }; 5751 5752 stream._writeRequests.push(writeRequest); 5753 }); 5754 return promise; 5755 } 5756 5757 function WritableStreamDealWithRejection(stream, error) { 5758 var state = stream._state; 5759 5760 if (state === 'writable') { 5761 WritableStreamStartErroring(stream, error); 5762 return; 5763 } 5764 5765 assert(state === 'erroring'); 5766 WritableStreamFinishErroring(stream); 5767 } 5768 5769 function WritableStreamStartErroring(stream, reason) { 5770 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 5771 assert(stream._state === 'writable', 'state must be writable'); 5772 var controller = stream._writableStreamController; 5773 assert(controller !== undefined, 'controller must not be undefined'); 5774 stream._state = 'erroring'; 5775 stream._storedError = reason; 5776 var writer = stream._writer; 5777 5778 if (writer !== undefined) { 5779 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); 5780 } 5781 5782 if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { 5783 WritableStreamFinishErroring(stream); 5784 } 5785 } 5786 5787 function WritableStreamFinishErroring(stream) { 5788 assert(stream._state === 'erroring', 'stream._state === erroring'); 5789 assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); 5790 stream._state = 'errored'; 5791 5792 stream._writableStreamController.__errorSteps(); 5793 5794 var storedError = stream._storedError; 5795 5796 for (var i = 0; i < stream._writeRequests.length; i++) { 5797 var writeRequest = stream._writeRequests[i]; 5798 5799 writeRequest._reject(storedError); 5800 } 5801 5802 stream._writeRequests = []; 5803 5804 if (stream._pendingAbortRequest === undefined) { 5805 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5806 return; 5807 } 5808 5809 var abortRequest = stream._pendingAbortRequest; 5810 stream._pendingAbortRequest = undefined; 5811 5812 if (abortRequest._wasAlreadyErroring === true) { 5813 abortRequest._reject(storedError); 5814 5815 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5816 return; 5817 } 5818 5819 var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); 5820 5821 promise.then(function () { 5822 abortRequest._resolve(); 5823 5824 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5825 }, function (reason) { 5826 abortRequest._reject(reason); 5827 5828 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5829 }); 5830 } 5831 5832 function WritableStreamFinishInFlightWrite(stream) { 5833 assert(stream._inFlightWriteRequest !== undefined); 5834 5835 stream._inFlightWriteRequest._resolve(undefined); 5836 5837 stream._inFlightWriteRequest = undefined; 5838 } 5839 5840 function WritableStreamFinishInFlightWriteWithError(stream, error) { 5841 assert(stream._inFlightWriteRequest !== undefined); 5842 5843 stream._inFlightWriteRequest._reject(error); 5844 5845 stream._inFlightWriteRequest = undefined; 5846 assert(stream._state === 'writable' || stream._state === 'erroring'); 5847 WritableStreamDealWithRejection(stream, error); 5848 } 5849 5850 function WritableStreamFinishInFlightClose(stream) { 5851 assert(stream._inFlightCloseRequest !== undefined); 5852 5853 stream._inFlightCloseRequest._resolve(undefined); 5854 5855 stream._inFlightCloseRequest = undefined; 5856 var state = stream._state; 5857 assert(state === 'writable' || state === 'erroring'); 5858 5859 if (state === 'erroring') { 5860 stream._storedError = undefined; 5861 5862 if (stream._pendingAbortRequest !== undefined) { 5863 stream._pendingAbortRequest._resolve(); 5864 5865 stream._pendingAbortRequest = undefined; 5866 } 5867 } 5868 5869 stream._state = 'closed'; 5870 var writer = stream._writer; 5871 5872 if (writer !== undefined) { 5873 defaultWriterClosedPromiseResolve(writer); 5874 } 5875 5876 assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); 5877 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 5878 } 5879 5880 function WritableStreamFinishInFlightCloseWithError(stream, error) { 5881 assert(stream._inFlightCloseRequest !== undefined); 5882 5883 stream._inFlightCloseRequest._reject(error); 5884 5885 stream._inFlightCloseRequest = undefined; 5886 assert(stream._state === 'writable' || stream._state === 'erroring'); 5887 5888 if (stream._pendingAbortRequest !== undefined) { 5889 stream._pendingAbortRequest._reject(error); 5890 5891 stream._pendingAbortRequest = undefined; 5892 } 5893 5894 WritableStreamDealWithRejection(stream, error); 5895 } 5896 5897 function WritableStreamCloseQueuedOrInFlight(stream) { 5898 if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { 5899 return false; 5900 } 5901 5902 return true; 5903 } 5904 5905 function WritableStreamHasOperationMarkedInFlight(stream) { 5906 if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { 5907 return false; 5908 } 5909 5910 return true; 5911 } 5912 5913 function WritableStreamMarkCloseRequestInFlight(stream) { 5914 assert(stream._inFlightCloseRequest === undefined); 5915 assert(stream._closeRequest !== undefined); 5916 stream._inFlightCloseRequest = stream._closeRequest; 5917 stream._closeRequest = undefined; 5918 } 5919 5920 function WritableStreamMarkFirstWriteRequestInFlight(stream) { 5921 assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); 5922 assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); 5923 stream._inFlightWriteRequest = stream._writeRequests.shift(); 5924 } 5925 5926 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { 5927 assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); 5928 5929 if (stream._closeRequest !== undefined) { 5930 assert(stream._inFlightCloseRequest === undefined); 5931 5932 stream._closeRequest._reject(stream._storedError); 5933 5934 stream._closeRequest = undefined; 5935 } 5936 5937 var writer = stream._writer; 5938 5939 if (writer !== undefined) { 5940 defaultWriterClosedPromiseReject(writer, stream._storedError); 5941 5942 writer._closedPromise["catch"](function () {}); 5943 } 5944 } 5945 5946 function WritableStreamUpdateBackpressure(stream, backpressure) { 5947 assert(stream._state === 'writable'); 5948 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 5949 var writer = stream._writer; 5950 5951 if (writer !== undefined && backpressure !== stream._backpressure) { 5952 if (backpressure === true) { 5953 defaultWriterReadyPromiseReset(writer); 5954 } else { 5955 assert(backpressure === false); 5956 defaultWriterReadyPromiseResolve(writer); 5957 } 5958 } 5959 5960 stream._backpressure = backpressure; 5961 } 5962 5963 var WritableStreamDefaultWriter = function () { 5964 function WritableStreamDefaultWriter(stream) { 5965 _classCallCheck(this, WritableStreamDefaultWriter); 5966 5967 if (IsWritableStream(stream) === false) { 5968 throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); 5969 } 5970 5971 if (IsWritableStreamLocked(stream) === true) { 5972 throw new TypeError('This stream has already been locked for exclusive writing by another writer'); 5973 } 5974 5975 this._ownerWritableStream = stream; 5976 stream._writer = this; 5977 var state = stream._state; 5978 5979 if (state === 'writable') { 5980 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { 5981 defaultWriterReadyPromiseInitialize(this); 5982 } else { 5983 defaultWriterReadyPromiseInitializeAsResolved(this); 5984 } 5985 5986 defaultWriterClosedPromiseInitialize(this); 5987 } else if (state === 'erroring') { 5988 defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); 5989 5990 this._readyPromise["catch"](function () {}); 5991 5992 defaultWriterClosedPromiseInitialize(this); 5993 } else if (state === 'closed') { 5994 defaultWriterReadyPromiseInitializeAsResolved(this); 5995 defaultWriterClosedPromiseInitializeAsResolved(this); 5996 } else { 5997 assert(state === 'errored', 'state must be errored'); 5998 var storedError = stream._storedError; 5999 defaultWriterReadyPromiseInitializeAsRejected(this, storedError); 6000 6001 this._readyPromise["catch"](function () {}); 6002 6003 defaultWriterClosedPromiseInitializeAsRejected(this, storedError); 6004 6005 this._closedPromise["catch"](function () {}); 6006 } 6007 } 6008 6009 _createClass(WritableStreamDefaultWriter, [{ 6010 key: 'abort', 6011 value: function abort(reason) { 6012 if (IsWritableStreamDefaultWriter(this) === false) { 6013 return Promise.reject(defaultWriterBrandCheckException('abort')); 6014 } 6015 6016 if (this._ownerWritableStream === undefined) { 6017 return Promise.reject(defaultWriterLockException('abort')); 6018 } 6019 6020 return WritableStreamDefaultWriterAbort(this, reason); 6021 } 6022 }, { 6023 key: 'close', 6024 value: function close() { 6025 if (IsWritableStreamDefaultWriter(this) === false) { 6026 return Promise.reject(defaultWriterBrandCheckException('close')); 6027 } 6028 6029 var stream = this._ownerWritableStream; 6030 6031 if (stream === undefined) { 6032 return Promise.reject(defaultWriterLockException('close')); 6033 } 6034 6035 if (WritableStreamCloseQueuedOrInFlight(stream) === true) { 6036 return Promise.reject(new TypeError('cannot close an already-closing stream')); 6037 } 6038 6039 return WritableStreamDefaultWriterClose(this); 6040 } 6041 }, { 6042 key: 'releaseLock', 6043 value: function releaseLock() { 6044 if (IsWritableStreamDefaultWriter(this) === false) { 6045 throw defaultWriterBrandCheckException('releaseLock'); 6046 } 6047 6048 var stream = this._ownerWritableStream; 6049 6050 if (stream === undefined) { 6051 return; 6052 } 6053 6054 assert(stream._writer !== undefined); 6055 WritableStreamDefaultWriterRelease(this); 6056 } 6057 }, { 6058 key: 'write', 6059 value: function write(chunk) { 6060 if (IsWritableStreamDefaultWriter(this) === false) { 6061 return Promise.reject(defaultWriterBrandCheckException('write')); 6062 } 6063 6064 if (this._ownerWritableStream === undefined) { 6065 return Promise.reject(defaultWriterLockException('write to')); 6066 } 6067 6068 return WritableStreamDefaultWriterWrite(this, chunk); 6069 } 6070 }, { 6071 key: 'closed', 6072 get: function get() { 6073 if (IsWritableStreamDefaultWriter(this) === false) { 6074 return Promise.reject(defaultWriterBrandCheckException('closed')); 6075 } 6076 6077 return this._closedPromise; 6078 } 6079 }, { 6080 key: 'desiredSize', 6081 get: function get() { 6082 if (IsWritableStreamDefaultWriter(this) === false) { 6083 throw defaultWriterBrandCheckException('desiredSize'); 6084 } 6085 6086 if (this._ownerWritableStream === undefined) { 6087 throw defaultWriterLockException('desiredSize'); 6088 } 6089 6090 return WritableStreamDefaultWriterGetDesiredSize(this); 6091 } 6092 }, { 6093 key: 'ready', 6094 get: function get() { 6095 if (IsWritableStreamDefaultWriter(this) === false) { 6096 return Promise.reject(defaultWriterBrandCheckException('ready')); 6097 } 6098 6099 return this._readyPromise; 6100 } 6101 }]); 6102 6103 return WritableStreamDefaultWriter; 6104 }(); 6105 6106 function IsWritableStreamDefaultWriter(x) { 6107 if (!typeIsObject(x)) { 6108 return false; 6109 } 6110 6111 if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { 6112 return false; 6113 } 6114 6115 return true; 6116 } 6117 6118 function WritableStreamDefaultWriterAbort(writer, reason) { 6119 var stream = writer._ownerWritableStream; 6120 assert(stream !== undefined); 6121 return WritableStreamAbort(stream, reason); 6122 } 6123 6124 function WritableStreamDefaultWriterClose(writer) { 6125 var stream = writer._ownerWritableStream; 6126 assert(stream !== undefined); 6127 var state = stream._state; 6128 6129 if (state === 'closed' || state === 'errored') { 6130 return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); 6131 } 6132 6133 assert(state === 'writable' || state === 'erroring'); 6134 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 6135 var promise = new Promise(function (resolve, reject) { 6136 var closeRequest = { 6137 _resolve: resolve, 6138 _reject: reject 6139 }; 6140 stream._closeRequest = closeRequest; 6141 }); 6142 6143 if (stream._backpressure === true && state === 'writable') { 6144 defaultWriterReadyPromiseResolve(writer); 6145 } 6146 6147 WritableStreamDefaultControllerClose(stream._writableStreamController); 6148 return promise; 6149 } 6150 6151 function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { 6152 var stream = writer._ownerWritableStream; 6153 assert(stream !== undefined); 6154 var state = stream._state; 6155 6156 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 6157 return Promise.resolve(); 6158 } 6159 6160 if (state === 'errored') { 6161 return Promise.reject(stream._storedError); 6162 } 6163 6164 assert(state === 'writable' || state === 'erroring'); 6165 return WritableStreamDefaultWriterClose(writer); 6166 } 6167 6168 function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { 6169 if (writer._closedPromiseState === 'pending') { 6170 defaultWriterClosedPromiseReject(writer, error); 6171 } else { 6172 defaultWriterClosedPromiseResetToRejected(writer, error); 6173 } 6174 6175 writer._closedPromise["catch"](function () {}); 6176 } 6177 6178 function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { 6179 if (writer._readyPromiseState === 'pending') { 6180 defaultWriterReadyPromiseReject(writer, error); 6181 } else { 6182 defaultWriterReadyPromiseResetToRejected(writer, error); 6183 } 6184 6185 writer._readyPromise["catch"](function () {}); 6186 } 6187 6188 function WritableStreamDefaultWriterGetDesiredSize(writer) { 6189 var stream = writer._ownerWritableStream; 6190 var state = stream._state; 6191 6192 if (state === 'errored' || state === 'erroring') { 6193 return null; 6194 } 6195 6196 if (state === 'closed') { 6197 return 0; 6198 } 6199 6200 return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); 6201 } 6202 6203 function WritableStreamDefaultWriterRelease(writer) { 6204 var stream = writer._ownerWritableStream; 6205 assert(stream !== undefined); 6206 assert(stream._writer === writer); 6207 var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); 6208 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); 6209 WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); 6210 stream._writer = undefined; 6211 writer._ownerWritableStream = undefined; 6212 } 6213 6214 function WritableStreamDefaultWriterWrite(writer, chunk) { 6215 var stream = writer._ownerWritableStream; 6216 assert(stream !== undefined); 6217 var controller = stream._writableStreamController; 6218 var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); 6219 6220 if (stream !== writer._ownerWritableStream) { 6221 return Promise.reject(defaultWriterLockException('write to')); 6222 } 6223 6224 var state = stream._state; 6225 6226 if (state === 'errored') { 6227 return Promise.reject(stream._storedError); 6228 } 6229 6230 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 6231 return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); 6232 } 6233 6234 if (state === 'erroring') { 6235 return Promise.reject(stream._storedError); 6236 } 6237 6238 assert(state === 'writable'); 6239 var promise = WritableStreamAddWriteRequest(stream); 6240 WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); 6241 return promise; 6242 } 6243 6244 var WritableStreamDefaultController = function () { 6245 function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { 6246 _classCallCheck(this, WritableStreamDefaultController); 6247 6248 if (IsWritableStream(stream) === false) { 6249 throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); 6250 } 6251 6252 if (stream._writableStreamController !== undefined) { 6253 throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); 6254 } 6255 6256 this._controlledWritableStream = stream; 6257 this._underlyingSink = underlyingSink; 6258 this._queue = undefined; 6259 this._queueTotalSize = undefined; 6260 ResetQueue(this); 6261 this._started = false; 6262 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 6263 this._strategySize = normalizedStrategy.size; 6264 this._strategyHWM = normalizedStrategy.highWaterMark; 6265 var backpressure = WritableStreamDefaultControllerGetBackpressure(this); 6266 WritableStreamUpdateBackpressure(stream, backpressure); 6267 } 6268 6269 _createClass(WritableStreamDefaultController, [{ 6270 key: 'error', 6271 value: function error(e) { 6272 if (IsWritableStreamDefaultController(this) === false) { 6273 throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); 6274 } 6275 6276 var state = this._controlledWritableStream._state; 6277 6278 if (state !== 'writable') { 6279 return; 6280 } 6281 6282 WritableStreamDefaultControllerError(this, e); 6283 } 6284 }, { 6285 key: '__abortSteps', 6286 value: function __abortSteps(reason) { 6287 return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); 6288 } 6289 }, { 6290 key: '__errorSteps', 6291 value: function __errorSteps() { 6292 ResetQueue(this); 6293 } 6294 }, { 6295 key: '__startSteps', 6296 value: function __startSteps() { 6297 var _this = this; 6298 6299 var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); 6300 var stream = this._controlledWritableStream; 6301 Promise.resolve(startResult).then(function () { 6302 assert(stream._state === 'writable' || stream._state === 'erroring'); 6303 _this._started = true; 6304 WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); 6305 }, function (r) { 6306 assert(stream._state === 'writable' || stream._state === 'erroring'); 6307 _this._started = true; 6308 WritableStreamDealWithRejection(stream, r); 6309 })["catch"](rethrowAssertionErrorRejection); 6310 } 6311 }]); 6312 6313 return WritableStreamDefaultController; 6314 }(); 6315 6316 function WritableStreamDefaultControllerClose(controller) { 6317 EnqueueValueWithSize(controller, 'close', 0); 6318 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 6319 } 6320 6321 function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { 6322 var strategySize = controller._strategySize; 6323 6324 if (strategySize === undefined) { 6325 return 1; 6326 } 6327 6328 try { 6329 return strategySize(chunk); 6330 } catch (chunkSizeE) { 6331 WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 6332 return 1; 6333 } 6334 } 6335 6336 function WritableStreamDefaultControllerGetDesiredSize(controller) { 6337 return controller._strategyHWM - controller._queueTotalSize; 6338 } 6339 6340 function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { 6341 var writeRecord = { 6342 chunk: chunk 6343 }; 6344 6345 try { 6346 EnqueueValueWithSize(controller, writeRecord, chunkSize); 6347 } catch (enqueueE) { 6348 WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 6349 return; 6350 } 6351 6352 var stream = controller._controlledWritableStream; 6353 6354 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { 6355 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 6356 WritableStreamUpdateBackpressure(stream, backpressure); 6357 } 6358 6359 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 6360 } 6361 6362 function IsWritableStreamDefaultController(x) { 6363 if (!typeIsObject(x)) { 6364 return false; 6365 } 6366 6367 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { 6368 return false; 6369 } 6370 6371 return true; 6372 } 6373 6374 function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { 6375 var stream = controller._controlledWritableStream; 6376 6377 if (controller._started === false) { 6378 return; 6379 } 6380 6381 if (stream._inFlightWriteRequest !== undefined) { 6382 return; 6383 } 6384 6385 var state = stream._state; 6386 6387 if (state === 'closed' || state === 'errored') { 6388 return; 6389 } 6390 6391 if (state === 'erroring') { 6392 WritableStreamFinishErroring(stream); 6393 return; 6394 } 6395 6396 if (controller._queue.length === 0) { 6397 return; 6398 } 6399 6400 var writeRecord = PeekQueueValue(controller); 6401 6402 if (writeRecord === 'close') { 6403 WritableStreamDefaultControllerProcessClose(controller); 6404 } else { 6405 WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); 6406 } 6407 } 6408 6409 function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { 6410 if (controller._controlledWritableStream._state === 'writable') { 6411 WritableStreamDefaultControllerError(controller, error); 6412 } 6413 } 6414 6415 function WritableStreamDefaultControllerProcessClose(controller) { 6416 var stream = controller._controlledWritableStream; 6417 WritableStreamMarkCloseRequestInFlight(stream); 6418 DequeueValue(controller); 6419 assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); 6420 var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); 6421 sinkClosePromise.then(function () { 6422 WritableStreamFinishInFlightClose(stream); 6423 }, function (reason) { 6424 WritableStreamFinishInFlightCloseWithError(stream, reason); 6425 })["catch"](rethrowAssertionErrorRejection); 6426 } 6427 6428 function WritableStreamDefaultControllerProcessWrite(controller, chunk) { 6429 var stream = controller._controlledWritableStream; 6430 WritableStreamMarkFirstWriteRequestInFlight(stream); 6431 var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); 6432 sinkWritePromise.then(function () { 6433 WritableStreamFinishInFlightWrite(stream); 6434 var state = stream._state; 6435 assert(state === 'writable' || state === 'erroring'); 6436 DequeueValue(controller); 6437 6438 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { 6439 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 6440 WritableStreamUpdateBackpressure(stream, backpressure); 6441 } 6442 6443 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 6444 }, function (reason) { 6445 WritableStreamFinishInFlightWriteWithError(stream, reason); 6446 })["catch"](rethrowAssertionErrorRejection); 6447 } 6448 6449 function WritableStreamDefaultControllerGetBackpressure(controller) { 6450 var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); 6451 return desiredSize <= 0; 6452 } 6453 6454 function WritableStreamDefaultControllerError(controller, error) { 6455 var stream = controller._controlledWritableStream; 6456 assert(stream._state === 'writable'); 6457 WritableStreamStartErroring(stream, error); 6458 } 6459 6460 function streamBrandCheckException(name) { 6461 return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); 6462 } 6463 6464 function defaultWriterBrandCheckException(name) { 6465 return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); 6466 } 6467 6468 function defaultWriterLockException(name) { 6469 return new TypeError('Cannot ' + name + ' a stream using a released writer'); 6470 } 6471 6472 function defaultWriterClosedPromiseInitialize(writer) { 6473 writer._closedPromise = new Promise(function (resolve, reject) { 6474 writer._closedPromise_resolve = resolve; 6475 writer._closedPromise_reject = reject; 6476 writer._closedPromiseState = 'pending'; 6477 }); 6478 } 6479 6480 function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { 6481 writer._closedPromise = Promise.reject(reason); 6482 writer._closedPromise_resolve = undefined; 6483 writer._closedPromise_reject = undefined; 6484 writer._closedPromiseState = 'rejected'; 6485 } 6486 6487 function defaultWriterClosedPromiseInitializeAsResolved(writer) { 6488 writer._closedPromise = Promise.resolve(undefined); 6489 writer._closedPromise_resolve = undefined; 6490 writer._closedPromise_reject = undefined; 6491 writer._closedPromiseState = 'resolved'; 6492 } 6493 6494 function defaultWriterClosedPromiseReject(writer, reason) { 6495 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 6496 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 6497 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 6498 6499 writer._closedPromise_reject(reason); 6500 6501 writer._closedPromise_resolve = undefined; 6502 writer._closedPromise_reject = undefined; 6503 writer._closedPromiseState = 'rejected'; 6504 } 6505 6506 function defaultWriterClosedPromiseResetToRejected(writer, reason) { 6507 assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); 6508 assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); 6509 assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); 6510 writer._closedPromise = Promise.reject(reason); 6511 writer._closedPromiseState = 'rejected'; 6512 } 6513 6514 function defaultWriterClosedPromiseResolve(writer) { 6515 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 6516 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 6517 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 6518 6519 writer._closedPromise_resolve(undefined); 6520 6521 writer._closedPromise_resolve = undefined; 6522 writer._closedPromise_reject = undefined; 6523 writer._closedPromiseState = 'resolved'; 6524 } 6525 6526 function defaultWriterReadyPromiseInitialize(writer) { 6527 writer._readyPromise = new Promise(function (resolve, reject) { 6528 writer._readyPromise_resolve = resolve; 6529 writer._readyPromise_reject = reject; 6530 }); 6531 writer._readyPromiseState = 'pending'; 6532 } 6533 6534 function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { 6535 writer._readyPromise = Promise.reject(reason); 6536 writer._readyPromise_resolve = undefined; 6537 writer._readyPromise_reject = undefined; 6538 writer._readyPromiseState = 'rejected'; 6539 } 6540 6541 function defaultWriterReadyPromiseInitializeAsResolved(writer) { 6542 writer._readyPromise = Promise.resolve(undefined); 6543 writer._readyPromise_resolve = undefined; 6544 writer._readyPromise_reject = undefined; 6545 writer._readyPromiseState = 'fulfilled'; 6546 } 6547 6548 function defaultWriterReadyPromiseReject(writer, reason) { 6549 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 6550 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 6551 6552 writer._readyPromise_reject(reason); 6553 6554 writer._readyPromise_resolve = undefined; 6555 writer._readyPromise_reject = undefined; 6556 writer._readyPromiseState = 'rejected'; 6557 } 6558 6559 function defaultWriterReadyPromiseReset(writer) { 6560 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 6561 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 6562 writer._readyPromise = new Promise(function (resolve, reject) { 6563 writer._readyPromise_resolve = resolve; 6564 writer._readyPromise_reject = reject; 6565 }); 6566 writer._readyPromiseState = 'pending'; 6567 } 6568 6569 function defaultWriterReadyPromiseResetToRejected(writer, reason) { 6570 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 6571 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 6572 writer._readyPromise = Promise.reject(reason); 6573 writer._readyPromiseState = 'rejected'; 6574 } 6575 6576 function defaultWriterReadyPromiseResolve(writer) { 6577 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 6578 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 6579 6580 writer._readyPromise_resolve(undefined); 6581 6582 writer._readyPromise_resolve = undefined; 6583 writer._readyPromise_reject = undefined; 6584 writer._readyPromiseState = 'fulfilled'; 6585 } 6586}, function (module, exports, __w_pdfjs_require__) { 6587 "use strict"; 6588 6589 var _require = __w_pdfjs_require__(0), 6590 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; 6591 6592 var _require2 = __w_pdfjs_require__(1), 6593 assert = _require2.assert; 6594 6595 exports.DequeueValue = function (container) { 6596 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 6597 assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); 6598 6599 var pair = container._queue.shift(); 6600 6601 container._queueTotalSize -= pair.size; 6602 6603 if (container._queueTotalSize < 0) { 6604 container._queueTotalSize = 0; 6605 } 6606 6607 return pair.value; 6608 }; 6609 6610 exports.EnqueueValueWithSize = function (container, value, size) { 6611 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); 6612 size = Number(size); 6613 6614 if (!IsFiniteNonNegativeNumber(size)) { 6615 throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); 6616 } 6617 6618 container._queue.push({ 6619 value: value, 6620 size: size 6621 }); 6622 6623 container._queueTotalSize += size; 6624 }; 6625 6626 exports.PeekQueueValue = function (container) { 6627 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 6628 assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); 6629 var pair = container._queue[0]; 6630 return pair.value; 6631 }; 6632 6633 exports.ResetQueue = function (container) { 6634 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 6635 container._queue = []; 6636 container._queueTotalSize = 0; 6637 }; 6638}, function (module, exports, __w_pdfjs_require__) { 6639 "use strict"; 6640 6641 var _createClass = function () { 6642 function defineProperties(target, props) { 6643 for (var i = 0; i < props.length; i++) { 6644 var descriptor = props[i]; 6645 descriptor.enumerable = descriptor.enumerable || false; 6646 descriptor.configurable = true; 6647 if ("value" in descriptor) descriptor.writable = true; 6648 Object.defineProperty(target, descriptor.key, descriptor); 6649 } 6650 } 6651 6652 return function (Constructor, protoProps, staticProps) { 6653 if (protoProps) defineProperties(Constructor.prototype, protoProps); 6654 if (staticProps) defineProperties(Constructor, staticProps); 6655 return Constructor; 6656 }; 6657 }(); 6658 6659 function _classCallCheck(instance, Constructor) { 6660 if (!(instance instanceof Constructor)) { 6661 throw new TypeError("Cannot call a class as a function"); 6662 } 6663 } 6664 6665 var _require = __w_pdfjs_require__(0), 6666 ArrayBufferCopy = _require.ArrayBufferCopy, 6667 CreateIterResultObject = _require.CreateIterResultObject, 6668 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, 6669 InvokeOrNoop = _require.InvokeOrNoop, 6670 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 6671 TransferArrayBuffer = _require.TransferArrayBuffer, 6672 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 6673 ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; 6674 6675 var _require2 = __w_pdfjs_require__(0), 6676 createArrayFromList = _require2.createArrayFromList, 6677 createDataProperty = _require2.createDataProperty, 6678 typeIsObject = _require2.typeIsObject; 6679 6680 var _require3 = __w_pdfjs_require__(1), 6681 assert = _require3.assert, 6682 rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; 6683 6684 var _require4 = __w_pdfjs_require__(3), 6685 DequeueValue = _require4.DequeueValue, 6686 EnqueueValueWithSize = _require4.EnqueueValueWithSize, 6687 ResetQueue = _require4.ResetQueue; 6688 6689 var _require5 = __w_pdfjs_require__(2), 6690 AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, 6691 IsWritableStream = _require5.IsWritableStream, 6692 IsWritableStreamLocked = _require5.IsWritableStreamLocked, 6693 WritableStreamAbort = _require5.WritableStreamAbort, 6694 WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, 6695 WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, 6696 WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, 6697 WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; 6698 6699 var ReadableStream = function () { 6700 function ReadableStream() { 6701 var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 6702 6703 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 6704 size = _ref.size, 6705 highWaterMark = _ref.highWaterMark; 6706 6707 _classCallCheck(this, ReadableStream); 6708 6709 this._state = 'readable'; 6710 this._reader = undefined; 6711 this._storedError = undefined; 6712 this._disturbed = false; 6713 this._readableStreamController = undefined; 6714 var type = underlyingSource.type; 6715 var typeString = String(type); 6716 6717 if (typeString === 'bytes') { 6718 if (highWaterMark === undefined) { 6719 highWaterMark = 0; 6720 } 6721 6722 this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); 6723 } else if (type === undefined) { 6724 if (highWaterMark === undefined) { 6725 highWaterMark = 1; 6726 } 6727 6728 this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); 6729 } else { 6730 throw new RangeError('Invalid type is specified'); 6731 } 6732 } 6733 6734 _createClass(ReadableStream, [{ 6735 key: 'cancel', 6736 value: function cancel(reason) { 6737 if (IsReadableStream(this) === false) { 6738 return Promise.reject(streamBrandCheckException('cancel')); 6739 } 6740 6741 if (IsReadableStreamLocked(this) === true) { 6742 return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); 6743 } 6744 6745 return ReadableStreamCancel(this, reason); 6746 } 6747 }, { 6748 key: 'getReader', 6749 value: function getReader() { 6750 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 6751 mode = _ref2.mode; 6752 6753 if (IsReadableStream(this) === false) { 6754 throw streamBrandCheckException('getReader'); 6755 } 6756 6757 if (mode === undefined) { 6758 return AcquireReadableStreamDefaultReader(this); 6759 } 6760 6761 mode = String(mode); 6762 6763 if (mode === 'byob') { 6764 return AcquireReadableStreamBYOBReader(this); 6765 } 6766 6767 throw new RangeError('Invalid mode is specified'); 6768 } 6769 }, { 6770 key: 'pipeThrough', 6771 value: function pipeThrough(_ref3, options) { 6772 var writable = _ref3.writable, 6773 readable = _ref3.readable; 6774 var promise = this.pipeTo(writable, options); 6775 ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); 6776 return readable; 6777 } 6778 }, { 6779 key: 'pipeTo', 6780 value: function pipeTo(dest) { 6781 var _this = this; 6782 6783 var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 6784 preventClose = _ref4.preventClose, 6785 preventAbort = _ref4.preventAbort, 6786 preventCancel = _ref4.preventCancel; 6787 6788 if (IsReadableStream(this) === false) { 6789 return Promise.reject(streamBrandCheckException('pipeTo')); 6790 } 6791 6792 if (IsWritableStream(dest) === false) { 6793 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); 6794 } 6795 6796 preventClose = Boolean(preventClose); 6797 preventAbort = Boolean(preventAbort); 6798 preventCancel = Boolean(preventCancel); 6799 6800 if (IsReadableStreamLocked(this) === true) { 6801 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); 6802 } 6803 6804 if (IsWritableStreamLocked(dest) === true) { 6805 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); 6806 } 6807 6808 var reader = AcquireReadableStreamDefaultReader(this); 6809 var writer = AcquireWritableStreamDefaultWriter(dest); 6810 var shuttingDown = false; 6811 var currentWrite = Promise.resolve(); 6812 return new Promise(function (resolve, reject) { 6813 function pipeLoop() { 6814 currentWrite = Promise.resolve(); 6815 6816 if (shuttingDown === true) { 6817 return Promise.resolve(); 6818 } 6819 6820 return writer._readyPromise.then(function () { 6821 return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { 6822 var value = _ref5.value, 6823 done = _ref5.done; 6824 6825 if (done === true) { 6826 return; 6827 } 6828 6829 currentWrite = WritableStreamDefaultWriterWrite(writer, value)["catch"](function () {}); 6830 }); 6831 }).then(pipeLoop); 6832 } 6833 6834 isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { 6835 if (preventAbort === false) { 6836 shutdownWithAction(function () { 6837 return WritableStreamAbort(dest, storedError); 6838 }, true, storedError); 6839 } else { 6840 shutdown(true, storedError); 6841 } 6842 }); 6843 isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { 6844 if (preventCancel === false) { 6845 shutdownWithAction(function () { 6846 return ReadableStreamCancel(_this, storedError); 6847 }, true, storedError); 6848 } else { 6849 shutdown(true, storedError); 6850 } 6851 }); 6852 isOrBecomesClosed(_this, reader._closedPromise, function () { 6853 if (preventClose === false) { 6854 shutdownWithAction(function () { 6855 return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); 6856 }); 6857 } else { 6858 shutdown(); 6859 } 6860 }); 6861 6862 if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { 6863 var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); 6864 6865 if (preventCancel === false) { 6866 shutdownWithAction(function () { 6867 return ReadableStreamCancel(_this, destClosed); 6868 }, true, destClosed); 6869 } else { 6870 shutdown(true, destClosed); 6871 } 6872 } 6873 6874 pipeLoop()["catch"](function (err) { 6875 currentWrite = Promise.resolve(); 6876 rethrowAssertionErrorRejection(err); 6877 }); 6878 6879 function waitForWritesToFinish() { 6880 var oldCurrentWrite = currentWrite; 6881 return currentWrite.then(function () { 6882 return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; 6883 }); 6884 } 6885 6886 function isOrBecomesErrored(stream, promise, action) { 6887 if (stream._state === 'errored') { 6888 action(stream._storedError); 6889 } else { 6890 promise["catch"](action)["catch"](rethrowAssertionErrorRejection); 6891 } 6892 } 6893 6894 function isOrBecomesClosed(stream, promise, action) { 6895 if (stream._state === 'closed') { 6896 action(); 6897 } else { 6898 promise.then(action)["catch"](rethrowAssertionErrorRejection); 6899 } 6900 } 6901 6902 function shutdownWithAction(action, originalIsError, originalError) { 6903 if (shuttingDown === true) { 6904 return; 6905 } 6906 6907 shuttingDown = true; 6908 6909 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 6910 waitForWritesToFinish().then(doTheRest); 6911 } else { 6912 doTheRest(); 6913 } 6914 6915 function doTheRest() { 6916 action().then(function () { 6917 return finalize(originalIsError, originalError); 6918 }, function (newError) { 6919 return finalize(true, newError); 6920 })["catch"](rethrowAssertionErrorRejection); 6921 } 6922 } 6923 6924 function shutdown(isError, error) { 6925 if (shuttingDown === true) { 6926 return; 6927 } 6928 6929 shuttingDown = true; 6930 6931 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 6932 waitForWritesToFinish().then(function () { 6933 return finalize(isError, error); 6934 })["catch"](rethrowAssertionErrorRejection); 6935 } else { 6936 finalize(isError, error); 6937 } 6938 } 6939 6940 function finalize(isError, error) { 6941 WritableStreamDefaultWriterRelease(writer); 6942 ReadableStreamReaderGenericRelease(reader); 6943 6944 if (isError) { 6945 reject(error); 6946 } else { 6947 resolve(undefined); 6948 } 6949 } 6950 }); 6951 } 6952 }, { 6953 key: 'tee', 6954 value: function tee() { 6955 if (IsReadableStream(this) === false) { 6956 throw streamBrandCheckException('tee'); 6957 } 6958 6959 var branches = ReadableStreamTee(this, false); 6960 return createArrayFromList(branches); 6961 } 6962 }, { 6963 key: 'locked', 6964 get: function get() { 6965 if (IsReadableStream(this) === false) { 6966 throw streamBrandCheckException('locked'); 6967 } 6968 6969 return IsReadableStreamLocked(this); 6970 } 6971 }]); 6972 6973 return ReadableStream; 6974 }(); 6975 6976 module.exports = { 6977 ReadableStream: ReadableStream, 6978 IsReadableStreamDisturbed: IsReadableStreamDisturbed, 6979 ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, 6980 ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, 6981 ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, 6982 ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize 6983 }; 6984 6985 function AcquireReadableStreamBYOBReader(stream) { 6986 return new ReadableStreamBYOBReader(stream); 6987 } 6988 6989 function AcquireReadableStreamDefaultReader(stream) { 6990 return new ReadableStreamDefaultReader(stream); 6991 } 6992 6993 function IsReadableStream(x) { 6994 if (!typeIsObject(x)) { 6995 return false; 6996 } 6997 6998 if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { 6999 return false; 7000 } 7001 7002 return true; 7003 } 7004 7005 function IsReadableStreamDisturbed(stream) { 7006 assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); 7007 return stream._disturbed; 7008 } 7009 7010 function IsReadableStreamLocked(stream) { 7011 assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); 7012 7013 if (stream._reader === undefined) { 7014 return false; 7015 } 7016 7017 return true; 7018 } 7019 7020 function ReadableStreamTee(stream, cloneForBranch2) { 7021 assert(IsReadableStream(stream) === true); 7022 assert(typeof cloneForBranch2 === 'boolean'); 7023 var reader = AcquireReadableStreamDefaultReader(stream); 7024 var teeState = { 7025 closedOrErrored: false, 7026 canceled1: false, 7027 canceled2: false, 7028 reason1: undefined, 7029 reason2: undefined 7030 }; 7031 teeState.promise = new Promise(function (resolve) { 7032 teeState._resolve = resolve; 7033 }); 7034 var pull = create_ReadableStreamTeePullFunction(); 7035 pull._reader = reader; 7036 pull._teeState = teeState; 7037 pull._cloneForBranch2 = cloneForBranch2; 7038 var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); 7039 cancel1._stream = stream; 7040 cancel1._teeState = teeState; 7041 var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); 7042 cancel2._stream = stream; 7043 cancel2._teeState = teeState; 7044 var underlyingSource1 = Object.create(Object.prototype); 7045 createDataProperty(underlyingSource1, 'pull', pull); 7046 createDataProperty(underlyingSource1, 'cancel', cancel1); 7047 var branch1Stream = new ReadableStream(underlyingSource1); 7048 var underlyingSource2 = Object.create(Object.prototype); 7049 createDataProperty(underlyingSource2, 'pull', pull); 7050 createDataProperty(underlyingSource2, 'cancel', cancel2); 7051 var branch2Stream = new ReadableStream(underlyingSource2); 7052 pull._branch1 = branch1Stream._readableStreamController; 7053 pull._branch2 = branch2Stream._readableStreamController; 7054 7055 reader._closedPromise["catch"](function (r) { 7056 if (teeState.closedOrErrored === true) { 7057 return; 7058 } 7059 7060 ReadableStreamDefaultControllerError(pull._branch1, r); 7061 ReadableStreamDefaultControllerError(pull._branch2, r); 7062 teeState.closedOrErrored = true; 7063 }); 7064 7065 return [branch1Stream, branch2Stream]; 7066 } 7067 7068 function create_ReadableStreamTeePullFunction() { 7069 function f() { 7070 var reader = f._reader, 7071 branch1 = f._branch1, 7072 branch2 = f._branch2, 7073 teeState = f._teeState; 7074 return ReadableStreamDefaultReaderRead(reader).then(function (result) { 7075 assert(typeIsObject(result)); 7076 var value = result.value; 7077 var done = result.done; 7078 assert(typeof done === 'boolean'); 7079 7080 if (done === true && teeState.closedOrErrored === false) { 7081 if (teeState.canceled1 === false) { 7082 ReadableStreamDefaultControllerClose(branch1); 7083 } 7084 7085 if (teeState.canceled2 === false) { 7086 ReadableStreamDefaultControllerClose(branch2); 7087 } 7088 7089 teeState.closedOrErrored = true; 7090 } 7091 7092 if (teeState.closedOrErrored === true) { 7093 return; 7094 } 7095 7096 var value1 = value; 7097 var value2 = value; 7098 7099 if (teeState.canceled1 === false) { 7100 ReadableStreamDefaultControllerEnqueue(branch1, value1); 7101 } 7102 7103 if (teeState.canceled2 === false) { 7104 ReadableStreamDefaultControllerEnqueue(branch2, value2); 7105 } 7106 }); 7107 } 7108 7109 return f; 7110 } 7111 7112 function create_ReadableStreamTeeBranch1CancelFunction() { 7113 function f(reason) { 7114 var stream = f._stream, 7115 teeState = f._teeState; 7116 teeState.canceled1 = true; 7117 teeState.reason1 = reason; 7118 7119 if (teeState.canceled2 === true) { 7120 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 7121 var cancelResult = ReadableStreamCancel(stream, compositeReason); 7122 7123 teeState._resolve(cancelResult); 7124 } 7125 7126 return teeState.promise; 7127 } 7128 7129 return f; 7130 } 7131 7132 function create_ReadableStreamTeeBranch2CancelFunction() { 7133 function f(reason) { 7134 var stream = f._stream, 7135 teeState = f._teeState; 7136 teeState.canceled2 = true; 7137 teeState.reason2 = reason; 7138 7139 if (teeState.canceled1 === true) { 7140 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 7141 var cancelResult = ReadableStreamCancel(stream, compositeReason); 7142 7143 teeState._resolve(cancelResult); 7144 } 7145 7146 return teeState.promise; 7147 } 7148 7149 return f; 7150 } 7151 7152 function ReadableStreamAddReadIntoRequest(stream) { 7153 assert(IsReadableStreamBYOBReader(stream._reader) === true); 7154 assert(stream._state === 'readable' || stream._state === 'closed'); 7155 var promise = new Promise(function (resolve, reject) { 7156 var readIntoRequest = { 7157 _resolve: resolve, 7158 _reject: reject 7159 }; 7160 7161 stream._reader._readIntoRequests.push(readIntoRequest); 7162 }); 7163 return promise; 7164 } 7165 7166 function ReadableStreamAddReadRequest(stream) { 7167 assert(IsReadableStreamDefaultReader(stream._reader) === true); 7168 assert(stream._state === 'readable'); 7169 var promise = new Promise(function (resolve, reject) { 7170 var readRequest = { 7171 _resolve: resolve, 7172 _reject: reject 7173 }; 7174 7175 stream._reader._readRequests.push(readRequest); 7176 }); 7177 return promise; 7178 } 7179 7180 function ReadableStreamCancel(stream, reason) { 7181 stream._disturbed = true; 7182 7183 if (stream._state === 'closed') { 7184 return Promise.resolve(undefined); 7185 } 7186 7187 if (stream._state === 'errored') { 7188 return Promise.reject(stream._storedError); 7189 } 7190 7191 ReadableStreamClose(stream); 7192 7193 var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); 7194 7195 return sourceCancelPromise.then(function () { 7196 return undefined; 7197 }); 7198 } 7199 7200 function ReadableStreamClose(stream) { 7201 assert(stream._state === 'readable'); 7202 stream._state = 'closed'; 7203 var reader = stream._reader; 7204 7205 if (reader === undefined) { 7206 return undefined; 7207 } 7208 7209 if (IsReadableStreamDefaultReader(reader) === true) { 7210 for (var i = 0; i < reader._readRequests.length; i++) { 7211 var _resolve = reader._readRequests[i]._resolve; 7212 7213 _resolve(CreateIterResultObject(undefined, true)); 7214 } 7215 7216 reader._readRequests = []; 7217 } 7218 7219 defaultReaderClosedPromiseResolve(reader); 7220 return undefined; 7221 } 7222 7223 function ReadableStreamError(stream, e) { 7224 assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); 7225 assert(stream._state === 'readable', 'state must be readable'); 7226 stream._state = 'errored'; 7227 stream._storedError = e; 7228 var reader = stream._reader; 7229 7230 if (reader === undefined) { 7231 return undefined; 7232 } 7233 7234 if (IsReadableStreamDefaultReader(reader) === true) { 7235 for (var i = 0; i < reader._readRequests.length; i++) { 7236 var readRequest = reader._readRequests[i]; 7237 7238 readRequest._reject(e); 7239 } 7240 7241 reader._readRequests = []; 7242 } else { 7243 assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); 7244 7245 for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { 7246 var readIntoRequest = reader._readIntoRequests[_i]; 7247 7248 readIntoRequest._reject(e); 7249 } 7250 7251 reader._readIntoRequests = []; 7252 } 7253 7254 defaultReaderClosedPromiseReject(reader, e); 7255 7256 reader._closedPromise["catch"](function () {}); 7257 } 7258 7259 function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { 7260 var reader = stream._reader; 7261 assert(reader._readIntoRequests.length > 0); 7262 7263 var readIntoRequest = reader._readIntoRequests.shift(); 7264 7265 readIntoRequest._resolve(CreateIterResultObject(chunk, done)); 7266 } 7267 7268 function ReadableStreamFulfillReadRequest(stream, chunk, done) { 7269 var reader = stream._reader; 7270 assert(reader._readRequests.length > 0); 7271 7272 var readRequest = reader._readRequests.shift(); 7273 7274 readRequest._resolve(CreateIterResultObject(chunk, done)); 7275 } 7276 7277 function ReadableStreamGetNumReadIntoRequests(stream) { 7278 return stream._reader._readIntoRequests.length; 7279 } 7280 7281 function ReadableStreamGetNumReadRequests(stream) { 7282 return stream._reader._readRequests.length; 7283 } 7284 7285 function ReadableStreamHasBYOBReader(stream) { 7286 var reader = stream._reader; 7287 7288 if (reader === undefined) { 7289 return false; 7290 } 7291 7292 if (IsReadableStreamBYOBReader(reader) === false) { 7293 return false; 7294 } 7295 7296 return true; 7297 } 7298 7299 function ReadableStreamHasDefaultReader(stream) { 7300 var reader = stream._reader; 7301 7302 if (reader === undefined) { 7303 return false; 7304 } 7305 7306 if (IsReadableStreamDefaultReader(reader) === false) { 7307 return false; 7308 } 7309 7310 return true; 7311 } 7312 7313 var ReadableStreamDefaultReader = function () { 7314 function ReadableStreamDefaultReader(stream) { 7315 _classCallCheck(this, ReadableStreamDefaultReader); 7316 7317 if (IsReadableStream(stream) === false) { 7318 throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); 7319 } 7320 7321 if (IsReadableStreamLocked(stream) === true) { 7322 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 7323 } 7324 7325 ReadableStreamReaderGenericInitialize(this, stream); 7326 this._readRequests = []; 7327 } 7328 7329 _createClass(ReadableStreamDefaultReader, [{ 7330 key: 'cancel', 7331 value: function cancel(reason) { 7332 if (IsReadableStreamDefaultReader(this) === false) { 7333 return Promise.reject(defaultReaderBrandCheckException('cancel')); 7334 } 7335 7336 if (this._ownerReadableStream === undefined) { 7337 return Promise.reject(readerLockException('cancel')); 7338 } 7339 7340 return ReadableStreamReaderGenericCancel(this, reason); 7341 } 7342 }, { 7343 key: 'read', 7344 value: function read() { 7345 if (IsReadableStreamDefaultReader(this) === false) { 7346 return Promise.reject(defaultReaderBrandCheckException('read')); 7347 } 7348 7349 if (this._ownerReadableStream === undefined) { 7350 return Promise.reject(readerLockException('read from')); 7351 } 7352 7353 return ReadableStreamDefaultReaderRead(this); 7354 } 7355 }, { 7356 key: 'releaseLock', 7357 value: function releaseLock() { 7358 if (IsReadableStreamDefaultReader(this) === false) { 7359 throw defaultReaderBrandCheckException('releaseLock'); 7360 } 7361 7362 if (this._ownerReadableStream === undefined) { 7363 return; 7364 } 7365 7366 if (this._readRequests.length > 0) { 7367 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 7368 } 7369 7370 ReadableStreamReaderGenericRelease(this); 7371 } 7372 }, { 7373 key: 'closed', 7374 get: function get() { 7375 if (IsReadableStreamDefaultReader(this) === false) { 7376 return Promise.reject(defaultReaderBrandCheckException('closed')); 7377 } 7378 7379 return this._closedPromise; 7380 } 7381 }]); 7382 7383 return ReadableStreamDefaultReader; 7384 }(); 7385 7386 var ReadableStreamBYOBReader = function () { 7387 function ReadableStreamBYOBReader(stream) { 7388 _classCallCheck(this, ReadableStreamBYOBReader); 7389 7390 if (!IsReadableStream(stream)) { 7391 throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); 7392 } 7393 7394 if (IsReadableByteStreamController(stream._readableStreamController) === false) { 7395 throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); 7396 } 7397 7398 if (IsReadableStreamLocked(stream)) { 7399 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 7400 } 7401 7402 ReadableStreamReaderGenericInitialize(this, stream); 7403 this._readIntoRequests = []; 7404 } 7405 7406 _createClass(ReadableStreamBYOBReader, [{ 7407 key: 'cancel', 7408 value: function cancel(reason) { 7409 if (!IsReadableStreamBYOBReader(this)) { 7410 return Promise.reject(byobReaderBrandCheckException('cancel')); 7411 } 7412 7413 if (this._ownerReadableStream === undefined) { 7414 return Promise.reject(readerLockException('cancel')); 7415 } 7416 7417 return ReadableStreamReaderGenericCancel(this, reason); 7418 } 7419 }, { 7420 key: 'read', 7421 value: function read(view) { 7422 if (!IsReadableStreamBYOBReader(this)) { 7423 return Promise.reject(byobReaderBrandCheckException('read')); 7424 } 7425 7426 if (this._ownerReadableStream === undefined) { 7427 return Promise.reject(readerLockException('read from')); 7428 } 7429 7430 if (!ArrayBuffer.isView(view)) { 7431 return Promise.reject(new TypeError('view must be an array buffer view')); 7432 } 7433 7434 if (view.byteLength === 0) { 7435 return Promise.reject(new TypeError('view must have non-zero byteLength')); 7436 } 7437 7438 return ReadableStreamBYOBReaderRead(this, view); 7439 } 7440 }, { 7441 key: 'releaseLock', 7442 value: function releaseLock() { 7443 if (!IsReadableStreamBYOBReader(this)) { 7444 throw byobReaderBrandCheckException('releaseLock'); 7445 } 7446 7447 if (this._ownerReadableStream === undefined) { 7448 return; 7449 } 7450 7451 if (this._readIntoRequests.length > 0) { 7452 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 7453 } 7454 7455 ReadableStreamReaderGenericRelease(this); 7456 } 7457 }, { 7458 key: 'closed', 7459 get: function get() { 7460 if (!IsReadableStreamBYOBReader(this)) { 7461 return Promise.reject(byobReaderBrandCheckException('closed')); 7462 } 7463 7464 return this._closedPromise; 7465 } 7466 }]); 7467 7468 return ReadableStreamBYOBReader; 7469 }(); 7470 7471 function IsReadableStreamBYOBReader(x) { 7472 if (!typeIsObject(x)) { 7473 return false; 7474 } 7475 7476 if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { 7477 return false; 7478 } 7479 7480 return true; 7481 } 7482 7483 function IsReadableStreamDefaultReader(x) { 7484 if (!typeIsObject(x)) { 7485 return false; 7486 } 7487 7488 if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { 7489 return false; 7490 } 7491 7492 return true; 7493 } 7494 7495 function ReadableStreamReaderGenericInitialize(reader, stream) { 7496 reader._ownerReadableStream = stream; 7497 stream._reader = reader; 7498 7499 if (stream._state === 'readable') { 7500 defaultReaderClosedPromiseInitialize(reader); 7501 } else if (stream._state === 'closed') { 7502 defaultReaderClosedPromiseInitializeAsResolved(reader); 7503 } else { 7504 assert(stream._state === 'errored', 'state must be errored'); 7505 defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); 7506 7507 reader._closedPromise["catch"](function () {}); 7508 } 7509 } 7510 7511 function ReadableStreamReaderGenericCancel(reader, reason) { 7512 var stream = reader._ownerReadableStream; 7513 assert(stream !== undefined); 7514 return ReadableStreamCancel(stream, reason); 7515 } 7516 7517 function ReadableStreamReaderGenericRelease(reader) { 7518 assert(reader._ownerReadableStream !== undefined); 7519 assert(reader._ownerReadableStream._reader === reader); 7520 7521 if (reader._ownerReadableStream._state === 'readable') { 7522 defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 7523 } else { 7524 defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 7525 } 7526 7527 reader._closedPromise["catch"](function () {}); 7528 7529 reader._ownerReadableStream._reader = undefined; 7530 reader._ownerReadableStream = undefined; 7531 } 7532 7533 function ReadableStreamBYOBReaderRead(reader, view) { 7534 var stream = reader._ownerReadableStream; 7535 assert(stream !== undefined); 7536 stream._disturbed = true; 7537 7538 if (stream._state === 'errored') { 7539 return Promise.reject(stream._storedError); 7540 } 7541 7542 return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); 7543 } 7544 7545 function ReadableStreamDefaultReaderRead(reader) { 7546 var stream = reader._ownerReadableStream; 7547 assert(stream !== undefined); 7548 stream._disturbed = true; 7549 7550 if (stream._state === 'closed') { 7551 return Promise.resolve(CreateIterResultObject(undefined, true)); 7552 } 7553 7554 if (stream._state === 'errored') { 7555 return Promise.reject(stream._storedError); 7556 } 7557 7558 assert(stream._state === 'readable'); 7559 return stream._readableStreamController.__pullSteps(); 7560 } 7561 7562 var ReadableStreamDefaultController = function () { 7563 function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { 7564 _classCallCheck(this, ReadableStreamDefaultController); 7565 7566 if (IsReadableStream(stream) === false) { 7567 throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); 7568 } 7569 7570 if (stream._readableStreamController !== undefined) { 7571 throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); 7572 } 7573 7574 this._controlledReadableStream = stream; 7575 this._underlyingSource = underlyingSource; 7576 this._queue = undefined; 7577 this._queueTotalSize = undefined; 7578 ResetQueue(this); 7579 this._started = false; 7580 this._closeRequested = false; 7581 this._pullAgain = false; 7582 this._pulling = false; 7583 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 7584 this._strategySize = normalizedStrategy.size; 7585 this._strategyHWM = normalizedStrategy.highWaterMark; 7586 var controller = this; 7587 var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); 7588 Promise.resolve(startResult).then(function () { 7589 controller._started = true; 7590 assert(controller._pulling === false); 7591 assert(controller._pullAgain === false); 7592 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 7593 }, function (r) { 7594 ReadableStreamDefaultControllerErrorIfNeeded(controller, r); 7595 })["catch"](rethrowAssertionErrorRejection); 7596 } 7597 7598 _createClass(ReadableStreamDefaultController, [{ 7599 key: 'close', 7600 value: function close() { 7601 if (IsReadableStreamDefaultController(this) === false) { 7602 throw defaultControllerBrandCheckException('close'); 7603 } 7604 7605 if (this._closeRequested === true) { 7606 throw new TypeError('The stream has already been closed; do not close it again!'); 7607 } 7608 7609 var state = this._controlledReadableStream._state; 7610 7611 if (state !== 'readable') { 7612 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 7613 } 7614 7615 ReadableStreamDefaultControllerClose(this); 7616 } 7617 }, { 7618 key: 'enqueue', 7619 value: function enqueue(chunk) { 7620 if (IsReadableStreamDefaultController(this) === false) { 7621 throw defaultControllerBrandCheckException('enqueue'); 7622 } 7623 7624 if (this._closeRequested === true) { 7625 throw new TypeError('stream is closed or draining'); 7626 } 7627 7628 var state = this._controlledReadableStream._state; 7629 7630 if (state !== 'readable') { 7631 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 7632 } 7633 7634 return ReadableStreamDefaultControllerEnqueue(this, chunk); 7635 } 7636 }, { 7637 key: 'error', 7638 value: function error(e) { 7639 if (IsReadableStreamDefaultController(this) === false) { 7640 throw defaultControllerBrandCheckException('error'); 7641 } 7642 7643 var stream = this._controlledReadableStream; 7644 7645 if (stream._state !== 'readable') { 7646 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 7647 } 7648 7649 ReadableStreamDefaultControllerError(this, e); 7650 } 7651 }, { 7652 key: '__cancelSteps', 7653 value: function __cancelSteps(reason) { 7654 ResetQueue(this); 7655 return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); 7656 } 7657 }, { 7658 key: '__pullSteps', 7659 value: function __pullSteps() { 7660 var stream = this._controlledReadableStream; 7661 7662 if (this._queue.length > 0) { 7663 var chunk = DequeueValue(this); 7664 7665 if (this._closeRequested === true && this._queue.length === 0) { 7666 ReadableStreamClose(stream); 7667 } else { 7668 ReadableStreamDefaultControllerCallPullIfNeeded(this); 7669 } 7670 7671 return Promise.resolve(CreateIterResultObject(chunk, false)); 7672 } 7673 7674 var pendingPromise = ReadableStreamAddReadRequest(stream); 7675 ReadableStreamDefaultControllerCallPullIfNeeded(this); 7676 return pendingPromise; 7677 } 7678 }, { 7679 key: 'desiredSize', 7680 get: function get() { 7681 if (IsReadableStreamDefaultController(this) === false) { 7682 throw defaultControllerBrandCheckException('desiredSize'); 7683 } 7684 7685 return ReadableStreamDefaultControllerGetDesiredSize(this); 7686 } 7687 }]); 7688 7689 return ReadableStreamDefaultController; 7690 }(); 7691 7692 function IsReadableStreamDefaultController(x) { 7693 if (!typeIsObject(x)) { 7694 return false; 7695 } 7696 7697 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { 7698 return false; 7699 } 7700 7701 return true; 7702 } 7703 7704 function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { 7705 var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); 7706 7707 if (shouldPull === false) { 7708 return undefined; 7709 } 7710 7711 if (controller._pulling === true) { 7712 controller._pullAgain = true; 7713 return undefined; 7714 } 7715 7716 assert(controller._pullAgain === false); 7717 controller._pulling = true; 7718 var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); 7719 pullPromise.then(function () { 7720 controller._pulling = false; 7721 7722 if (controller._pullAgain === true) { 7723 controller._pullAgain = false; 7724 return ReadableStreamDefaultControllerCallPullIfNeeded(controller); 7725 } 7726 7727 return undefined; 7728 }, function (e) { 7729 ReadableStreamDefaultControllerErrorIfNeeded(controller, e); 7730 })["catch"](rethrowAssertionErrorRejection); 7731 return undefined; 7732 } 7733 7734 function ReadableStreamDefaultControllerShouldCallPull(controller) { 7735 var stream = controller._controlledReadableStream; 7736 7737 if (stream._state === 'closed' || stream._state === 'errored') { 7738 return false; 7739 } 7740 7741 if (controller._closeRequested === true) { 7742 return false; 7743 } 7744 7745 if (controller._started === false) { 7746 return false; 7747 } 7748 7749 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 7750 return true; 7751 } 7752 7753 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 7754 7755 if (desiredSize > 0) { 7756 return true; 7757 } 7758 7759 return false; 7760 } 7761 7762 function ReadableStreamDefaultControllerClose(controller) { 7763 var stream = controller._controlledReadableStream; 7764 assert(controller._closeRequested === false); 7765 assert(stream._state === 'readable'); 7766 controller._closeRequested = true; 7767 7768 if (controller._queue.length === 0) { 7769 ReadableStreamClose(stream); 7770 } 7771 } 7772 7773 function ReadableStreamDefaultControllerEnqueue(controller, chunk) { 7774 var stream = controller._controlledReadableStream; 7775 assert(controller._closeRequested === false); 7776 assert(stream._state === 'readable'); 7777 7778 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 7779 ReadableStreamFulfillReadRequest(stream, chunk, false); 7780 } else { 7781 var chunkSize = 1; 7782 7783 if (controller._strategySize !== undefined) { 7784 var strategySize = controller._strategySize; 7785 7786 try { 7787 chunkSize = strategySize(chunk); 7788 } catch (chunkSizeE) { 7789 ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 7790 throw chunkSizeE; 7791 } 7792 } 7793 7794 try { 7795 EnqueueValueWithSize(controller, chunk, chunkSize); 7796 } catch (enqueueE) { 7797 ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 7798 throw enqueueE; 7799 } 7800 } 7801 7802 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 7803 return undefined; 7804 } 7805 7806 function ReadableStreamDefaultControllerError(controller, e) { 7807 var stream = controller._controlledReadableStream; 7808 assert(stream._state === 'readable'); 7809 ResetQueue(controller); 7810 ReadableStreamError(stream, e); 7811 } 7812 7813 function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { 7814 if (controller._controlledReadableStream._state === 'readable') { 7815 ReadableStreamDefaultControllerError(controller, e); 7816 } 7817 } 7818 7819 function ReadableStreamDefaultControllerGetDesiredSize(controller) { 7820 var stream = controller._controlledReadableStream; 7821 var state = stream._state; 7822 7823 if (state === 'errored') { 7824 return null; 7825 } 7826 7827 if (state === 'closed') { 7828 return 0; 7829 } 7830 7831 return controller._strategyHWM - controller._queueTotalSize; 7832 } 7833 7834 var ReadableStreamBYOBRequest = function () { 7835 function ReadableStreamBYOBRequest(controller, view) { 7836 _classCallCheck(this, ReadableStreamBYOBRequest); 7837 7838 this._associatedReadableByteStreamController = controller; 7839 this._view = view; 7840 } 7841 7842 _createClass(ReadableStreamBYOBRequest, [{ 7843 key: 'respond', 7844 value: function respond(bytesWritten) { 7845 if (IsReadableStreamBYOBRequest(this) === false) { 7846 throw byobRequestBrandCheckException('respond'); 7847 } 7848 7849 if (this._associatedReadableByteStreamController === undefined) { 7850 throw new TypeError('This BYOB request has been invalidated'); 7851 } 7852 7853 ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); 7854 } 7855 }, { 7856 key: 'respondWithNewView', 7857 value: function respondWithNewView(view) { 7858 if (IsReadableStreamBYOBRequest(this) === false) { 7859 throw byobRequestBrandCheckException('respond'); 7860 } 7861 7862 if (this._associatedReadableByteStreamController === undefined) { 7863 throw new TypeError('This BYOB request has been invalidated'); 7864 } 7865 7866 if (!ArrayBuffer.isView(view)) { 7867 throw new TypeError('You can only respond with array buffer views'); 7868 } 7869 7870 ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); 7871 } 7872 }, { 7873 key: 'view', 7874 get: function get() { 7875 return this._view; 7876 } 7877 }]); 7878 7879 return ReadableStreamBYOBRequest; 7880 }(); 7881 7882 var ReadableByteStreamController = function () { 7883 function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { 7884 _classCallCheck(this, ReadableByteStreamController); 7885 7886 if (IsReadableStream(stream) === false) { 7887 throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); 7888 } 7889 7890 if (stream._readableStreamController !== undefined) { 7891 throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); 7892 } 7893 7894 this._controlledReadableStream = stream; 7895 this._underlyingByteSource = underlyingByteSource; 7896 this._pullAgain = false; 7897 this._pulling = false; 7898 ReadableByteStreamControllerClearPendingPullIntos(this); 7899 this._queue = this._queueTotalSize = undefined; 7900 ResetQueue(this); 7901 this._closeRequested = false; 7902 this._started = false; 7903 this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); 7904 var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; 7905 7906 if (autoAllocateChunkSize !== undefined) { 7907 if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { 7908 throw new RangeError('autoAllocateChunkSize must be a positive integer'); 7909 } 7910 } 7911 7912 this._autoAllocateChunkSize = autoAllocateChunkSize; 7913 this._pendingPullIntos = []; 7914 var controller = this; 7915 var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); 7916 Promise.resolve(startResult).then(function () { 7917 controller._started = true; 7918 assert(controller._pulling === false); 7919 assert(controller._pullAgain === false); 7920 ReadableByteStreamControllerCallPullIfNeeded(controller); 7921 }, function (r) { 7922 if (stream._state === 'readable') { 7923 ReadableByteStreamControllerError(controller, r); 7924 } 7925 })["catch"](rethrowAssertionErrorRejection); 7926 } 7927 7928 _createClass(ReadableByteStreamController, [{ 7929 key: 'close', 7930 value: function close() { 7931 if (IsReadableByteStreamController(this) === false) { 7932 throw byteStreamControllerBrandCheckException('close'); 7933 } 7934 7935 if (this._closeRequested === true) { 7936 throw new TypeError('The stream has already been closed; do not close it again!'); 7937 } 7938 7939 var state = this._controlledReadableStream._state; 7940 7941 if (state !== 'readable') { 7942 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 7943 } 7944 7945 ReadableByteStreamControllerClose(this); 7946 } 7947 }, { 7948 key: 'enqueue', 7949 value: function enqueue(chunk) { 7950 if (IsReadableByteStreamController(this) === false) { 7951 throw byteStreamControllerBrandCheckException('enqueue'); 7952 } 7953 7954 if (this._closeRequested === true) { 7955 throw new TypeError('stream is closed or draining'); 7956 } 7957 7958 var state = this._controlledReadableStream._state; 7959 7960 if (state !== 'readable') { 7961 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 7962 } 7963 7964 if (!ArrayBuffer.isView(chunk)) { 7965 throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); 7966 } 7967 7968 ReadableByteStreamControllerEnqueue(this, chunk); 7969 } 7970 }, { 7971 key: 'error', 7972 value: function error(e) { 7973 if (IsReadableByteStreamController(this) === false) { 7974 throw byteStreamControllerBrandCheckException('error'); 7975 } 7976 7977 var stream = this._controlledReadableStream; 7978 7979 if (stream._state !== 'readable') { 7980 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 7981 } 7982 7983 ReadableByteStreamControllerError(this, e); 7984 } 7985 }, { 7986 key: '__cancelSteps', 7987 value: function __cancelSteps(reason) { 7988 if (this._pendingPullIntos.length > 0) { 7989 var firstDescriptor = this._pendingPullIntos[0]; 7990 firstDescriptor.bytesFilled = 0; 7991 } 7992 7993 ResetQueue(this); 7994 return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); 7995 } 7996 }, { 7997 key: '__pullSteps', 7998 value: function __pullSteps() { 7999 var stream = this._controlledReadableStream; 8000 assert(ReadableStreamHasDefaultReader(stream) === true); 8001 8002 if (this._queueTotalSize > 0) { 8003 assert(ReadableStreamGetNumReadRequests(stream) === 0); 8004 8005 var entry = this._queue.shift(); 8006 8007 this._queueTotalSize -= entry.byteLength; 8008 ReadableByteStreamControllerHandleQueueDrain(this); 8009 var view = void 0; 8010 8011 try { 8012 view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); 8013 } catch (viewE) { 8014 return Promise.reject(viewE); 8015 } 8016 8017 return Promise.resolve(CreateIterResultObject(view, false)); 8018 } 8019 8020 var autoAllocateChunkSize = this._autoAllocateChunkSize; 8021 8022 if (autoAllocateChunkSize !== undefined) { 8023 var buffer = void 0; 8024 8025 try { 8026 buffer = new ArrayBuffer(autoAllocateChunkSize); 8027 } catch (bufferE) { 8028 return Promise.reject(bufferE); 8029 } 8030 8031 var pullIntoDescriptor = { 8032 buffer: buffer, 8033 byteOffset: 0, 8034 byteLength: autoAllocateChunkSize, 8035 bytesFilled: 0, 8036 elementSize: 1, 8037 ctor: Uint8Array, 8038 readerType: 'default' 8039 }; 8040 8041 this._pendingPullIntos.push(pullIntoDescriptor); 8042 } 8043 8044 var promise = ReadableStreamAddReadRequest(stream); 8045 ReadableByteStreamControllerCallPullIfNeeded(this); 8046 return promise; 8047 } 8048 }, { 8049 key: 'byobRequest', 8050 get: function get() { 8051 if (IsReadableByteStreamController(this) === false) { 8052 throw byteStreamControllerBrandCheckException('byobRequest'); 8053 } 8054 8055 if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { 8056 var firstDescriptor = this._pendingPullIntos[0]; 8057 var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); 8058 this._byobRequest = new ReadableStreamBYOBRequest(this, view); 8059 } 8060 8061 return this._byobRequest; 8062 } 8063 }, { 8064 key: 'desiredSize', 8065 get: function get() { 8066 if (IsReadableByteStreamController(this) === false) { 8067 throw byteStreamControllerBrandCheckException('desiredSize'); 8068 } 8069 8070 return ReadableByteStreamControllerGetDesiredSize(this); 8071 } 8072 }]); 8073 8074 return ReadableByteStreamController; 8075 }(); 8076 8077 function IsReadableByteStreamController(x) { 8078 if (!typeIsObject(x)) { 8079 return false; 8080 } 8081 8082 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { 8083 return false; 8084 } 8085 8086 return true; 8087 } 8088 8089 function IsReadableStreamBYOBRequest(x) { 8090 if (!typeIsObject(x)) { 8091 return false; 8092 } 8093 8094 if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { 8095 return false; 8096 } 8097 8098 return true; 8099 } 8100 8101 function ReadableByteStreamControllerCallPullIfNeeded(controller) { 8102 var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); 8103 8104 if (shouldPull === false) { 8105 return undefined; 8106 } 8107 8108 if (controller._pulling === true) { 8109 controller._pullAgain = true; 8110 return undefined; 8111 } 8112 8113 assert(controller._pullAgain === false); 8114 controller._pulling = true; 8115 var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); 8116 pullPromise.then(function () { 8117 controller._pulling = false; 8118 8119 if (controller._pullAgain === true) { 8120 controller._pullAgain = false; 8121 ReadableByteStreamControllerCallPullIfNeeded(controller); 8122 } 8123 }, function (e) { 8124 if (controller._controlledReadableStream._state === 'readable') { 8125 ReadableByteStreamControllerError(controller, e); 8126 } 8127 })["catch"](rethrowAssertionErrorRejection); 8128 return undefined; 8129 } 8130 8131 function ReadableByteStreamControllerClearPendingPullIntos(controller) { 8132 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 8133 controller._pendingPullIntos = []; 8134 } 8135 8136 function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { 8137 assert(stream._state !== 'errored', 'state must not be errored'); 8138 var done = false; 8139 8140 if (stream._state === 'closed') { 8141 assert(pullIntoDescriptor.bytesFilled === 0); 8142 done = true; 8143 } 8144 8145 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 8146 8147 if (pullIntoDescriptor.readerType === 'default') { 8148 ReadableStreamFulfillReadRequest(stream, filledView, done); 8149 } else { 8150 assert(pullIntoDescriptor.readerType === 'byob'); 8151 ReadableStreamFulfillReadIntoRequest(stream, filledView, done); 8152 } 8153 } 8154 8155 function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { 8156 var bytesFilled = pullIntoDescriptor.bytesFilled; 8157 var elementSize = pullIntoDescriptor.elementSize; 8158 assert(bytesFilled <= pullIntoDescriptor.byteLength); 8159 assert(bytesFilled % elementSize === 0); 8160 return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); 8161 } 8162 8163 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { 8164 controller._queue.push({ 8165 buffer: buffer, 8166 byteOffset: byteOffset, 8167 byteLength: byteLength 8168 }); 8169 8170 controller._queueTotalSize += byteLength; 8171 } 8172 8173 function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { 8174 var elementSize = pullIntoDescriptor.elementSize; 8175 var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; 8176 var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); 8177 var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; 8178 var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; 8179 var totalBytesToCopyRemaining = maxBytesToCopy; 8180 var ready = false; 8181 8182 if (maxAlignedBytes > currentAlignedBytes) { 8183 totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; 8184 ready = true; 8185 } 8186 8187 var queue = controller._queue; 8188 8189 while (totalBytesToCopyRemaining > 0) { 8190 var headOfQueue = queue[0]; 8191 var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); 8192 var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 8193 ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); 8194 8195 if (headOfQueue.byteLength === bytesToCopy) { 8196 queue.shift(); 8197 } else { 8198 headOfQueue.byteOffset += bytesToCopy; 8199 headOfQueue.byteLength -= bytesToCopy; 8200 } 8201 8202 controller._queueTotalSize -= bytesToCopy; 8203 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); 8204 totalBytesToCopyRemaining -= bytesToCopy; 8205 } 8206 8207 if (ready === false) { 8208 assert(controller._queueTotalSize === 0, 'queue must be empty'); 8209 assert(pullIntoDescriptor.bytesFilled > 0); 8210 assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); 8211 } 8212 8213 return ready; 8214 } 8215 8216 function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { 8217 assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); 8218 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 8219 pullIntoDescriptor.bytesFilled += size; 8220 } 8221 8222 function ReadableByteStreamControllerHandleQueueDrain(controller) { 8223 assert(controller._controlledReadableStream._state === 'readable'); 8224 8225 if (controller._queueTotalSize === 0 && controller._closeRequested === true) { 8226 ReadableStreamClose(controller._controlledReadableStream); 8227 } else { 8228 ReadableByteStreamControllerCallPullIfNeeded(controller); 8229 } 8230 } 8231 8232 function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { 8233 if (controller._byobRequest === undefined) { 8234 return; 8235 } 8236 8237 controller._byobRequest._associatedReadableByteStreamController = undefined; 8238 controller._byobRequest._view = undefined; 8239 controller._byobRequest = undefined; 8240 } 8241 8242 function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { 8243 assert(controller._closeRequested === false); 8244 8245 while (controller._pendingPullIntos.length > 0) { 8246 if (controller._queueTotalSize === 0) { 8247 return; 8248 } 8249 8250 var pullIntoDescriptor = controller._pendingPullIntos[0]; 8251 8252 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 8253 ReadableByteStreamControllerShiftPendingPullInto(controller); 8254 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 8255 } 8256 } 8257 } 8258 8259 function ReadableByteStreamControllerPullInto(controller, view) { 8260 var stream = controller._controlledReadableStream; 8261 var elementSize = 1; 8262 8263 if (view.constructor !== DataView) { 8264 elementSize = view.constructor.BYTES_PER_ELEMENT; 8265 } 8266 8267 var ctor = view.constructor; 8268 var pullIntoDescriptor = { 8269 buffer: view.buffer, 8270 byteOffset: view.byteOffset, 8271 byteLength: view.byteLength, 8272 bytesFilled: 0, 8273 elementSize: elementSize, 8274 ctor: ctor, 8275 readerType: 'byob' 8276 }; 8277 8278 if (controller._pendingPullIntos.length > 0) { 8279 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 8280 8281 controller._pendingPullIntos.push(pullIntoDescriptor); 8282 8283 return ReadableStreamAddReadIntoRequest(stream); 8284 } 8285 8286 if (stream._state === 'closed') { 8287 var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); 8288 return Promise.resolve(CreateIterResultObject(emptyView, true)); 8289 } 8290 8291 if (controller._queueTotalSize > 0) { 8292 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 8293 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 8294 ReadableByteStreamControllerHandleQueueDrain(controller); 8295 return Promise.resolve(CreateIterResultObject(filledView, false)); 8296 } 8297 8298 if (controller._closeRequested === true) { 8299 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 8300 ReadableByteStreamControllerError(controller, e); 8301 return Promise.reject(e); 8302 } 8303 } 8304 8305 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 8306 8307 controller._pendingPullIntos.push(pullIntoDescriptor); 8308 8309 var promise = ReadableStreamAddReadIntoRequest(stream); 8310 ReadableByteStreamControllerCallPullIfNeeded(controller); 8311 return promise; 8312 } 8313 8314 function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { 8315 firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); 8316 assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); 8317 var stream = controller._controlledReadableStream; 8318 8319 if (ReadableStreamHasBYOBReader(stream) === true) { 8320 while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { 8321 var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); 8322 ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); 8323 } 8324 } 8325 } 8326 8327 function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { 8328 if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { 8329 throw new RangeError('bytesWritten out of range'); 8330 } 8331 8332 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); 8333 8334 if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { 8335 return; 8336 } 8337 8338 ReadableByteStreamControllerShiftPendingPullInto(controller); 8339 var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; 8340 8341 if (remainderSize > 0) { 8342 var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 8343 var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); 8344 ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); 8345 } 8346 8347 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 8348 pullIntoDescriptor.bytesFilled -= remainderSize; 8349 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 8350 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 8351 } 8352 8353 function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { 8354 var firstDescriptor = controller._pendingPullIntos[0]; 8355 var stream = controller._controlledReadableStream; 8356 8357 if (stream._state === 'closed') { 8358 if (bytesWritten !== 0) { 8359 throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); 8360 } 8361 8362 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); 8363 } else { 8364 assert(stream._state === 'readable'); 8365 ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); 8366 } 8367 } 8368 8369 function ReadableByteStreamControllerShiftPendingPullInto(controller) { 8370 var descriptor = controller._pendingPullIntos.shift(); 8371 8372 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 8373 return descriptor; 8374 } 8375 8376 function ReadableByteStreamControllerShouldCallPull(controller) { 8377 var stream = controller._controlledReadableStream; 8378 8379 if (stream._state !== 'readable') { 8380 return false; 8381 } 8382 8383 if (controller._closeRequested === true) { 8384 return false; 8385 } 8386 8387 if (controller._started === false) { 8388 return false; 8389 } 8390 8391 if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 8392 return true; 8393 } 8394 8395 if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { 8396 return true; 8397 } 8398 8399 if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { 8400 return true; 8401 } 8402 8403 return false; 8404 } 8405 8406 function ReadableByteStreamControllerClose(controller) { 8407 var stream = controller._controlledReadableStream; 8408 assert(controller._closeRequested === false); 8409 assert(stream._state === 'readable'); 8410 8411 if (controller._queueTotalSize > 0) { 8412 controller._closeRequested = true; 8413 return; 8414 } 8415 8416 if (controller._pendingPullIntos.length > 0) { 8417 var firstPendingPullInto = controller._pendingPullIntos[0]; 8418 8419 if (firstPendingPullInto.bytesFilled > 0) { 8420 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 8421 ReadableByteStreamControllerError(controller, e); 8422 throw e; 8423 } 8424 } 8425 8426 ReadableStreamClose(stream); 8427 } 8428 8429 function ReadableByteStreamControllerEnqueue(controller, chunk) { 8430 var stream = controller._controlledReadableStream; 8431 assert(controller._closeRequested === false); 8432 assert(stream._state === 'readable'); 8433 var buffer = chunk.buffer; 8434 var byteOffset = chunk.byteOffset; 8435 var byteLength = chunk.byteLength; 8436 var transferredBuffer = TransferArrayBuffer(buffer); 8437 8438 if (ReadableStreamHasDefaultReader(stream) === true) { 8439 if (ReadableStreamGetNumReadRequests(stream) === 0) { 8440 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 8441 } else { 8442 assert(controller._queue.length === 0); 8443 var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); 8444 ReadableStreamFulfillReadRequest(stream, transferredView, false); 8445 } 8446 } else if (ReadableStreamHasBYOBReader(stream) === true) { 8447 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 8448 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 8449 } else { 8450 assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); 8451 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 8452 } 8453 } 8454 8455 function ReadableByteStreamControllerError(controller, e) { 8456 var stream = controller._controlledReadableStream; 8457 assert(stream._state === 'readable'); 8458 ReadableByteStreamControllerClearPendingPullIntos(controller); 8459 ResetQueue(controller); 8460 ReadableStreamError(stream, e); 8461 } 8462 8463 function ReadableByteStreamControllerGetDesiredSize(controller) { 8464 var stream = controller._controlledReadableStream; 8465 var state = stream._state; 8466 8467 if (state === 'errored') { 8468 return null; 8469 } 8470 8471 if (state === 'closed') { 8472 return 0; 8473 } 8474 8475 return controller._strategyHWM - controller._queueTotalSize; 8476 } 8477 8478 function ReadableByteStreamControllerRespond(controller, bytesWritten) { 8479 bytesWritten = Number(bytesWritten); 8480 8481 if (IsFiniteNonNegativeNumber(bytesWritten) === false) { 8482 throw new RangeError('bytesWritten must be a finite'); 8483 } 8484 8485 assert(controller._pendingPullIntos.length > 0); 8486 ReadableByteStreamControllerRespondInternal(controller, bytesWritten); 8487 } 8488 8489 function ReadableByteStreamControllerRespondWithNewView(controller, view) { 8490 assert(controller._pendingPullIntos.length > 0); 8491 var firstDescriptor = controller._pendingPullIntos[0]; 8492 8493 if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { 8494 throw new RangeError('The region specified by view does not match byobRequest'); 8495 } 8496 8497 if (firstDescriptor.byteLength !== view.byteLength) { 8498 throw new RangeError('The buffer of view has different capacity than byobRequest'); 8499 } 8500 8501 firstDescriptor.buffer = view.buffer; 8502 ReadableByteStreamControllerRespondInternal(controller, view.byteLength); 8503 } 8504 8505 function streamBrandCheckException(name) { 8506 return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); 8507 } 8508 8509 function readerLockException(name) { 8510 return new TypeError('Cannot ' + name + ' a stream using a released reader'); 8511 } 8512 8513 function defaultReaderBrandCheckException(name) { 8514 return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); 8515 } 8516 8517 function defaultReaderClosedPromiseInitialize(reader) { 8518 reader._closedPromise = new Promise(function (resolve, reject) { 8519 reader._closedPromise_resolve = resolve; 8520 reader._closedPromise_reject = reject; 8521 }); 8522 } 8523 8524 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { 8525 reader._closedPromise = Promise.reject(reason); 8526 reader._closedPromise_resolve = undefined; 8527 reader._closedPromise_reject = undefined; 8528 } 8529 8530 function defaultReaderClosedPromiseInitializeAsResolved(reader) { 8531 reader._closedPromise = Promise.resolve(undefined); 8532 reader._closedPromise_resolve = undefined; 8533 reader._closedPromise_reject = undefined; 8534 } 8535 8536 function defaultReaderClosedPromiseReject(reader, reason) { 8537 assert(reader._closedPromise_resolve !== undefined); 8538 assert(reader._closedPromise_reject !== undefined); 8539 8540 reader._closedPromise_reject(reason); 8541 8542 reader._closedPromise_resolve = undefined; 8543 reader._closedPromise_reject = undefined; 8544 } 8545 8546 function defaultReaderClosedPromiseResetToRejected(reader, reason) { 8547 assert(reader._closedPromise_resolve === undefined); 8548 assert(reader._closedPromise_reject === undefined); 8549 reader._closedPromise = Promise.reject(reason); 8550 } 8551 8552 function defaultReaderClosedPromiseResolve(reader) { 8553 assert(reader._closedPromise_resolve !== undefined); 8554 assert(reader._closedPromise_reject !== undefined); 8555 8556 reader._closedPromise_resolve(undefined); 8557 8558 reader._closedPromise_resolve = undefined; 8559 reader._closedPromise_reject = undefined; 8560 } 8561 8562 function byobReaderBrandCheckException(name) { 8563 return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); 8564 } 8565 8566 function defaultControllerBrandCheckException(name) { 8567 return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); 8568 } 8569 8570 function byobRequestBrandCheckException(name) { 8571 return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); 8572 } 8573 8574 function byteStreamControllerBrandCheckException(name) { 8575 return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); 8576 } 8577 8578 function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { 8579 try { 8580 Promise.prototype.then.call(promise, undefined, function () {}); 8581 } catch (e) {} 8582 } 8583}, function (module, exports, __w_pdfjs_require__) { 8584 "use strict"; 8585 8586 var transformStream = __w_pdfjs_require__(6); 8587 8588 var readableStream = __w_pdfjs_require__(4); 8589 8590 var writableStream = __w_pdfjs_require__(2); 8591 8592 exports.TransformStream = transformStream.TransformStream; 8593 exports.ReadableStream = readableStream.ReadableStream; 8594 exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; 8595 exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; 8596 exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; 8597 exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; 8598 exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; 8599 exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; 8600 exports.IsWritableStream = writableStream.IsWritableStream; 8601 exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; 8602 exports.WritableStream = writableStream.WritableStream; 8603 exports.WritableStreamAbort = writableStream.WritableStreamAbort; 8604 exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; 8605 exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; 8606 exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; 8607 exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; 8608}, function (module, exports, __w_pdfjs_require__) { 8609 "use strict"; 8610 8611 var _createClass = function () { 8612 function defineProperties(target, props) { 8613 for (var i = 0; i < props.length; i++) { 8614 var descriptor = props[i]; 8615 descriptor.enumerable = descriptor.enumerable || false; 8616 descriptor.configurable = true; 8617 if ("value" in descriptor) descriptor.writable = true; 8618 Object.defineProperty(target, descriptor.key, descriptor); 8619 } 8620 } 8621 8622 return function (Constructor, protoProps, staticProps) { 8623 if (protoProps) defineProperties(Constructor.prototype, protoProps); 8624 if (staticProps) defineProperties(Constructor, staticProps); 8625 return Constructor; 8626 }; 8627 }(); 8628 8629 function _classCallCheck(instance, Constructor) { 8630 if (!(instance instanceof Constructor)) { 8631 throw new TypeError("Cannot call a class as a function"); 8632 } 8633 } 8634 8635 var _require = __w_pdfjs_require__(1), 8636 assert = _require.assert; 8637 8638 var _require2 = __w_pdfjs_require__(0), 8639 InvokeOrNoop = _require2.InvokeOrNoop, 8640 PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, 8641 PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, 8642 typeIsObject = _require2.typeIsObject; 8643 8644 var _require3 = __w_pdfjs_require__(4), 8645 ReadableStream = _require3.ReadableStream, 8646 ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, 8647 ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, 8648 ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, 8649 ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; 8650 8651 var _require4 = __w_pdfjs_require__(2), 8652 WritableStream = _require4.WritableStream, 8653 WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; 8654 8655 function TransformStreamCloseReadable(transformStream) { 8656 if (transformStream._errored === true) { 8657 throw new TypeError('TransformStream is already errored'); 8658 } 8659 8660 if (transformStream._readableClosed === true) { 8661 throw new TypeError('Readable side is already closed'); 8662 } 8663 8664 TransformStreamCloseReadableInternal(transformStream); 8665 } 8666 8667 function TransformStreamEnqueueToReadable(transformStream, chunk) { 8668 if (transformStream._errored === true) { 8669 throw new TypeError('TransformStream is already errored'); 8670 } 8671 8672 if (transformStream._readableClosed === true) { 8673 throw new TypeError('Readable side is already closed'); 8674 } 8675 8676 var controller = transformStream._readableController; 8677 8678 try { 8679 ReadableStreamDefaultControllerEnqueue(controller, chunk); 8680 } catch (e) { 8681 transformStream._readableClosed = true; 8682 TransformStreamErrorIfNeeded(transformStream, e); 8683 throw transformStream._storedError; 8684 } 8685 8686 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 8687 var maybeBackpressure = desiredSize <= 0; 8688 8689 if (maybeBackpressure === true && transformStream._backpressure === false) { 8690 TransformStreamSetBackpressure(transformStream, true); 8691 } 8692 } 8693 8694 function TransformStreamError(transformStream, e) { 8695 if (transformStream._errored === true) { 8696 throw new TypeError('TransformStream is already errored'); 8697 } 8698 8699 TransformStreamErrorInternal(transformStream, e); 8700 } 8701 8702 function TransformStreamCloseReadableInternal(transformStream) { 8703 assert(transformStream._errored === false); 8704 assert(transformStream._readableClosed === false); 8705 8706 try { 8707 ReadableStreamDefaultControllerClose(transformStream._readableController); 8708 } catch (e) { 8709 assert(false); 8710 } 8711 8712 transformStream._readableClosed = true; 8713 } 8714 8715 function TransformStreamErrorIfNeeded(transformStream, e) { 8716 if (transformStream._errored === false) { 8717 TransformStreamErrorInternal(transformStream, e); 8718 } 8719 } 8720 8721 function TransformStreamErrorInternal(transformStream, e) { 8722 assert(transformStream._errored === false); 8723 transformStream._errored = true; 8724 transformStream._storedError = e; 8725 8726 if (transformStream._writableDone === false) { 8727 WritableStreamDefaultControllerError(transformStream._writableController, e); 8728 } 8729 8730 if (transformStream._readableClosed === false) { 8731 ReadableStreamDefaultControllerError(transformStream._readableController, e); 8732 } 8733 } 8734 8735 function TransformStreamReadableReadyPromise(transformStream) { 8736 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 8737 8738 if (transformStream._backpressure === false) { 8739 return Promise.resolve(); 8740 } 8741 8742 assert(transformStream._backpressure === true, '_backpressure should have been initialized'); 8743 return transformStream._backpressureChangePromise; 8744 } 8745 8746 function TransformStreamSetBackpressure(transformStream, backpressure) { 8747 assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); 8748 8749 if (transformStream._backpressureChangePromise !== undefined) { 8750 transformStream._backpressureChangePromise_resolve(backpressure); 8751 } 8752 8753 transformStream._backpressureChangePromise = new Promise(function (resolve) { 8754 transformStream._backpressureChangePromise_resolve = resolve; 8755 }); 8756 8757 transformStream._backpressureChangePromise.then(function (resolution) { 8758 assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); 8759 }); 8760 8761 transformStream._backpressure = backpressure; 8762 } 8763 8764 function TransformStreamDefaultTransform(chunk, transformStreamController) { 8765 var transformStream = transformStreamController._controlledTransformStream; 8766 TransformStreamEnqueueToReadable(transformStream, chunk); 8767 return Promise.resolve(); 8768 } 8769 8770 function TransformStreamTransform(transformStream, chunk) { 8771 assert(transformStream._errored === false); 8772 assert(transformStream._transforming === false); 8773 assert(transformStream._backpressure === false); 8774 transformStream._transforming = true; 8775 var transformer = transformStream._transformer; 8776 var controller = transformStream._transformStreamController; 8777 var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); 8778 return transformPromise.then(function () { 8779 transformStream._transforming = false; 8780 return TransformStreamReadableReadyPromise(transformStream); 8781 }, function (e) { 8782 TransformStreamErrorIfNeeded(transformStream, e); 8783 return Promise.reject(e); 8784 }); 8785 } 8786 8787 function IsTransformStreamDefaultController(x) { 8788 if (!typeIsObject(x)) { 8789 return false; 8790 } 8791 8792 if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { 8793 return false; 8794 } 8795 8796 return true; 8797 } 8798 8799 function IsTransformStream(x) { 8800 if (!typeIsObject(x)) { 8801 return false; 8802 } 8803 8804 if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { 8805 return false; 8806 } 8807 8808 return true; 8809 } 8810 8811 var TransformStreamSink = function () { 8812 function TransformStreamSink(transformStream, startPromise) { 8813 _classCallCheck(this, TransformStreamSink); 8814 8815 this._transformStream = transformStream; 8816 this._startPromise = startPromise; 8817 } 8818 8819 _createClass(TransformStreamSink, [{ 8820 key: 'start', 8821 value: function start(c) { 8822 var transformStream = this._transformStream; 8823 transformStream._writableController = c; 8824 return this._startPromise.then(function () { 8825 return TransformStreamReadableReadyPromise(transformStream); 8826 }); 8827 } 8828 }, { 8829 key: 'write', 8830 value: function write(chunk) { 8831 var transformStream = this._transformStream; 8832 return TransformStreamTransform(transformStream, chunk); 8833 } 8834 }, { 8835 key: 'abort', 8836 value: function abort() { 8837 var transformStream = this._transformStream; 8838 transformStream._writableDone = true; 8839 TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); 8840 } 8841 }, { 8842 key: 'close', 8843 value: function close() { 8844 var transformStream = this._transformStream; 8845 assert(transformStream._transforming === false); 8846 transformStream._writableDone = true; 8847 var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); 8848 return flushPromise.then(function () { 8849 if (transformStream._errored === true) { 8850 return Promise.reject(transformStream._storedError); 8851 } 8852 8853 if (transformStream._readableClosed === false) { 8854 TransformStreamCloseReadableInternal(transformStream); 8855 } 8856 8857 return Promise.resolve(); 8858 })["catch"](function (r) { 8859 TransformStreamErrorIfNeeded(transformStream, r); 8860 return Promise.reject(transformStream._storedError); 8861 }); 8862 } 8863 }]); 8864 8865 return TransformStreamSink; 8866 }(); 8867 8868 var TransformStreamSource = function () { 8869 function TransformStreamSource(transformStream, startPromise) { 8870 _classCallCheck(this, TransformStreamSource); 8871 8872 this._transformStream = transformStream; 8873 this._startPromise = startPromise; 8874 } 8875 8876 _createClass(TransformStreamSource, [{ 8877 key: 'start', 8878 value: function start(c) { 8879 var transformStream = this._transformStream; 8880 transformStream._readableController = c; 8881 return this._startPromise.then(function () { 8882 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 8883 8884 if (transformStream._backpressure === true) { 8885 return Promise.resolve(); 8886 } 8887 8888 assert(transformStream._backpressure === false, '_backpressure should have been initialized'); 8889 return transformStream._backpressureChangePromise; 8890 }); 8891 } 8892 }, { 8893 key: 'pull', 8894 value: function pull() { 8895 var transformStream = this._transformStream; 8896 assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); 8897 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 8898 TransformStreamSetBackpressure(transformStream, false); 8899 return transformStream._backpressureChangePromise; 8900 } 8901 }, { 8902 key: 'cancel', 8903 value: function cancel() { 8904 var transformStream = this._transformStream; 8905 transformStream._readableClosed = true; 8906 TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); 8907 } 8908 }]); 8909 8910 return TransformStreamSource; 8911 }(); 8912 8913 var TransformStreamDefaultController = function () { 8914 function TransformStreamDefaultController(transformStream) { 8915 _classCallCheck(this, TransformStreamDefaultController); 8916 8917 if (IsTransformStream(transformStream) === false) { 8918 throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); 8919 } 8920 8921 if (transformStream._transformStreamController !== undefined) { 8922 throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); 8923 } 8924 8925 this._controlledTransformStream = transformStream; 8926 } 8927 8928 _createClass(TransformStreamDefaultController, [{ 8929 key: 'enqueue', 8930 value: function enqueue(chunk) { 8931 if (IsTransformStreamDefaultController(this) === false) { 8932 throw defaultControllerBrandCheckException('enqueue'); 8933 } 8934 8935 TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); 8936 } 8937 }, { 8938 key: 'close', 8939 value: function close() { 8940 if (IsTransformStreamDefaultController(this) === false) { 8941 throw defaultControllerBrandCheckException('close'); 8942 } 8943 8944 TransformStreamCloseReadable(this._controlledTransformStream); 8945 } 8946 }, { 8947 key: 'error', 8948 value: function error(reason) { 8949 if (IsTransformStreamDefaultController(this) === false) { 8950 throw defaultControllerBrandCheckException('error'); 8951 } 8952 8953 TransformStreamError(this._controlledTransformStream, reason); 8954 } 8955 }, { 8956 key: 'desiredSize', 8957 get: function get() { 8958 if (IsTransformStreamDefaultController(this) === false) { 8959 throw defaultControllerBrandCheckException('desiredSize'); 8960 } 8961 8962 var transformStream = this._controlledTransformStream; 8963 var readableController = transformStream._readableController; 8964 return ReadableStreamDefaultControllerGetDesiredSize(readableController); 8965 } 8966 }]); 8967 8968 return TransformStreamDefaultController; 8969 }(); 8970 8971 var TransformStream = function () { 8972 function TransformStream() { 8973 var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 8974 8975 _classCallCheck(this, TransformStream); 8976 8977 this._transformer = transformer; 8978 var readableStrategy = transformer.readableStrategy, 8979 writableStrategy = transformer.writableStrategy; 8980 this._transforming = false; 8981 this._errored = false; 8982 this._storedError = undefined; 8983 this._writableController = undefined; 8984 this._readableController = undefined; 8985 this._transformStreamController = undefined; 8986 this._writableDone = false; 8987 this._readableClosed = false; 8988 this._backpressure = undefined; 8989 this._backpressureChangePromise = undefined; 8990 this._backpressureChangePromise_resolve = undefined; 8991 this._transformStreamController = new TransformStreamDefaultController(this); 8992 var startPromise_resolve = void 0; 8993 var startPromise = new Promise(function (resolve) { 8994 startPromise_resolve = resolve; 8995 }); 8996 var source = new TransformStreamSource(this, startPromise); 8997 this._readable = new ReadableStream(source, readableStrategy); 8998 var sink = new TransformStreamSink(this, startPromise); 8999 this._writable = new WritableStream(sink, writableStrategy); 9000 assert(this._writableController !== undefined); 9001 assert(this._readableController !== undefined); 9002 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); 9003 TransformStreamSetBackpressure(this, desiredSize <= 0); 9004 var transformStream = this; 9005 var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); 9006 startPromise_resolve(startResult); 9007 startPromise["catch"](function (e) { 9008 if (transformStream._errored === false) { 9009 transformStream._errored = true; 9010 transformStream._storedError = e; 9011 } 9012 }); 9013 } 9014 9015 _createClass(TransformStream, [{ 9016 key: 'readable', 9017 get: function get() { 9018 if (IsTransformStream(this) === false) { 9019 throw streamBrandCheckException('readable'); 9020 } 9021 9022 return this._readable; 9023 } 9024 }, { 9025 key: 'writable', 9026 get: function get() { 9027 if (IsTransformStream(this) === false) { 9028 throw streamBrandCheckException('writable'); 9029 } 9030 9031 return this._writable; 9032 } 9033 }]); 9034 9035 return TransformStream; 9036 }(); 9037 9038 module.exports = { 9039 TransformStream: TransformStream 9040 }; 9041 9042 function defaultControllerBrandCheckException(name) { 9043 return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); 9044 } 9045 9046 function streamBrandCheckException(name) { 9047 return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); 9048 } 9049}, function (module, exports, __w_pdfjs_require__) { 9050 module.exports = __w_pdfjs_require__(5); 9051}])); 9052 9053/***/ }), 9054/* 145 */ 9055/***/ (function(module, exports, __w_pdfjs_require__) { 9056 9057"use strict"; 9058 9059 9060function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9061 9062{ 9063 var isURLSupported = false; 9064 9065 try { 9066 if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { 9067 var u = new URL('b', 'http://a'); 9068 u.pathname = 'c%20d'; 9069 isURLSupported = u.href === 'http://a/c%20d'; 9070 } 9071 } catch (ex) {} 9072 9073 if (isURLSupported) { 9074 exports.URL = URL; 9075 } else { 9076 var PolyfillURL = __w_pdfjs_require__(146).URL; 9077 9078 var OriginalURL = __w_pdfjs_require__(3).URL; 9079 9080 if (OriginalURL) { 9081 PolyfillURL.createObjectURL = function (blob) { 9082 return OriginalURL.createObjectURL.apply(OriginalURL, arguments); 9083 }; 9084 9085 PolyfillURL.revokeObjectURL = function (url) { 9086 OriginalURL.revokeObjectURL(url); 9087 }; 9088 } 9089 9090 exports.URL = PolyfillURL; 9091 } 9092} 9093 9094/***/ }), 9095/* 146 */ 9096/***/ (function(module, exports, __w_pdfjs_require__) { 9097 9098"use strict"; 9099 9100 9101(function URLConstructorClosure() { 9102 'use strict'; 9103 9104 var relative = Object.create(null); 9105 relative['ftp'] = 21; 9106 relative['file'] = 0; 9107 relative['gopher'] = 70; 9108 relative['http'] = 80; 9109 relative['https'] = 443; 9110 relative['ws'] = 80; 9111 relative['wss'] = 443; 9112 var relativePathDotMapping = Object.create(null); 9113 relativePathDotMapping['%2e'] = '.'; 9114 relativePathDotMapping['.%2e'] = '..'; 9115 relativePathDotMapping['%2e.'] = '..'; 9116 relativePathDotMapping['%2e%2e'] = '..'; 9117 9118 function isRelativeScheme(scheme) { 9119 return relative[scheme] !== undefined; 9120 } 9121 9122 function invalid() { 9123 clear.call(this); 9124 this._isInvalid = true; 9125 } 9126 9127 function IDNAToASCII(h) { 9128 if (h === '') { 9129 invalid.call(this); 9130 } 9131 9132 return h.toLowerCase(); 9133 } 9134 9135 function percentEscape(c) { 9136 var unicode = c.charCodeAt(0); 9137 9138 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { 9139 return c; 9140 } 9141 9142 return encodeURIComponent(c); 9143 } 9144 9145 function percentEscapeQuery(c) { 9146 var unicode = c.charCodeAt(0); 9147 9148 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { 9149 return c; 9150 } 9151 9152 return encodeURIComponent(c); 9153 } 9154 9155 var EOF, 9156 ALPHA = /[a-zA-Z]/, 9157 ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; 9158 9159 function parse(input, stateOverride, base) { 9160 function err(message) { 9161 errors.push(message); 9162 } 9163 9164 var state = stateOverride || 'scheme start', 9165 cursor = 0, 9166 buffer = '', 9167 seenAt = false, 9168 seenBracket = false, 9169 errors = []; 9170 9171 loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { 9172 var c = input[cursor]; 9173 9174 switch (state) { 9175 case 'scheme start': 9176 if (c && ALPHA.test(c)) { 9177 buffer += c.toLowerCase(); 9178 state = 'scheme'; 9179 } else if (!stateOverride) { 9180 buffer = ''; 9181 state = 'no scheme'; 9182 continue; 9183 } else { 9184 err('Invalid scheme.'); 9185 break loop; 9186 } 9187 9188 break; 9189 9190 case 'scheme': 9191 if (c && ALPHANUMERIC.test(c)) { 9192 buffer += c.toLowerCase(); 9193 } else if (c === ':') { 9194 this._scheme = buffer; 9195 buffer = ''; 9196 9197 if (stateOverride) { 9198 break loop; 9199 } 9200 9201 if (isRelativeScheme(this._scheme)) { 9202 this._isRelative = true; 9203 } 9204 9205 if (this._scheme === 'file') { 9206 state = 'relative'; 9207 } else if (this._isRelative && base && base._scheme === this._scheme) { 9208 state = 'relative or authority'; 9209 } else if (this._isRelative) { 9210 state = 'authority first slash'; 9211 } else { 9212 state = 'scheme data'; 9213 } 9214 } else if (!stateOverride) { 9215 buffer = ''; 9216 cursor = 0; 9217 state = 'no scheme'; 9218 continue; 9219 } else if (c === EOF) { 9220 break loop; 9221 } else { 9222 err('Code point not allowed in scheme: ' + c); 9223 break loop; 9224 } 9225 9226 break; 9227 9228 case 'scheme data': 9229 if (c === '?') { 9230 this._query = '?'; 9231 state = 'query'; 9232 } else if (c === '#') { 9233 this._fragment = '#'; 9234 state = 'fragment'; 9235 } else { 9236 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 9237 this._schemeData += percentEscape(c); 9238 } 9239 } 9240 9241 break; 9242 9243 case 'no scheme': 9244 if (!base || !isRelativeScheme(base._scheme)) { 9245 err('Missing scheme.'); 9246 invalid.call(this); 9247 } else { 9248 state = 'relative'; 9249 continue; 9250 } 9251 9252 break; 9253 9254 case 'relative or authority': 9255 if (c === '/' && input[cursor + 1] === '/') { 9256 state = 'authority ignore slashes'; 9257 } else { 9258 err('Expected /, got: ' + c); 9259 state = 'relative'; 9260 continue; 9261 } 9262 9263 break; 9264 9265 case 'relative': 9266 this._isRelative = true; 9267 9268 if (this._scheme !== 'file') { 9269 this._scheme = base._scheme; 9270 } 9271 9272 if (c === EOF) { 9273 this._host = base._host; 9274 this._port = base._port; 9275 this._path = base._path.slice(); 9276 this._query = base._query; 9277 this._username = base._username; 9278 this._password = base._password; 9279 break loop; 9280 } else if (c === '/' || c === '\\') { 9281 if (c === '\\') { 9282 err('\\ is an invalid code point.'); 9283 } 9284 9285 state = 'relative slash'; 9286 } else if (c === '?') { 9287 this._host = base._host; 9288 this._port = base._port; 9289 this._path = base._path.slice(); 9290 this._query = '?'; 9291 this._username = base._username; 9292 this._password = base._password; 9293 state = 'query'; 9294 } else if (c === '#') { 9295 this._host = base._host; 9296 this._port = base._port; 9297 this._path = base._path.slice(); 9298 this._query = base._query; 9299 this._fragment = '#'; 9300 this._username = base._username; 9301 this._password = base._password; 9302 state = 'fragment'; 9303 } else { 9304 var nextC = input[cursor + 1]; 9305 var nextNextC = input[cursor + 2]; 9306 9307 if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { 9308 this._host = base._host; 9309 this._port = base._port; 9310 this._username = base._username; 9311 this._password = base._password; 9312 this._path = base._path.slice(); 9313 9314 this._path.pop(); 9315 } 9316 9317 state = 'relative path'; 9318 continue; 9319 } 9320 9321 break; 9322 9323 case 'relative slash': 9324 if (c === '/' || c === '\\') { 9325 if (c === '\\') { 9326 err('\\ is an invalid code point.'); 9327 } 9328 9329 if (this._scheme === 'file') { 9330 state = 'file host'; 9331 } else { 9332 state = 'authority ignore slashes'; 9333 } 9334 } else { 9335 if (this._scheme !== 'file') { 9336 this._host = base._host; 9337 this._port = base._port; 9338 this._username = base._username; 9339 this._password = base._password; 9340 } 9341 9342 state = 'relative path'; 9343 continue; 9344 } 9345 9346 break; 9347 9348 case 'authority first slash': 9349 if (c === '/') { 9350 state = 'authority second slash'; 9351 } else { 9352 err('Expected \'/\', got: ' + c); 9353 state = 'authority ignore slashes'; 9354 continue; 9355 } 9356 9357 break; 9358 9359 case 'authority second slash': 9360 state = 'authority ignore slashes'; 9361 9362 if (c !== '/') { 9363 err('Expected \'/\', got: ' + c); 9364 continue; 9365 } 9366 9367 break; 9368 9369 case 'authority ignore slashes': 9370 if (c !== '/' && c !== '\\') { 9371 state = 'authority'; 9372 continue; 9373 } else { 9374 err('Expected authority, got: ' + c); 9375 } 9376 9377 break; 9378 9379 case 'authority': 9380 if (c === '@') { 9381 if (seenAt) { 9382 err('@ already seen.'); 9383 buffer += '%40'; 9384 } 9385 9386 seenAt = true; 9387 9388 for (var i = 0; i < buffer.length; i++) { 9389 var cp = buffer[i]; 9390 9391 if (cp === '\t' || cp === '\n' || cp === '\r') { 9392 err('Invalid whitespace in authority.'); 9393 continue; 9394 } 9395 9396 if (cp === ':' && this._password === null) { 9397 this._password = ''; 9398 continue; 9399 } 9400 9401 var tempC = percentEscape(cp); 9402 9403 if (this._password !== null) { 9404 this._password += tempC; 9405 } else { 9406 this._username += tempC; 9407 } 9408 } 9409 9410 buffer = ''; 9411 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 9412 cursor -= buffer.length; 9413 buffer = ''; 9414 state = 'host'; 9415 continue; 9416 } else { 9417 buffer += c; 9418 } 9419 9420 break; 9421 9422 case 'file host': 9423 if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 9424 if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { 9425 state = 'relative path'; 9426 } else if (buffer.length === 0) { 9427 state = 'relative path start'; 9428 } else { 9429 this._host = IDNAToASCII.call(this, buffer); 9430 buffer = ''; 9431 state = 'relative path start'; 9432 } 9433 9434 continue; 9435 } else if (c === '\t' || c === '\n' || c === '\r') { 9436 err('Invalid whitespace in file host.'); 9437 } else { 9438 buffer += c; 9439 } 9440 9441 break; 9442 9443 case 'host': 9444 case 'hostname': 9445 if (c === ':' && !seenBracket) { 9446 this._host = IDNAToASCII.call(this, buffer); 9447 buffer = ''; 9448 state = 'port'; 9449 9450 if (stateOverride === 'hostname') { 9451 break loop; 9452 } 9453 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 9454 this._host = IDNAToASCII.call(this, buffer); 9455 buffer = ''; 9456 state = 'relative path start'; 9457 9458 if (stateOverride) { 9459 break loop; 9460 } 9461 9462 continue; 9463 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 9464 if (c === '[') { 9465 seenBracket = true; 9466 } else if (c === ']') { 9467 seenBracket = false; 9468 } 9469 9470 buffer += c; 9471 } else { 9472 err('Invalid code point in host/hostname: ' + c); 9473 } 9474 9475 break; 9476 9477 case 'port': 9478 if (/[0-9]/.test(c)) { 9479 buffer += c; 9480 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { 9481 if (buffer !== '') { 9482 var temp = parseInt(buffer, 10); 9483 9484 if (temp !== relative[this._scheme]) { 9485 this._port = temp + ''; 9486 } 9487 9488 buffer = ''; 9489 } 9490 9491 if (stateOverride) { 9492 break loop; 9493 } 9494 9495 state = 'relative path start'; 9496 continue; 9497 } else if (c === '\t' || c === '\n' || c === '\r') { 9498 err('Invalid code point in port: ' + c); 9499 } else { 9500 invalid.call(this); 9501 } 9502 9503 break; 9504 9505 case 'relative path start': 9506 if (c === '\\') { 9507 err('\'\\\' not allowed in path.'); 9508 } 9509 9510 state = 'relative path'; 9511 9512 if (c !== '/' && c !== '\\') { 9513 continue; 9514 } 9515 9516 break; 9517 9518 case 'relative path': 9519 if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { 9520 if (c === '\\') { 9521 err('\\ not allowed in relative path.'); 9522 } 9523 9524 var tmp; 9525 9526 if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { 9527 buffer = tmp; 9528 } 9529 9530 if (buffer === '..') { 9531 this._path.pop(); 9532 9533 if (c !== '/' && c !== '\\') { 9534 this._path.push(''); 9535 } 9536 } else if (buffer === '.' && c !== '/' && c !== '\\') { 9537 this._path.push(''); 9538 } else if (buffer !== '.') { 9539 if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { 9540 buffer = buffer[0] + ':'; 9541 } 9542 9543 this._path.push(buffer); 9544 } 9545 9546 buffer = ''; 9547 9548 if (c === '?') { 9549 this._query = '?'; 9550 state = 'query'; 9551 } else if (c === '#') { 9552 this._fragment = '#'; 9553 state = 'fragment'; 9554 } 9555 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 9556 buffer += percentEscape(c); 9557 } 9558 9559 break; 9560 9561 case 'query': 9562 if (!stateOverride && c === '#') { 9563 this._fragment = '#'; 9564 state = 'fragment'; 9565 } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 9566 this._query += percentEscapeQuery(c); 9567 } 9568 9569 break; 9570 9571 case 'fragment': 9572 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 9573 this._fragment += c; 9574 } 9575 9576 break; 9577 } 9578 9579 cursor++; 9580 } 9581 } 9582 9583 function clear() { 9584 this._scheme = ''; 9585 this._schemeData = ''; 9586 this._username = ''; 9587 this._password = null; 9588 this._host = ''; 9589 this._port = ''; 9590 this._path = []; 9591 this._query = ''; 9592 this._fragment = ''; 9593 this._isInvalid = false; 9594 this._isRelative = false; 9595 } 9596 9597 function JURL(url, base) { 9598 if (base !== undefined && !(base instanceof JURL)) { 9599 base = new JURL(String(base)); 9600 } 9601 9602 this._url = url; 9603 clear.call(this); 9604 var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); 9605 parse.call(this, input, null, base); 9606 } 9607 9608 JURL.prototype = { 9609 toString: function toString() { 9610 return this.href; 9611 }, 9612 9613 get href() { 9614 if (this._isInvalid) { 9615 return this._url; 9616 } 9617 9618 var authority = ''; 9619 9620 if (this._username !== '' || this._password !== null) { 9621 authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; 9622 } 9623 9624 return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; 9625 }, 9626 9627 set href(value) { 9628 clear.call(this); 9629 parse.call(this, value); 9630 }, 9631 9632 get protocol() { 9633 return this._scheme + ':'; 9634 }, 9635 9636 set protocol(value) { 9637 if (this._isInvalid) { 9638 return; 9639 } 9640 9641 parse.call(this, value + ':', 'scheme start'); 9642 }, 9643 9644 get host() { 9645 return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; 9646 }, 9647 9648 set host(value) { 9649 if (this._isInvalid || !this._isRelative) { 9650 return; 9651 } 9652 9653 parse.call(this, value, 'host'); 9654 }, 9655 9656 get hostname() { 9657 return this._host; 9658 }, 9659 9660 set hostname(value) { 9661 if (this._isInvalid || !this._isRelative) { 9662 return; 9663 } 9664 9665 parse.call(this, value, 'hostname'); 9666 }, 9667 9668 get port() { 9669 return this._port; 9670 }, 9671 9672 set port(value) { 9673 if (this._isInvalid || !this._isRelative) { 9674 return; 9675 } 9676 9677 parse.call(this, value, 'port'); 9678 }, 9679 9680 get pathname() { 9681 return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; 9682 }, 9683 9684 set pathname(value) { 9685 if (this._isInvalid || !this._isRelative) { 9686 return; 9687 } 9688 9689 this._path = []; 9690 parse.call(this, value, 'relative path start'); 9691 }, 9692 9693 get search() { 9694 return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; 9695 }, 9696 9697 set search(value) { 9698 if (this._isInvalid || !this._isRelative) { 9699 return; 9700 } 9701 9702 this._query = '?'; 9703 9704 if (value[0] === '?') { 9705 value = value.slice(1); 9706 } 9707 9708 parse.call(this, value, 'query'); 9709 }, 9710 9711 get hash() { 9712 return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; 9713 }, 9714 9715 set hash(value) { 9716 if (this._isInvalid) { 9717 return; 9718 } 9719 9720 this._fragment = '#'; 9721 9722 if (value[0] === '#') { 9723 value = value.slice(1); 9724 } 9725 9726 parse.call(this, value, 'fragment'); 9727 }, 9728 9729 get origin() { 9730 var host; 9731 9732 if (this._isInvalid || !this._scheme) { 9733 return ''; 9734 } 9735 9736 switch (this._scheme) { 9737 case 'data': 9738 case 'file': 9739 case 'javascript': 9740 case 'mailto': 9741 return 'null'; 9742 9743 case 'blob': 9744 try { 9745 return new JURL(this._schemeData).origin || 'null'; 9746 } catch (_) {} 9747 9748 return 'null'; 9749 } 9750 9751 host = this.host; 9752 9753 if (!host) { 9754 return ''; 9755 } 9756 9757 return this._scheme + '://' + host; 9758 } 9759 9760 }; 9761 exports.URL = JURL; 9762})(); 9763 9764/***/ }), 9765/* 147 */ 9766/***/ (function(module, exports, __w_pdfjs_require__) { 9767 9768"use strict"; 9769 9770 9771Object.defineProperty(exports, "__esModule", { 9772 value: true 9773}); 9774exports.getDocument = getDocument; 9775exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; 9776exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; 9777 9778var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 9779 9780var _util = __w_pdfjs_require__(1); 9781 9782var _display_utils = __w_pdfjs_require__(151); 9783 9784var _font_loader = __w_pdfjs_require__(152); 9785 9786var _api_compatibility = __w_pdfjs_require__(153); 9787 9788var _canvas = __w_pdfjs_require__(154); 9789 9790var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); 9791 9792var _worker_options = __w_pdfjs_require__(156); 9793 9794var _message_handler = __w_pdfjs_require__(157); 9795 9796var _metadata = __w_pdfjs_require__(158); 9797 9798var _transport_stream = __w_pdfjs_require__(160); 9799 9800var _webgl = __w_pdfjs_require__(161); 9801 9802function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 9803 9804function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 9805 9806function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 9807 9808function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 9809 9810function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 9811 9812function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } 9813 9814function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 9815 9816function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } 9817 9818function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } 9819 9820function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } 9821 9822function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } 9823 9824function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 9825 9826function _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); } } 9827 9828function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 9829 9830function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 9831 9832var DEFAULT_RANGE_CHUNK_SIZE = 65536; 9833var isWorkerDisabled = false; 9834var fallbackWorkerSrc; 9835var fakeWorkerFilesLoader = null; 9836{ 9837 var useRequireEnsure = false; 9838 9839 if (typeof window === 'undefined') { 9840 isWorkerDisabled = true; 9841 9842 if (typeof require.ensure === 'undefined') { 9843 require.ensure = require('node-ensure'); 9844 } 9845 9846 useRequireEnsure = true; 9847 } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { 9848 useRequireEnsure = true; 9849 } 9850 9851 if (typeof requirejs !== 'undefined' && requirejs.toUrl) { 9852 fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); 9853 } 9854 9855 var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; 9856 fakeWorkerFilesLoader = useRequireEnsure ? function () { 9857 return new Promise(function (resolve, reject) { 9858 require.ensure([], function () { 9859 try { 9860 var worker; 9861 worker = require('./pdf.worker.js'); 9862 resolve(worker.WorkerMessageHandler); 9863 } catch (ex) { 9864 reject(ex); 9865 } 9866 }, reject, 'pdfjsWorker'); 9867 }); 9868 } : dynamicLoaderSupported ? function () { 9869 return new Promise(function (resolve, reject) { 9870 requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { 9871 try { 9872 resolve(worker.WorkerMessageHandler); 9873 } catch (ex) { 9874 reject(ex); 9875 } 9876 }, reject); 9877 }); 9878 } : null; 9879 9880 if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) { 9881 var pdfjsFilePath = document.currentScript && document.currentScript.src; 9882 9883 if (pdfjsFilePath) { 9884 fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); 9885 } 9886 } 9887} 9888var createPDFNetworkStream; 9889 9890function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { 9891 createPDFNetworkStream = pdfNetworkStreamFactory; 9892} 9893 9894function getDocument(src) { 9895 var task = new PDFDocumentLoadingTask(); 9896 var source; 9897 9898 if (typeof src === 'string') { 9899 source = { 9900 url: src 9901 }; 9902 } else if ((0, _util.isArrayBuffer)(src)) { 9903 source = { 9904 data: src 9905 }; 9906 } else if (src instanceof PDFDataRangeTransport) { 9907 source = { 9908 range: src 9909 }; 9910 } else { 9911 if (_typeof(src) !== 'object') { 9912 throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); 9913 } 9914 9915 if (!src.url && !src.data && !src.range) { 9916 throw new Error('Invalid parameter object: need either .data, .range or .url'); 9917 } 9918 9919 source = src; 9920 } 9921 9922 var params = Object.create(null); 9923 var rangeTransport = null, 9924 worker = null; 9925 9926 for (var key in source) { 9927 if (key === 'url' && typeof window !== 'undefined') { 9928 params[key] = new _util.URL(source[key], window.location).href; 9929 continue; 9930 } else if (key === 'range') { 9931 rangeTransport = source[key]; 9932 continue; 9933 } else if (key === 'worker') { 9934 worker = source[key]; 9935 continue; 9936 } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { 9937 var pdfBytes = source[key]; 9938 9939 if (typeof pdfBytes === 'string') { 9940 params[key] = (0, _util.stringToBytes)(pdfBytes); 9941 } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { 9942 params[key] = new Uint8Array(pdfBytes); 9943 } else if ((0, _util.isArrayBuffer)(pdfBytes)) { 9944 params[key] = new Uint8Array(pdfBytes); 9945 } else { 9946 throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); 9947 } 9948 9949 continue; 9950 } 9951 9952 params[key] = source[key]; 9953 } 9954 9955 params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; 9956 params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory; 9957 params.ignoreErrors = params.stopAtErrors !== true; 9958 params.pdfBug = params.pdfBug === true; 9959 var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); 9960 9961 if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { 9962 params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; 9963 } 9964 9965 if (!Number.isInteger(params.maxImageSize)) { 9966 params.maxImageSize = -1; 9967 } 9968 9969 if (typeof params.isEvalSupported !== 'boolean') { 9970 params.isEvalSupported = true; 9971 } 9972 9973 if (typeof params.disableFontFace !== 'boolean') { 9974 params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; 9975 } 9976 9977 if (typeof params.disableRange !== 'boolean') { 9978 params.disableRange = false; 9979 } 9980 9981 if (typeof params.disableStream !== 'boolean') { 9982 params.disableStream = false; 9983 } 9984 9985 if (typeof params.disableAutoFetch !== 'boolean') { 9986 params.disableAutoFetch = false; 9987 } 9988 9989 if (typeof params.disableCreateObjectURL !== 'boolean') { 9990 params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; 9991 } 9992 9993 (0, _util.setVerbosityLevel)(params.verbosity); 9994 9995 if (!worker) { 9996 var workerParams = { 9997 postMessageTransfers: params.postMessageTransfers, 9998 verbosity: params.verbosity, 9999 port: _worker_options.GlobalWorkerOptions.workerPort 10000 }; 10001 worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); 10002 task._worker = worker; 10003 } 10004 10005 var docId = task.docId; 10006 worker.promise.then(function () { 10007 if (task.destroyed) { 10008 throw new Error('Loading aborted'); 10009 } 10010 10011 return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { 10012 if (task.destroyed) { 10013 throw new Error('Loading aborted'); 10014 } 10015 10016 var networkStream; 10017 10018 if (rangeTransport) { 10019 networkStream = new _transport_stream.PDFDataTransportStream({ 10020 length: params.length, 10021 initialData: params.initialData, 10022 progressiveDone: params.progressiveDone, 10023 disableRange: params.disableRange, 10024 disableStream: params.disableStream 10025 }, rangeTransport); 10026 } else if (!params.data) { 10027 networkStream = createPDFNetworkStream({ 10028 url: params.url, 10029 length: params.length, 10030 httpHeaders: params.httpHeaders, 10031 withCredentials: params.withCredentials, 10032 rangeChunkSize: params.rangeChunkSize, 10033 disableRange: params.disableRange, 10034 disableStream: params.disableStream 10035 }); 10036 } 10037 10038 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); 10039 messageHandler.postMessageTransfers = worker.postMessageTransfers; 10040 var transport = new WorkerTransport(messageHandler, task, networkStream, params); 10041 task._transport = transport; 10042 messageHandler.send('Ready', null); 10043 }); 10044 })["catch"](task._capability.reject); 10045 return task; 10046} 10047 10048function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { 10049 if (worker.destroyed) { 10050 return Promise.reject(new Error('Worker was destroyed')); 10051 } 10052 10053 if (pdfDataRangeTransport) { 10054 source.length = pdfDataRangeTransport.length; 10055 source.initialData = pdfDataRangeTransport.initialData; 10056 source.progressiveDone = pdfDataRangeTransport.progressiveDone; 10057 } 10058 10059 return worker.messageHandler.sendWithPromise('GetDocRequest', { 10060 docId: docId, 10061 apiVersion: '2.2.228', 10062 source: { 10063 data: source.data, 10064 url: source.url, 10065 password: source.password, 10066 disableAutoFetch: source.disableAutoFetch, 10067 rangeChunkSize: source.rangeChunkSize, 10068 length: source.length 10069 }, 10070 maxImageSize: source.maxImageSize, 10071 disableFontFace: source.disableFontFace, 10072 disableCreateObjectURL: source.disableCreateObjectURL, 10073 postMessageTransfers: worker.postMessageTransfers, 10074 docBaseUrl: source.docBaseUrl, 10075 nativeImageDecoderSupport: source.nativeImageDecoderSupport, 10076 ignoreErrors: source.ignoreErrors, 10077 isEvalSupported: source.isEvalSupported 10078 }).then(function (workerId) { 10079 if (worker.destroyed) { 10080 throw new Error('Worker was destroyed'); 10081 } 10082 10083 return workerId; 10084 }); 10085} 10086 10087var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { 10088 var nextDocumentId = 0; 10089 10090 var PDFDocumentLoadingTask = 10091 /*#__PURE__*/ 10092 function () { 10093 function PDFDocumentLoadingTask() { 10094 _classCallCheck(this, PDFDocumentLoadingTask); 10095 10096 this._capability = (0, _util.createPromiseCapability)(); 10097 this._transport = null; 10098 this._worker = null; 10099 this.docId = 'd' + nextDocumentId++; 10100 this.destroyed = false; 10101 this.onPassword = null; 10102 this.onProgress = null; 10103 this.onUnsupportedFeature = null; 10104 } 10105 10106 _createClass(PDFDocumentLoadingTask, [{ 10107 key: "destroy", 10108 value: function destroy() { 10109 var _this = this; 10110 10111 this.destroyed = true; 10112 var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); 10113 return transportDestroyed.then(function () { 10114 _this._transport = null; 10115 10116 if (_this._worker) { 10117 _this._worker.destroy(); 10118 10119 _this._worker = null; 10120 } 10121 }); 10122 } 10123 }, { 10124 key: "then", 10125 value: function then(onFulfilled, onRejected) { 10126 (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.'); 10127 return this.promise.then.apply(this.promise, arguments); 10128 } 10129 }, { 10130 key: "promise", 10131 get: function get() { 10132 return this._capability.promise; 10133 } 10134 }]); 10135 10136 return PDFDocumentLoadingTask; 10137 }(); 10138 10139 return PDFDocumentLoadingTask; 10140}(); 10141 10142var PDFDataRangeTransport = 10143/*#__PURE__*/ 10144function () { 10145 function PDFDataRangeTransport(length, initialData) { 10146 var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 10147 10148 _classCallCheck(this, PDFDataRangeTransport); 10149 10150 this.length = length; 10151 this.initialData = initialData; 10152 this.progressiveDone = progressiveDone; 10153 this._rangeListeners = []; 10154 this._progressListeners = []; 10155 this._progressiveReadListeners = []; 10156 this._progressiveDoneListeners = []; 10157 this._readyCapability = (0, _util.createPromiseCapability)(); 10158 } 10159 10160 _createClass(PDFDataRangeTransport, [{ 10161 key: "addRangeListener", 10162 value: function addRangeListener(listener) { 10163 this._rangeListeners.push(listener); 10164 } 10165 }, { 10166 key: "addProgressListener", 10167 value: function addProgressListener(listener) { 10168 this._progressListeners.push(listener); 10169 } 10170 }, { 10171 key: "addProgressiveReadListener", 10172 value: function addProgressiveReadListener(listener) { 10173 this._progressiveReadListeners.push(listener); 10174 } 10175 }, { 10176 key: "addProgressiveDoneListener", 10177 value: function addProgressiveDoneListener(listener) { 10178 this._progressiveDoneListeners.push(listener); 10179 } 10180 }, { 10181 key: "onDataRange", 10182 value: function onDataRange(begin, chunk) { 10183 var _iteratorNormalCompletion = true; 10184 var _didIteratorError = false; 10185 var _iteratorError = undefined; 10186 10187 try { 10188 for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 10189 var listener = _step.value; 10190 listener(begin, chunk); 10191 } 10192 } catch (err) { 10193 _didIteratorError = true; 10194 _iteratorError = err; 10195 } finally { 10196 try { 10197 if (!_iteratorNormalCompletion && _iterator["return"] != null) { 10198 _iterator["return"](); 10199 } 10200 } finally { 10201 if (_didIteratorError) { 10202 throw _iteratorError; 10203 } 10204 } 10205 } 10206 } 10207 }, { 10208 key: "onDataProgress", 10209 value: function onDataProgress(loaded, total) { 10210 var _this2 = this; 10211 10212 this._readyCapability.promise.then(function () { 10213 var _iteratorNormalCompletion2 = true; 10214 var _didIteratorError2 = false; 10215 var _iteratorError2 = undefined; 10216 10217 try { 10218 for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 10219 var listener = _step2.value; 10220 listener(loaded, total); 10221 } 10222 } catch (err) { 10223 _didIteratorError2 = true; 10224 _iteratorError2 = err; 10225 } finally { 10226 try { 10227 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { 10228 _iterator2["return"](); 10229 } 10230 } finally { 10231 if (_didIteratorError2) { 10232 throw _iteratorError2; 10233 } 10234 } 10235 } 10236 }); 10237 } 10238 }, { 10239 key: "onDataProgressiveRead", 10240 value: function onDataProgressiveRead(chunk) { 10241 var _this3 = this; 10242 10243 this._readyCapability.promise.then(function () { 10244 var _iteratorNormalCompletion3 = true; 10245 var _didIteratorError3 = false; 10246 var _iteratorError3 = undefined; 10247 10248 try { 10249 for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { 10250 var listener = _step3.value; 10251 listener(chunk); 10252 } 10253 } catch (err) { 10254 _didIteratorError3 = true; 10255 _iteratorError3 = err; 10256 } finally { 10257 try { 10258 if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { 10259 _iterator3["return"](); 10260 } 10261 } finally { 10262 if (_didIteratorError3) { 10263 throw _iteratorError3; 10264 } 10265 } 10266 } 10267 }); 10268 } 10269 }, { 10270 key: "onDataProgressiveDone", 10271 value: function onDataProgressiveDone() { 10272 var _this4 = this; 10273 10274 this._readyCapability.promise.then(function () { 10275 var _iteratorNormalCompletion4 = true; 10276 var _didIteratorError4 = false; 10277 var _iteratorError4 = undefined; 10278 10279 try { 10280 for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { 10281 var listener = _step4.value; 10282 listener(); 10283 } 10284 } catch (err) { 10285 _didIteratorError4 = true; 10286 _iteratorError4 = err; 10287 } finally { 10288 try { 10289 if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { 10290 _iterator4["return"](); 10291 } 10292 } finally { 10293 if (_didIteratorError4) { 10294 throw _iteratorError4; 10295 } 10296 } 10297 } 10298 }); 10299 } 10300 }, { 10301 key: "transportReady", 10302 value: function transportReady() { 10303 this._readyCapability.resolve(); 10304 } 10305 }, { 10306 key: "requestDataRange", 10307 value: function requestDataRange(begin, end) { 10308 (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); 10309 } 10310 }, { 10311 key: "abort", 10312 value: function abort() {} 10313 }]); 10314 10315 return PDFDataRangeTransport; 10316}(); 10317 10318exports.PDFDataRangeTransport = PDFDataRangeTransport; 10319 10320var PDFDocumentProxy = 10321/*#__PURE__*/ 10322function () { 10323 function PDFDocumentProxy(pdfInfo, transport) { 10324 _classCallCheck(this, PDFDocumentProxy); 10325 10326 this._pdfInfo = pdfInfo; 10327 this._transport = transport; 10328 } 10329 10330 _createClass(PDFDocumentProxy, [{ 10331 key: "getPage", 10332 value: function getPage(pageNumber) { 10333 return this._transport.getPage(pageNumber); 10334 } 10335 }, { 10336 key: "getPageIndex", 10337 value: function getPageIndex(ref) { 10338 return this._transport.getPageIndex(ref); 10339 } 10340 }, { 10341 key: "getDestinations", 10342 value: function getDestinations() { 10343 return this._transport.getDestinations(); 10344 } 10345 }, { 10346 key: "getDestination", 10347 value: function getDestination(id) { 10348 return this._transport.getDestination(id); 10349 } 10350 }, { 10351 key: "getPageLabels", 10352 value: function getPageLabels() { 10353 return this._transport.getPageLabels(); 10354 } 10355 }, { 10356 key: "getPageLayout", 10357 value: function getPageLayout() { 10358 return this._transport.getPageLayout(); 10359 } 10360 }, { 10361 key: "getPageMode", 10362 value: function getPageMode() { 10363 return this._transport.getPageMode(); 10364 } 10365 }, { 10366 key: "getViewerPreferences", 10367 value: function getViewerPreferences() { 10368 return this._transport.getViewerPreferences(); 10369 } 10370 }, { 10371 key: "getOpenActionDestination", 10372 value: function getOpenActionDestination() { 10373 return this._transport.getOpenActionDestination(); 10374 } 10375 }, { 10376 key: "getAttachments", 10377 value: function getAttachments() { 10378 return this._transport.getAttachments(); 10379 } 10380 }, { 10381 key: "getJavaScript", 10382 value: function getJavaScript() { 10383 return this._transport.getJavaScript(); 10384 } 10385 }, { 10386 key: "getOutline", 10387 value: function getOutline() { 10388 return this._transport.getOutline(); 10389 } 10390 }, { 10391 key: "getPermissions", 10392 value: function getPermissions() { 10393 return this._transport.getPermissions(); 10394 } 10395 }, { 10396 key: "getMetadata", 10397 value: function getMetadata() { 10398 return this._transport.getMetadata(); 10399 } 10400 }, { 10401 key: "getData", 10402 value: function getData() { 10403 return this._transport.getData(); 10404 } 10405 }, { 10406 key: "getDownloadInfo", 10407 value: function getDownloadInfo() { 10408 return this._transport.downloadInfoCapability.promise; 10409 } 10410 }, { 10411 key: "getStats", 10412 value: function getStats() { 10413 return this._transport.getStats(); 10414 } 10415 }, { 10416 key: "cleanup", 10417 value: function cleanup() { 10418 this._transport.startCleanup(); 10419 } 10420 }, { 10421 key: "destroy", 10422 value: function destroy() { 10423 return this.loadingTask.destroy(); 10424 } 10425 }, { 10426 key: "numPages", 10427 get: function get() { 10428 return this._pdfInfo.numPages; 10429 } 10430 }, { 10431 key: "fingerprint", 10432 get: function get() { 10433 return this._pdfInfo.fingerprint; 10434 } 10435 }, { 10436 key: "loadingParams", 10437 get: function get() { 10438 return this._transport.loadingParams; 10439 } 10440 }, { 10441 key: "loadingTask", 10442 get: function get() { 10443 return this._transport.loadingTask; 10444 } 10445 }]); 10446 10447 return PDFDocumentProxy; 10448}(); 10449 10450exports.PDFDocumentProxy = PDFDocumentProxy; 10451 10452var PDFPageProxy = 10453/*#__PURE__*/ 10454function () { 10455 function PDFPageProxy(pageIndex, pageInfo, transport) { 10456 var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; 10457 10458 _classCallCheck(this, PDFPageProxy); 10459 10460 this.pageIndex = pageIndex; 10461 this._pageInfo = pageInfo; 10462 this._transport = transport; 10463 this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer; 10464 this._pdfBug = pdfBug; 10465 this.commonObjs = transport.commonObjs; 10466 this.objs = new PDFObjects(); 10467 this.cleanupAfterRender = false; 10468 this.pendingCleanup = false; 10469 this.intentStates = Object.create(null); 10470 this.destroyed = false; 10471 } 10472 10473 _createClass(PDFPageProxy, [{ 10474 key: "getViewport", 10475 value: function getViewport() { 10476 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 10477 scale = _ref.scale, 10478 _ref$rotation = _ref.rotation, 10479 rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation, 10480 _ref$dontFlip = _ref.dontFlip, 10481 dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip; 10482 10483 if (arguments.length > 1 || typeof arguments[0] === 'number') { 10484 (0, _display_utils.deprecated)('getViewport is called with obsolete arguments.'); 10485 scale = arguments[0]; 10486 rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate; 10487 dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false; 10488 } 10489 10490 return new _display_utils.PageViewport({ 10491 viewBox: this.view, 10492 scale: scale, 10493 rotation: rotation, 10494 dontFlip: dontFlip 10495 }); 10496 } 10497 }, { 10498 key: "getAnnotations", 10499 value: function getAnnotations() { 10500 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 10501 _ref2$intent = _ref2.intent, 10502 intent = _ref2$intent === void 0 ? null : _ref2$intent; 10503 10504 if (!this.annotationsPromise || this.annotationsIntent !== intent) { 10505 this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent); 10506 this.annotationsIntent = intent; 10507 } 10508 10509 return this.annotationsPromise; 10510 } 10511 }, { 10512 key: "render", 10513 value: function render(_ref3) { 10514 var _this5 = this; 10515 10516 var canvasContext = _ref3.canvasContext, 10517 viewport = _ref3.viewport, 10518 _ref3$intent = _ref3.intent, 10519 intent = _ref3$intent === void 0 ? 'display' : _ref3$intent, 10520 _ref3$enableWebGL = _ref3.enableWebGL, 10521 enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL, 10522 _ref3$renderInteracti = _ref3.renderInteractiveForms, 10523 renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti, 10524 _ref3$transform = _ref3.transform, 10525 transform = _ref3$transform === void 0 ? null : _ref3$transform, 10526 _ref3$imageLayer = _ref3.imageLayer, 10527 imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer, 10528 _ref3$canvasFactory = _ref3.canvasFactory, 10529 canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory, 10530 _ref3$background = _ref3.background, 10531 background = _ref3$background === void 0 ? null : _ref3$background; 10532 var stats = this._stats; 10533 stats.time('Overall'); 10534 this.pendingCleanup = false; 10535 var renderingIntent = intent === 'print' ? 'print' : 'display'; 10536 var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory(); 10537 var webGLContext = new _webgl.WebGLContext({ 10538 enable: enableWebGL 10539 }); 10540 10541 if (!this.intentStates[renderingIntent]) { 10542 this.intentStates[renderingIntent] = Object.create(null); 10543 } 10544 10545 var intentState = this.intentStates[renderingIntent]; 10546 10547 if (!intentState.displayReadyCapability) { 10548 intentState.receivingOperatorList = true; 10549 intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); 10550 intentState.operatorList = { 10551 fnArray: [], 10552 argsArray: [], 10553 lastChunk: false 10554 }; 10555 stats.time('Page Request'); 10556 10557 this._transport.messageHandler.send('RenderPageRequest', { 10558 pageIndex: this.pageNumber - 1, 10559 intent: renderingIntent, 10560 renderInteractiveForms: renderInteractiveForms === true 10561 }); 10562 } 10563 10564 var complete = function complete(error) { 10565 var i = intentState.renderTasks.indexOf(internalRenderTask); 10566 10567 if (i >= 0) { 10568 intentState.renderTasks.splice(i, 1); 10569 } 10570 10571 if (_this5.cleanupAfterRender || renderingIntent === 'print') { 10572 _this5.pendingCleanup = true; 10573 } 10574 10575 _this5._tryCleanup(); 10576 10577 if (error) { 10578 internalRenderTask.capability.reject(error); 10579 } else { 10580 internalRenderTask.capability.resolve(); 10581 } 10582 10583 stats.timeEnd('Rendering'); 10584 stats.timeEnd('Overall'); 10585 }; 10586 10587 var internalRenderTask = new InternalRenderTask({ 10588 callback: complete, 10589 params: { 10590 canvasContext: canvasContext, 10591 viewport: viewport, 10592 transform: transform, 10593 imageLayer: imageLayer, 10594 background: background 10595 }, 10596 objs: this.objs, 10597 commonObjs: this.commonObjs, 10598 operatorList: intentState.operatorList, 10599 pageNumber: this.pageNumber, 10600 canvasFactory: canvasFactoryInstance, 10601 webGLContext: webGLContext, 10602 useRequestAnimationFrame: renderingIntent !== 'print', 10603 pdfBug: this._pdfBug 10604 }); 10605 10606 if (!intentState.renderTasks) { 10607 intentState.renderTasks = []; 10608 } 10609 10610 intentState.renderTasks.push(internalRenderTask); 10611 var renderTask = internalRenderTask.task; 10612 intentState.displayReadyCapability.promise.then(function (transparency) { 10613 if (_this5.pendingCleanup) { 10614 complete(); 10615 return; 10616 } 10617 10618 stats.time('Rendering'); 10619 internalRenderTask.initializeGraphics(transparency); 10620 internalRenderTask.operatorListChanged(); 10621 })["catch"](complete); 10622 return renderTask; 10623 } 10624 }, { 10625 key: "getOperatorList", 10626 value: function getOperatorList() { 10627 function operatorListChanged() { 10628 if (intentState.operatorList.lastChunk) { 10629 intentState.opListReadCapability.resolve(intentState.operatorList); 10630 var i = intentState.renderTasks.indexOf(opListTask); 10631 10632 if (i >= 0) { 10633 intentState.renderTasks.splice(i, 1); 10634 } 10635 } 10636 } 10637 10638 var renderingIntent = 'oplist'; 10639 10640 if (!this.intentStates[renderingIntent]) { 10641 this.intentStates[renderingIntent] = Object.create(null); 10642 } 10643 10644 var intentState = this.intentStates[renderingIntent]; 10645 var opListTask; 10646 10647 if (!intentState.opListReadCapability) { 10648 opListTask = {}; 10649 opListTask.operatorListChanged = operatorListChanged; 10650 intentState.receivingOperatorList = true; 10651 intentState.opListReadCapability = (0, _util.createPromiseCapability)(); 10652 intentState.renderTasks = []; 10653 intentState.renderTasks.push(opListTask); 10654 intentState.operatorList = { 10655 fnArray: [], 10656 argsArray: [], 10657 lastChunk: false 10658 }; 10659 10660 this._stats.time('Page Request'); 10661 10662 this._transport.messageHandler.send('RenderPageRequest', { 10663 pageIndex: this.pageIndex, 10664 intent: renderingIntent 10665 }); 10666 } 10667 10668 return intentState.opListReadCapability.promise; 10669 } 10670 }, { 10671 key: "streamTextContent", 10672 value: function streamTextContent() { 10673 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 10674 _ref4$normalizeWhites = _ref4.normalizeWhitespace, 10675 normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites, 10676 _ref4$disableCombineT = _ref4.disableCombineTextItems, 10677 disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT; 10678 10679 var TEXT_CONTENT_CHUNK_SIZE = 100; 10680 return this._transport.messageHandler.sendWithStream('GetTextContent', { 10681 pageIndex: this.pageNumber - 1, 10682 normalizeWhitespace: normalizeWhitespace === true, 10683 combineTextItems: disableCombineTextItems !== true 10684 }, { 10685 highWaterMark: TEXT_CONTENT_CHUNK_SIZE, 10686 size: function size(textContent) { 10687 return textContent.items.length; 10688 } 10689 }); 10690 } 10691 }, { 10692 key: "getTextContent", 10693 value: function getTextContent() { 10694 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 10695 var readableStream = this.streamTextContent(params); 10696 return new Promise(function (resolve, reject) { 10697 function pump() { 10698 reader.read().then(function (_ref5) { 10699 var _textContent$items; 10700 10701 var value = _ref5.value, 10702 done = _ref5.done; 10703 10704 if (done) { 10705 resolve(textContent); 10706 return; 10707 } 10708 10709 Object.assign(textContent.styles, value.styles); 10710 10711 (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); 10712 10713 pump(); 10714 }, reject); 10715 } 10716 10717 var reader = readableStream.getReader(); 10718 var textContent = { 10719 items: [], 10720 styles: Object.create(null) 10721 }; 10722 pump(); 10723 }); 10724 } 10725 }, { 10726 key: "_destroy", 10727 value: function _destroy() { 10728 this.destroyed = true; 10729 this._transport.pageCache[this.pageIndex] = null; 10730 var waitOn = []; 10731 Object.keys(this.intentStates).forEach(function (intent) { 10732 if (intent === 'oplist') { 10733 return; 10734 } 10735 10736 var intentState = this.intentStates[intent]; 10737 intentState.renderTasks.forEach(function (renderTask) { 10738 var renderCompleted = renderTask.capability.promise["catch"](function () {}); 10739 waitOn.push(renderCompleted); 10740 renderTask.cancel(); 10741 }); 10742 }, this); 10743 this.objs.clear(); 10744 this.annotationsPromise = null; 10745 this.pendingCleanup = false; 10746 return Promise.all(waitOn); 10747 } 10748 }, { 10749 key: "cleanup", 10750 value: function cleanup() { 10751 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 10752 this.pendingCleanup = true; 10753 10754 this._tryCleanup(resetStats); 10755 } 10756 }, { 10757 key: "_tryCleanup", 10758 value: function _tryCleanup() { 10759 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 10760 10761 if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { 10762 var intentState = this.intentStates[intent]; 10763 return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; 10764 }, this)) { 10765 return; 10766 } 10767 10768 Object.keys(this.intentStates).forEach(function (intent) { 10769 delete this.intentStates[intent]; 10770 }, this); 10771 this.objs.clear(); 10772 this.annotationsPromise = null; 10773 10774 if (resetStats && this._stats instanceof _display_utils.StatTimer) { 10775 this._stats = new _display_utils.StatTimer(); 10776 } 10777 10778 this.pendingCleanup = false; 10779 } 10780 }, { 10781 key: "_startRenderPage", 10782 value: function _startRenderPage(transparency, intent) { 10783 var intentState = this.intentStates[intent]; 10784 10785 if (intentState.displayReadyCapability) { 10786 intentState.displayReadyCapability.resolve(transparency); 10787 } 10788 } 10789 }, { 10790 key: "_renderPageChunk", 10791 value: function _renderPageChunk(operatorListChunk, intent) { 10792 var intentState = this.intentStates[intent]; 10793 10794 for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { 10795 intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); 10796 intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); 10797 } 10798 10799 intentState.operatorList.lastChunk = operatorListChunk.lastChunk; 10800 10801 for (var _i = 0; _i < intentState.renderTasks.length; _i++) { 10802 intentState.renderTasks[_i].operatorListChanged(); 10803 } 10804 10805 if (operatorListChunk.lastChunk) { 10806 intentState.receivingOperatorList = false; 10807 10808 this._tryCleanup(); 10809 } 10810 } 10811 }, { 10812 key: "pageNumber", 10813 get: function get() { 10814 return this.pageIndex + 1; 10815 } 10816 }, { 10817 key: "rotate", 10818 get: function get() { 10819 return this._pageInfo.rotate; 10820 } 10821 }, { 10822 key: "ref", 10823 get: function get() { 10824 return this._pageInfo.ref; 10825 } 10826 }, { 10827 key: "userUnit", 10828 get: function get() { 10829 return this._pageInfo.userUnit; 10830 } 10831 }, { 10832 key: "view", 10833 get: function get() { 10834 return this._pageInfo.view; 10835 } 10836 }, { 10837 key: "stats", 10838 get: function get() { 10839 return this._stats instanceof _display_utils.StatTimer ? this._stats : null; 10840 } 10841 }]); 10842 10843 return PDFPageProxy; 10844}(); 10845 10846exports.PDFPageProxy = PDFPageProxy; 10847 10848var LoopbackPort = 10849/*#__PURE__*/ 10850function () { 10851 function LoopbackPort() { 10852 var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 10853 10854 _classCallCheck(this, LoopbackPort); 10855 10856 this._listeners = []; 10857 this._defer = defer; 10858 this._deferred = Promise.resolve(undefined); 10859 } 10860 10861 _createClass(LoopbackPort, [{ 10862 key: "postMessage", 10863 value: function postMessage(obj, transfers) { 10864 var _this6 = this; 10865 10866 function cloneValue(value) { 10867 if (_typeof(value) !== 'object' || value === null) { 10868 return value; 10869 } 10870 10871 if (cloned.has(value)) { 10872 return cloned.get(value); 10873 } 10874 10875 var buffer, result; 10876 10877 if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { 10878 var transferable = transfers && transfers.includes(buffer); 10879 10880 if (value === buffer) { 10881 result = value; 10882 } else if (transferable) { 10883 result = new value.constructor(buffer, value.byteOffset, value.byteLength); 10884 } else { 10885 result = new value.constructor(value); 10886 } 10887 10888 cloned.set(value, result); 10889 return result; 10890 } 10891 10892 result = Array.isArray(value) ? [] : {}; 10893 cloned.set(value, result); 10894 10895 for (var i in value) { 10896 var desc = void 0, 10897 p = value; 10898 10899 while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { 10900 p = Object.getPrototypeOf(p); 10901 } 10902 10903 if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { 10904 continue; 10905 } 10906 10907 result[i] = cloneValue(desc.value); 10908 } 10909 10910 return result; 10911 } 10912 10913 if (!this._defer) { 10914 this._listeners.forEach(function (listener) { 10915 listener.call(this, { 10916 data: obj 10917 }); 10918 }, this); 10919 10920 return; 10921 } 10922 10923 var cloned = new WeakMap(); 10924 var e = { 10925 data: cloneValue(obj) 10926 }; 10927 10928 this._deferred.then(function () { 10929 _this6._listeners.forEach(function (listener) { 10930 listener.call(this, e); 10931 }, _this6); 10932 }); 10933 } 10934 }, { 10935 key: "addEventListener", 10936 value: function addEventListener(name, listener) { 10937 this._listeners.push(listener); 10938 } 10939 }, { 10940 key: "removeEventListener", 10941 value: function removeEventListener(name, listener) { 10942 var i = this._listeners.indexOf(listener); 10943 10944 this._listeners.splice(i, 1); 10945 } 10946 }, { 10947 key: "terminate", 10948 value: function terminate() { 10949 this._listeners.length = 0; 10950 } 10951 }]); 10952 10953 return LoopbackPort; 10954}(); 10955 10956exports.LoopbackPort = LoopbackPort; 10957 10958var PDFWorker = function PDFWorkerClosure() { 10959 var pdfWorkerPorts = new WeakMap(); 10960 var nextFakeWorkerId = 0; 10961 var fakeWorkerFilesLoadedCapability; 10962 10963 function _getWorkerSrc() { 10964 if (_worker_options.GlobalWorkerOptions.workerSrc) { 10965 return _worker_options.GlobalWorkerOptions.workerSrc; 10966 } 10967 10968 if (typeof fallbackWorkerSrc !== 'undefined') { 10969 return fallbackWorkerSrc; 10970 } 10971 10972 throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); 10973 } 10974 10975 function getMainThreadWorkerMessageHandler() { 10976 try { 10977 if (typeof window !== 'undefined') { 10978 return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; 10979 } 10980 } catch (ex) {} 10981 10982 return null; 10983 } 10984 10985 function setupFakeWorkerGlobal() { 10986 if (fakeWorkerFilesLoadedCapability) { 10987 return fakeWorkerFilesLoadedCapability.promise; 10988 } 10989 10990 fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); 10991 var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); 10992 10993 if (mainWorkerMessageHandler) { 10994 fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); 10995 return fakeWorkerFilesLoadedCapability.promise; 10996 } 10997 10998 var loader = fakeWorkerFilesLoader || function () { 10999 return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () { 11000 return window.pdfjsWorker.WorkerMessageHandler; 11001 }); 11002 }; 11003 11004 loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); 11005 return fakeWorkerFilesLoadedCapability.promise; 11006 } 11007 11008 function createCDNWrapper(url) { 11009 var wrapper = 'importScripts(\'' + url + '\');'; 11010 return _util.URL.createObjectURL(new Blob([wrapper])); 11011 } 11012 11013 var PDFWorker = 11014 /*#__PURE__*/ 11015 function () { 11016 function PDFWorker() { 11017 var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 11018 _ref6$name = _ref6.name, 11019 name = _ref6$name === void 0 ? null : _ref6$name, 11020 _ref6$port = _ref6.port, 11021 port = _ref6$port === void 0 ? null : _ref6$port, 11022 _ref6$postMessageTran = _ref6.postMessageTransfers, 11023 postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran, 11024 _ref6$verbosity = _ref6.verbosity, 11025 verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity; 11026 11027 _classCallCheck(this, PDFWorker); 11028 11029 if (port && pdfWorkerPorts.has(port)) { 11030 throw new Error('Cannot use more than one PDFWorker per port'); 11031 } 11032 11033 this.name = name; 11034 this.destroyed = false; 11035 this.postMessageTransfers = postMessageTransfers !== false; 11036 this.verbosity = verbosity; 11037 this._readyCapability = (0, _util.createPromiseCapability)(); 11038 this._port = null; 11039 this._webWorker = null; 11040 this._messageHandler = null; 11041 11042 if (port) { 11043 pdfWorkerPorts.set(port, this); 11044 11045 this._initializeFromPort(port); 11046 11047 return; 11048 } 11049 11050 this._initialize(); 11051 } 11052 11053 _createClass(PDFWorker, [{ 11054 key: "_initializeFromPort", 11055 value: function _initializeFromPort(port) { 11056 this._port = port; 11057 this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); 11058 11059 this._messageHandler.on('ready', function () {}); 11060 11061 this._readyCapability.resolve(); 11062 } 11063 }, { 11064 key: "_initialize", 11065 value: function _initialize() { 11066 var _this7 = this; 11067 11068 if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { 11069 var workerSrc = _getWorkerSrc(); 11070 11071 try { 11072 if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { 11073 workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); 11074 } 11075 11076 var worker = new Worker(workerSrc); 11077 var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); 11078 11079 var terminateEarly = function terminateEarly() { 11080 worker.removeEventListener('error', onWorkerError); 11081 messageHandler.destroy(); 11082 worker.terminate(); 11083 11084 if (_this7.destroyed) { 11085 _this7._readyCapability.reject(new Error('Worker was destroyed')); 11086 } else { 11087 _this7._setupFakeWorker(); 11088 } 11089 }; 11090 11091 var onWorkerError = function onWorkerError() { 11092 if (!_this7._webWorker) { 11093 terminateEarly(); 11094 } 11095 }; 11096 11097 worker.addEventListener('error', onWorkerError); 11098 messageHandler.on('test', function (data) { 11099 worker.removeEventListener('error', onWorkerError); 11100 11101 if (_this7.destroyed) { 11102 terminateEarly(); 11103 return; 11104 } 11105 11106 if (data && data.supportTypedArray) { 11107 _this7._messageHandler = messageHandler; 11108 _this7._port = worker; 11109 _this7._webWorker = worker; 11110 11111 if (!data.supportTransfers) { 11112 _this7.postMessageTransfers = false; 11113 } 11114 11115 _this7._readyCapability.resolve(); 11116 11117 messageHandler.send('configure', { 11118 verbosity: _this7.verbosity 11119 }); 11120 } else { 11121 _this7._setupFakeWorker(); 11122 11123 messageHandler.destroy(); 11124 worker.terminate(); 11125 } 11126 }); 11127 messageHandler.on('ready', function (data) { 11128 worker.removeEventListener('error', onWorkerError); 11129 11130 if (_this7.destroyed) { 11131 terminateEarly(); 11132 return; 11133 } 11134 11135 try { 11136 sendTest(); 11137 } catch (e) { 11138 _this7._setupFakeWorker(); 11139 } 11140 }); 11141 11142 var sendTest = function sendTest() { 11143 var testObj = new Uint8Array([_this7.postMessageTransfers ? 255 : 0]); 11144 11145 try { 11146 messageHandler.send('test', testObj, [testObj.buffer]); 11147 } catch (ex) { 11148 (0, _util.info)('Cannot use postMessage transfers'); 11149 testObj[0] = 0; 11150 messageHandler.send('test', testObj); 11151 } 11152 }; 11153 11154 sendTest(); 11155 return; 11156 } catch (e) { 11157 (0, _util.info)('The worker has been disabled.'); 11158 } 11159 } 11160 11161 this._setupFakeWorker(); 11162 } 11163 }, { 11164 key: "_setupFakeWorker", 11165 value: function _setupFakeWorker() { 11166 var _this8 = this; 11167 11168 if (!isWorkerDisabled) { 11169 (0, _util.warn)('Setting up fake worker.'); 11170 isWorkerDisabled = true; 11171 } 11172 11173 setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { 11174 if (_this8.destroyed) { 11175 _this8._readyCapability.reject(new Error('Worker was destroyed')); 11176 11177 return; 11178 } 11179 11180 var port = new LoopbackPort(); 11181 _this8._port = port; 11182 var id = 'fake' + nextFakeWorkerId++; 11183 var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); 11184 WorkerMessageHandler.setup(workerHandler, port); 11185 var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); 11186 _this8._messageHandler = messageHandler; 11187 11188 _this8._readyCapability.resolve(); 11189 })["catch"](function (reason) { 11190 _this8._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); 11191 }); 11192 } 11193 }, { 11194 key: "destroy", 11195 value: function destroy() { 11196 this.destroyed = true; 11197 11198 if (this._webWorker) { 11199 this._webWorker.terminate(); 11200 11201 this._webWorker = null; 11202 } 11203 11204 pdfWorkerPorts["delete"](this._port); 11205 this._port = null; 11206 11207 if (this._messageHandler) { 11208 this._messageHandler.destroy(); 11209 11210 this._messageHandler = null; 11211 } 11212 } 11213 }, { 11214 key: "promise", 11215 get: function get() { 11216 return this._readyCapability.promise; 11217 } 11218 }, { 11219 key: "port", 11220 get: function get() { 11221 return this._port; 11222 } 11223 }, { 11224 key: "messageHandler", 11225 get: function get() { 11226 return this._messageHandler; 11227 } 11228 }], [{ 11229 key: "fromPort", 11230 value: function fromPort(params) { 11231 if (!params || !params.port) { 11232 throw new Error('PDFWorker.fromPort - invalid method signature.'); 11233 } 11234 11235 if (pdfWorkerPorts.has(params.port)) { 11236 return pdfWorkerPorts.get(params.port); 11237 } 11238 11239 return new PDFWorker(params); 11240 } 11241 }, { 11242 key: "getWorkerSrc", 11243 value: function getWorkerSrc() { 11244 return _getWorkerSrc(); 11245 } 11246 }]); 11247 11248 return PDFWorker; 11249 }(); 11250 11251 return PDFWorker; 11252}(); 11253 11254exports.PDFWorker = PDFWorker; 11255 11256var WorkerTransport = 11257/*#__PURE__*/ 11258function () { 11259 function WorkerTransport(messageHandler, loadingTask, networkStream, params) { 11260 _classCallCheck(this, WorkerTransport); 11261 11262 this.messageHandler = messageHandler; 11263 this.loadingTask = loadingTask; 11264 this.commonObjs = new PDFObjects(); 11265 this.fontLoader = new _font_loader.FontLoader({ 11266 docId: loadingTask.docId, 11267 onUnsupportedFeature: this._onUnsupportedFeature.bind(this) 11268 }); 11269 this._params = params; 11270 this.CMapReaderFactory = new params.CMapReaderFactory({ 11271 baseUrl: params.cMapUrl, 11272 isCompressed: params.cMapPacked 11273 }); 11274 this.destroyed = false; 11275 this.destroyCapability = null; 11276 this._passwordCapability = null; 11277 this._networkStream = networkStream; 11278 this._fullReader = null; 11279 this._lastProgress = null; 11280 this.pageCache = []; 11281 this.pagePromises = []; 11282 this.downloadInfoCapability = (0, _util.createPromiseCapability)(); 11283 this.setupMessageHandler(); 11284 } 11285 11286 _createClass(WorkerTransport, [{ 11287 key: "destroy", 11288 value: function destroy() { 11289 var _this9 = this; 11290 11291 if (this.destroyCapability) { 11292 return this.destroyCapability.promise; 11293 } 11294 11295 this.destroyed = true; 11296 this.destroyCapability = (0, _util.createPromiseCapability)(); 11297 11298 if (this._passwordCapability) { 11299 this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); 11300 } 11301 11302 var waitOn = []; 11303 this.pageCache.forEach(function (page) { 11304 if (page) { 11305 waitOn.push(page._destroy()); 11306 } 11307 }); 11308 this.pageCache.length = 0; 11309 this.pagePromises.length = 0; 11310 var terminated = this.messageHandler.sendWithPromise('Terminate', null); 11311 waitOn.push(terminated); 11312 Promise.all(waitOn).then(function () { 11313 _this9.fontLoader.clear(); 11314 11315 if (_this9._networkStream) { 11316 _this9._networkStream.cancelAllRequests(); 11317 } 11318 11319 if (_this9.messageHandler) { 11320 _this9.messageHandler.destroy(); 11321 11322 _this9.messageHandler = null; 11323 } 11324 11325 _this9.destroyCapability.resolve(); 11326 }, this.destroyCapability.reject); 11327 return this.destroyCapability.promise; 11328 } 11329 }, { 11330 key: "setupMessageHandler", 11331 value: function setupMessageHandler() { 11332 var messageHandler = this.messageHandler, 11333 loadingTask = this.loadingTask; 11334 messageHandler.on('GetReader', function (data, sink) { 11335 var _this10 = this; 11336 11337 (0, _util.assert)(this._networkStream); 11338 this._fullReader = this._networkStream.getFullReader(); 11339 11340 this._fullReader.onProgress = function (evt) { 11341 _this10._lastProgress = { 11342 loaded: evt.loaded, 11343 total: evt.total 11344 }; 11345 }; 11346 11347 sink.onPull = function () { 11348 _this10._fullReader.read().then(function (_ref7) { 11349 var value = _ref7.value, 11350 done = _ref7.done; 11351 11352 if (done) { 11353 sink.close(); 11354 return; 11355 } 11356 11357 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 11358 sink.enqueue(new Uint8Array(value), 1, [value]); 11359 })["catch"](function (reason) { 11360 sink.error(reason); 11361 }); 11362 }; 11363 11364 sink.onCancel = function (reason) { 11365 _this10._fullReader.cancel(reason); 11366 }; 11367 }, this); 11368 messageHandler.on('ReaderHeadersReady', function (data) { 11369 var _this11 = this; 11370 11371 var headersCapability = (0, _util.createPromiseCapability)(); 11372 var fullReader = this._fullReader; 11373 fullReader.headersReady.then(function () { 11374 if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { 11375 if (_this11._lastProgress && loadingTask.onProgress) { 11376 loadingTask.onProgress(_this11._lastProgress); 11377 } 11378 11379 fullReader.onProgress = function (evt) { 11380 if (loadingTask.onProgress) { 11381 loadingTask.onProgress({ 11382 loaded: evt.loaded, 11383 total: evt.total 11384 }); 11385 } 11386 }; 11387 } 11388 11389 headersCapability.resolve({ 11390 isStreamingSupported: fullReader.isStreamingSupported, 11391 isRangeSupported: fullReader.isRangeSupported, 11392 contentLength: fullReader.contentLength 11393 }); 11394 }, headersCapability.reject); 11395 return headersCapability.promise; 11396 }, this); 11397 messageHandler.on('GetRangeReader', function (data, sink) { 11398 (0, _util.assert)(this._networkStream); 11399 11400 var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); 11401 11402 if (!rangeReader) { 11403 sink.close(); 11404 return; 11405 } 11406 11407 sink.onPull = function () { 11408 rangeReader.read().then(function (_ref8) { 11409 var value = _ref8.value, 11410 done = _ref8.done; 11411 11412 if (done) { 11413 sink.close(); 11414 return; 11415 } 11416 11417 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 11418 sink.enqueue(new Uint8Array(value), 1, [value]); 11419 })["catch"](function (reason) { 11420 sink.error(reason); 11421 }); 11422 }; 11423 11424 sink.onCancel = function (reason) { 11425 rangeReader.cancel(reason); 11426 }; 11427 }, this); 11428 messageHandler.on('GetDoc', function (_ref9) { 11429 var pdfInfo = _ref9.pdfInfo; 11430 this._numPages = pdfInfo.numPages; 11431 11432 loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); 11433 }, this); 11434 messageHandler.on('PasswordRequest', function (exception) { 11435 var _this12 = this; 11436 11437 this._passwordCapability = (0, _util.createPromiseCapability)(); 11438 11439 if (loadingTask.onPassword) { 11440 var updatePassword = function updatePassword(password) { 11441 _this12._passwordCapability.resolve({ 11442 password: password 11443 }); 11444 }; 11445 11446 try { 11447 loadingTask.onPassword(updatePassword, exception.code); 11448 } catch (ex) { 11449 this._passwordCapability.reject(ex); 11450 } 11451 } else { 11452 this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); 11453 } 11454 11455 return this._passwordCapability.promise; 11456 }, this); 11457 messageHandler.on('PasswordException', function (exception) { 11458 loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); 11459 }, this); 11460 messageHandler.on('InvalidPDF', function (exception) { 11461 loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); 11462 }, this); 11463 messageHandler.on('MissingPDF', function (exception) { 11464 loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); 11465 }, this); 11466 messageHandler.on('UnexpectedResponse', function (exception) { 11467 loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); 11468 }, this); 11469 messageHandler.on('UnknownError', function (exception) { 11470 loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); 11471 }, this); 11472 messageHandler.on('DataLoaded', function (data) { 11473 if (loadingTask.onProgress) { 11474 loadingTask.onProgress({ 11475 loaded: data.length, 11476 total: data.length 11477 }); 11478 } 11479 11480 this.downloadInfoCapability.resolve(data); 11481 }, this); 11482 messageHandler.on('StartRenderPage', function (data) { 11483 if (this.destroyed) { 11484 return; 11485 } 11486 11487 var page = this.pageCache[data.pageIndex]; 11488 11489 page._stats.timeEnd('Page Request'); 11490 11491 page._startRenderPage(data.transparency, data.intent); 11492 }, this); 11493 messageHandler.on('RenderPageChunk', function (data) { 11494 if (this.destroyed) { 11495 return; 11496 } 11497 11498 var page = this.pageCache[data.pageIndex]; 11499 11500 page._renderPageChunk(data.operatorList, data.intent); 11501 }, this); 11502 messageHandler.on('commonobj', function (data) { 11503 var _this13 = this; 11504 11505 if (this.destroyed) { 11506 return; 11507 } 11508 11509 var _data = _slicedToArray(data, 3), 11510 id = _data[0], 11511 type = _data[1], 11512 exportedData = _data[2]; 11513 11514 if (this.commonObjs.has(id)) { 11515 return; 11516 } 11517 11518 switch (type) { 11519 case 'Font': 11520 var params = this._params; 11521 11522 if ('error' in exportedData) { 11523 var exportedError = exportedData.error; 11524 (0, _util.warn)("Error during font loading: ".concat(exportedError)); 11525 this.commonObjs.resolve(id, exportedError); 11526 break; 11527 } 11528 11529 var fontRegistry = null; 11530 11531 if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) { 11532 fontRegistry = { 11533 registerFont: function registerFont(font, url) { 11534 _global_scope["default"]['FontInspector'].fontAdded(font, url); 11535 } 11536 }; 11537 } 11538 11539 var font = new _font_loader.FontFaceObject(exportedData, { 11540 isEvalSupported: params.isEvalSupported, 11541 disableFontFace: params.disableFontFace, 11542 ignoreErrors: params.ignoreErrors, 11543 onUnsupportedFeature: this._onUnsupportedFeature.bind(this), 11544 fontRegistry: fontRegistry 11545 }); 11546 this.fontLoader.bind(font).then(function () { 11547 _this13.commonObjs.resolve(id, font); 11548 }, function (reason) { 11549 messageHandler.sendWithPromise('FontFallback', { 11550 id: id 11551 })["finally"](function () { 11552 _this13.commonObjs.resolve(id, font); 11553 }); 11554 }); 11555 break; 11556 11557 case 'FontPath': 11558 case 'FontType3Res': 11559 this.commonObjs.resolve(id, exportedData); 11560 break; 11561 11562 default: 11563 throw new Error("Got unknown common object type ".concat(type)); 11564 } 11565 }, this); 11566 messageHandler.on('obj', function (data) { 11567 if (this.destroyed) { 11568 return undefined; 11569 } 11570 11571 var _data2 = _slicedToArray(data, 4), 11572 id = _data2[0], 11573 pageIndex = _data2[1], 11574 type = _data2[2], 11575 imageData = _data2[3]; 11576 11577 var pageProxy = this.pageCache[pageIndex]; 11578 11579 if (pageProxy.objs.has(id)) { 11580 return undefined; 11581 } 11582 11583 switch (type) { 11584 case 'JpegStream': 11585 return new Promise(function (resolve, reject) { 11586 var img = new Image(); 11587 11588 img.onload = function () { 11589 resolve(img); 11590 }; 11591 11592 img.onerror = function () { 11593 reject(new Error('Error during JPEG image loading')); 11594 (0, _display_utils.releaseImageResources)(img); 11595 }; 11596 11597 img.src = imageData; 11598 }).then(function (img) { 11599 pageProxy.objs.resolve(id, img); 11600 }); 11601 11602 case 'Image': 11603 pageProxy.objs.resolve(id, imageData); 11604 var MAX_IMAGE_SIZE_TO_STORE = 8000000; 11605 11606 if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { 11607 pageProxy.cleanupAfterRender = true; 11608 } 11609 11610 break; 11611 11612 default: 11613 throw new Error("Got unknown object type ".concat(type)); 11614 } 11615 11616 return undefined; 11617 }, this); 11618 messageHandler.on('DocProgress', function (data) { 11619 if (this.destroyed) { 11620 return; 11621 } 11622 11623 if (loadingTask.onProgress) { 11624 loadingTask.onProgress({ 11625 loaded: data.loaded, 11626 total: data.total 11627 }); 11628 } 11629 }, this); 11630 messageHandler.on('PageError', function (data) { 11631 if (this.destroyed) { 11632 return; 11633 } 11634 11635 var page = this.pageCache[data.pageIndex]; 11636 var intentState = page.intentStates[data.intent]; 11637 11638 if (intentState.displayReadyCapability) { 11639 intentState.displayReadyCapability.reject(new Error(data.error)); 11640 } else { 11641 throw new Error(data.error); 11642 } 11643 11644 if (intentState.operatorList) { 11645 intentState.operatorList.lastChunk = true; 11646 11647 for (var i = 0; i < intentState.renderTasks.length; i++) { 11648 intentState.renderTasks[i].operatorListChanged(); 11649 } 11650 } 11651 }, this); 11652 messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this); 11653 messageHandler.on('JpegDecode', function (data) { 11654 if (this.destroyed) { 11655 return Promise.reject(new Error('Worker was destroyed')); 11656 } 11657 11658 if (typeof document === 'undefined') { 11659 return Promise.reject(new Error('"document" is not defined.')); 11660 } 11661 11662 var _data3 = _slicedToArray(data, 2), 11663 imageUrl = _data3[0], 11664 components = _data3[1]; 11665 11666 if (components !== 3 && components !== 1) { 11667 return Promise.reject(new Error('Only 3 components or 1 component can be returned')); 11668 } 11669 11670 return new Promise(function (resolve, reject) { 11671 var img = new Image(); 11672 11673 img.onload = function () { 11674 var width = img.width, 11675 height = img.height; 11676 var size = width * height; 11677 var rgbaLength = size * 4; 11678 var buf = new Uint8ClampedArray(size * components); 11679 var tmpCanvas = document.createElement('canvas'); 11680 tmpCanvas.width = width; 11681 tmpCanvas.height = height; 11682 var tmpCtx = tmpCanvas.getContext('2d'); 11683 tmpCtx.drawImage(img, 0, 0); 11684 var data = tmpCtx.getImageData(0, 0, width, height).data; 11685 11686 if (components === 3) { 11687 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { 11688 buf[j] = data[i]; 11689 buf[j + 1] = data[i + 1]; 11690 buf[j + 2] = data[i + 2]; 11691 } 11692 } else if (components === 1) { 11693 for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) { 11694 buf[_j] = data[_i2]; 11695 } 11696 } 11697 11698 resolve({ 11699 data: buf, 11700 width: width, 11701 height: height 11702 }); 11703 (0, _display_utils.releaseImageResources)(img); 11704 tmpCanvas.width = 0; 11705 tmpCanvas.height = 0; 11706 tmpCanvas = null; 11707 tmpCtx = null; 11708 }; 11709 11710 img.onerror = function () { 11711 reject(new Error('JpegDecode failed to load image')); 11712 (0, _display_utils.releaseImageResources)(img); 11713 }; 11714 11715 img.src = imageUrl; 11716 }); 11717 }, this); 11718 messageHandler.on('FetchBuiltInCMap', function (data) { 11719 if (this.destroyed) { 11720 return Promise.reject(new Error('Worker was destroyed')); 11721 } 11722 11723 return this.CMapReaderFactory.fetch({ 11724 name: data.name 11725 }); 11726 }, this); 11727 } 11728 }, { 11729 key: "_onUnsupportedFeature", 11730 value: function _onUnsupportedFeature(_ref10) { 11731 var featureId = _ref10.featureId; 11732 11733 if (this.destroyed) { 11734 return; 11735 } 11736 11737 if (this.loadingTask.onUnsupportedFeature) { 11738 this.loadingTask.onUnsupportedFeature(featureId); 11739 } 11740 } 11741 }, { 11742 key: "getData", 11743 value: function getData() { 11744 return this.messageHandler.sendWithPromise('GetData', null); 11745 } 11746 }, { 11747 key: "getPage", 11748 value: function getPage(pageNumber) { 11749 var _this14 = this; 11750 11751 if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { 11752 return Promise.reject(new Error('Invalid page request')); 11753 } 11754 11755 var pageIndex = pageNumber - 1; 11756 11757 if (pageIndex in this.pagePromises) { 11758 return this.pagePromises[pageIndex]; 11759 } 11760 11761 var promise = this.messageHandler.sendWithPromise('GetPage', { 11762 pageIndex: pageIndex 11763 }).then(function (pageInfo) { 11764 if (_this14.destroyed) { 11765 throw new Error('Transport destroyed'); 11766 } 11767 11768 var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.pdfBug); 11769 _this14.pageCache[pageIndex] = page; 11770 return page; 11771 }); 11772 this.pagePromises[pageIndex] = promise; 11773 return promise; 11774 } 11775 }, { 11776 key: "getPageIndex", 11777 value: function getPageIndex(ref) { 11778 return this.messageHandler.sendWithPromise('GetPageIndex', { 11779 ref: ref 11780 })["catch"](function (reason) { 11781 return Promise.reject(new Error(reason)); 11782 }); 11783 } 11784 }, { 11785 key: "getAnnotations", 11786 value: function getAnnotations(pageIndex, intent) { 11787 return this.messageHandler.sendWithPromise('GetAnnotations', { 11788 pageIndex: pageIndex, 11789 intent: intent 11790 }); 11791 } 11792 }, { 11793 key: "getDestinations", 11794 value: function getDestinations() { 11795 return this.messageHandler.sendWithPromise('GetDestinations', null); 11796 } 11797 }, { 11798 key: "getDestination", 11799 value: function getDestination(id) { 11800 if (typeof id !== 'string') { 11801 return Promise.reject(new Error('Invalid destination request.')); 11802 } 11803 11804 return this.messageHandler.sendWithPromise('GetDestination', { 11805 id: id 11806 }); 11807 } 11808 }, { 11809 key: "getPageLabels", 11810 value: function getPageLabels() { 11811 return this.messageHandler.sendWithPromise('GetPageLabels', null); 11812 } 11813 }, { 11814 key: "getPageLayout", 11815 value: function getPageLayout() { 11816 return this.messageHandler.sendWithPromise('GetPageLayout', null); 11817 } 11818 }, { 11819 key: "getPageMode", 11820 value: function getPageMode() { 11821 return this.messageHandler.sendWithPromise('GetPageMode', null); 11822 } 11823 }, { 11824 key: "getViewerPreferences", 11825 value: function getViewerPreferences() { 11826 return this.messageHandler.sendWithPromise('GetViewerPreferences', null); 11827 } 11828 }, { 11829 key: "getOpenActionDestination", 11830 value: function getOpenActionDestination() { 11831 return this.messageHandler.sendWithPromise('GetOpenActionDestination', null); 11832 } 11833 }, { 11834 key: "getAttachments", 11835 value: function getAttachments() { 11836 return this.messageHandler.sendWithPromise('GetAttachments', null); 11837 } 11838 }, { 11839 key: "getJavaScript", 11840 value: function getJavaScript() { 11841 return this.messageHandler.sendWithPromise('GetJavaScript', null); 11842 } 11843 }, { 11844 key: "getOutline", 11845 value: function getOutline() { 11846 return this.messageHandler.sendWithPromise('GetOutline', null); 11847 } 11848 }, { 11849 key: "getPermissions", 11850 value: function getPermissions() { 11851 return this.messageHandler.sendWithPromise('GetPermissions', null); 11852 } 11853 }, { 11854 key: "getMetadata", 11855 value: function getMetadata() { 11856 var _this15 = this; 11857 11858 return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { 11859 return { 11860 info: results[0], 11861 metadata: results[1] ? new _metadata.Metadata(results[1]) : null, 11862 contentDispositionFilename: _this15._fullReader ? _this15._fullReader.filename : null 11863 }; 11864 }); 11865 } 11866 }, { 11867 key: "getStats", 11868 value: function getStats() { 11869 return this.messageHandler.sendWithPromise('GetStats', null); 11870 } 11871 }, { 11872 key: "startCleanup", 11873 value: function startCleanup() { 11874 var _this16 = this; 11875 11876 this.messageHandler.sendWithPromise('Cleanup', null).then(function () { 11877 for (var i = 0, ii = _this16.pageCache.length; i < ii; i++) { 11878 var page = _this16.pageCache[i]; 11879 11880 if (page) { 11881 page.cleanup(); 11882 } 11883 } 11884 11885 _this16.commonObjs.clear(); 11886 11887 _this16.fontLoader.clear(); 11888 }); 11889 } 11890 }, { 11891 key: "loadingParams", 11892 get: function get() { 11893 var params = this._params; 11894 return (0, _util.shadow)(this, 'loadingParams', { 11895 disableAutoFetch: params.disableAutoFetch, 11896 disableCreateObjectURL: params.disableCreateObjectURL, 11897 disableFontFace: params.disableFontFace, 11898 nativeImageDecoderSupport: params.nativeImageDecoderSupport 11899 }); 11900 } 11901 }]); 11902 11903 return WorkerTransport; 11904}(); 11905 11906var PDFObjects = 11907/*#__PURE__*/ 11908function () { 11909 function PDFObjects() { 11910 _classCallCheck(this, PDFObjects); 11911 11912 this._objs = Object.create(null); 11913 } 11914 11915 _createClass(PDFObjects, [{ 11916 key: "_ensureObj", 11917 value: function _ensureObj(objId) { 11918 if (this._objs[objId]) { 11919 return this._objs[objId]; 11920 } 11921 11922 return this._objs[objId] = { 11923 capability: (0, _util.createPromiseCapability)(), 11924 data: null, 11925 resolved: false 11926 }; 11927 } 11928 }, { 11929 key: "get", 11930 value: function get(objId) { 11931 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; 11932 11933 if (callback) { 11934 this._ensureObj(objId).capability.promise.then(callback); 11935 11936 return null; 11937 } 11938 11939 var obj = this._objs[objId]; 11940 11941 if (!obj || !obj.resolved) { 11942 throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); 11943 } 11944 11945 return obj.data; 11946 } 11947 }, { 11948 key: "has", 11949 value: function has(objId) { 11950 var obj = this._objs[objId]; 11951 return obj ? obj.resolved : false; 11952 } 11953 }, { 11954 key: "resolve", 11955 value: function resolve(objId, data) { 11956 var obj = this._ensureObj(objId); 11957 11958 obj.resolved = true; 11959 obj.data = data; 11960 obj.capability.resolve(data); 11961 } 11962 }, { 11963 key: "clear", 11964 value: function clear() { 11965 for (var objId in this._objs) { 11966 var data = this._objs[objId].data; 11967 11968 if (typeof Image !== 'undefined' && data instanceof Image) { 11969 (0, _display_utils.releaseImageResources)(data); 11970 } 11971 } 11972 11973 this._objs = Object.create(null); 11974 } 11975 }]); 11976 11977 return PDFObjects; 11978}(); 11979 11980var RenderTask = 11981/*#__PURE__*/ 11982function () { 11983 function RenderTask(internalRenderTask) { 11984 _classCallCheck(this, RenderTask); 11985 11986 this._internalRenderTask = internalRenderTask; 11987 this.onContinue = null; 11988 } 11989 11990 _createClass(RenderTask, [{ 11991 key: "cancel", 11992 value: function cancel() { 11993 this._internalRenderTask.cancel(); 11994 } 11995 }, { 11996 key: "then", 11997 value: function then(onFulfilled, onRejected) { 11998 (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.'); 11999 return this.promise.then.apply(this.promise, arguments); 12000 } 12001 }, { 12002 key: "promise", 12003 get: function get() { 12004 return this._internalRenderTask.capability.promise; 12005 } 12006 }]); 12007 12008 return RenderTask; 12009}(); 12010 12011var InternalRenderTask = function InternalRenderTaskClosure() { 12012 var canvasInRendering = new WeakSet(); 12013 12014 var InternalRenderTask = 12015 /*#__PURE__*/ 12016 function () { 12017 function InternalRenderTask(_ref11) { 12018 var callback = _ref11.callback, 12019 params = _ref11.params, 12020 objs = _ref11.objs, 12021 commonObjs = _ref11.commonObjs, 12022 operatorList = _ref11.operatorList, 12023 pageNumber = _ref11.pageNumber, 12024 canvasFactory = _ref11.canvasFactory, 12025 webGLContext = _ref11.webGLContext, 12026 _ref11$useRequestAnim = _ref11.useRequestAnimationFrame, 12027 useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim, 12028 _ref11$pdfBug = _ref11.pdfBug, 12029 pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug; 12030 12031 _classCallCheck(this, InternalRenderTask); 12032 12033 this.callback = callback; 12034 this.params = params; 12035 this.objs = objs; 12036 this.commonObjs = commonObjs; 12037 this.operatorListIdx = null; 12038 this.operatorList = operatorList; 12039 this.pageNumber = pageNumber; 12040 this.canvasFactory = canvasFactory; 12041 this.webGLContext = webGLContext; 12042 this._pdfBug = pdfBug; 12043 this.running = false; 12044 this.graphicsReadyCallback = null; 12045 this.graphicsReady = false; 12046 this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined'; 12047 this.cancelled = false; 12048 this.capability = (0, _util.createPromiseCapability)(); 12049 this.task = new RenderTask(this); 12050 this._continueBound = this._continue.bind(this); 12051 this._scheduleNextBound = this._scheduleNext.bind(this); 12052 this._nextBound = this._next.bind(this); 12053 this._canvas = params.canvasContext.canvas; 12054 } 12055 12056 _createClass(InternalRenderTask, [{ 12057 key: "initializeGraphics", 12058 value: function initializeGraphics() { 12059 var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 12060 12061 if (this.cancelled) { 12062 return; 12063 } 12064 12065 if (this._canvas) { 12066 if (canvasInRendering.has(this._canvas)) { 12067 throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); 12068 } 12069 12070 canvasInRendering.add(this._canvas); 12071 } 12072 12073 if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) { 12074 this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1); 12075 this.stepper.init(this.operatorList); 12076 this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); 12077 } 12078 12079 var _this$params = this.params, 12080 canvasContext = _this$params.canvasContext, 12081 viewport = _this$params.viewport, 12082 transform = _this$params.transform, 12083 imageLayer = _this$params.imageLayer, 12084 background = _this$params.background; 12085 this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer); 12086 this.gfx.beginDrawing({ 12087 transform: transform, 12088 viewport: viewport, 12089 transparency: transparency, 12090 background: background 12091 }); 12092 this.operatorListIdx = 0; 12093 this.graphicsReady = true; 12094 12095 if (this.graphicsReadyCallback) { 12096 this.graphicsReadyCallback(); 12097 } 12098 } 12099 }, { 12100 key: "cancel", 12101 value: function cancel() { 12102 var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; 12103 this.running = false; 12104 this.cancelled = true; 12105 12106 if (this.gfx) { 12107 this.gfx.endDrawing(); 12108 } 12109 12110 if (this._canvas) { 12111 canvasInRendering["delete"](this._canvas); 12112 } 12113 12114 this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas')); 12115 } 12116 }, { 12117 key: "operatorListChanged", 12118 value: function operatorListChanged() { 12119 if (!this.graphicsReady) { 12120 if (!this.graphicsReadyCallback) { 12121 this.graphicsReadyCallback = this._continueBound; 12122 } 12123 12124 return; 12125 } 12126 12127 if (this.stepper) { 12128 this.stepper.updateOperatorList(this.operatorList); 12129 } 12130 12131 if (this.running) { 12132 return; 12133 } 12134 12135 this._continue(); 12136 } 12137 }, { 12138 key: "_continue", 12139 value: function _continue() { 12140 this.running = true; 12141 12142 if (this.cancelled) { 12143 return; 12144 } 12145 12146 if (this.task.onContinue) { 12147 this.task.onContinue(this._scheduleNextBound); 12148 } else { 12149 this._scheduleNext(); 12150 } 12151 } 12152 }, { 12153 key: "_scheduleNext", 12154 value: function _scheduleNext() { 12155 var _this17 = this; 12156 12157 if (this._useRequestAnimationFrame) { 12158 window.requestAnimationFrame(function () { 12159 _this17._nextBound()["catch"](_this17.cancel.bind(_this17)); 12160 }); 12161 } else { 12162 Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this)); 12163 } 12164 } 12165 }, { 12166 key: "_next", 12167 value: function () { 12168 var _next2 = _asyncToGenerator( 12169 /*#__PURE__*/ 12170 _regenerator["default"].mark(function _callee() { 12171 return _regenerator["default"].wrap(function _callee$(_context) { 12172 while (1) { 12173 switch (_context.prev = _context.next) { 12174 case 0: 12175 if (!this.cancelled) { 12176 _context.next = 2; 12177 break; 12178 } 12179 12180 return _context.abrupt("return"); 12181 12182 case 2: 12183 this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); 12184 12185 if (this.operatorListIdx === this.operatorList.argsArray.length) { 12186 this.running = false; 12187 12188 if (this.operatorList.lastChunk) { 12189 this.gfx.endDrawing(); 12190 12191 if (this._canvas) { 12192 canvasInRendering["delete"](this._canvas); 12193 } 12194 12195 this.callback(); 12196 } 12197 } 12198 12199 case 4: 12200 case "end": 12201 return _context.stop(); 12202 } 12203 } 12204 }, _callee, this); 12205 })); 12206 12207 function _next() { 12208 return _next2.apply(this, arguments); 12209 } 12210 12211 return _next; 12212 }() 12213 }]); 12214 12215 return InternalRenderTask; 12216 }(); 12217 12218 return InternalRenderTask; 12219}(); 12220 12221var version = '2.2.228'; 12222exports.version = version; 12223var build = 'd7afb74a'; 12224exports.build = build; 12225 12226/***/ }), 12227/* 148 */ 12228/***/ (function(module, exports, __w_pdfjs_require__) { 12229 12230"use strict"; 12231 12232 12233module.exports = __w_pdfjs_require__(149); 12234 12235/***/ }), 12236/* 149 */ 12237/***/ (function(module, exports, __w_pdfjs_require__) { 12238 12239"use strict"; 12240/* WEBPACK VAR INJECTION */(function(module) { 12241 12242function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 12243 12244var runtime = function (exports) { 12245 "use strict"; 12246 12247 var Op = Object.prototype; 12248 var hasOwn = Op.hasOwnProperty; 12249 var undefined; 12250 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 12251 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 12252 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 12253 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 12254 12255 function wrap(innerFn, outerFn, self, tryLocsList) { 12256 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 12257 var generator = Object.create(protoGenerator.prototype); 12258 var context = new Context(tryLocsList || []); 12259 generator._invoke = makeInvokeMethod(innerFn, self, context); 12260 return generator; 12261 } 12262 12263 exports.wrap = wrap; 12264 12265 function tryCatch(fn, obj, arg) { 12266 try { 12267 return { 12268 type: "normal", 12269 arg: fn.call(obj, arg) 12270 }; 12271 } catch (err) { 12272 return { 12273 type: "throw", 12274 arg: err 12275 }; 12276 } 12277 } 12278 12279 var GenStateSuspendedStart = "suspendedStart"; 12280 var GenStateSuspendedYield = "suspendedYield"; 12281 var GenStateExecuting = "executing"; 12282 var GenStateCompleted = "completed"; 12283 var ContinueSentinel = {}; 12284 12285 function Generator() {} 12286 12287 function GeneratorFunction() {} 12288 12289 function GeneratorFunctionPrototype() {} 12290 12291 var IteratorPrototype = {}; 12292 12293 IteratorPrototype[iteratorSymbol] = function () { 12294 return this; 12295 }; 12296 12297 var getProto = Object.getPrototypeOf; 12298 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 12299 12300 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 12301 IteratorPrototype = NativeIteratorPrototype; 12302 } 12303 12304 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); 12305 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 12306 GeneratorFunctionPrototype.constructor = GeneratorFunction; 12307 GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; 12308 12309 function defineIteratorMethods(prototype) { 12310 ["next", "throw", "return"].forEach(function (method) { 12311 prototype[method] = function (arg) { 12312 return this._invoke(method, arg); 12313 }; 12314 }); 12315 } 12316 12317 exports.isGeneratorFunction = function (genFun) { 12318 var ctor = typeof genFun === "function" && genFun.constructor; 12319 return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; 12320 }; 12321 12322 exports.mark = function (genFun) { 12323 if (Object.setPrototypeOf) { 12324 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 12325 } else { 12326 genFun.__proto__ = GeneratorFunctionPrototype; 12327 12328 if (!(toStringTagSymbol in genFun)) { 12329 genFun[toStringTagSymbol] = "GeneratorFunction"; 12330 } 12331 } 12332 12333 genFun.prototype = Object.create(Gp); 12334 return genFun; 12335 }; 12336 12337 exports.awrap = function (arg) { 12338 return { 12339 __await: arg 12340 }; 12341 }; 12342 12343 function AsyncIterator(generator) { 12344 function invoke(method, arg, resolve, reject) { 12345 var record = tryCatch(generator[method], generator, arg); 12346 12347 if (record.type === "throw") { 12348 reject(record.arg); 12349 } else { 12350 var result = record.arg; 12351 var value = result.value; 12352 12353 if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { 12354 return Promise.resolve(value.__await).then(function (value) { 12355 invoke("next", value, resolve, reject); 12356 }, function (err) { 12357 invoke("throw", err, resolve, reject); 12358 }); 12359 } 12360 12361 return Promise.resolve(value).then(function (unwrapped) { 12362 result.value = unwrapped; 12363 resolve(result); 12364 }, function (error) { 12365 return invoke("throw", error, resolve, reject); 12366 }); 12367 } 12368 } 12369 12370 var previousPromise; 12371 12372 function enqueue(method, arg) { 12373 function callInvokeWithMethodAndArg() { 12374 return new Promise(function (resolve, reject) { 12375 invoke(method, arg, resolve, reject); 12376 }); 12377 } 12378 12379 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); 12380 } 12381 12382 this._invoke = enqueue; 12383 } 12384 12385 defineIteratorMethods(AsyncIterator.prototype); 12386 12387 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 12388 return this; 12389 }; 12390 12391 exports.AsyncIterator = AsyncIterator; 12392 12393 exports.async = function (innerFn, outerFn, self, tryLocsList) { 12394 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); 12395 return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { 12396 return result.done ? result.value : iter.next(); 12397 }); 12398 }; 12399 12400 function makeInvokeMethod(innerFn, self, context) { 12401 var state = GenStateSuspendedStart; 12402 return function invoke(method, arg) { 12403 if (state === GenStateExecuting) { 12404 throw new Error("Generator is already running"); 12405 } 12406 12407 if (state === GenStateCompleted) { 12408 if (method === "throw") { 12409 throw arg; 12410 } 12411 12412 return doneResult(); 12413 } 12414 12415 context.method = method; 12416 context.arg = arg; 12417 12418 while (true) { 12419 var delegate = context.delegate; 12420 12421 if (delegate) { 12422 var delegateResult = maybeInvokeDelegate(delegate, context); 12423 12424 if (delegateResult) { 12425 if (delegateResult === ContinueSentinel) continue; 12426 return delegateResult; 12427 } 12428 } 12429 12430 if (context.method === "next") { 12431 context.sent = context._sent = context.arg; 12432 } else if (context.method === "throw") { 12433 if (state === GenStateSuspendedStart) { 12434 state = GenStateCompleted; 12435 throw context.arg; 12436 } 12437 12438 context.dispatchException(context.arg); 12439 } else if (context.method === "return") { 12440 context.abrupt("return", context.arg); 12441 } 12442 12443 state = GenStateExecuting; 12444 var record = tryCatch(innerFn, self, context); 12445 12446 if (record.type === "normal") { 12447 state = context.done ? GenStateCompleted : GenStateSuspendedYield; 12448 12449 if (record.arg === ContinueSentinel) { 12450 continue; 12451 } 12452 12453 return { 12454 value: record.arg, 12455 done: context.done 12456 }; 12457 } else if (record.type === "throw") { 12458 state = GenStateCompleted; 12459 context.method = "throw"; 12460 context.arg = record.arg; 12461 } 12462 } 12463 }; 12464 } 12465 12466 function maybeInvokeDelegate(delegate, context) { 12467 var method = delegate.iterator[context.method]; 12468 12469 if (method === undefined) { 12470 context.delegate = null; 12471 12472 if (context.method === "throw") { 12473 if (delegate.iterator["return"]) { 12474 context.method = "return"; 12475 context.arg = undefined; 12476 maybeInvokeDelegate(delegate, context); 12477 12478 if (context.method === "throw") { 12479 return ContinueSentinel; 12480 } 12481 } 12482 12483 context.method = "throw"; 12484 context.arg = new TypeError("The iterator does not provide a 'throw' method"); 12485 } 12486 12487 return ContinueSentinel; 12488 } 12489 12490 var record = tryCatch(method, delegate.iterator, context.arg); 12491 12492 if (record.type === "throw") { 12493 context.method = "throw"; 12494 context.arg = record.arg; 12495 context.delegate = null; 12496 return ContinueSentinel; 12497 } 12498 12499 var info = record.arg; 12500 12501 if (!info) { 12502 context.method = "throw"; 12503 context.arg = new TypeError("iterator result is not an object"); 12504 context.delegate = null; 12505 return ContinueSentinel; 12506 } 12507 12508 if (info.done) { 12509 context[delegate.resultName] = info.value; 12510 context.next = delegate.nextLoc; 12511 12512 if (context.method !== "return") { 12513 context.method = "next"; 12514 context.arg = undefined; 12515 } 12516 } else { 12517 return info; 12518 } 12519 12520 context.delegate = null; 12521 return ContinueSentinel; 12522 } 12523 12524 defineIteratorMethods(Gp); 12525 Gp[toStringTagSymbol] = "Generator"; 12526 12527 Gp[iteratorSymbol] = function () { 12528 return this; 12529 }; 12530 12531 Gp.toString = function () { 12532 return "[object Generator]"; 12533 }; 12534 12535 function pushTryEntry(locs) { 12536 var entry = { 12537 tryLoc: locs[0] 12538 }; 12539 12540 if (1 in locs) { 12541 entry.catchLoc = locs[1]; 12542 } 12543 12544 if (2 in locs) { 12545 entry.finallyLoc = locs[2]; 12546 entry.afterLoc = locs[3]; 12547 } 12548 12549 this.tryEntries.push(entry); 12550 } 12551 12552 function resetTryEntry(entry) { 12553 var record = entry.completion || {}; 12554 record.type = "normal"; 12555 delete record.arg; 12556 entry.completion = record; 12557 } 12558 12559 function Context(tryLocsList) { 12560 this.tryEntries = [{ 12561 tryLoc: "root" 12562 }]; 12563 tryLocsList.forEach(pushTryEntry, this); 12564 this.reset(true); 12565 } 12566 12567 exports.keys = function (object) { 12568 var keys = []; 12569 12570 for (var key in object) { 12571 keys.push(key); 12572 } 12573 12574 keys.reverse(); 12575 return function next() { 12576 while (keys.length) { 12577 var key = keys.pop(); 12578 12579 if (key in object) { 12580 next.value = key; 12581 next.done = false; 12582 return next; 12583 } 12584 } 12585 12586 next.done = true; 12587 return next; 12588 }; 12589 }; 12590 12591 function values(iterable) { 12592 if (iterable) { 12593 var iteratorMethod = iterable[iteratorSymbol]; 12594 12595 if (iteratorMethod) { 12596 return iteratorMethod.call(iterable); 12597 } 12598 12599 if (typeof iterable.next === "function") { 12600 return iterable; 12601 } 12602 12603 if (!isNaN(iterable.length)) { 12604 var i = -1, 12605 next = function next() { 12606 while (++i < iterable.length) { 12607 if (hasOwn.call(iterable, i)) { 12608 next.value = iterable[i]; 12609 next.done = false; 12610 return next; 12611 } 12612 } 12613 12614 next.value = undefined; 12615 next.done = true; 12616 return next; 12617 }; 12618 12619 return next.next = next; 12620 } 12621 } 12622 12623 return { 12624 next: doneResult 12625 }; 12626 } 12627 12628 exports.values = values; 12629 12630 function doneResult() { 12631 return { 12632 value: undefined, 12633 done: true 12634 }; 12635 } 12636 12637 Context.prototype = { 12638 constructor: Context, 12639 reset: function reset(skipTempReset) { 12640 this.prev = 0; 12641 this.next = 0; 12642 this.sent = this._sent = undefined; 12643 this.done = false; 12644 this.delegate = null; 12645 this.method = "next"; 12646 this.arg = undefined; 12647 this.tryEntries.forEach(resetTryEntry); 12648 12649 if (!skipTempReset) { 12650 for (var name in this) { 12651 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { 12652 this[name] = undefined; 12653 } 12654 } 12655 } 12656 }, 12657 stop: function stop() { 12658 this.done = true; 12659 var rootEntry = this.tryEntries[0]; 12660 var rootRecord = rootEntry.completion; 12661 12662 if (rootRecord.type === "throw") { 12663 throw rootRecord.arg; 12664 } 12665 12666 return this.rval; 12667 }, 12668 dispatchException: function dispatchException(exception) { 12669 if (this.done) { 12670 throw exception; 12671 } 12672 12673 var context = this; 12674 12675 function handle(loc, caught) { 12676 record.type = "throw"; 12677 record.arg = exception; 12678 context.next = loc; 12679 12680 if (caught) { 12681 context.method = "next"; 12682 context.arg = undefined; 12683 } 12684 12685 return !!caught; 12686 } 12687 12688 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12689 var entry = this.tryEntries[i]; 12690 var record = entry.completion; 12691 12692 if (entry.tryLoc === "root") { 12693 return handle("end"); 12694 } 12695 12696 if (entry.tryLoc <= this.prev) { 12697 var hasCatch = hasOwn.call(entry, "catchLoc"); 12698 var hasFinally = hasOwn.call(entry, "finallyLoc"); 12699 12700 if (hasCatch && hasFinally) { 12701 if (this.prev < entry.catchLoc) { 12702 return handle(entry.catchLoc, true); 12703 } else if (this.prev < entry.finallyLoc) { 12704 return handle(entry.finallyLoc); 12705 } 12706 } else if (hasCatch) { 12707 if (this.prev < entry.catchLoc) { 12708 return handle(entry.catchLoc, true); 12709 } 12710 } else if (hasFinally) { 12711 if (this.prev < entry.finallyLoc) { 12712 return handle(entry.finallyLoc); 12713 } 12714 } else { 12715 throw new Error("try statement without catch or finally"); 12716 } 12717 } 12718 } 12719 }, 12720 abrupt: function abrupt(type, arg) { 12721 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12722 var entry = this.tryEntries[i]; 12723 12724 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { 12725 var finallyEntry = entry; 12726 break; 12727 } 12728 } 12729 12730 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { 12731 finallyEntry = null; 12732 } 12733 12734 var record = finallyEntry ? finallyEntry.completion : {}; 12735 record.type = type; 12736 record.arg = arg; 12737 12738 if (finallyEntry) { 12739 this.method = "next"; 12740 this.next = finallyEntry.finallyLoc; 12741 return ContinueSentinel; 12742 } 12743 12744 return this.complete(record); 12745 }, 12746 complete: function complete(record, afterLoc) { 12747 if (record.type === "throw") { 12748 throw record.arg; 12749 } 12750 12751 if (record.type === "break" || record.type === "continue") { 12752 this.next = record.arg; 12753 } else if (record.type === "return") { 12754 this.rval = this.arg = record.arg; 12755 this.method = "return"; 12756 this.next = "end"; 12757 } else if (record.type === "normal" && afterLoc) { 12758 this.next = afterLoc; 12759 } 12760 12761 return ContinueSentinel; 12762 }, 12763 finish: function finish(finallyLoc) { 12764 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12765 var entry = this.tryEntries[i]; 12766 12767 if (entry.finallyLoc === finallyLoc) { 12768 this.complete(entry.completion, entry.afterLoc); 12769 resetTryEntry(entry); 12770 return ContinueSentinel; 12771 } 12772 } 12773 }, 12774 "catch": function _catch(tryLoc) { 12775 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12776 var entry = this.tryEntries[i]; 12777 12778 if (entry.tryLoc === tryLoc) { 12779 var record = entry.completion; 12780 12781 if (record.type === "throw") { 12782 var thrown = record.arg; 12783 resetTryEntry(entry); 12784 } 12785 12786 return thrown; 12787 } 12788 } 12789 12790 throw new Error("illegal catch attempt"); 12791 }, 12792 delegateYield: function delegateYield(iterable, resultName, nextLoc) { 12793 this.delegate = { 12794 iterator: values(iterable), 12795 resultName: resultName, 12796 nextLoc: nextLoc 12797 }; 12798 12799 if (this.method === "next") { 12800 this.arg = undefined; 12801 } 12802 12803 return ContinueSentinel; 12804 } 12805 }; 12806 return exports; 12807}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); 12808 12809try { 12810 regeneratorRuntime = runtime; 12811} catch (accidentalStrictMode) { 12812 Function("r", "regeneratorRuntime = r")(runtime); 12813} 12814/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module))) 12815 12816/***/ }), 12817/* 150 */ 12818/***/ (function(module, exports, __w_pdfjs_require__) { 12819 12820"use strict"; 12821 12822 12823module.exports = function (module) { 12824 if (!module.webpackPolyfill) { 12825 module.deprecate = function () {}; 12826 12827 module.paths = []; 12828 if (!module.children) module.children = []; 12829 Object.defineProperty(module, "loaded", { 12830 enumerable: true, 12831 get: function get() { 12832 return module.l; 12833 } 12834 }); 12835 Object.defineProperty(module, "id", { 12836 enumerable: true, 12837 get: function get() { 12838 return module.i; 12839 } 12840 }); 12841 module.webpackPolyfill = 1; 12842 } 12843 12844 return module; 12845}; 12846 12847/***/ }), 12848/* 151 */ 12849/***/ (function(module, exports, __w_pdfjs_require__) { 12850 12851"use strict"; 12852 12853 12854Object.defineProperty(exports, "__esModule", { 12855 value: true 12856}); 12857exports.addLinkAttributes = addLinkAttributes; 12858exports.getFilenameFromUrl = getFilenameFromUrl; 12859exports.isFetchSupported = isFetchSupported; 12860exports.isValidFetchUrl = isValidFetchUrl; 12861exports.loadScript = loadScript; 12862exports.deprecated = deprecated; 12863exports.releaseImageResources = releaseImageResources; 12864exports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; 12865 12866var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 12867 12868var _util = __w_pdfjs_require__(1); 12869 12870function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 12871 12872function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 12873 12874function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 12875 12876function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 12877 12878function _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); } } 12879 12880function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 12881 12882var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; 12883exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; 12884var SVG_NS = 'http://www.w3.org/2000/svg'; 12885 12886var DOMCanvasFactory = 12887/*#__PURE__*/ 12888function () { 12889 function DOMCanvasFactory() { 12890 _classCallCheck(this, DOMCanvasFactory); 12891 } 12892 12893 _createClass(DOMCanvasFactory, [{ 12894 key: "create", 12895 value: function create(width, height) { 12896 if (width <= 0 || height <= 0) { 12897 throw new Error('Invalid canvas size'); 12898 } 12899 12900 var canvas = document.createElement('canvas'); 12901 var context = canvas.getContext('2d'); 12902 canvas.width = width; 12903 canvas.height = height; 12904 return { 12905 canvas: canvas, 12906 context: context 12907 }; 12908 } 12909 }, { 12910 key: "reset", 12911 value: function reset(canvasAndContext, width, height) { 12912 if (!canvasAndContext.canvas) { 12913 throw new Error('Canvas is not specified'); 12914 } 12915 12916 if (width <= 0 || height <= 0) { 12917 throw new Error('Invalid canvas size'); 12918 } 12919 12920 canvasAndContext.canvas.width = width; 12921 canvasAndContext.canvas.height = height; 12922 } 12923 }, { 12924 key: "destroy", 12925 value: function destroy(canvasAndContext) { 12926 if (!canvasAndContext.canvas) { 12927 throw new Error('Canvas is not specified'); 12928 } 12929 12930 canvasAndContext.canvas.width = 0; 12931 canvasAndContext.canvas.height = 0; 12932 canvasAndContext.canvas = null; 12933 canvasAndContext.context = null; 12934 } 12935 }]); 12936 12937 return DOMCanvasFactory; 12938}(); 12939 12940exports.DOMCanvasFactory = DOMCanvasFactory; 12941 12942var DOMCMapReaderFactory = 12943/*#__PURE__*/ 12944function () { 12945 function DOMCMapReaderFactory(_ref) { 12946 var _ref$baseUrl = _ref.baseUrl, 12947 baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, 12948 _ref$isCompressed = _ref.isCompressed, 12949 isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; 12950 12951 _classCallCheck(this, DOMCMapReaderFactory); 12952 12953 this.baseUrl = baseUrl; 12954 this.isCompressed = isCompressed; 12955 } 12956 12957 _createClass(DOMCMapReaderFactory, [{ 12958 key: "fetch", 12959 value: function (_fetch) { 12960 function fetch(_x) { 12961 return _fetch.apply(this, arguments); 12962 } 12963 12964 fetch.toString = function () { 12965 return _fetch.toString(); 12966 }; 12967 12968 return fetch; 12969 }( 12970 /*#__PURE__*/ 12971 function () { 12972 var _ref3 = _asyncToGenerator( 12973 /*#__PURE__*/ 12974 _regenerator["default"].mark(function _callee2(_ref2) { 12975 var _this = this; 12976 12977 var name, url, compressionType; 12978 return _regenerator["default"].wrap(function _callee2$(_context2) { 12979 while (1) { 12980 switch (_context2.prev = _context2.next) { 12981 case 0: 12982 name = _ref2.name; 12983 12984 if (this.baseUrl) { 12985 _context2.next = 3; 12986 break; 12987 } 12988 12989 throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); 12990 12991 case 3: 12992 if (name) { 12993 _context2.next = 5; 12994 break; 12995 } 12996 12997 throw new Error('CMap name must be specified.'); 12998 12999 case 5: 13000 url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : ''); 13001 compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; 13002 13003 if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) { 13004 _context2.next = 9; 13005 break; 13006 } 13007 13008 return _context2.abrupt("return", fetch(url).then( 13009 /*#__PURE__*/ 13010 function () { 13011 var _ref4 = _asyncToGenerator( 13012 /*#__PURE__*/ 13013 _regenerator["default"].mark(function _callee(response) { 13014 var cMapData; 13015 return _regenerator["default"].wrap(function _callee$(_context) { 13016 while (1) { 13017 switch (_context.prev = _context.next) { 13018 case 0: 13019 if (response.ok) { 13020 _context.next = 2; 13021 break; 13022 } 13023 13024 throw new Error(response.statusText); 13025 13026 case 2: 13027 if (!_this.isCompressed) { 13028 _context.next = 10; 13029 break; 13030 } 13031 13032 _context.t0 = Uint8Array; 13033 _context.next = 6; 13034 return response.arrayBuffer(); 13035 13036 case 6: 13037 _context.t1 = _context.sent; 13038 cMapData = new _context.t0(_context.t1); 13039 _context.next = 15; 13040 break; 13041 13042 case 10: 13043 _context.t2 = _util.stringToBytes; 13044 _context.next = 13; 13045 return response.text(); 13046 13047 case 13: 13048 _context.t3 = _context.sent; 13049 cMapData = (0, _context.t2)(_context.t3); 13050 13051 case 15: 13052 return _context.abrupt("return", { 13053 cMapData: cMapData, 13054 compressionType: compressionType 13055 }); 13056 13057 case 16: 13058 case "end": 13059 return _context.stop(); 13060 } 13061 } 13062 }, _callee); 13063 })); 13064 13065 return function (_x3) { 13066 return _ref4.apply(this, arguments); 13067 }; 13068 }())["catch"](function (reason) { 13069 throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); 13070 })); 13071 13072 case 9: 13073 return _context2.abrupt("return", new Promise(function (resolve, reject) { 13074 var request = new XMLHttpRequest(); 13075 request.open('GET', url, true); 13076 13077 if (_this.isCompressed) { 13078 request.responseType = 'arraybuffer'; 13079 } 13080 13081 request.onreadystatechange = function () { 13082 if (request.readyState !== XMLHttpRequest.DONE) { 13083 return; 13084 } 13085 13086 if (request.status === 200 || request.status === 0) { 13087 var cMapData; 13088 13089 if (_this.isCompressed && request.response) { 13090 cMapData = new Uint8Array(request.response); 13091 } else if (!_this.isCompressed && request.responseText) { 13092 cMapData = (0, _util.stringToBytes)(request.responseText); 13093 } 13094 13095 if (cMapData) { 13096 resolve({ 13097 cMapData: cMapData, 13098 compressionType: compressionType 13099 }); 13100 return; 13101 } 13102 } 13103 13104 reject(new Error(request.statusText)); 13105 }; 13106 13107 request.send(null); 13108 })["catch"](function (reason) { 13109 throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); 13110 })); 13111 13112 case 10: 13113 case "end": 13114 return _context2.stop(); 13115 } 13116 } 13117 }, _callee2, this); 13118 })); 13119 13120 return function (_x2) { 13121 return _ref3.apply(this, arguments); 13122 }; 13123 }()) 13124 }]); 13125 13126 return DOMCMapReaderFactory; 13127}(); 13128 13129exports.DOMCMapReaderFactory = DOMCMapReaderFactory; 13130 13131var DOMSVGFactory = 13132/*#__PURE__*/ 13133function () { 13134 function DOMSVGFactory() { 13135 _classCallCheck(this, DOMSVGFactory); 13136 } 13137 13138 _createClass(DOMSVGFactory, [{ 13139 key: "create", 13140 value: function create(width, height) { 13141 (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); 13142 var svg = document.createElementNS(SVG_NS, 'svg:svg'); 13143 svg.setAttribute('version', '1.1'); 13144 svg.setAttribute('width', width + 'px'); 13145 svg.setAttribute('height', height + 'px'); 13146 svg.setAttribute('preserveAspectRatio', 'none'); 13147 svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); 13148 return svg; 13149 } 13150 }, { 13151 key: "createElement", 13152 value: function createElement(type) { 13153 (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); 13154 return document.createElementNS(SVG_NS, type); 13155 } 13156 }]); 13157 13158 return DOMSVGFactory; 13159}(); 13160 13161exports.DOMSVGFactory = DOMSVGFactory; 13162 13163var PageViewport = 13164/*#__PURE__*/ 13165function () { 13166 function PageViewport(_ref5) { 13167 var viewBox = _ref5.viewBox, 13168 scale = _ref5.scale, 13169 rotation = _ref5.rotation, 13170 _ref5$offsetX = _ref5.offsetX, 13171 offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX, 13172 _ref5$offsetY = _ref5.offsetY, 13173 offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY, 13174 _ref5$dontFlip = _ref5.dontFlip, 13175 dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip; 13176 13177 _classCallCheck(this, PageViewport); 13178 13179 this.viewBox = viewBox; 13180 this.scale = scale; 13181 this.rotation = rotation; 13182 this.offsetX = offsetX; 13183 this.offsetY = offsetY; 13184 var centerX = (viewBox[2] + viewBox[0]) / 2; 13185 var centerY = (viewBox[3] + viewBox[1]) / 2; 13186 var rotateA, rotateB, rotateC, rotateD; 13187 rotation = rotation % 360; 13188 rotation = rotation < 0 ? rotation + 360 : rotation; 13189 13190 switch (rotation) { 13191 case 180: 13192 rotateA = -1; 13193 rotateB = 0; 13194 rotateC = 0; 13195 rotateD = 1; 13196 break; 13197 13198 case 90: 13199 rotateA = 0; 13200 rotateB = 1; 13201 rotateC = 1; 13202 rotateD = 0; 13203 break; 13204 13205 case 270: 13206 rotateA = 0; 13207 rotateB = -1; 13208 rotateC = -1; 13209 rotateD = 0; 13210 break; 13211 13212 default: 13213 rotateA = 1; 13214 rotateB = 0; 13215 rotateC = 0; 13216 rotateD = -1; 13217 break; 13218 } 13219 13220 if (dontFlip) { 13221 rotateC = -rotateC; 13222 rotateD = -rotateD; 13223 } 13224 13225 var offsetCanvasX, offsetCanvasY; 13226 var width, height; 13227 13228 if (rotateA === 0) { 13229 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; 13230 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; 13231 width = Math.abs(viewBox[3] - viewBox[1]) * scale; 13232 height = Math.abs(viewBox[2] - viewBox[0]) * scale; 13233 } else { 13234 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; 13235 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; 13236 width = Math.abs(viewBox[2] - viewBox[0]) * scale; 13237 height = Math.abs(viewBox[3] - viewBox[1]) * scale; 13238 } 13239 13240 this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; 13241 this.width = width; 13242 this.height = height; 13243 } 13244 13245 _createClass(PageViewport, [{ 13246 key: "clone", 13247 value: function clone() { 13248 var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 13249 _ref6$scale = _ref6.scale, 13250 scale = _ref6$scale === void 0 ? this.scale : _ref6$scale, 13251 _ref6$rotation = _ref6.rotation, 13252 rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation, 13253 _ref6$dontFlip = _ref6.dontFlip, 13254 dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip; 13255 13256 return new PageViewport({ 13257 viewBox: this.viewBox.slice(), 13258 scale: scale, 13259 rotation: rotation, 13260 offsetX: this.offsetX, 13261 offsetY: this.offsetY, 13262 dontFlip: dontFlip 13263 }); 13264 } 13265 }, { 13266 key: "convertToViewportPoint", 13267 value: function convertToViewportPoint(x, y) { 13268 return _util.Util.applyTransform([x, y], this.transform); 13269 } 13270 }, { 13271 key: "convertToViewportRectangle", 13272 value: function convertToViewportRectangle(rect) { 13273 var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); 13274 13275 var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); 13276 13277 return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; 13278 } 13279 }, { 13280 key: "convertToPdfPoint", 13281 value: function convertToPdfPoint(x, y) { 13282 return _util.Util.applyInverseTransform([x, y], this.transform); 13283 } 13284 }]); 13285 13286 return PageViewport; 13287}(); 13288 13289exports.PageViewport = PageViewport; 13290 13291var RenderingCancelledException = function RenderingCancelledException() { 13292 function RenderingCancelledException(msg, type) { 13293 this.message = msg; 13294 this.type = type; 13295 } 13296 13297 RenderingCancelledException.prototype = new Error(); 13298 RenderingCancelledException.prototype.name = 'RenderingCancelledException'; 13299 RenderingCancelledException.constructor = RenderingCancelledException; 13300 return RenderingCancelledException; 13301}(); 13302 13303exports.RenderingCancelledException = RenderingCancelledException; 13304var LinkTarget = { 13305 NONE: 0, 13306 SELF: 1, 13307 BLANK: 2, 13308 PARENT: 3, 13309 TOP: 4 13310}; 13311exports.LinkTarget = LinkTarget; 13312var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; 13313 13314function addLinkAttributes(link) { 13315 var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 13316 url = _ref7.url, 13317 target = _ref7.target, 13318 rel = _ref7.rel; 13319 13320 link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; 13321 13322 if (url) { 13323 var LinkTargetValues = Object.values(LinkTarget); 13324 var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; 13325 link.target = LinkTargetStringMap[targetIndex]; 13326 link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL; 13327 } 13328} 13329 13330function getFilenameFromUrl(url) { 13331 var anchor = url.indexOf('#'); 13332 var query = url.indexOf('?'); 13333 var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); 13334 return url.substring(url.lastIndexOf('/', end) + 1, end); 13335} 13336 13337var StatTimer = 13338/*#__PURE__*/ 13339function () { 13340 function StatTimer() { 13341 var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 13342 13343 _classCallCheck(this, StatTimer); 13344 13345 this.enabled = !!enable; 13346 this.started = Object.create(null); 13347 this.times = []; 13348 } 13349 13350 _createClass(StatTimer, [{ 13351 key: "time", 13352 value: function time(name) { 13353 if (!this.enabled) { 13354 return; 13355 } 13356 13357 if (name in this.started) { 13358 (0, _util.warn)('Timer is already running for ' + name); 13359 } 13360 13361 this.started[name] = Date.now(); 13362 } 13363 }, { 13364 key: "timeEnd", 13365 value: function timeEnd(name) { 13366 if (!this.enabled) { 13367 return; 13368 } 13369 13370 if (!(name in this.started)) { 13371 (0, _util.warn)('Timer has not been started for ' + name); 13372 } 13373 13374 this.times.push({ 13375 'name': name, 13376 'start': this.started[name], 13377 'end': Date.now() 13378 }); 13379 delete this.started[name]; 13380 } 13381 }, { 13382 key: "toString", 13383 value: function toString() { 13384 var out = '', 13385 longest = 0; 13386 var _iteratorNormalCompletion = true; 13387 var _didIteratorError = false; 13388 var _iteratorError = undefined; 13389 13390 try { 13391 for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 13392 var time = _step.value; 13393 var name = time.name; 13394 13395 if (name.length > longest) { 13396 longest = name.length; 13397 } 13398 } 13399 } catch (err) { 13400 _didIteratorError = true; 13401 _iteratorError = err; 13402 } finally { 13403 try { 13404 if (!_iteratorNormalCompletion && _iterator["return"] != null) { 13405 _iterator["return"](); 13406 } 13407 } finally { 13408 if (_didIteratorError) { 13409 throw _iteratorError; 13410 } 13411 } 13412 } 13413 13414 var _iteratorNormalCompletion2 = true; 13415 var _didIteratorError2 = false; 13416 var _iteratorError2 = undefined; 13417 13418 try { 13419 for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 13420 var _time = _step2.value; 13421 var duration = _time.end - _time.start; 13422 out += "".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n"); 13423 } 13424 } catch (err) { 13425 _didIteratorError2 = true; 13426 _iteratorError2 = err; 13427 } finally { 13428 try { 13429 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { 13430 _iterator2["return"](); 13431 } 13432 } finally { 13433 if (_didIteratorError2) { 13434 throw _iteratorError2; 13435 } 13436 } 13437 } 13438 13439 return out; 13440 } 13441 }]); 13442 13443 return StatTimer; 13444}(); 13445 13446exports.StatTimer = StatTimer; 13447 13448var DummyStatTimer = 13449/*#__PURE__*/ 13450function () { 13451 function DummyStatTimer() { 13452 _classCallCheck(this, DummyStatTimer); 13453 13454 (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); 13455 } 13456 13457 _createClass(DummyStatTimer, null, [{ 13458 key: "time", 13459 value: function time(name) {} 13460 }, { 13461 key: "timeEnd", 13462 value: function timeEnd(name) {} 13463 }, { 13464 key: "toString", 13465 value: function toString() { 13466 return ''; 13467 } 13468 }]); 13469 13470 return DummyStatTimer; 13471}(); 13472 13473exports.DummyStatTimer = DummyStatTimer; 13474 13475function isFetchSupported() { 13476 return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined'; 13477} 13478 13479function isValidFetchUrl(url, baseUrl) { 13480 try { 13481 var _ref8 = baseUrl ? new _util.URL(url, baseUrl) : new _util.URL(url), 13482 protocol = _ref8.protocol; 13483 13484 return protocol === 'http:' || protocol === 'https:'; 13485 } catch (ex) { 13486 return false; 13487 } 13488} 13489 13490function loadScript(src) { 13491 return new Promise(function (resolve, reject) { 13492 var script = document.createElement('script'); 13493 script.src = src; 13494 script.onload = resolve; 13495 13496 script.onerror = function () { 13497 reject(new Error("Cannot load script at: ".concat(script.src))); 13498 }; 13499 13500 (document.head || document.documentElement).appendChild(script); 13501 }); 13502} 13503 13504function deprecated(details) { 13505 console.log('Deprecated API usage: ' + details); 13506} 13507 13508function releaseImageResources(img) { 13509 (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.'); 13510 var url = img.src; 13511 13512 if (typeof url === 'string' && url.startsWith('blob:') && _util.URL.revokeObjectURL) { 13513 _util.URL.revokeObjectURL(url); 13514 } 13515 13516 img.removeAttribute('src'); 13517} 13518 13519var pdfDateStringRegex; 13520 13521var PDFDateString = 13522/*#__PURE__*/ 13523function () { 13524 function PDFDateString() { 13525 _classCallCheck(this, PDFDateString); 13526 } 13527 13528 _createClass(PDFDateString, null, [{ 13529 key: "toDateObject", 13530 value: function toDateObject(input) { 13531 if (!input || !(0, _util.isString)(input)) { 13532 return null; 13533 } 13534 13535 if (!pdfDateStringRegex) { 13536 pdfDateStringRegex = new RegExp('^D:' + '(\\d{4})' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '([Z|+|-])?' + '(\\d{2})?' + '\'?' + '(\\d{2})?' + '\'?'); 13537 } 13538 13539 var matches = pdfDateStringRegex.exec(input); 13540 13541 if (!matches) { 13542 return null; 13543 } 13544 13545 var year = parseInt(matches[1], 10); 13546 var month = parseInt(matches[2], 10); 13547 month = month >= 1 && month <= 12 ? month - 1 : 0; 13548 var day = parseInt(matches[3], 10); 13549 day = day >= 1 && day <= 31 ? day : 1; 13550 var hour = parseInt(matches[4], 10); 13551 hour = hour >= 0 && hour <= 23 ? hour : 0; 13552 var minute = parseInt(matches[5], 10); 13553 minute = minute >= 0 && minute <= 59 ? minute : 0; 13554 var second = parseInt(matches[6], 10); 13555 second = second >= 0 && second <= 59 ? second : 0; 13556 var universalTimeRelation = matches[7] || 'Z'; 13557 var offsetHour = parseInt(matches[8], 10); 13558 offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; 13559 var offsetMinute = parseInt(matches[9], 10) || 0; 13560 offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; 13561 13562 if (universalTimeRelation === '-') { 13563 hour += offsetHour; 13564 minute += offsetMinute; 13565 } else if (universalTimeRelation === '+') { 13566 hour -= offsetHour; 13567 minute -= offsetMinute; 13568 } 13569 13570 return new Date(Date.UTC(year, month, day, hour, minute, second)); 13571 } 13572 }]); 13573 13574 return PDFDateString; 13575}(); 13576 13577exports.PDFDateString = PDFDateString; 13578 13579/***/ }), 13580/* 152 */ 13581/***/ (function(module, exports, __w_pdfjs_require__) { 13582 13583"use strict"; 13584 13585 13586Object.defineProperty(exports, "__esModule", { 13587 value: true 13588}); 13589exports.FontLoader = exports.FontFaceObject = void 0; 13590 13591var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 13592 13593var _util = __w_pdfjs_require__(1); 13594 13595function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 13596 13597function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 13598 13599function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 13600 13601function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 13602 13603function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 13604 13605function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 13606 13607function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 13608 13609function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 13610 13611function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 13612 13613function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 13614 13615function _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); } } 13616 13617function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 13618 13619var BaseFontLoader = 13620/*#__PURE__*/ 13621function () { 13622 function BaseFontLoader(_ref) { 13623 var docId = _ref.docId, 13624 onUnsupportedFeature = _ref.onUnsupportedFeature; 13625 13626 _classCallCheck(this, BaseFontLoader); 13627 13628 if (this.constructor === BaseFontLoader) { 13629 (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); 13630 } 13631 13632 this.docId = docId; 13633 this._onUnsupportedFeature = onUnsupportedFeature; 13634 this.nativeFontFaces = []; 13635 this.styleElement = null; 13636 } 13637 13638 _createClass(BaseFontLoader, [{ 13639 key: "addNativeFontFace", 13640 value: function addNativeFontFace(nativeFontFace) { 13641 this.nativeFontFaces.push(nativeFontFace); 13642 document.fonts.add(nativeFontFace); 13643 } 13644 }, { 13645 key: "insertRule", 13646 value: function insertRule(rule) { 13647 var styleElement = this.styleElement; 13648 13649 if (!styleElement) { 13650 styleElement = this.styleElement = document.createElement('style'); 13651 styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); 13652 document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); 13653 } 13654 13655 var styleSheet = styleElement.sheet; 13656 styleSheet.insertRule(rule, styleSheet.cssRules.length); 13657 } 13658 }, { 13659 key: "clear", 13660 value: function clear() { 13661 this.nativeFontFaces.forEach(function (nativeFontFace) { 13662 document.fonts["delete"](nativeFontFace); 13663 }); 13664 this.nativeFontFaces.length = 0; 13665 13666 if (this.styleElement) { 13667 this.styleElement.remove(); 13668 this.styleElement = null; 13669 } 13670 } 13671 }, { 13672 key: "bind", 13673 value: function () { 13674 var _bind = _asyncToGenerator( 13675 /*#__PURE__*/ 13676 _regenerator["default"].mark(function _callee(font) { 13677 var _this = this; 13678 13679 var nativeFontFace, rule; 13680 return _regenerator["default"].wrap(function _callee$(_context) { 13681 while (1) { 13682 switch (_context.prev = _context.next) { 13683 case 0: 13684 if (!(font.attached || font.missingFile)) { 13685 _context.next = 2; 13686 break; 13687 } 13688 13689 return _context.abrupt("return", undefined); 13690 13691 case 2: 13692 font.attached = true; 13693 13694 if (!this.isFontLoadingAPISupported) { 13695 _context.next = 19; 13696 break; 13697 } 13698 13699 nativeFontFace = font.createNativeFontFace(); 13700 13701 if (!nativeFontFace) { 13702 _context.next = 18; 13703 break; 13704 } 13705 13706 this.addNativeFontFace(nativeFontFace); 13707 _context.prev = 7; 13708 _context.next = 10; 13709 return nativeFontFace.loaded; 13710 13711 case 10: 13712 _context.next = 18; 13713 break; 13714 13715 case 12: 13716 _context.prev = 12; 13717 _context.t0 = _context["catch"](7); 13718 13719 this._onUnsupportedFeature({ 13720 featureId: _util.UNSUPPORTED_FEATURES.font 13721 }); 13722 13723 (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); 13724 font.disableFontFace = true; 13725 throw _context.t0; 13726 13727 case 18: 13728 return _context.abrupt("return", undefined); 13729 13730 case 19: 13731 rule = font.createFontFaceRule(); 13732 13733 if (!rule) { 13734 _context.next = 25; 13735 break; 13736 } 13737 13738 this.insertRule(rule); 13739 13740 if (!this.isSyncFontLoadingSupported) { 13741 _context.next = 24; 13742 break; 13743 } 13744 13745 return _context.abrupt("return", undefined); 13746 13747 case 24: 13748 return _context.abrupt("return", new Promise(function (resolve) { 13749 var request = _this._queueLoadingCallback(resolve); 13750 13751 _this._prepareFontLoadEvent([rule], [font], request); 13752 })); 13753 13754 case 25: 13755 return _context.abrupt("return", undefined); 13756 13757 case 26: 13758 case "end": 13759 return _context.stop(); 13760 } 13761 } 13762 }, _callee, this, [[7, 12]]); 13763 })); 13764 13765 function bind(_x) { 13766 return _bind.apply(this, arguments); 13767 } 13768 13769 return bind; 13770 }() 13771 }, { 13772 key: "_queueLoadingCallback", 13773 value: function _queueLoadingCallback(callback) { 13774 (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.'); 13775 } 13776 }, { 13777 key: "_prepareFontLoadEvent", 13778 value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { 13779 (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); 13780 } 13781 }, { 13782 key: "isFontLoadingAPISupported", 13783 get: function get() { 13784 (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); 13785 } 13786 }, { 13787 key: "isSyncFontLoadingSupported", 13788 get: function get() { 13789 (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); 13790 } 13791 }, { 13792 key: "_loadTestFont", 13793 get: function get() { 13794 (0, _util.unreachable)('Abstract method `_loadTestFont`.'); 13795 } 13796 }]); 13797 13798 return BaseFontLoader; 13799}(); 13800 13801var FontLoader; 13802exports.FontLoader = FontLoader; 13803{ 13804 exports.FontLoader = FontLoader = 13805 /*#__PURE__*/ 13806 function (_BaseFontLoader) { 13807 _inherits(GenericFontLoader, _BaseFontLoader); 13808 13809 function GenericFontLoader(docId) { 13810 var _this2; 13811 13812 _classCallCheck(this, GenericFontLoader); 13813 13814 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId)); 13815 _this2.loadingContext = { 13816 requests: [], 13817 nextRequestId: 0 13818 }; 13819 _this2.loadTestFontId = 0; 13820 return _this2; 13821 } 13822 13823 _createClass(GenericFontLoader, [{ 13824 key: "_queueLoadingCallback", 13825 value: function _queueLoadingCallback(callback) { 13826 function completeRequest() { 13827 (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); 13828 request.done = true; 13829 13830 while (context.requests.length > 0 && context.requests[0].done) { 13831 var otherRequest = context.requests.shift(); 13832 setTimeout(otherRequest.callback, 0); 13833 } 13834 } 13835 13836 var context = this.loadingContext; 13837 var request = { 13838 id: "pdfjs-font-loading-".concat(context.nextRequestId++), 13839 done: false, 13840 complete: completeRequest, 13841 callback: callback 13842 }; 13843 context.requests.push(request); 13844 return request; 13845 } 13846 }, { 13847 key: "_prepareFontLoadEvent", 13848 value: function _prepareFontLoadEvent(rules, fonts, request) { 13849 function int32(data, offset) { 13850 return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; 13851 } 13852 13853 function spliceString(s, offset, remove, insert) { 13854 var chunk1 = s.substring(0, offset); 13855 var chunk2 = s.substring(offset + remove); 13856 return chunk1 + insert + chunk2; 13857 } 13858 13859 var i, ii; 13860 var canvas = document.createElement('canvas'); 13861 canvas.width = 1; 13862 canvas.height = 1; 13863 var ctx = canvas.getContext('2d'); 13864 var called = 0; 13865 13866 function isFontReady(name, callback) { 13867 called++; 13868 13869 if (called > 30) { 13870 (0, _util.warn)('Load test font never loaded.'); 13871 callback(); 13872 return; 13873 } 13874 13875 ctx.font = '30px ' + name; 13876 ctx.fillText('.', 0, 20); 13877 var imageData = ctx.getImageData(0, 0, 1, 1); 13878 13879 if (imageData.data[3] > 0) { 13880 callback(); 13881 return; 13882 } 13883 13884 setTimeout(isFontReady.bind(null, name, callback)); 13885 } 13886 13887 var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++); 13888 var data = this._loadTestFont; 13889 var COMMENT_OFFSET = 976; 13890 data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); 13891 var CFF_CHECKSUM_OFFSET = 16; 13892 var XXXX_VALUE = 0x58585858; 13893 var checksum = int32(data, CFF_CHECKSUM_OFFSET); 13894 13895 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { 13896 checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; 13897 } 13898 13899 if (i < loadTestFontId.length) { 13900 checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; 13901 } 13902 13903 data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); 13904 var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); 13905 var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}"); 13906 this.insertRule(rule); 13907 var names = []; 13908 13909 for (i = 0, ii = fonts.length; i < ii; i++) { 13910 names.push(fonts[i].loadedName); 13911 } 13912 13913 names.push(loadTestFontId); 13914 var div = document.createElement('div'); 13915 div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); 13916 13917 for (i = 0, ii = names.length; i < ii; ++i) { 13918 var span = document.createElement('span'); 13919 span.textContent = 'Hi'; 13920 span.style.fontFamily = names[i]; 13921 div.appendChild(span); 13922 } 13923 13924 document.body.appendChild(div); 13925 isFontReady(loadTestFontId, function () { 13926 document.body.removeChild(div); 13927 request.complete(); 13928 }); 13929 } 13930 }, { 13931 key: "isFontLoadingAPISupported", 13932 get: function get() { 13933 var supported = typeof document !== 'undefined' && !!document.fonts; 13934 13935 if (supported && typeof navigator !== 'undefined') { 13936 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 13937 13938 if (m && m[1] < 63) { 13939 supported = false; 13940 } 13941 } 13942 13943 return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); 13944 } 13945 }, { 13946 key: "isSyncFontLoadingSupported", 13947 get: function get() { 13948 var supported = false; 13949 13950 if (typeof navigator === 'undefined') { 13951 supported = true; 13952 } else { 13953 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 13954 13955 if (m && m[1] >= 14) { 13956 supported = true; 13957 } 13958 } 13959 13960 return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); 13961 } 13962 }, { 13963 key: "_loadTestFont", 13964 get: function get() { 13965 var getLoadTestFont = function getLoadTestFont() { 13966 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=='); 13967 }; 13968 13969 return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); 13970 } 13971 }]); 13972 13973 return GenericFontLoader; 13974 }(BaseFontLoader); 13975} 13976var IsEvalSupportedCached = { 13977 get value() { 13978 return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); 13979 } 13980 13981}; 13982 13983var FontFaceObject = 13984/*#__PURE__*/ 13985function () { 13986 function FontFaceObject(translatedData, _ref2) { 13987 var _ref2$isEvalSupported = _ref2.isEvalSupported, 13988 isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, 13989 _ref2$disableFontFace = _ref2.disableFontFace, 13990 disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, 13991 _ref2$ignoreErrors = _ref2.ignoreErrors, 13992 ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, 13993 _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature, 13994 onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe, 13995 _ref2$fontRegistry = _ref2.fontRegistry, 13996 fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; 13997 13998 _classCallCheck(this, FontFaceObject); 13999 14000 this.compiledGlyphs = Object.create(null); 14001 14002 for (var i in translatedData) { 14003 this[i] = translatedData[i]; 14004 } 14005 14006 this.isEvalSupported = isEvalSupported !== false; 14007 this.disableFontFace = disableFontFace === true; 14008 this.ignoreErrors = ignoreErrors === true; 14009 this._onUnsupportedFeature = onUnsupportedFeature; 14010 this.fontRegistry = fontRegistry; 14011 } 14012 14013 _createClass(FontFaceObject, [{ 14014 key: "createNativeFontFace", 14015 value: function createNativeFontFace() { 14016 if (!this.data || this.disableFontFace) { 14017 return null; 14018 } 14019 14020 var nativeFontFace = new FontFace(this.loadedName, this.data, {}); 14021 14022 if (this.fontRegistry) { 14023 this.fontRegistry.registerFont(this); 14024 } 14025 14026 return nativeFontFace; 14027 } 14028 }, { 14029 key: "createFontFaceRule", 14030 value: function createFontFaceRule() { 14031 if (!this.data || this.disableFontFace) { 14032 return null; 14033 } 14034 14035 var data = (0, _util.bytesToString)(new Uint8Array(this.data)); 14036 var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); 14037 var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); 14038 14039 if (this.fontRegistry) { 14040 this.fontRegistry.registerFont(this, url); 14041 } 14042 14043 return rule; 14044 } 14045 }, { 14046 key: "getPathGenerator", 14047 value: function getPathGenerator(objs, character) { 14048 if (this.compiledGlyphs[character] !== undefined) { 14049 return this.compiledGlyphs[character]; 14050 } 14051 14052 var cmds, current; 14053 14054 try { 14055 cmds = objs.get(this.loadedName + '_path_' + character); 14056 } catch (ex) { 14057 if (!this.ignoreErrors) { 14058 throw ex; 14059 } 14060 14061 if (this._onUnsupportedFeature) { 14062 this._onUnsupportedFeature({ 14063 featureId: _util.UNSUPPORTED_FEATURES.font 14064 }); 14065 } 14066 14067 (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); 14068 return this.compiledGlyphs[character] = function (c, size) {}; 14069 } 14070 14071 if (this.isEvalSupported && IsEvalSupportedCached.value) { 14072 var args, 14073 js = ''; 14074 14075 for (var i = 0, ii = cmds.length; i < ii; i++) { 14076 current = cmds[i]; 14077 14078 if (current.args !== undefined) { 14079 args = current.args.join(','); 14080 } else { 14081 args = ''; 14082 } 14083 14084 js += 'c.' + current.cmd + '(' + args + ');\n'; 14085 } 14086 14087 return this.compiledGlyphs[character] = new Function('c', 'size', js); 14088 } 14089 14090 return this.compiledGlyphs[character] = function (c, size) { 14091 for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { 14092 current = cmds[_i]; 14093 14094 if (current.cmd === 'scale') { 14095 current.args = [size, -size]; 14096 } 14097 14098 c[current.cmd].apply(c, current.args); 14099 } 14100 }; 14101 } 14102 }]); 14103 14104 return FontFaceObject; 14105}(); 14106 14107exports.FontFaceObject = FontFaceObject; 14108 14109/***/ }), 14110/* 153 */ 14111/***/ (function(module, exports, __w_pdfjs_require__) { 14112 14113"use strict"; 14114 14115 14116var compatibilityParams = Object.create(null); 14117{ 14118 var isNodeJS = __w_pdfjs_require__(4); 14119 14120 var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; 14121 var isIE = /Trident/.test(userAgent); 14122 var isIOSChrome = /CriOS/.test(userAgent); 14123 14124 (function checkOnBlobSupport() { 14125 if (isIE || isIOSChrome) { 14126 compatibilityParams.disableCreateObjectURL = true; 14127 } 14128 })(); 14129 14130 (function checkFontFaceAndImage() { 14131 if (isNodeJS()) { 14132 compatibilityParams.disableFontFace = true; 14133 compatibilityParams.nativeImageDecoderSupport = 'none'; 14134 } 14135 })(); 14136} 14137exports.apiCompatibilityParams = Object.freeze(compatibilityParams); 14138 14139/***/ }), 14140/* 154 */ 14141/***/ (function(module, exports, __w_pdfjs_require__) { 14142 14143"use strict"; 14144 14145 14146Object.defineProperty(exports, "__esModule", { 14147 value: true 14148}); 14149exports.CanvasGraphics = void 0; 14150 14151var _util = __w_pdfjs_require__(1); 14152 14153var _pattern_helper = __w_pdfjs_require__(155); 14154 14155var MIN_FONT_SIZE = 16; 14156var MAX_FONT_SIZE = 100; 14157var MAX_GROUP_SIZE = 4096; 14158var MIN_WIDTH_FACTOR = 0.65; 14159var COMPILE_TYPE3_GLYPHS = true; 14160var MAX_SIZE_TO_COMPILE = 1000; 14161var FULL_CHUNK_HEIGHT = 16; 14162var IsLittleEndianCached = { 14163 get value() { 14164 return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); 14165 } 14166 14167}; 14168 14169function addContextCurrentTransform(ctx) { 14170 if (!ctx.mozCurrentTransform) { 14171 ctx._originalSave = ctx.save; 14172 ctx._originalRestore = ctx.restore; 14173 ctx._originalRotate = ctx.rotate; 14174 ctx._originalScale = ctx.scale; 14175 ctx._originalTranslate = ctx.translate; 14176 ctx._originalTransform = ctx.transform; 14177 ctx._originalSetTransform = ctx.setTransform; 14178 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; 14179 ctx._transformStack = []; 14180 Object.defineProperty(ctx, 'mozCurrentTransform', { 14181 get: function getCurrentTransform() { 14182 return this._transformMatrix; 14183 } 14184 }); 14185 Object.defineProperty(ctx, 'mozCurrentTransformInverse', { 14186 get: function getCurrentTransformInverse() { 14187 var m = this._transformMatrix; 14188 var a = m[0], 14189 b = m[1], 14190 c = m[2], 14191 d = m[3], 14192 e = m[4], 14193 f = m[5]; 14194 var ad_bc = a * d - b * c; 14195 var bc_ad = b * c - a * d; 14196 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]; 14197 } 14198 }); 14199 14200 ctx.save = function ctxSave() { 14201 var old = this._transformMatrix; 14202 14203 this._transformStack.push(old); 14204 14205 this._transformMatrix = old.slice(0, 6); 14206 14207 this._originalSave(); 14208 }; 14209 14210 ctx.restore = function ctxRestore() { 14211 var prev = this._transformStack.pop(); 14212 14213 if (prev) { 14214 this._transformMatrix = prev; 14215 14216 this._originalRestore(); 14217 } 14218 }; 14219 14220 ctx.translate = function ctxTranslate(x, y) { 14221 var m = this._transformMatrix; 14222 m[4] = m[0] * x + m[2] * y + m[4]; 14223 m[5] = m[1] * x + m[3] * y + m[5]; 14224 14225 this._originalTranslate(x, y); 14226 }; 14227 14228 ctx.scale = function ctxScale(x, y) { 14229 var m = this._transformMatrix; 14230 m[0] = m[0] * x; 14231 m[1] = m[1] * x; 14232 m[2] = m[2] * y; 14233 m[3] = m[3] * y; 14234 14235 this._originalScale(x, y); 14236 }; 14237 14238 ctx.transform = function ctxTransform(a, b, c, d, e, f) { 14239 var m = this._transformMatrix; 14240 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]]; 14241 14242 ctx._originalTransform(a, b, c, d, e, f); 14243 }; 14244 14245 ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { 14246 this._transformMatrix = [a, b, c, d, e, f]; 14247 14248 ctx._originalSetTransform(a, b, c, d, e, f); 14249 }; 14250 14251 ctx.rotate = function ctxRotate(angle) { 14252 var cosValue = Math.cos(angle); 14253 var sinValue = Math.sin(angle); 14254 var m = this._transformMatrix; 14255 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]]; 14256 14257 this._originalRotate(angle); 14258 }; 14259 } 14260} 14261 14262var CachedCanvases = function CachedCanvasesClosure() { 14263 function CachedCanvases(canvasFactory) { 14264 this.canvasFactory = canvasFactory; 14265 this.cache = Object.create(null); 14266 } 14267 14268 CachedCanvases.prototype = { 14269 getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { 14270 var canvasEntry; 14271 14272 if (this.cache[id] !== undefined) { 14273 canvasEntry = this.cache[id]; 14274 this.canvasFactory.reset(canvasEntry, width, height); 14275 canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); 14276 } else { 14277 canvasEntry = this.canvasFactory.create(width, height); 14278 this.cache[id] = canvasEntry; 14279 } 14280 14281 if (trackTransform) { 14282 addContextCurrentTransform(canvasEntry.context); 14283 } 14284 14285 return canvasEntry; 14286 }, 14287 clear: function clear() { 14288 for (var id in this.cache) { 14289 var canvasEntry = this.cache[id]; 14290 this.canvasFactory.destroy(canvasEntry); 14291 delete this.cache[id]; 14292 } 14293 } 14294 }; 14295 return CachedCanvases; 14296}(); 14297 14298function compileType3Glyph(imgData) { 14299 var POINT_TO_PROCESS_LIMIT = 1000; 14300 var width = imgData.width, 14301 height = imgData.height; 14302 var i, 14303 j, 14304 j0, 14305 width1 = width + 1; 14306 var points = new Uint8Array(width1 * (height + 1)); 14307 var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); 14308 var lineSize = width + 7 & ~7, 14309 data0 = imgData.data; 14310 var data = new Uint8Array(lineSize * height), 14311 pos = 0, 14312 ii; 14313 14314 for (i = 0, ii = data0.length; i < ii; i++) { 14315 var mask = 128, 14316 elem = data0[i]; 14317 14318 while (mask > 0) { 14319 data[pos++] = elem & mask ? 0 : 255; 14320 mask >>= 1; 14321 } 14322 } 14323 14324 var count = 0; 14325 pos = 0; 14326 14327 if (data[pos] !== 0) { 14328 points[0] = 1; 14329 ++count; 14330 } 14331 14332 for (j = 1; j < width; j++) { 14333 if (data[pos] !== data[pos + 1]) { 14334 points[j] = data[pos] ? 2 : 1; 14335 ++count; 14336 } 14337 14338 pos++; 14339 } 14340 14341 if (data[pos] !== 0) { 14342 points[j] = 2; 14343 ++count; 14344 } 14345 14346 for (i = 1; i < height; i++) { 14347 pos = i * lineSize; 14348 j0 = i * width1; 14349 14350 if (data[pos - lineSize] !== data[pos]) { 14351 points[j0] = data[pos] ? 1 : 8; 14352 ++count; 14353 } 14354 14355 var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); 14356 14357 for (j = 1; j < width; j++) { 14358 sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); 14359 14360 if (POINT_TYPES[sum]) { 14361 points[j0 + j] = POINT_TYPES[sum]; 14362 ++count; 14363 } 14364 14365 pos++; 14366 } 14367 14368 if (data[pos - lineSize] !== data[pos]) { 14369 points[j0 + j] = data[pos] ? 2 : 4; 14370 ++count; 14371 } 14372 14373 if (count > POINT_TO_PROCESS_LIMIT) { 14374 return null; 14375 } 14376 } 14377 14378 pos = lineSize * (height - 1); 14379 j0 = i * width1; 14380 14381 if (data[pos] !== 0) { 14382 points[j0] = 8; 14383 ++count; 14384 } 14385 14386 for (j = 1; j < width; j++) { 14387 if (data[pos] !== data[pos + 1]) { 14388 points[j0 + j] = data[pos] ? 4 : 8; 14389 ++count; 14390 } 14391 14392 pos++; 14393 } 14394 14395 if (data[pos] !== 0) { 14396 points[j0 + j] = 4; 14397 ++count; 14398 } 14399 14400 if (count > POINT_TO_PROCESS_LIMIT) { 14401 return null; 14402 } 14403 14404 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); 14405 var outlines = []; 14406 14407 for (i = 0; count && i <= height; i++) { 14408 var p = i * width1; 14409 var end = p + width; 14410 14411 while (p < end && !points[p]) { 14412 p++; 14413 } 14414 14415 if (p === end) { 14416 continue; 14417 } 14418 14419 var coords = [p % width1, i]; 14420 var type = points[p], 14421 p0 = p, 14422 pp; 14423 14424 do { 14425 var step = steps[type]; 14426 14427 do { 14428 p += step; 14429 } while (!points[p]); 14430 14431 pp = points[p]; 14432 14433 if (pp !== 5 && pp !== 10) { 14434 type = pp; 14435 points[p] = 0; 14436 } else { 14437 type = pp & 0x33 * type >> 4; 14438 points[p] &= type >> 2 | type << 2; 14439 } 14440 14441 coords.push(p % width1); 14442 coords.push(p / width1 | 0); 14443 14444 if (!points[p]) { 14445 --count; 14446 } 14447 } while (p0 !== p); 14448 14449 outlines.push(coords); 14450 --i; 14451 } 14452 14453 var drawOutline = function drawOutline(c) { 14454 c.save(); 14455 c.scale(1 / width, -1 / height); 14456 c.translate(0, -height); 14457 c.beginPath(); 14458 14459 for (var i = 0, ii = outlines.length; i < ii; i++) { 14460 var o = outlines[i]; 14461 c.moveTo(o[0], o[1]); 14462 14463 for (var j = 2, jj = o.length; j < jj; j += 2) { 14464 c.lineTo(o[j], o[j + 1]); 14465 } 14466 } 14467 14468 c.fill(); 14469 c.beginPath(); 14470 c.restore(); 14471 }; 14472 14473 return drawOutline; 14474} 14475 14476var CanvasExtraState = function CanvasExtraStateClosure() { 14477 function CanvasExtraState() { 14478 this.alphaIsShape = false; 14479 this.fontSize = 0; 14480 this.fontSizeScale = 1; 14481 this.textMatrix = _util.IDENTITY_MATRIX; 14482 this.textMatrixScale = 1; 14483 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 14484 this.leading = 0; 14485 this.x = 0; 14486 this.y = 0; 14487 this.lineX = 0; 14488 this.lineY = 0; 14489 this.charSpacing = 0; 14490 this.wordSpacing = 0; 14491 this.textHScale = 1; 14492 this.textRenderingMode = _util.TextRenderingMode.FILL; 14493 this.textRise = 0; 14494 this.fillColor = '#000000'; 14495 this.strokeColor = '#000000'; 14496 this.patternFill = false; 14497 this.fillAlpha = 1; 14498 this.strokeAlpha = 1; 14499 this.lineWidth = 1; 14500 this.activeSMask = null; 14501 this.resumeSMaskCtx = null; 14502 } 14503 14504 CanvasExtraState.prototype = { 14505 clone: function CanvasExtraState_clone() { 14506 return Object.create(this); 14507 }, 14508 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { 14509 this.x = x; 14510 this.y = y; 14511 } 14512 }; 14513 return CanvasExtraState; 14514}(); 14515 14516var CanvasGraphics = function CanvasGraphicsClosure() { 14517 var EXECUTION_TIME = 15; 14518 var EXECUTION_STEPS = 10; 14519 14520 function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { 14521 this.ctx = canvasCtx; 14522 this.current = new CanvasExtraState(); 14523 this.stateStack = []; 14524 this.pendingClip = null; 14525 this.pendingEOFill = false; 14526 this.res = null; 14527 this.xobjs = null; 14528 this.commonObjs = commonObjs; 14529 this.objs = objs; 14530 this.canvasFactory = canvasFactory; 14531 this.webGLContext = webGLContext; 14532 this.imageLayer = imageLayer; 14533 this.groupStack = []; 14534 this.processingType3 = null; 14535 this.baseTransform = null; 14536 this.baseTransformStack = []; 14537 this.groupLevel = 0; 14538 this.smaskStack = []; 14539 this.smaskCounter = 0; 14540 this.tempSMask = null; 14541 this.cachedCanvases = new CachedCanvases(this.canvasFactory); 14542 14543 if (canvasCtx) { 14544 addContextCurrentTransform(canvasCtx); 14545 } 14546 14547 this._cachedGetSinglePixelWidth = null; 14548 } 14549 14550 function putBinaryImageData(ctx, imgData) { 14551 if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { 14552 ctx.putImageData(imgData, 0, 0); 14553 return; 14554 } 14555 14556 var height = imgData.height, 14557 width = imgData.width; 14558 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 14559 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 14560 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 14561 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 14562 var srcPos = 0, 14563 destPos; 14564 var src = imgData.data; 14565 var dest = chunkImgData.data; 14566 var i, j, thisChunkHeight, elemsInThisChunk; 14567 14568 if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { 14569 var srcLength = src.byteLength; 14570 var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); 14571 var dest32DataLength = dest32.length; 14572 var fullSrcDiff = width + 7 >> 3; 14573 var white = 0xFFFFFFFF; 14574 var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; 14575 14576 for (i = 0; i < totalChunks; i++) { 14577 thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 14578 destPos = 0; 14579 14580 for (j = 0; j < thisChunkHeight; j++) { 14581 var srcDiff = srcLength - srcPos; 14582 var k = 0; 14583 var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; 14584 var kEndUnrolled = kEnd & ~7; 14585 var mask = 0; 14586 var srcByte = 0; 14587 14588 for (; k < kEndUnrolled; k += 8) { 14589 srcByte = src[srcPos++]; 14590 dest32[destPos++] = srcByte & 128 ? white : black; 14591 dest32[destPos++] = srcByte & 64 ? white : black; 14592 dest32[destPos++] = srcByte & 32 ? white : black; 14593 dest32[destPos++] = srcByte & 16 ? white : black; 14594 dest32[destPos++] = srcByte & 8 ? white : black; 14595 dest32[destPos++] = srcByte & 4 ? white : black; 14596 dest32[destPos++] = srcByte & 2 ? white : black; 14597 dest32[destPos++] = srcByte & 1 ? white : black; 14598 } 14599 14600 for (; k < kEnd; k++) { 14601 if (mask === 0) { 14602 srcByte = src[srcPos++]; 14603 mask = 128; 14604 } 14605 14606 dest32[destPos++] = srcByte & mask ? white : black; 14607 mask >>= 1; 14608 } 14609 } 14610 14611 while (destPos < dest32DataLength) { 14612 dest32[destPos++] = 0; 14613 } 14614 14615 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 14616 } 14617 } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { 14618 j = 0; 14619 elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; 14620 14621 for (i = 0; i < fullChunks; i++) { 14622 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 14623 srcPos += elemsInThisChunk; 14624 ctx.putImageData(chunkImgData, 0, j); 14625 j += FULL_CHUNK_HEIGHT; 14626 } 14627 14628 if (i < totalChunks) { 14629 elemsInThisChunk = width * partialChunkHeight * 4; 14630 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 14631 ctx.putImageData(chunkImgData, 0, j); 14632 } 14633 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { 14634 thisChunkHeight = FULL_CHUNK_HEIGHT; 14635 elemsInThisChunk = width * thisChunkHeight; 14636 14637 for (i = 0; i < totalChunks; i++) { 14638 if (i >= fullChunks) { 14639 thisChunkHeight = partialChunkHeight; 14640 elemsInThisChunk = width * thisChunkHeight; 14641 } 14642 14643 destPos = 0; 14644 14645 for (j = elemsInThisChunk; j--;) { 14646 dest[destPos++] = src[srcPos++]; 14647 dest[destPos++] = src[srcPos++]; 14648 dest[destPos++] = src[srcPos++]; 14649 dest[destPos++] = 255; 14650 } 14651 14652 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 14653 } 14654 } else { 14655 throw new Error("bad image kind: ".concat(imgData.kind)); 14656 } 14657 } 14658 14659 function putBinaryImageMask(ctx, imgData) { 14660 var height = imgData.height, 14661 width = imgData.width; 14662 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 14663 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 14664 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 14665 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 14666 var srcPos = 0; 14667 var src = imgData.data; 14668 var dest = chunkImgData.data; 14669 14670 for (var i = 0; i < totalChunks; i++) { 14671 var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 14672 var destPos = 3; 14673 14674 for (var j = 0; j < thisChunkHeight; j++) { 14675 var mask = 0; 14676 14677 for (var k = 0; k < width; k++) { 14678 if (!mask) { 14679 var elem = src[srcPos++]; 14680 mask = 128; 14681 } 14682 14683 dest[destPos] = elem & mask ? 0 : 255; 14684 destPos += 4; 14685 mask >>= 1; 14686 } 14687 } 14688 14689 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 14690 } 14691 } 14692 14693 function copyCtxState(sourceCtx, destCtx) { 14694 var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; 14695 14696 for (var i = 0, ii = properties.length; i < ii; i++) { 14697 var property = properties[i]; 14698 14699 if (sourceCtx[property] !== undefined) { 14700 destCtx[property] = sourceCtx[property]; 14701 } 14702 } 14703 14704 if (sourceCtx.setLineDash !== undefined) { 14705 destCtx.setLineDash(sourceCtx.getLineDash()); 14706 destCtx.lineDashOffset = sourceCtx.lineDashOffset; 14707 } 14708 } 14709 14710 function resetCtxToDefault(ctx) { 14711 ctx.strokeStyle = '#000000'; 14712 ctx.fillStyle = '#000000'; 14713 ctx.fillRule = 'nonzero'; 14714 ctx.globalAlpha = 1; 14715 ctx.lineWidth = 1; 14716 ctx.lineCap = 'butt'; 14717 ctx.lineJoin = 'miter'; 14718 ctx.miterLimit = 10; 14719 ctx.globalCompositeOperation = 'source-over'; 14720 ctx.font = '10px sans-serif'; 14721 14722 if (ctx.setLineDash !== undefined) { 14723 ctx.setLineDash([]); 14724 ctx.lineDashOffset = 0; 14725 } 14726 } 14727 14728 function composeSMaskBackdrop(bytes, r0, g0, b0) { 14729 var length = bytes.length; 14730 14731 for (var i = 3; i < length; i += 4) { 14732 var alpha = bytes[i]; 14733 14734 if (alpha === 0) { 14735 bytes[i - 3] = r0; 14736 bytes[i - 2] = g0; 14737 bytes[i - 1] = b0; 14738 } else if (alpha < 255) { 14739 var alpha_ = 255 - alpha; 14740 bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; 14741 bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; 14742 bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; 14743 } 14744 } 14745 } 14746 14747 function composeSMaskAlpha(maskData, layerData, transferMap) { 14748 var length = maskData.length; 14749 var scale = 1 / 255; 14750 14751 for (var i = 3; i < length; i += 4) { 14752 var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; 14753 layerData[i] = layerData[i] * alpha * scale | 0; 14754 } 14755 } 14756 14757 function composeSMaskLuminosity(maskData, layerData, transferMap) { 14758 var length = maskData.length; 14759 14760 for (var i = 3; i < length; i += 4) { 14761 var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; 14762 layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; 14763 } 14764 } 14765 14766 function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { 14767 var hasBackdrop = !!backdrop; 14768 var r0 = hasBackdrop ? backdrop[0] : 0; 14769 var g0 = hasBackdrop ? backdrop[1] : 0; 14770 var b0 = hasBackdrop ? backdrop[2] : 0; 14771 var composeFn; 14772 14773 if (subtype === 'Luminosity') { 14774 composeFn = composeSMaskLuminosity; 14775 } else { 14776 composeFn = composeSMaskAlpha; 14777 } 14778 14779 var PIXELS_TO_PROCESS = 1048576; 14780 var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); 14781 14782 for (var row = 0; row < height; row += chunkSize) { 14783 var chunkHeight = Math.min(chunkSize, height - row); 14784 var maskData = maskCtx.getImageData(0, row, width, chunkHeight); 14785 var layerData = layerCtx.getImageData(0, row, width, chunkHeight); 14786 14787 if (hasBackdrop) { 14788 composeSMaskBackdrop(maskData.data, r0, g0, b0); 14789 } 14790 14791 composeFn(maskData.data, layerData.data, transferMap); 14792 maskCtx.putImageData(layerData, 0, row); 14793 } 14794 } 14795 14796 function composeSMask(ctx, smask, layerCtx, webGLContext) { 14797 var mask = smask.canvas; 14798 var maskCtx = smask.context; 14799 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); 14800 var backdrop = smask.backdrop || null; 14801 14802 if (!smask.transferMap && webGLContext.isEnabled) { 14803 var composed = webGLContext.composeSMask({ 14804 layer: layerCtx.canvas, 14805 mask: mask, 14806 properties: { 14807 subtype: smask.subtype, 14808 backdrop: backdrop 14809 } 14810 }); 14811 ctx.setTransform(1, 0, 0, 1, 0, 0); 14812 ctx.drawImage(composed, smask.offsetX, smask.offsetY); 14813 return; 14814 } 14815 14816 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); 14817 ctx.drawImage(mask, 0, 0); 14818 } 14819 14820 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 14821 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 14822 var NORMAL_CLIP = {}; 14823 var EO_CLIP = {}; 14824 CanvasGraphics.prototype = { 14825 beginDrawing: function beginDrawing(_ref) { 14826 var transform = _ref.transform, 14827 viewport = _ref.viewport, 14828 _ref$transparency = _ref.transparency, 14829 transparency = _ref$transparency === void 0 ? false : _ref$transparency, 14830 _ref$background = _ref.background, 14831 background = _ref$background === void 0 ? null : _ref$background; 14832 var width = this.ctx.canvas.width; 14833 var height = this.ctx.canvas.height; 14834 this.ctx.save(); 14835 this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; 14836 this.ctx.fillRect(0, 0, width, height); 14837 this.ctx.restore(); 14838 14839 if (transparency) { 14840 var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); 14841 this.compositeCtx = this.ctx; 14842 this.transparentCanvas = transparentCanvas.canvas; 14843 this.ctx = transparentCanvas.context; 14844 this.ctx.save(); 14845 this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); 14846 } 14847 14848 this.ctx.save(); 14849 resetCtxToDefault(this.ctx); 14850 14851 if (transform) { 14852 this.ctx.transform.apply(this.ctx, transform); 14853 } 14854 14855 this.ctx.transform.apply(this.ctx, viewport.transform); 14856 this.baseTransform = this.ctx.mozCurrentTransform.slice(); 14857 14858 if (this.imageLayer) { 14859 this.imageLayer.beginLayout(); 14860 } 14861 }, 14862 executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { 14863 var argsArray = operatorList.argsArray; 14864 var fnArray = operatorList.fnArray; 14865 var i = executionStartIdx || 0; 14866 var argsArrayLen = argsArray.length; 14867 14868 if (argsArrayLen === i) { 14869 return i; 14870 } 14871 14872 var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; 14873 var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; 14874 var steps = 0; 14875 var commonObjs = this.commonObjs; 14876 var objs = this.objs; 14877 var fnId; 14878 14879 while (true) { 14880 if (stepper !== undefined && i === stepper.nextBreakPoint) { 14881 stepper.breakIt(i, continueCallback); 14882 return i; 14883 } 14884 14885 fnId = fnArray[i]; 14886 14887 if (fnId !== _util.OPS.dependency) { 14888 this[fnId].apply(this, argsArray[i]); 14889 } else { 14890 var _iteratorNormalCompletion = true; 14891 var _didIteratorError = false; 14892 var _iteratorError = undefined; 14893 14894 try { 14895 for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 14896 var depObjId = _step.value; 14897 var objsPool = depObjId.startsWith('g_') ? commonObjs : objs; 14898 14899 if (!objsPool.has(depObjId)) { 14900 objsPool.get(depObjId, continueCallback); 14901 return i; 14902 } 14903 } 14904 } catch (err) { 14905 _didIteratorError = true; 14906 _iteratorError = err; 14907 } finally { 14908 try { 14909 if (!_iteratorNormalCompletion && _iterator["return"] != null) { 14910 _iterator["return"](); 14911 } 14912 } finally { 14913 if (_didIteratorError) { 14914 throw _iteratorError; 14915 } 14916 } 14917 } 14918 } 14919 14920 i++; 14921 14922 if (i === argsArrayLen) { 14923 return i; 14924 } 14925 14926 if (chunkOperations && ++steps > EXECUTION_STEPS) { 14927 if (Date.now() > endTime) { 14928 continueCallback(); 14929 return i; 14930 } 14931 14932 steps = 0; 14933 } 14934 } 14935 }, 14936 endDrawing: function CanvasGraphics_endDrawing() { 14937 if (this.current.activeSMask !== null) { 14938 this.endSMaskGroup(); 14939 } 14940 14941 this.ctx.restore(); 14942 14943 if (this.transparentCanvas) { 14944 this.ctx = this.compositeCtx; 14945 this.ctx.save(); 14946 this.ctx.setTransform(1, 0, 0, 1, 0, 0); 14947 this.ctx.drawImage(this.transparentCanvas, 0, 0); 14948 this.ctx.restore(); 14949 this.transparentCanvas = null; 14950 } 14951 14952 this.cachedCanvases.clear(); 14953 this.webGLContext.clear(); 14954 14955 if (this.imageLayer) { 14956 this.imageLayer.endLayout(); 14957 } 14958 }, 14959 setLineWidth: function CanvasGraphics_setLineWidth(width) { 14960 this.current.lineWidth = width; 14961 this.ctx.lineWidth = width; 14962 }, 14963 setLineCap: function CanvasGraphics_setLineCap(style) { 14964 this.ctx.lineCap = LINE_CAP_STYLES[style]; 14965 }, 14966 setLineJoin: function CanvasGraphics_setLineJoin(style) { 14967 this.ctx.lineJoin = LINE_JOIN_STYLES[style]; 14968 }, 14969 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { 14970 this.ctx.miterLimit = limit; 14971 }, 14972 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { 14973 var ctx = this.ctx; 14974 14975 if (ctx.setLineDash !== undefined) { 14976 ctx.setLineDash(dashArray); 14977 ctx.lineDashOffset = dashPhase; 14978 } 14979 }, 14980 setRenderingIntent: function setRenderingIntent(intent) {}, 14981 setFlatness: function setFlatness(flatness) {}, 14982 setGState: function CanvasGraphics_setGState(states) { 14983 for (var i = 0, ii = states.length; i < ii; i++) { 14984 var state = states[i]; 14985 var key = state[0]; 14986 var value = state[1]; 14987 14988 switch (key) { 14989 case 'LW': 14990 this.setLineWidth(value); 14991 break; 14992 14993 case 'LC': 14994 this.setLineCap(value); 14995 break; 14996 14997 case 'LJ': 14998 this.setLineJoin(value); 14999 break; 15000 15001 case 'ML': 15002 this.setMiterLimit(value); 15003 break; 15004 15005 case 'D': 15006 this.setDash(value[0], value[1]); 15007 break; 15008 15009 case 'RI': 15010 this.setRenderingIntent(value); 15011 break; 15012 15013 case 'FL': 15014 this.setFlatness(value); 15015 break; 15016 15017 case 'Font': 15018 this.setFont(value[0], value[1]); 15019 break; 15020 15021 case 'CA': 15022 this.current.strokeAlpha = state[1]; 15023 break; 15024 15025 case 'ca': 15026 this.current.fillAlpha = state[1]; 15027 this.ctx.globalAlpha = state[1]; 15028 break; 15029 15030 case 'BM': 15031 this.ctx.globalCompositeOperation = value; 15032 break; 15033 15034 case 'SMask': 15035 if (this.current.activeSMask) { 15036 if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { 15037 this.suspendSMaskGroup(); 15038 } else { 15039 this.endSMaskGroup(); 15040 } 15041 } 15042 15043 this.current.activeSMask = value ? this.tempSMask : null; 15044 15045 if (this.current.activeSMask) { 15046 this.beginSMaskGroup(); 15047 } 15048 15049 this.tempSMask = null; 15050 break; 15051 } 15052 } 15053 }, 15054 beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { 15055 var activeSMask = this.current.activeSMask; 15056 var drawnWidth = activeSMask.canvas.width; 15057 var drawnHeight = activeSMask.canvas.height; 15058 var cacheId = 'smaskGroupAt' + this.groupLevel; 15059 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 15060 var currentCtx = this.ctx; 15061 var currentTransform = currentCtx.mozCurrentTransform; 15062 this.ctx.save(); 15063 var groupCtx = scratchCanvas.context; 15064 groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); 15065 groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); 15066 groupCtx.transform.apply(groupCtx, currentTransform); 15067 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; 15068 copyCtxState(currentCtx, groupCtx); 15069 this.ctx = groupCtx; 15070 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 15071 this.groupStack.push(currentCtx); 15072 this.groupLevel++; 15073 }, 15074 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { 15075 var groupCtx = this.ctx; 15076 this.groupLevel--; 15077 this.ctx = this.groupStack.pop(); 15078 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); 15079 this.ctx.restore(); 15080 this.ctx.save(); 15081 copyCtxState(groupCtx, this.ctx); 15082 this.current.resumeSMaskCtx = groupCtx; 15083 15084 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 15085 15086 this.ctx.transform.apply(this.ctx, deltaTransform); 15087 groupCtx.save(); 15088 groupCtx.setTransform(1, 0, 0, 1, 0, 0); 15089 groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); 15090 groupCtx.restore(); 15091 }, 15092 resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { 15093 var groupCtx = this.current.resumeSMaskCtx; 15094 var currentCtx = this.ctx; 15095 this.ctx = groupCtx; 15096 this.groupStack.push(currentCtx); 15097 this.groupLevel++; 15098 }, 15099 endSMaskGroup: function CanvasGraphics_endSMaskGroup() { 15100 var groupCtx = this.ctx; 15101 this.groupLevel--; 15102 this.ctx = this.groupStack.pop(); 15103 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); 15104 this.ctx.restore(); 15105 copyCtxState(groupCtx, this.ctx); 15106 15107 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 15108 15109 this.ctx.transform.apply(this.ctx, deltaTransform); 15110 }, 15111 save: function CanvasGraphics_save() { 15112 this.ctx.save(); 15113 var old = this.current; 15114 this.stateStack.push(old); 15115 this.current = old.clone(); 15116 this.current.resumeSMaskCtx = null; 15117 }, 15118 restore: function CanvasGraphics_restore() { 15119 if (this.current.resumeSMaskCtx) { 15120 this.resumeSMaskGroup(); 15121 } 15122 15123 if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { 15124 this.endSMaskGroup(); 15125 } 15126 15127 if (this.stateStack.length !== 0) { 15128 this.current = this.stateStack.pop(); 15129 this.ctx.restore(); 15130 this.pendingClip = null; 15131 this._cachedGetSinglePixelWidth = null; 15132 } 15133 }, 15134 transform: function CanvasGraphics_transform(a, b, c, d, e, f) { 15135 this.ctx.transform(a, b, c, d, e, f); 15136 this._cachedGetSinglePixelWidth = null; 15137 }, 15138 constructPath: function CanvasGraphics_constructPath(ops, args) { 15139 var ctx = this.ctx; 15140 var current = this.current; 15141 var x = current.x, 15142 y = current.y; 15143 15144 for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { 15145 switch (ops[i] | 0) { 15146 case _util.OPS.rectangle: 15147 x = args[j++]; 15148 y = args[j++]; 15149 var width = args[j++]; 15150 var height = args[j++]; 15151 15152 if (width === 0) { 15153 width = this.getSinglePixelWidth(); 15154 } 15155 15156 if (height === 0) { 15157 height = this.getSinglePixelWidth(); 15158 } 15159 15160 var xw = x + width; 15161 var yh = y + height; 15162 this.ctx.moveTo(x, y); 15163 this.ctx.lineTo(xw, y); 15164 this.ctx.lineTo(xw, yh); 15165 this.ctx.lineTo(x, yh); 15166 this.ctx.lineTo(x, y); 15167 this.ctx.closePath(); 15168 break; 15169 15170 case _util.OPS.moveTo: 15171 x = args[j++]; 15172 y = args[j++]; 15173 ctx.moveTo(x, y); 15174 break; 15175 15176 case _util.OPS.lineTo: 15177 x = args[j++]; 15178 y = args[j++]; 15179 ctx.lineTo(x, y); 15180 break; 15181 15182 case _util.OPS.curveTo: 15183 x = args[j + 4]; 15184 y = args[j + 5]; 15185 ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); 15186 j += 6; 15187 break; 15188 15189 case _util.OPS.curveTo2: 15190 ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); 15191 x = args[j + 2]; 15192 y = args[j + 3]; 15193 j += 4; 15194 break; 15195 15196 case _util.OPS.curveTo3: 15197 x = args[j + 2]; 15198 y = args[j + 3]; 15199 ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); 15200 j += 4; 15201 break; 15202 15203 case _util.OPS.closePath: 15204 ctx.closePath(); 15205 break; 15206 } 15207 } 15208 15209 current.setCurrentPoint(x, y); 15210 }, 15211 closePath: function CanvasGraphics_closePath() { 15212 this.ctx.closePath(); 15213 }, 15214 stroke: function CanvasGraphics_stroke(consumePath) { 15215 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 15216 var ctx = this.ctx; 15217 var strokeColor = this.current.strokeColor; 15218 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); 15219 ctx.globalAlpha = this.current.strokeAlpha; 15220 15221 if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { 15222 ctx.save(); 15223 ctx.strokeStyle = strokeColor.getPattern(ctx, this); 15224 ctx.stroke(); 15225 ctx.restore(); 15226 } else { 15227 ctx.stroke(); 15228 } 15229 15230 if (consumePath) { 15231 this.consumePath(); 15232 } 15233 15234 ctx.globalAlpha = this.current.fillAlpha; 15235 }, 15236 closeStroke: function CanvasGraphics_closeStroke() { 15237 this.closePath(); 15238 this.stroke(); 15239 }, 15240 fill: function CanvasGraphics_fill(consumePath) { 15241 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 15242 var ctx = this.ctx; 15243 var fillColor = this.current.fillColor; 15244 var isPatternFill = this.current.patternFill; 15245 var needRestore = false; 15246 15247 if (isPatternFill) { 15248 ctx.save(); 15249 15250 if (this.baseTransform) { 15251 ctx.setTransform.apply(ctx, this.baseTransform); 15252 } 15253 15254 ctx.fillStyle = fillColor.getPattern(ctx, this); 15255 needRestore = true; 15256 } 15257 15258 if (this.pendingEOFill) { 15259 ctx.fill('evenodd'); 15260 this.pendingEOFill = false; 15261 } else { 15262 ctx.fill(); 15263 } 15264 15265 if (needRestore) { 15266 ctx.restore(); 15267 } 15268 15269 if (consumePath) { 15270 this.consumePath(); 15271 } 15272 }, 15273 eoFill: function CanvasGraphics_eoFill() { 15274 this.pendingEOFill = true; 15275 this.fill(); 15276 }, 15277 fillStroke: function CanvasGraphics_fillStroke() { 15278 this.fill(false); 15279 this.stroke(false); 15280 this.consumePath(); 15281 }, 15282 eoFillStroke: function CanvasGraphics_eoFillStroke() { 15283 this.pendingEOFill = true; 15284 this.fillStroke(); 15285 }, 15286 closeFillStroke: function CanvasGraphics_closeFillStroke() { 15287 this.closePath(); 15288 this.fillStroke(); 15289 }, 15290 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { 15291 this.pendingEOFill = true; 15292 this.closePath(); 15293 this.fillStroke(); 15294 }, 15295 endPath: function CanvasGraphics_endPath() { 15296 this.consumePath(); 15297 }, 15298 clip: function CanvasGraphics_clip() { 15299 this.pendingClip = NORMAL_CLIP; 15300 }, 15301 eoClip: function CanvasGraphics_eoClip() { 15302 this.pendingClip = EO_CLIP; 15303 }, 15304 beginText: function CanvasGraphics_beginText() { 15305 this.current.textMatrix = _util.IDENTITY_MATRIX; 15306 this.current.textMatrixScale = 1; 15307 this.current.x = this.current.lineX = 0; 15308 this.current.y = this.current.lineY = 0; 15309 }, 15310 endText: function CanvasGraphics_endText() { 15311 var paths = this.pendingTextPaths; 15312 var ctx = this.ctx; 15313 15314 if (paths === undefined) { 15315 ctx.beginPath(); 15316 return; 15317 } 15318 15319 ctx.save(); 15320 ctx.beginPath(); 15321 15322 for (var i = 0; i < paths.length; i++) { 15323 var path = paths[i]; 15324 ctx.setTransform.apply(ctx, path.transform); 15325 ctx.translate(path.x, path.y); 15326 path.addToPath(ctx, path.fontSize); 15327 } 15328 15329 ctx.restore(); 15330 ctx.clip(); 15331 ctx.beginPath(); 15332 delete this.pendingTextPaths; 15333 }, 15334 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { 15335 this.current.charSpacing = spacing; 15336 }, 15337 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { 15338 this.current.wordSpacing = spacing; 15339 }, 15340 setHScale: function CanvasGraphics_setHScale(scale) { 15341 this.current.textHScale = scale / 100; 15342 }, 15343 setLeading: function CanvasGraphics_setLeading(leading) { 15344 this.current.leading = -leading; 15345 }, 15346 setFont: function CanvasGraphics_setFont(fontRefName, size) { 15347 var fontObj = this.commonObjs.get(fontRefName); 15348 var current = this.current; 15349 15350 if (!fontObj) { 15351 throw new Error("Can't find font for ".concat(fontRefName)); 15352 } 15353 15354 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 15355 15356 if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { 15357 (0, _util.warn)('Invalid font matrix for font ' + fontRefName); 15358 } 15359 15360 if (size < 0) { 15361 size = -size; 15362 current.fontDirection = -1; 15363 } else { 15364 current.fontDirection = 1; 15365 } 15366 15367 this.current.font = fontObj; 15368 this.current.fontSize = size; 15369 15370 if (fontObj.isType3Font) { 15371 return; 15372 } 15373 15374 var name = fontObj.loadedName || 'sans-serif'; 15375 var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; 15376 var italic = fontObj.italic ? 'italic' : 'normal'; 15377 var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); 15378 var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; 15379 this.current.fontSizeScale = size / browserFontSize; 15380 this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); 15381 }, 15382 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { 15383 this.current.textRenderingMode = mode; 15384 }, 15385 setTextRise: function CanvasGraphics_setTextRise(rise) { 15386 this.current.textRise = rise; 15387 }, 15388 moveText: function CanvasGraphics_moveText(x, y) { 15389 this.current.x = this.current.lineX += x; 15390 this.current.y = this.current.lineY += y; 15391 }, 15392 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { 15393 this.setLeading(-y); 15394 this.moveText(x, y); 15395 }, 15396 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { 15397 this.current.textMatrix = [a, b, c, d, e, f]; 15398 this.current.textMatrixScale = Math.sqrt(a * a + b * b); 15399 this.current.x = this.current.lineX = 0; 15400 this.current.y = this.current.lineY = 0; 15401 }, 15402 nextLine: function CanvasGraphics_nextLine() { 15403 this.moveText(0, this.current.leading); 15404 }, 15405 paintChar: function paintChar(character, x, y, patternTransform) { 15406 var ctx = this.ctx; 15407 var current = this.current; 15408 var font = current.font; 15409 var textRenderingMode = current.textRenderingMode; 15410 var fontSize = current.fontSize / current.fontSizeScale; 15411 var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 15412 var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); 15413 var patternFill = current.patternFill && font.data; 15414 var addToPath; 15415 15416 if (font.disableFontFace || isAddToPathSet || patternFill) { 15417 addToPath = font.getPathGenerator(this.commonObjs, character); 15418 } 15419 15420 if (font.disableFontFace || patternFill) { 15421 ctx.save(); 15422 ctx.translate(x, y); 15423 ctx.beginPath(); 15424 addToPath(ctx, fontSize); 15425 15426 if (patternTransform) { 15427 ctx.setTransform.apply(ctx, patternTransform); 15428 } 15429 15430 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15431 ctx.fill(); 15432 } 15433 15434 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15435 ctx.stroke(); 15436 } 15437 15438 ctx.restore(); 15439 } else { 15440 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15441 ctx.fillText(character, x, y); 15442 } 15443 15444 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15445 ctx.strokeText(character, x, y); 15446 } 15447 } 15448 15449 if (isAddToPathSet) { 15450 var paths = this.pendingTextPaths || (this.pendingTextPaths = []); 15451 paths.push({ 15452 transform: ctx.mozCurrentTransform, 15453 x: x, 15454 y: y, 15455 fontSize: fontSize, 15456 addToPath: addToPath 15457 }); 15458 } 15459 }, 15460 15461 get isFontSubpixelAAEnabled() { 15462 var _this$cachedCanvases$ = this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10), 15463 ctx = _this$cachedCanvases$.context; 15464 15465 ctx.scale(1.5, 1); 15466 ctx.fillText('I', 0, 10); 15467 var data = ctx.getImageData(0, 0, 10, 10).data; 15468 var enabled = false; 15469 15470 for (var i = 3; i < data.length; i += 4) { 15471 if (data[i] > 0 && data[i] < 255) { 15472 enabled = true; 15473 break; 15474 } 15475 } 15476 15477 return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); 15478 }, 15479 15480 showText: function CanvasGraphics_showText(glyphs) { 15481 var current = this.current; 15482 var font = current.font; 15483 15484 if (font.isType3Font) { 15485 return this.showType3Text(glyphs); 15486 } 15487 15488 var fontSize = current.fontSize; 15489 15490 if (fontSize === 0) { 15491 return undefined; 15492 } 15493 15494 var ctx = this.ctx; 15495 var fontSizeScale = current.fontSizeScale; 15496 var charSpacing = current.charSpacing; 15497 var wordSpacing = current.wordSpacing; 15498 var fontDirection = current.fontDirection; 15499 var textHScale = current.textHScale * fontDirection; 15500 var glyphsLength = glyphs.length; 15501 var vertical = font.vertical; 15502 var spacingDir = vertical ? 1 : -1; 15503 var defaultVMetrics = font.defaultVMetrics; 15504 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 15505 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; 15506 ctx.save(); 15507 var patternTransform; 15508 15509 if (current.patternFill) { 15510 ctx.save(); 15511 var pattern = current.fillColor.getPattern(ctx, this); 15512 patternTransform = ctx.mozCurrentTransform; 15513 ctx.restore(); 15514 ctx.fillStyle = pattern; 15515 } 15516 15517 ctx.transform.apply(ctx, current.textMatrix); 15518 ctx.translate(current.x, current.y + current.textRise); 15519 15520 if (fontDirection > 0) { 15521 ctx.scale(textHScale, -1); 15522 } else { 15523 ctx.scale(textHScale, 1); 15524 } 15525 15526 var lineWidth = current.lineWidth; 15527 var scale = current.textMatrixScale; 15528 15529 if (scale === 0 || lineWidth === 0) { 15530 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 15531 15532 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15533 this._cachedGetSinglePixelWidth = null; 15534 lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; 15535 } 15536 } else { 15537 lineWidth /= scale; 15538 } 15539 15540 if (fontSizeScale !== 1.0) { 15541 ctx.scale(fontSizeScale, fontSizeScale); 15542 lineWidth /= fontSizeScale; 15543 } 15544 15545 ctx.lineWidth = lineWidth; 15546 var x = 0, 15547 i; 15548 15549 for (i = 0; i < glyphsLength; ++i) { 15550 var glyph = glyphs[i]; 15551 15552 if ((0, _util.isNum)(glyph)) { 15553 x += spacingDir * glyph * fontSize / 1000; 15554 continue; 15555 } 15556 15557 var restoreNeeded = false; 15558 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 15559 var character = glyph.fontChar; 15560 var accent = glyph.accent; 15561 var scaledX, scaledY, scaledAccentX, scaledAccentY; 15562 var width = glyph.width; 15563 15564 if (vertical) { 15565 var vmetric, vx, vy; 15566 vmetric = glyph.vmetric || defaultVMetrics; 15567 vx = glyph.vmetric ? vmetric[1] : width * 0.5; 15568 vx = -vx * widthAdvanceScale; 15569 vy = vmetric[2] * widthAdvanceScale; 15570 width = vmetric ? -vmetric[0] : width; 15571 scaledX = vx / fontSizeScale; 15572 scaledY = (x + vy) / fontSizeScale; 15573 } else { 15574 scaledX = x / fontSizeScale; 15575 scaledY = 0; 15576 } 15577 15578 if (font.remeasure && width > 0) { 15579 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; 15580 15581 if (width < measuredWidth && this.isFontSubpixelAAEnabled) { 15582 var characterScaleX = width / measuredWidth; 15583 restoreNeeded = true; 15584 ctx.save(); 15585 ctx.scale(characterScaleX, 1); 15586 scaledX /= characterScaleX; 15587 } else if (width !== measuredWidth) { 15588 scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; 15589 } 15590 } 15591 15592 if (glyph.isInFont || font.missingFile) { 15593 if (simpleFillText && !accent) { 15594 ctx.fillText(character, scaledX, scaledY); 15595 } else { 15596 this.paintChar(character, scaledX, scaledY, patternTransform); 15597 15598 if (accent) { 15599 scaledAccentX = scaledX + accent.offset.x / fontSizeScale; 15600 scaledAccentY = scaledY - accent.offset.y / fontSizeScale; 15601 this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); 15602 } 15603 } 15604 } 15605 15606 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 15607 x += charWidth; 15608 15609 if (restoreNeeded) { 15610 ctx.restore(); 15611 } 15612 } 15613 15614 if (vertical) { 15615 current.y -= x * textHScale; 15616 } else { 15617 current.x += x * textHScale; 15618 } 15619 15620 ctx.restore(); 15621 }, 15622 showType3Text: function CanvasGraphics_showType3Text(glyphs) { 15623 var ctx = this.ctx; 15624 var current = this.current; 15625 var font = current.font; 15626 var fontSize = current.fontSize; 15627 var fontDirection = current.fontDirection; 15628 var spacingDir = font.vertical ? 1 : -1; 15629 var charSpacing = current.charSpacing; 15630 var wordSpacing = current.wordSpacing; 15631 var textHScale = current.textHScale * fontDirection; 15632 var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; 15633 var glyphsLength = glyphs.length; 15634 var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; 15635 var i, glyph, width, spacingLength; 15636 15637 if (isTextInvisible || fontSize === 0) { 15638 return; 15639 } 15640 15641 this._cachedGetSinglePixelWidth = null; 15642 ctx.save(); 15643 ctx.transform.apply(ctx, current.textMatrix); 15644 ctx.translate(current.x, current.y); 15645 ctx.scale(textHScale, fontDirection); 15646 15647 for (i = 0; i < glyphsLength; ++i) { 15648 glyph = glyphs[i]; 15649 15650 if ((0, _util.isNum)(glyph)) { 15651 spacingLength = spacingDir * glyph * fontSize / 1000; 15652 this.ctx.translate(spacingLength, 0); 15653 current.x += spacingLength * textHScale; 15654 continue; 15655 } 15656 15657 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 15658 var operatorList = font.charProcOperatorList[glyph.operatorListId]; 15659 15660 if (!operatorList) { 15661 (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); 15662 continue; 15663 } 15664 15665 this.processingType3 = glyph; 15666 this.save(); 15667 ctx.scale(fontSize, fontSize); 15668 ctx.transform.apply(ctx, fontMatrix); 15669 this.executeOperatorList(operatorList); 15670 this.restore(); 15671 15672 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); 15673 15674 width = transformed[0] * fontSize + spacing; 15675 ctx.translate(width, 0); 15676 current.x += width * textHScale; 15677 } 15678 15679 ctx.restore(); 15680 this.processingType3 = null; 15681 }, 15682 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, 15683 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { 15684 this.ctx.rect(llx, lly, urx - llx, ury - lly); 15685 this.clip(); 15686 this.endPath(); 15687 }, 15688 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { 15689 var _this = this; 15690 15691 var pattern; 15692 15693 if (IR[0] === 'TilingPattern') { 15694 var color = IR[1]; 15695 var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); 15696 var canvasGraphicsFactory = { 15697 createCanvasGraphics: function createCanvasGraphics(ctx) { 15698 return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); 15699 } 15700 }; 15701 pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); 15702 } else { 15703 pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); 15704 } 15705 15706 return pattern; 15707 }, 15708 setStrokeColorN: function CanvasGraphics_setStrokeColorN() { 15709 this.current.strokeColor = this.getColorN_Pattern(arguments); 15710 }, 15711 setFillColorN: function CanvasGraphics_setFillColorN() { 15712 this.current.fillColor = this.getColorN_Pattern(arguments); 15713 this.current.patternFill = true; 15714 }, 15715 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { 15716 var color = _util.Util.makeCssRgb(r, g, b); 15717 15718 this.ctx.strokeStyle = color; 15719 this.current.strokeColor = color; 15720 }, 15721 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { 15722 var color = _util.Util.makeCssRgb(r, g, b); 15723 15724 this.ctx.fillStyle = color; 15725 this.current.fillColor = color; 15726 this.current.patternFill = false; 15727 }, 15728 shadingFill: function CanvasGraphics_shadingFill(patternIR) { 15729 var ctx = this.ctx; 15730 this.save(); 15731 var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); 15732 ctx.fillStyle = pattern.getPattern(ctx, this, true); 15733 var inv = ctx.mozCurrentTransformInverse; 15734 15735 if (inv) { 15736 var canvas = ctx.canvas; 15737 var width = canvas.width; 15738 var height = canvas.height; 15739 15740 var bl = _util.Util.applyTransform([0, 0], inv); 15741 15742 var br = _util.Util.applyTransform([0, height], inv); 15743 15744 var ul = _util.Util.applyTransform([width, 0], inv); 15745 15746 var ur = _util.Util.applyTransform([width, height], inv); 15747 15748 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); 15749 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); 15750 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); 15751 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); 15752 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); 15753 } else { 15754 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); 15755 } 15756 15757 this.restore(); 15758 }, 15759 beginInlineImage: function CanvasGraphics_beginInlineImage() { 15760 (0, _util.unreachable)('Should not call beginInlineImage'); 15761 }, 15762 beginImageData: function CanvasGraphics_beginImageData() { 15763 (0, _util.unreachable)('Should not call beginImageData'); 15764 }, 15765 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { 15766 this.save(); 15767 this.baseTransformStack.push(this.baseTransform); 15768 15769 if (Array.isArray(matrix) && matrix.length === 6) { 15770 this.transform.apply(this, matrix); 15771 } 15772 15773 this.baseTransform = this.ctx.mozCurrentTransform; 15774 15775 if (bbox) { 15776 var width = bbox[2] - bbox[0]; 15777 var height = bbox[3] - bbox[1]; 15778 this.ctx.rect(bbox[0], bbox[1], width, height); 15779 this.clip(); 15780 this.endPath(); 15781 } 15782 }, 15783 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { 15784 this.restore(); 15785 this.baseTransform = this.baseTransformStack.pop(); 15786 }, 15787 beginGroup: function CanvasGraphics_beginGroup(group) { 15788 this.save(); 15789 var currentCtx = this.ctx; 15790 15791 if (!group.isolated) { 15792 (0, _util.info)('TODO: Support non-isolated groups.'); 15793 } 15794 15795 if (group.knockout) { 15796 (0, _util.warn)('Knockout groups not supported.'); 15797 } 15798 15799 var currentTransform = currentCtx.mozCurrentTransform; 15800 15801 if (group.matrix) { 15802 currentCtx.transform.apply(currentCtx, group.matrix); 15803 } 15804 15805 if (!group.bbox) { 15806 throw new Error('Bounding box is required.'); 15807 } 15808 15809 var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); 15810 15811 var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; 15812 bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; 15813 var offsetX = Math.floor(bounds[0]); 15814 var offsetY = Math.floor(bounds[1]); 15815 var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); 15816 var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); 15817 var scaleX = 1, 15818 scaleY = 1; 15819 15820 if (drawnWidth > MAX_GROUP_SIZE) { 15821 scaleX = drawnWidth / MAX_GROUP_SIZE; 15822 drawnWidth = MAX_GROUP_SIZE; 15823 } 15824 15825 if (drawnHeight > MAX_GROUP_SIZE) { 15826 scaleY = drawnHeight / MAX_GROUP_SIZE; 15827 drawnHeight = MAX_GROUP_SIZE; 15828 } 15829 15830 var cacheId = 'groupAt' + this.groupLevel; 15831 15832 if (group.smask) { 15833 cacheId += '_smask_' + this.smaskCounter++ % 2; 15834 } 15835 15836 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 15837 var groupCtx = scratchCanvas.context; 15838 groupCtx.scale(1 / scaleX, 1 / scaleY); 15839 groupCtx.translate(-offsetX, -offsetY); 15840 groupCtx.transform.apply(groupCtx, currentTransform); 15841 15842 if (group.smask) { 15843 this.smaskStack.push({ 15844 canvas: scratchCanvas.canvas, 15845 context: groupCtx, 15846 offsetX: offsetX, 15847 offsetY: offsetY, 15848 scaleX: scaleX, 15849 scaleY: scaleY, 15850 subtype: group.smask.subtype, 15851 backdrop: group.smask.backdrop, 15852 transferMap: group.smask.transferMap || null, 15853 startTransformInverse: null 15854 }); 15855 } else { 15856 currentCtx.setTransform(1, 0, 0, 1, 0, 0); 15857 currentCtx.translate(offsetX, offsetY); 15858 currentCtx.scale(scaleX, scaleY); 15859 } 15860 15861 copyCtxState(currentCtx, groupCtx); 15862 this.ctx = groupCtx; 15863 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 15864 this.groupStack.push(currentCtx); 15865 this.groupLevel++; 15866 this.current.activeSMask = null; 15867 }, 15868 endGroup: function CanvasGraphics_endGroup(group) { 15869 this.groupLevel--; 15870 var groupCtx = this.ctx; 15871 this.ctx = this.groupStack.pop(); 15872 15873 if (this.ctx.imageSmoothingEnabled !== undefined) { 15874 this.ctx.imageSmoothingEnabled = false; 15875 } else { 15876 this.ctx.mozImageSmoothingEnabled = false; 15877 } 15878 15879 if (group.smask) { 15880 this.tempSMask = this.smaskStack.pop(); 15881 } else { 15882 this.ctx.drawImage(groupCtx.canvas, 0, 0); 15883 } 15884 15885 this.restore(); 15886 }, 15887 beginAnnotations: function CanvasGraphics_beginAnnotations() { 15888 this.save(); 15889 15890 if (this.baseTransform) { 15891 this.ctx.setTransform.apply(this.ctx, this.baseTransform); 15892 } 15893 }, 15894 endAnnotations: function CanvasGraphics_endAnnotations() { 15895 this.restore(); 15896 }, 15897 beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { 15898 this.save(); 15899 resetCtxToDefault(this.ctx); 15900 this.current = new CanvasExtraState(); 15901 15902 if (Array.isArray(rect) && rect.length === 4) { 15903 var width = rect[2] - rect[0]; 15904 var height = rect[3] - rect[1]; 15905 this.ctx.rect(rect[0], rect[1], width, height); 15906 this.clip(); 15907 this.endPath(); 15908 } 15909 15910 this.transform.apply(this, transform); 15911 this.transform.apply(this, matrix); 15912 }, 15913 endAnnotation: function CanvasGraphics_endAnnotation() { 15914 this.restore(); 15915 }, 15916 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { 15917 var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); 15918 15919 if (!domImage) { 15920 (0, _util.warn)('Dependent image isn\'t ready yet'); 15921 return; 15922 } 15923 15924 this.save(); 15925 var ctx = this.ctx; 15926 ctx.scale(1 / w, -1 / h); 15927 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); 15928 15929 if (this.imageLayer) { 15930 var currentTransform = ctx.mozCurrentTransformInverse; 15931 var position = this.getCanvasPosition(0, 0); 15932 this.imageLayer.appendImage({ 15933 objId: objId, 15934 left: position[0], 15935 top: position[1], 15936 width: w / currentTransform[0], 15937 height: h / currentTransform[3] 15938 }); 15939 } 15940 15941 this.restore(); 15942 }, 15943 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { 15944 var ctx = this.ctx; 15945 var width = img.width, 15946 height = img.height; 15947 var fillColor = this.current.fillColor; 15948 var isPatternFill = this.current.patternFill; 15949 var glyph = this.processingType3; 15950 15951 if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { 15952 if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { 15953 glyph.compiled = compileType3Glyph({ 15954 data: img.data, 15955 width: width, 15956 height: height 15957 }); 15958 } else { 15959 glyph.compiled = null; 15960 } 15961 } 15962 15963 if (glyph && glyph.compiled) { 15964 glyph.compiled(ctx); 15965 return; 15966 } 15967 15968 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 15969 var maskCtx = maskCanvas.context; 15970 maskCtx.save(); 15971 putBinaryImageMask(maskCtx, img); 15972 maskCtx.globalCompositeOperation = 'source-in'; 15973 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 15974 maskCtx.fillRect(0, 0, width, height); 15975 maskCtx.restore(); 15976 this.paintInlineImageXObject(maskCanvas.canvas); 15977 }, 15978 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { 15979 var width = imgData.width; 15980 var height = imgData.height; 15981 var fillColor = this.current.fillColor; 15982 var isPatternFill = this.current.patternFill; 15983 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 15984 var maskCtx = maskCanvas.context; 15985 maskCtx.save(); 15986 putBinaryImageMask(maskCtx, imgData); 15987 maskCtx.globalCompositeOperation = 'source-in'; 15988 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 15989 maskCtx.fillRect(0, 0, width, height); 15990 maskCtx.restore(); 15991 var ctx = this.ctx; 15992 15993 for (var i = 0, ii = positions.length; i < ii; i += 2) { 15994 ctx.save(); 15995 ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); 15996 ctx.scale(1, -1); 15997 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 15998 ctx.restore(); 15999 } 16000 }, 16001 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { 16002 var ctx = this.ctx; 16003 var fillColor = this.current.fillColor; 16004 var isPatternFill = this.current.patternFill; 16005 16006 for (var i = 0, ii = images.length; i < ii; i++) { 16007 var image = images[i]; 16008 var width = image.width, 16009 height = image.height; 16010 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 16011 var maskCtx = maskCanvas.context; 16012 maskCtx.save(); 16013 putBinaryImageMask(maskCtx, image); 16014 maskCtx.globalCompositeOperation = 'source-in'; 16015 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 16016 maskCtx.fillRect(0, 0, width, height); 16017 maskCtx.restore(); 16018 ctx.save(); 16019 ctx.transform.apply(ctx, image.transform); 16020 ctx.scale(1, -1); 16021 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 16022 ctx.restore(); 16023 } 16024 }, 16025 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { 16026 var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); 16027 16028 if (!imgData) { 16029 (0, _util.warn)('Dependent image isn\'t ready yet'); 16030 return; 16031 } 16032 16033 this.paintInlineImageXObject(imgData); 16034 }, 16035 paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { 16036 var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); 16037 16038 if (!imgData) { 16039 (0, _util.warn)('Dependent image isn\'t ready yet'); 16040 return; 16041 } 16042 16043 var width = imgData.width; 16044 var height = imgData.height; 16045 var map = []; 16046 16047 for (var i = 0, ii = positions.length; i < ii; i += 2) { 16048 map.push({ 16049 transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], 16050 x: 0, 16051 y: 0, 16052 w: width, 16053 h: height 16054 }); 16055 } 16056 16057 this.paintInlineImageXObjectGroup(imgData, map); 16058 }, 16059 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { 16060 var width = imgData.width; 16061 var height = imgData.height; 16062 var ctx = this.ctx; 16063 this.save(); 16064 ctx.scale(1 / width, -1 / height); 16065 var currentTransform = ctx.mozCurrentTransformInverse; 16066 var a = currentTransform[0], 16067 b = currentTransform[1]; 16068 var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); 16069 var c = currentTransform[2], 16070 d = currentTransform[3]; 16071 var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); 16072 var imgToPaint, tmpCanvas; 16073 16074 if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { 16075 imgToPaint = imgData; 16076 } else { 16077 tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); 16078 var tmpCtx = tmpCanvas.context; 16079 putBinaryImageData(tmpCtx, imgData); 16080 imgToPaint = tmpCanvas.canvas; 16081 } 16082 16083 var paintWidth = width, 16084 paintHeight = height; 16085 var tmpCanvasId = 'prescale1'; 16086 16087 while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { 16088 var newWidth = paintWidth, 16089 newHeight = paintHeight; 16090 16091 if (widthScale > 2 && paintWidth > 1) { 16092 newWidth = Math.ceil(paintWidth / 2); 16093 widthScale /= paintWidth / newWidth; 16094 } 16095 16096 if (heightScale > 2 && paintHeight > 1) { 16097 newHeight = Math.ceil(paintHeight / 2); 16098 heightScale /= paintHeight / newHeight; 16099 } 16100 16101 tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); 16102 tmpCtx = tmpCanvas.context; 16103 tmpCtx.clearRect(0, 0, newWidth, newHeight); 16104 tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); 16105 imgToPaint = tmpCanvas.canvas; 16106 paintWidth = newWidth; 16107 paintHeight = newHeight; 16108 tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; 16109 } 16110 16111 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); 16112 16113 if (this.imageLayer) { 16114 var position = this.getCanvasPosition(0, -height); 16115 this.imageLayer.appendImage({ 16116 imgData: imgData, 16117 left: position[0], 16118 top: position[1], 16119 width: width / currentTransform[0], 16120 height: height / currentTransform[3] 16121 }); 16122 } 16123 16124 this.restore(); 16125 }, 16126 paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { 16127 var ctx = this.ctx; 16128 var w = imgData.width; 16129 var h = imgData.height; 16130 var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); 16131 var tmpCtx = tmpCanvas.context; 16132 putBinaryImageData(tmpCtx, imgData); 16133 16134 for (var i = 0, ii = map.length; i < ii; i++) { 16135 var entry = map[i]; 16136 ctx.save(); 16137 ctx.transform.apply(ctx, entry.transform); 16138 ctx.scale(1, -1); 16139 ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); 16140 16141 if (this.imageLayer) { 16142 var position = this.getCanvasPosition(entry.x, entry.y); 16143 this.imageLayer.appendImage({ 16144 imgData: imgData, 16145 left: position[0], 16146 top: position[1], 16147 width: w, 16148 height: h 16149 }); 16150 } 16151 16152 ctx.restore(); 16153 } 16154 }, 16155 paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { 16156 this.ctx.fillRect(0, 0, 1, 1); 16157 }, 16158 paintXObject: function CanvasGraphics_paintXObject() { 16159 (0, _util.warn)('Unsupported \'paintXObject\' command.'); 16160 }, 16161 markPoint: function CanvasGraphics_markPoint(tag) {}, 16162 markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, 16163 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, 16164 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, 16165 endMarkedContent: function CanvasGraphics_endMarkedContent() {}, 16166 beginCompat: function CanvasGraphics_beginCompat() {}, 16167 endCompat: function CanvasGraphics_endCompat() {}, 16168 consumePath: function CanvasGraphics_consumePath() { 16169 var ctx = this.ctx; 16170 16171 if (this.pendingClip) { 16172 if (this.pendingClip === EO_CLIP) { 16173 ctx.clip('evenodd'); 16174 } else { 16175 ctx.clip(); 16176 } 16177 16178 this.pendingClip = null; 16179 } 16180 16181 ctx.beginPath(); 16182 }, 16183 getSinglePixelWidth: function getSinglePixelWidth(scale) { 16184 if (this._cachedGetSinglePixelWidth === null) { 16185 var inverse = this.ctx.mozCurrentTransformInverse; 16186 this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); 16187 } 16188 16189 return this._cachedGetSinglePixelWidth; 16190 }, 16191 getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { 16192 var transform = this.ctx.mozCurrentTransform; 16193 return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; 16194 } 16195 }; 16196 16197 for (var op in _util.OPS) { 16198 CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; 16199 } 16200 16201 return CanvasGraphics; 16202}(); 16203 16204exports.CanvasGraphics = CanvasGraphics; 16205 16206/***/ }), 16207/* 155 */ 16208/***/ (function(module, exports, __w_pdfjs_require__) { 16209 16210"use strict"; 16211 16212 16213Object.defineProperty(exports, "__esModule", { 16214 value: true 16215}); 16216exports.getShadingPatternFromIR = getShadingPatternFromIR; 16217exports.TilingPattern = void 0; 16218 16219var _util = __w_pdfjs_require__(1); 16220 16221var ShadingIRs = {}; 16222ShadingIRs.RadialAxial = { 16223 fromIR: function RadialAxial_fromIR(raw) { 16224 var type = raw[1]; 16225 var colorStops = raw[2]; 16226 var p0 = raw[3]; 16227 var p1 = raw[4]; 16228 var r0 = raw[5]; 16229 var r1 = raw[6]; 16230 return { 16231 type: 'Pattern', 16232 getPattern: function RadialAxial_getPattern(ctx) { 16233 var grad; 16234 16235 if (type === 'axial') { 16236 grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); 16237 } else if (type === 'radial') { 16238 grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); 16239 } 16240 16241 for (var i = 0, ii = colorStops.length; i < ii; ++i) { 16242 var c = colorStops[i]; 16243 grad.addColorStop(c[0], c[1]); 16244 } 16245 16246 return grad; 16247 } 16248 }; 16249 } 16250}; 16251 16252var createMeshCanvas = function createMeshCanvasClosure() { 16253 function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { 16254 var coords = context.coords, 16255 colors = context.colors; 16256 var bytes = data.data, 16257 rowSize = data.width * 4; 16258 var tmp; 16259 16260 if (coords[p1 + 1] > coords[p2 + 1]) { 16261 tmp = p1; 16262 p1 = p2; 16263 p2 = tmp; 16264 tmp = c1; 16265 c1 = c2; 16266 c2 = tmp; 16267 } 16268 16269 if (coords[p2 + 1] > coords[p3 + 1]) { 16270 tmp = p2; 16271 p2 = p3; 16272 p3 = tmp; 16273 tmp = c2; 16274 c2 = c3; 16275 c3 = tmp; 16276 } 16277 16278 if (coords[p1 + 1] > coords[p2 + 1]) { 16279 tmp = p1; 16280 p1 = p2; 16281 p2 = tmp; 16282 tmp = c1; 16283 c1 = c2; 16284 c2 = tmp; 16285 } 16286 16287 var x1 = (coords[p1] + context.offsetX) * context.scaleX; 16288 var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; 16289 var x2 = (coords[p2] + context.offsetX) * context.scaleX; 16290 var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; 16291 var x3 = (coords[p3] + context.offsetX) * context.scaleX; 16292 var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; 16293 16294 if (y1 >= y3) { 16295 return; 16296 } 16297 16298 var c1r = colors[c1], 16299 c1g = colors[c1 + 1], 16300 c1b = colors[c1 + 2]; 16301 var c2r = colors[c2], 16302 c2g = colors[c2 + 1], 16303 c2b = colors[c2 + 2]; 16304 var c3r = colors[c3], 16305 c3g = colors[c3 + 1], 16306 c3b = colors[c3 + 2]; 16307 var minY = Math.round(y1), 16308 maxY = Math.round(y3); 16309 var xa, car, cag, cab; 16310 var xb, cbr, cbg, cbb; 16311 var k; 16312 16313 for (var y = minY; y <= maxY; y++) { 16314 if (y < y2) { 16315 k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); 16316 xa = x1 - (x1 - x2) * k; 16317 car = c1r - (c1r - c2r) * k; 16318 cag = c1g - (c1g - c2g) * k; 16319 cab = c1b - (c1b - c2b) * k; 16320 } else { 16321 k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); 16322 xa = x2 - (x2 - x3) * k; 16323 car = c2r - (c2r - c3r) * k; 16324 cag = c2g - (c2g - c3g) * k; 16325 cab = c2b - (c2b - c3b) * k; 16326 } 16327 16328 k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); 16329 xb = x1 - (x1 - x3) * k; 16330 cbr = c1r - (c1r - c3r) * k; 16331 cbg = c1g - (c1g - c3g) * k; 16332 cbb = c1b - (c1b - c3b) * k; 16333 var x1_ = Math.round(Math.min(xa, xb)); 16334 var x2_ = Math.round(Math.max(xa, xb)); 16335 var j = rowSize * y + x1_ * 4; 16336 16337 for (var x = x1_; x <= x2_; x++) { 16338 k = (xa - x) / (xa - xb); 16339 k = k < 0 ? 0 : k > 1 ? 1 : k; 16340 bytes[j++] = car - (car - cbr) * k | 0; 16341 bytes[j++] = cag - (cag - cbg) * k | 0; 16342 bytes[j++] = cab - (cab - cbb) * k | 0; 16343 bytes[j++] = 255; 16344 } 16345 } 16346 } 16347 16348 function drawFigure(data, figure, context) { 16349 var ps = figure.coords; 16350 var cs = figure.colors; 16351 var i, ii; 16352 16353 switch (figure.type) { 16354 case 'lattice': 16355 var verticesPerRow = figure.verticesPerRow; 16356 var rows = Math.floor(ps.length / verticesPerRow) - 1; 16357 var cols = verticesPerRow - 1; 16358 16359 for (i = 0; i < rows; i++) { 16360 var q = i * verticesPerRow; 16361 16362 for (var j = 0; j < cols; j++, q++) { 16363 drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); 16364 drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); 16365 } 16366 } 16367 16368 break; 16369 16370 case 'triangles': 16371 for (i = 0, ii = ps.length; i < ii; i += 3) { 16372 drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); 16373 } 16374 16375 break; 16376 16377 default: 16378 throw new Error('illegal figure'); 16379 } 16380 } 16381 16382 function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { 16383 var EXPECTED_SCALE = 1.1; 16384 var MAX_PATTERN_SIZE = 3000; 16385 var BORDER_SIZE = 2; 16386 var offsetX = Math.floor(bounds[0]); 16387 var offsetY = Math.floor(bounds[1]); 16388 var boundsWidth = Math.ceil(bounds[2]) - offsetX; 16389 var boundsHeight = Math.ceil(bounds[3]) - offsetY; 16390 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 16391 var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 16392 var scaleX = boundsWidth / width; 16393 var scaleY = boundsHeight / height; 16394 var context = { 16395 coords: coords, 16396 colors: colors, 16397 offsetX: -offsetX, 16398 offsetY: -offsetY, 16399 scaleX: 1 / scaleX, 16400 scaleY: 1 / scaleY 16401 }; 16402 var paddedWidth = width + BORDER_SIZE * 2; 16403 var paddedHeight = height + BORDER_SIZE * 2; 16404 var canvas, tmpCanvas, i, ii; 16405 16406 if (webGLContext.isEnabled) { 16407 canvas = webGLContext.drawFigures({ 16408 width: width, 16409 height: height, 16410 backgroundColor: backgroundColor, 16411 figures: figures, 16412 context: context 16413 }); 16414 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 16415 tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); 16416 canvas = tmpCanvas.canvas; 16417 } else { 16418 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 16419 var tmpCtx = tmpCanvas.context; 16420 var data = tmpCtx.createImageData(width, height); 16421 16422 if (backgroundColor) { 16423 var bytes = data.data; 16424 16425 for (i = 0, ii = bytes.length; i < ii; i += 4) { 16426 bytes[i] = backgroundColor[0]; 16427 bytes[i + 1] = backgroundColor[1]; 16428 bytes[i + 2] = backgroundColor[2]; 16429 bytes[i + 3] = 255; 16430 } 16431 } 16432 16433 for (i = 0; i < figures.length; i++) { 16434 drawFigure(data, figures[i], context); 16435 } 16436 16437 tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); 16438 canvas = tmpCanvas.canvas; 16439 } 16440 16441 return { 16442 canvas: canvas, 16443 offsetX: offsetX - BORDER_SIZE * scaleX, 16444 offsetY: offsetY - BORDER_SIZE * scaleY, 16445 scaleX: scaleX, 16446 scaleY: scaleY 16447 }; 16448 } 16449 16450 return createMeshCanvas; 16451}(); 16452 16453ShadingIRs.Mesh = { 16454 fromIR: function Mesh_fromIR(raw) { 16455 var coords = raw[2]; 16456 var colors = raw[3]; 16457 var figures = raw[4]; 16458 var bounds = raw[5]; 16459 var matrix = raw[6]; 16460 var background = raw[8]; 16461 return { 16462 type: 'Pattern', 16463 getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { 16464 var scale; 16465 16466 if (shadingFill) { 16467 scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); 16468 } else { 16469 scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); 16470 16471 if (matrix) { 16472 var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); 16473 16474 scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; 16475 } 16476 } 16477 16478 var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); 16479 16480 if (!shadingFill) { 16481 ctx.setTransform.apply(ctx, owner.baseTransform); 16482 16483 if (matrix) { 16484 ctx.transform.apply(ctx, matrix); 16485 } 16486 } 16487 16488 ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); 16489 ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); 16490 return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); 16491 } 16492 }; 16493 } 16494}; 16495ShadingIRs.Dummy = { 16496 fromIR: function Dummy_fromIR() { 16497 return { 16498 type: 'Pattern', 16499 getPattern: function Dummy_fromIR_getPattern() { 16500 return 'hotpink'; 16501 } 16502 }; 16503 } 16504}; 16505 16506function getShadingPatternFromIR(raw) { 16507 var shadingIR = ShadingIRs[raw[0]]; 16508 16509 if (!shadingIR) { 16510 throw new Error("Unknown IR type: ".concat(raw[0])); 16511 } 16512 16513 return shadingIR.fromIR(raw); 16514} 16515 16516var TilingPattern = function TilingPatternClosure() { 16517 var PaintType = { 16518 COLORED: 1, 16519 UNCOLORED: 2 16520 }; 16521 var MAX_PATTERN_SIZE = 3000; 16522 16523 function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { 16524 this.operatorList = IR[2]; 16525 this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; 16526 this.bbox = IR[4]; 16527 this.xstep = IR[5]; 16528 this.ystep = IR[6]; 16529 this.paintType = IR[7]; 16530 this.tilingType = IR[8]; 16531 this.color = color; 16532 this.canvasGraphicsFactory = canvasGraphicsFactory; 16533 this.baseTransform = baseTransform; 16534 this.type = 'Pattern'; 16535 this.ctx = ctx; 16536 } 16537 16538 TilingPattern.prototype = { 16539 createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { 16540 var operatorList = this.operatorList; 16541 var bbox = this.bbox; 16542 var xstep = this.xstep; 16543 var ystep = this.ystep; 16544 var paintType = this.paintType; 16545 var tilingType = this.tilingType; 16546 var color = this.color; 16547 var canvasGraphicsFactory = this.canvasGraphicsFactory; 16548 (0, _util.info)('TilingType: ' + tilingType); 16549 var x0 = bbox[0], 16550 y0 = bbox[1], 16551 x1 = bbox[2], 16552 y1 = bbox[3]; 16553 16554 var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); 16555 16556 var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); 16557 16558 var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; 16559 var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); 16560 var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); 16561 var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true); 16562 var tmpCtx = tmpCanvas.context; 16563 var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); 16564 graphics.groupLevel = owner.groupLevel; 16565 this.setFillAndStrokeStyleToContext(graphics, paintType, color); 16566 graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); 16567 graphics.transform(1, 0, 0, 1, -x0, -y0); 16568 this.clipBbox(graphics, bbox, x0, y0, x1, y1); 16569 graphics.executeOperatorList(operatorList); 16570 this.ctx.transform(1, 0, 0, 1, x0, y0); 16571 this.ctx.scale(1 / dimx.scale, 1 / dimy.scale); 16572 return tmpCanvas.canvas; 16573 }, 16574 getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) { 16575 step = Math.abs(step); 16576 var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize); 16577 var size = Math.ceil(step * scale); 16578 16579 if (size >= maxSize) { 16580 size = maxSize; 16581 } else { 16582 scale = size / step; 16583 } 16584 16585 return { 16586 scale: scale, 16587 size: size 16588 }; 16589 }, 16590 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { 16591 if (Array.isArray(bbox) && bbox.length === 4) { 16592 var bboxWidth = x1 - x0; 16593 var bboxHeight = y1 - y0; 16594 graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); 16595 graphics.clip(); 16596 graphics.endPath(); 16597 } 16598 }, 16599 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { 16600 var context = graphics.ctx, 16601 current = graphics.current; 16602 16603 switch (paintType) { 16604 case PaintType.COLORED: 16605 var ctx = this.ctx; 16606 context.fillStyle = ctx.fillStyle; 16607 context.strokeStyle = ctx.strokeStyle; 16608 current.fillColor = ctx.fillStyle; 16609 current.strokeColor = ctx.strokeStyle; 16610 break; 16611 16612 case PaintType.UNCOLORED: 16613 var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); 16614 16615 context.fillStyle = cssColor; 16616 context.strokeStyle = cssColor; 16617 current.fillColor = cssColor; 16618 current.strokeColor = cssColor; 16619 break; 16620 16621 default: 16622 throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); 16623 } 16624 }, 16625 getPattern: function TilingPattern_getPattern(ctx, owner) { 16626 ctx = this.ctx; 16627 ctx.setTransform.apply(ctx, this.baseTransform); 16628 ctx.transform.apply(ctx, this.matrix); 16629 var temporaryPatternCanvas = this.createPatternCanvas(owner); 16630 return ctx.createPattern(temporaryPatternCanvas, 'repeat'); 16631 } 16632 }; 16633 return TilingPattern; 16634}(); 16635 16636exports.TilingPattern = TilingPattern; 16637 16638/***/ }), 16639/* 156 */ 16640/***/ (function(module, exports, __w_pdfjs_require__) { 16641 16642"use strict"; 16643 16644 16645Object.defineProperty(exports, "__esModule", { 16646 value: true 16647}); 16648exports.GlobalWorkerOptions = void 0; 16649var GlobalWorkerOptions = Object.create(null); 16650exports.GlobalWorkerOptions = GlobalWorkerOptions; 16651GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; 16652GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; 16653 16654/***/ }), 16655/* 157 */ 16656/***/ (function(module, exports, __w_pdfjs_require__) { 16657 16658"use strict"; 16659 16660 16661Object.defineProperty(exports, "__esModule", { 16662 value: true 16663}); 16664exports.MessageHandler = MessageHandler; 16665 16666var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 16667 16668var _util = __w_pdfjs_require__(1); 16669 16670function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 16671 16672function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 16673 16674function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 16675 16676function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 16677 16678function resolveCall(_x, _x2) { 16679 return _resolveCall.apply(this, arguments); 16680} 16681 16682function _resolveCall() { 16683 _resolveCall = _asyncToGenerator( 16684 /*#__PURE__*/ 16685 _regenerator["default"].mark(function _callee(fn, args) { 16686 var thisArg, 16687 _args = arguments; 16688 return _regenerator["default"].wrap(function _callee$(_context) { 16689 while (1) { 16690 switch (_context.prev = _context.next) { 16691 case 0: 16692 thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; 16693 16694 if (fn) { 16695 _context.next = 3; 16696 break; 16697 } 16698 16699 return _context.abrupt("return", undefined); 16700 16701 case 3: 16702 return _context.abrupt("return", fn.apply(thisArg, args)); 16703 16704 case 4: 16705 case "end": 16706 return _context.stop(); 16707 } 16708 } 16709 }, _callee); 16710 })); 16711 return _resolveCall.apply(this, arguments); 16712} 16713 16714function wrapReason(reason) { 16715 if (_typeof(reason) !== 'object') { 16716 return reason; 16717 } 16718 16719 switch (reason.name) { 16720 case 'AbortException': 16721 return new _util.AbortException(reason.message); 16722 16723 case 'MissingPDFException': 16724 return new _util.MissingPDFException(reason.message); 16725 16726 case 'UnexpectedResponseException': 16727 return new _util.UnexpectedResponseException(reason.message, reason.status); 16728 16729 default: 16730 return new _util.UnknownErrorException(reason.message, reason.details); 16731 } 16732} 16733 16734function makeReasonSerializable(reason) { 16735 if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { 16736 return reason; 16737 } 16738 16739 return new _util.UnknownErrorException(reason.message, reason.toString()); 16740} 16741 16742function resolveOrReject(capability, success, reason) { 16743 if (success) { 16744 capability.resolve(); 16745 } else { 16746 capability.reject(reason); 16747 } 16748} 16749 16750function finalize(promise) { 16751 return Promise.resolve(promise)["catch"](function () {}); 16752} 16753 16754function MessageHandler(sourceName, targetName, comObj) { 16755 var _this = this; 16756 16757 this.sourceName = sourceName; 16758 this.targetName = targetName; 16759 this.comObj = comObj; 16760 this.callbackId = 1; 16761 this.streamId = 1; 16762 this.postMessageTransfers = true; 16763 this.streamSinks = Object.create(null); 16764 this.streamControllers = Object.create(null); 16765 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); 16766 var ah = this.actionHandler = Object.create(null); 16767 16768 this._onComObjOnMessage = function (event) { 16769 var data = event.data; 16770 16771 if (data.targetName !== _this.sourceName) { 16772 return; 16773 } 16774 16775 if (data.stream) { 16776 _this._processStreamMessage(data); 16777 } else if (data.isReply) { 16778 var callbackId = data.callbackId; 16779 16780 if (data.callbackId in callbacksCapabilities) { 16781 var callback = callbacksCapabilities[callbackId]; 16782 delete callbacksCapabilities[callbackId]; 16783 16784 if ('error' in data) { 16785 callback.reject(wrapReason(data.error)); 16786 } else { 16787 callback.resolve(data.data); 16788 } 16789 } else { 16790 throw new Error("Cannot resolve callback ".concat(callbackId)); 16791 } 16792 } else if (data.action in ah) { 16793 var action = ah[data.action]; 16794 16795 if (data.callbackId) { 16796 var _sourceName = _this.sourceName; 16797 var _targetName = data.sourceName; 16798 Promise.resolve().then(function () { 16799 return action[0].call(action[1], data.data); 16800 }).then(function (result) { 16801 comObj.postMessage({ 16802 sourceName: _sourceName, 16803 targetName: _targetName, 16804 isReply: true, 16805 callbackId: data.callbackId, 16806 data: result 16807 }); 16808 }, function (reason) { 16809 comObj.postMessage({ 16810 sourceName: _sourceName, 16811 targetName: _targetName, 16812 isReply: true, 16813 callbackId: data.callbackId, 16814 error: makeReasonSerializable(reason) 16815 }); 16816 }); 16817 } else if (data.streamId) { 16818 _this._createStreamSink(data); 16819 } else { 16820 action[0].call(action[1], data.data); 16821 } 16822 } else { 16823 throw new Error("Unknown action from worker: ".concat(data.action)); 16824 } 16825 }; 16826 16827 comObj.addEventListener('message', this._onComObjOnMessage); 16828} 16829 16830MessageHandler.prototype = { 16831 on: function on(actionName, handler, scope) { 16832 var ah = this.actionHandler; 16833 16834 if (ah[actionName]) { 16835 throw new Error("There is already an actionName called \"".concat(actionName, "\"")); 16836 } 16837 16838 ah[actionName] = [handler, scope]; 16839 }, 16840 send: function send(actionName, data, transfers) { 16841 var message = { 16842 sourceName: this.sourceName, 16843 targetName: this.targetName, 16844 action: actionName, 16845 data: data 16846 }; 16847 this.postMessage(message, transfers); 16848 }, 16849 sendWithPromise: function sendWithPromise(actionName, data, transfers) { 16850 var callbackId = this.callbackId++; 16851 var message = { 16852 sourceName: this.sourceName, 16853 targetName: this.targetName, 16854 action: actionName, 16855 data: data, 16856 callbackId: callbackId 16857 }; 16858 var capability = (0, _util.createPromiseCapability)(); 16859 this.callbacksCapabilities[callbackId] = capability; 16860 16861 try { 16862 this.postMessage(message, transfers); 16863 } catch (e) { 16864 capability.reject(e); 16865 } 16866 16867 return capability.promise; 16868 }, 16869 sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { 16870 var _this2 = this; 16871 16872 var streamId = this.streamId++; 16873 var sourceName = this.sourceName; 16874 var targetName = this.targetName; 16875 return new _util.ReadableStream({ 16876 start: function start(controller) { 16877 var startCapability = (0, _util.createPromiseCapability)(); 16878 _this2.streamControllers[streamId] = { 16879 controller: controller, 16880 startCall: startCapability, 16881 isClosed: false 16882 }; 16883 16884 _this2.postMessage({ 16885 sourceName: sourceName, 16886 targetName: targetName, 16887 action: actionName, 16888 streamId: streamId, 16889 data: data, 16890 desiredSize: controller.desiredSize 16891 }); 16892 16893 return startCapability.promise; 16894 }, 16895 pull: function pull(controller) { 16896 var pullCapability = (0, _util.createPromiseCapability)(); 16897 _this2.streamControllers[streamId].pullCall = pullCapability; 16898 16899 _this2.postMessage({ 16900 sourceName: sourceName, 16901 targetName: targetName, 16902 stream: 'pull', 16903 streamId: streamId, 16904 desiredSize: controller.desiredSize 16905 }); 16906 16907 return pullCapability.promise; 16908 }, 16909 cancel: function cancel(reason) { 16910 var cancelCapability = (0, _util.createPromiseCapability)(); 16911 _this2.streamControllers[streamId].cancelCall = cancelCapability; 16912 _this2.streamControllers[streamId].isClosed = true; 16913 16914 _this2.postMessage({ 16915 sourceName: sourceName, 16916 targetName: targetName, 16917 stream: 'cancel', 16918 reason: reason, 16919 streamId: streamId 16920 }); 16921 16922 return cancelCapability.promise; 16923 } 16924 }, queueingStrategy); 16925 }, 16926 _createStreamSink: function _createStreamSink(data) { 16927 var _this3 = this; 16928 16929 var self = this; 16930 var action = this.actionHandler[data.action]; 16931 var streamId = data.streamId; 16932 var desiredSize = data.desiredSize; 16933 var sourceName = this.sourceName; 16934 var targetName = data.sourceName; 16935 var capability = (0, _util.createPromiseCapability)(); 16936 16937 var sendStreamRequest = function sendStreamRequest(_ref) { 16938 var stream = _ref.stream, 16939 chunk = _ref.chunk, 16940 transfers = _ref.transfers, 16941 success = _ref.success, 16942 reason = _ref.reason; 16943 16944 _this3.postMessage({ 16945 sourceName: sourceName, 16946 targetName: targetName, 16947 stream: stream, 16948 streamId: streamId, 16949 chunk: chunk, 16950 success: success, 16951 reason: reason 16952 }, transfers); 16953 }; 16954 16955 var streamSink = { 16956 enqueue: function enqueue(chunk) { 16957 var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; 16958 var transfers = arguments.length > 2 ? arguments[2] : undefined; 16959 16960 if (this.isCancelled) { 16961 return; 16962 } 16963 16964 var lastDesiredSize = this.desiredSize; 16965 this.desiredSize -= size; 16966 16967 if (lastDesiredSize > 0 && this.desiredSize <= 0) { 16968 this.sinkCapability = (0, _util.createPromiseCapability)(); 16969 this.ready = this.sinkCapability.promise; 16970 } 16971 16972 sendStreamRequest({ 16973 stream: 'enqueue', 16974 chunk: chunk, 16975 transfers: transfers 16976 }); 16977 }, 16978 close: function close() { 16979 if (this.isCancelled) { 16980 return; 16981 } 16982 16983 this.isCancelled = true; 16984 sendStreamRequest({ 16985 stream: 'close' 16986 }); 16987 delete self.streamSinks[streamId]; 16988 }, 16989 error: function error(reason) { 16990 if (this.isCancelled) { 16991 return; 16992 } 16993 16994 this.isCancelled = true; 16995 sendStreamRequest({ 16996 stream: 'error', 16997 reason: reason 16998 }); 16999 }, 17000 sinkCapability: capability, 17001 onPull: null, 17002 onCancel: null, 17003 isCancelled: false, 17004 desiredSize: desiredSize, 17005 ready: null 17006 }; 17007 streamSink.sinkCapability.resolve(); 17008 streamSink.ready = streamSink.sinkCapability.promise; 17009 this.streamSinks[streamId] = streamSink; 17010 resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { 17011 sendStreamRequest({ 17012 stream: 'start_complete', 17013 success: true 17014 }); 17015 }, function (reason) { 17016 sendStreamRequest({ 17017 stream: 'start_complete', 17018 success: false, 17019 reason: reason 17020 }); 17021 }); 17022 }, 17023 _processStreamMessage: function _processStreamMessage(data) { 17024 var _this4 = this; 17025 17026 var sourceName = this.sourceName; 17027 var targetName = data.sourceName; 17028 var streamId = data.streamId; 17029 17030 var sendStreamResponse = function sendStreamResponse(_ref2) { 17031 var stream = _ref2.stream, 17032 success = _ref2.success, 17033 reason = _ref2.reason; 17034 17035 _this4.comObj.postMessage({ 17036 sourceName: sourceName, 17037 targetName: targetName, 17038 stream: stream, 17039 success: success, 17040 streamId: streamId, 17041 reason: reason 17042 }); 17043 }; 17044 17045 var deleteStreamController = function deleteStreamController() { 17046 Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { 17047 return capability && finalize(capability.promise); 17048 })).then(function () { 17049 delete _this4.streamControllers[data.streamId]; 17050 }); 17051 }; 17052 17053 switch (data.stream) { 17054 case 'start_complete': 17055 resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); 17056 break; 17057 17058 case 'pull_complete': 17059 resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); 17060 break; 17061 17062 case 'pull': 17063 if (!this.streamSinks[data.streamId]) { 17064 sendStreamResponse({ 17065 stream: 'pull_complete', 17066 success: true 17067 }); 17068 break; 17069 } 17070 17071 if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { 17072 this.streamSinks[data.streamId].sinkCapability.resolve(); 17073 } 17074 17075 this.streamSinks[data.streamId].desiredSize = data.desiredSize; 17076 resolveCall(this.streamSinks[data.streamId].onPull).then(function () { 17077 sendStreamResponse({ 17078 stream: 'pull_complete', 17079 success: true 17080 }); 17081 }, function (reason) { 17082 sendStreamResponse({ 17083 stream: 'pull_complete', 17084 success: false, 17085 reason: reason 17086 }); 17087 }); 17088 break; 17089 17090 case 'enqueue': 17091 (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); 17092 17093 if (!this.streamControllers[data.streamId].isClosed) { 17094 this.streamControllers[data.streamId].controller.enqueue(data.chunk); 17095 } 17096 17097 break; 17098 17099 case 'close': 17100 (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); 17101 17102 if (this.streamControllers[data.streamId].isClosed) { 17103 break; 17104 } 17105 17106 this.streamControllers[data.streamId].isClosed = true; 17107 this.streamControllers[data.streamId].controller.close(); 17108 deleteStreamController(); 17109 break; 17110 17111 case 'error': 17112 (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); 17113 this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); 17114 deleteStreamController(); 17115 break; 17116 17117 case 'cancel_complete': 17118 resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); 17119 deleteStreamController(); 17120 break; 17121 17122 case 'cancel': 17123 if (!this.streamSinks[data.streamId]) { 17124 break; 17125 } 17126 17127 resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { 17128 sendStreamResponse({ 17129 stream: 'cancel_complete', 17130 success: true 17131 }); 17132 }, function (reason) { 17133 sendStreamResponse({ 17134 stream: 'cancel_complete', 17135 success: false, 17136 reason: reason 17137 }); 17138 }); 17139 this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); 17140 this.streamSinks[data.streamId].isCancelled = true; 17141 delete this.streamSinks[data.streamId]; 17142 break; 17143 17144 default: 17145 throw new Error('Unexpected stream case'); 17146 } 17147 }, 17148 postMessage: function postMessage(message, transfers) { 17149 if (transfers && this.postMessageTransfers) { 17150 this.comObj.postMessage(message, transfers); 17151 } else { 17152 this.comObj.postMessage(message); 17153 } 17154 }, 17155 destroy: function destroy() { 17156 this.comObj.removeEventListener('message', this._onComObjOnMessage); 17157 } 17158}; 17159 17160/***/ }), 17161/* 158 */ 17162/***/ (function(module, exports, __w_pdfjs_require__) { 17163 17164"use strict"; 17165 17166 17167Object.defineProperty(exports, "__esModule", { 17168 value: true 17169}); 17170exports.Metadata = void 0; 17171 17172var _util = __w_pdfjs_require__(1); 17173 17174var _xml_parser = __w_pdfjs_require__(159); 17175 17176function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17177 17178function _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); } } 17179 17180function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 17181 17182var Metadata = 17183/*#__PURE__*/ 17184function () { 17185 function Metadata(data) { 17186 _classCallCheck(this, Metadata); 17187 17188 (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); 17189 data = this._repair(data); 17190 var parser = new _xml_parser.SimpleXMLParser(); 17191 var xmlDocument = parser.parseFromString(data); 17192 this._metadata = Object.create(null); 17193 17194 if (xmlDocument) { 17195 this._parse(xmlDocument); 17196 } 17197 } 17198 17199 _createClass(Metadata, [{ 17200 key: "_repair", 17201 value: function _repair(data) { 17202 return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) { 17203 var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { 17204 return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); 17205 }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { 17206 switch (name) { 17207 case 'amp': 17208 return '&'; 17209 17210 case 'apos': 17211 return '\''; 17212 17213 case 'gt': 17214 return '>'; 17215 17216 case 'lt': 17217 return '<'; 17218 17219 case 'quot': 17220 return '\"'; 17221 } 17222 17223 throw new Error("_repair: ".concat(name, " isn't defined.")); 17224 }); 17225 var chars = ''; 17226 17227 for (var i = 0, ii = bytes.length; i < ii; i += 2) { 17228 var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); 17229 17230 if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { 17231 chars += String.fromCharCode(code); 17232 } else { 17233 chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; 17234 } 17235 } 17236 17237 return '>' + chars; 17238 }); 17239 } 17240 }, { 17241 key: "_parse", 17242 value: function _parse(xmlDocument) { 17243 var rdf = xmlDocument.documentElement; 17244 17245 if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 17246 rdf = rdf.firstChild; 17247 17248 while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 17249 rdf = rdf.nextSibling; 17250 } 17251 } 17252 17253 var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; 17254 17255 if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { 17256 return; 17257 } 17258 17259 var children = rdf.childNodes; 17260 17261 for (var i = 0, ii = children.length; i < ii; i++) { 17262 var desc = children[i]; 17263 17264 if (desc.nodeName.toLowerCase() !== 'rdf:description') { 17265 continue; 17266 } 17267 17268 for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { 17269 if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { 17270 var entry = desc.childNodes[j]; 17271 var name = entry.nodeName.toLowerCase(); 17272 this._metadata[name] = entry.textContent.trim(); 17273 } 17274 } 17275 } 17276 } 17277 }, { 17278 key: "get", 17279 value: function get(name) { 17280 var data = this._metadata[name]; 17281 return typeof data !== 'undefined' ? data : null; 17282 } 17283 }, { 17284 key: "getAll", 17285 value: function getAll() { 17286 return this._metadata; 17287 } 17288 }, { 17289 key: "has", 17290 value: function has(name) { 17291 return typeof this._metadata[name] !== 'undefined'; 17292 } 17293 }]); 17294 17295 return Metadata; 17296}(); 17297 17298exports.Metadata = Metadata; 17299 17300/***/ }), 17301/* 159 */ 17302/***/ (function(module, exports, __w_pdfjs_require__) { 17303 17304"use strict"; 17305 17306 17307Object.defineProperty(exports, "__esModule", { 17308 value: true 17309}); 17310exports.SimpleXMLParser = void 0; 17311 17312function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 17313 17314function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 17315 17316function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 17317 17318function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } 17319 17320function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 17321 17322function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 17323 17324function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 17325 17326function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } 17327 17328function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } 17329 17330function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 17331 17332function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 17333 17334function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 17335 17336function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17337 17338function _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); } } 17339 17340function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 17341 17342var XMLParserErrorCode = { 17343 NoError: 0, 17344 EndOfDocument: -1, 17345 UnterminatedCdat: -2, 17346 UnterminatedXmlDeclaration: -3, 17347 UnterminatedDoctypeDeclaration: -4, 17348 UnterminatedComment: -5, 17349 MalformedElement: -6, 17350 OutOfMemory: -7, 17351 UnterminatedAttributeValue: -8, 17352 UnterminatedElement: -9, 17353 ElementNeverBegun: -10 17354}; 17355 17356function isWhitespace(s, index) { 17357 var ch = s[index]; 17358 return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; 17359} 17360 17361function isWhitespaceString(s) { 17362 for (var i = 0, ii = s.length; i < ii; i++) { 17363 if (!isWhitespace(s, i)) { 17364 return false; 17365 } 17366 } 17367 17368 return true; 17369} 17370 17371var XMLParserBase = 17372/*#__PURE__*/ 17373function () { 17374 function XMLParserBase() { 17375 _classCallCheck(this, XMLParserBase); 17376 } 17377 17378 _createClass(XMLParserBase, [{ 17379 key: "_resolveEntities", 17380 value: function _resolveEntities(s) { 17381 var _this = this; 17382 17383 return s.replace(/&([^;]+);/g, function (all, entity) { 17384 if (entity.substring(0, 2) === '#x') { 17385 return String.fromCharCode(parseInt(entity.substring(2), 16)); 17386 } else if (entity.substring(0, 1) === '#') { 17387 return String.fromCharCode(parseInt(entity.substring(1), 10)); 17388 } 17389 17390 switch (entity) { 17391 case 'lt': 17392 return '<'; 17393 17394 case 'gt': 17395 return '>'; 17396 17397 case 'amp': 17398 return '&'; 17399 17400 case 'quot': 17401 return '\"'; 17402 } 17403 17404 return _this.onResolveEntity(entity); 17405 }); 17406 } 17407 }, { 17408 key: "_parseContent", 17409 value: function _parseContent(s, start) { 17410 var pos = start, 17411 name, 17412 attributes = []; 17413 17414 function skipWs() { 17415 while (pos < s.length && isWhitespace(s, pos)) { 17416 ++pos; 17417 } 17418 } 17419 17420 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 17421 ++pos; 17422 } 17423 17424 name = s.substring(start, pos); 17425 skipWs(); 17426 17427 while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { 17428 skipWs(); 17429 var attrName = '', 17430 attrValue = ''; 17431 17432 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { 17433 attrName += s[pos]; 17434 ++pos; 17435 } 17436 17437 skipWs(); 17438 17439 if (s[pos] !== '=') { 17440 return null; 17441 } 17442 17443 ++pos; 17444 skipWs(); 17445 var attrEndChar = s[pos]; 17446 17447 if (attrEndChar !== '\"' && attrEndChar !== '\'') { 17448 return null; 17449 } 17450 17451 var attrEndIndex = s.indexOf(attrEndChar, ++pos); 17452 17453 if (attrEndIndex < 0) { 17454 return null; 17455 } 17456 17457 attrValue = s.substring(pos, attrEndIndex); 17458 attributes.push({ 17459 name: attrName, 17460 value: this._resolveEntities(attrValue) 17461 }); 17462 pos = attrEndIndex + 1; 17463 skipWs(); 17464 } 17465 17466 return { 17467 name: name, 17468 attributes: attributes, 17469 parsed: pos - start 17470 }; 17471 } 17472 }, { 17473 key: "_parseProcessingInstruction", 17474 value: function _parseProcessingInstruction(s, start) { 17475 var pos = start, 17476 name, 17477 value; 17478 17479 function skipWs() { 17480 while (pos < s.length && isWhitespace(s, pos)) { 17481 ++pos; 17482 } 17483 } 17484 17485 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 17486 ++pos; 17487 } 17488 17489 name = s.substring(start, pos); 17490 skipWs(); 17491 var attrStart = pos; 17492 17493 while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { 17494 ++pos; 17495 } 17496 17497 value = s.substring(attrStart, pos); 17498 return { 17499 name: name, 17500 value: value, 17501 parsed: pos - start 17502 }; 17503 } 17504 }, { 17505 key: "parseXml", 17506 value: function parseXml(s) { 17507 var i = 0; 17508 17509 while (i < s.length) { 17510 var ch = s[i]; 17511 var j = i; 17512 17513 if (ch === '<') { 17514 ++j; 17515 var ch2 = s[j]; 17516 var q = void 0; 17517 17518 switch (ch2) { 17519 case '/': 17520 ++j; 17521 q = s.indexOf('>', j); 17522 17523 if (q < 0) { 17524 this.onError(XMLParserErrorCode.UnterminatedElement); 17525 return; 17526 } 17527 17528 this.onEndElement(s.substring(j, q)); 17529 j = q + 1; 17530 break; 17531 17532 case '?': 17533 ++j; 17534 17535 var pi = this._parseProcessingInstruction(s, j); 17536 17537 if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { 17538 this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); 17539 return; 17540 } 17541 17542 this.onPi(pi.name, pi.value); 17543 j += pi.parsed + 2; 17544 break; 17545 17546 case '!': 17547 if (s.substring(j + 1, j + 3) === '--') { 17548 q = s.indexOf('-->', j + 3); 17549 17550 if (q < 0) { 17551 this.onError(XMLParserErrorCode.UnterminatedComment); 17552 return; 17553 } 17554 17555 this.onComment(s.substring(j + 3, q)); 17556 j = q + 3; 17557 } else if (s.substring(j + 1, j + 8) === '[CDATA[') { 17558 q = s.indexOf(']]>', j + 8); 17559 17560 if (q < 0) { 17561 this.onError(XMLParserErrorCode.UnterminatedCdat); 17562 return; 17563 } 17564 17565 this.onCdata(s.substring(j + 8, q)); 17566 j = q + 3; 17567 } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { 17568 var q2 = s.indexOf('[', j + 8); 17569 var complexDoctype = false; 17570 q = s.indexOf('>', j + 8); 17571 17572 if (q < 0) { 17573 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 17574 return; 17575 } 17576 17577 if (q2 > 0 && q > q2) { 17578 q = s.indexOf(']>', j + 8); 17579 17580 if (q < 0) { 17581 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 17582 return; 17583 } 17584 17585 complexDoctype = true; 17586 } 17587 17588 var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); 17589 this.onDoctype(doctypeContent); 17590 j = q + (complexDoctype ? 2 : 1); 17591 } else { 17592 this.onError(XMLParserErrorCode.MalformedElement); 17593 return; 17594 } 17595 17596 break; 17597 17598 default: 17599 var content = this._parseContent(s, j); 17600 17601 if (content === null) { 17602 this.onError(XMLParserErrorCode.MalformedElement); 17603 return; 17604 } 17605 17606 var isClosed = false; 17607 17608 if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { 17609 isClosed = true; 17610 } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { 17611 this.onError(XMLParserErrorCode.UnterminatedElement); 17612 return; 17613 } 17614 17615 this.onBeginElement(content.name, content.attributes, isClosed); 17616 j += content.parsed + (isClosed ? 2 : 1); 17617 break; 17618 } 17619 } else { 17620 while (j < s.length && s[j] !== '<') { 17621 j++; 17622 } 17623 17624 var text = s.substring(i, j); 17625 this.onText(this._resolveEntities(text)); 17626 } 17627 17628 i = j; 17629 } 17630 } 17631 }, { 17632 key: "onResolveEntity", 17633 value: function onResolveEntity(name) { 17634 return "&".concat(name, ";"); 17635 } 17636 }, { 17637 key: "onPi", 17638 value: function onPi(name, value) {} 17639 }, { 17640 key: "onComment", 17641 value: function onComment(text) {} 17642 }, { 17643 key: "onCdata", 17644 value: function onCdata(text) {} 17645 }, { 17646 key: "onDoctype", 17647 value: function onDoctype(doctypeContent) {} 17648 }, { 17649 key: "onText", 17650 value: function onText(text) {} 17651 }, { 17652 key: "onBeginElement", 17653 value: function onBeginElement(name, attributes, isEmpty) {} 17654 }, { 17655 key: "onEndElement", 17656 value: function onEndElement(name) {} 17657 }, { 17658 key: "onError", 17659 value: function onError(code) {} 17660 }]); 17661 17662 return XMLParserBase; 17663}(); 17664 17665var SimpleDOMNode = 17666/*#__PURE__*/ 17667function () { 17668 function SimpleDOMNode(nodeName, nodeValue) { 17669 _classCallCheck(this, SimpleDOMNode); 17670 17671 this.nodeName = nodeName; 17672 this.nodeValue = nodeValue; 17673 Object.defineProperty(this, 'parentNode', { 17674 value: null, 17675 writable: true 17676 }); 17677 } 17678 17679 _createClass(SimpleDOMNode, [{ 17680 key: "hasChildNodes", 17681 value: function hasChildNodes() { 17682 return this.childNodes && this.childNodes.length > 0; 17683 } 17684 }, { 17685 key: "firstChild", 17686 get: function get() { 17687 return this.childNodes && this.childNodes[0]; 17688 } 17689 }, { 17690 key: "nextSibling", 17691 get: function get() { 17692 var childNodes = this.parentNode.childNodes; 17693 17694 if (!childNodes) { 17695 return undefined; 17696 } 17697 17698 var index = childNodes.indexOf(this); 17699 17700 if (index === -1) { 17701 return undefined; 17702 } 17703 17704 return childNodes[index + 1]; 17705 } 17706 }, { 17707 key: "textContent", 17708 get: function get() { 17709 if (!this.childNodes) { 17710 return this.nodeValue || ''; 17711 } 17712 17713 return this.childNodes.map(function (child) { 17714 return child.textContent; 17715 }).join(''); 17716 } 17717 }]); 17718 17719 return SimpleDOMNode; 17720}(); 17721 17722var SimpleXMLParser = 17723/*#__PURE__*/ 17724function (_XMLParserBase) { 17725 _inherits(SimpleXMLParser, _XMLParserBase); 17726 17727 function SimpleXMLParser() { 17728 var _this2; 17729 17730 _classCallCheck(this, SimpleXMLParser); 17731 17732 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this)); 17733 _this2._currentFragment = null; 17734 _this2._stack = null; 17735 _this2._errorCode = XMLParserErrorCode.NoError; 17736 return _this2; 17737 } 17738 17739 _createClass(SimpleXMLParser, [{ 17740 key: "parseFromString", 17741 value: function parseFromString(data) { 17742 this._currentFragment = []; 17743 this._stack = []; 17744 this._errorCode = XMLParserErrorCode.NoError; 17745 this.parseXml(data); 17746 17747 if (this._errorCode !== XMLParserErrorCode.NoError) { 17748 return undefined; 17749 } 17750 17751 var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1), 17752 documentElement = _this$_currentFragmen[0]; 17753 17754 if (!documentElement) { 17755 return undefined; 17756 } 17757 17758 return { 17759 documentElement: documentElement 17760 }; 17761 } 17762 }, { 17763 key: "onResolveEntity", 17764 value: function onResolveEntity(name) { 17765 switch (name) { 17766 case 'apos': 17767 return '\''; 17768 } 17769 17770 return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name); 17771 } 17772 }, { 17773 key: "onText", 17774 value: function onText(text) { 17775 if (isWhitespaceString(text)) { 17776 return; 17777 } 17778 17779 var node = new SimpleDOMNode('#text', text); 17780 17781 this._currentFragment.push(node); 17782 } 17783 }, { 17784 key: "onCdata", 17785 value: function onCdata(text) { 17786 var node = new SimpleDOMNode('#text', text); 17787 17788 this._currentFragment.push(node); 17789 } 17790 }, { 17791 key: "onBeginElement", 17792 value: function onBeginElement(name, attributes, isEmpty) { 17793 var node = new SimpleDOMNode(name); 17794 node.childNodes = []; 17795 17796 this._currentFragment.push(node); 17797 17798 if (isEmpty) { 17799 return; 17800 } 17801 17802 this._stack.push(this._currentFragment); 17803 17804 this._currentFragment = node.childNodes; 17805 } 17806 }, { 17807 key: "onEndElement", 17808 value: function onEndElement(name) { 17809 this._currentFragment = this._stack.pop() || []; 17810 var lastElement = this._currentFragment[this._currentFragment.length - 1]; 17811 17812 if (!lastElement) { 17813 return; 17814 } 17815 17816 for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { 17817 lastElement.childNodes[i].parentNode = lastElement; 17818 } 17819 } 17820 }, { 17821 key: "onError", 17822 value: function onError(code) { 17823 this._errorCode = code; 17824 } 17825 }]); 17826 17827 return SimpleXMLParser; 17828}(XMLParserBase); 17829 17830exports.SimpleXMLParser = SimpleXMLParser; 17831 17832/***/ }), 17833/* 160 */ 17834/***/ (function(module, exports, __w_pdfjs_require__) { 17835 17836"use strict"; 17837 17838 17839Object.defineProperty(exports, "__esModule", { 17840 value: true 17841}); 17842exports.PDFDataTransportStream = void 0; 17843 17844var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 17845 17846var _util = __w_pdfjs_require__(1); 17847 17848function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 17849 17850function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 17851 17852function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 17853 17854function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17855 17856function _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); } } 17857 17858function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 17859 17860var PDFDataTransportStream = 17861/*#__PURE__*/ 17862function () { 17863 function PDFDataTransportStream(params, pdfDataRangeTransport) { 17864 var _this = this; 17865 17866 _classCallCheck(this, PDFDataTransportStream); 17867 17868 (0, _util.assert)(pdfDataRangeTransport); 17869 this._queuedChunks = []; 17870 this._progressiveDone = params.progressiveDone || false; 17871 var initialData = params.initialData; 17872 17873 if (initialData && initialData.length > 0) { 17874 var buffer = new Uint8Array(initialData).buffer; 17875 17876 this._queuedChunks.push(buffer); 17877 } 17878 17879 this._pdfDataRangeTransport = pdfDataRangeTransport; 17880 this._isStreamingSupported = !params.disableStream; 17881 this._isRangeSupported = !params.disableRange; 17882 this._contentLength = params.length; 17883 this._fullRequestReader = null; 17884 this._rangeReaders = []; 17885 17886 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { 17887 _this._onReceiveData({ 17888 begin: begin, 17889 chunk: chunk 17890 }); 17891 }); 17892 17893 this._pdfDataRangeTransport.addProgressListener(function (loaded, total) { 17894 _this._onProgress({ 17895 loaded: loaded, 17896 total: total 17897 }); 17898 }); 17899 17900 this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { 17901 _this._onReceiveData({ 17902 chunk: chunk 17903 }); 17904 }); 17905 17906 this._pdfDataRangeTransport.addProgressiveDoneListener(function () { 17907 _this._onProgressiveDone(); 17908 }); 17909 17910 this._pdfDataRangeTransport.transportReady(); 17911 } 17912 17913 _createClass(PDFDataTransportStream, [{ 17914 key: "_onReceiveData", 17915 value: function _onReceiveData(args) { 17916 var buffer = new Uint8Array(args.chunk).buffer; 17917 17918 if (args.begin === undefined) { 17919 if (this._fullRequestReader) { 17920 this._fullRequestReader._enqueue(buffer); 17921 } else { 17922 this._queuedChunks.push(buffer); 17923 } 17924 } else { 17925 var found = this._rangeReaders.some(function (rangeReader) { 17926 if (rangeReader._begin !== args.begin) { 17927 return false; 17928 } 17929 17930 rangeReader._enqueue(buffer); 17931 17932 return true; 17933 }); 17934 17935 (0, _util.assert)(found); 17936 } 17937 } 17938 }, { 17939 key: "_onProgress", 17940 value: function _onProgress(evt) { 17941 if (evt.total === undefined) { 17942 var firstReader = this._rangeReaders[0]; 17943 17944 if (firstReader && firstReader.onProgress) { 17945 firstReader.onProgress({ 17946 loaded: evt.loaded 17947 }); 17948 } 17949 } else { 17950 var fullReader = this._fullRequestReader; 17951 17952 if (fullReader && fullReader.onProgress) { 17953 fullReader.onProgress({ 17954 loaded: evt.loaded, 17955 total: evt.total 17956 }); 17957 } 17958 } 17959 } 17960 }, { 17961 key: "_onProgressiveDone", 17962 value: function _onProgressiveDone() { 17963 if (this._fullRequestReader) { 17964 this._fullRequestReader.progressiveDone(); 17965 } 17966 17967 this._progressiveDone = true; 17968 } 17969 }, { 17970 key: "_removeRangeReader", 17971 value: function _removeRangeReader(reader) { 17972 var i = this._rangeReaders.indexOf(reader); 17973 17974 if (i >= 0) { 17975 this._rangeReaders.splice(i, 1); 17976 } 17977 } 17978 }, { 17979 key: "getFullReader", 17980 value: function getFullReader() { 17981 (0, _util.assert)(!this._fullRequestReader); 17982 var queuedChunks = this._queuedChunks; 17983 this._queuedChunks = null; 17984 return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone); 17985 } 17986 }, { 17987 key: "getRangeReader", 17988 value: function getRangeReader(begin, end) { 17989 if (end <= this._progressiveDataLength) { 17990 return null; 17991 } 17992 17993 var reader = new PDFDataTransportStreamRangeReader(this, begin, end); 17994 17995 this._pdfDataRangeTransport.requestDataRange(begin, end); 17996 17997 this._rangeReaders.push(reader); 17998 17999 return reader; 18000 } 18001 }, { 18002 key: "cancelAllRequests", 18003 value: function cancelAllRequests(reason) { 18004 if (this._fullRequestReader) { 18005 this._fullRequestReader.cancel(reason); 18006 } 18007 18008 var readers = this._rangeReaders.slice(0); 18009 18010 readers.forEach(function (rangeReader) { 18011 rangeReader.cancel(reason); 18012 }); 18013 18014 this._pdfDataRangeTransport.abort(); 18015 } 18016 }, { 18017 key: "_progressiveDataLength", 18018 get: function get() { 18019 return this._fullRequestReader ? this._fullRequestReader._loaded : 0; 18020 } 18021 }]); 18022 18023 return PDFDataTransportStream; 18024}(); 18025 18026exports.PDFDataTransportStream = PDFDataTransportStream; 18027 18028var PDFDataTransportStreamReader = 18029/*#__PURE__*/ 18030function () { 18031 function PDFDataTransportStreamReader(stream, queuedChunks) { 18032 var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 18033 18034 _classCallCheck(this, PDFDataTransportStreamReader); 18035 18036 this._stream = stream; 18037 this._done = progressiveDone || false; 18038 this._filename = null; 18039 this._queuedChunks = queuedChunks || []; 18040 this._loaded = 0; 18041 var _iteratorNormalCompletion = true; 18042 var _didIteratorError = false; 18043 var _iteratorError = undefined; 18044 18045 try { 18046 for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 18047 var chunk = _step.value; 18048 this._loaded += chunk.byteLength; 18049 } 18050 } catch (err) { 18051 _didIteratorError = true; 18052 _iteratorError = err; 18053 } finally { 18054 try { 18055 if (!_iteratorNormalCompletion && _iterator["return"] != null) { 18056 _iterator["return"](); 18057 } 18058 } finally { 18059 if (_didIteratorError) { 18060 throw _iteratorError; 18061 } 18062 } 18063 } 18064 18065 this._requests = []; 18066 this._headersReady = Promise.resolve(); 18067 stream._fullRequestReader = this; 18068 this.onProgress = null; 18069 } 18070 18071 _createClass(PDFDataTransportStreamReader, [{ 18072 key: "_enqueue", 18073 value: function _enqueue(chunk) { 18074 if (this._done) { 18075 return; 18076 } 18077 18078 if (this._requests.length > 0) { 18079 var requestCapability = this._requests.shift(); 18080 18081 requestCapability.resolve({ 18082 value: chunk, 18083 done: false 18084 }); 18085 } else { 18086 this._queuedChunks.push(chunk); 18087 } 18088 18089 this._loaded += chunk.byteLength; 18090 } 18091 }, { 18092 key: "read", 18093 value: function () { 18094 var _read = _asyncToGenerator( 18095 /*#__PURE__*/ 18096 _regenerator["default"].mark(function _callee() { 18097 var chunk, requestCapability; 18098 return _regenerator["default"].wrap(function _callee$(_context) { 18099 while (1) { 18100 switch (_context.prev = _context.next) { 18101 case 0: 18102 if (!(this._queuedChunks.length > 0)) { 18103 _context.next = 3; 18104 break; 18105 } 18106 18107 chunk = this._queuedChunks.shift(); 18108 return _context.abrupt("return", { 18109 value: chunk, 18110 done: false 18111 }); 18112 18113 case 3: 18114 if (!this._done) { 18115 _context.next = 5; 18116 break; 18117 } 18118 18119 return _context.abrupt("return", { 18120 value: undefined, 18121 done: true 18122 }); 18123 18124 case 5: 18125 requestCapability = (0, _util.createPromiseCapability)(); 18126 18127 this._requests.push(requestCapability); 18128 18129 return _context.abrupt("return", requestCapability.promise); 18130 18131 case 8: 18132 case "end": 18133 return _context.stop(); 18134 } 18135 } 18136 }, _callee, this); 18137 })); 18138 18139 function read() { 18140 return _read.apply(this, arguments); 18141 } 18142 18143 return read; 18144 }() 18145 }, { 18146 key: "cancel", 18147 value: function cancel(reason) { 18148 this._done = true; 18149 18150 this._requests.forEach(function (requestCapability) { 18151 requestCapability.resolve({ 18152 value: undefined, 18153 done: true 18154 }); 18155 }); 18156 18157 this._requests = []; 18158 } 18159 }, { 18160 key: "progressiveDone", 18161 value: function progressiveDone() { 18162 if (this._done) { 18163 return; 18164 } 18165 18166 this._done = true; 18167 } 18168 }, { 18169 key: "headersReady", 18170 get: function get() { 18171 return this._headersReady; 18172 } 18173 }, { 18174 key: "filename", 18175 get: function get() { 18176 return this._filename; 18177 } 18178 }, { 18179 key: "isRangeSupported", 18180 get: function get() { 18181 return this._stream._isRangeSupported; 18182 } 18183 }, { 18184 key: "isStreamingSupported", 18185 get: function get() { 18186 return this._stream._isStreamingSupported; 18187 } 18188 }, { 18189 key: "contentLength", 18190 get: function get() { 18191 return this._stream._contentLength; 18192 } 18193 }]); 18194 18195 return PDFDataTransportStreamReader; 18196}(); 18197 18198var PDFDataTransportStreamRangeReader = 18199/*#__PURE__*/ 18200function () { 18201 function PDFDataTransportStreamRangeReader(stream, begin, end) { 18202 _classCallCheck(this, PDFDataTransportStreamRangeReader); 18203 18204 this._stream = stream; 18205 this._begin = begin; 18206 this._end = end; 18207 this._queuedChunk = null; 18208 this._requests = []; 18209 this._done = false; 18210 this.onProgress = null; 18211 } 18212 18213 _createClass(PDFDataTransportStreamRangeReader, [{ 18214 key: "_enqueue", 18215 value: function _enqueue(chunk) { 18216 if (this._done) { 18217 return; 18218 } 18219 18220 if (this._requests.length === 0) { 18221 this._queuedChunk = chunk; 18222 } else { 18223 var requestsCapability = this._requests.shift(); 18224 18225 requestsCapability.resolve({ 18226 value: chunk, 18227 done: false 18228 }); 18229 18230 this._requests.forEach(function (requestCapability) { 18231 requestCapability.resolve({ 18232 value: undefined, 18233 done: true 18234 }); 18235 }); 18236 18237 this._requests = []; 18238 } 18239 18240 this._done = true; 18241 18242 this._stream._removeRangeReader(this); 18243 } 18244 }, { 18245 key: "read", 18246 value: function () { 18247 var _read2 = _asyncToGenerator( 18248 /*#__PURE__*/ 18249 _regenerator["default"].mark(function _callee2() { 18250 var chunk, requestCapability; 18251 return _regenerator["default"].wrap(function _callee2$(_context2) { 18252 while (1) { 18253 switch (_context2.prev = _context2.next) { 18254 case 0: 18255 if (!this._queuedChunk) { 18256 _context2.next = 4; 18257 break; 18258 } 18259 18260 chunk = this._queuedChunk; 18261 this._queuedChunk = null; 18262 return _context2.abrupt("return", { 18263 value: chunk, 18264 done: false 18265 }); 18266 18267 case 4: 18268 if (!this._done) { 18269 _context2.next = 6; 18270 break; 18271 } 18272 18273 return _context2.abrupt("return", { 18274 value: undefined, 18275 done: true 18276 }); 18277 18278 case 6: 18279 requestCapability = (0, _util.createPromiseCapability)(); 18280 18281 this._requests.push(requestCapability); 18282 18283 return _context2.abrupt("return", requestCapability.promise); 18284 18285 case 9: 18286 case "end": 18287 return _context2.stop(); 18288 } 18289 } 18290 }, _callee2, this); 18291 })); 18292 18293 function read() { 18294 return _read2.apply(this, arguments); 18295 } 18296 18297 return read; 18298 }() 18299 }, { 18300 key: "cancel", 18301 value: function cancel(reason) { 18302 this._done = true; 18303 18304 this._requests.forEach(function (requestCapability) { 18305 requestCapability.resolve({ 18306 value: undefined, 18307 done: true 18308 }); 18309 }); 18310 18311 this._requests = []; 18312 18313 this._stream._removeRangeReader(this); 18314 } 18315 }, { 18316 key: "isStreamingSupported", 18317 get: function get() { 18318 return false; 18319 } 18320 }]); 18321 18322 return PDFDataTransportStreamRangeReader; 18323}(); 18324 18325/***/ }), 18326/* 161 */ 18327/***/ (function(module, exports, __w_pdfjs_require__) { 18328 18329"use strict"; 18330 18331 18332Object.defineProperty(exports, "__esModule", { 18333 value: true 18334}); 18335exports.WebGLContext = void 0; 18336 18337var _util = __w_pdfjs_require__(1); 18338 18339function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 18340 18341function _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); } } 18342 18343function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 18344 18345var WebGLContext = 18346/*#__PURE__*/ 18347function () { 18348 function WebGLContext(_ref) { 18349 var _ref$enable = _ref.enable, 18350 enable = _ref$enable === void 0 ? false : _ref$enable; 18351 18352 _classCallCheck(this, WebGLContext); 18353 18354 this._enabled = enable === true; 18355 } 18356 18357 _createClass(WebGLContext, [{ 18358 key: "composeSMask", 18359 value: function composeSMask(_ref2) { 18360 var layer = _ref2.layer, 18361 mask = _ref2.mask, 18362 properties = _ref2.properties; 18363 return WebGLUtils.composeSMask(layer, mask, properties); 18364 } 18365 }, { 18366 key: "drawFigures", 18367 value: function drawFigures(_ref3) { 18368 var width = _ref3.width, 18369 height = _ref3.height, 18370 backgroundColor = _ref3.backgroundColor, 18371 figures = _ref3.figures, 18372 context = _ref3.context; 18373 return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); 18374 } 18375 }, { 18376 key: "clear", 18377 value: function clear() { 18378 WebGLUtils.cleanup(); 18379 } 18380 }, { 18381 key: "isEnabled", 18382 get: function get() { 18383 var enabled = this._enabled; 18384 18385 if (enabled) { 18386 enabled = WebGLUtils.tryInitGL(); 18387 } 18388 18389 return (0, _util.shadow)(this, 'isEnabled', enabled); 18390 } 18391 }]); 18392 18393 return WebGLContext; 18394}(); 18395 18396exports.WebGLContext = WebGLContext; 18397 18398var WebGLUtils = function WebGLUtilsClosure() { 18399 function loadShader(gl, code, shaderType) { 18400 var shader = gl.createShader(shaderType); 18401 gl.shaderSource(shader, code); 18402 gl.compileShader(shader); 18403 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); 18404 18405 if (!compiled) { 18406 var errorMsg = gl.getShaderInfoLog(shader); 18407 throw new Error('Error during shader compilation: ' + errorMsg); 18408 } 18409 18410 return shader; 18411 } 18412 18413 function createVertexShader(gl, code) { 18414 return loadShader(gl, code, gl.VERTEX_SHADER); 18415 } 18416 18417 function createFragmentShader(gl, code) { 18418 return loadShader(gl, code, gl.FRAGMENT_SHADER); 18419 } 18420 18421 function createProgram(gl, shaders) { 18422 var program = gl.createProgram(); 18423 18424 for (var i = 0, ii = shaders.length; i < ii; ++i) { 18425 gl.attachShader(program, shaders[i]); 18426 } 18427 18428 gl.linkProgram(program); 18429 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); 18430 18431 if (!linked) { 18432 var errorMsg = gl.getProgramInfoLog(program); 18433 throw new Error('Error during program linking: ' + errorMsg); 18434 } 18435 18436 return program; 18437 } 18438 18439 function createTexture(gl, image, textureId) { 18440 gl.activeTexture(textureId); 18441 var texture = gl.createTexture(); 18442 gl.bindTexture(gl.TEXTURE_2D, texture); 18443 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); 18444 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); 18445 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); 18446 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); 18447 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); 18448 return texture; 18449 } 18450 18451 var currentGL, currentCanvas; 18452 18453 function generateGL() { 18454 if (currentGL) { 18455 return; 18456 } 18457 18458 currentCanvas = document.createElement('canvas'); 18459 currentGL = currentCanvas.getContext('webgl', { 18460 premultipliedalpha: false 18461 }); 18462 } 18463 18464 var smaskVertexShaderCode = '\ 18465 attribute vec2 a_position; \ 18466 attribute vec2 a_texCoord; \ 18467 \ 18468 uniform vec2 u_resolution; \ 18469 \ 18470 varying vec2 v_texCoord; \ 18471 \ 18472 void main() { \ 18473 vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ 18474 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 18475 \ 18476 v_texCoord = a_texCoord; \ 18477 } '; 18478 var smaskFragmentShaderCode = '\ 18479 precision mediump float; \ 18480 \ 18481 uniform vec4 u_backdrop; \ 18482 uniform int u_subtype; \ 18483 uniform sampler2D u_image; \ 18484 uniform sampler2D u_mask; \ 18485 \ 18486 varying vec2 v_texCoord; \ 18487 \ 18488 void main() { \ 18489 vec4 imageColor = texture2D(u_image, v_texCoord); \ 18490 vec4 maskColor = texture2D(u_mask, v_texCoord); \ 18491 if (u_backdrop.a > 0.0) { \ 18492 maskColor.rgb = maskColor.rgb * maskColor.a + \ 18493 u_backdrop.rgb * (1.0 - maskColor.a); \ 18494 } \ 18495 float lum; \ 18496 if (u_subtype == 0) { \ 18497 lum = maskColor.a; \ 18498 } else { \ 18499 lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ 18500 maskColor.b * 0.11; \ 18501 } \ 18502 imageColor.a *= lum; \ 18503 imageColor.rgb *= imageColor.a; \ 18504 gl_FragColor = imageColor; \ 18505 } '; 18506 var smaskCache = null; 18507 18508 function initSmaskGL() { 18509 var canvas, gl; 18510 generateGL(); 18511 canvas = currentCanvas; 18512 currentCanvas = null; 18513 gl = currentGL; 18514 currentGL = null; 18515 var vertexShader = createVertexShader(gl, smaskVertexShaderCode); 18516 var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); 18517 var program = createProgram(gl, [vertexShader, fragmentShader]); 18518 gl.useProgram(program); 18519 var cache = {}; 18520 cache.gl = gl; 18521 cache.canvas = canvas; 18522 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 18523 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 18524 cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); 18525 cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); 18526 var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); 18527 var texLayerLocation = gl.getUniformLocation(program, 'u_image'); 18528 var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); 18529 var texCoordBuffer = gl.createBuffer(); 18530 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); 18531 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); 18532 gl.enableVertexAttribArray(texCoordLocation); 18533 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); 18534 gl.uniform1i(texLayerLocation, 0); 18535 gl.uniform1i(texMaskLocation, 1); 18536 smaskCache = cache; 18537 } 18538 18539 function composeSMask(layer, mask, properties) { 18540 var width = layer.width, 18541 height = layer.height; 18542 18543 if (!smaskCache) { 18544 initSmaskGL(); 18545 } 18546 18547 var cache = smaskCache, 18548 canvas = cache.canvas, 18549 gl = cache.gl; 18550 canvas.width = width; 18551 canvas.height = height; 18552 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 18553 gl.uniform2f(cache.resolutionLocation, width, height); 18554 18555 if (properties.backdrop) { 18556 gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); 18557 } else { 18558 gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); 18559 } 18560 18561 gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); 18562 var texture = createTexture(gl, layer, gl.TEXTURE0); 18563 var maskTexture = createTexture(gl, mask, gl.TEXTURE1); 18564 var buffer = gl.createBuffer(); 18565 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 18566 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); 18567 gl.enableVertexAttribArray(cache.positionLocation); 18568 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 18569 gl.clearColor(0, 0, 0, 0); 18570 gl.enable(gl.BLEND); 18571 gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); 18572 gl.clear(gl.COLOR_BUFFER_BIT); 18573 gl.drawArrays(gl.TRIANGLES, 0, 6); 18574 gl.flush(); 18575 gl.deleteTexture(texture); 18576 gl.deleteTexture(maskTexture); 18577 gl.deleteBuffer(buffer); 18578 return canvas; 18579 } 18580 18581 var figuresVertexShaderCode = '\ 18582 attribute vec2 a_position; \ 18583 attribute vec3 a_color; \ 18584 \ 18585 uniform vec2 u_resolution; \ 18586 uniform vec2 u_scale; \ 18587 uniform vec2 u_offset; \ 18588 \ 18589 varying vec4 v_color; \ 18590 \ 18591 void main() { \ 18592 vec2 position = (a_position + u_offset) * u_scale; \ 18593 vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ 18594 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 18595 \ 18596 v_color = vec4(a_color / 255.0, 1.0); \ 18597 } '; 18598 var figuresFragmentShaderCode = '\ 18599 precision mediump float; \ 18600 \ 18601 varying vec4 v_color; \ 18602 \ 18603 void main() { \ 18604 gl_FragColor = v_color; \ 18605 } '; 18606 var figuresCache = null; 18607 18608 function initFiguresGL() { 18609 var canvas, gl; 18610 generateGL(); 18611 canvas = currentCanvas; 18612 currentCanvas = null; 18613 gl = currentGL; 18614 currentGL = null; 18615 var vertexShader = createVertexShader(gl, figuresVertexShaderCode); 18616 var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); 18617 var program = createProgram(gl, [vertexShader, fragmentShader]); 18618 gl.useProgram(program); 18619 var cache = {}; 18620 cache.gl = gl; 18621 cache.canvas = canvas; 18622 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 18623 cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); 18624 cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); 18625 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 18626 cache.colorLocation = gl.getAttribLocation(program, 'a_color'); 18627 figuresCache = cache; 18628 } 18629 18630 function drawFigures(width, height, backgroundColor, figures, context) { 18631 if (!figuresCache) { 18632 initFiguresGL(); 18633 } 18634 18635 var cache = figuresCache, 18636 canvas = cache.canvas, 18637 gl = cache.gl; 18638 canvas.width = width; 18639 canvas.height = height; 18640 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 18641 gl.uniform2f(cache.resolutionLocation, width, height); 18642 var count = 0; 18643 var i, ii, rows; 18644 18645 for (i = 0, ii = figures.length; i < ii; i++) { 18646 switch (figures[i].type) { 18647 case 'lattice': 18648 rows = figures[i].coords.length / figures[i].verticesPerRow | 0; 18649 count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; 18650 break; 18651 18652 case 'triangles': 18653 count += figures[i].coords.length; 18654 break; 18655 } 18656 } 18657 18658 var coords = new Float32Array(count * 2); 18659 var colors = new Uint8Array(count * 3); 18660 var coordsMap = context.coords, 18661 colorsMap = context.colors; 18662 var pIndex = 0, 18663 cIndex = 0; 18664 18665 for (i = 0, ii = figures.length; i < ii; i++) { 18666 var figure = figures[i], 18667 ps = figure.coords, 18668 cs = figure.colors; 18669 18670 switch (figure.type) { 18671 case 'lattice': 18672 var cols = figure.verticesPerRow; 18673 rows = ps.length / cols | 0; 18674 18675 for (var row = 1; row < rows; row++) { 18676 var offset = row * cols + 1; 18677 18678 for (var col = 1; col < cols; col++, offset++) { 18679 coords[pIndex] = coordsMap[ps[offset - cols - 1]]; 18680 coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; 18681 coords[pIndex + 2] = coordsMap[ps[offset - cols]]; 18682 coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; 18683 coords[pIndex + 4] = coordsMap[ps[offset - 1]]; 18684 coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; 18685 colors[cIndex] = colorsMap[cs[offset - cols - 1]]; 18686 colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; 18687 colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; 18688 colors[cIndex + 3] = colorsMap[cs[offset - cols]]; 18689 colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; 18690 colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; 18691 colors[cIndex + 6] = colorsMap[cs[offset - 1]]; 18692 colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; 18693 colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; 18694 coords[pIndex + 6] = coords[pIndex + 2]; 18695 coords[pIndex + 7] = coords[pIndex + 3]; 18696 coords[pIndex + 8] = coords[pIndex + 4]; 18697 coords[pIndex + 9] = coords[pIndex + 5]; 18698 coords[pIndex + 10] = coordsMap[ps[offset]]; 18699 coords[pIndex + 11] = coordsMap[ps[offset] + 1]; 18700 colors[cIndex + 9] = colors[cIndex + 3]; 18701 colors[cIndex + 10] = colors[cIndex + 4]; 18702 colors[cIndex + 11] = colors[cIndex + 5]; 18703 colors[cIndex + 12] = colors[cIndex + 6]; 18704 colors[cIndex + 13] = colors[cIndex + 7]; 18705 colors[cIndex + 14] = colors[cIndex + 8]; 18706 colors[cIndex + 15] = colorsMap[cs[offset]]; 18707 colors[cIndex + 16] = colorsMap[cs[offset] + 1]; 18708 colors[cIndex + 17] = colorsMap[cs[offset] + 2]; 18709 pIndex += 12; 18710 cIndex += 18; 18711 } 18712 } 18713 18714 break; 18715 18716 case 'triangles': 18717 for (var j = 0, jj = ps.length; j < jj; j++) { 18718 coords[pIndex] = coordsMap[ps[j]]; 18719 coords[pIndex + 1] = coordsMap[ps[j] + 1]; 18720 colors[cIndex] = colorsMap[cs[j]]; 18721 colors[cIndex + 1] = colorsMap[cs[j] + 1]; 18722 colors[cIndex + 2] = colorsMap[cs[j] + 2]; 18723 pIndex += 2; 18724 cIndex += 3; 18725 } 18726 18727 break; 18728 } 18729 } 18730 18731 if (backgroundColor) { 18732 gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); 18733 } else { 18734 gl.clearColor(0, 0, 0, 0); 18735 } 18736 18737 gl.clear(gl.COLOR_BUFFER_BIT); 18738 var coordsBuffer = gl.createBuffer(); 18739 gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); 18740 gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); 18741 gl.enableVertexAttribArray(cache.positionLocation); 18742 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 18743 var colorsBuffer = gl.createBuffer(); 18744 gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); 18745 gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); 18746 gl.enableVertexAttribArray(cache.colorLocation); 18747 gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); 18748 gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); 18749 gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); 18750 gl.drawArrays(gl.TRIANGLES, 0, count); 18751 gl.flush(); 18752 gl.deleteBuffer(coordsBuffer); 18753 gl.deleteBuffer(colorsBuffer); 18754 return canvas; 18755 } 18756 18757 return { 18758 tryInitGL: function tryInitGL() { 18759 try { 18760 generateGL(); 18761 return !!currentGL; 18762 } catch (ex) {} 18763 18764 return false; 18765 }, 18766 composeSMask: composeSMask, 18767 drawFigures: drawFigures, 18768 cleanup: function cleanup() { 18769 if (smaskCache && smaskCache.canvas) { 18770 smaskCache.canvas.width = 0; 18771 smaskCache.canvas.height = 0; 18772 } 18773 18774 if (figuresCache && figuresCache.canvas) { 18775 figuresCache.canvas.width = 0; 18776 figuresCache.canvas.height = 0; 18777 } 18778 18779 smaskCache = null; 18780 figuresCache = null; 18781 } 18782 }; 18783}(); 18784 18785/***/ }), 18786/* 162 */ 18787/***/ (function(module, exports, __w_pdfjs_require__) { 18788 18789"use strict"; 18790 18791 18792Object.defineProperty(exports, "__esModule", { 18793 value: true 18794}); 18795exports.renderTextLayer = void 0; 18796 18797var _util = __w_pdfjs_require__(1); 18798 18799var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); 18800 18801function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 18802 18803var renderTextLayer = function renderTextLayerClosure() { 18804 var MAX_TEXT_DIVS_TO_RENDER = 100000; 18805 var NonWhitespaceRegexp = /\S/; 18806 18807 function isAllWhitespace(str) { 18808 return !NonWhitespaceRegexp.test(str); 18809 } 18810 18811 var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; 18812 18813 function appendText(task, geom, styles) { 18814 var textDiv = document.createElement('span'); 18815 var textDivProperties = { 18816 style: null, 18817 angle: 0, 18818 canvasWidth: 0, 18819 isWhitespace: false, 18820 originalTransform: null, 18821 paddingBottom: 0, 18822 paddingLeft: 0, 18823 paddingRight: 0, 18824 paddingTop: 0, 18825 scale: 1 18826 }; 18827 18828 task._textDivs.push(textDiv); 18829 18830 if (isAllWhitespace(geom.str)) { 18831 textDivProperties.isWhitespace = true; 18832 18833 task._textDivProperties.set(textDiv, textDivProperties); 18834 18835 return; 18836 } 18837 18838 var tx = _util.Util.transform(task._viewport.transform, geom.transform); 18839 18840 var angle = Math.atan2(tx[1], tx[0]); 18841 var style = styles[geom.fontName]; 18842 18843 if (style.vertical) { 18844 angle += Math.PI / 2; 18845 } 18846 18847 var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); 18848 var fontAscent = fontHeight; 18849 18850 if (style.ascent) { 18851 fontAscent = style.ascent * fontAscent; 18852 } else if (style.descent) { 18853 fontAscent = (1 + style.descent) * fontAscent; 18854 } 18855 18856 var left; 18857 var top; 18858 18859 if (angle === 0) { 18860 left = tx[4]; 18861 top = tx[5] - fontAscent; 18862 } else { 18863 left = tx[4] + fontAscent * Math.sin(angle); 18864 top = tx[5] - fontAscent * Math.cos(angle); 18865 } 18866 18867 styleBuf[1] = left; 18868 styleBuf[3] = top; 18869 styleBuf[5] = fontHeight; 18870 styleBuf[7] = style.fontFamily; 18871 textDivProperties.style = styleBuf.join(''); 18872 textDiv.setAttribute('style', textDivProperties.style); 18873 textDiv.textContent = geom.str; 18874 18875 if (task._fontInspectorEnabled) { 18876 textDiv.dataset.fontName = geom.fontName; 18877 } 18878 18879 if (angle !== 0) { 18880 textDivProperties.angle = angle * (180 / Math.PI); 18881 } 18882 18883 if (geom.str.length > 1) { 18884 if (style.vertical) { 18885 textDivProperties.canvasWidth = geom.height * task._viewport.scale; 18886 } else { 18887 textDivProperties.canvasWidth = geom.width * task._viewport.scale; 18888 } 18889 } 18890 18891 task._textDivProperties.set(textDiv, textDivProperties); 18892 18893 if (task._textContentStream) { 18894 task._layoutText(textDiv); 18895 } 18896 18897 if (task._enhanceTextSelection) { 18898 var angleCos = 1, 18899 angleSin = 0; 18900 18901 if (angle !== 0) { 18902 angleCos = Math.cos(angle); 18903 angleSin = Math.sin(angle); 18904 } 18905 18906 var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; 18907 var divHeight = fontHeight; 18908 var m, b; 18909 18910 if (angle !== 0) { 18911 m = [angleCos, angleSin, -angleSin, angleCos, left, top]; 18912 b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); 18913 } else { 18914 b = [left, top, left + divWidth, top + divHeight]; 18915 } 18916 18917 task._bounds.push({ 18918 left: b[0], 18919 top: b[1], 18920 right: b[2], 18921 bottom: b[3], 18922 div: textDiv, 18923 size: [divWidth, divHeight], 18924 m: m 18925 }); 18926 } 18927 } 18928 18929 function render(task) { 18930 if (task._canceled) { 18931 return; 18932 } 18933 18934 var textDivs = task._textDivs; 18935 var capability = task._capability; 18936 var textDivsLength = textDivs.length; 18937 18938 if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { 18939 task._renderingDone = true; 18940 capability.resolve(); 18941 return; 18942 } 18943 18944 if (!task._textContentStream) { 18945 for (var i = 0; i < textDivsLength; i++) { 18946 task._layoutText(textDivs[i]); 18947 } 18948 } 18949 18950 task._renderingDone = true; 18951 capability.resolve(); 18952 } 18953 18954 function expand(task) { 18955 var bounds = task._bounds; 18956 var viewport = task._viewport; 18957 var expanded = expandBounds(viewport.width, viewport.height, bounds); 18958 18959 for (var i = 0; i < expanded.length; i++) { 18960 var div = bounds[i].div; 18961 18962 var divProperties = task._textDivProperties.get(div); 18963 18964 if (divProperties.angle === 0) { 18965 divProperties.paddingLeft = bounds[i].left - expanded[i].left; 18966 divProperties.paddingTop = bounds[i].top - expanded[i].top; 18967 divProperties.paddingRight = expanded[i].right - bounds[i].right; 18968 divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; 18969 18970 task._textDivProperties.set(div, divProperties); 18971 18972 continue; 18973 } 18974 18975 var e = expanded[i], 18976 b = bounds[i]; 18977 var m = b.m, 18978 c = m[0], 18979 s = m[1]; 18980 var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; 18981 var ts = new Float64Array(64); 18982 points.forEach(function (p, i) { 18983 var t = _util.Util.applyTransform(p, m); 18984 18985 ts[i + 0] = c && (e.left - t[0]) / c; 18986 ts[i + 4] = s && (e.top - t[1]) / s; 18987 ts[i + 8] = c && (e.right - t[0]) / c; 18988 ts[i + 12] = s && (e.bottom - t[1]) / s; 18989 ts[i + 16] = s && (e.left - t[0]) / -s; 18990 ts[i + 20] = c && (e.top - t[1]) / c; 18991 ts[i + 24] = s && (e.right - t[0]) / -s; 18992 ts[i + 28] = c && (e.bottom - t[1]) / c; 18993 ts[i + 32] = c && (e.left - t[0]) / -c; 18994 ts[i + 36] = s && (e.top - t[1]) / -s; 18995 ts[i + 40] = c && (e.right - t[0]) / -c; 18996 ts[i + 44] = s && (e.bottom - t[1]) / -s; 18997 ts[i + 48] = s && (e.left - t[0]) / s; 18998 ts[i + 52] = c && (e.top - t[1]) / -c; 18999 ts[i + 56] = s && (e.right - t[0]) / s; 19000 ts[i + 60] = c && (e.bottom - t[1]) / -c; 19001 }); 19002 19003 var findPositiveMin = function findPositiveMin(ts, offset, count) { 19004 var result = 0; 19005 19006 for (var i = 0; i < count; i++) { 19007 var t = ts[offset++]; 19008 19009 if (t > 0) { 19010 result = result ? Math.min(t, result) : t; 19011 } 19012 } 19013 19014 return result; 19015 }; 19016 19017 var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); 19018 divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; 19019 divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; 19020 divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; 19021 divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; 19022 19023 task._textDivProperties.set(div, divProperties); 19024 } 19025 } 19026 19027 function expandBounds(width, height, boxes) { 19028 var bounds = boxes.map(function (box, i) { 19029 return { 19030 x1: box.left, 19031 y1: box.top, 19032 x2: box.right, 19033 y2: box.bottom, 19034 index: i, 19035 x1New: undefined, 19036 x2New: undefined 19037 }; 19038 }); 19039 expandBoundsLTR(width, bounds); 19040 var expanded = new Array(boxes.length); 19041 bounds.forEach(function (b) { 19042 var i = b.index; 19043 expanded[i] = { 19044 left: b.x1New, 19045 top: 0, 19046 right: b.x2New, 19047 bottom: 0 19048 }; 19049 }); 19050 boxes.map(function (box, i) { 19051 var e = expanded[i], 19052 b = bounds[i]; 19053 b.x1 = box.top; 19054 b.y1 = width - e.right; 19055 b.x2 = box.bottom; 19056 b.y2 = width - e.left; 19057 b.index = i; 19058 b.x1New = undefined; 19059 b.x2New = undefined; 19060 }); 19061 expandBoundsLTR(height, bounds); 19062 bounds.forEach(function (b) { 19063 var i = b.index; 19064 expanded[i].top = b.x1New; 19065 expanded[i].bottom = b.x2New; 19066 }); 19067 return expanded; 19068 } 19069 19070 function expandBoundsLTR(width, bounds) { 19071 bounds.sort(function (a, b) { 19072 return a.x1 - b.x1 || a.index - b.index; 19073 }); 19074 var fakeBoundary = { 19075 x1: -Infinity, 19076 y1: -Infinity, 19077 x2: 0, 19078 y2: Infinity, 19079 index: -1, 19080 x1New: 0, 19081 x2New: 0 19082 }; 19083 var horizon = [{ 19084 start: -Infinity, 19085 end: Infinity, 19086 boundary: fakeBoundary 19087 }]; 19088 bounds.forEach(function (boundary) { 19089 var i = 0; 19090 19091 while (i < horizon.length && horizon[i].end <= boundary.y1) { 19092 i++; 19093 } 19094 19095 var j = horizon.length - 1; 19096 19097 while (j >= 0 && horizon[j].start >= boundary.y2) { 19098 j--; 19099 } 19100 19101 var horizonPart, affectedBoundary; 19102 var q, 19103 k, 19104 maxXNew = -Infinity; 19105 19106 for (q = i; q <= j; q++) { 19107 horizonPart = horizon[q]; 19108 affectedBoundary = horizonPart.boundary; 19109 var xNew; 19110 19111 if (affectedBoundary.x2 > boundary.x1) { 19112 xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; 19113 } else if (affectedBoundary.x2New === undefined) { 19114 xNew = (affectedBoundary.x2 + boundary.x1) / 2; 19115 } else { 19116 xNew = affectedBoundary.x2New; 19117 } 19118 19119 if (xNew > maxXNew) { 19120 maxXNew = xNew; 19121 } 19122 } 19123 19124 boundary.x1New = maxXNew; 19125 19126 for (q = i; q <= j; q++) { 19127 horizonPart = horizon[q]; 19128 affectedBoundary = horizonPart.boundary; 19129 19130 if (affectedBoundary.x2New === undefined) { 19131 if (affectedBoundary.x2 > boundary.x1) { 19132 if (affectedBoundary.index > boundary.index) { 19133 affectedBoundary.x2New = affectedBoundary.x2; 19134 } 19135 } else { 19136 affectedBoundary.x2New = maxXNew; 19137 } 19138 } else if (affectedBoundary.x2New > maxXNew) { 19139 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); 19140 } 19141 } 19142 19143 var changedHorizon = [], 19144 lastBoundary = null; 19145 19146 for (q = i; q <= j; q++) { 19147 horizonPart = horizon[q]; 19148 affectedBoundary = horizonPart.boundary; 19149 var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; 19150 19151 if (lastBoundary === useBoundary) { 19152 changedHorizon[changedHorizon.length - 1].end = horizonPart.end; 19153 } else { 19154 changedHorizon.push({ 19155 start: horizonPart.start, 19156 end: horizonPart.end, 19157 boundary: useBoundary 19158 }); 19159 lastBoundary = useBoundary; 19160 } 19161 } 19162 19163 if (horizon[i].start < boundary.y1) { 19164 changedHorizon[0].start = boundary.y1; 19165 changedHorizon.unshift({ 19166 start: horizon[i].start, 19167 end: boundary.y1, 19168 boundary: horizon[i].boundary 19169 }); 19170 } 19171 19172 if (boundary.y2 < horizon[j].end) { 19173 changedHorizon[changedHorizon.length - 1].end = boundary.y2; 19174 changedHorizon.push({ 19175 start: boundary.y2, 19176 end: horizon[j].end, 19177 boundary: horizon[j].boundary 19178 }); 19179 } 19180 19181 for (q = i; q <= j; q++) { 19182 horizonPart = horizon[q]; 19183 affectedBoundary = horizonPart.boundary; 19184 19185 if (affectedBoundary.x2New !== undefined) { 19186 continue; 19187 } 19188 19189 var used = false; 19190 19191 for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { 19192 used = horizon[k].boundary === affectedBoundary; 19193 } 19194 19195 for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { 19196 used = horizon[k].boundary === affectedBoundary; 19197 } 19198 19199 for (k = 0; !used && k < changedHorizon.length; k++) { 19200 used = changedHorizon[k].boundary === affectedBoundary; 19201 } 19202 19203 if (!used) { 19204 affectedBoundary.x2New = maxXNew; 19205 } 19206 } 19207 19208 Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); 19209 }); 19210 horizon.forEach(function (horizonPart) { 19211 var affectedBoundary = horizonPart.boundary; 19212 19213 if (affectedBoundary.x2New === undefined) { 19214 affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); 19215 } 19216 }); 19217 } 19218 19219 function TextLayerRenderTask(_ref) { 19220 var _this = this; 19221 19222 var textContent = _ref.textContent, 19223 textContentStream = _ref.textContentStream, 19224 container = _ref.container, 19225 viewport = _ref.viewport, 19226 textDivs = _ref.textDivs, 19227 textContentItemsStr = _ref.textContentItemsStr, 19228 enhanceTextSelection = _ref.enhanceTextSelection; 19229 this._textContent = textContent; 19230 this._textContentStream = textContentStream; 19231 this._container = container; 19232 this._viewport = viewport; 19233 this._textDivs = textDivs || []; 19234 this._textContentItemsStr = textContentItemsStr || []; 19235 this._enhanceTextSelection = !!enhanceTextSelection; 19236 this._fontInspectorEnabled = !!(_global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled); 19237 this._reader = null; 19238 this._layoutTextLastFontSize = null; 19239 this._layoutTextLastFontFamily = null; 19240 this._layoutTextCtx = null; 19241 this._textDivProperties = new WeakMap(); 19242 this._renderingDone = false; 19243 this._canceled = false; 19244 this._capability = (0, _util.createPromiseCapability)(); 19245 this._renderTimer = null; 19246 this._bounds = []; 19247 19248 this._capability.promise["finally"](function () { 19249 if (_this._layoutTextCtx) { 19250 _this._layoutTextCtx.canvas.width = 0; 19251 _this._layoutTextCtx.canvas.height = 0; 19252 _this._layoutTextCtx = null; 19253 } 19254 }); 19255 } 19256 19257 TextLayerRenderTask.prototype = { 19258 get promise() { 19259 return this._capability.promise; 19260 }, 19261 19262 cancel: function TextLayer_cancel() { 19263 this._canceled = true; 19264 19265 if (this._reader) { 19266 this._reader.cancel(new _util.AbortException('TextLayer task cancelled.')); 19267 19268 this._reader = null; 19269 } 19270 19271 if (this._renderTimer !== null) { 19272 clearTimeout(this._renderTimer); 19273 this._renderTimer = null; 19274 } 19275 19276 this._capability.reject(new Error('TextLayer task cancelled.')); 19277 }, 19278 _processItems: function _processItems(items, styleCache) { 19279 for (var i = 0, len = items.length; i < len; i++) { 19280 this._textContentItemsStr.push(items[i].str); 19281 19282 appendText(this, items[i], styleCache); 19283 } 19284 }, 19285 _layoutText: function _layoutText(textDiv) { 19286 var textLayerFrag = this._container; 19287 19288 var textDivProperties = this._textDivProperties.get(textDiv); 19289 19290 if (textDivProperties.isWhitespace) { 19291 return; 19292 } 19293 19294 var fontSize = textDiv.style.fontSize; 19295 var fontFamily = textDiv.style.fontFamily; 19296 19297 if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { 19298 this._layoutTextCtx.font = fontSize + ' ' + fontFamily; 19299 this._layoutTextLastFontSize = fontSize; 19300 this._layoutTextLastFontFamily = fontFamily; 19301 } 19302 19303 var width = this._layoutTextCtx.measureText(textDiv.textContent).width; 19304 19305 var transform = ''; 19306 19307 if (textDivProperties.canvasWidth !== 0 && width > 0) { 19308 textDivProperties.scale = textDivProperties.canvasWidth / width; 19309 transform = "scaleX(".concat(textDivProperties.scale, ")"); 19310 } 19311 19312 if (textDivProperties.angle !== 0) { 19313 transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); 19314 } 19315 19316 if (transform.length > 0) { 19317 textDivProperties.originalTransform = transform; 19318 textDiv.style.transform = transform; 19319 } 19320 19321 this._textDivProperties.set(textDiv, textDivProperties); 19322 19323 textLayerFrag.appendChild(textDiv); 19324 }, 19325 _render: function TextLayer_render(timeout) { 19326 var _this2 = this; 19327 19328 var capability = (0, _util.createPromiseCapability)(); 19329 var styleCache = Object.create(null); 19330 var canvas = document.createElement('canvas'); 19331 canvas.mozOpaque = true; 19332 this._layoutTextCtx = canvas.getContext('2d', { 19333 alpha: false 19334 }); 19335 19336 if (this._textContent) { 19337 var textItems = this._textContent.items; 19338 var textStyles = this._textContent.styles; 19339 19340 this._processItems(textItems, textStyles); 19341 19342 capability.resolve(); 19343 } else if (this._textContentStream) { 19344 var pump = function pump() { 19345 _this2._reader.read().then(function (_ref2) { 19346 var value = _ref2.value, 19347 done = _ref2.done; 19348 19349 if (done) { 19350 capability.resolve(); 19351 return; 19352 } 19353 19354 Object.assign(styleCache, value.styles); 19355 19356 _this2._processItems(value.items, styleCache); 19357 19358 pump(); 19359 }, capability.reject); 19360 }; 19361 19362 this._reader = this._textContentStream.getReader(); 19363 pump(); 19364 } else { 19365 throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); 19366 } 19367 19368 capability.promise.then(function () { 19369 styleCache = null; 19370 19371 if (!timeout) { 19372 render(_this2); 19373 } else { 19374 _this2._renderTimer = setTimeout(function () { 19375 render(_this2); 19376 _this2._renderTimer = null; 19377 }, timeout); 19378 } 19379 }, this._capability.reject); 19380 }, 19381 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { 19382 if (!this._enhanceTextSelection || !this._renderingDone) { 19383 return; 19384 } 19385 19386 if (this._bounds !== null) { 19387 expand(this); 19388 this._bounds = null; 19389 } 19390 19391 for (var i = 0, ii = this._textDivs.length; i < ii; i++) { 19392 var div = this._textDivs[i]; 19393 19394 var divProperties = this._textDivProperties.get(div); 19395 19396 if (divProperties.isWhitespace) { 19397 continue; 19398 } 19399 19400 if (expandDivs) { 19401 var transform = '', 19402 padding = ''; 19403 19404 if (divProperties.scale !== 1) { 19405 transform = 'scaleX(' + divProperties.scale + ')'; 19406 } 19407 19408 if (divProperties.angle !== 0) { 19409 transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; 19410 } 19411 19412 if (divProperties.paddingLeft !== 0) { 19413 padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; 19414 transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; 19415 } 19416 19417 if (divProperties.paddingTop !== 0) { 19418 padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; 19419 transform += ' translateY(' + -divProperties.paddingTop + 'px)'; 19420 } 19421 19422 if (divProperties.paddingRight !== 0) { 19423 padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; 19424 } 19425 19426 if (divProperties.paddingBottom !== 0) { 19427 padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; 19428 } 19429 19430 if (padding !== '') { 19431 div.setAttribute('style', divProperties.style + padding); 19432 } 19433 19434 if (transform !== '') { 19435 div.style.transform = transform; 19436 } 19437 } else { 19438 div.style.padding = 0; 19439 div.style.transform = divProperties.originalTransform || ''; 19440 } 19441 } 19442 } 19443 }; 19444 19445 function renderTextLayer(renderParameters) { 19446 var task = new TextLayerRenderTask({ 19447 textContent: renderParameters.textContent, 19448 textContentStream: renderParameters.textContentStream, 19449 container: renderParameters.container, 19450 viewport: renderParameters.viewport, 19451 textDivs: renderParameters.textDivs, 19452 textContentItemsStr: renderParameters.textContentItemsStr, 19453 enhanceTextSelection: renderParameters.enhanceTextSelection 19454 }); 19455 19456 task._render(renderParameters.timeout); 19457 19458 return task; 19459 } 19460 19461 return renderTextLayer; 19462}(); 19463 19464exports.renderTextLayer = renderTextLayer; 19465 19466/***/ }), 19467/* 163 */ 19468/***/ (function(module, exports, __w_pdfjs_require__) { 19469 19470"use strict"; 19471 19472 19473Object.defineProperty(exports, "__esModule", { 19474 value: true 19475}); 19476exports.AnnotationLayer = void 0; 19477 19478var _display_utils = __w_pdfjs_require__(151); 19479 19480var _util = __w_pdfjs_require__(1); 19481 19482function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } 19483 19484function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } 19485 19486function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 19487 19488function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 19489 19490function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 19491 19492function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 19493 19494function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 19495 19496function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 19497 19498function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 19499 19500function _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); } } 19501 19502function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 19503 19504var AnnotationElementFactory = 19505/*#__PURE__*/ 19506function () { 19507 function AnnotationElementFactory() { 19508 _classCallCheck(this, AnnotationElementFactory); 19509 } 19510 19511 _createClass(AnnotationElementFactory, null, [{ 19512 key: "create", 19513 value: function create(parameters) { 19514 var subtype = parameters.data.annotationType; 19515 19516 switch (subtype) { 19517 case _util.AnnotationType.LINK: 19518 return new LinkAnnotationElement(parameters); 19519 19520 case _util.AnnotationType.TEXT: 19521 return new TextAnnotationElement(parameters); 19522 19523 case _util.AnnotationType.WIDGET: 19524 var fieldType = parameters.data.fieldType; 19525 19526 switch (fieldType) { 19527 case 'Tx': 19528 return new TextWidgetAnnotationElement(parameters); 19529 19530 case 'Btn': 19531 if (parameters.data.radioButton) { 19532 return new RadioButtonWidgetAnnotationElement(parameters); 19533 } else if (parameters.data.checkBox) { 19534 return new CheckboxWidgetAnnotationElement(parameters); 19535 } 19536 19537 return new PushButtonWidgetAnnotationElement(parameters); 19538 19539 case 'Ch': 19540 return new ChoiceWidgetAnnotationElement(parameters); 19541 } 19542 19543 return new WidgetAnnotationElement(parameters); 19544 19545 case _util.AnnotationType.POPUP: 19546 return new PopupAnnotationElement(parameters); 19547 19548 case _util.AnnotationType.FREETEXT: 19549 return new FreeTextAnnotationElement(parameters); 19550 19551 case _util.AnnotationType.LINE: 19552 return new LineAnnotationElement(parameters); 19553 19554 case _util.AnnotationType.SQUARE: 19555 return new SquareAnnotationElement(parameters); 19556 19557 case _util.AnnotationType.CIRCLE: 19558 return new CircleAnnotationElement(parameters); 19559 19560 case _util.AnnotationType.POLYLINE: 19561 return new PolylineAnnotationElement(parameters); 19562 19563 case _util.AnnotationType.CARET: 19564 return new CaretAnnotationElement(parameters); 19565 19566 case _util.AnnotationType.INK: 19567 return new InkAnnotationElement(parameters); 19568 19569 case _util.AnnotationType.POLYGON: 19570 return new PolygonAnnotationElement(parameters); 19571 19572 case _util.AnnotationType.HIGHLIGHT: 19573 return new HighlightAnnotationElement(parameters); 19574 19575 case _util.AnnotationType.UNDERLINE: 19576 return new UnderlineAnnotationElement(parameters); 19577 19578 case _util.AnnotationType.SQUIGGLY: 19579 return new SquigglyAnnotationElement(parameters); 19580 19581 case _util.AnnotationType.STRIKEOUT: 19582 return new StrikeOutAnnotationElement(parameters); 19583 19584 case _util.AnnotationType.STAMP: 19585 return new StampAnnotationElement(parameters); 19586 19587 case _util.AnnotationType.FILEATTACHMENT: 19588 return new FileAttachmentAnnotationElement(parameters); 19589 19590 default: 19591 return new AnnotationElement(parameters); 19592 } 19593 } 19594 }]); 19595 19596 return AnnotationElementFactory; 19597}(); 19598 19599var AnnotationElement = 19600/*#__PURE__*/ 19601function () { 19602 function AnnotationElement(parameters) { 19603 var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 19604 var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 19605 19606 _classCallCheck(this, AnnotationElement); 19607 19608 this.isRenderable = isRenderable; 19609 this.data = parameters.data; 19610 this.layer = parameters.layer; 19611 this.page = parameters.page; 19612 this.viewport = parameters.viewport; 19613 this.linkService = parameters.linkService; 19614 this.downloadManager = parameters.downloadManager; 19615 this.imageResourcesPath = parameters.imageResourcesPath; 19616 this.renderInteractiveForms = parameters.renderInteractiveForms; 19617 this.svgFactory = parameters.svgFactory; 19618 19619 if (isRenderable) { 19620 this.container = this._createContainer(ignoreBorder); 19621 } 19622 } 19623 19624 _createClass(AnnotationElement, [{ 19625 key: "_createContainer", 19626 value: function _createContainer() { 19627 var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 19628 var data = this.data, 19629 page = this.page, 19630 viewport = this.viewport; 19631 var container = document.createElement('section'); 19632 var width = data.rect[2] - data.rect[0]; 19633 var height = data.rect[3] - data.rect[1]; 19634 container.setAttribute('data-annotation-id', data.id); 19635 19636 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]]); 19637 19638 container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; 19639 container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; 19640 19641 if (!ignoreBorder && data.borderStyle.width > 0) { 19642 container.style.borderWidth = data.borderStyle.width + 'px'; 19643 19644 if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { 19645 width = width - 2 * data.borderStyle.width; 19646 height = height - 2 * data.borderStyle.width; 19647 } 19648 19649 var horizontalRadius = data.borderStyle.horizontalCornerRadius; 19650 var verticalRadius = data.borderStyle.verticalCornerRadius; 19651 19652 if (horizontalRadius > 0 || verticalRadius > 0) { 19653 var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; 19654 container.style.borderRadius = radius; 19655 } 19656 19657 switch (data.borderStyle.style) { 19658 case _util.AnnotationBorderStyleType.SOLID: 19659 container.style.borderStyle = 'solid'; 19660 break; 19661 19662 case _util.AnnotationBorderStyleType.DASHED: 19663 container.style.borderStyle = 'dashed'; 19664 break; 19665 19666 case _util.AnnotationBorderStyleType.BEVELED: 19667 (0, _util.warn)('Unimplemented border style: beveled'); 19668 break; 19669 19670 case _util.AnnotationBorderStyleType.INSET: 19671 (0, _util.warn)('Unimplemented border style: inset'); 19672 break; 19673 19674 case _util.AnnotationBorderStyleType.UNDERLINE: 19675 container.style.borderBottomStyle = 'solid'; 19676 break; 19677 19678 default: 19679 break; 19680 } 19681 19682 if (data.color) { 19683 container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); 19684 } else { 19685 container.style.borderWidth = 0; 19686 } 19687 } 19688 19689 container.style.left = rect[0] + 'px'; 19690 container.style.top = rect[1] + 'px'; 19691 container.style.width = width + 'px'; 19692 container.style.height = height + 'px'; 19693 return container; 19694 } 19695 }, { 19696 key: "_createPopup", 19697 value: function _createPopup(container, trigger, data) { 19698 if (!trigger) { 19699 trigger = document.createElement('div'); 19700 trigger.style.height = container.style.height; 19701 trigger.style.width = container.style.width; 19702 container.appendChild(trigger); 19703 } 19704 19705 var popupElement = new PopupElement({ 19706 container: container, 19707 trigger: trigger, 19708 color: data.color, 19709 title: data.title, 19710 modificationDate: data.modificationDate, 19711 contents: data.contents, 19712 hideWrapper: true 19713 }); 19714 var popup = popupElement.render(); 19715 popup.style.left = container.style.width; 19716 container.appendChild(popup); 19717 } 19718 }, { 19719 key: "render", 19720 value: function render() { 19721 (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); 19722 } 19723 }]); 19724 19725 return AnnotationElement; 19726}(); 19727 19728var LinkAnnotationElement = 19729/*#__PURE__*/ 19730function (_AnnotationElement) { 19731 _inherits(LinkAnnotationElement, _AnnotationElement); 19732 19733 function LinkAnnotationElement(parameters) { 19734 _classCallCheck(this, LinkAnnotationElement); 19735 19736 var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); 19737 return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable)); 19738 } 19739 19740 _createClass(LinkAnnotationElement, [{ 19741 key: "render", 19742 value: function render() { 19743 this.container.className = 'linkAnnotation'; 19744 var data = this.data, 19745 linkService = this.linkService; 19746 var link = document.createElement('a'); 19747 (0, _display_utils.addLinkAttributes)(link, { 19748 url: data.url, 19749 target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, 19750 rel: linkService.externalLinkRel 19751 }); 19752 19753 if (!data.url) { 19754 if (data.action) { 19755 this._bindNamedAction(link, data.action); 19756 } else { 19757 this._bindLink(link, data.dest); 19758 } 19759 } 19760 19761 this.container.appendChild(link); 19762 return this.container; 19763 } 19764 }, { 19765 key: "_bindLink", 19766 value: function _bindLink(link, destination) { 19767 var _this = this; 19768 19769 link.href = this.linkService.getDestinationHash(destination); 19770 19771 link.onclick = function () { 19772 if (destination) { 19773 _this.linkService.navigateTo(destination); 19774 } 19775 19776 return false; 19777 }; 19778 19779 if (destination) { 19780 link.className = 'internalLink'; 19781 } 19782 } 19783 }, { 19784 key: "_bindNamedAction", 19785 value: function _bindNamedAction(link, action) { 19786 var _this2 = this; 19787 19788 link.href = this.linkService.getAnchorUrl(''); 19789 19790 link.onclick = function () { 19791 _this2.linkService.executeNamedAction(action); 19792 19793 return false; 19794 }; 19795 19796 link.className = 'internalLink'; 19797 } 19798 }]); 19799 19800 return LinkAnnotationElement; 19801}(AnnotationElement); 19802 19803var TextAnnotationElement = 19804/*#__PURE__*/ 19805function (_AnnotationElement2) { 19806 _inherits(TextAnnotationElement, _AnnotationElement2); 19807 19808 function TextAnnotationElement(parameters) { 19809 _classCallCheck(this, TextAnnotationElement); 19810 19811 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 19812 return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable)); 19813 } 19814 19815 _createClass(TextAnnotationElement, [{ 19816 key: "render", 19817 value: function render() { 19818 this.container.className = 'textAnnotation'; 19819 var image = document.createElement('img'); 19820 image.style.height = this.container.style.height; 19821 image.style.width = this.container.style.width; 19822 image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; 19823 image.alt = '[{{type}} Annotation]'; 19824 image.dataset.l10nId = 'text_annotation_type'; 19825 image.dataset.l10nArgs = JSON.stringify({ 19826 type: this.data.name 19827 }); 19828 19829 if (!this.data.hasPopup) { 19830 this._createPopup(this.container, image, this.data); 19831 } 19832 19833 this.container.appendChild(image); 19834 return this.container; 19835 } 19836 }]); 19837 19838 return TextAnnotationElement; 19839}(AnnotationElement); 19840 19841var WidgetAnnotationElement = 19842/*#__PURE__*/ 19843function (_AnnotationElement3) { 19844 _inherits(WidgetAnnotationElement, _AnnotationElement3); 19845 19846 function WidgetAnnotationElement() { 19847 _classCallCheck(this, WidgetAnnotationElement); 19848 19849 return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments)); 19850 } 19851 19852 _createClass(WidgetAnnotationElement, [{ 19853 key: "render", 19854 value: function render() { 19855 return this.container; 19856 } 19857 }]); 19858 19859 return WidgetAnnotationElement; 19860}(AnnotationElement); 19861 19862var TextWidgetAnnotationElement = 19863/*#__PURE__*/ 19864function (_WidgetAnnotationElem) { 19865 _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); 19866 19867 function TextWidgetAnnotationElement(parameters) { 19868 _classCallCheck(this, TextWidgetAnnotationElement); 19869 19870 var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; 19871 return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable)); 19872 } 19873 19874 _createClass(TextWidgetAnnotationElement, [{ 19875 key: "render", 19876 value: function render() { 19877 var TEXT_ALIGNMENT = ['left', 'center', 'right']; 19878 this.container.className = 'textWidgetAnnotation'; 19879 var element = null; 19880 19881 if (this.renderInteractiveForms) { 19882 if (this.data.multiLine) { 19883 element = document.createElement('textarea'); 19884 element.textContent = this.data.fieldValue; 19885 } else { 19886 element = document.createElement('input'); 19887 element.type = 'text'; 19888 element.setAttribute('value', this.data.fieldValue); 19889 } 19890 19891 element.disabled = this.data.readOnly; 19892 19893 if (this.data.maxLen !== null) { 19894 element.maxLength = this.data.maxLen; 19895 } 19896 19897 if (this.data.comb) { 19898 var fieldWidth = this.data.rect[2] - this.data.rect[0]; 19899 var combWidth = fieldWidth / this.data.maxLen; 19900 element.classList.add('comb'); 19901 element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; 19902 } 19903 } else { 19904 element = document.createElement('div'); 19905 element.textContent = this.data.fieldValue; 19906 element.style.verticalAlign = 'middle'; 19907 element.style.display = 'table-cell'; 19908 var font = null; 19909 19910 if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) { 19911 font = this.page.commonObjs.get(this.data.fontRefName); 19912 } 19913 19914 this._setTextStyle(element, font); 19915 } 19916 19917 if (this.data.textAlignment !== null) { 19918 element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; 19919 } 19920 19921 this.container.appendChild(element); 19922 return this.container; 19923 } 19924 }, { 19925 key: "_setTextStyle", 19926 value: function _setTextStyle(element, font) { 19927 var style = element.style; 19928 style.fontSize = this.data.fontSize + 'px'; 19929 style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; 19930 19931 if (!font) { 19932 return; 19933 } 19934 19935 style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; 19936 style.fontStyle = font.italic ? 'italic' : 'normal'; 19937 var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; 19938 var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; 19939 style.fontFamily = fontFamily + fallbackName; 19940 } 19941 }]); 19942 19943 return TextWidgetAnnotationElement; 19944}(WidgetAnnotationElement); 19945 19946var CheckboxWidgetAnnotationElement = 19947/*#__PURE__*/ 19948function (_WidgetAnnotationElem2) { 19949 _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); 19950 19951 function CheckboxWidgetAnnotationElement(parameters) { 19952 _classCallCheck(this, CheckboxWidgetAnnotationElement); 19953 19954 return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); 19955 } 19956 19957 _createClass(CheckboxWidgetAnnotationElement, [{ 19958 key: "render", 19959 value: function render() { 19960 this.container.className = 'buttonWidgetAnnotation checkBox'; 19961 var element = document.createElement('input'); 19962 element.disabled = this.data.readOnly; 19963 element.type = 'checkbox'; 19964 19965 if (this.data.fieldValue && this.data.fieldValue !== 'Off') { 19966 element.setAttribute('checked', true); 19967 } 19968 19969 this.container.appendChild(element); 19970 return this.container; 19971 } 19972 }]); 19973 19974 return CheckboxWidgetAnnotationElement; 19975}(WidgetAnnotationElement); 19976 19977var RadioButtonWidgetAnnotationElement = 19978/*#__PURE__*/ 19979function (_WidgetAnnotationElem3) { 19980 _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); 19981 19982 function RadioButtonWidgetAnnotationElement(parameters) { 19983 _classCallCheck(this, RadioButtonWidgetAnnotationElement); 19984 19985 return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); 19986 } 19987 19988 _createClass(RadioButtonWidgetAnnotationElement, [{ 19989 key: "render", 19990 value: function render() { 19991 this.container.className = 'buttonWidgetAnnotation radioButton'; 19992 var element = document.createElement('input'); 19993 element.disabled = this.data.readOnly; 19994 element.type = 'radio'; 19995 element.name = this.data.fieldName; 19996 19997 if (this.data.fieldValue === this.data.buttonValue) { 19998 element.setAttribute('checked', true); 19999 } 20000 20001 this.container.appendChild(element); 20002 return this.container; 20003 } 20004 }]); 20005 20006 return RadioButtonWidgetAnnotationElement; 20007}(WidgetAnnotationElement); 20008 20009var PushButtonWidgetAnnotationElement = 20010/*#__PURE__*/ 20011function (_LinkAnnotationElemen) { 20012 _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); 20013 20014 function PushButtonWidgetAnnotationElement() { 20015 _classCallCheck(this, PushButtonWidgetAnnotationElement); 20016 20017 return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments)); 20018 } 20019 20020 _createClass(PushButtonWidgetAnnotationElement, [{ 20021 key: "render", 20022 value: function render() { 20023 var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); 20024 20025 container.className = 'buttonWidgetAnnotation pushButton'; 20026 return container; 20027 } 20028 }]); 20029 20030 return PushButtonWidgetAnnotationElement; 20031}(LinkAnnotationElement); 20032 20033var ChoiceWidgetAnnotationElement = 20034/*#__PURE__*/ 20035function (_WidgetAnnotationElem4) { 20036 _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); 20037 20038 function ChoiceWidgetAnnotationElement(parameters) { 20039 _classCallCheck(this, ChoiceWidgetAnnotationElement); 20040 20041 return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); 20042 } 20043 20044 _createClass(ChoiceWidgetAnnotationElement, [{ 20045 key: "render", 20046 value: function render() { 20047 this.container.className = 'choiceWidgetAnnotation'; 20048 var selectElement = document.createElement('select'); 20049 selectElement.disabled = this.data.readOnly; 20050 20051 if (!this.data.combo) { 20052 selectElement.size = this.data.options.length; 20053 20054 if (this.data.multiSelect) { 20055 selectElement.multiple = true; 20056 } 20057 } 20058 20059 for (var i = 0, ii = this.data.options.length; i < ii; i++) { 20060 var option = this.data.options[i]; 20061 var optionElement = document.createElement('option'); 20062 optionElement.textContent = option.displayValue; 20063 optionElement.value = option.exportValue; 20064 20065 if (this.data.fieldValue.includes(option.displayValue)) { 20066 optionElement.setAttribute('selected', true); 20067 } 20068 20069 selectElement.appendChild(optionElement); 20070 } 20071 20072 this.container.appendChild(selectElement); 20073 return this.container; 20074 } 20075 }]); 20076 20077 return ChoiceWidgetAnnotationElement; 20078}(WidgetAnnotationElement); 20079 20080var PopupAnnotationElement = 20081/*#__PURE__*/ 20082function (_AnnotationElement4) { 20083 _inherits(PopupAnnotationElement, _AnnotationElement4); 20084 20085 function PopupAnnotationElement(parameters) { 20086 _classCallCheck(this, PopupAnnotationElement); 20087 20088 var isRenderable = !!(parameters.data.title || parameters.data.contents); 20089 return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable)); 20090 } 20091 20092 _createClass(PopupAnnotationElement, [{ 20093 key: "render", 20094 value: function render() { 20095 var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; 20096 this.container.className = 'popupAnnotation'; 20097 20098 if (IGNORE_TYPES.includes(this.data.parentType)) { 20099 return this.container; 20100 } 20101 20102 var selector = '[data-annotation-id="' + this.data.parentId + '"]'; 20103 var parentElement = this.layer.querySelector(selector); 20104 20105 if (!parentElement) { 20106 return this.container; 20107 } 20108 20109 var popup = new PopupElement({ 20110 container: this.container, 20111 trigger: parentElement, 20112 color: this.data.color, 20113 title: this.data.title, 20114 modificationDate: this.data.modificationDate, 20115 contents: this.data.contents 20116 }); 20117 var parentLeft = parseFloat(parentElement.style.left); 20118 var parentWidth = parseFloat(parentElement.style.width); 20119 this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; 20120 this.container.style.left = parentLeft + parentWidth + 'px'; 20121 this.container.appendChild(popup.render()); 20122 return this.container; 20123 } 20124 }]); 20125 20126 return PopupAnnotationElement; 20127}(AnnotationElement); 20128 20129var PopupElement = 20130/*#__PURE__*/ 20131function () { 20132 function PopupElement(parameters) { 20133 _classCallCheck(this, PopupElement); 20134 20135 this.container = parameters.container; 20136 this.trigger = parameters.trigger; 20137 this.color = parameters.color; 20138 this.title = parameters.title; 20139 this.modificationDate = parameters.modificationDate; 20140 this.contents = parameters.contents; 20141 this.hideWrapper = parameters.hideWrapper || false; 20142 this.pinned = false; 20143 } 20144 20145 _createClass(PopupElement, [{ 20146 key: "render", 20147 value: function render() { 20148 var BACKGROUND_ENLIGHT = 0.7; 20149 var wrapper = document.createElement('div'); 20150 wrapper.className = 'popupWrapper'; 20151 this.hideElement = this.hideWrapper ? wrapper : this.container; 20152 this.hideElement.setAttribute('hidden', true); 20153 var popup = document.createElement('div'); 20154 popup.className = 'popup'; 20155 var color = this.color; 20156 20157 if (color) { 20158 var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; 20159 var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; 20160 var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; 20161 popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); 20162 } 20163 20164 var title = document.createElement('h1'); 20165 title.textContent = this.title; 20166 popup.appendChild(title); 20167 20168 var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); 20169 20170 if (dateObject) { 20171 var modificationDate = document.createElement('span'); 20172 modificationDate.textContent = '{{date}}, {{time}}'; 20173 modificationDate.dataset.l10nId = 'annotation_date_string'; 20174 modificationDate.dataset.l10nArgs = JSON.stringify({ 20175 date: dateObject.toLocaleDateString(), 20176 time: dateObject.toLocaleTimeString() 20177 }); 20178 popup.appendChild(modificationDate); 20179 } 20180 20181 var contents = this._formatContents(this.contents); 20182 20183 popup.appendChild(contents); 20184 this.trigger.addEventListener('click', this._toggle.bind(this)); 20185 this.trigger.addEventListener('mouseover', this._show.bind(this, false)); 20186 this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); 20187 popup.addEventListener('click', this._hide.bind(this, true)); 20188 wrapper.appendChild(popup); 20189 return wrapper; 20190 } 20191 }, { 20192 key: "_formatContents", 20193 value: function _formatContents(contents) { 20194 var p = document.createElement('p'); 20195 var lines = contents.split(/(?:\r\n?|\n)/); 20196 20197 for (var i = 0, ii = lines.length; i < ii; ++i) { 20198 var line = lines[i]; 20199 p.appendChild(document.createTextNode(line)); 20200 20201 if (i < ii - 1) { 20202 p.appendChild(document.createElement('br')); 20203 } 20204 } 20205 20206 return p; 20207 } 20208 }, { 20209 key: "_toggle", 20210 value: function _toggle() { 20211 if (this.pinned) { 20212 this._hide(true); 20213 } else { 20214 this._show(true); 20215 } 20216 } 20217 }, { 20218 key: "_show", 20219 value: function _show() { 20220 var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 20221 20222 if (pin) { 20223 this.pinned = true; 20224 } 20225 20226 if (this.hideElement.hasAttribute('hidden')) { 20227 this.hideElement.removeAttribute('hidden'); 20228 this.container.style.zIndex += 1; 20229 } 20230 } 20231 }, { 20232 key: "_hide", 20233 value: function _hide() { 20234 var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 20235 20236 if (unpin) { 20237 this.pinned = false; 20238 } 20239 20240 if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { 20241 this.hideElement.setAttribute('hidden', true); 20242 this.container.style.zIndex -= 1; 20243 } 20244 } 20245 }]); 20246 20247 return PopupElement; 20248}(); 20249 20250var FreeTextAnnotationElement = 20251/*#__PURE__*/ 20252function (_AnnotationElement5) { 20253 _inherits(FreeTextAnnotationElement, _AnnotationElement5); 20254 20255 function FreeTextAnnotationElement(parameters) { 20256 _classCallCheck(this, FreeTextAnnotationElement); 20257 20258 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20259 return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true)); 20260 } 20261 20262 _createClass(FreeTextAnnotationElement, [{ 20263 key: "render", 20264 value: function render() { 20265 this.container.className = 'freeTextAnnotation'; 20266 20267 if (!this.data.hasPopup) { 20268 this._createPopup(this.container, null, this.data); 20269 } 20270 20271 return this.container; 20272 } 20273 }]); 20274 20275 return FreeTextAnnotationElement; 20276}(AnnotationElement); 20277 20278var LineAnnotationElement = 20279/*#__PURE__*/ 20280function (_AnnotationElement6) { 20281 _inherits(LineAnnotationElement, _AnnotationElement6); 20282 20283 function LineAnnotationElement(parameters) { 20284 _classCallCheck(this, LineAnnotationElement); 20285 20286 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20287 return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true)); 20288 } 20289 20290 _createClass(LineAnnotationElement, [{ 20291 key: "render", 20292 value: function render() { 20293 this.container.className = 'lineAnnotation'; 20294 var data = this.data; 20295 var width = data.rect[2] - data.rect[0]; 20296 var height = data.rect[3] - data.rect[1]; 20297 var svg = this.svgFactory.create(width, height); 20298 var line = this.svgFactory.createElement('svg:line'); 20299 line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); 20300 line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); 20301 line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); 20302 line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); 20303 line.setAttribute('stroke-width', data.borderStyle.width); 20304 line.setAttribute('stroke', 'transparent'); 20305 svg.appendChild(line); 20306 this.container.append(svg); 20307 20308 this._createPopup(this.container, line, data); 20309 20310 return this.container; 20311 } 20312 }]); 20313 20314 return LineAnnotationElement; 20315}(AnnotationElement); 20316 20317var SquareAnnotationElement = 20318/*#__PURE__*/ 20319function (_AnnotationElement7) { 20320 _inherits(SquareAnnotationElement, _AnnotationElement7); 20321 20322 function SquareAnnotationElement(parameters) { 20323 _classCallCheck(this, SquareAnnotationElement); 20324 20325 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20326 return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true)); 20327 } 20328 20329 _createClass(SquareAnnotationElement, [{ 20330 key: "render", 20331 value: function render() { 20332 this.container.className = 'squareAnnotation'; 20333 var data = this.data; 20334 var width = data.rect[2] - data.rect[0]; 20335 var height = data.rect[3] - data.rect[1]; 20336 var svg = this.svgFactory.create(width, height); 20337 var borderWidth = data.borderStyle.width; 20338 var square = this.svgFactory.createElement('svg:rect'); 20339 square.setAttribute('x', borderWidth / 2); 20340 square.setAttribute('y', borderWidth / 2); 20341 square.setAttribute('width', width - borderWidth); 20342 square.setAttribute('height', height - borderWidth); 20343 square.setAttribute('stroke-width', borderWidth); 20344 square.setAttribute('stroke', 'transparent'); 20345 square.setAttribute('fill', 'none'); 20346 svg.appendChild(square); 20347 this.container.append(svg); 20348 20349 this._createPopup(this.container, square, data); 20350 20351 return this.container; 20352 } 20353 }]); 20354 20355 return SquareAnnotationElement; 20356}(AnnotationElement); 20357 20358var CircleAnnotationElement = 20359/*#__PURE__*/ 20360function (_AnnotationElement8) { 20361 _inherits(CircleAnnotationElement, _AnnotationElement8); 20362 20363 function CircleAnnotationElement(parameters) { 20364 _classCallCheck(this, CircleAnnotationElement); 20365 20366 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20367 return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true)); 20368 } 20369 20370 _createClass(CircleAnnotationElement, [{ 20371 key: "render", 20372 value: function render() { 20373 this.container.className = 'circleAnnotation'; 20374 var data = this.data; 20375 var width = data.rect[2] - data.rect[0]; 20376 var height = data.rect[3] - data.rect[1]; 20377 var svg = this.svgFactory.create(width, height); 20378 var borderWidth = data.borderStyle.width; 20379 var circle = this.svgFactory.createElement('svg:ellipse'); 20380 circle.setAttribute('cx', width / 2); 20381 circle.setAttribute('cy', height / 2); 20382 circle.setAttribute('rx', width / 2 - borderWidth / 2); 20383 circle.setAttribute('ry', height / 2 - borderWidth / 2); 20384 circle.setAttribute('stroke-width', borderWidth); 20385 circle.setAttribute('stroke', 'transparent'); 20386 circle.setAttribute('fill', 'none'); 20387 svg.appendChild(circle); 20388 this.container.append(svg); 20389 20390 this._createPopup(this.container, circle, data); 20391 20392 return this.container; 20393 } 20394 }]); 20395 20396 return CircleAnnotationElement; 20397}(AnnotationElement); 20398 20399var PolylineAnnotationElement = 20400/*#__PURE__*/ 20401function (_AnnotationElement9) { 20402 _inherits(PolylineAnnotationElement, _AnnotationElement9); 20403 20404 function PolylineAnnotationElement(parameters) { 20405 var _this3; 20406 20407 _classCallCheck(this, PolylineAnnotationElement); 20408 20409 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20410 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true)); 20411 _this3.containerClassName = 'polylineAnnotation'; 20412 _this3.svgElementName = 'svg:polyline'; 20413 return _this3; 20414 } 20415 20416 _createClass(PolylineAnnotationElement, [{ 20417 key: "render", 20418 value: function render() { 20419 this.container.className = this.containerClassName; 20420 var data = this.data; 20421 var width = data.rect[2] - data.rect[0]; 20422 var height = data.rect[3] - data.rect[1]; 20423 var svg = this.svgFactory.create(width, height); 20424 var vertices = data.vertices; 20425 var points = []; 20426 20427 for (var i = 0, ii = vertices.length; i < ii; i++) { 20428 var x = vertices[i].x - data.rect[0]; 20429 var y = data.rect[3] - vertices[i].y; 20430 points.push(x + ',' + y); 20431 } 20432 20433 points = points.join(' '); 20434 var borderWidth = data.borderStyle.width; 20435 var polyline = this.svgFactory.createElement(this.svgElementName); 20436 polyline.setAttribute('points', points); 20437 polyline.setAttribute('stroke-width', borderWidth); 20438 polyline.setAttribute('stroke', 'transparent'); 20439 polyline.setAttribute('fill', 'none'); 20440 svg.appendChild(polyline); 20441 this.container.append(svg); 20442 20443 this._createPopup(this.container, polyline, data); 20444 20445 return this.container; 20446 } 20447 }]); 20448 20449 return PolylineAnnotationElement; 20450}(AnnotationElement); 20451 20452var PolygonAnnotationElement = 20453/*#__PURE__*/ 20454function (_PolylineAnnotationEl) { 20455 _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); 20456 20457 function PolygonAnnotationElement(parameters) { 20458 var _this4; 20459 20460 _classCallCheck(this, PolygonAnnotationElement); 20461 20462 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters)); 20463 _this4.containerClassName = 'polygonAnnotation'; 20464 _this4.svgElementName = 'svg:polygon'; 20465 return _this4; 20466 } 20467 20468 return PolygonAnnotationElement; 20469}(PolylineAnnotationElement); 20470 20471var CaretAnnotationElement = 20472/*#__PURE__*/ 20473function (_AnnotationElement10) { 20474 _inherits(CaretAnnotationElement, _AnnotationElement10); 20475 20476 function CaretAnnotationElement(parameters) { 20477 _classCallCheck(this, CaretAnnotationElement); 20478 20479 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20480 return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true)); 20481 } 20482 20483 _createClass(CaretAnnotationElement, [{ 20484 key: "render", 20485 value: function render() { 20486 this.container.className = 'caretAnnotation'; 20487 20488 if (!this.data.hasPopup) { 20489 this._createPopup(this.container, null, this.data); 20490 } 20491 20492 return this.container; 20493 } 20494 }]); 20495 20496 return CaretAnnotationElement; 20497}(AnnotationElement); 20498 20499var InkAnnotationElement = 20500/*#__PURE__*/ 20501function (_AnnotationElement11) { 20502 _inherits(InkAnnotationElement, _AnnotationElement11); 20503 20504 function InkAnnotationElement(parameters) { 20505 var _this5; 20506 20507 _classCallCheck(this, InkAnnotationElement); 20508 20509 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20510 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true)); 20511 _this5.containerClassName = 'inkAnnotation'; 20512 _this5.svgElementName = 'svg:polyline'; 20513 return _this5; 20514 } 20515 20516 _createClass(InkAnnotationElement, [{ 20517 key: "render", 20518 value: function render() { 20519 this.container.className = this.containerClassName; 20520 var data = this.data; 20521 var width = data.rect[2] - data.rect[0]; 20522 var height = data.rect[3] - data.rect[1]; 20523 var svg = this.svgFactory.create(width, height); 20524 var inkLists = data.inkLists; 20525 20526 for (var i = 0, ii = inkLists.length; i < ii; i++) { 20527 var inkList = inkLists[i]; 20528 var points = []; 20529 20530 for (var j = 0, jj = inkList.length; j < jj; j++) { 20531 var x = inkList[j].x - data.rect[0]; 20532 var y = data.rect[3] - inkList[j].y; 20533 points.push(x + ',' + y); 20534 } 20535 20536 points = points.join(' '); 20537 var borderWidth = data.borderStyle.width; 20538 var polyline = this.svgFactory.createElement(this.svgElementName); 20539 polyline.setAttribute('points', points); 20540 polyline.setAttribute('stroke-width', borderWidth); 20541 polyline.setAttribute('stroke', 'transparent'); 20542 polyline.setAttribute('fill', 'none'); 20543 20544 this._createPopup(this.container, polyline, data); 20545 20546 svg.appendChild(polyline); 20547 } 20548 20549 this.container.append(svg); 20550 return this.container; 20551 } 20552 }]); 20553 20554 return InkAnnotationElement; 20555}(AnnotationElement); 20556 20557var HighlightAnnotationElement = 20558/*#__PURE__*/ 20559function (_AnnotationElement12) { 20560 _inherits(HighlightAnnotationElement, _AnnotationElement12); 20561 20562 function HighlightAnnotationElement(parameters) { 20563 _classCallCheck(this, HighlightAnnotationElement); 20564 20565 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20566 return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true)); 20567 } 20568 20569 _createClass(HighlightAnnotationElement, [{ 20570 key: "render", 20571 value: function render() { 20572 this.container.className = 'highlightAnnotation'; 20573 20574 if (!this.data.hasPopup) { 20575 this._createPopup(this.container, null, this.data); 20576 } 20577 20578 return this.container; 20579 } 20580 }]); 20581 20582 return HighlightAnnotationElement; 20583}(AnnotationElement); 20584 20585var UnderlineAnnotationElement = 20586/*#__PURE__*/ 20587function (_AnnotationElement13) { 20588 _inherits(UnderlineAnnotationElement, _AnnotationElement13); 20589 20590 function UnderlineAnnotationElement(parameters) { 20591 _classCallCheck(this, UnderlineAnnotationElement); 20592 20593 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20594 return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true)); 20595 } 20596 20597 _createClass(UnderlineAnnotationElement, [{ 20598 key: "render", 20599 value: function render() { 20600 this.container.className = 'underlineAnnotation'; 20601 20602 if (!this.data.hasPopup) { 20603 this._createPopup(this.container, null, this.data); 20604 } 20605 20606 return this.container; 20607 } 20608 }]); 20609 20610 return UnderlineAnnotationElement; 20611}(AnnotationElement); 20612 20613var SquigglyAnnotationElement = 20614/*#__PURE__*/ 20615function (_AnnotationElement14) { 20616 _inherits(SquigglyAnnotationElement, _AnnotationElement14); 20617 20618 function SquigglyAnnotationElement(parameters) { 20619 _classCallCheck(this, SquigglyAnnotationElement); 20620 20621 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20622 return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true)); 20623 } 20624 20625 _createClass(SquigglyAnnotationElement, [{ 20626 key: "render", 20627 value: function render() { 20628 this.container.className = 'squigglyAnnotation'; 20629 20630 if (!this.data.hasPopup) { 20631 this._createPopup(this.container, null, this.data); 20632 } 20633 20634 return this.container; 20635 } 20636 }]); 20637 20638 return SquigglyAnnotationElement; 20639}(AnnotationElement); 20640 20641var StrikeOutAnnotationElement = 20642/*#__PURE__*/ 20643function (_AnnotationElement15) { 20644 _inherits(StrikeOutAnnotationElement, _AnnotationElement15); 20645 20646 function StrikeOutAnnotationElement(parameters) { 20647 _classCallCheck(this, StrikeOutAnnotationElement); 20648 20649 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20650 return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true)); 20651 } 20652 20653 _createClass(StrikeOutAnnotationElement, [{ 20654 key: "render", 20655 value: function render() { 20656 this.container.className = 'strikeoutAnnotation'; 20657 20658 if (!this.data.hasPopup) { 20659 this._createPopup(this.container, null, this.data); 20660 } 20661 20662 return this.container; 20663 } 20664 }]); 20665 20666 return StrikeOutAnnotationElement; 20667}(AnnotationElement); 20668 20669var StampAnnotationElement = 20670/*#__PURE__*/ 20671function (_AnnotationElement16) { 20672 _inherits(StampAnnotationElement, _AnnotationElement16); 20673 20674 function StampAnnotationElement(parameters) { 20675 _classCallCheck(this, StampAnnotationElement); 20676 20677 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20678 return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true)); 20679 } 20680 20681 _createClass(StampAnnotationElement, [{ 20682 key: "render", 20683 value: function render() { 20684 this.container.className = 'stampAnnotation'; 20685 20686 if (!this.data.hasPopup) { 20687 this._createPopup(this.container, null, this.data); 20688 } 20689 20690 return this.container; 20691 } 20692 }]); 20693 20694 return StampAnnotationElement; 20695}(AnnotationElement); 20696 20697var FileAttachmentAnnotationElement = 20698/*#__PURE__*/ 20699function (_AnnotationElement17) { 20700 _inherits(FileAttachmentAnnotationElement, _AnnotationElement17); 20701 20702 function FileAttachmentAnnotationElement(parameters) { 20703 var _this6; 20704 20705 _classCallCheck(this, FileAttachmentAnnotationElement); 20706 20707 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true)); 20708 var _this6$data$file = _this6.data.file, 20709 filename = _this6$data$file.filename, 20710 content = _this6$data$file.content; 20711 _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename); 20712 _this6.content = content; 20713 20714 if (_this6.linkService.eventBus) { 20715 _this6.linkService.eventBus.dispatch('fileattachmentannotation', { 20716 source: _assertThisInitialized(_this6), 20717 id: (0, _util.stringToPDFString)(filename), 20718 filename: filename, 20719 content: content 20720 }); 20721 } 20722 20723 return _this6; 20724 } 20725 20726 _createClass(FileAttachmentAnnotationElement, [{ 20727 key: "render", 20728 value: function render() { 20729 this.container.className = 'fileAttachmentAnnotation'; 20730 var trigger = document.createElement('div'); 20731 trigger.style.height = this.container.style.height; 20732 trigger.style.width = this.container.style.width; 20733 trigger.addEventListener('dblclick', this._download.bind(this)); 20734 20735 if (!this.data.hasPopup && (this.data.title || this.data.contents)) { 20736 this._createPopup(this.container, trigger, this.data); 20737 } 20738 20739 this.container.appendChild(trigger); 20740 return this.container; 20741 } 20742 }, { 20743 key: "_download", 20744 value: function _download() { 20745 if (!this.downloadManager) { 20746 (0, _util.warn)('Download cannot be started due to unavailable download manager'); 20747 return; 20748 } 20749 20750 this.downloadManager.downloadData(this.content, this.filename, ''); 20751 } 20752 }]); 20753 20754 return FileAttachmentAnnotationElement; 20755}(AnnotationElement); 20756 20757var AnnotationLayer = 20758/*#__PURE__*/ 20759function () { 20760 function AnnotationLayer() { 20761 _classCallCheck(this, AnnotationLayer); 20762 } 20763 20764 _createClass(AnnotationLayer, null, [{ 20765 key: "render", 20766 value: function render(parameters) { 20767 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 20768 var data = parameters.annotations[i]; 20769 20770 if (!data) { 20771 continue; 20772 } 20773 20774 var element = AnnotationElementFactory.create({ 20775 data: data, 20776 layer: parameters.div, 20777 page: parameters.page, 20778 viewport: parameters.viewport, 20779 linkService: parameters.linkService, 20780 downloadManager: parameters.downloadManager, 20781 imageResourcesPath: parameters.imageResourcesPath || '', 20782 renderInteractiveForms: parameters.renderInteractiveForms || false, 20783 svgFactory: new _display_utils.DOMSVGFactory() 20784 }); 20785 20786 if (element.isRenderable) { 20787 parameters.div.appendChild(element.render()); 20788 } 20789 } 20790 } 20791 }, { 20792 key: "update", 20793 value: function update(parameters) { 20794 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 20795 var data = parameters.annotations[i]; 20796 var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); 20797 20798 if (element) { 20799 element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; 20800 } 20801 } 20802 20803 parameters.div.removeAttribute('hidden'); 20804 } 20805 }]); 20806 20807 return AnnotationLayer; 20808}(); 20809 20810exports.AnnotationLayer = AnnotationLayer; 20811 20812/***/ }), 20813/* 164 */ 20814/***/ (function(module, exports, __w_pdfjs_require__) { 20815 20816"use strict"; 20817 20818 20819Object.defineProperty(exports, "__esModule", { 20820 value: true 20821}); 20822exports.SVGGraphics = void 0; 20823 20824var _util = __w_pdfjs_require__(1); 20825 20826var _display_utils = __w_pdfjs_require__(151); 20827 20828var _is_node = _interopRequireDefault(__w_pdfjs_require__(4)); 20829 20830function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 20831 20832function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } 20833 20834function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } 20835 20836function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } 20837 20838function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } 20839 20840function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 20841 20842function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 20843 20844function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } 20845 20846function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 20847 20848function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 20849 20850function _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); } } 20851 20852function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 20853 20854var SVGGraphics = function SVGGraphics() { 20855 throw new Error('Not implemented: SVGGraphics'); 20856}; 20857 20858exports.SVGGraphics = SVGGraphics; 20859{ 20860 var opListToTree = function opListToTree(opList) { 20861 var opTree = []; 20862 var tmp = []; 20863 var _iteratorNormalCompletion = true; 20864 var _didIteratorError = false; 20865 var _iteratorError = undefined; 20866 20867 try { 20868 for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 20869 var opListElement = _step.value; 20870 20871 if (opListElement.fn === 'save') { 20872 opTree.push({ 20873 'fnId': 92, 20874 'fn': 'group', 20875 'items': [] 20876 }); 20877 tmp.push(opTree); 20878 opTree = opTree[opTree.length - 1].items; 20879 continue; 20880 } 20881 20882 if (opListElement.fn === 'restore') { 20883 opTree = tmp.pop(); 20884 } else { 20885 opTree.push(opListElement); 20886 } 20887 } 20888 } catch (err) { 20889 _didIteratorError = true; 20890 _iteratorError = err; 20891 } finally { 20892 try { 20893 if (!_iteratorNormalCompletion && _iterator["return"] != null) { 20894 _iterator["return"](); 20895 } 20896 } finally { 20897 if (_didIteratorError) { 20898 throw _iteratorError; 20899 } 20900 } 20901 } 20902 20903 return opTree; 20904 }; 20905 20906 var pf = function pf(value) { 20907 if (Number.isInteger(value)) { 20908 return value.toString(); 20909 } 20910 20911 var s = value.toFixed(10); 20912 var i = s.length - 1; 20913 20914 if (s[i] !== '0') { 20915 return s; 20916 } 20917 20918 do { 20919 i--; 20920 } while (s[i] === '0'); 20921 20922 return s.substring(0, s[i] === '.' ? i : i + 1); 20923 }; 20924 20925 var pm = function pm(m) { 20926 if (m[4] === 0 && m[5] === 0) { 20927 if (m[1] === 0 && m[2] === 0) { 20928 if (m[0] === 1 && m[3] === 1) { 20929 return ''; 20930 } 20931 20932 return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")"); 20933 } 20934 20935 if (m[0] === m[3] && m[1] === -m[2]) { 20936 var a = Math.acos(m[0]) * 180 / Math.PI; 20937 return "rotate(".concat(pf(a), ")"); 20938 } 20939 } else { 20940 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { 20941 return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")"); 20942 } 20943 } 20944 20945 return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")"); 20946 }; 20947 20948 var SVG_DEFAULTS = { 20949 fontStyle: 'normal', 20950 fontWeight: 'normal', 20951 fillColor: '#000000' 20952 }; 20953 var XML_NS = 'http://www.w3.org/XML/1998/namespace'; 20954 var XLINK_NS = 'http://www.w3.org/1999/xlink'; 20955 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 20956 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 20957 20958 var convertImgDataToPng = function () { 20959 var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); 20960 var CHUNK_WRAPPER_SIZE = 12; 20961 var crcTable = new Int32Array(256); 20962 20963 for (var i = 0; i < 256; i++) { 20964 var c = i; 20965 20966 for (var h = 0; h < 8; h++) { 20967 if (c & 1) { 20968 c = 0xedB88320 ^ c >> 1 & 0x7fffffff; 20969 } else { 20970 c = c >> 1 & 0x7fffffff; 20971 } 20972 } 20973 20974 crcTable[i] = c; 20975 } 20976 20977 function crc32(data, start, end) { 20978 var crc = -1; 20979 20980 for (var _i = start; _i < end; _i++) { 20981 var a = (crc ^ data[_i]) & 0xff; 20982 var b = crcTable[a]; 20983 crc = crc >>> 8 ^ b; 20984 } 20985 20986 return crc ^ -1; 20987 } 20988 20989 function writePngChunk(type, body, data, offset) { 20990 var p = offset; 20991 var len = body.length; 20992 data[p] = len >> 24 & 0xff; 20993 data[p + 1] = len >> 16 & 0xff; 20994 data[p + 2] = len >> 8 & 0xff; 20995 data[p + 3] = len & 0xff; 20996 p += 4; 20997 data[p] = type.charCodeAt(0) & 0xff; 20998 data[p + 1] = type.charCodeAt(1) & 0xff; 20999 data[p + 2] = type.charCodeAt(2) & 0xff; 21000 data[p + 3] = type.charCodeAt(3) & 0xff; 21001 p += 4; 21002 data.set(body, p); 21003 p += body.length; 21004 var crc = crc32(data, offset + 4, p); 21005 data[p] = crc >> 24 & 0xff; 21006 data[p + 1] = crc >> 16 & 0xff; 21007 data[p + 2] = crc >> 8 & 0xff; 21008 data[p + 3] = crc & 0xff; 21009 } 21010 21011 function adler32(data, start, end) { 21012 var a = 1; 21013 var b = 0; 21014 21015 for (var _i2 = start; _i2 < end; ++_i2) { 21016 a = (a + (data[_i2] & 0xff)) % 65521; 21017 b = (b + a) % 65521; 21018 } 21019 21020 return b << 16 | a; 21021 } 21022 21023 function deflateSync(literals) { 21024 if (!(0, _is_node["default"])()) { 21025 return deflateSyncUncompressed(literals); 21026 } 21027 21028 try { 21029 var input; 21030 21031 if (parseInt(process.versions.node) >= 8) { 21032 input = literals; 21033 } else { 21034 input = new Buffer(literals); 21035 } 21036 21037 var output = require('zlib').deflateSync(input, { 21038 level: 9 21039 }); 21040 21041 return output instanceof Uint8Array ? output : new Uint8Array(output); 21042 } catch (e) { 21043 (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); 21044 } 21045 21046 return deflateSyncUncompressed(literals); 21047 } 21048 21049 function deflateSyncUncompressed(literals) { 21050 var len = literals.length; 21051 var maxBlockLength = 0xFFFF; 21052 var deflateBlocks = Math.ceil(len / maxBlockLength); 21053 var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); 21054 var pi = 0; 21055 idat[pi++] = 0x78; 21056 idat[pi++] = 0x9c; 21057 var pos = 0; 21058 21059 while (len > maxBlockLength) { 21060 idat[pi++] = 0x00; 21061 idat[pi++] = 0xff; 21062 idat[pi++] = 0xff; 21063 idat[pi++] = 0x00; 21064 idat[pi++] = 0x00; 21065 idat.set(literals.subarray(pos, pos + maxBlockLength), pi); 21066 pi += maxBlockLength; 21067 pos += maxBlockLength; 21068 len -= maxBlockLength; 21069 } 21070 21071 idat[pi++] = 0x01; 21072 idat[pi++] = len & 0xff; 21073 idat[pi++] = len >> 8 & 0xff; 21074 idat[pi++] = ~len & 0xffff & 0xff; 21075 idat[pi++] = (~len & 0xffff) >> 8 & 0xff; 21076 idat.set(literals.subarray(pos), pi); 21077 pi += literals.length - pos; 21078 var adler = adler32(literals, 0, literals.length); 21079 idat[pi++] = adler >> 24 & 0xff; 21080 idat[pi++] = adler >> 16 & 0xff; 21081 idat[pi++] = adler >> 8 & 0xff; 21082 idat[pi++] = adler & 0xff; 21083 return idat; 21084 } 21085 21086 function encode(imgData, kind, forceDataSchema, isMask) { 21087 var width = imgData.width; 21088 var height = imgData.height; 21089 var bitDepth, colorType, lineSize; 21090 var bytes = imgData.data; 21091 21092 switch (kind) { 21093 case _util.ImageKind.GRAYSCALE_1BPP: 21094 colorType = 0; 21095 bitDepth = 1; 21096 lineSize = width + 7 >> 3; 21097 break; 21098 21099 case _util.ImageKind.RGB_24BPP: 21100 colorType = 2; 21101 bitDepth = 8; 21102 lineSize = width * 3; 21103 break; 21104 21105 case _util.ImageKind.RGBA_32BPP: 21106 colorType = 6; 21107 bitDepth = 8; 21108 lineSize = width * 4; 21109 break; 21110 21111 default: 21112 throw new Error('invalid format'); 21113 } 21114 21115 var literals = new Uint8Array((1 + lineSize) * height); 21116 var offsetLiterals = 0, 21117 offsetBytes = 0; 21118 21119 for (var y = 0; y < height; ++y) { 21120 literals[offsetLiterals++] = 0; 21121 literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); 21122 offsetBytes += lineSize; 21123 offsetLiterals += lineSize; 21124 } 21125 21126 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { 21127 offsetLiterals = 0; 21128 21129 for (var _y = 0; _y < height; _y++) { 21130 offsetLiterals++; 21131 21132 for (var _i3 = 0; _i3 < lineSize; _i3++) { 21133 literals[offsetLiterals++] ^= 0xFF; 21134 } 21135 } 21136 } 21137 21138 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]); 21139 var idat = deflateSync(literals); 21140 var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; 21141 var data = new Uint8Array(pngLength); 21142 var offset = 0; 21143 data.set(PNG_HEADER, offset); 21144 offset += PNG_HEADER.length; 21145 writePngChunk('IHDR', ihdr, data, offset); 21146 offset += CHUNK_WRAPPER_SIZE + ihdr.length; 21147 writePngChunk('IDATA', idat, data, offset); 21148 offset += CHUNK_WRAPPER_SIZE + idat.length; 21149 writePngChunk('IEND', new Uint8Array(0), data, offset); 21150 return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); 21151 } 21152 21153 return function convertImgDataToPng(imgData, forceDataSchema, isMask) { 21154 var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; 21155 return encode(imgData, kind, forceDataSchema, isMask); 21156 }; 21157 }(); 21158 21159 var SVGExtraState = 21160 /*#__PURE__*/ 21161 function () { 21162 function SVGExtraState() { 21163 _classCallCheck(this, SVGExtraState); 21164 21165 this.fontSizeScale = 1; 21166 this.fontWeight = SVG_DEFAULTS.fontWeight; 21167 this.fontSize = 0; 21168 this.textMatrix = _util.IDENTITY_MATRIX; 21169 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 21170 this.leading = 0; 21171 this.textRenderingMode = _util.TextRenderingMode.FILL; 21172 this.textMatrixScale = 1; 21173 this.x = 0; 21174 this.y = 0; 21175 this.lineX = 0; 21176 this.lineY = 0; 21177 this.charSpacing = 0; 21178 this.wordSpacing = 0; 21179 this.textHScale = 1; 21180 this.textRise = 0; 21181 this.fillColor = SVG_DEFAULTS.fillColor; 21182 this.strokeColor = '#000000'; 21183 this.fillAlpha = 1; 21184 this.strokeAlpha = 1; 21185 this.lineWidth = 1; 21186 this.lineJoin = ''; 21187 this.lineCap = ''; 21188 this.miterLimit = 0; 21189 this.dashArray = []; 21190 this.dashPhase = 0; 21191 this.dependencies = []; 21192 this.activeClipUrl = null; 21193 this.clipGroup = null; 21194 this.maskId = ''; 21195 } 21196 21197 _createClass(SVGExtraState, [{ 21198 key: "clone", 21199 value: function clone() { 21200 return Object.create(this); 21201 } 21202 }, { 21203 key: "setCurrentPoint", 21204 value: function setCurrentPoint(x, y) { 21205 this.x = x; 21206 this.y = y; 21207 } 21208 }]); 21209 21210 return SVGExtraState; 21211 }(); 21212 21213 var clipCount = 0; 21214 var maskCount = 0; 21215 var shadingCount = 0; 21216 21217 exports.SVGGraphics = SVGGraphics = 21218 /*#__PURE__*/ 21219 function () { 21220 function SVGGraphics(commonObjs, objs, forceDataSchema) { 21221 _classCallCheck(this, SVGGraphics); 21222 21223 this.svgFactory = new _display_utils.DOMSVGFactory(); 21224 this.current = new SVGExtraState(); 21225 this.transformMatrix = _util.IDENTITY_MATRIX; 21226 this.transformStack = []; 21227 this.extraStack = []; 21228 this.commonObjs = commonObjs; 21229 this.objs = objs; 21230 this.pendingClip = null; 21231 this.pendingEOFill = false; 21232 this.embedFonts = false; 21233 this.embeddedFonts = Object.create(null); 21234 this.cssStyle = null; 21235 this.forceDataSchema = !!forceDataSchema; 21236 this._operatorIdMapping = []; 21237 21238 for (var op in _util.OPS) { 21239 this._operatorIdMapping[_util.OPS[op]] = op; 21240 } 21241 } 21242 21243 _createClass(SVGGraphics, [{ 21244 key: "save", 21245 value: function save() { 21246 this.transformStack.push(this.transformMatrix); 21247 var old = this.current; 21248 this.extraStack.push(old); 21249 this.current = old.clone(); 21250 } 21251 }, { 21252 key: "restore", 21253 value: function restore() { 21254 this.transformMatrix = this.transformStack.pop(); 21255 this.current = this.extraStack.pop(); 21256 this.pendingClip = null; 21257 this.tgrp = null; 21258 } 21259 }, { 21260 key: "group", 21261 value: function group(items) { 21262 this.save(); 21263 this.executeOpTree(items); 21264 this.restore(); 21265 } 21266 }, { 21267 key: "loadDependencies", 21268 value: function loadDependencies(operatorList) { 21269 var _this = this; 21270 21271 var fnArray = operatorList.fnArray; 21272 var argsArray = operatorList.argsArray; 21273 21274 for (var i = 0, ii = fnArray.length; i < ii; i++) { 21275 if (fnArray[i] !== _util.OPS.dependency) { 21276 continue; 21277 } 21278 21279 var _iteratorNormalCompletion2 = true; 21280 var _didIteratorError2 = false; 21281 var _iteratorError2 = undefined; 21282 21283 try { 21284 var _loop = function _loop() { 21285 var obj = _step2.value; 21286 var objsPool = obj.startsWith('g_') ? _this.commonObjs : _this.objs; 21287 var promise = new Promise(function (resolve) { 21288 objsPool.get(obj, resolve); 21289 }); 21290 21291 _this.current.dependencies.push(promise); 21292 }; 21293 21294 for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 21295 _loop(); 21296 } 21297 } catch (err) { 21298 _didIteratorError2 = true; 21299 _iteratorError2 = err; 21300 } finally { 21301 try { 21302 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { 21303 _iterator2["return"](); 21304 } 21305 } finally { 21306 if (_didIteratorError2) { 21307 throw _iteratorError2; 21308 } 21309 } 21310 } 21311 } 21312 21313 return Promise.all(this.current.dependencies); 21314 } 21315 }, { 21316 key: "transform", 21317 value: function transform(a, b, c, d, e, f) { 21318 var transformMatrix = [a, b, c, d, e, f]; 21319 this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); 21320 this.tgrp = null; 21321 } 21322 }, { 21323 key: "getSVG", 21324 value: function getSVG(operatorList, viewport) { 21325 var _this2 = this; 21326 21327 this.viewport = viewport; 21328 21329 var svgElement = this._initialize(viewport); 21330 21331 return this.loadDependencies(operatorList).then(function () { 21332 _this2.transformMatrix = _util.IDENTITY_MATRIX; 21333 21334 _this2.executeOpTree(_this2.convertOpList(operatorList)); 21335 21336 return svgElement; 21337 }); 21338 } 21339 }, { 21340 key: "convertOpList", 21341 value: function convertOpList(operatorList) { 21342 var operatorIdMapping = this._operatorIdMapping; 21343 var argsArray = operatorList.argsArray; 21344 var fnArray = operatorList.fnArray; 21345 var opList = []; 21346 21347 for (var i = 0, ii = fnArray.length; i < ii; i++) { 21348 var fnId = fnArray[i]; 21349 opList.push({ 21350 'fnId': fnId, 21351 'fn': operatorIdMapping[fnId], 21352 'args': argsArray[i] 21353 }); 21354 } 21355 21356 return opListToTree(opList); 21357 } 21358 }, { 21359 key: "executeOpTree", 21360 value: function executeOpTree(opTree) { 21361 var _iteratorNormalCompletion3 = true; 21362 var _didIteratorError3 = false; 21363 var _iteratorError3 = undefined; 21364 21365 try { 21366 for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { 21367 var opTreeElement = _step3.value; 21368 var fn = opTreeElement.fn; 21369 var fnId = opTreeElement.fnId; 21370 var args = opTreeElement.args; 21371 21372 switch (fnId | 0) { 21373 case _util.OPS.beginText: 21374 this.beginText(); 21375 break; 21376 21377 case _util.OPS.dependency: 21378 break; 21379 21380 case _util.OPS.setLeading: 21381 this.setLeading(args); 21382 break; 21383 21384 case _util.OPS.setLeadingMoveText: 21385 this.setLeadingMoveText(args[0], args[1]); 21386 break; 21387 21388 case _util.OPS.setFont: 21389 this.setFont(args); 21390 break; 21391 21392 case _util.OPS.showText: 21393 this.showText(args[0]); 21394 break; 21395 21396 case _util.OPS.showSpacedText: 21397 this.showText(args[0]); 21398 break; 21399 21400 case _util.OPS.endText: 21401 this.endText(); 21402 break; 21403 21404 case _util.OPS.moveText: 21405 this.moveText(args[0], args[1]); 21406 break; 21407 21408 case _util.OPS.setCharSpacing: 21409 this.setCharSpacing(args[0]); 21410 break; 21411 21412 case _util.OPS.setWordSpacing: 21413 this.setWordSpacing(args[0]); 21414 break; 21415 21416 case _util.OPS.setHScale: 21417 this.setHScale(args[0]); 21418 break; 21419 21420 case _util.OPS.setTextMatrix: 21421 this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); 21422 break; 21423 21424 case _util.OPS.setTextRise: 21425 this.setTextRise(args[0]); 21426 break; 21427 21428 case _util.OPS.setTextRenderingMode: 21429 this.setTextRenderingMode(args[0]); 21430 break; 21431 21432 case _util.OPS.setLineWidth: 21433 this.setLineWidth(args[0]); 21434 break; 21435 21436 case _util.OPS.setLineJoin: 21437 this.setLineJoin(args[0]); 21438 break; 21439 21440 case _util.OPS.setLineCap: 21441 this.setLineCap(args[0]); 21442 break; 21443 21444 case _util.OPS.setMiterLimit: 21445 this.setMiterLimit(args[0]); 21446 break; 21447 21448 case _util.OPS.setFillRGBColor: 21449 this.setFillRGBColor(args[0], args[1], args[2]); 21450 break; 21451 21452 case _util.OPS.setStrokeRGBColor: 21453 this.setStrokeRGBColor(args[0], args[1], args[2]); 21454 break; 21455 21456 case _util.OPS.setStrokeColorN: 21457 this.setStrokeColorN(args); 21458 break; 21459 21460 case _util.OPS.setFillColorN: 21461 this.setFillColorN(args); 21462 break; 21463 21464 case _util.OPS.shadingFill: 21465 this.shadingFill(args[0]); 21466 break; 21467 21468 case _util.OPS.setDash: 21469 this.setDash(args[0], args[1]); 21470 break; 21471 21472 case _util.OPS.setRenderingIntent: 21473 this.setRenderingIntent(args[0]); 21474 break; 21475 21476 case _util.OPS.setFlatness: 21477 this.setFlatness(args[0]); 21478 break; 21479 21480 case _util.OPS.setGState: 21481 this.setGState(args[0]); 21482 break; 21483 21484 case _util.OPS.fill: 21485 this.fill(); 21486 break; 21487 21488 case _util.OPS.eoFill: 21489 this.eoFill(); 21490 break; 21491 21492 case _util.OPS.stroke: 21493 this.stroke(); 21494 break; 21495 21496 case _util.OPS.fillStroke: 21497 this.fillStroke(); 21498 break; 21499 21500 case _util.OPS.eoFillStroke: 21501 this.eoFillStroke(); 21502 break; 21503 21504 case _util.OPS.clip: 21505 this.clip('nonzero'); 21506 break; 21507 21508 case _util.OPS.eoClip: 21509 this.clip('evenodd'); 21510 break; 21511 21512 case _util.OPS.paintSolidColorImageMask: 21513 this.paintSolidColorImageMask(); 21514 break; 21515 21516 case _util.OPS.paintJpegXObject: 21517 this.paintJpegXObject(args[0], args[1], args[2]); 21518 break; 21519 21520 case _util.OPS.paintImageXObject: 21521 this.paintImageXObject(args[0]); 21522 break; 21523 21524 case _util.OPS.paintInlineImageXObject: 21525 this.paintInlineImageXObject(args[0]); 21526 break; 21527 21528 case _util.OPS.paintImageMaskXObject: 21529 this.paintImageMaskXObject(args[0]); 21530 break; 21531 21532 case _util.OPS.paintFormXObjectBegin: 21533 this.paintFormXObjectBegin(args[0], args[1]); 21534 break; 21535 21536 case _util.OPS.paintFormXObjectEnd: 21537 this.paintFormXObjectEnd(); 21538 break; 21539 21540 case _util.OPS.closePath: 21541 this.closePath(); 21542 break; 21543 21544 case _util.OPS.closeStroke: 21545 this.closeStroke(); 21546 break; 21547 21548 case _util.OPS.closeFillStroke: 21549 this.closeFillStroke(); 21550 break; 21551 21552 case _util.OPS.closeEOFillStroke: 21553 this.closeEOFillStroke(); 21554 break; 21555 21556 case _util.OPS.nextLine: 21557 this.nextLine(); 21558 break; 21559 21560 case _util.OPS.transform: 21561 this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); 21562 break; 21563 21564 case _util.OPS.constructPath: 21565 this.constructPath(args[0], args[1]); 21566 break; 21567 21568 case _util.OPS.endPath: 21569 this.endPath(); 21570 break; 21571 21572 case 92: 21573 this.group(opTreeElement.items); 21574 break; 21575 21576 default: 21577 (0, _util.warn)("Unimplemented operator ".concat(fn)); 21578 break; 21579 } 21580 } 21581 } catch (err) { 21582 _didIteratorError3 = true; 21583 _iteratorError3 = err; 21584 } finally { 21585 try { 21586 if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { 21587 _iterator3["return"](); 21588 } 21589 } finally { 21590 if (_didIteratorError3) { 21591 throw _iteratorError3; 21592 } 21593 } 21594 } 21595 } 21596 }, { 21597 key: "setWordSpacing", 21598 value: function setWordSpacing(wordSpacing) { 21599 this.current.wordSpacing = wordSpacing; 21600 } 21601 }, { 21602 key: "setCharSpacing", 21603 value: function setCharSpacing(charSpacing) { 21604 this.current.charSpacing = charSpacing; 21605 } 21606 }, { 21607 key: "nextLine", 21608 value: function nextLine() { 21609 this.moveText(0, this.current.leading); 21610 } 21611 }, { 21612 key: "setTextMatrix", 21613 value: function setTextMatrix(a, b, c, d, e, f) { 21614 var current = this.current; 21615 current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; 21616 current.textMatrixScale = Math.sqrt(a * a + b * b); 21617 current.x = current.lineX = 0; 21618 current.y = current.lineY = 0; 21619 current.xcoords = []; 21620 current.tspan = this.svgFactory.createElement('svg:tspan'); 21621 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 21622 current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); 21623 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21624 current.txtElement = this.svgFactory.createElement('svg:text'); 21625 current.txtElement.appendChild(current.tspan); 21626 } 21627 }, { 21628 key: "beginText", 21629 value: function beginText() { 21630 var current = this.current; 21631 current.x = current.lineX = 0; 21632 current.y = current.lineY = 0; 21633 current.textMatrix = _util.IDENTITY_MATRIX; 21634 current.lineMatrix = _util.IDENTITY_MATRIX; 21635 current.textMatrixScale = 1; 21636 current.tspan = this.svgFactory.createElement('svg:tspan'); 21637 current.txtElement = this.svgFactory.createElement('svg:text'); 21638 current.txtgrp = this.svgFactory.createElement('svg:g'); 21639 current.xcoords = []; 21640 } 21641 }, { 21642 key: "moveText", 21643 value: function moveText(x, y) { 21644 var current = this.current; 21645 current.x = current.lineX += x; 21646 current.y = current.lineY += y; 21647 current.xcoords = []; 21648 current.tspan = this.svgFactory.createElement('svg:tspan'); 21649 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 21650 current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); 21651 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21652 } 21653 }, { 21654 key: "showText", 21655 value: function showText(glyphs) { 21656 var current = this.current; 21657 var font = current.font; 21658 var fontSize = current.fontSize; 21659 21660 if (fontSize === 0) { 21661 return; 21662 } 21663 21664 var charSpacing = current.charSpacing; 21665 var wordSpacing = current.wordSpacing; 21666 var fontDirection = current.fontDirection; 21667 var textHScale = current.textHScale * fontDirection; 21668 var vertical = font.vertical; 21669 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 21670 var x = 0; 21671 var _iteratorNormalCompletion4 = true; 21672 var _didIteratorError4 = false; 21673 var _iteratorError4 = undefined; 21674 21675 try { 21676 for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { 21677 var glyph = _step4.value; 21678 21679 if (glyph === null) { 21680 x += fontDirection * wordSpacing; 21681 continue; 21682 } else if ((0, _util.isNum)(glyph)) { 21683 x += -glyph * fontSize * 0.001; 21684 continue; 21685 } 21686 21687 var width = glyph.width; 21688 var character = glyph.fontChar; 21689 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 21690 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 21691 21692 if (!glyph.isInFont && !font.missingFile) { 21693 x += charWidth; 21694 continue; 21695 } 21696 21697 current.xcoords.push(current.x + x * textHScale); 21698 current.tspan.textContent += character; 21699 x += charWidth; 21700 } 21701 } catch (err) { 21702 _didIteratorError4 = true; 21703 _iteratorError4 = err; 21704 } finally { 21705 try { 21706 if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { 21707 _iterator4["return"](); 21708 } 21709 } finally { 21710 if (_didIteratorError4) { 21711 throw _iteratorError4; 21712 } 21713 } 21714 } 21715 21716 if (vertical) { 21717 current.y -= x * textHScale; 21718 } else { 21719 current.x += x * textHScale; 21720 } 21721 21722 current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); 21723 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21724 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 21725 current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); 21726 21727 if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { 21728 current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); 21729 } 21730 21731 if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { 21732 current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); 21733 } 21734 21735 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 21736 21737 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 21738 if (current.fillColor !== SVG_DEFAULTS.fillColor) { 21739 current.tspan.setAttributeNS(null, 'fill', current.fillColor); 21740 } 21741 21742 if (current.fillAlpha < 1) { 21743 current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 21744 } 21745 } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { 21746 current.tspan.setAttributeNS(null, 'fill', 'transparent'); 21747 } else { 21748 current.tspan.setAttributeNS(null, 'fill', 'none'); 21749 } 21750 21751 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 21752 var lineWidthScale = 1 / (current.textMatrixScale || 1); 21753 21754 this._setStrokeAttributes(current.tspan, lineWidthScale); 21755 } 21756 21757 var textMatrix = current.textMatrix; 21758 21759 if (current.textRise !== 0) { 21760 textMatrix = textMatrix.slice(); 21761 textMatrix[5] += current.textRise; 21762 } 21763 21764 current.txtElement.setAttributeNS(null, 'transform', "".concat(pm(textMatrix), " scale(1, -1)")); 21765 current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); 21766 current.txtElement.appendChild(current.tspan); 21767 current.txtgrp.appendChild(current.txtElement); 21768 21769 this._ensureTransformGroup().appendChild(current.txtElement); 21770 } 21771 }, { 21772 key: "setLeadingMoveText", 21773 value: function setLeadingMoveText(x, y) { 21774 this.setLeading(-y); 21775 this.moveText(x, y); 21776 } 21777 }, { 21778 key: "addFontStyle", 21779 value: function addFontStyle(fontObj) { 21780 if (!this.cssStyle) { 21781 this.cssStyle = this.svgFactory.createElement('svg:style'); 21782 this.cssStyle.setAttributeNS(null, 'type', 'text/css'); 21783 this.defs.appendChild(this.cssStyle); 21784 } 21785 21786 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); 21787 this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n"); 21788 } 21789 }, { 21790 key: "setFont", 21791 value: function setFont(details) { 21792 var current = this.current; 21793 var fontObj = this.commonObjs.get(details[0]); 21794 var size = details[1]; 21795 current.font = fontObj; 21796 21797 if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { 21798 this.addFontStyle(fontObj); 21799 this.embeddedFonts[fontObj.loadedName] = fontObj; 21800 } 21801 21802 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 21803 var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; 21804 var italic = fontObj.italic ? 'italic' : 'normal'; 21805 21806 if (size < 0) { 21807 size = -size; 21808 current.fontDirection = -1; 21809 } else { 21810 current.fontDirection = 1; 21811 } 21812 21813 current.fontSize = size; 21814 current.fontFamily = fontObj.loadedName; 21815 current.fontWeight = bold; 21816 current.fontStyle = italic; 21817 current.tspan = this.svgFactory.createElement('svg:tspan'); 21818 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21819 current.xcoords = []; 21820 } 21821 }, { 21822 key: "endText", 21823 value: function endText() { 21824 var current = this.current; 21825 21826 if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { 21827 current.element = current.txtElement; 21828 this.clip('nonzero'); 21829 this.endPath(); 21830 } 21831 } 21832 }, { 21833 key: "setLineWidth", 21834 value: function setLineWidth(width) { 21835 if (width > 0) { 21836 this.current.lineWidth = width; 21837 } 21838 } 21839 }, { 21840 key: "setLineCap", 21841 value: function setLineCap(style) { 21842 this.current.lineCap = LINE_CAP_STYLES[style]; 21843 } 21844 }, { 21845 key: "setLineJoin", 21846 value: function setLineJoin(style) { 21847 this.current.lineJoin = LINE_JOIN_STYLES[style]; 21848 } 21849 }, { 21850 key: "setMiterLimit", 21851 value: function setMiterLimit(limit) { 21852 this.current.miterLimit = limit; 21853 } 21854 }, { 21855 key: "setStrokeAlpha", 21856 value: function setStrokeAlpha(strokeAlpha) { 21857 this.current.strokeAlpha = strokeAlpha; 21858 } 21859 }, { 21860 key: "setStrokeRGBColor", 21861 value: function setStrokeRGBColor(r, g, b) { 21862 this.current.strokeColor = _util.Util.makeCssRgb(r, g, b); 21863 } 21864 }, { 21865 key: "setFillAlpha", 21866 value: function setFillAlpha(fillAlpha) { 21867 this.current.fillAlpha = fillAlpha; 21868 } 21869 }, { 21870 key: "setFillRGBColor", 21871 value: function setFillRGBColor(r, g, b) { 21872 this.current.fillColor = _util.Util.makeCssRgb(r, g, b); 21873 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 21874 this.current.xcoords = []; 21875 } 21876 }, { 21877 key: "setStrokeColorN", 21878 value: function setStrokeColorN(args) { 21879 this.current.strokeColor = this._makeColorN_Pattern(args); 21880 } 21881 }, { 21882 key: "setFillColorN", 21883 value: function setFillColorN(args) { 21884 this.current.fillColor = this._makeColorN_Pattern(args); 21885 } 21886 }, { 21887 key: "shadingFill", 21888 value: function shadingFill(args) { 21889 var width = this.viewport.width; 21890 var height = this.viewport.height; 21891 21892 var inv = _util.Util.inverseTransform(this.transformMatrix); 21893 21894 var bl = _util.Util.applyTransform([0, 0], inv); 21895 21896 var br = _util.Util.applyTransform([0, height], inv); 21897 21898 var ul = _util.Util.applyTransform([width, 0], inv); 21899 21900 var ur = _util.Util.applyTransform([width, height], inv); 21901 21902 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); 21903 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); 21904 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); 21905 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); 21906 var rect = this.svgFactory.createElement('svg:rect'); 21907 rect.setAttributeNS(null, 'x', x0); 21908 rect.setAttributeNS(null, 'y', y0); 21909 rect.setAttributeNS(null, 'width', x1 - x0); 21910 rect.setAttributeNS(null, 'height', y1 - y0); 21911 rect.setAttributeNS(null, 'fill', this._makeShadingPattern(args)); 21912 21913 this._ensureTransformGroup().appendChild(rect); 21914 } 21915 }, { 21916 key: "_makeColorN_Pattern", 21917 value: function _makeColorN_Pattern(args) { 21918 if (args[0] === 'TilingPattern') { 21919 return this._makeTilingPattern(args); 21920 } 21921 21922 return this._makeShadingPattern(args); 21923 } 21924 }, { 21925 key: "_makeTilingPattern", 21926 value: function _makeTilingPattern(args) { 21927 var color = args[1]; 21928 var operatorList = args[2]; 21929 var matrix = args[3] || _util.IDENTITY_MATRIX; 21930 21931 var _args$ = _slicedToArray(args[4], 4), 21932 x0 = _args$[0], 21933 y0 = _args$[1], 21934 x1 = _args$[2], 21935 y1 = _args$[3]; 21936 21937 var xstep = args[5]; 21938 var ystep = args[6]; 21939 var paintType = args[7]; 21940 var tilingId = "shading".concat(shadingCount++); 21941 21942 var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix), 21943 _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2), 21944 tx0 = _Util$applyTransform2[0], 21945 ty0 = _Util$applyTransform2[1]; 21946 21947 var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix), 21948 _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2), 21949 tx1 = _Util$applyTransform4[0], 21950 ty1 = _Util$applyTransform4[1]; 21951 21952 var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix), 21953 _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), 21954 xscale = _Util$singularValueDe2[0], 21955 yscale = _Util$singularValueDe2[1]; 21956 21957 var txstep = xstep * xscale; 21958 var tystep = ystep * yscale; 21959 var tiling = this.svgFactory.createElement('svg:pattern'); 21960 tiling.setAttributeNS(null, 'id', tilingId); 21961 tiling.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse'); 21962 tiling.setAttributeNS(null, 'width', txstep); 21963 tiling.setAttributeNS(null, 'height', tystep); 21964 tiling.setAttributeNS(null, 'x', "".concat(tx0)); 21965 tiling.setAttributeNS(null, 'y', "".concat(ty0)); 21966 var svg = this.svg; 21967 var transformMatrix = this.transformMatrix; 21968 var fillColor = this.current.fillColor; 21969 var strokeColor = this.current.strokeColor; 21970 var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); 21971 this.svg = bbox; 21972 this.transformMatrix = matrix; 21973 21974 if (paintType === 2) { 21975 var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color)); 21976 21977 this.current.fillColor = cssColor; 21978 this.current.strokeColor = cssColor; 21979 } 21980 21981 this.executeOpTree(this.convertOpList(operatorList)); 21982 this.svg = svg; 21983 this.transformMatrix = transformMatrix; 21984 this.current.fillColor = fillColor; 21985 this.current.strokeColor = strokeColor; 21986 tiling.appendChild(bbox.childNodes[0]); 21987 this.defs.appendChild(tiling); 21988 return "url(#".concat(tilingId, ")"); 21989 } 21990 }, { 21991 key: "_makeShadingPattern", 21992 value: function _makeShadingPattern(args) { 21993 switch (args[0]) { 21994 case 'RadialAxial': 21995 var shadingId = "shading".concat(shadingCount++); 21996 var colorStops = args[2]; 21997 var gradient; 21998 21999 switch (args[1]) { 22000 case 'axial': 22001 var point0 = args[3]; 22002 var point1 = args[4]; 22003 gradient = this.svgFactory.createElement('svg:linearGradient'); 22004 gradient.setAttributeNS(null, 'id', shadingId); 22005 gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); 22006 gradient.setAttributeNS(null, 'x1', point0[0]); 22007 gradient.setAttributeNS(null, 'y1', point0[1]); 22008 gradient.setAttributeNS(null, 'x2', point1[0]); 22009 gradient.setAttributeNS(null, 'y2', point1[1]); 22010 break; 22011 22012 case 'radial': 22013 var focalPoint = args[3]; 22014 var circlePoint = args[4]; 22015 var focalRadius = args[5]; 22016 var circleRadius = args[6]; 22017 gradient = this.svgFactory.createElement('svg:radialGradient'); 22018 gradient.setAttributeNS(null, 'id', shadingId); 22019 gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); 22020 gradient.setAttributeNS(null, 'cx', circlePoint[0]); 22021 gradient.setAttributeNS(null, 'cy', circlePoint[1]); 22022 gradient.setAttributeNS(null, 'r', circleRadius); 22023 gradient.setAttributeNS(null, 'fx', focalPoint[0]); 22024 gradient.setAttributeNS(null, 'fy', focalPoint[1]); 22025 gradient.setAttributeNS(null, 'fr', focalRadius); 22026 break; 22027 22028 default: 22029 throw new Error("Unknown RadialAxial type: ".concat(args[1])); 22030 } 22031 22032 var _iteratorNormalCompletion5 = true; 22033 var _didIteratorError5 = false; 22034 var _iteratorError5 = undefined; 22035 22036 try { 22037 for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { 22038 var colorStop = _step5.value; 22039 var stop = this.svgFactory.createElement('svg:stop'); 22040 stop.setAttributeNS(null, 'offset', colorStop[0]); 22041 stop.setAttributeNS(null, 'stop-color', colorStop[1]); 22042 gradient.appendChild(stop); 22043 } 22044 } catch (err) { 22045 _didIteratorError5 = true; 22046 _iteratorError5 = err; 22047 } finally { 22048 try { 22049 if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) { 22050 _iterator5["return"](); 22051 } 22052 } finally { 22053 if (_didIteratorError5) { 22054 throw _iteratorError5; 22055 } 22056 } 22057 } 22058 22059 this.defs.appendChild(gradient); 22060 return "url(#".concat(shadingId, ")"); 22061 22062 case 'Mesh': 22063 (0, _util.warn)('Unimplemented pattern Mesh'); 22064 return null; 22065 22066 case 'Dummy': 22067 return 'hotpink'; 22068 22069 default: 22070 throw new Error("Unknown IR type: ".concat(args[0])); 22071 } 22072 } 22073 }, { 22074 key: "setDash", 22075 value: function setDash(dashArray, dashPhase) { 22076 this.current.dashArray = dashArray; 22077 this.current.dashPhase = dashPhase; 22078 } 22079 }, { 22080 key: "constructPath", 22081 value: function constructPath(ops, args) { 22082 var current = this.current; 22083 var x = current.x, 22084 y = current.y; 22085 var d = []; 22086 var j = 0; 22087 var _iteratorNormalCompletion6 = true; 22088 var _didIteratorError6 = false; 22089 var _iteratorError6 = undefined; 22090 22091 try { 22092 for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { 22093 var op = _step6.value; 22094 22095 switch (op | 0) { 22096 case _util.OPS.rectangle: 22097 x = args[j++]; 22098 y = args[j++]; 22099 var width = args[j++]; 22100 var height = args[j++]; 22101 var xw = x + width; 22102 var yh = y + height; 22103 d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); 22104 break; 22105 22106 case _util.OPS.moveTo: 22107 x = args[j++]; 22108 y = args[j++]; 22109 d.push('M', pf(x), pf(y)); 22110 break; 22111 22112 case _util.OPS.lineTo: 22113 x = args[j++]; 22114 y = args[j++]; 22115 d.push('L', pf(x), pf(y)); 22116 break; 22117 22118 case _util.OPS.curveTo: 22119 x = args[j + 4]; 22120 y = args[j + 5]; 22121 d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); 22122 j += 6; 22123 break; 22124 22125 case _util.OPS.curveTo2: 22126 x = args[j + 2]; 22127 y = args[j + 3]; 22128 d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); 22129 j += 4; 22130 break; 22131 22132 case _util.OPS.curveTo3: 22133 x = args[j + 2]; 22134 y = args[j + 3]; 22135 d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); 22136 j += 4; 22137 break; 22138 22139 case _util.OPS.closePath: 22140 d.push('Z'); 22141 break; 22142 } 22143 } 22144 } catch (err) { 22145 _didIteratorError6 = true; 22146 _iteratorError6 = err; 22147 } finally { 22148 try { 22149 if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) { 22150 _iterator6["return"](); 22151 } 22152 } finally { 22153 if (_didIteratorError6) { 22154 throw _iteratorError6; 22155 } 22156 } 22157 } 22158 22159 d = d.join(' '); 22160 22161 if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { 22162 d = current.path.getAttributeNS(null, 'd') + d; 22163 } else { 22164 current.path = this.svgFactory.createElement('svg:path'); 22165 22166 this._ensureTransformGroup().appendChild(current.path); 22167 } 22168 22169 current.path.setAttributeNS(null, 'd', d); 22170 current.path.setAttributeNS(null, 'fill', 'none'); 22171 current.element = current.path; 22172 current.setCurrentPoint(x, y); 22173 } 22174 }, { 22175 key: "endPath", 22176 value: function endPath() { 22177 var current = this.current; 22178 current.path = null; 22179 22180 if (!this.pendingClip) { 22181 return; 22182 } 22183 22184 if (!current.element) { 22185 this.pendingClip = null; 22186 return; 22187 } 22188 22189 var clipId = "clippath".concat(clipCount++); 22190 var clipPath = this.svgFactory.createElement('svg:clipPath'); 22191 clipPath.setAttributeNS(null, 'id', clipId); 22192 clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 22193 var clipElement = current.element.cloneNode(true); 22194 22195 if (this.pendingClip === 'evenodd') { 22196 clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); 22197 } else { 22198 clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); 22199 } 22200 22201 this.pendingClip = null; 22202 clipPath.appendChild(clipElement); 22203 this.defs.appendChild(clipPath); 22204 22205 if (current.activeClipUrl) { 22206 current.clipGroup = null; 22207 this.extraStack.forEach(function (prev) { 22208 prev.clipGroup = null; 22209 }); 22210 clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); 22211 } 22212 22213 current.activeClipUrl = "url(#".concat(clipId, ")"); 22214 this.tgrp = null; 22215 } 22216 }, { 22217 key: "clip", 22218 value: function clip(type) { 22219 this.pendingClip = type; 22220 } 22221 }, { 22222 key: "closePath", 22223 value: function closePath() { 22224 var current = this.current; 22225 22226 if (current.path) { 22227 var d = "".concat(current.path.getAttributeNS(null, 'd'), "Z"); 22228 current.path.setAttributeNS(null, 'd', d); 22229 } 22230 } 22231 }, { 22232 key: "setLeading", 22233 value: function setLeading(leading) { 22234 this.current.leading = -leading; 22235 } 22236 }, { 22237 key: "setTextRise", 22238 value: function setTextRise(textRise) { 22239 this.current.textRise = textRise; 22240 } 22241 }, { 22242 key: "setTextRenderingMode", 22243 value: function setTextRenderingMode(textRenderingMode) { 22244 this.current.textRenderingMode = textRenderingMode; 22245 } 22246 }, { 22247 key: "setHScale", 22248 value: function setHScale(scale) { 22249 this.current.textHScale = scale / 100; 22250 } 22251 }, { 22252 key: "setRenderingIntent", 22253 value: function setRenderingIntent(intent) {} 22254 }, { 22255 key: "setFlatness", 22256 value: function setFlatness(flatness) {} 22257 }, { 22258 key: "setGState", 22259 value: function setGState(states) { 22260 var _iteratorNormalCompletion7 = true; 22261 var _didIteratorError7 = false; 22262 var _iteratorError7 = undefined; 22263 22264 try { 22265 for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { 22266 var _step7$value = _slicedToArray(_step7.value, 2), 22267 key = _step7$value[0], 22268 value = _step7$value[1]; 22269 22270 switch (key) { 22271 case 'LW': 22272 this.setLineWidth(value); 22273 break; 22274 22275 case 'LC': 22276 this.setLineCap(value); 22277 break; 22278 22279 case 'LJ': 22280 this.setLineJoin(value); 22281 break; 22282 22283 case 'ML': 22284 this.setMiterLimit(value); 22285 break; 22286 22287 case 'D': 22288 this.setDash(value[0], value[1]); 22289 break; 22290 22291 case 'RI': 22292 this.setRenderingIntent(value); 22293 break; 22294 22295 case 'FL': 22296 this.setFlatness(value); 22297 break; 22298 22299 case 'Font': 22300 this.setFont(value); 22301 break; 22302 22303 case 'CA': 22304 this.setStrokeAlpha(value); 22305 break; 22306 22307 case 'ca': 22308 this.setFillAlpha(value); 22309 break; 22310 22311 default: 22312 (0, _util.warn)("Unimplemented graphic state operator ".concat(key)); 22313 break; 22314 } 22315 } 22316 } catch (err) { 22317 _didIteratorError7 = true; 22318 _iteratorError7 = err; 22319 } finally { 22320 try { 22321 if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) { 22322 _iterator7["return"](); 22323 } 22324 } finally { 22325 if (_didIteratorError7) { 22326 throw _iteratorError7; 22327 } 22328 } 22329 } 22330 } 22331 }, { 22332 key: "fill", 22333 value: function fill() { 22334 var current = this.current; 22335 22336 if (current.element) { 22337 current.element.setAttributeNS(null, 'fill', current.fillColor); 22338 current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 22339 this.endPath(); 22340 } 22341 } 22342 }, { 22343 key: "stroke", 22344 value: function stroke() { 22345 var current = this.current; 22346 22347 if (current.element) { 22348 this._setStrokeAttributes(current.element); 22349 22350 current.element.setAttributeNS(null, 'fill', 'none'); 22351 this.endPath(); 22352 } 22353 } 22354 }, { 22355 key: "_setStrokeAttributes", 22356 value: function _setStrokeAttributes(element) { 22357 var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; 22358 var current = this.current; 22359 var dashArray = current.dashArray; 22360 22361 if (lineWidthScale !== 1 && dashArray.length > 0) { 22362 dashArray = dashArray.map(function (value) { 22363 return lineWidthScale * value; 22364 }); 22365 } 22366 22367 element.setAttributeNS(null, 'stroke', current.strokeColor); 22368 element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); 22369 element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); 22370 element.setAttributeNS(null, 'stroke-linecap', current.lineCap); 22371 element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); 22372 element.setAttributeNS(null, 'stroke-width', pf(lineWidthScale * current.lineWidth) + 'px'); 22373 element.setAttributeNS(null, 'stroke-dasharray', dashArray.map(pf).join(' ')); 22374 element.setAttributeNS(null, 'stroke-dashoffset', pf(lineWidthScale * current.dashPhase) + 'px'); 22375 } 22376 }, { 22377 key: "eoFill", 22378 value: function eoFill() { 22379 if (this.current.element) { 22380 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 22381 } 22382 22383 this.fill(); 22384 } 22385 }, { 22386 key: "fillStroke", 22387 value: function fillStroke() { 22388 this.stroke(); 22389 this.fill(); 22390 } 22391 }, { 22392 key: "eoFillStroke", 22393 value: function eoFillStroke() { 22394 if (this.current.element) { 22395 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 22396 } 22397 22398 this.fillStroke(); 22399 } 22400 }, { 22401 key: "closeStroke", 22402 value: function closeStroke() { 22403 this.closePath(); 22404 this.stroke(); 22405 } 22406 }, { 22407 key: "closeFillStroke", 22408 value: function closeFillStroke() { 22409 this.closePath(); 22410 this.fillStroke(); 22411 } 22412 }, { 22413 key: "closeEOFillStroke", 22414 value: function closeEOFillStroke() { 22415 this.closePath(); 22416 this.eoFillStroke(); 22417 } 22418 }, { 22419 key: "paintSolidColorImageMask", 22420 value: function paintSolidColorImageMask() { 22421 var rect = this.svgFactory.createElement('svg:rect'); 22422 rect.setAttributeNS(null, 'x', '0'); 22423 rect.setAttributeNS(null, 'y', '0'); 22424 rect.setAttributeNS(null, 'width', '1px'); 22425 rect.setAttributeNS(null, 'height', '1px'); 22426 rect.setAttributeNS(null, 'fill', this.current.fillColor); 22427 22428 this._ensureTransformGroup().appendChild(rect); 22429 } 22430 }, { 22431 key: "paintJpegXObject", 22432 value: function paintJpegXObject(objId, w, h) { 22433 var imgObj = this.objs.get(objId); 22434 var imgEl = this.svgFactory.createElement('svg:image'); 22435 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); 22436 imgEl.setAttributeNS(null, 'width', pf(w)); 22437 imgEl.setAttributeNS(null, 'height', pf(h)); 22438 imgEl.setAttributeNS(null, 'x', '0'); 22439 imgEl.setAttributeNS(null, 'y', pf(-h)); 22440 imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")")); 22441 22442 this._ensureTransformGroup().appendChild(imgEl); 22443 } 22444 }, { 22445 key: "paintImageXObject", 22446 value: function paintImageXObject(objId) { 22447 var imgData = this.objs.get(objId); 22448 22449 if (!imgData) { 22450 (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet")); 22451 return; 22452 } 22453 22454 this.paintInlineImageXObject(imgData); 22455 } 22456 }, { 22457 key: "paintInlineImageXObject", 22458 value: function paintInlineImageXObject(imgData, mask) { 22459 var width = imgData.width; 22460 var height = imgData.height; 22461 var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); 22462 var cliprect = this.svgFactory.createElement('svg:rect'); 22463 cliprect.setAttributeNS(null, 'x', '0'); 22464 cliprect.setAttributeNS(null, 'y', '0'); 22465 cliprect.setAttributeNS(null, 'width', pf(width)); 22466 cliprect.setAttributeNS(null, 'height', pf(height)); 22467 this.current.element = cliprect; 22468 this.clip('nonzero'); 22469 var imgEl = this.svgFactory.createElement('svg:image'); 22470 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); 22471 imgEl.setAttributeNS(null, 'x', '0'); 22472 imgEl.setAttributeNS(null, 'y', pf(-height)); 22473 imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); 22474 imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); 22475 imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")")); 22476 22477 if (mask) { 22478 mask.appendChild(imgEl); 22479 } else { 22480 this._ensureTransformGroup().appendChild(imgEl); 22481 } 22482 } 22483 }, { 22484 key: "paintImageMaskXObject", 22485 value: function paintImageMaskXObject(imgData) { 22486 var current = this.current; 22487 var width = imgData.width; 22488 var height = imgData.height; 22489 var fillColor = current.fillColor; 22490 current.maskId = "mask".concat(maskCount++); 22491 var mask = this.svgFactory.createElement('svg:mask'); 22492 mask.setAttributeNS(null, 'id', current.maskId); 22493 var rect = this.svgFactory.createElement('svg:rect'); 22494 rect.setAttributeNS(null, 'x', '0'); 22495 rect.setAttributeNS(null, 'y', '0'); 22496 rect.setAttributeNS(null, 'width', pf(width)); 22497 rect.setAttributeNS(null, 'height', pf(height)); 22498 rect.setAttributeNS(null, 'fill', fillColor); 22499 rect.setAttributeNS(null, 'mask', "url(#".concat(current.maskId, ")")); 22500 this.defs.appendChild(mask); 22501 22502 this._ensureTransformGroup().appendChild(rect); 22503 22504 this.paintInlineImageXObject(imgData, mask); 22505 } 22506 }, { 22507 key: "paintFormXObjectBegin", 22508 value: function paintFormXObjectBegin(matrix, bbox) { 22509 if (Array.isArray(matrix) && matrix.length === 6) { 22510 this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); 22511 } 22512 22513 if (bbox) { 22514 var width = bbox[2] - bbox[0]; 22515 var height = bbox[3] - bbox[1]; 22516 var cliprect = this.svgFactory.createElement('svg:rect'); 22517 cliprect.setAttributeNS(null, 'x', bbox[0]); 22518 cliprect.setAttributeNS(null, 'y', bbox[1]); 22519 cliprect.setAttributeNS(null, 'width', pf(width)); 22520 cliprect.setAttributeNS(null, 'height', pf(height)); 22521 this.current.element = cliprect; 22522 this.clip('nonzero'); 22523 this.endPath(); 22524 } 22525 } 22526 }, { 22527 key: "paintFormXObjectEnd", 22528 value: function paintFormXObjectEnd() {} 22529 }, { 22530 key: "_initialize", 22531 value: function _initialize(viewport) { 22532 var svg = this.svgFactory.create(viewport.width, viewport.height); 22533 var definitions = this.svgFactory.createElement('svg:defs'); 22534 svg.appendChild(definitions); 22535 this.defs = definitions; 22536 var rootGroup = this.svgFactory.createElement('svg:g'); 22537 rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); 22538 svg.appendChild(rootGroup); 22539 this.svg = rootGroup; 22540 return svg; 22541 } 22542 }, { 22543 key: "_ensureClipGroup", 22544 value: function _ensureClipGroup() { 22545 if (!this.current.clipGroup) { 22546 var clipGroup = this.svgFactory.createElement('svg:g'); 22547 clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); 22548 this.svg.appendChild(clipGroup); 22549 this.current.clipGroup = clipGroup; 22550 } 22551 22552 return this.current.clipGroup; 22553 } 22554 }, { 22555 key: "_ensureTransformGroup", 22556 value: function _ensureTransformGroup() { 22557 if (!this.tgrp) { 22558 this.tgrp = this.svgFactory.createElement('svg:g'); 22559 this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 22560 22561 if (this.current.activeClipUrl) { 22562 this._ensureClipGroup().appendChild(this.tgrp); 22563 } else { 22564 this.svg.appendChild(this.tgrp); 22565 } 22566 } 22567 22568 return this.tgrp; 22569 } 22570 }]); 22571 22572 return SVGGraphics; 22573 }(); 22574} 22575 22576/***/ }), 22577/* 165 */ 22578/***/ (function(module, exports, __w_pdfjs_require__) { 22579 22580"use strict"; 22581 22582 22583Object.defineProperty(exports, "__esModule", { 22584 value: true 22585}); 22586exports.PDFNodeStream = void 0; 22587 22588var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 22589 22590var _util = __w_pdfjs_require__(1); 22591 22592var _network_utils = __w_pdfjs_require__(166); 22593 22594function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 22595 22596function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } 22597 22598function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 22599 22600function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 22601 22602function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 22603 22604function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } 22605 22606function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 22607 22608function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 22609 22610function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 22611 22612function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 22613 22614function _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); } } 22615 22616function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 22617 22618var fs = require('fs'); 22619 22620var http = require('http'); 22621 22622var https = require('https'); 22623 22624var url = require('url'); 22625 22626var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; 22627 22628function parseUrl(sourceUrl) { 22629 var parsedUrl = url.parse(sourceUrl); 22630 22631 if (parsedUrl.protocol === 'file:' || parsedUrl.host) { 22632 return parsedUrl; 22633 } 22634 22635 if (/^[a-z]:[/\\]/i.test(sourceUrl)) { 22636 return url.parse("file:///".concat(sourceUrl)); 22637 } 22638 22639 if (!parsedUrl.host) { 22640 parsedUrl.protocol = 'file:'; 22641 } 22642 22643 return parsedUrl; 22644} 22645 22646var PDFNodeStream = 22647/*#__PURE__*/ 22648function () { 22649 function PDFNodeStream(source) { 22650 _classCallCheck(this, PDFNodeStream); 22651 22652 this.source = source; 22653 this.url = parseUrl(source.url); 22654 this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; 22655 this.isFsUrl = this.url.protocol === 'file:'; 22656 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 22657 this._fullRequestReader = null; 22658 this._rangeRequestReaders = []; 22659 } 22660 22661 _createClass(PDFNodeStream, [{ 22662 key: "getFullReader", 22663 value: function getFullReader() { 22664 (0, _util.assert)(!this._fullRequestReader); 22665 this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); 22666 return this._fullRequestReader; 22667 } 22668 }, { 22669 key: "getRangeReader", 22670 value: function getRangeReader(start, end) { 22671 if (end <= this._progressiveDataLength) { 22672 return null; 22673 } 22674 22675 var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); 22676 22677 this._rangeRequestReaders.push(rangeReader); 22678 22679 return rangeReader; 22680 } 22681 }, { 22682 key: "cancelAllRequests", 22683 value: function cancelAllRequests(reason) { 22684 if (this._fullRequestReader) { 22685 this._fullRequestReader.cancel(reason); 22686 } 22687 22688 var readers = this._rangeRequestReaders.slice(0); 22689 22690 readers.forEach(function (reader) { 22691 reader.cancel(reason); 22692 }); 22693 } 22694 }, { 22695 key: "_progressiveDataLength", 22696 get: function get() { 22697 return this._fullRequestReader ? this._fullRequestReader._loaded : 0; 22698 } 22699 }]); 22700 22701 return PDFNodeStream; 22702}(); 22703 22704exports.PDFNodeStream = PDFNodeStream; 22705 22706var BaseFullReader = 22707/*#__PURE__*/ 22708function () { 22709 function BaseFullReader(stream) { 22710 _classCallCheck(this, BaseFullReader); 22711 22712 this._url = stream.url; 22713 this._done = false; 22714 this._storedError = null; 22715 this.onProgress = null; 22716 var source = stream.source; 22717 this._contentLength = source.length; 22718 this._loaded = 0; 22719 this._filename = null; 22720 this._disableRange = source.disableRange || false; 22721 this._rangeChunkSize = source.rangeChunkSize; 22722 22723 if (!this._rangeChunkSize && !this._disableRange) { 22724 this._disableRange = true; 22725 } 22726 22727 this._isStreamingSupported = !source.disableStream; 22728 this._isRangeSupported = !source.disableRange; 22729 this._readableStream = null; 22730 this._readCapability = (0, _util.createPromiseCapability)(); 22731 this._headersCapability = (0, _util.createPromiseCapability)(); 22732 } 22733 22734 _createClass(BaseFullReader, [{ 22735 key: "read", 22736 value: function () { 22737 var _read = _asyncToGenerator( 22738 /*#__PURE__*/ 22739 _regenerator["default"].mark(function _callee() { 22740 var chunk, buffer; 22741 return _regenerator["default"].wrap(function _callee$(_context) { 22742 while (1) { 22743 switch (_context.prev = _context.next) { 22744 case 0: 22745 _context.next = 2; 22746 return this._readCapability.promise; 22747 22748 case 2: 22749 if (!this._done) { 22750 _context.next = 4; 22751 break; 22752 } 22753 22754 return _context.abrupt("return", { 22755 value: undefined, 22756 done: true 22757 }); 22758 22759 case 4: 22760 if (!this._storedError) { 22761 _context.next = 6; 22762 break; 22763 } 22764 22765 throw this._storedError; 22766 22767 case 6: 22768 chunk = this._readableStream.read(); 22769 22770 if (!(chunk === null)) { 22771 _context.next = 10; 22772 break; 22773 } 22774 22775 this._readCapability = (0, _util.createPromiseCapability)(); 22776 return _context.abrupt("return", this.read()); 22777 22778 case 10: 22779 this._loaded += chunk.length; 22780 22781 if (this.onProgress) { 22782 this.onProgress({ 22783 loaded: this._loaded, 22784 total: this._contentLength 22785 }); 22786 } 22787 22788 buffer = new Uint8Array(chunk).buffer; 22789 return _context.abrupt("return", { 22790 value: buffer, 22791 done: false 22792 }); 22793 22794 case 14: 22795 case "end": 22796 return _context.stop(); 22797 } 22798 } 22799 }, _callee, this); 22800 })); 22801 22802 function read() { 22803 return _read.apply(this, arguments); 22804 } 22805 22806 return read; 22807 }() 22808 }, { 22809 key: "cancel", 22810 value: function cancel(reason) { 22811 if (!this._readableStream) { 22812 this._error(reason); 22813 22814 return; 22815 } 22816 22817 this._readableStream.destroy(reason); 22818 } 22819 }, { 22820 key: "_error", 22821 value: function _error(reason) { 22822 this._storedError = reason; 22823 22824 this._readCapability.resolve(); 22825 } 22826 }, { 22827 key: "_setReadableStream", 22828 value: function _setReadableStream(readableStream) { 22829 var _this = this; 22830 22831 this._readableStream = readableStream; 22832 readableStream.on('readable', function () { 22833 _this._readCapability.resolve(); 22834 }); 22835 readableStream.on('end', function () { 22836 readableStream.destroy(); 22837 _this._done = true; 22838 22839 _this._readCapability.resolve(); 22840 }); 22841 readableStream.on('error', function (reason) { 22842 _this._error(reason); 22843 }); 22844 22845 if (!this._isStreamingSupported && this._isRangeSupported) { 22846 this._error(new _util.AbortException('streaming is disabled')); 22847 } 22848 22849 if (this._storedError) { 22850 this._readableStream.destroy(this._storedError); 22851 } 22852 } 22853 }, { 22854 key: "headersReady", 22855 get: function get() { 22856 return this._headersCapability.promise; 22857 } 22858 }, { 22859 key: "filename", 22860 get: function get() { 22861 return this._filename; 22862 } 22863 }, { 22864 key: "contentLength", 22865 get: function get() { 22866 return this._contentLength; 22867 } 22868 }, { 22869 key: "isRangeSupported", 22870 get: function get() { 22871 return this._isRangeSupported; 22872 } 22873 }, { 22874 key: "isStreamingSupported", 22875 get: function get() { 22876 return this._isStreamingSupported; 22877 } 22878 }]); 22879 22880 return BaseFullReader; 22881}(); 22882 22883var BaseRangeReader = 22884/*#__PURE__*/ 22885function () { 22886 function BaseRangeReader(stream) { 22887 _classCallCheck(this, BaseRangeReader); 22888 22889 this._url = stream.url; 22890 this._done = false; 22891 this._storedError = null; 22892 this.onProgress = null; 22893 this._loaded = 0; 22894 this._readableStream = null; 22895 this._readCapability = (0, _util.createPromiseCapability)(); 22896 var source = stream.source; 22897 this._isStreamingSupported = !source.disableStream; 22898 } 22899 22900 _createClass(BaseRangeReader, [{ 22901 key: "read", 22902 value: function () { 22903 var _read2 = _asyncToGenerator( 22904 /*#__PURE__*/ 22905 _regenerator["default"].mark(function _callee2() { 22906 var chunk, buffer; 22907 return _regenerator["default"].wrap(function _callee2$(_context2) { 22908 while (1) { 22909 switch (_context2.prev = _context2.next) { 22910 case 0: 22911 _context2.next = 2; 22912 return this._readCapability.promise; 22913 22914 case 2: 22915 if (!this._done) { 22916 _context2.next = 4; 22917 break; 22918 } 22919 22920 return _context2.abrupt("return", { 22921 value: undefined, 22922 done: true 22923 }); 22924 22925 case 4: 22926 if (!this._storedError) { 22927 _context2.next = 6; 22928 break; 22929 } 22930 22931 throw this._storedError; 22932 22933 case 6: 22934 chunk = this._readableStream.read(); 22935 22936 if (!(chunk === null)) { 22937 _context2.next = 10; 22938 break; 22939 } 22940 22941 this._readCapability = (0, _util.createPromiseCapability)(); 22942 return _context2.abrupt("return", this.read()); 22943 22944 case 10: 22945 this._loaded += chunk.length; 22946 22947 if (this.onProgress) { 22948 this.onProgress({ 22949 loaded: this._loaded 22950 }); 22951 } 22952 22953 buffer = new Uint8Array(chunk).buffer; 22954 return _context2.abrupt("return", { 22955 value: buffer, 22956 done: false 22957 }); 22958 22959 case 14: 22960 case "end": 22961 return _context2.stop(); 22962 } 22963 } 22964 }, _callee2, this); 22965 })); 22966 22967 function read() { 22968 return _read2.apply(this, arguments); 22969 } 22970 22971 return read; 22972 }() 22973 }, { 22974 key: "cancel", 22975 value: function cancel(reason) { 22976 if (!this._readableStream) { 22977 this._error(reason); 22978 22979 return; 22980 } 22981 22982 this._readableStream.destroy(reason); 22983 } 22984 }, { 22985 key: "_error", 22986 value: function _error(reason) { 22987 this._storedError = reason; 22988 22989 this._readCapability.resolve(); 22990 } 22991 }, { 22992 key: "_setReadableStream", 22993 value: function _setReadableStream(readableStream) { 22994 var _this2 = this; 22995 22996 this._readableStream = readableStream; 22997 readableStream.on('readable', function () { 22998 _this2._readCapability.resolve(); 22999 }); 23000 readableStream.on('end', function () { 23001 readableStream.destroy(); 23002 _this2._done = true; 23003 23004 _this2._readCapability.resolve(); 23005 }); 23006 readableStream.on('error', function (reason) { 23007 _this2._error(reason); 23008 }); 23009 23010 if (this._storedError) { 23011 this._readableStream.destroy(this._storedError); 23012 } 23013 } 23014 }, { 23015 key: "isStreamingSupported", 23016 get: function get() { 23017 return this._isStreamingSupported; 23018 } 23019 }]); 23020 23021 return BaseRangeReader; 23022}(); 23023 23024function createRequestOptions(url, headers) { 23025 return { 23026 protocol: url.protocol, 23027 auth: url.auth, 23028 host: url.hostname, 23029 port: url.port, 23030 path: url.path, 23031 method: 'GET', 23032 headers: headers 23033 }; 23034} 23035 23036var PDFNodeStreamFullReader = 23037/*#__PURE__*/ 23038function (_BaseFullReader) { 23039 _inherits(PDFNodeStreamFullReader, _BaseFullReader); 23040 23041 function PDFNodeStreamFullReader(stream) { 23042 var _this3; 23043 23044 _classCallCheck(this, PDFNodeStreamFullReader); 23045 23046 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream)); 23047 23048 var handleResponse = function handleResponse(response) { 23049 if (response.statusCode === 404) { 23050 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); 23051 _this3._storedError = error; 23052 23053 _this3._headersCapability.reject(error); 23054 23055 return; 23056 } 23057 23058 _this3._headersCapability.resolve(); 23059 23060 _this3._setReadableStream(response); 23061 23062 var getResponseHeader = function getResponseHeader(name) { 23063 return _this3._readableStream.headers[name.toLowerCase()]; 23064 }; 23065 23066 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 23067 getResponseHeader: getResponseHeader, 23068 isHttp: stream.isHttp, 23069 rangeChunkSize: _this3._rangeChunkSize, 23070 disableRange: _this3._disableRange 23071 }), 23072 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 23073 suggestedLength = _validateRangeRequest.suggestedLength; 23074 23075 _this3._isRangeSupported = allowRangeRequests; 23076 _this3._contentLength = suggestedLength || _this3._contentLength; 23077 _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 23078 }; 23079 23080 _this3._request = null; 23081 23082 if (_this3._url.protocol === 'http:') { 23083 _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 23084 } else { 23085 _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 23086 } 23087 23088 _this3._request.on('error', function (reason) { 23089 _this3._storedError = reason; 23090 23091 _this3._headersCapability.reject(reason); 23092 }); 23093 23094 _this3._request.end(); 23095 23096 return _this3; 23097 } 23098 23099 return PDFNodeStreamFullReader; 23100}(BaseFullReader); 23101 23102var PDFNodeStreamRangeReader = 23103/*#__PURE__*/ 23104function (_BaseRangeReader) { 23105 _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); 23106 23107 function PDFNodeStreamRangeReader(stream, start, end) { 23108 var _this4; 23109 23110 _classCallCheck(this, PDFNodeStreamRangeReader); 23111 23112 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream)); 23113 _this4._httpHeaders = {}; 23114 23115 for (var property in stream.httpHeaders) { 23116 var value = stream.httpHeaders[property]; 23117 23118 if (typeof value === 'undefined') { 23119 continue; 23120 } 23121 23122 _this4._httpHeaders[property] = value; 23123 } 23124 23125 _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1); 23126 23127 var handleResponse = function handleResponse(response) { 23128 if (response.statusCode === 404) { 23129 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); 23130 _this4._storedError = error; 23131 return; 23132 } 23133 23134 _this4._setReadableStream(response); 23135 }; 23136 23137 _this4._request = null; 23138 23139 if (_this4._url.protocol === 'http:') { 23140 _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 23141 } else { 23142 _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 23143 } 23144 23145 _this4._request.on('error', function (reason) { 23146 _this4._storedError = reason; 23147 }); 23148 23149 _this4._request.end(); 23150 23151 return _this4; 23152 } 23153 23154 return PDFNodeStreamRangeReader; 23155}(BaseRangeReader); 23156 23157var PDFNodeStreamFsFullReader = 23158/*#__PURE__*/ 23159function (_BaseFullReader2) { 23160 _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); 23161 23162 function PDFNodeStreamFsFullReader(stream) { 23163 var _this5; 23164 23165 _classCallCheck(this, PDFNodeStreamFsFullReader); 23166 23167 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream)); 23168 var path = decodeURIComponent(_this5._url.path); 23169 23170 if (fileUriRegex.test(_this5._url.href)) { 23171 path = path.replace(/^\//, ''); 23172 } 23173 23174 fs.lstat(path, function (error, stat) { 23175 if (error) { 23176 if (error.code === 'ENOENT') { 23177 error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); 23178 } 23179 23180 _this5._storedError = error; 23181 23182 _this5._headersCapability.reject(error); 23183 23184 return; 23185 } 23186 23187 _this5._contentLength = stat.size; 23188 23189 _this5._setReadableStream(fs.createReadStream(path)); 23190 23191 _this5._headersCapability.resolve(); 23192 }); 23193 return _this5; 23194 } 23195 23196 return PDFNodeStreamFsFullReader; 23197}(BaseFullReader); 23198 23199var PDFNodeStreamFsRangeReader = 23200/*#__PURE__*/ 23201function (_BaseRangeReader2) { 23202 _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); 23203 23204 function PDFNodeStreamFsRangeReader(stream, start, end) { 23205 var _this6; 23206 23207 _classCallCheck(this, PDFNodeStreamFsRangeReader); 23208 23209 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream)); 23210 var path = decodeURIComponent(_this6._url.path); 23211 23212 if (fileUriRegex.test(_this6._url.href)) { 23213 path = path.replace(/^\//, ''); 23214 } 23215 23216 _this6._setReadableStream(fs.createReadStream(path, { 23217 start: start, 23218 end: end - 1 23219 })); 23220 23221 return _this6; 23222 } 23223 23224 return PDFNodeStreamFsRangeReader; 23225}(BaseRangeReader); 23226 23227/***/ }), 23228/* 166 */ 23229/***/ (function(module, exports, __w_pdfjs_require__) { 23230 23231"use strict"; 23232 23233 23234Object.defineProperty(exports, "__esModule", { 23235 value: true 23236}); 23237exports.createResponseStatusError = createResponseStatusError; 23238exports.extractFilenameFromHeader = extractFilenameFromHeader; 23239exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; 23240exports.validateResponseStatus = validateResponseStatus; 23241 23242var _util = __w_pdfjs_require__(1); 23243 23244var _content_disposition = __w_pdfjs_require__(167); 23245 23246function validateRangeRequestCapabilities(_ref) { 23247 var getResponseHeader = _ref.getResponseHeader, 23248 isHttp = _ref.isHttp, 23249 rangeChunkSize = _ref.rangeChunkSize, 23250 disableRange = _ref.disableRange; 23251 (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); 23252 var returnValues = { 23253 allowRangeRequests: false, 23254 suggestedLength: undefined 23255 }; 23256 var length = parseInt(getResponseHeader('Content-Length'), 10); 23257 23258 if (!Number.isInteger(length)) { 23259 return returnValues; 23260 } 23261 23262 returnValues.suggestedLength = length; 23263 23264 if (length <= 2 * rangeChunkSize) { 23265 return returnValues; 23266 } 23267 23268 if (disableRange || !isHttp) { 23269 return returnValues; 23270 } 23271 23272 if (getResponseHeader('Accept-Ranges') !== 'bytes') { 23273 return returnValues; 23274 } 23275 23276 var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; 23277 23278 if (contentEncoding !== 'identity') { 23279 return returnValues; 23280 } 23281 23282 returnValues.allowRangeRequests = true; 23283 return returnValues; 23284} 23285 23286function extractFilenameFromHeader(getResponseHeader) { 23287 var contentDisposition = getResponseHeader('Content-Disposition'); 23288 23289 if (contentDisposition) { 23290 var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); 23291 23292 if (/\.pdf$/i.test(filename)) { 23293 return filename; 23294 } 23295 } 23296 23297 return null; 23298} 23299 23300function createResponseStatusError(status, url) { 23301 if (status === 404 || status === 0 && /^file:/.test(url)) { 23302 return new _util.MissingPDFException('Missing PDF "' + url + '".'); 23303 } 23304 23305 return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); 23306} 23307 23308function validateResponseStatus(status) { 23309 return status === 200 || status === 206; 23310} 23311 23312/***/ }), 23313/* 167 */ 23314/***/ (function(module, exports, __w_pdfjs_require__) { 23315 23316"use strict"; 23317 23318 23319Object.defineProperty(exports, "__esModule", { 23320 value: true 23321}); 23322exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; 23323 23324function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 23325 23326function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 23327 23328function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } 23329 23330function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 23331 23332function getFilenameFromContentDispositionHeader(contentDisposition) { 23333 var needsEncodingFixup = true; 23334 var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); 23335 23336 if (tmp) { 23337 tmp = tmp[1]; 23338 var filename = rfc2616unquote(tmp); 23339 filename = unescape(filename); 23340 filename = rfc5987decode(filename); 23341 filename = rfc2047decode(filename); 23342 return fixupEncoding(filename); 23343 } 23344 23345 tmp = rfc2231getparam(contentDisposition); 23346 23347 if (tmp) { 23348 var _filename = rfc2047decode(tmp); 23349 23350 return fixupEncoding(_filename); 23351 } 23352 23353 tmp = toParamRegExp('filename', 'i').exec(contentDisposition); 23354 23355 if (tmp) { 23356 tmp = tmp[1]; 23357 23358 var _filename2 = rfc2616unquote(tmp); 23359 23360 _filename2 = rfc2047decode(_filename2); 23361 return fixupEncoding(_filename2); 23362 } 23363 23364 function toParamRegExp(attributePattern, flags) { 23365 return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); 23366 } 23367 23368 function textdecode(encoding, value) { 23369 if (encoding) { 23370 if (!/^[\x00-\xFF]+$/.test(value)) { 23371 return value; 23372 } 23373 23374 try { 23375 var decoder = new TextDecoder(encoding, { 23376 fatal: true 23377 }); 23378 var bytes = Array.from(value, function (ch) { 23379 return ch.charCodeAt(0) & 0xFF; 23380 }); 23381 value = decoder.decode(new Uint8Array(bytes)); 23382 needsEncodingFixup = false; 23383 } catch (e) { 23384 if (/^utf-?8$/i.test(encoding)) { 23385 try { 23386 value = decodeURIComponent(escape(value)); 23387 needsEncodingFixup = false; 23388 } catch (err) {} 23389 } 23390 } 23391 } 23392 23393 return value; 23394 } 23395 23396 function fixupEncoding(value) { 23397 if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { 23398 value = textdecode('utf-8', value); 23399 23400 if (needsEncodingFixup) { 23401 value = textdecode('iso-8859-1', value); 23402 } 23403 } 23404 23405 return value; 23406 } 23407 23408 function rfc2231getparam(contentDisposition) { 23409 var matches = [], 23410 match; 23411 var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); 23412 23413 while ((match = iter.exec(contentDisposition)) !== null) { 23414 var _match = match, 23415 _match2 = _slicedToArray(_match, 4), 23416 n = _match2[1], 23417 quot = _match2[2], 23418 part = _match2[3]; 23419 23420 n = parseInt(n, 10); 23421 23422 if (n in matches) { 23423 if (n === 0) { 23424 break; 23425 } 23426 23427 continue; 23428 } 23429 23430 matches[n] = [quot, part]; 23431 } 23432 23433 var parts = []; 23434 23435 for (var n = 0; n < matches.length; ++n) { 23436 if (!(n in matches)) { 23437 break; 23438 } 23439 23440 var _matches$n = _slicedToArray(matches[n], 2), 23441 quot = _matches$n[0], 23442 part = _matches$n[1]; 23443 23444 part = rfc2616unquote(part); 23445 23446 if (quot) { 23447 part = unescape(part); 23448 23449 if (n === 0) { 23450 part = rfc5987decode(part); 23451 } 23452 } 23453 23454 parts.push(part); 23455 } 23456 23457 return parts.join(''); 23458 } 23459 23460 function rfc2616unquote(value) { 23461 if (value.startsWith('"')) { 23462 var parts = value.slice(1).split('\\"'); 23463 23464 for (var i = 0; i < parts.length; ++i) { 23465 var quotindex = parts[i].indexOf('"'); 23466 23467 if (quotindex !== -1) { 23468 parts[i] = parts[i].slice(0, quotindex); 23469 parts.length = i + 1; 23470 } 23471 23472 parts[i] = parts[i].replace(/\\(.)/g, '$1'); 23473 } 23474 23475 value = parts.join('"'); 23476 } 23477 23478 return value; 23479 } 23480 23481 function rfc5987decode(extvalue) { 23482 var encodingend = extvalue.indexOf('\''); 23483 23484 if (encodingend === -1) { 23485 return extvalue; 23486 } 23487 23488 var encoding = extvalue.slice(0, encodingend); 23489 var langvalue = extvalue.slice(encodingend + 1); 23490 var value = langvalue.replace(/^[^']*'/, ''); 23491 return textdecode(encoding, value); 23492 } 23493 23494 function rfc2047decode(value) { 23495 if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) { 23496 return value; 23497 } 23498 23499 return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { 23500 if (encoding === 'q' || encoding === 'Q') { 23501 text = text.replace(/_/g, ' '); 23502 text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { 23503 return String.fromCharCode(parseInt(hex, 16)); 23504 }); 23505 return textdecode(charset, text); 23506 } 23507 23508 try { 23509 text = atob(text); 23510 } catch (e) {} 23511 23512 return textdecode(charset, text); 23513 }); 23514 } 23515 23516 return ''; 23517} 23518 23519/***/ }), 23520/* 168 */ 23521/***/ (function(module, exports, __w_pdfjs_require__) { 23522 23523"use strict"; 23524 23525 23526Object.defineProperty(exports, "__esModule", { 23527 value: true 23528}); 23529exports.PDFNetworkStream = void 0; 23530 23531var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 23532 23533var _util = __w_pdfjs_require__(1); 23534 23535var _network_utils = __w_pdfjs_require__(166); 23536 23537function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 23538 23539function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 23540 23541function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 23542 23543function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 23544 23545function _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); } } 23546 23547function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 23548 23549; 23550var OK_RESPONSE = 200; 23551var PARTIAL_CONTENT_RESPONSE = 206; 23552 23553function getArrayBuffer(xhr) { 23554 var data = xhr.response; 23555 23556 if (typeof data !== 'string') { 23557 return data; 23558 } 23559 23560 var array = (0, _util.stringToBytes)(data); 23561 return array.buffer; 23562} 23563 23564var NetworkManager = 23565/*#__PURE__*/ 23566function () { 23567 function NetworkManager(url, args) { 23568 _classCallCheck(this, NetworkManager); 23569 23570 this.url = url; 23571 args = args || {}; 23572 this.isHttp = /^https?:/i.test(url); 23573 this.httpHeaders = this.isHttp && args.httpHeaders || {}; 23574 this.withCredentials = args.withCredentials || false; 23575 23576 this.getXhr = args.getXhr || function NetworkManager_getXhr() { 23577 return new XMLHttpRequest(); 23578 }; 23579 23580 this.currXhrId = 0; 23581 this.pendingRequests = Object.create(null); 23582 } 23583 23584 _createClass(NetworkManager, [{ 23585 key: "requestRange", 23586 value: function requestRange(begin, end, listeners) { 23587 var args = { 23588 begin: begin, 23589 end: end 23590 }; 23591 23592 for (var prop in listeners) { 23593 args[prop] = listeners[prop]; 23594 } 23595 23596 return this.request(args); 23597 } 23598 }, { 23599 key: "requestFull", 23600 value: function requestFull(listeners) { 23601 return this.request(listeners); 23602 } 23603 }, { 23604 key: "request", 23605 value: function request(args) { 23606 var xhr = this.getXhr(); 23607 var xhrId = this.currXhrId++; 23608 var pendingRequest = this.pendingRequests[xhrId] = { 23609 xhr: xhr 23610 }; 23611 xhr.open('GET', this.url); 23612 xhr.withCredentials = this.withCredentials; 23613 23614 for (var property in this.httpHeaders) { 23615 var value = this.httpHeaders[property]; 23616 23617 if (typeof value === 'undefined') { 23618 continue; 23619 } 23620 23621 xhr.setRequestHeader(property, value); 23622 } 23623 23624 if (this.isHttp && 'begin' in args && 'end' in args) { 23625 xhr.setRequestHeader('Range', "bytes=".concat(args.begin, "-").concat(args.end - 1)); 23626 pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; 23627 } else { 23628 pendingRequest.expectedStatus = OK_RESPONSE; 23629 } 23630 23631 xhr.responseType = 'arraybuffer'; 23632 23633 if (args.onError) { 23634 xhr.onerror = function (evt) { 23635 args.onError(xhr.status); 23636 }; 23637 } 23638 23639 xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); 23640 xhr.onprogress = this.onProgress.bind(this, xhrId); 23641 pendingRequest.onHeadersReceived = args.onHeadersReceived; 23642 pendingRequest.onDone = args.onDone; 23643 pendingRequest.onError = args.onError; 23644 pendingRequest.onProgress = args.onProgress; 23645 xhr.send(null); 23646 return xhrId; 23647 } 23648 }, { 23649 key: "onProgress", 23650 value: function onProgress(xhrId, evt) { 23651 var pendingRequest = this.pendingRequests[xhrId]; 23652 23653 if (!pendingRequest) { 23654 return; 23655 } 23656 23657 if (pendingRequest.onProgress) { 23658 pendingRequest.onProgress(evt); 23659 } 23660 } 23661 }, { 23662 key: "onStateChange", 23663 value: function onStateChange(xhrId, evt) { 23664 var pendingRequest = this.pendingRequests[xhrId]; 23665 23666 if (!pendingRequest) { 23667 return; 23668 } 23669 23670 var xhr = pendingRequest.xhr; 23671 23672 if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { 23673 pendingRequest.onHeadersReceived(); 23674 delete pendingRequest.onHeadersReceived; 23675 } 23676 23677 if (xhr.readyState !== 4) { 23678 return; 23679 } 23680 23681 if (!(xhrId in this.pendingRequests)) { 23682 return; 23683 } 23684 23685 delete this.pendingRequests[xhrId]; 23686 23687 if (xhr.status === 0 && this.isHttp) { 23688 if (pendingRequest.onError) { 23689 pendingRequest.onError(xhr.status); 23690 } 23691 23692 return; 23693 } 23694 23695 var xhrStatus = xhr.status || OK_RESPONSE; 23696 var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; 23697 23698 if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { 23699 if (pendingRequest.onError) { 23700 pendingRequest.onError(xhr.status); 23701 } 23702 23703 return; 23704 } 23705 23706 var chunk = getArrayBuffer(xhr); 23707 23708 if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { 23709 var rangeHeader = xhr.getResponseHeader('Content-Range'); 23710 var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); 23711 pendingRequest.onDone({ 23712 begin: parseInt(matches[1], 10), 23713 chunk: chunk 23714 }); 23715 } else if (chunk) { 23716 pendingRequest.onDone({ 23717 begin: 0, 23718 chunk: chunk 23719 }); 23720 } else if (pendingRequest.onError) { 23721 pendingRequest.onError(xhr.status); 23722 } 23723 } 23724 }, { 23725 key: "hasPendingRequests", 23726 value: function hasPendingRequests() { 23727 for (var xhrId in this.pendingRequests) { 23728 return true; 23729 } 23730 23731 return false; 23732 } 23733 }, { 23734 key: "getRequestXhr", 23735 value: function getRequestXhr(xhrId) { 23736 return this.pendingRequests[xhrId].xhr; 23737 } 23738 }, { 23739 key: "isPendingRequest", 23740 value: function isPendingRequest(xhrId) { 23741 return xhrId in this.pendingRequests; 23742 } 23743 }, { 23744 key: "abortAllRequests", 23745 value: function abortAllRequests() { 23746 for (var xhrId in this.pendingRequests) { 23747 this.abortRequest(xhrId | 0); 23748 } 23749 } 23750 }, { 23751 key: "abortRequest", 23752 value: function abortRequest(xhrId) { 23753 var xhr = this.pendingRequests[xhrId].xhr; 23754 delete this.pendingRequests[xhrId]; 23755 xhr.abort(); 23756 } 23757 }]); 23758 23759 return NetworkManager; 23760}(); 23761 23762var PDFNetworkStream = 23763/*#__PURE__*/ 23764function () { 23765 function PDFNetworkStream(source) { 23766 _classCallCheck(this, PDFNetworkStream); 23767 23768 this._source = source; 23769 this._manager = new NetworkManager(source.url, { 23770 httpHeaders: source.httpHeaders, 23771 withCredentials: source.withCredentials 23772 }); 23773 this._rangeChunkSize = source.rangeChunkSize; 23774 this._fullRequestReader = null; 23775 this._rangeRequestReaders = []; 23776 } 23777 23778 _createClass(PDFNetworkStream, [{ 23779 key: "_onRangeRequestReaderClosed", 23780 value: function _onRangeRequestReaderClosed(reader) { 23781 var i = this._rangeRequestReaders.indexOf(reader); 23782 23783 if (i >= 0) { 23784 this._rangeRequestReaders.splice(i, 1); 23785 } 23786 } 23787 }, { 23788 key: "getFullReader", 23789 value: function getFullReader() { 23790 (0, _util.assert)(!this._fullRequestReader); 23791 this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); 23792 return this._fullRequestReader; 23793 } 23794 }, { 23795 key: "getRangeReader", 23796 value: function getRangeReader(begin, end) { 23797 var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); 23798 reader.onClosed = this._onRangeRequestReaderClosed.bind(this); 23799 23800 this._rangeRequestReaders.push(reader); 23801 23802 return reader; 23803 } 23804 }, { 23805 key: "cancelAllRequests", 23806 value: function cancelAllRequests(reason) { 23807 if (this._fullRequestReader) { 23808 this._fullRequestReader.cancel(reason); 23809 } 23810 23811 var readers = this._rangeRequestReaders.slice(0); 23812 23813 readers.forEach(function (reader) { 23814 reader.cancel(reason); 23815 }); 23816 } 23817 }]); 23818 23819 return PDFNetworkStream; 23820}(); 23821 23822exports.PDFNetworkStream = PDFNetworkStream; 23823 23824var PDFNetworkStreamFullRequestReader = 23825/*#__PURE__*/ 23826function () { 23827 function PDFNetworkStreamFullRequestReader(manager, source) { 23828 _classCallCheck(this, PDFNetworkStreamFullRequestReader); 23829 23830 this._manager = manager; 23831 var args = { 23832 onHeadersReceived: this._onHeadersReceived.bind(this), 23833 onDone: this._onDone.bind(this), 23834 onError: this._onError.bind(this), 23835 onProgress: this._onProgress.bind(this) 23836 }; 23837 this._url = source.url; 23838 this._fullRequestId = manager.requestFull(args); 23839 this._headersReceivedCapability = (0, _util.createPromiseCapability)(); 23840 this._disableRange = source.disableRange || false; 23841 this._contentLength = source.length; 23842 this._rangeChunkSize = source.rangeChunkSize; 23843 23844 if (!this._rangeChunkSize && !this._disableRange) { 23845 this._disableRange = true; 23846 } 23847 23848 this._isStreamingSupported = false; 23849 this._isRangeSupported = false; 23850 this._cachedChunks = []; 23851 this._requests = []; 23852 this._done = false; 23853 this._storedError = undefined; 23854 this._filename = null; 23855 this.onProgress = null; 23856 } 23857 23858 _createClass(PDFNetworkStreamFullRequestReader, [{ 23859 key: "_onHeadersReceived", 23860 value: function _onHeadersReceived() { 23861 var fullRequestXhrId = this._fullRequestId; 23862 23863 var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); 23864 23865 var getResponseHeader = function getResponseHeader(name) { 23866 return fullRequestXhr.getResponseHeader(name); 23867 }; 23868 23869 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 23870 getResponseHeader: getResponseHeader, 23871 isHttp: this._manager.isHttp, 23872 rangeChunkSize: this._rangeChunkSize, 23873 disableRange: this._disableRange 23874 }), 23875 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 23876 suggestedLength = _validateRangeRequest.suggestedLength; 23877 23878 if (allowRangeRequests) { 23879 this._isRangeSupported = true; 23880 } 23881 23882 this._contentLength = suggestedLength || this._contentLength; 23883 this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 23884 23885 if (this._isRangeSupported) { 23886 this._manager.abortRequest(fullRequestXhrId); 23887 } 23888 23889 this._headersReceivedCapability.resolve(); 23890 } 23891 }, { 23892 key: "_onDone", 23893 value: function _onDone(args) { 23894 if (args) { 23895 if (this._requests.length > 0) { 23896 var requestCapability = this._requests.shift(); 23897 23898 requestCapability.resolve({ 23899 value: args.chunk, 23900 done: false 23901 }); 23902 } else { 23903 this._cachedChunks.push(args.chunk); 23904 } 23905 } 23906 23907 this._done = true; 23908 23909 if (this._cachedChunks.length > 0) { 23910 return; 23911 } 23912 23913 this._requests.forEach(function (requestCapability) { 23914 requestCapability.resolve({ 23915 value: undefined, 23916 done: true 23917 }); 23918 }); 23919 23920 this._requests = []; 23921 } 23922 }, { 23923 key: "_onError", 23924 value: function _onError(status) { 23925 var url = this._url; 23926 var exception = (0, _network_utils.createResponseStatusError)(status, url); 23927 this._storedError = exception; 23928 23929 this._headersReceivedCapability.reject(exception); 23930 23931 this._requests.forEach(function (requestCapability) { 23932 requestCapability.reject(exception); 23933 }); 23934 23935 this._requests = []; 23936 this._cachedChunks = []; 23937 } 23938 }, { 23939 key: "_onProgress", 23940 value: function _onProgress(data) { 23941 if (this.onProgress) { 23942 this.onProgress({ 23943 loaded: data.loaded, 23944 total: data.lengthComputable ? data.total : this._contentLength 23945 }); 23946 } 23947 } 23948 }, { 23949 key: "read", 23950 value: function () { 23951 var _read = _asyncToGenerator( 23952 /*#__PURE__*/ 23953 _regenerator["default"].mark(function _callee() { 23954 var chunk, requestCapability; 23955 return _regenerator["default"].wrap(function _callee$(_context) { 23956 while (1) { 23957 switch (_context.prev = _context.next) { 23958 case 0: 23959 if (!this._storedError) { 23960 _context.next = 2; 23961 break; 23962 } 23963 23964 throw this._storedError; 23965 23966 case 2: 23967 if (!(this._cachedChunks.length > 0)) { 23968 _context.next = 5; 23969 break; 23970 } 23971 23972 chunk = this._cachedChunks.shift(); 23973 return _context.abrupt("return", { 23974 value: chunk, 23975 done: false 23976 }); 23977 23978 case 5: 23979 if (!this._done) { 23980 _context.next = 7; 23981 break; 23982 } 23983 23984 return _context.abrupt("return", { 23985 value: undefined, 23986 done: true 23987 }); 23988 23989 case 7: 23990 requestCapability = (0, _util.createPromiseCapability)(); 23991 23992 this._requests.push(requestCapability); 23993 23994 return _context.abrupt("return", requestCapability.promise); 23995 23996 case 10: 23997 case "end": 23998 return _context.stop(); 23999 } 24000 } 24001 }, _callee, this); 24002 })); 24003 24004 function read() { 24005 return _read.apply(this, arguments); 24006 } 24007 24008 return read; 24009 }() 24010 }, { 24011 key: "cancel", 24012 value: function cancel(reason) { 24013 this._done = true; 24014 24015 this._headersReceivedCapability.reject(reason); 24016 24017 this._requests.forEach(function (requestCapability) { 24018 requestCapability.resolve({ 24019 value: undefined, 24020 done: true 24021 }); 24022 }); 24023 24024 this._requests = []; 24025 24026 if (this._manager.isPendingRequest(this._fullRequestId)) { 24027 this._manager.abortRequest(this._fullRequestId); 24028 } 24029 24030 this._fullRequestReader = null; 24031 } 24032 }, { 24033 key: "filename", 24034 get: function get() { 24035 return this._filename; 24036 } 24037 }, { 24038 key: "isRangeSupported", 24039 get: function get() { 24040 return this._isRangeSupported; 24041 } 24042 }, { 24043 key: "isStreamingSupported", 24044 get: function get() { 24045 return this._isStreamingSupported; 24046 } 24047 }, { 24048 key: "contentLength", 24049 get: function get() { 24050 return this._contentLength; 24051 } 24052 }, { 24053 key: "headersReady", 24054 get: function get() { 24055 return this._headersReceivedCapability.promise; 24056 } 24057 }]); 24058 24059 return PDFNetworkStreamFullRequestReader; 24060}(); 24061 24062var PDFNetworkStreamRangeRequestReader = 24063/*#__PURE__*/ 24064function () { 24065 function PDFNetworkStreamRangeRequestReader(manager, begin, end) { 24066 _classCallCheck(this, PDFNetworkStreamRangeRequestReader); 24067 24068 this._manager = manager; 24069 var args = { 24070 onDone: this._onDone.bind(this), 24071 onProgress: this._onProgress.bind(this) 24072 }; 24073 this._requestId = manager.requestRange(begin, end, args); 24074 this._requests = []; 24075 this._queuedChunk = null; 24076 this._done = false; 24077 this.onProgress = null; 24078 this.onClosed = null; 24079 } 24080 24081 _createClass(PDFNetworkStreamRangeRequestReader, [{ 24082 key: "_close", 24083 value: function _close() { 24084 if (this.onClosed) { 24085 this.onClosed(this); 24086 } 24087 } 24088 }, { 24089 key: "_onDone", 24090 value: function _onDone(data) { 24091 var chunk = data.chunk; 24092 24093 if (this._requests.length > 0) { 24094 var requestCapability = this._requests.shift(); 24095 24096 requestCapability.resolve({ 24097 value: chunk, 24098 done: false 24099 }); 24100 } else { 24101 this._queuedChunk = chunk; 24102 } 24103 24104 this._done = true; 24105 24106 this._requests.forEach(function (requestCapability) { 24107 requestCapability.resolve({ 24108 value: undefined, 24109 done: true 24110 }); 24111 }); 24112 24113 this._requests = []; 24114 24115 this._close(); 24116 } 24117 }, { 24118 key: "_onProgress", 24119 value: function _onProgress(evt) { 24120 if (!this.isStreamingSupported && this.onProgress) { 24121 this.onProgress({ 24122 loaded: evt.loaded 24123 }); 24124 } 24125 } 24126 }, { 24127 key: "read", 24128 value: function () { 24129 var _read2 = _asyncToGenerator( 24130 /*#__PURE__*/ 24131 _regenerator["default"].mark(function _callee2() { 24132 var chunk, requestCapability; 24133 return _regenerator["default"].wrap(function _callee2$(_context2) { 24134 while (1) { 24135 switch (_context2.prev = _context2.next) { 24136 case 0: 24137 if (!(this._queuedChunk !== null)) { 24138 _context2.next = 4; 24139 break; 24140 } 24141 24142 chunk = this._queuedChunk; 24143 this._queuedChunk = null; 24144 return _context2.abrupt("return", { 24145 value: chunk, 24146 done: false 24147 }); 24148 24149 case 4: 24150 if (!this._done) { 24151 _context2.next = 6; 24152 break; 24153 } 24154 24155 return _context2.abrupt("return", { 24156 value: undefined, 24157 done: true 24158 }); 24159 24160 case 6: 24161 requestCapability = (0, _util.createPromiseCapability)(); 24162 24163 this._requests.push(requestCapability); 24164 24165 return _context2.abrupt("return", requestCapability.promise); 24166 24167 case 9: 24168 case "end": 24169 return _context2.stop(); 24170 } 24171 } 24172 }, _callee2, this); 24173 })); 24174 24175 function read() { 24176 return _read2.apply(this, arguments); 24177 } 24178 24179 return read; 24180 }() 24181 }, { 24182 key: "cancel", 24183 value: function cancel(reason) { 24184 this._done = true; 24185 24186 this._requests.forEach(function (requestCapability) { 24187 requestCapability.resolve({ 24188 value: undefined, 24189 done: true 24190 }); 24191 }); 24192 24193 this._requests = []; 24194 24195 if (this._manager.isPendingRequest(this._requestId)) { 24196 this._manager.abortRequest(this._requestId); 24197 } 24198 24199 this._close(); 24200 } 24201 }, { 24202 key: "isStreamingSupported", 24203 get: function get() { 24204 return false; 24205 } 24206 }]); 24207 24208 return PDFNetworkStreamRangeRequestReader; 24209}(); 24210 24211/***/ }), 24212/* 169 */ 24213/***/ (function(module, exports, __w_pdfjs_require__) { 24214 24215"use strict"; 24216 24217 24218Object.defineProperty(exports, "__esModule", { 24219 value: true 24220}); 24221exports.PDFFetchStream = void 0; 24222 24223var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); 24224 24225var _util = __w_pdfjs_require__(1); 24226 24227var _network_utils = __w_pdfjs_require__(166); 24228 24229function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 24230 24231function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } 24232 24233function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } 24234 24235function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 24236 24237function _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); } } 24238 24239function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 24240 24241function createFetchOptions(headers, withCredentials, abortController) { 24242 return { 24243 method: 'GET', 24244 headers: headers, 24245 signal: abortController && abortController.signal, 24246 mode: 'cors', 24247 credentials: withCredentials ? 'include' : 'same-origin', 24248 redirect: 'follow' 24249 }; 24250} 24251 24252var PDFFetchStream = 24253/*#__PURE__*/ 24254function () { 24255 function PDFFetchStream(source) { 24256 _classCallCheck(this, PDFFetchStream); 24257 24258 this.source = source; 24259 this.isHttp = /^https?:/i.test(source.url); 24260 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 24261 this._fullRequestReader = null; 24262 this._rangeRequestReaders = []; 24263 } 24264 24265 _createClass(PDFFetchStream, [{ 24266 key: "getFullReader", 24267 value: function getFullReader() { 24268 (0, _util.assert)(!this._fullRequestReader); 24269 this._fullRequestReader = new PDFFetchStreamReader(this); 24270 return this._fullRequestReader; 24271 } 24272 }, { 24273 key: "getRangeReader", 24274 value: function getRangeReader(begin, end) { 24275 if (end <= this._progressiveDataLength) { 24276 return null; 24277 } 24278 24279 var reader = new PDFFetchStreamRangeReader(this, begin, end); 24280 24281 this._rangeRequestReaders.push(reader); 24282 24283 return reader; 24284 } 24285 }, { 24286 key: "cancelAllRequests", 24287 value: function cancelAllRequests(reason) { 24288 if (this._fullRequestReader) { 24289 this._fullRequestReader.cancel(reason); 24290 } 24291 24292 var readers = this._rangeRequestReaders.slice(0); 24293 24294 readers.forEach(function (reader) { 24295 reader.cancel(reason); 24296 }); 24297 } 24298 }, { 24299 key: "_progressiveDataLength", 24300 get: function get() { 24301 return this._fullRequestReader ? this._fullRequestReader._loaded : 0; 24302 } 24303 }]); 24304 24305 return PDFFetchStream; 24306}(); 24307 24308exports.PDFFetchStream = PDFFetchStream; 24309 24310var PDFFetchStreamReader = 24311/*#__PURE__*/ 24312function () { 24313 function PDFFetchStreamReader(stream) { 24314 var _this = this; 24315 24316 _classCallCheck(this, PDFFetchStreamReader); 24317 24318 this._stream = stream; 24319 this._reader = null; 24320 this._loaded = 0; 24321 this._filename = null; 24322 var source = stream.source; 24323 this._withCredentials = source.withCredentials || false; 24324 this._contentLength = source.length; 24325 this._headersCapability = (0, _util.createPromiseCapability)(); 24326 this._disableRange = source.disableRange || false; 24327 this._rangeChunkSize = source.rangeChunkSize; 24328 24329 if (!this._rangeChunkSize && !this._disableRange) { 24330 this._disableRange = true; 24331 } 24332 24333 if (typeof AbortController !== 'undefined') { 24334 this._abortController = new AbortController(); 24335 } 24336 24337 this._isStreamingSupported = !source.disableStream; 24338 this._isRangeSupported = !source.disableRange; 24339 this._headers = new Headers(); 24340 24341 for (var property in this._stream.httpHeaders) { 24342 var value = this._stream.httpHeaders[property]; 24343 24344 if (typeof value === 'undefined') { 24345 continue; 24346 } 24347 24348 this._headers.append(property, value); 24349 } 24350 24351 var url = source.url; 24352 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 24353 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 24354 throw (0, _network_utils.createResponseStatusError)(response.status, url); 24355 } 24356 24357 _this._reader = response.body.getReader(); 24358 24359 _this._headersCapability.resolve(); 24360 24361 var getResponseHeader = function getResponseHeader(name) { 24362 return response.headers.get(name); 24363 }; 24364 24365 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 24366 getResponseHeader: getResponseHeader, 24367 isHttp: _this._stream.isHttp, 24368 rangeChunkSize: _this._rangeChunkSize, 24369 disableRange: _this._disableRange 24370 }), 24371 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 24372 suggestedLength = _validateRangeRequest.suggestedLength; 24373 24374 _this._isRangeSupported = allowRangeRequests; 24375 _this._contentLength = suggestedLength || _this._contentLength; 24376 _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 24377 24378 if (!_this._isStreamingSupported && _this._isRangeSupported) { 24379 _this.cancel(new _util.AbortException('Streaming is disabled.')); 24380 } 24381 })["catch"](this._headersCapability.reject); 24382 this.onProgress = null; 24383 } 24384 24385 _createClass(PDFFetchStreamReader, [{ 24386 key: "read", 24387 value: function () { 24388 var _read = _asyncToGenerator( 24389 /*#__PURE__*/ 24390 _regenerator["default"].mark(function _callee() { 24391 var _ref, value, done, buffer; 24392 24393 return _regenerator["default"].wrap(function _callee$(_context) { 24394 while (1) { 24395 switch (_context.prev = _context.next) { 24396 case 0: 24397 _context.next = 2; 24398 return this._headersCapability.promise; 24399 24400 case 2: 24401 _context.next = 4; 24402 return this._reader.read(); 24403 24404 case 4: 24405 _ref = _context.sent; 24406 value = _ref.value; 24407 done = _ref.done; 24408 24409 if (!done) { 24410 _context.next = 9; 24411 break; 24412 } 24413 24414 return _context.abrupt("return", { 24415 value: value, 24416 done: done 24417 }); 24418 24419 case 9: 24420 this._loaded += value.byteLength; 24421 24422 if (this.onProgress) { 24423 this.onProgress({ 24424 loaded: this._loaded, 24425 total: this._contentLength 24426 }); 24427 } 24428 24429 buffer = new Uint8Array(value).buffer; 24430 return _context.abrupt("return", { 24431 value: buffer, 24432 done: false 24433 }); 24434 24435 case 13: 24436 case "end": 24437 return _context.stop(); 24438 } 24439 } 24440 }, _callee, this); 24441 })); 24442 24443 function read() { 24444 return _read.apply(this, arguments); 24445 } 24446 24447 return read; 24448 }() 24449 }, { 24450 key: "cancel", 24451 value: function cancel(reason) { 24452 if (this._reader) { 24453 this._reader.cancel(reason); 24454 } 24455 24456 if (this._abortController) { 24457 this._abortController.abort(); 24458 } 24459 } 24460 }, { 24461 key: "headersReady", 24462 get: function get() { 24463 return this._headersCapability.promise; 24464 } 24465 }, { 24466 key: "filename", 24467 get: function get() { 24468 return this._filename; 24469 } 24470 }, { 24471 key: "contentLength", 24472 get: function get() { 24473 return this._contentLength; 24474 } 24475 }, { 24476 key: "isRangeSupported", 24477 get: function get() { 24478 return this._isRangeSupported; 24479 } 24480 }, { 24481 key: "isStreamingSupported", 24482 get: function get() { 24483 return this._isStreamingSupported; 24484 } 24485 }]); 24486 24487 return PDFFetchStreamReader; 24488}(); 24489 24490var PDFFetchStreamRangeReader = 24491/*#__PURE__*/ 24492function () { 24493 function PDFFetchStreamRangeReader(stream, begin, end) { 24494 var _this2 = this; 24495 24496 _classCallCheck(this, PDFFetchStreamRangeReader); 24497 24498 this._stream = stream; 24499 this._reader = null; 24500 this._loaded = 0; 24501 var source = stream.source; 24502 this._withCredentials = source.withCredentials || false; 24503 this._readCapability = (0, _util.createPromiseCapability)(); 24504 this._isStreamingSupported = !source.disableStream; 24505 24506 if (typeof AbortController !== 'undefined') { 24507 this._abortController = new AbortController(); 24508 } 24509 24510 this._headers = new Headers(); 24511 24512 for (var property in this._stream.httpHeaders) { 24513 var value = this._stream.httpHeaders[property]; 24514 24515 if (typeof value === 'undefined') { 24516 continue; 24517 } 24518 24519 this._headers.append(property, value); 24520 } 24521 24522 this._headers.append('Range', "bytes=".concat(begin, "-").concat(end - 1)); 24523 24524 var url = source.url; 24525 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 24526 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 24527 throw (0, _network_utils.createResponseStatusError)(response.status, url); 24528 } 24529 24530 _this2._readCapability.resolve(); 24531 24532 _this2._reader = response.body.getReader(); 24533 }); 24534 this.onProgress = null; 24535 } 24536 24537 _createClass(PDFFetchStreamRangeReader, [{ 24538 key: "read", 24539 value: function () { 24540 var _read2 = _asyncToGenerator( 24541 /*#__PURE__*/ 24542 _regenerator["default"].mark(function _callee2() { 24543 var _ref2, value, done, buffer; 24544 24545 return _regenerator["default"].wrap(function _callee2$(_context2) { 24546 while (1) { 24547 switch (_context2.prev = _context2.next) { 24548 case 0: 24549 _context2.next = 2; 24550 return this._readCapability.promise; 24551 24552 case 2: 24553 _context2.next = 4; 24554 return this._reader.read(); 24555 24556 case 4: 24557 _ref2 = _context2.sent; 24558 value = _ref2.value; 24559 done = _ref2.done; 24560 24561 if (!done) { 24562 _context2.next = 9; 24563 break; 24564 } 24565 24566 return _context2.abrupt("return", { 24567 value: value, 24568 done: done 24569 }); 24570 24571 case 9: 24572 this._loaded += value.byteLength; 24573 24574 if (this.onProgress) { 24575 this.onProgress({ 24576 loaded: this._loaded 24577 }); 24578 } 24579 24580 buffer = new Uint8Array(value).buffer; 24581 return _context2.abrupt("return", { 24582 value: buffer, 24583 done: false 24584 }); 24585 24586 case 13: 24587 case "end": 24588 return _context2.stop(); 24589 } 24590 } 24591 }, _callee2, this); 24592 })); 24593 24594 function read() { 24595 return _read2.apply(this, arguments); 24596 } 24597 24598 return read; 24599 }() 24600 }, { 24601 key: "cancel", 24602 value: function cancel(reason) { 24603 if (this._reader) { 24604 this._reader.cancel(reason); 24605 } 24606 24607 if (this._abortController) { 24608 this._abortController.abort(); 24609 } 24610 } 24611 }, { 24612 key: "isStreamingSupported", 24613 get: function get() { 24614 return this._isStreamingSupported; 24615 } 24616 }]); 24617 24618 return PDFFetchStreamRangeReader; 24619}(); 24620 24621/***/ }) 24622/******/ ]); 24623}); 24624//# sourceMappingURL=pdf.js.map