vendor: 4,144 bytes, lines 1-100
1/** 2 * @licstart The following is the entire license notice for the 3 * Javascript code in this page 4 * 5 * Copyright 2018 Mozilla Foundation 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * 19 * @licend The above is the entire license notice for the 20 * Javascript code in this page 21 */ 22 23(function webpackUniversalModuleDefinition(root, factory) { 24 if(typeof exports === 'object' && typeof module === 'object') 25 module.exports = factory(); 26 else if(typeof define === 'function' && define.amd) 27 define("pdfjs-dist/build/pdf", [], factory); 28 else if(typeof exports === 'object') 29 exports["pdfjs-dist/build/pdf"] = factory(); 30 else 31 root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); 32})(this, function() { 33return /******/ (function(modules) { // webpackBootstrap 34/******/ // The module cache 35/******/ var installedModules = {}; 36/******/ 37/******/ // The require function 38/******/ function __w_pdfjs_require__(moduleId) { 39/******/ 40/******/ // Check if module is in cache 41/******/ if(installedModules[moduleId]) { 42/******/ return installedModules[moduleId].exports; 43/******/ } 44/******/ // Create a new module (and put it into the cache) 45/******/ var module = installedModules[moduleId] = { 46/******/ i: moduleId, 47/******/ l: false, 48/******/ exports: {} 49/******/ }; 50/******/ 51/******/ // Execute the module function 52/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 53/******/ 54/******/ // Flag the module as loaded 55/******/ module.l = true; 56/******/ 57/******/ // Return the exports of the module 58/******/ return module.exports; 59/******/ } 60/******/ 61/******/ 62/******/ // expose the modules object (__webpack_modules__) 63/******/ __w_pdfjs_require__.m = modules; 64/******/ 65/******/ // expose the module cache 66/******/ __w_pdfjs_require__.c = installedModules; 67/******/ 68/******/ // define getter function for harmony exports 69/******/ __w_pdfjs_require__.d = function(exports, name, getter) { 70/******/ if(!__w_pdfjs_require__.o(exports, name)) { 71/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 72/******/ } 73/******/ }; 74/******/ 75/******/ // define __esModule on exports 76/******/ __w_pdfjs_require__.r = function(exports) { 77/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 78/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 79/******/ } 80/******/ Object.defineProperty(exports, '__esModule', { value: true }); 81/******/ }; 82/******/ 83/******/ // create a fake namespace object 84/******/ // mode & 1: value is a module id, require it 85/******/ // mode & 2: merge all properties of value into the ns 86/******/ // mode & 4: return value when already ns object 87/******/ // mode & 8|1: behave like require 88/******/ __w_pdfjs_require__.t = function(value, mode) { 89/******/ if(mode & 1) value = __w_pdfjs_require__(value); 90/******/ if(mode & 8) return value; 91/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 92/******/ var ns = Object.create(null); 93/******/ __w_pdfjs_require__.r(ns); 94/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 95/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 96/******/ return ns; 97/******/ }; 98/******/ 99/******/ // getDefaultExport function for compatibility with non-harmony modules 100/******/ __w_pdfjs_require__.n = function(module) {
101/******/ var getter = module && module.__esModule ? 102/******/ function getDefault() { return module['default']; } : 103/******/ function getModuleExports() { return module; }; 104/******/ __w_pdfjs_require__.d(getter, 'a', getter); 105/******/ return getter; 106/******/ }; 107/******/ 108/******/ // Object.prototype.hasOwnProperty.call 109/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 110/******/ 111/******/ // __webpack_public_path__ 112/******/ __w_pdfjs_require__.p = ""; 113/******/ 114/******/ 115/******/ // Load entry module and return exports 116/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0); 117/******/ }) 118/************************************************************************/ 119/******/ ([ 120/* 0 */ 121/***/ (function(module, exports, __w_pdfjs_require__) { 122 123"use strict"; 124 125 126var pdfjsVersion = '2.1.266'; 127var pdfjsBuild = '81f5835c'; 128 129var pdfjsSharedUtil = __w_pdfjs_require__(1); 130 131var pdfjsDisplayAPI = __w_pdfjs_require__(146); 132 133var pdfjsDisplayTextLayer = __w_pdfjs_require__(162); 134 135var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163); 136 137var pdfjsDisplayDOMUtils = __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 if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') { 155 var PDFFetchStream = __w_pdfjs_require__(168).PDFFetchStream; 156 157 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 158 return new PDFFetchStream(params); 159 }); 160 } else { 161 var PDFNetworkStream = __w_pdfjs_require__(169).PDFNetworkStream; 162 163 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 164 return new PDFNetworkStream(params); 165 }); 166 } 167} 168exports.build = pdfjsDisplayAPI.build; 169exports.version = pdfjsDisplayAPI.version; 170exports.getDocument = pdfjsDisplayAPI.getDocument; 171exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; 172exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; 173exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; 174exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; 175exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; 176exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; 177exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; 178exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; 179exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; 180exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; 181exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; 182exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; 183exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; 184exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; 185exports.OPS = pdfjsSharedUtil.OPS; 186exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; 187exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; 188exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; 189exports.createObjectURL = pdfjsSharedUtil.createObjectURL; 190exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; 191exports.shadow = pdfjsSharedUtil.shadow; 192exports.Util = pdfjsSharedUtil.Util; 193exports.ReadableStream = pdfjsSharedUtil.ReadableStream; 194exports.URL = pdfjsSharedUtil.URL; 195exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException; 196exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl; 197exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget; 198exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes; 199exports.loadScript = pdfjsDisplayDOMUtils.loadScript; 200exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; 201exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; 202 203/***/ }), 204/* 1 */ 205/***/ (function(module, exports, __w_pdfjs_require__) { 206 207"use strict"; 208 209 210Object.defineProperty(exports, "__esModule", { 211 value: true 212}); 213exports.toRomanNumerals = toRomanNumerals; 214exports.arrayByteLength = arrayByteLength; 215exports.arraysToBytes = arraysToBytes; 216exports.assert = assert; 217exports.bytesToString = bytesToString; 218exports.createPromiseCapability = createPromiseCapability; 219exports.deprecated = deprecated; 220exports.getInheritableProperty = getInheritableProperty; 221exports.getLookupTableFactory = getLookupTableFactory;
222exports.getVerbosityLevel = getVerbosityLevel; 223exports.info = info; 224exports.isArrayBuffer = isArrayBuffer; 225exports.isBool = isBool; 226exports.isEmptyObj = isEmptyObj; 227exports.isNum = isNum; 228exports.isString = isString; 229exports.isSpace = isSpace; 230exports.isSameOrigin = isSameOrigin; 231exports.createValidAbsoluteUrl = createValidAbsoluteUrl; 232exports.isLittleEndian = isLittleEndian; 233exports.isEvalSupported = isEvalSupported; 234exports.log2 = log2; 235exports.readInt8 = readInt8; 236exports.readUint16 = readUint16; 237exports.readUint32 = readUint32; 238exports.removeNullCharacters = removeNullCharacters; 239exports.setVerbosityLevel = setVerbosityLevel; 240exports.shadow = shadow; 241exports.string32 = string32; 242exports.stringToBytes = stringToBytes; 243exports.stringToPDFString = stringToPDFString; 244exports.stringToUTF8String = stringToUTF8String; 245exports.utf8StringToString = utf8StringToString; 246exports.warn = warn; 247exports.unreachable = unreachable; 248Object.defineProperty(exports, "ReadableStream", { 249 enumerable: true, 250 get: function get() { 251 return _streams_polyfill.ReadableStream; 252 } 253}); 254Object.defineProperty(exports, "URL", { 255 enumerable: true, 256 get: function get() { 257 return _url_polyfill.URL; 258 } 259}); 260exports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0; 261 262__w_pdfjs_require__(2); 263 264var _streams_polyfill = __w_pdfjs_require__(142); 265 266var _url_polyfill = __w_pdfjs_require__(144); 267 268function _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); } 269 270var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; 271exports.IDENTITY_MATRIX = IDENTITY_MATRIX; 272var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; 273exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; 274var NativeImageDecoding = { 275 NONE: 'none', 276 DECODE: 'decode', 277 DISPLAY: 'display' 278}; 279exports.NativeImageDecoding = NativeImageDecoding; 280var PermissionFlag = { 281 PRINT: 0x04, 282 MODIFY_CONTENTS: 0x08, 283 COPY: 0x10, 284 MODIFY_ANNOTATIONS: 0x20, 285 FILL_INTERACTIVE_FORMS: 0x100, 286 COPY_FOR_ACCESSIBILITY: 0x200, 287 ASSEMBLE: 0x400, 288 PRINT_HIGH_QUALITY: 0x800 289}; 290exports.PermissionFlag = PermissionFlag; 291var TextRenderingMode = { 292 FILL: 0, 293 STROKE: 1, 294 FILL_STROKE: 2, 295 INVISIBLE: 3, 296 FILL_ADD_TO_PATH: 4, 297 STROKE_ADD_TO_PATH: 5, 298 FILL_STROKE_ADD_TO_PATH: 6, 299 ADD_TO_PATH: 7, 300 FILL_STROKE_MASK: 3, 301 ADD_TO_PATH_FLAG: 4 302}; 303exports.TextRenderingMode = TextRenderingMode; 304var ImageKind = { 305 GRAYSCALE_1BPP: 1, 306 RGB_24BPP: 2, 307 RGBA_32BPP: 3 308}; 309exports.ImageKind = ImageKind; 310var AnnotationType = { 311 TEXT: 1, 312 LINK: 2, 313 FREETEXT: 3, 314 LINE: 4, 315 SQUARE: 5, 316 CIRCLE: 6, 317 POLYGON: 7, 318 POLYLINE: 8, 319 HIGHLIGHT: 9, 320 UNDERLINE: 10, 321 SQUIGGLY: 11, 322 STRIKEOUT: 12, 323 STAMP: 13, 324 CARET: 14, 325 INK: 15, 326 POPUP: 16, 327 FILEATTACHMENT: 17, 328 SOUND: 18, 329 MOVIE: 19, 330 WIDGET: 20, 331 SCREEN: 21, 332 PRINTERMARK: 22, 333 TRAPNET: 23, 334 WATERMARK: 24, 335 THREED: 25, 336 REDACT: 26 337}; 338exports.AnnotationType = AnnotationType; 339var AnnotationFlag = { 340 INVISIBLE: 0x01, 341 HIDDEN: 0x02, 342 PRINT: 0x04, 343 NOZOOM: 0x08,
344 NOROTATE: 0x10, 345 NOVIEW: 0x20, 346 READONLY: 0x40, 347 LOCKED: 0x80, 348 TOGGLENOVIEW: 0x100, 349 LOCKEDCONTENTS: 0x200 350}; 351exports.AnnotationFlag = AnnotationFlag; 352var AnnotationFieldFlag = { 353 READONLY: 0x0000001, 354 REQUIRED: 0x0000002, 355 NOEXPORT: 0x0000004, 356 MULTILINE: 0x0001000, 357 PASSWORD: 0x0002000, 358 NOTOGGLETOOFF: 0x0004000, 359 RADIO: 0x0008000, 360 PUSHBUTTON: 0x0010000, 361 COMBO: 0x0020000, 362 EDIT: 0x0040000, 363 SORT: 0x0080000, 364 FILESELECT: 0x0100000, 365 MULTISELECT: 0x0200000, 366 DONOTSPELLCHECK: 0x0400000, 367 DONOTSCROLL: 0x0800000, 368 COMB: 0x1000000, 369 RICHTEXT: 0x2000000, 370 RADIOSINUNISON: 0x2000000, 371 COMMITONSELCHANGE: 0x4000000 372}; 373exports.AnnotationFieldFlag = AnnotationFieldFlag; 374var AnnotationBorderStyleType = { 375 SOLID: 1, 376 DASHED: 2, 377 BEVELED: 3, 378 INSET: 4, 379 UNDERLINE: 5 380}; 381exports.AnnotationBorderStyleType = AnnotationBorderStyleType; 382var StreamType = { 383 UNKNOWN: 0, 384 FLATE: 1, 385 LZW: 2, 386 DCT: 3, 387 JPX: 4, 388 JBIG: 5, 389 A85: 6, 390 AHX: 7, 391 CCF: 8, 392 RL: 9 393}; 394exports.StreamType = StreamType; 395var FontType = { 396 UNKNOWN: 0, 397 TYPE1: 1, 398 TYPE1C: 2, 399 CIDFONTTYPE0: 3, 400 CIDFONTTYPE0C: 4, 401 TRUETYPE: 5, 402 CIDFONTTYPE2: 6, 403 TYPE3: 7, 404 OPENTYPE: 8, 405 TYPE0: 9, 406 MMTYPE1: 10 407}; 408exports.FontType = FontType; 409var VerbosityLevel = { 410 ERRORS: 0, 411 WARNINGS: 1, 412 INFOS: 5 413}; 414exports.VerbosityLevel = VerbosityLevel; 415var CMapCompressionType = { 416 NONE: 0, 417 BINARY: 1, 418 STREAM: 2 419}; 420exports.CMapCompressionType = CMapCompressionType; 421var OPS = { 422 dependency: 1, 423 setLineWidth: 2, 424 setLineCap: 3, 425 setLineJoin: 4, 426 setMiterLimit: 5, 427 setDash: 6, 428 setRenderingIntent: 7, 429 setFlatness: 8, 430 setGState: 9, 431 save: 10, 432 restore: 11, 433 transform: 12, 434 moveTo: 13, 435 lineTo: 14, 436 curveTo: 15, 437 curveTo2: 16, 438 curveTo3: 17, 439 closePath: 18, 440 rectangle: 19, 441 stroke: 20, 442 closeStroke: 21, 443 fill: 22, 444 eoFill: 23, 445 fillStroke: 24, 446 eoFillStroke: 25, 447 closeFillStroke: 26, 448 closeEOFillStroke: 27, 449 endPath: 28, 450 clip: 29, 451 eoClip: 30, 452 beginText: 31, 453 endText: 32, 454 setCharSpacing: 33, 455 setWordSpacing: 34, 456 setHScale: 35, 457 setLeading: 36, 458 setFont: 37, 459 setTextRenderingMode: 38, 460 setTextRise: 39, 461 moveText: 40, 462 setLeadingMoveText: 41, 463 setTextMatrix: 42, 464 nextLine: 43, 465 showText: 44, 466 showSpacedText: 45, 467 nextLineShowText: 46, 468 nextLineSetSpacingShowText: 47, 469 setCharWidth: 48, 470 setCharWidthAndBounds: 49, 471 setStrokeColorSpace: 50, 472 setFillColorSpace: 51, 473 setStrokeColor: 52, 474 setStrokeColorN: 53, 475 setFillColor: 54, 476 setFillColorN: 55, 477 setStrokeGray: 56, 478 setFillGray: 57, 479 setStrokeRGBColor: 58, 480 setFillRGBColor: 59, 481 setStrokeCMYKColor: 60, 482 setFillCMYKColor: 61, 483 shadingFill: 62, 484 beginInlineImage: 63, 485 beginImageData: 64, 486 endInlineImage: 65, 487 paintXObject: 66, 488 markPoint: 67, 489 markPointProps: 68, 490 beginMarkedContent: 69, 491 beginMarkedContentProps: 70, 492 endMarkedContent: 71, 493 beginCompat: 72, 494 endCompat: 73, 495 paintFormXObjectBegin: 74, 496 paintFormXObjectEnd: 75, 497 beginGroup: 76, 498 endGroup: 77, 499 beginAnnotations: 78, 500 endAnnotations: 79, 501 beginAnnotation: 80, 502 endAnnotation: 81, 503 paintJpegXObject: 82, 504 paintImageMaskXObject: 83, 505 paintImageMaskXObjectGroup: 84, 506 paintImageXObject: 85, 507 paintInlineImageXObject: 86, 508 paintInlineImageXObjectGroup: 87, 509 paintImageXObjectRepeat: 88, 510 paintImageMaskXObjectRepeat: 89, 511 paintSolidColorImageMask: 90, 512 constructPath: 91 513}; 514exports.OPS = OPS; 515var UNSUPPORTED_FEATURES = { 516 unknown: 'unknown', 517 forms: 'forms', 518 javaScript: 'javaScript', 519 smask: 'smask', 520 shadingPattern: 'shadingPattern', 521 font: 'font' 522}; 523exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; 524var PasswordResponses = { 525 NEED_PASSWORD: 1, 526 INCORRECT_PASSWORD: 2 527}; 528exports.PasswordResponses = PasswordResponses; 529var verbosity = VerbosityLevel.WARNINGS; 530 531function setVerbosityLevel(level) { 532 if (Number.isInteger(level)) { 533 verbosity = level; 534 } 535} 536 537function getVerbosityLevel() { 538 return verbosity; 539} 540 541function info(msg) { 542 if (verbosity >= VerbosityLevel.INFOS) { 543 console.log('Info: ' + msg); 544 } 545} 546 547function warn(msg) { 548 if (verbosity >= VerbosityLevel.WARNINGS) { 549 console.log('Warning: ' + msg); 550 } 551} 552 553function deprecated(details) { 554 console.log('Deprecated API usage: ' + details); 555} 556 557function unreachable(msg) { 558 throw new Error(msg); 559} 560 561function assert(cond, msg) { 562 if (!cond) { 563 unreachable(msg); 564 } 565} 566 567function isSameOrigin(baseUrl, otherUrl) { 568 try { 569 var base = new _url_polyfill.URL(baseUrl); 570 571 if (!base.origin || base.origin === 'null') { 572 return false; 573 } 574 } catch (e) { 575 return false; 576 } 577 578 var other = new _url_polyfill.URL(otherUrl, base); 579 return base.origin === other.origin; 580} 581 582function _isValidProtocol(url) { 583 if (!url) { 584 return false; 585 } 586 587 switch (url.protocol) { 588 case 'http:': 589 case 'https:': 590 case 'ftp:': 591 case 'mailto:': 592 case 'tel:': 593 return true; 594 595 default: 596 return false; 597 } 598} 599 600function createValidAbsoluteUrl(url, baseUrl) { 601 if (!url) { 602 return null; 603 } 604 605 try { 606 var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); 607 608 if (_isValidProtocol(absoluteUrl)) { 609 return absoluteUrl; 610 } 611 } catch (ex) {} 612 613 return null; 614} 615 616function shadow(obj, prop, value) { 617 Object.defineProperty(obj, prop, { 618 value: value, 619 enumerable: true, 620 configurable: true, 621 writable: false 622 }); 623 return value; 624} 625 626function getLookupTableFactory(initializer) { 627 var lookup; 628 return function () { 629 if (initializer) { 630 lookup = Object.create(null); 631 initializer(lookup); 632 initializer = null; 633 } 634 635 return lookup; 636 }; 637} 638 639var PasswordException = function PasswordExceptionClosure() { 640 function PasswordException(msg, code) { 641 this.name = 'PasswordException'; 642 this.message = msg; 643 this.code = code; 644 } 645 646 PasswordException.prototype = new Error(); 647 PasswordException.constructor = PasswordException; 648 return PasswordException; 649}(); 650 651exports.PasswordException = PasswordException; 652 653var UnknownErrorException = function UnknownErrorExceptionClosure() { 654 function UnknownErrorException(msg, details) { 655 this.name = 'UnknownErrorException'; 656 this.message = msg; 657 this.details = details; 658 } 659 660 UnknownErrorException.prototype = new Error(); 661 UnknownErrorException.constructor = UnknownErrorException; 662 return UnknownErrorException; 663}(); 664 665exports.UnknownErrorException = UnknownErrorException; 666 667var InvalidPDFException = function InvalidPDFExceptionClosure() { 668 function InvalidPDFException(msg) { 669 this.name = 'InvalidPDFException'; 670 this.message = msg; 671 } 672 673 InvalidPDFException.prototype = new Error(); 674 InvalidPDFException.constructor = InvalidPDFException; 675 return InvalidPDFException; 676}(); 677 678exports.InvalidPDFException = InvalidPDFException; 679 680var MissingPDFException = function MissingPDFExceptionClosure() { 681 function MissingPDFException(msg) { 682 this.name = 'MissingPDFException'; 683 this.message = msg; 684 } 685 686 MissingPDFException.prototype = new Error(); 687 MissingPDFException.constructor = MissingPDFException; 688 return MissingPDFException; 689}(); 690 691exports.MissingPDFException = MissingPDFException; 692 693var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { 694 function UnexpectedResponseException(msg, status) { 695 this.name = 'UnexpectedResponseException'; 696 this.message = msg; 697 this.status = status; 698 } 699 700 UnexpectedResponseException.prototype = new Error(); 701 UnexpectedResponseException.constructor = UnexpectedResponseException; 702 return UnexpectedResponseException; 703}(); 704 705exports.UnexpectedResponseException = UnexpectedResponseException; 706 707var MissingDataException = function MissingDataExceptionClosure() { 708 function MissingDataException(begin, end) { 709 this.begin = begin; 710 this.end = end; 711 this.message = 'Missing data [' + begin + ', ' + end + ')'; 712 } 713 714 MissingDataException.prototype = new Error(); 715 MissingDataException.prototype.name = 'MissingDataException'; 716 MissingDataException.constructor = MissingDataException; 717 return MissingDataException; 718}(); 719 720exports.MissingDataException = MissingDataException; 721 722var XRefEntryException = function XRefEntryExceptionClosure() { 723 function XRefEntryException(msg) { 724 this.message = msg; 725 } 726 727 XRefEntryException.prototype = new Error(); 728 XRefEntryException.prototype.name = 'XRefEntryException'; 729 XRefEntryException.constructor = XRefEntryException;
730 return XRefEntryException; 731}(); 732 733exports.XRefEntryException = XRefEntryException; 734 735var XRefParseException = function XRefParseExceptionClosure() { 736 function XRefParseException(msg) { 737 this.message = msg; 738 } 739 740 XRefParseException.prototype = new Error(); 741 XRefParseException.prototype.name = 'XRefParseException'; 742 XRefParseException.constructor = XRefParseException; 743 return XRefParseException; 744}(); 745 746exports.XRefParseException = XRefParseException; 747 748var FormatError = function FormatErrorClosure() { 749 function FormatError(msg) { 750 this.message = msg; 751 } 752 753 FormatError.prototype = new Error(); 754 FormatError.prototype.name = 'FormatError'; 755 FormatError.constructor = FormatError; 756 return FormatError; 757}(); 758 759exports.FormatError = FormatError; 760 761var AbortException = function AbortExceptionClosure() { 762 function AbortException(msg) { 763 this.name = 'AbortException'; 764 this.message = msg; 765 } 766 767 AbortException.prototype = new Error(); 768 AbortException.constructor = AbortException; 769 return AbortException; 770}(); 771 772exports.AbortException = AbortException; 773var NullCharactersRegExp = /\x00/g; 774 775function removeNullCharacters(str) { 776 if (typeof str !== 'string') { 777 warn('The argument for removeNullCharacters must be a string.'); 778 return str; 779 } 780 781 return str.replace(NullCharactersRegExp, ''); 782} 783 784function bytesToString(bytes) { 785 assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); 786 var length = bytes.length; 787 var MAX_ARGUMENT_COUNT = 8192; 788 789 if (length < MAX_ARGUMENT_COUNT) { 790 return String.fromCharCode.apply(null, bytes); 791 } 792 793 var strBuf = []; 794 795 for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { 796 var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); 797 var chunk = bytes.subarray(i, chunkEnd); 798 strBuf.push(String.fromCharCode.apply(null, chunk)); 799 } 800 801 return strBuf.join(''); 802} 803 804function stringToBytes(str) { 805 assert(typeof str === 'string', 'Invalid argument for stringToBytes'); 806 var length = str.length; 807 var bytes = new Uint8Array(length); 808 809 for (var i = 0; i < length; ++i) { 810 bytes[i] = str.charCodeAt(i) & 0xFF; 811 } 812 813 return bytes; 814} 815 816function arrayByteLength(arr) { 817 if (arr.length !== undefined) { 818 return arr.length; 819 } 820 821 assert(arr.byteLength !== undefined); 822 return arr.byteLength; 823} 824 825function arraysToBytes(arr) { 826 if (arr.length === 1 && arr[0] instanceof Uint8Array) { 827 return arr[0]; 828 } 829 830 var resultLength = 0; 831 var i, 832 ii = arr.length; 833 var item, itemLength; 834 835 for (i = 0; i < ii; i++) { 836 item = arr[i]; 837 itemLength = arrayByteLength(item); 838 resultLength += itemLength; 839 } 840 841 var pos = 0; 842 var data = new Uint8Array(resultLength); 843 844 for (i = 0; i < ii; i++) { 845 item = arr[i]; 846 847 if (!(item instanceof Uint8Array)) { 848 if (typeof item === 'string') { 849 item = stringToBytes(item); 850 } else { 851 item = new Uint8Array(item); 852 } 853 } 854 855 itemLength = item.byteLength; 856 data.set(item, pos); 857 pos += itemLength; 858 } 859 860 return data; 861} 862 863function string32(value) { 864 return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); 865} 866 867function log2(x) { 868 if (x <= 0) { 869 return 0; 870 } 871 872 return Math.ceil(Math.log2(x)); 873} 874 875function readInt8(data, start) { 876 return data[start] << 24 >> 24; 877} 878 879function readUint16(data, offset) { 880 return data[offset] << 8 | data[offset + 1]; 881} 882 883function readUint32(data, offset) { 884 return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; 885} 886 887function isLittleEndian() { 888 var buffer8 = new Uint8Array(4); 889 buffer8[0] = 1; 890 var view32 = new Uint32Array(buffer8.buffer, 0, 1); 891 return view32[0] === 1; 892} 893 894function isEvalSupported() { 895 try { 896 new Function(''); 897 return true; 898 } catch (e) { 899 return false; 900 } 901} 902 903function getInheritableProperty(_ref) { 904 var dict = _ref.dict, 905 key = _ref.key, 906 _ref$getArray = _ref.getArray, 907 getArray = _ref$getArray === void 0 ? false : _ref$getArray, 908 _ref$stopWhenFound = _ref.stopWhenFound, 909 stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound; 910 var LOOP_LIMIT = 100; 911 var loopCount = 0; 912 var values; 913 914 while (dict) { 915 var value = getArray ? dict.getArray(key) : dict.get(key); 916 917 if (value !== undefined) { 918 if (stopWhenFound) { 919 return value; 920 } 921 922 if (!values) { 923 values = []; 924 } 925 926 values.push(value); 927 } 928 929 if (++loopCount > LOOP_LIMIT) { 930 warn("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\"")); 931 break; 932 } 933 934 dict = dict.get('Parent'); 935 } 936 937 return values; 938} 939 940var Util = function UtilClosure() { 941 function Util() {} 942 943 var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; 944 945 Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { 946 rgbBuf[1] = r; 947 rgbBuf[3] = g; 948 rgbBuf[5] = b; 949 return rgbBuf.join(''); 950 }; 951 952 Util.transform = function Util_transform(m1, m2) { 953 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]]; 954 }; 955 956 Util.applyTransform = function Util_applyTransform(p, m) { 957 var xt = p[0] * m[0] + p[1] * m[2] + m[4]; 958 var yt = p[0] * m[1] + p[1] * m[3] + m[5]; 959 return [xt, yt]; 960 }; 961 962 Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { 963 var d = m[0] * m[3] - m[1] * m[2]; 964 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; 965 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; 966 return [xt, yt]; 967 }; 968 969 Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { 970 var p1 = Util.applyTransform(r, m); 971 var p2 = Util.applyTransform(r.slice(2, 4), m); 972 var p3 = Util.applyTransform([r[0], r[3]], m); 973 var p4 = Util.applyTransform([r[2], r[1]], m); 974 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])]; 975 }; 976 977 Util.inverseTransform = function Util_inverseTransform(m) { 978 var d = m[0] * m[3] - m[1] * m[2]; 979 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]; 980 }; 981 982 Util.apply3dTransform = function Util_apply3dTransform(m, v) { 983 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]]; 984 }; 985 986 Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { 987 var transpose = [m[0], m[2], m[1], m[3]]; 988 var a = m[0] * transpose[0] + m[1] * transpose[2]; 989 var b = m[0] * transpose[1] + m[1] * transpose[3]; 990 var c = m[2] * transpose[0] + m[3] * transpose[2]; 991 var d = m[2] * transpose[1] + m[3] * transpose[3]; 992 var first = (a + d) / 2; 993 var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; 994 var sx = first + second || 1; 995 var sy = first - second || 1; 996 return [Math.sqrt(sx), Math.sqrt(sy)]; 997 }; 998 999 Util.normalizeRect = function Util_normalizeRect(rect) { 1000 var r = rect.slice(0); 1001 1002 if (rect[0] > rect[2]) { 1003 r[0] = rect[2]; 1004 r[2] = rect[0];
1005 } 1006 1007 if (rect[1] > rect[3]) { 1008 r[1] = rect[3]; 1009 r[3] = rect[1]; 1010 } 1011 1012 return r; 1013 }; 1014 1015 Util.intersect = function Util_intersect(rect1, rect2) { 1016 function compare(a, b) { 1017 return a - b; 1018 } 1019 1020 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), 1021 orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), 1022 result = []; 1023 rect1 = Util.normalizeRect(rect1); 1024 rect2 = Util.normalizeRect(rect2); 1025 1026 if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { 1027 result[0] = orderedX[1]; 1028 result[2] = orderedX[2]; 1029 } else { 1030 return false; 1031 } 1032 1033 if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { 1034 result[1] = orderedY[1]; 1035 result[3] = orderedY[2]; 1036 } else { 1037 return false; 1038 } 1039 1040 return result; 1041 }; 1042 1043 return Util; 1044}(); 1045 1046exports.Util = Util; 1047var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX']; 1048 1049function toRomanNumerals(number) { 1050 var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 1051 assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.'); 1052 var pos, 1053 romanBuf = []; 1054 1055 while (number >= 1000) { 1056 number -= 1000; 1057 romanBuf.push('M'); 1058 } 1059 1060 pos = number / 100 | 0; 1061 number %= 100; 1062 romanBuf.push(ROMAN_NUMBER_MAP[pos]); 1063 pos = number / 10 | 0; 1064 number %= 10; 1065 romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); 1066 romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); 1067 var romanStr = romanBuf.join(''); 1068 return lowerCase ? romanStr.toLowerCase() : romanStr; 1069} 1070 1071var 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]; 1072 1073function stringToPDFString(str) { 1074 var i, 1075 n = str.length, 1076 strBuf = []; 1077 1078 if (str[0] === '\xFE' && str[1] === '\xFF') { 1079 for (i = 2; i < n; i += 2) { 1080 strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); 1081 } 1082 } else { 1083 for (i = 0; i < n; ++i) { 1084 var code = PDFStringTranslateTable[str.charCodeAt(i)]; 1085 strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); 1086 } 1087 } 1088 1089 return strBuf.join(''); 1090} 1091 1092function stringToUTF8String(str) { 1093 return decodeURIComponent(escape(str)); 1094} 1095 1096function utf8StringToString(str) { 1097 return unescape(encodeURIComponent(str)); 1098} 1099 1100function isEmptyObj(obj) { 1101 for (var key in obj) { 1102 return false; 1103 } 1104 1105 return true; 1106} 1107 1108function isBool(v) { 1109 return typeof v === 'boolean'; 1110} 1111 1112function isNum(v) { 1113 return typeof v === 'number'; 1114} 1115 1116function isString(v) { 1117 return typeof v === 'string'; 1118} 1119 1120function isArrayBuffer(v) { 1121 return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; 1122} 1123 1124function isSpace(ch) { 1125 return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; 1126} 1127 1128function createPromiseCapability() { 1129 var capability = Object.create(null); 1130 var isSettled = false; 1131 Object.defineProperty(capability, 'settled', { 1132 get: function get() { 1133 return isSettled; 1134 } 1135 }); 1136 capability.promise = new Promise(function (resolve, reject) { 1137 capability.resolve = function (data) { 1138 isSettled = true; 1139 resolve(data); 1140 }; 1141 1142 capability.reject = function (reason) { 1143 isSettled = true; 1144 reject(reason); 1145 }; 1146 }); 1147 return capability; 1148} 1149 1150var createObjectURL = function createObjectURLClosure() { 1151 var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
1151+/='; 1152 return function createObjectURL(data, contentType) { 1153 var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 1154 1155 if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { 1156 var blob = new Blob([data], { 1157 type: contentType 1158 }); 1159 return _url_polyfill.URL.createObjectURL(blob); 1160 } 1161 1162 var buffer = 'data:' + contentType + ';base64,'; 1163 1164 for (var i = 0, ii = data.length; i < ii; i += 3) { 1165 var b1 = data[i] & 0xFF; 1166 var b2 = data[i + 1] & 0xFF; 1167 var b3 = data[i + 2] & 0xFF; 1168 var d1 = b1 >> 2, 1169 d2 = (b1 & 3) << 4 | b2 >> 4; 1170 var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; 1171 var d4 = i + 2 < ii ? b3 & 0x3F : 64; 1172 buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; 1173 } 1174 1175 return buffer; 1176 }; 1177}(); 1178 1179exports.createObjectURL = createObjectURL; 1180 1181/***/ }), 1182/* 2 */ 1183/***/ (function(module, exports, __w_pdfjs_require__) { 1184 1185"use strict"; 1186 1187 1188function _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); } 1189 1190var globalScope = __w_pdfjs_require__(3); 1191 1192if (!globalScope._pdfjsCompatibilityChecked) { 1193 globalScope._pdfjsCompatibilityChecked = true; 1194 1195 var isNodeJS = __w_pdfjs_require__(4); 1196 1197 var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; 1198 1199 (function checkNodeBtoa() { 1200 if (globalScope.btoa || !isNodeJS()) { 1201 return; 1202 } 1203 1204 globalScope.btoa = function (chars) { 1205 return Buffer.from(chars, 'binary').toString('base64'); 1206 }; 1207 })(); 1208 1209 (function checkNodeAtob() { 1210 if (globalScope.atob || !isNodeJS()) { 1211 return; 1212 } 1213 1214 globalScope.atob = function (input) { 1215 return Buffer.from(input, 'base64').toString('binary'); 1216 }; 1217 })(); 1218 1219 (function checkChildNodeRemove() { 1220 if (!hasDOM) { 1221 return; 1222 } 1223 1224 if (typeof Element.prototype.remove !== 'undefined') { 1225 return; 1226 } 1227 1228 Element.prototype.remove = function () { 1229 if (this.parentNode) { 1230 this.parentNode.removeChild(this); 1231 } 1232 }; 1233 })(); 1234 1235 (function checkDOMTokenListAddRemove() { 1236 if (!hasDOM || isNodeJS()) { 1237 return; 1238 } 1239 1240 var div = document.createElement('div'); 1241 div.classList.add('testOne', 'testTwo'); 1242 1243 if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { 1244 return; 1245 } 1246 1247 var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; 1248 var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; 1249 1250 DOMTokenList.prototype.add = function () { 1251 for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { 1252 tokens[_key] = arguments[_key]; 1253 } 1254 1255 for (var _i = 0; _i < tokens.length; _i++) { 1256 var token = tokens[_i]; 1257 OriginalDOMTokenListAdd.call(this, token); 1258 } 1259 }; 1260 1261 DOMTokenList.prototype.remove = function () { 1262 for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 1263 tokens[_key2] = arguments[_key2]; 1264 } 1265 1266 for (var _i2 = 0; _i2 < tokens.length; _i2++) { 1267 var token = tokens[_i2]; 1268 OriginalDOMTokenListRemove.call(this, token); 1269 } 1270 }; 1271 })(); 1272 1273 (function checkDOMTokenListToggle() { 1274 if (!hasDOM || isNodeJS()) { 1275 return; 1276 } 1277 1278 var div = document.createElement('div'); 1279 1280 if (div.classList.toggle('test', 0) === false) { 1281 return; 1282 } 1283 1284 DOMTokenList.prototype.toggle = function (token) { 1285 var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); 1286 return this[force ? 'add' : 'remove'](token), force; 1287 }; 1288 })();
1289 1290 (function checkStringStartsWith() { 1291 if (String.prototype.startsWith) { 1292 return; 1293 } 1294 1295 __w_pdfjs_require__(5); 1296 })(); 1297 1298 (function checkStringEndsWith() { 1299 if (String.prototype.endsWith) { 1300 return; 1301 } 1302 1303 __w_pdfjs_require__(35); 1304 })(); 1305 1306 (function checkStringIncludes() { 1307 if (String.prototype.includes) { 1308 return; 1309 } 1310 1311 __w_pdfjs_require__(37); 1312 })(); 1313 1314 (function checkArrayIncludes() { 1315 if (Array.prototype.includes) { 1316 return; 1317 } 1318 1319 __w_pdfjs_require__(39); 1320 })(); 1321 1322 (function checkArrayFrom() { 1323 if (Array.from) { 1324 return; 1325 } 1326 1327 __w_pdfjs_require__(46); 1328 })(); 1329 1330 (function checkObjectAssign() { 1331 if (Object.assign) { 1332 return; 1333 } 1334 1335 __w_pdfjs_require__(69); 1336 })(); 1337 1338 (function checkMathLog2() { 1339 if (Math.log2) { 1340 return; 1341 } 1342 1343 Math.log2 = __w_pdfjs_require__(74); 1344 })(); 1345 1346 (function checkNumberIsNaN() { 1347 if (Number.isNaN) { 1348 return; 1349 } 1350 1351 Number.isNaN = __w_pdfjs_require__(76); 1352 })(); 1353 1354 (function checkNumberIsInteger() { 1355 if (Number.isInteger) { 1356 return; 1357 } 1358 1359 Number.isInteger = __w_pdfjs_require__(78); 1360 })(); 1361 1362 (function checkPromise() { 1363 if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) { 1364 return; 1365 } 1366 1367 globalScope.Promise = __w_pdfjs_require__(81); 1368 })(); 1369 1370 (function checkWeakMap() { 1371 if (globalScope.WeakMap) { 1372 return; 1373 } 1374 1375 globalScope.WeakMap = __w_pdfjs_require__(101); 1376 })(); 1377 1378 (function checkWeakSet() { 1379 if (globalScope.WeakSet) { 1380 return; 1381 } 1382 1383 globalScope.WeakSet = __w_pdfjs_require__(118); 1384 })(); 1385 1386 (function checkStringCodePointAt() { 1387 if (String.codePointAt) { 1388 return; 1389 } 1390 1391 String.codePointAt = __w_pdfjs_require__(122); 1392 })(); 1393 1394 (function checkStringFromCodePoint() { 1395 if (String.fromCodePoint) { 1396 return; 1397 } 1398 1399 String.fromCodePoint = __w_pdfjs_require__(124); 1400 })(); 1401 1402 (function checkSymbol() { 1403 if (globalScope.Symbol) { 1404 return; 1405 } 1406 1407 __w_pdfjs_require__(126); 1408 })(); 1409 1410 (function checkStringPadStart() { 1411 if (String.prototype.padStart) { 1412 return; 1413 } 1414 1415 __w_pdfjs_require__(133); 1416 })(); 1417 1418 (function checkStringPadEnd() { 1419 if (String.prototype.padEnd) { 1420 return; 1421 } 1422 1423 __w_pdfjs_require__(137); 1424 })(); 1425 1426 (function checkObjectValues() { 1427 if (Object.values) { 1428 return; 1429 } 1430 1431 Object.values = __w_pdfjs_require__(139); 1432 })(); 1433} 1434 1435/***/ }), 1436/* 3 */ 1437/***/ (function(module, exports, __w_pdfjs_require__) { 1438 1439"use strict"; 1440 1441 1442module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; 1443 1444/***/ }), 1445/* 4 */ 1446/***/ (function(module, exports, __w_pdfjs_require__) { 1447 1448"use strict"; 1449 1450 1451function _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); } 1452 1453module.exports = function isNodeJS() { 1454 return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw']; 1455}; 1456 1457/***/ }), 1458/* 5 */ 1459/***/ (function(module, exports, __w_pdfjs_require__) { 1460 1461"use strict"; 1462 1463 1464__w_pdfjs_require__(6); 1465 1466module.exports = __w_pdfjs_require__(9).String.startsWith; 1467 1468/***/ }), 1469/* 6 */ 1470/***/ (function(module, exports, __w_pdfjs_require__) { 1471 1472"use strict"; 1473 1474 1475var $export = __w_pdfjs_require__(7); 1476 1477var toLength = __w_pdfjs_require__(25); 1478 1479var context = __w_pdfjs_require__(27); 1480 1481var STARTS_WITH = 'startsWith'; 1482var $startsWith = ''[STARTS_WITH]; 1483$export($export.P + $export.F * __w_pdfjs_require__(34)(STARTS_WITH), 'String', { 1484 startsWith: function startsWith(searchString) { 1485 var that = context(this, searchString, STARTS_WITH); 1486 var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); 1487 var search = String(searchString); 1488 return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; 1489 } 1490}); 1491 1492/***/ }), 1493/* 7 */ 1494/***/ (function(module, exports, __w_pdfjs_require__) { 1495 1496"use strict"; 1497 1498 1499var global = __w_pdfjs_require__(8); 1500 1501var core = __w_pdfjs_require__(9); 1502 1503var hide = __w_pdfjs_require__(10); 1504 1505var redefine = __w_pdfjs_require__(20); 1506 1507var ctx = __w_pdfjs_require__(23); 1508 1509var PROTOTYPE = 'prototype'; 1510
1511var $export = function $export(type, name, source) { 1512 var IS_FORCED = type & $export.F; 1513 var IS_GLOBAL = type & $export.G; 1514 var IS_STATIC = type & $export.S; 1515 var IS_PROTO = type & $export.P; 1516 var IS_BIND = type & $export.B; 1517 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; 1518 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 1519 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); 1520 var key, own, out, exp; 1521 if (IS_GLOBAL) source = name; 1522 1523 for (key in source) { 1524 own = !IS_FORCED && target && target[key] !== undefined; 1525 out = (own ? target : source)[key]; 1526 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 1527 if (target) redefine(target, key, out, type & $export.U); 1528 if (exports[key] != out) hide(exports, key, exp); 1529 if (IS_PROTO && expProto[key] != out) expProto[key] = out; 1530 } 1531}; 1532 1533global.core = core; 1534$export.F = 1; 1535$export.G = 2; 1536$export.S = 4; 1537$export.P = 8; 1538$export.B = 16; 1539$export.W = 32; 1540$export.U = 64; 1541$export.R = 128; 1542module.exports = $export; 1543 1544/***/ }), 1545/* 8 */ 1546/***/ (function(module, exports, __w_pdfjs_require__) { 1547 1548"use strict"; 1549 1550 1551var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); 1552if (typeof __g == 'number') __g = global; 1553 1554/***/ }), 1555/* 9 */ 1556/***/ (function(module, exports, __w_pdfjs_require__) { 1557 1558"use strict"; 1559 1560 1561var core = module.exports = { 1562 version: '2.6.2' 1563}; 1564if (typeof __e == 'number') __e = core; 1565 1566/***/ }), 1567/* 10 */ 1568/***/ (function(module, exports, __w_pdfjs_require__) { 1569 1570"use strict"; 1571 1572 1573var dP = __w_pdfjs_require__(11); 1574 1575var createDesc = __w_pdfjs_require__(19); 1576 1577module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { 1578 return dP.f(object, key, createDesc(1, value)); 1579} : function (object, key, value) { 1580 object[key] = value; 1581 return object; 1582}; 1583 1584/***/ }), 1585/* 11 */ 1586/***/ (function(module, exports, __w_pdfjs_require__) { 1587 1588"use strict"; 1589 1590 1591var anObject = __w_pdfjs_require__(12); 1592 1593var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 1594 1595var toPrimitive = __w_pdfjs_require__(18); 1596 1597var dP = Object.defineProperty; 1598exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { 1599 anObject(O); 1600 P = toPrimitive(P, true); 1601 anObject(Attributes); 1602 if (IE8_DOM_DEFINE) try { 1603 return dP(O, P, Attributes); 1604 } catch (e) {} 1605 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 1606 if ('value' in Attributes) O[P] = Attributes.value; 1607 return O; 1608}; 1609 1610/***/ }), 1611/* 12 */ 1612/***/ (function(module, exports, __w_pdfjs_require__) { 1613 1614"use strict"; 1615 1616 1617var isObject = __w_pdfjs_require__(13); 1618 1619module.exports = function (it) { 1620 if (!isObject(it)) throw TypeError(it + ' is not an object!'); 1621 return it; 1622}; 1623 1624/***/ }), 1625/* 13 */ 1626/***/ (function(module, exports, __w_pdfjs_require__) { 1627 1628"use strict"; 1629 1630 1631function _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); } 1632 1633module.exports = function (it) { 1634 return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; 1635}; 1636 1637/***/ }), 1638/* 14 */ 1639/***/ (function(module, exports, __w_pdfjs_require__) { 1640 1641"use strict"; 1642 1643 1644module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { 1645 return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { 1646 get: function get() { 1647 return 7; 1648 } 1649 }).a != 7; 1650}); 1651 1652/***/ }), 1653/* 15 */ 1654/***/ (function(module, exports, __w_pdfjs_require__) { 1655 1656"use strict"; 1657 1658 1659module.exports = !__w_pdfjs_require__(16)(function () { 1660 return Object.defineProperty({}, 'a', { 1661 get: function get() { 1662 return 7; 1663 } 1664 }).a != 7; 1665}); 1666 1667/***/ }), 1668/* 16 */ 1669/***/ (function(module, exports, __w_pdfjs_require__) { 1670 1671"use strict"; 1672 1673 1674module.exports = function (exec) { 1675 try { 1676 return !!exec();
vendor: 5,478 bytes, lines 1677-1940
1677 } catch (e) { 1678 return true; 1679 } 1680}; 1681 1682/***/ }), 1683/* 17 */ 1684/***/ (function(module, exports, __w_pdfjs_require__) { 1685 1686"use strict"; 1687 1688 1689var isObject = __w_pdfjs_require__(13); 1690 1691var document = __w_pdfjs_require__(8).document; 1692 1693var is = isObject(document) && isObject(document.createElement); 1694 1695module.exports = function (it) { 1696 return is ? document.createElement(it) : {}; 1697}; 1698 1699/***/ }), 1700/* 18 */ 1701/***/ (function(module, exports, __w_pdfjs_require__) { 1702 1703"use strict"; 1704 1705 1706var isObject = __w_pdfjs_require__(13); 1707 1708module.exports = function (it, S) { 1709 if (!isObject(it)) return it; 1710 var fn, val; 1711 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1712 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 1713 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1714 throw TypeError("Can't convert object to primitive value"); 1715}; 1716 1717/***/ }), 1718/* 19 */ 1719/***/ (function(module, exports, __w_pdfjs_require__) { 1720 1721"use strict"; 1722 1723 1724module.exports = function (bitmap, value) { 1725 return { 1726 enumerable: !(bitmap & 1), 1727 configurable: !(bitmap & 2), 1728 writable: !(bitmap & 4), 1729 value: value 1730 }; 1731}; 1732 1733/***/ }), 1734/* 20 */ 1735/***/ (function(module, exports, __w_pdfjs_require__) { 1736 1737"use strict"; 1738 1739 1740var global = __w_pdfjs_require__(8); 1741 1742var hide = __w_pdfjs_require__(10); 1743 1744var has = __w_pdfjs_require__(21); 1745 1746var SRC = __w_pdfjs_require__(22)('src'); 1747 1748var TO_STRING = 'toString'; 1749var $toString = Function[TO_STRING]; 1750var TPL = ('' + $toString).split(TO_STRING); 1751 1752__w_pdfjs_require__(9).inspectSource = function (it) { 1753 return $toString.call(it); 1754}; 1755 1756(module.exports = function (O, key, val, safe) { 1757 var isFunction = typeof val == 'function'; 1758 if (isFunction) has(val, 'name') || hide(val, 'name', key); 1759 if (O[key] === val) return; 1760 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); 1761 1762 if (O === global) { 1763 O[key] = val; 1764 } else if (!safe) { 1765 delete O[key]; 1766 hide(O, key, val); 1767 } else if (O[key]) { 1768 O[key] = val; 1769 } else { 1770 hide(O, key, val); 1771 } 1772})(Function.prototype, TO_STRING, function toString() { 1773 return typeof this == 'function' && this[SRC] || $toString.call(this); 1774}); 1775 1776/***/ }), 1777/* 21 */ 1778/***/ (function(module, exports, __w_pdfjs_require__) { 1779 1780"use strict"; 1781 1782 1783var hasOwnProperty = {}.hasOwnProperty; 1784 1785module.exports = function (it, key) { 1786 return hasOwnProperty.call(it, key); 1787}; 1788 1789/***/ }), 1790/* 22 */ 1791/***/ (function(module, exports, __w_pdfjs_require__) { 1792 1793"use strict"; 1794 1795 1796var id = 0; 1797var px = Math.random(); 1798 1799module.exports = function (key) { 1800 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 1801}; 1802 1803/***/ }), 1804/* 23 */ 1805/***/ (function(module, exports, __w_pdfjs_require__) { 1806 1807"use strict"; 1808 1809 1810var aFunction = __w_pdfjs_require__(24); 1811 1812module.exports = function (fn, that, length) { 1813 aFunction(fn); 1814 if (that === undefined) return fn; 1815 1816 switch (length) { 1817 case 1: 1818 return function (a) { 1819 return fn.call(that, a); 1820 }; 1821 1822 case 2: 1823 return function (a, b) { 1824 return fn.call(that, a, b); 1825 }; 1826 1827 case 3: 1828 return function (a, b, c) { 1829 return fn.call(that, a, b, c); 1830 }; 1831 } 1832 1833 return function () { 1834 return fn.apply(that, arguments); 1835 }; 1836}; 1837 1838/***/ }), 1839/* 24 */ 1840/***/ (function(module, exports, __w_pdfjs_require__) { 1841 1842"use strict"; 1843 1844 1845module.exports = function (it) { 1846 if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 1847 return it; 1848}; 1849 1850/***/ }), 1851/* 25 */ 1852/***/ (function(module, exports, __w_pdfjs_require__) { 1853 1854"use strict"; 1855 1856 1857var toInteger = __w_pdfjs_require__(26); 1858 1859var min = Math.min; 1860 1861module.exports = function (it) { 1862 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; 1863}; 1864 1865/***/ }), 1866/* 26 */ 1867/***/ (function(module, exports, __w_pdfjs_require__) { 1868 1869"use strict"; 1870 1871 1872var ceil = Math.ceil; 1873var floor = Math.floor; 1874 1875module.exports = function (it) { 1876 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 1877}; 1878 1879/***/ }), 1880/* 27 */ 1881/***/ (function(module, exports, __w_pdfjs_require__) { 1882 1883"use strict"; 1884 1885 1886var isRegExp = __w_pdfjs_require__(28); 1887 1888var defined = __w_pdfjs_require__(33); 1889 1890module.exports = function (that, searchString, NAME) { 1891 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); 1892 return String(defined(that)); 1893}; 1894 1895/***/ }), 1896/* 28 */ 1897/***/ (function(module, exports, __w_pdfjs_require__) { 1898 1899"use strict"; 1900 1901 1902var isObject = __w_pdfjs_require__(13); 1903 1904var cof = __w_pdfjs_require__(29); 1905 1906var MATCH = __w_pdfjs_require__(30)('match'); 1907 1908module.exports = function (it) { 1909 var isRegExp; 1910 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); 1911}; 1912 1913/***/ }), 1914/* 29 */ 1915/***/ (function(module, exports, __w_pdfjs_require__) { 1916 1917"use strict"; 1918 1919 1920var toString = {}.toString; 1921 1922module.exports = function (it) { 1923 return toString.call(it).slice(8, -1); 1924}; 1925 1926/***/ }), 1927/* 30 */ 1928/***/ (function(module, exports, __w_pdfjs_require__) { 1929 1930"use strict"; 1931 1932 1933var store = __w_pdfjs_require__(31)('wks'); 1934 1935var uid = __w_pdfjs_require__(22); 1936 1937var _Symbol = __w_pdfjs_require__(8).Symbol; 1938 1939var USE_SYMBOL = typeof _Symbol == 'function'; 1940
vendor: 4,187 bytes, lines 1941-2127
1941var $exports = module.exports = function (name) { 1942 return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); 1943}; 1944 1945$exports.store = store; 1946 1947/***/ }), 1948/* 31 */ 1949/***/ (function(module, exports, __w_pdfjs_require__) { 1950 1951"use strict"; 1952 1953 1954var core = __w_pdfjs_require__(9); 1955 1956var global = __w_pdfjs_require__(8); 1957 1958var SHARED = '__core-js_shared__'; 1959var store = global[SHARED] || (global[SHARED] = {}); 1960(module.exports = function (key, value) { 1961 return store[key] || (store[key] = value !== undefined ? value : {}); 1962})('versions', []).push({ 1963 version: core.version, 1964 mode: __w_pdfjs_require__(32) ? 'pure' : 'global', 1965 copyright: '© 2019 Denis Pushkarev (zloirock.ru)' 1966}); 1967 1968/***/ }), 1969/* 32 */ 1970/***/ (function(module, exports, __w_pdfjs_require__) { 1971 1972"use strict"; 1973 1974 1975module.exports = false; 1976 1977/***/ }), 1978/* 33 */ 1979/***/ (function(module, exports, __w_pdfjs_require__) { 1980 1981"use strict"; 1982 1983 1984module.exports = function (it) { 1985 if (it == undefined) throw TypeError("Can't call method on " + it); 1986 return it; 1987}; 1988 1989/***/ }), 1990/* 34 */ 1991/***/ (function(module, exports, __w_pdfjs_require__) { 1992 1993"use strict"; 1994 1995 1996var MATCH = __w_pdfjs_require__(30)('match'); 1997 1998module.exports = function (KEY) { 1999 var re = /./; 2000 2001 try { 2002 '/./'[KEY](re); 2003 } catch (e) { 2004 try { 2005 re[MATCH] = false; 2006 return !'/./'[KEY](re); 2007 } catch (f) {} 2008 } 2009 2010 return true; 2011}; 2012 2013/***/ }), 2014/* 35 */ 2015/***/ (function(module, exports, __w_pdfjs_require__) { 2016 2017"use strict"; 2018 2019 2020__w_pdfjs_require__(36); 2021 2022module.exports = __w_pdfjs_require__(9).String.endsWith; 2023 2024/***/ }), 2025/* 36 */ 2026/***/ (function(module, exports, __w_pdfjs_require__) { 2027 2028"use strict"; 2029 2030 2031var $export = __w_pdfjs_require__(7); 2032 2033var toLength = __w_pdfjs_require__(25); 2034 2035var context = __w_pdfjs_require__(27); 2036 2037var ENDS_WITH = 'endsWith'; 2038var $endsWith = ''[ENDS_WITH]; 2039$export($export.P + $export.F * __w_pdfjs_require__(34)(ENDS_WITH), 'String', { 2040 endsWith: function endsWith(searchString) { 2041 var that = context(this, searchString, ENDS_WITH); 2042 var endPosition = arguments.length > 1 ? arguments[1] : undefined; 2043 var len = toLength(that.length); 2044 var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); 2045 var search = String(searchString); 2046 return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; 2047 } 2048}); 2049 2050/***/ }), 2051/* 37 */ 2052/***/ (function(module, exports, __w_pdfjs_require__) { 2053 2054"use strict"; 2055 2056 2057__w_pdfjs_require__(38); 2058 2059module.exports = __w_pdfjs_require__(9).String.includes; 2060 2061/***/ }), 2062/* 38 */ 2063/***/ (function(module, exports, __w_pdfjs_require__) { 2064 2065"use strict"; 2066 2067 2068var $export = __w_pdfjs_require__(7); 2069 2070var context = __w_pdfjs_require__(27); 2071 2072var INCLUDES = 'includes'; 2073$export($export.P + $export.F * __w_pdfjs_require__(34)(INCLUDES), 'String', { 2074 includes: function includes(searchString) { 2075 return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); 2076 } 2077}); 2078 2079/***/ }), 2080/* 39 */ 2081/***/ (function(module, exports, __w_pdfjs_require__) { 2082 2083"use strict"; 2084 2085 2086__w_pdfjs_require__(40); 2087 2088module.exports = __w_pdfjs_require__(9).Array.includes; 2089 2090/***/ }), 2091/* 40 */ 2092/***/ (function(module, exports, __w_pdfjs_require__) { 2093 2094"use strict"; 2095 2096 2097var $export = __w_pdfjs_require__(7); 2098 2099var $includes = __w_pdfjs_require__(41)(true); 2100 2101$export($export.P, 'Array', { 2102 includes: function includes(el) { 2103 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 2104 } 2105}); 2106 2107__w_pdfjs_require__(45)('includes'); 2108 2109/***/ }), 2110/* 41 */ 2111/***/ (function(module, exports, __w_pdfjs_require__) { 2112 2113"use strict"; 2114 2115 2116var toIObject = __w_pdfjs_require__(42); 2117 2118var toLength = __w_pdfjs_require__(25); 2119 2120var toAbsoluteIndex = __w_pdfjs_require__(44); 2121 2122module.exports = function (IS_INCLUDES) { 2123 return function ($this, el, fromIndex) { 2124 var O = toIObject($this); 2125 var length = toLength(O.length); 2126 var index = toAbsoluteIndex(fromIndex, length); 2127 var value;
vendor: 9,576 bytes, lines 2128-2549
2128 if (IS_INCLUDES && el != el) while (length > index) { 2129 value = O[index++]; 2130 if (value != value) return true; 2131 } else for (; length > index; index++) { 2132 if (IS_INCLUDES || index in O) { 2133 if (O[index] === el) return IS_INCLUDES || index || 0; 2134 } 2135 } 2136 return !IS_INCLUDES && -1; 2137 }; 2138}; 2139 2140/***/ }), 2141/* 42 */ 2142/***/ (function(module, exports, __w_pdfjs_require__) { 2143 2144"use strict"; 2145 2146 2147var IObject = __w_pdfjs_require__(43); 2148 2149var defined = __w_pdfjs_require__(33); 2150 2151module.exports = function (it) { 2152 return IObject(defined(it)); 2153}; 2154 2155/***/ }), 2156/* 43 */ 2157/***/ (function(module, exports, __w_pdfjs_require__) { 2158 2159"use strict"; 2160 2161 2162var cof = __w_pdfjs_require__(29); 2163 2164module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 2165 return cof(it) == 'String' ? it.split('') : Object(it); 2166}; 2167 2168/***/ }), 2169/* 44 */ 2170/***/ (function(module, exports, __w_pdfjs_require__) { 2171 2172"use strict"; 2173 2174 2175var toInteger = __w_pdfjs_require__(26); 2176 2177var max = Math.max; 2178var min = Math.min; 2179 2180module.exports = function (index, length) { 2181 index = toInteger(index); 2182 return index < 0 ? max(index + length, 0) : min(index, length); 2183}; 2184 2185/***/ }), 2186/* 45 */ 2187/***/ (function(module, exports, __w_pdfjs_require__) { 2188 2189"use strict"; 2190 2191 2192var UNSCOPABLES = __w_pdfjs_require__(30)('unscopables'); 2193 2194var ArrayProto = Array.prototype; 2195if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); 2196 2197module.exports = function (key) { 2198 ArrayProto[UNSCOPABLES][key] = true; 2199}; 2200 2201/***/ }), 2202/* 46 */ 2203/***/ (function(module, exports, __w_pdfjs_require__) { 2204 2205"use strict"; 2206 2207 2208__w_pdfjs_require__(47); 2209 2210__w_pdfjs_require__(62); 2211 2212module.exports = __w_pdfjs_require__(9).Array.from; 2213 2214/***/ }), 2215/* 47 */ 2216/***/ (function(module, exports, __w_pdfjs_require__) { 2217 2218"use strict"; 2219 2220 2221var $at = __w_pdfjs_require__(48)(true); 2222 2223__w_pdfjs_require__(49)(String, 'String', function (iterated) { 2224 this._t = String(iterated); 2225 this._i = 0; 2226}, function () { 2227 var O = this._t; 2228 var index = this._i; 2229 var point; 2230 if (index >= O.length) return { 2231 value: undefined, 2232 done: true 2233 }; 2234 point = $at(O, index); 2235 this._i += point.length; 2236 return { 2237 value: point, 2238 done: false 2239 }; 2240}); 2241 2242/***/ }), 2243/* 48 */ 2244/***/ (function(module, exports, __w_pdfjs_require__) { 2245 2246"use strict"; 2247 2248 2249var toInteger = __w_pdfjs_require__(26); 2250 2251var defined = __w_pdfjs_require__(33); 2252 2253module.exports = function (TO_STRING) { 2254 return function (that, pos) { 2255 var s = String(defined(that)); 2256 var i = toInteger(pos); 2257 var l = s.length; 2258 var a, b; 2259 if (i < 0 || i >= l) return TO_STRING ? '' : undefined; 2260 a = s.charCodeAt(i); 2261 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; 2262 }; 2263}; 2264 2265/***/ }), 2266/* 49 */ 2267/***/ (function(module, exports, __w_pdfjs_require__) { 2268 2269"use strict"; 2270 2271 2272var LIBRARY = __w_pdfjs_require__(32); 2273 2274var $export = __w_pdfjs_require__(7); 2275 2276var redefine = __w_pdfjs_require__(20); 2277 2278var hide = __w_pdfjs_require__(10); 2279 2280var Iterators = __w_pdfjs_require__(50); 2281 2282var $iterCreate = __w_pdfjs_require__(51); 2283 2284var setToStringTag = __w_pdfjs_require__(59); 2285 2286var getPrototypeOf = __w_pdfjs_require__(60); 2287 2288var ITERATOR = __w_pdfjs_require__(30)('iterator'); 2289 2290var BUGGY = !([].keys && 'next' in [].keys()); 2291var FF_ITERATOR = '@@iterator'; 2292var KEYS = 'keys'; 2293var VALUES = 'values'; 2294 2295var returnThis = function returnThis() { 2296 return this; 2297}; 2298 2299module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 2300 $iterCreate(Constructor, NAME, next); 2301 2302 var getMethod = function getMethod(kind) { 2303 if (!BUGGY && kind in proto) return proto[kind]; 2304 2305 switch (kind) { 2306 case KEYS: 2307 return function keys() { 2308 return new Constructor(this, kind); 2309 }; 2310 2311 case VALUES: 2312 return function values() { 2313 return new Constructor(this, kind); 2314 }; 2315 } 2316 2317 return function entries() { 2318 return new Constructor(this, kind); 2319 }; 2320 }; 2321 2322 var TAG = NAME + ' Iterator'; 2323 var DEF_VALUES = DEFAULT == VALUES; 2324 var VALUES_BUG = false; 2325 var proto = Base.prototype; 2326 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 2327 var $default = $native || getMethod(DEFAULT); 2328 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 2329 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 2330 var methods, key, IteratorPrototype; 2331 2332 if ($anyNative) { 2333 IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 2334 2335 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 2336 setToStringTag(IteratorPrototype, TAG, true); 2337 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); 2338 } 2339 } 2340 2341 if (DEF_VALUES && $native && $native.name !== VALUES) { 2342 VALUES_BUG = true; 2343 2344 $default = function values() { 2345 return $native.call(this); 2346 }; 2347 } 2348 2349 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 2350 hide(proto, ITERATOR, $default); 2351 } 2352 2353 Iterators[NAME] = $default; 2354 Iterators[TAG] = returnThis; 2355 2356 if (DEFAULT) { 2357 methods = { 2358 values: DEF_VALUES ? $default : getMethod(VALUES), 2359 keys: IS_SET ? $default : getMethod(KEYS), 2360 entries: $entries 2361 }; 2362 if (FORCED) for (key in methods) { 2363 if (!(key in proto)) redefine(proto, key, methods[key]); 2364 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 2365 } 2366 2367 return methods; 2368}; 2369 2370/***/ }), 2371/* 50 */ 2372/***/ (function(module, exports, __w_pdfjs_require__) { 2373 2374"use strict"; 2375 2376 2377module.exports = {}; 2378 2379/***/ }), 2380/* 51 */ 2381/***/ (function(module, exports, __w_pdfjs_require__) { 2382 2383"use strict"; 2384 2385 2386var create = __w_pdfjs_require__(52); 2387 2388var descriptor = __w_pdfjs_require__(19); 2389 2390var setToStringTag = __w_pdfjs_require__(59); 2391 2392var IteratorPrototype = {}; 2393 2394__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(30)('iterator'), function () { 2395 return this; 2396}); 2397 2398module.exports = function (Constructor, NAME, next) { 2399 Constructor.prototype = create(IteratorPrototype, { 2400 next: descriptor(1, next) 2401 }); 2402 setToStringTag(Constructor, NAME + ' Iterator'); 2403}; 2404 2405/***/ }), 2406/* 52 */ 2407/***/ (function(module, exports, __w_pdfjs_require__) { 2408 2409"use strict"; 2410 2411 2412var anObject = __w_pdfjs_require__(12); 2413 2414var dPs = __w_pdfjs_require__(53); 2415 2416var enumBugKeys = __w_pdfjs_require__(57); 2417 2418var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO'); 2419 2420var Empty = function Empty() {}; 2421 2422var PROTOTYPE = 'prototype'; 2423 2424var _createDict = function createDict() { 2425 var iframe = __w_pdfjs_require__(17)('iframe'); 2426 2427 var i = enumBugKeys.length; 2428 var lt = '<'; 2429 var gt = '>'; 2430 var iframeDocument; 2431 iframe.style.display = 'none'; 2432 2433 __w_pdfjs_require__(58).appendChild(iframe); 2434 2435 iframe.src = 'javascript:'; 2436 iframeDocument = iframe.contentWindow.document; 2437 iframeDocument.open(); 2438 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 2439 iframeDocument.close(); 2440 _createDict = iframeDocument.F; 2441 2442 while (i--) { 2443 delete _createDict[PROTOTYPE][enumBugKeys[i]]; 2444 } 2445 2446 return _createDict(); 2447}; 2448 2449module.exports = Object.create || function create(O, Properties) { 2450 var result; 2451 2452 if (O !== null) { 2453 Empty[PROTOTYPE] = anObject(O); 2454 result = new Empty(); 2455 Empty[PROTOTYPE] = null; 2456 result[IE_PROTO] = O; 2457 } else result = _createDict(); 2458 2459 return Properties === undefined ? result : dPs(result, Properties); 2460}; 2461 2462/***/ }), 2463/* 53 */ 2464/***/ (function(module, exports, __w_pdfjs_require__) { 2465 2466"use strict"; 2467 2468 2469var dP = __w_pdfjs_require__(11); 2470 2471var anObject = __w_pdfjs_require__(12); 2472 2473var getKeys = __w_pdfjs_require__(54); 2474 2475module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { 2476 anObject(O); 2477 var keys = getKeys(Properties); 2478 var length = keys.length; 2479 var i = 0; 2480 var P; 2481 2482 while (length > i) { 2483 dP.f(O, P = keys[i++], Properties[P]); 2484 } 2485 2486 return O; 2487}; 2488 2489/***/ }), 2490/* 54 */ 2491/***/ (function(module, exports, __w_pdfjs_require__) { 2492 2493"use strict"; 2494 2495 2496var $keys = __w_pdfjs_require__(55); 2497 2498var enumBugKeys = __w_pdfjs_require__(57); 2499 2500module.exports = Object.keys || function keys(O) { 2501 return $keys(O, enumBugKeys); 2502}; 2503 2504/***/ }), 2505/* 55 */ 2506/***/ (function(module, exports, __w_pdfjs_require__) { 2507 2508"use strict"; 2509 2510 2511var has = __w_pdfjs_require__(21); 2512 2513var toIObject = __w_pdfjs_require__(42); 2514 2515var arrayIndexOf = __w_pdfjs_require__(41)(false); 2516 2517var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO'); 2518 2519module.exports = function (object, names) { 2520 var O = toIObject(object); 2521 var i = 0; 2522 var result = []; 2523 var key; 2524 2525 for (key in O) { 2526 if (key != IE_PROTO) has(O, key) && result.push(key); 2527 } 2528 2529 while (names.length > i) { 2530 if (has(O, key = names[i++])) { 2531 ~arrayIndexOf(result, key) || result.push(key); 2532 } 2533 } 2534 2535 return result; 2536}; 2537 2538/***/ }), 2539/* 56 */ 2540/***/ (function(module, exports, __w_pdfjs_require__) { 2541 2542"use strict"; 2543 2544 2545var shared = __w_pdfjs_require__(31)('keys'); 2546 2547var uid = __w_pdfjs_require__(22); 2548 2549module.exports = function (key) {
vendor: 4,508 bytes, lines 2550-2745
2550 return shared[key] || (shared[key] = uid(key)); 2551}; 2552 2553/***/ }), 2554/* 57 */ 2555/***/ (function(module, exports, __w_pdfjs_require__) { 2556 2557"use strict"; 2558 2559 2560module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); 2561 2562/***/ }), 2563/* 58 */ 2564/***/ (function(module, exports, __w_pdfjs_require__) { 2565 2566"use strict"; 2567 2568 2569var document = __w_pdfjs_require__(8).document; 2570 2571module.exports = document && document.documentElement; 2572 2573/***/ }), 2574/* 59 */ 2575/***/ (function(module, exports, __w_pdfjs_require__) { 2576 2577"use strict"; 2578 2579 2580var def = __w_pdfjs_require__(11).f; 2581 2582var has = __w_pdfjs_require__(21); 2583 2584var TAG = __w_pdfjs_require__(30)('toStringTag'); 2585 2586module.exports = function (it, tag, stat) { 2587 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { 2588 configurable: true, 2589 value: tag 2590 }); 2591}; 2592 2593/***/ }), 2594/* 60 */ 2595/***/ (function(module, exports, __w_pdfjs_require__) { 2596 2597"use strict"; 2598 2599 2600var has = __w_pdfjs_require__(21); 2601 2602var toObject = __w_pdfjs_require__(61); 2603 2604var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO'); 2605 2606var ObjectProto = Object.prototype; 2607 2608module.exports = Object.getPrototypeOf || function (O) { 2609 O = toObject(O); 2610 if (has(O, IE_PROTO)) return O[IE_PROTO]; 2611 2612 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 2613 return O.constructor.prototype; 2614 } 2615 2616 return O instanceof Object ? ObjectProto : null; 2617}; 2618 2619/***/ }), 2620/* 61 */ 2621/***/ (function(module, exports, __w_pdfjs_require__) { 2622 2623"use strict"; 2624 2625 2626var defined = __w_pdfjs_require__(33); 2627 2628module.exports = function (it) { 2629 return Object(defined(it)); 2630}; 2631 2632/***/ }), 2633/* 62 */ 2634/***/ (function(module, exports, __w_pdfjs_require__) { 2635 2636"use strict"; 2637 2638 2639var ctx = __w_pdfjs_require__(23); 2640 2641var $export = __w_pdfjs_require__(7); 2642 2643var toObject = __w_pdfjs_require__(61); 2644 2645var call = __w_pdfjs_require__(63); 2646 2647var isArrayIter = __w_pdfjs_require__(64); 2648 2649var toLength = __w_pdfjs_require__(25); 2650 2651var createProperty = __w_pdfjs_require__(65); 2652 2653var getIterFn = __w_pdfjs_require__(66); 2654 2655$export($export.S + $export.F * !__w_pdfjs_require__(68)(function (iter) { 2656 Array.from(iter); 2657}), 'Array', { 2658 from: function from(arrayLike) { 2659 var O = toObject(arrayLike); 2660 var C = typeof this == 'function' ? this : Array; 2661 var aLen = arguments.length; 2662 var mapfn = aLen > 1 ? arguments[1] : undefined; 2663 var mapping = mapfn !== undefined; 2664 var index = 0; 2665 var iterFn = getIterFn(O); 2666 var length, result, step, iterator; 2667 if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); 2668 2669 if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { 2670 for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { 2671 createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); 2672 } 2673 } else { 2674 length = toLength(O.length); 2675 2676 for (result = new C(length); length > index; index++) { 2677 createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); 2678 } 2679 } 2680 2681 result.length = index; 2682 return result; 2683 } 2684}); 2685 2686/***/ }), 2687/* 63 */ 2688/***/ (function(module, exports, __w_pdfjs_require__) { 2689 2690"use strict"; 2691 2692 2693var anObject = __w_pdfjs_require__(12); 2694 2695module.exports = function (iterator, fn, value, entries) { 2696 try { 2697 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 2698 } catch (e) { 2699 var ret = iterator['return']; 2700 if (ret !== undefined) anObject(ret.call(iterator)); 2701 throw e; 2702 } 2703}; 2704 2705/***/ }), 2706/* 64 */ 2707/***/ (function(module, exports, __w_pdfjs_require__) { 2708 2709"use strict"; 2710 2711 2712var Iterators = __w_pdfjs_require__(50); 2713 2714var ITERATOR = __w_pdfjs_require__(30)('iterator'); 2715 2716var ArrayProto = Array.prototype; 2717 2718module.exports = function (it) { 2719 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 2720}; 2721 2722/***/ }), 2723/* 65 */ 2724/***/ (function(module, exports, __w_pdfjs_require__) { 2725 2726"use strict"; 2727 2728 2729var $defineProperty = __w_pdfjs_require__(11); 2730 2731var createDesc = __w_pdfjs_require__(19); 2732 2733module.exports = function (object, index, value) { 2734 if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; 2735}; 2736 2737/***/ }), 2738/* 66 */ 2739/***/ (function(module, exports, __w_pdfjs_require__) { 2740 2741"use strict"; 2742 2743 2744var classof = __w_pdfjs_require__(67); 2745
vendor: 4,229 bytes, lines 2746-2962
2746var ITERATOR = __w_pdfjs_require__(30)('iterator'); 2747 2748var Iterators = __w_pdfjs_require__(50); 2749 2750module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { 2751 if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; 2752}; 2753 2754/***/ }), 2755/* 67 */ 2756/***/ (function(module, exports, __w_pdfjs_require__) { 2757 2758"use strict"; 2759 2760 2761var cof = __w_pdfjs_require__(29); 2762 2763var TAG = __w_pdfjs_require__(30)('toStringTag'); 2764 2765var ARG = cof(function () { 2766 return arguments; 2767}()) == 'Arguments'; 2768 2769var tryGet = function tryGet(it, key) { 2770 try { 2771 return it[key]; 2772 } catch (e) {} 2773}; 2774 2775module.exports = function (it) { 2776 var O, T, B; 2777 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; 2778}; 2779 2780/***/ }), 2781/* 68 */ 2782/***/ (function(module, exports, __w_pdfjs_require__) { 2783 2784"use strict"; 2785 2786 2787var ITERATOR = __w_pdfjs_require__(30)('iterator'); 2788 2789var SAFE_CLOSING = false; 2790 2791try { 2792 var riter = [7][ITERATOR](); 2793 2794 riter['return'] = function () { 2795 SAFE_CLOSING = true; 2796 }; 2797 2798 Array.from(riter, function () { 2799 throw 2; 2800 }); 2801} catch (e) {} 2802 2803module.exports = function (exec, skipClosing) { 2804 if (!skipClosing && !SAFE_CLOSING) return false; 2805 var safe = false; 2806 2807 try { 2808 var arr = [7]; 2809 var iter = arr[ITERATOR](); 2810 2811 iter.next = function () { 2812 return { 2813 done: safe = true 2814 }; 2815 }; 2816 2817 arr[ITERATOR] = function () { 2818 return iter; 2819 }; 2820 2821 exec(arr); 2822 } catch (e) {} 2823 2824 return safe; 2825}; 2826 2827/***/ }), 2828/* 69 */ 2829/***/ (function(module, exports, __w_pdfjs_require__) { 2830 2831"use strict"; 2832 2833 2834__w_pdfjs_require__(70); 2835 2836module.exports = __w_pdfjs_require__(9).Object.assign; 2837 2838/***/ }), 2839/* 70 */ 2840/***/ (function(module, exports, __w_pdfjs_require__) { 2841 2842"use strict"; 2843 2844 2845var $export = __w_pdfjs_require__(7); 2846 2847$export($export.S + $export.F, 'Object', { 2848 assign: __w_pdfjs_require__(71) 2849}); 2850 2851/***/ }), 2852/* 71 */ 2853/***/ (function(module, exports, __w_pdfjs_require__) { 2854 2855"use strict"; 2856 2857 2858var getKeys = __w_pdfjs_require__(54); 2859 2860var gOPS = __w_pdfjs_require__(72); 2861 2862var pIE = __w_pdfjs_require__(73); 2863 2864var toObject = __w_pdfjs_require__(61); 2865 2866var IObject = __w_pdfjs_require__(43); 2867 2868var $assign = Object.assign; 2869module.exports = !$assign || __w_pdfjs_require__(16)(function () { 2870 var A = {}; 2871 var B = {}; 2872 var S = Symbol(); 2873 var K = 'abcdefghijklmnopqrst'; 2874 A[S] = 7; 2875 K.split('').forEach(function (k) { 2876 B[k] = k; 2877 }); 2878 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 2879}) ? function assign(target, source) { 2880 var T = toObject(target); 2881 var aLen = arguments.length; 2882 var index = 1; 2883 var getSymbols = gOPS.f; 2884 var isEnum = pIE.f; 2885 2886 while (aLen > index) { 2887 var S = IObject(arguments[index++]); 2888 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); 2889 var length = keys.length; 2890 var j = 0; 2891 var key; 2892 2893 while (length > j) { 2894 if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; 2895 } 2896 } 2897 2898 return T; 2899} : $assign; 2900 2901/***/ }), 2902/* 72 */ 2903/***/ (function(module, exports, __w_pdfjs_require__) { 2904 2905"use strict"; 2906 2907 2908exports.f = Object.getOwnPropertySymbols; 2909 2910/***/ }), 2911/* 73 */ 2912/***/ (function(module, exports, __w_pdfjs_require__) { 2913 2914"use strict"; 2915 2916 2917exports.f = {}.propertyIsEnumerable; 2918 2919/***/ }), 2920/* 74 */ 2921/***/ (function(module, exports, __w_pdfjs_require__) { 2922 2923"use strict"; 2924 2925 2926__w_pdfjs_require__(75); 2927 2928module.exports = __w_pdfjs_require__(9).Math.log2; 2929 2930/***/ }), 2931/* 75 */ 2932/***/ (function(module, exports, __w_pdfjs_require__) { 2933 2934"use strict"; 2935 2936 2937var $export = __w_pdfjs_require__(7); 2938 2939$export($export.S, 'Math', { 2940 log2: function log2(x) { 2941 return Math.log(x) / Math.LN2; 2942 } 2943}); 2944 2945/***/ }), 2946/* 76 */ 2947/***/ (function(module, exports, __w_pdfjs_require__) { 2948 2949"use strict"; 2950 2951 2952__w_pdfjs_require__(77); 2953 2954module.exports = __w_pdfjs_require__(9).Number.isNaN; 2955 2956/***/ }), 2957/* 77 */ 2958/***/ (function(module, exports, __w_pdfjs_require__) { 2959 2960"use strict"; 2961 2962
2963var $export = __w_pdfjs_require__(7); 2964 2965$export($export.S, 'Number', { 2966 isNaN: function isNaN(number) { 2967 return number != number; 2968 } 2969}); 2970 2971/***/ }), 2972/* 78 */ 2973/***/ (function(module, exports, __w_pdfjs_require__) { 2974 2975"use strict"; 2976 2977 2978__w_pdfjs_require__(79); 2979 2980module.exports = __w_pdfjs_require__(9).Number.isInteger; 2981 2982/***/ }), 2983/* 79 */ 2984/***/ (function(module, exports, __w_pdfjs_require__) { 2985 2986"use strict"; 2987 2988 2989var $export = __w_pdfjs_require__(7); 2990 2991$export($export.S, 'Number', { 2992 isInteger: __w_pdfjs_require__(80) 2993}); 2994 2995/***/ }), 2996/* 80 */ 2997/***/ (function(module, exports, __w_pdfjs_require__) { 2998 2999"use strict"; 3000 3001 3002var isObject = __w_pdfjs_require__(13); 3003 3004var floor = Math.floor; 3005 3006module.exports = function isInteger(it) { 3007 return !isObject(it) && isFinite(it) && floor(it) === it; 3008}; 3009 3010/***/ }), 3011/* 81 */ 3012/***/ (function(module, exports, __w_pdfjs_require__) { 3013 3014"use strict"; 3015 3016 3017__w_pdfjs_require__(82); 3018 3019__w_pdfjs_require__(47); 3020 3021__w_pdfjs_require__(83); 3022 3023__w_pdfjs_require__(86); 3024 3025__w_pdfjs_require__(99); 3026 3027__w_pdfjs_require__(100); 3028 3029module.exports = __w_pdfjs_require__(9).Promise; 3030 3031/***/ }), 3032/* 82 */ 3033/***/ (function(module, exports, __w_pdfjs_require__) { 3034 3035"use strict"; 3036 3037 3038var classof = __w_pdfjs_require__(67); 3039 3040var test = {}; 3041test[__w_pdfjs_require__(30)('toStringTag')] = 'z'; 3042 3043if (test + '' != '[object z]') { 3044 __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { 3045 return '[object ' + classof(this) + ']'; 3046 }, true); 3047} 3048 3049/***/ }), 3050/* 83 */ 3051/***/ (function(module, exports, __w_pdfjs_require__) { 3052 3053"use strict"; 3054 3055 3056var $iterators = __w_pdfjs_require__(84); 3057 3058var getKeys = __w_pdfjs_require__(54); 3059 3060var redefine = __w_pdfjs_require__(20); 3061 3062var global = __w_pdfjs_require__(8); 3063 3064var hide = __w_pdfjs_require__(10); 3065 3066var Iterators = __w_pdfjs_require__(50); 3067 3068var wks = __w_pdfjs_require__(30); 3069 3070var ITERATOR = wks('iterator'); 3071var TO_STRING_TAG = wks('toStringTag'); 3072var ArrayValues = Iterators.Array; 3073var DOMIterables = { 3074 CSSRuleList: true, 3075 CSSStyleDeclaration: false, 3076 CSSValueList: false, 3077 ClientRectList: false, 3078 DOMRectList: false, 3079 DOMStringList: false, 3080 DOMTokenList: true, 3081 DataTransferItemList: false, 3082 FileList: false, 3083 HTMLAllCollection: false, 3084 HTMLCollection: false, 3085 HTMLFormElement: false, 3086 HTMLSelectElement: false, 3087 MediaList: true, 3088 MimeTypeArray: false, 3089 NamedNodeMap: false, 3090 NodeList: true, 3091 PaintRequestList: false, 3092 Plugin: false, 3093 PluginArray: false, 3094 SVGLengthList: false, 3095 SVGNumberList: false, 3096 SVGPathSegList: false, 3097 SVGPointList: false, 3098 SVGStringList: false, 3099 SVGTransformList: false, 3100 SourceBufferList: false, 3101 StyleSheetList: true, 3102 TextTrackCueList: false, 3103 TextTrackList: false, 3104 TouchList: false 3105}; 3106 3107for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { 3108 var NAME = collections[i]; 3109 var explicit = DOMIterables[NAME]; 3110 var Collection = global[NAME]; 3111 var proto = Collection && Collection.prototype; 3112 var key; 3113 3114 if (proto) { 3115 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); 3116 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 3117 Iterators[NAME] = ArrayValues; 3118 if (explicit) for (key in $iterators) { 3119 if (!proto[key]) redefine(proto, key, $iterators[key], true); 3120 } 3121 } 3122} 3123 3124/***/ }), 3125/* 84 */ 3126/***/ (function(module, exports, __w_pdfjs_require__) { 3127 3128"use strict"; 3129 3130 3131var addToUnscopables = __w_pdfjs_require__(45); 3132 3133var step = __w_pdfjs_require__(85); 3134 3135var Iterators = __w_pdfjs_require__(50); 3136 3137var toIObject = __w_pdfjs_require__(42); 3138 3139module.exports = __w_pdfjs_require__(49)(Array, 'Array', function (iterated, kind) { 3140 this._t = toIObject(iterated); 3141 this._i = 0; 3142 this._k = kind; 3143}, function () { 3144 var O = this._t; 3145 var kind = this._k; 3146 var index = this._i++; 3147 3148 if (!O || index >= O.length) { 3149 this._t = undefined; 3150 return step(1); 3151 } 3152 3153 if (kind == 'keys') return step(0, index); 3154 if (kind == 'values') return step(0, O[index]); 3155 return step(0, [index, O[index]]); 3156}, 'values'); 3157Iterators.Arguments = Iterators.Array; 3158addToUnscopables('keys'); 3159addToUnscopables('values'); 3160addToUnscopables('entries'); 3161 3162/***/ }), 3163/* 85 */ 3164/***/ (function(module, exports, __w_pdfjs_require__) { 3165 3166"use strict"; 3167 3168 3169module.exports = function (done, value) { 3170 return { 3171 value: value, 3172 done: !!done 3173 }; 3174};
vendor: 5,100 bytes, lines 3175-3364
3175 3176/***/ }), 3177/* 86 */ 3178/***/ (function(module, exports, __w_pdfjs_require__) { 3179 3180"use strict"; 3181 3182 3183var LIBRARY = __w_pdfjs_require__(32); 3184 3185var global = __w_pdfjs_require__(8); 3186 3187var ctx = __w_pdfjs_require__(23); 3188 3189var classof = __w_pdfjs_require__(67); 3190 3191var $export = __w_pdfjs_require__(7); 3192 3193var isObject = __w_pdfjs_require__(13); 3194 3195var aFunction = __w_pdfjs_require__(24); 3196 3197var anInstance = __w_pdfjs_require__(87); 3198 3199var forOf = __w_pdfjs_require__(88); 3200 3201var speciesConstructor = __w_pdfjs_require__(89); 3202 3203var task = __w_pdfjs_require__(90).set; 3204 3205var microtask = __w_pdfjs_require__(92)(); 3206 3207var newPromiseCapabilityModule = __w_pdfjs_require__(93); 3208 3209var perform = __w_pdfjs_require__(94); 3210 3211var userAgent = __w_pdfjs_require__(95); 3212 3213var promiseResolve = __w_pdfjs_require__(96); 3214 3215var PROMISE = 'Promise'; 3216var TypeError = global.TypeError; 3217var process = global.process; 3218var versions = process && process.versions; 3219var v8 = versions && versions.v8 || ''; 3220var $Promise = global[PROMISE]; 3221var isNode = classof(process) == 'process'; 3222 3223var empty = function empty() {}; 3224 3225var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; 3226var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; 3227var USE_NATIVE = !!function () { 3228 try { 3229 var promise = $Promise.resolve(1); 3230 3231 var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(30)('species')] = function (exec) { 3232 exec(empty, empty); 3233 }; 3234 3235 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; 3236 } catch (e) {} 3237}(); 3238 3239var isThenable = function isThenable(it) { 3240 var then; 3241 return isObject(it) && typeof (then = it.then) == 'function' ? then : false; 3242}; 3243 3244var notify = function notify(promise, isReject) { 3245 if (promise._n) return; 3246 promise._n = true; 3247 var chain = promise._c; 3248 microtask(function () { 3249 var value = promise._v; 3250 var ok = promise._s == 1; 3251 var i = 0; 3252 3253 var run = function run(reaction) { 3254 var handler = ok ? reaction.ok : reaction.fail; 3255 var resolve = reaction.resolve; 3256 var reject = reaction.reject; 3257 var domain = reaction.domain; 3258 var result, then, exited; 3259 3260 try { 3261 if (handler) { 3262 if (!ok) { 3263 if (promise._h == 2) onHandleUnhandled(promise); 3264 promise._h = 1; 3265 } 3266 3267 if (handler === true) result = value;else { 3268 if (domain) domain.enter(); 3269 result = handler(value); 3270 3271 if (domain) { 3272 domain.exit(); 3273 exited = true; 3274 } 3275 } 3276 3277 if (result === reaction.promise) { 3278 reject(TypeError('Promise-chain cycle')); 3279 } else if (then = isThenable(result)) { 3280 then.call(result, resolve, reject); 3281 } else resolve(result); 3282 } else reject(value); 3283 } catch (e) { 3284 if (domain && !exited) domain.exit(); 3285 reject(e); 3286 } 3287 }; 3288 3289 while (chain.length > i) { 3290 run(chain[i++]); 3291 } 3292 3293 promise._c = []; 3294 promise._n = false; 3295 if (isReject && !promise._h) onUnhandled(promise); 3296 }); 3297}; 3298 3299var onUnhandled = function onUnhandled(promise) { 3300 task.call(global, function () { 3301 var value = promise._v; 3302 var unhandled = isUnhandled(promise); 3303 var result, handler, console; 3304 3305 if (unhandled) { 3306 result = perform(function () { 3307 if (isNode) { 3308 process.emit('unhandledRejection', value, promise); 3309 } else if (handler = global.onunhandledrejection) { 3310 handler({ 3311 promise: promise, 3312 reason: value 3313 }); 3314 } else if ((console = global.console) && console.error) { 3315 console.error('Unhandled promise rejection', value); 3316 } 3317 }); 3318 promise._h = isNode || isUnhandled(promise) ? 2 : 1; 3319 } 3320 3321 promise._a = undefined; 3322 if (unhandled && result.e) throw result.v; 3323 }); 3324}; 3325 3326var isUnhandled = function isUnhandled(promise) { 3327 return promise._h !== 1 && (promise._a || promise._c).length === 0; 3328}; 3329 3330var onHandleUnhandled = function onHandleUnhandled(promise) { 3331 task.call(global, function () { 3332 var handler; 3333 3334 if (isNode) { 3335 process.emit('rejectionHandled', promise); 3336 } else if (handler = global.onrejectionhandled) { 3337 handler({ 3338 promise: promise, 3339 reason: promise._v 3340 }); 3341 } 3342 }); 3343}; 3344 3345var $reject = function $reject(value) { 3346 var promise = this; 3347 if (promise._d) return; 3348 promise._d = true; 3349 promise = promise._w || promise; 3350 promise._v = value; 3351 promise._s = 2; 3352 if (!promise._a) promise._a = promise._c.slice(); 3353 notify(promise, true); 3354}; 3355 3356var $resolve = function $resolve(value) { 3357 var promise = this; 3358 var then; 3359 if (promise._d) return; 3360 promise._d = true; 3361 promise = promise._w || promise; 3362 3363 try { 3364 if (promise === value) throw TypeError("Promise can't be resolved
vendor: 4,778 bytes, lines 3364-3539
3364itself"); 3365 3366 if (then = isThenable(value)) { 3367 microtask(function () { 3368 var wrapper = { 3369 _w: promise, 3370 _d: false 3371 }; 3372 3373 try { 3374 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 3375 } catch (e) { 3376 $reject.call(wrapper, e); 3377 } 3378 }); 3379 } else { 3380 promise._v = value; 3381 promise._s = 1; 3382 notify(promise, false); 3383 } 3384 } catch (e) { 3385 $reject.call({ 3386 _w: promise, 3387 _d: false 3388 }, e); 3389 } 3390}; 3391 3392if (!USE_NATIVE) { 3393 $Promise = function Promise(executor) { 3394 anInstance(this, $Promise, PROMISE, '_h'); 3395 aFunction(executor); 3396 Internal.call(this); 3397 3398 try { 3399 executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 3400 } catch (err) { 3401 $reject.call(this, err); 3402 } 3403 }; 3404 3405 Internal = function Promise(executor) { 3406 this._c = []; 3407 this._a = undefined; 3408 this._s = 0; 3409 this._d = false; 3410 this._v = undefined; 3411 this._h = 0; 3412 this._n = false; 3413 }; 3414 3415 Internal.prototype = __w_pdfjs_require__(97)($Promise.prototype, { 3416 then: function then(onFulfilled, onRejected) { 3417 var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 3418 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 3419 reaction.fail = typeof onRejected == 'function' && onRejected; 3420 reaction.domain = isNode ? process.domain : undefined; 3421 3422 this._c.push(reaction); 3423 3424 if (this._a) this._a.push(reaction); 3425 if (this._s) notify(this, false); 3426 return reaction.promise; 3427 }, 3428 'catch': function _catch(onRejected) { 3429 return this.then(undefined, onRejected); 3430 } 3431 }); 3432 3433 OwnPromiseCapability = function OwnPromiseCapability() { 3434 var promise = new Internal(); 3435 this.promise = promise; 3436 this.resolve = ctx($resolve, promise, 1); 3437 this.reject = ctx($reject, promise, 1); 3438 }; 3439 3440 newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { 3441 return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); 3442 }; 3443} 3444 3445$export($export.G + $export.W + $export.F * !USE_NATIVE, { 3446 Promise: $Promise 3447}); 3448 3449__w_pdfjs_require__(59)($Promise, PROMISE); 3450 3451__w_pdfjs_require__(98)(PROMISE); 3452 3453Wrapper = __w_pdfjs_require__(9)[PROMISE]; 3454$export($export.S + $export.F * !USE_NATIVE, PROMISE, { 3455 reject: function reject(r) { 3456 var capability = newPromiseCapability(this); 3457 var $$reject = capability.reject; 3458 $$reject(r); 3459 return capability.promise; 3460 } 3461}); 3462$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 3463 resolve: function resolve(x) { 3464 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); 3465 } 3466}); 3467$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(68)(function (iter) { 3468 $Promise.all(iter)['catch'](empty); 3469})), PROMISE, { 3470 all: function all(iterable) { 3471 var C = this; 3472 var capability = newPromiseCapability(C); 3473 var resolve = capability.resolve; 3474 var reject = capability.reject; 3475 var result = perform(function () { 3476 var values = []; 3477 var index = 0; 3478 var remaining = 1; 3479 forOf(iterable, false, function (promise) { 3480 var $index = index++; 3481 var alreadyCalled = false; 3482 values.push(undefined); 3483 remaining++; 3484 C.resolve(promise).then(function (value) { 3485 if (alreadyCalled) return; 3486 alreadyCalled = true; 3487 values[$index] = value; 3488 --remaining || resolve(values); 3489 }, reject); 3490 }); 3491 --remaining || resolve(values); 3492 }); 3493 if (result.e) reject(result.v); 3494 return capability.promise; 3495 }, 3496 race: function race(iterable) { 3497 var C = this; 3498 var capability = newPromiseCapability(C); 3499 var reject = capability.reject; 3500 var result = perform(function () { 3501 forOf(iterable, false, function (promise) { 3502 C.resolve(promise).then(capability.resolve, reject); 3503 }); 3504 }); 3505 if (result.e) reject(result.v); 3506 return capability.promise; 3507 } 3508}); 3509 3510/***/ }), 3511/* 87 */ 3512/***/ (function(module, exports, __w_pdfjs_require__) { 3513 3514"use strict"; 3515 3516 3517module.exports = function (it, Constructor, name, forbiddenField) { 3518 if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { 3519 throw TypeError(name + ': incorrect invocation!'); 3520 } 3521 3522 return it; 3523}; 3524 3525/***/ }), 3526/* 88 */ 3527/***/ (function(module, exports, __w_pdfjs_require__) { 3528 3529"use strict"; 3530 3531 3532var ctx = __w_pdfjs_require__(23); 3533 3534var call = __w_pdfjs_require__(63); 3535 3536var isArrayIter = __w_pdfjs_require__(64); 3537 3538var anObject = __w_pdfjs_require__(12); 3539
vendor: 4,904 bytes, lines 3540-3733
3540var toLength = __w_pdfjs_require__(25); 3541 3542var getIterFn = __w_pdfjs_require__(66); 3543 3544var BREAK = {}; 3545var RETURN = {}; 3546 3547var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { 3548 var iterFn = ITERATOR ? function () { 3549 return iterable; 3550 } : getIterFn(iterable); 3551 var f = ctx(fn, that, entries ? 2 : 1); 3552 var index = 0; 3553 var length, step, iterator, result; 3554 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); 3555 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { 3556 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 3557 if (result === BREAK || result === RETURN) return result; 3558 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { 3559 result = call(iterator, f, step.value, entries); 3560 if (result === BREAK || result === RETURN) return result; 3561 } 3562}; 3563 3564_exports.BREAK = BREAK; 3565_exports.RETURN = RETURN; 3566 3567/***/ }), 3568/* 89 */ 3569/***/ (function(module, exports, __w_pdfjs_require__) { 3570 3571"use strict"; 3572 3573 3574var anObject = __w_pdfjs_require__(12); 3575 3576var aFunction = __w_pdfjs_require__(24); 3577 3578var SPECIES = __w_pdfjs_require__(30)('species'); 3579 3580module.exports = function (O, D) { 3581 var C = anObject(O).constructor; 3582 var S; 3583 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 3584}; 3585 3586/***/ }), 3587/* 90 */ 3588/***/ (function(module, exports, __w_pdfjs_require__) { 3589 3590"use strict"; 3591 3592 3593var ctx = __w_pdfjs_require__(23); 3594 3595var invoke = __w_pdfjs_require__(91); 3596 3597var html = __w_pdfjs_require__(58); 3598 3599var cel = __w_pdfjs_require__(17); 3600 3601var global = __w_pdfjs_require__(8); 3602 3603var process = global.process; 3604var setTask = global.setImmediate; 3605var clearTask = global.clearImmediate; 3606var MessageChannel = global.MessageChannel; 3607var Dispatch = global.Dispatch; 3608var counter = 0; 3609var queue = {}; 3610var ONREADYSTATECHANGE = 'onreadystatechange'; 3611var defer, channel, port; 3612 3613var run = function run() { 3614 var id = +this; 3615 3616 if (queue.hasOwnProperty(id)) { 3617 var fn = queue[id]; 3618 delete queue[id]; 3619 fn(); 3620 } 3621}; 3622 3623var listener = function listener(event) { 3624 run.call(event.data); 3625}; 3626 3627if (!setTask || !clearTask) { 3628 setTask = function setImmediate(fn) { 3629 var args = []; 3630 var i = 1; 3631 3632 while (arguments.length > i) { 3633 args.push(arguments[i++]); 3634 } 3635 3636 queue[++counter] = function () { 3637 invoke(typeof fn == 'function' ? fn : Function(fn), args); 3638 }; 3639 3640 defer(counter); 3641 return counter; 3642 }; 3643 3644 clearTask = function clearImmediate(id) { 3645 delete queue[id]; 3646 }; 3647 3648 if (__w_pdfjs_require__(29)(process) == 'process') { 3649 defer = function defer(id) { 3650 process.nextTick(ctx(run, id, 1)); 3651 }; 3652 } else if (Dispatch && Dispatch.now) { 3653 defer = function defer(id) { 3654 Dispatch.now(ctx(run, id, 1)); 3655 }; 3656 } else if (MessageChannel) { 3657 channel = new MessageChannel(); 3658 port = channel.port2; 3659 channel.port1.onmessage = listener; 3660 defer = ctx(port.postMessage, port, 1); 3661 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { 3662 defer = function defer(id) { 3663 global.postMessage(id + '', '*'); 3664 }; 3665 3666 global.addEventListener('message', listener, false); 3667 } else if (ONREADYSTATECHANGE in cel('script')) { 3668 defer = function defer(id) { 3669 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { 3670 html.removeChild(this); 3671 run.call(id); 3672 }; 3673 }; 3674 } else { 3675 defer = function defer(id) { 3676 setTimeout(ctx(run, id, 1), 0); 3677 }; 3678 } 3679} 3680 3681module.exports = { 3682 set: setTask, 3683 clear: clearTask 3684}; 3685 3686/***/ }), 3687/* 91 */ 3688/***/ (function(module, exports, __w_pdfjs_require__) { 3689 3690"use strict"; 3691 3692 3693module.exports = function (fn, args, that) { 3694 var un = that === undefined; 3695 3696 switch (args.length) { 3697 case 0: 3698 return un ? fn() : fn.call(that); 3699 3700 case 1: 3701 return un ? fn(args[0]) : fn.call(that, args[0]); 3702 3703 case 2: 3704 return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); 3705 3706 case 3: 3707 return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); 3708 3709 case 4: 3710 return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); 3711 } 3712 3713 return fn.apply(that, args); 3714}; 3715 3716/***/ }), 3717/* 92 */ 3718/***/ (function(module, exports, __w_pdfjs_require__) { 3719 3720"use strict"; 3721 3722 3723var global = __w_pdfjs_require__(8); 3724 3725var macrotask = __w_pdfjs_require__(90).set; 3726 3727var Observer = global.MutationObserver || global.WebKitMutationObserver; 3728var process = global.process; 3729var Promise = global.Promise; 3730var isNode = __w_pdfjs_require__(29)(process) == 'process'; 3731 3732module.exports = function () { 3733 var head, last, notify;
vendor: 4,580 bytes, lines 3734-3957
3734 3735 var flush = function flush() { 3736 var parent, fn; 3737 if (isNode && (parent = process.domain)) parent.exit(); 3738 3739 while (head) { 3740 fn = head.fn; 3741 head = head.next; 3742 3743 try { 3744 fn(); 3745 } catch (e) { 3746 if (head) notify();else last = undefined; 3747 throw e; 3748 } 3749 } 3750 3751 last = undefined; 3752 if (parent) parent.enter(); 3753 }; 3754 3755 if (isNode) { 3756 notify = function notify() { 3757 process.nextTick(flush); 3758 }; 3759 } else if (Observer && !(global.navigator && global.navigator.standalone)) { 3760 var toggle = true; 3761 var node = document.createTextNode(''); 3762 new Observer(flush).observe(node, { 3763 characterData: true 3764 }); 3765 3766 notify = function notify() { 3767 node.data = toggle = !toggle; 3768 }; 3769 } else if (Promise && Promise.resolve) { 3770 var promise = Promise.resolve(undefined); 3771 3772 notify = function notify() { 3773 promise.then(flush); 3774 }; 3775 } else { 3776 notify = function notify() { 3777 macrotask.call(global, flush); 3778 }; 3779 } 3780 3781 return function (fn) { 3782 var task = { 3783 fn: fn, 3784 next: undefined 3785 }; 3786 if (last) last.next = task; 3787 3788 if (!head) { 3789 head = task; 3790 notify(); 3791 } 3792 3793 last = task; 3794 }; 3795}; 3796 3797/***/ }), 3798/* 93 */ 3799/***/ (function(module, exports, __w_pdfjs_require__) { 3800 3801"use strict"; 3802 3803 3804var aFunction = __w_pdfjs_require__(24); 3805 3806function PromiseCapability(C) { 3807 var resolve, reject; 3808 this.promise = new C(function ($$resolve, $$reject) { 3809 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 3810 resolve = $$resolve; 3811 reject = $$reject; 3812 }); 3813 this.resolve = aFunction(resolve); 3814 this.reject = aFunction(reject); 3815} 3816 3817module.exports.f = function (C) { 3818 return new PromiseCapability(C); 3819}; 3820 3821/***/ }), 3822/* 94 */ 3823/***/ (function(module, exports, __w_pdfjs_require__) { 3824 3825"use strict"; 3826 3827 3828module.exports = function (exec) { 3829 try { 3830 return { 3831 e: false, 3832 v: exec() 3833 }; 3834 } catch (e) { 3835 return { 3836 e: true, 3837 v: e 3838 }; 3839 } 3840}; 3841 3842/***/ }), 3843/* 95 */ 3844/***/ (function(module, exports, __w_pdfjs_require__) { 3845 3846"use strict"; 3847 3848 3849var global = __w_pdfjs_require__(8); 3850 3851var navigator = global.navigator; 3852module.exports = navigator && navigator.userAgent || ''; 3853 3854/***/ }), 3855/* 96 */ 3856/***/ (function(module, exports, __w_pdfjs_require__) { 3857 3858"use strict"; 3859 3860 3861var anObject = __w_pdfjs_require__(12); 3862 3863var isObject = __w_pdfjs_require__(13); 3864 3865var newPromiseCapability = __w_pdfjs_require__(93); 3866 3867module.exports = function (C, x) { 3868 anObject(C); 3869 if (isObject(x) && x.constructor === C) return x; 3870 var promiseCapability = newPromiseCapability.f(C); 3871 var resolve = promiseCapability.resolve; 3872 resolve(x); 3873 return promiseCapability.promise; 3874}; 3875 3876/***/ }), 3877/* 97 */ 3878/***/ (function(module, exports, __w_pdfjs_require__) { 3879 3880"use strict"; 3881 3882 3883var redefine = __w_pdfjs_require__(20); 3884 3885module.exports = function (target, src, safe) { 3886 for (var key in src) { 3887 redefine(target, key, src[key], safe); 3888 } 3889 3890 return target; 3891}; 3892 3893/***/ }), 3894/* 98 */ 3895/***/ (function(module, exports, __w_pdfjs_require__) { 3896 3897"use strict"; 3898 3899 3900var global = __w_pdfjs_require__(8); 3901 3902var dP = __w_pdfjs_require__(11); 3903 3904var DESCRIPTORS = __w_pdfjs_require__(15); 3905 3906var SPECIES = __w_pdfjs_require__(30)('species'); 3907 3908module.exports = function (KEY) { 3909 var C = global[KEY]; 3910 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { 3911 configurable: true, 3912 get: function get() { 3913 return this; 3914 } 3915 }); 3916}; 3917 3918/***/ }), 3919/* 99 */ 3920/***/ (function(module, exports, __w_pdfjs_require__) { 3921 3922"use strict"; 3923 3924 3925var $export = __w_pdfjs_require__(7); 3926 3927var core = __w_pdfjs_require__(9); 3928 3929var global = __w_pdfjs_require__(8); 3930 3931var speciesConstructor = __w_pdfjs_require__(89); 3932 3933var promiseResolve = __w_pdfjs_require__(96); 3934 3935$export($export.P + $export.R, 'Promise', { 3936 'finally': function _finally(onFinally) { 3937 var C = speciesConstructor(this, core.Promise || global.Promise); 3938 var isFunction = typeof onFinally == 'function'; 3939 return this.then(isFunction ? function (x) { 3940 return promiseResolve(C, onFinally()).then(function () { 3941 return x; 3942 }); 3943 } : onFinally, isFunction ? function (e) { 3944 return promiseResolve(C, onFinally()).then(function () { 3945 throw e; 3946 }); 3947 } : onFinally); 3948 } 3949}); 3950 3951/***/ }), 3952/* 100 */ 3953/***/ (function(module, exports, __w_pdfjs_require__) { 3954 3955"use strict"; 3956 3957
vendor: 8,415 bytes, lines 3958-4311
3958var $export = __w_pdfjs_require__(7); 3959 3960var newPromiseCapability = __w_pdfjs_require__(93); 3961 3962var perform = __w_pdfjs_require__(94); 3963 3964$export($export.S, 'Promise', { 3965 'try': function _try(callbackfn) { 3966 var promiseCapability = newPromiseCapability.f(this); 3967 var result = perform(callbackfn); 3968 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); 3969 return promiseCapability.promise; 3970 } 3971}); 3972 3973/***/ }), 3974/* 101 */ 3975/***/ (function(module, exports, __w_pdfjs_require__) { 3976 3977"use strict"; 3978 3979 3980__w_pdfjs_require__(82); 3981 3982__w_pdfjs_require__(83); 3983 3984__w_pdfjs_require__(102); 3985 3986__w_pdfjs_require__(114); 3987 3988__w_pdfjs_require__(116); 3989 3990module.exports = __w_pdfjs_require__(9).WeakMap; 3991 3992/***/ }), 3993/* 102 */ 3994/***/ (function(module, exports, __w_pdfjs_require__) { 3995 3996"use strict"; 3997 3998 3999var each = __w_pdfjs_require__(103)(0); 4000 4001var redefine = __w_pdfjs_require__(20); 4002 4003var meta = __w_pdfjs_require__(107); 4004 4005var assign = __w_pdfjs_require__(71); 4006 4007var weak = __w_pdfjs_require__(108); 4008 4009var isObject = __w_pdfjs_require__(13); 4010 4011var fails = __w_pdfjs_require__(16); 4012 4013var validate = __w_pdfjs_require__(109); 4014 4015var WEAK_MAP = 'WeakMap'; 4016var getWeak = meta.getWeak; 4017var isExtensible = Object.isExtensible; 4018var uncaughtFrozenStore = weak.ufstore; 4019var tmp = {}; 4020var InternalMap; 4021 4022var wrapper = function wrapper(get) { 4023 return function WeakMap() { 4024 return get(this, arguments.length > 0 ? arguments[0] : undefined); 4025 }; 4026}; 4027 4028var methods = { 4029 get: function get(key) { 4030 if (isObject(key)) { 4031 var data = getWeak(key); 4032 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); 4033 return data ? data[this._i] : undefined; 4034 } 4035 }, 4036 set: function set(key, value) { 4037 return weak.def(validate(this, WEAK_MAP), key, value); 4038 } 4039}; 4040 4041var $WeakMap = module.exports = __w_pdfjs_require__(110)(WEAK_MAP, wrapper, methods, weak, true, true); 4042 4043if (fails(function () { 4044 return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; 4045})) { 4046 InternalMap = weak.getConstructor(wrapper, WEAK_MAP); 4047 assign(InternalMap.prototype, methods); 4048 meta.NEED = true; 4049 each(['delete', 'has', 'get', 'set'], function (key) { 4050 var proto = $WeakMap.prototype; 4051 var method = proto[key]; 4052 redefine(proto, key, function (a, b) { 4053 if (isObject(a) && !isExtensible(a)) { 4054 if (!this._f) this._f = new InternalMap(); 4055 4056 var result = this._f[key](a, b); 4057 4058 return key == 'set' ? this : result; 4059 } 4060 4061 return method.call(this, a, b); 4062 }); 4063 }); 4064} 4065 4066/***/ }), 4067/* 103 */ 4068/***/ (function(module, exports, __w_pdfjs_require__) { 4069 4070"use strict"; 4071 4072 4073var ctx = __w_pdfjs_require__(23); 4074 4075var IObject = __w_pdfjs_require__(43); 4076 4077var toObject = __w_pdfjs_require__(61); 4078 4079var toLength = __w_pdfjs_require__(25); 4080 4081var asc = __w_pdfjs_require__(104); 4082 4083module.exports = function (TYPE, $create) { 4084 var IS_MAP = TYPE == 1; 4085 var IS_FILTER = TYPE == 2; 4086 var IS_SOME = TYPE == 3; 4087 var IS_EVERY = TYPE == 4; 4088 var IS_FIND_INDEX = TYPE == 6; 4089 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 4090 var create = $create || asc; 4091 return function ($this, callbackfn, that) { 4092 var O = toObject($this); 4093 var self = IObject(O); 4094 var f = ctx(callbackfn, that, 3); 4095 var length = toLength(self.length); 4096 var index = 0; 4097 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; 4098 var val, res; 4099 4100 for (; length > index; index++) { 4101 if (NO_HOLES || index in self) { 4102 val = self[index]; 4103 res = f(val, index, O); 4104 4105 if (TYPE) { 4106 if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { 4107 case 3: 4108 return true; 4109 4110 case 5: 4111 return val; 4112 4113 case 6: 4114 return index; 4115 4116 case 2: 4117 result.push(val); 4118 } else if (IS_EVERY) return false; 4119 } 4120 } 4121 } 4122 4123 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; 4124 }; 4125}; 4126 4127/***/ }), 4128/* 104 */ 4129/***/ (function(module, exports, __w_pdfjs_require__) { 4130 4131"use strict"; 4132 4133 4134var speciesConstructor = __w_pdfjs_require__(105); 4135 4136module.exports = function (original, length) { 4137 return new (speciesConstructor(original))(length); 4138}; 4139 4140/***/ }), 4141/* 105 */ 4142/***/ (function(module, exports, __w_pdfjs_require__) { 4143 4144"use strict"; 4145 4146 4147var isObject = __w_pdfjs_require__(13); 4148 4149var isArray = __w_pdfjs_require__(106); 4150 4151var SPECIES = __w_pdfjs_require__(30)('species'); 4152 4153module.exports = function (original) { 4154 var C; 4155 4156 if (isArray(original)) { 4157 C = original.constructor; 4158 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 4159 4160 if (isObject(C)) { 4161 C = C[SPECIES]; 4162 if (C === null) C = undefined; 4163 } 4164 } 4165 4166 return C === undefined ? Array : C; 4167}; 4168 4169/***/ }), 4170/* 106 */ 4171/***/ (function(module, exports, __w_pdfjs_require__) { 4172 4173"use strict"; 4174 4175 4176var cof = __w_pdfjs_require__(29); 4177 4178module.exports = Array.isArray || function isArray(arg) { 4179 return cof(arg) == 'Array'; 4180}; 4181 4182/***/ }), 4183/* 107 */ 4184/***/ (function(module, exports, __w_pdfjs_require__) { 4185 4186"use strict"; 4187 4188 4189function _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); } 4190 4191var META = __w_pdfjs_require__(22)('meta'); 4192 4193var isObject = __w_pdfjs_require__(13); 4194 4195var has = __w_pdfjs_require__(21); 4196 4197var setDesc = __w_pdfjs_require__(11).f; 4198 4199var id = 0; 4200 4201var isExtensible = Object.isExtensible || function () { 4202 return true; 4203}; 4204 4205var FREEZE = !__w_pdfjs_require__(16)(function () { 4206 return isExtensible(Object.preventExtensions({})); 4207}); 4208 4209var setMeta = function setMeta(it) { 4210 setDesc(it, META, { 4211 value: { 4212 i: 'O' + ++id, 4213 w: {} 4214 } 4215 }); 4216}; 4217 4218var fastKey = function fastKey(it, create) { 4219 if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 4220 4221 if (!has(it, META)) { 4222 if (!isExtensible(it)) return 'F'; 4223 if (!create) return 'E'; 4224 setMeta(it); 4225 } 4226 4227 return it[META].i; 4228}; 4229 4230var getWeak = function getWeak(it, create) { 4231 if (!has(it, META)) { 4232 if (!isExtensible(it)) return true; 4233 if (!create) return false; 4234 setMeta(it); 4235 } 4236 4237 return it[META].w; 4238}; 4239 4240var onFreeze = function onFreeze(it) { 4241 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 4242 return it; 4243}; 4244 4245var meta = module.exports = { 4246 KEY: META, 4247 NEED: false, 4248 fastKey: fastKey, 4249 getWeak: getWeak, 4250 onFreeze: onFreeze 4251}; 4252 4253/***/ }), 4254/* 108 */ 4255/***/ (function(module, exports, __w_pdfjs_require__) { 4256 4257"use strict"; 4258 4259 4260var redefineAll = __w_pdfjs_require__(97); 4261 4262var getWeak = __w_pdfjs_require__(107).getWeak; 4263 4264var anObject = __w_pdfjs_require__(12); 4265 4266var isObject = __w_pdfjs_require__(13); 4267 4268var anInstance = __w_pdfjs_require__(87); 4269 4270var forOf = __w_pdfjs_require__(88); 4271 4272var createArrayMethod = __w_pdfjs_require__(103); 4273 4274var $has = __w_pdfjs_require__(21); 4275 4276var validate = __w_pdfjs_require__(109); 4277 4278var arrayFind = createArrayMethod(5); 4279var arrayFindIndex = createArrayMethod(6); 4280var id = 0; 4281 4282var uncaughtFrozenStore = function uncaughtFrozenStore(that) { 4283 return that._l || (that._l = new UncaughtFrozenStore()); 4284}; 4285 4286var UncaughtFrozenStore = function UncaughtFrozenStore() { 4287 this.a = []; 4288}; 4289 4290var findUncaughtFrozen = function findUncaughtFrozen(store, key) { 4291 return arrayFind(store.a, function (it) { 4292 return it[0] === key; 4293 }); 4294}; 4295 4296UncaughtFrozenStore.prototype = { 4297 get: function get(key) { 4298 var entry = findUncaughtFrozen(this, key); 4299 if (entry) return entry[1]; 4300 }, 4301 has: function has(key) { 4302 return !!findUncaughtFrozen(this, key); 4303 }, 4304 set: function set(key, value) { 4305 var entry = findUncaughtFrozen(this, key); 4306 if (entry) entry[1] = value;else this.a.push([key, value]); 4307 }, 4308 'delete': function _delete(key) { 4309 var index = arrayFindIndex(this.a, function (it) { 4310 return it[0] === key; 4311 });
vendor: 4,644 bytes, lines 4312-4469
4312 if (~index) this.a.splice(index, 1); 4313 return !!~index; 4314 } 4315}; 4316module.exports = { 4317 getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { 4318 var C = wrapper(function (that, iterable) { 4319 anInstance(that, C, NAME, '_i'); 4320 that._t = NAME; 4321 that._i = id++; 4322 that._l = undefined; 4323 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 4324 }); 4325 redefineAll(C.prototype, { 4326 'delete': function _delete(key) { 4327 if (!isObject(key)) return false; 4328 var data = getWeak(key); 4329 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); 4330 return data && $has(data, this._i) && delete data[this._i]; 4331 }, 4332 has: function has(key) { 4333 if (!isObject(key)) return false; 4334 var data = getWeak(key); 4335 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); 4336 return data && $has(data, this._i); 4337 } 4338 }); 4339 return C; 4340 }, 4341 def: function def(that, key, value) { 4342 var data = getWeak(anObject(key), true); 4343 if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; 4344 return that; 4345 }, 4346 ufstore: uncaughtFrozenStore 4347}; 4348 4349/***/ }), 4350/* 109 */ 4351/***/ (function(module, exports, __w_pdfjs_require__) { 4352 4353"use strict"; 4354 4355 4356var isObject = __w_pdfjs_require__(13); 4357 4358module.exports = function (it, TYPE) { 4359 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); 4360 return it; 4361}; 4362 4363/***/ }), 4364/* 110 */ 4365/***/ (function(module, exports, __w_pdfjs_require__) { 4366 4367"use strict"; 4368 4369 4370var global = __w_pdfjs_require__(8); 4371 4372var $export = __w_pdfjs_require__(7); 4373 4374var redefine = __w_pdfjs_require__(20); 4375 4376var redefineAll = __w_pdfjs_require__(97); 4377 4378var meta = __w_pdfjs_require__(107); 4379 4380var forOf = __w_pdfjs_require__(88); 4381 4382var anInstance = __w_pdfjs_require__(87); 4383 4384var isObject = __w_pdfjs_require__(13); 4385 4386var fails = __w_pdfjs_require__(16); 4387 4388var $iterDetect = __w_pdfjs_require__(68); 4389 4390var setToStringTag = __w_pdfjs_require__(59); 4391 4392var inheritIfRequired = __w_pdfjs_require__(111); 4393 4394module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { 4395 var Base = global[NAME]; 4396 var C = Base; 4397 var ADDER = IS_MAP ? 'set' : 'add'; 4398 var proto = C && C.prototype; 4399 var O = {}; 4400 4401 var fixMethod = function fixMethod(KEY) { 4402 var fn = proto[KEY]; 4403 redefine(proto, KEY, KEY == 'delete' ? function (a) { 4404 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 4405 } : KEY == 'has' ? function has(a) { 4406 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 4407 } : KEY == 'get' ? function get(a) { 4408 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); 4409 } : KEY == 'add' ? function add(a) { 4410 fn.call(this, a === 0 ? 0 : a); 4411 return this; 4412 } : function set(a, b) { 4413 fn.call(this, a === 0 ? 0 : a, b); 4414 return this; 4415 }); 4416 }; 4417 4418 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { 4419 new C().entries().next(); 4420 }))) { 4421 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); 4422 redefineAll(C.prototype, methods); 4423 meta.NEED = true; 4424 } else { 4425 var instance = new C(); 4426 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; 4427 var THROWS_ON_PRIMITIVES = fails(function () { 4428 instance.has(1); 4429 }); 4430 var ACCEPT_ITERABLES = $iterDetect(function (iter) { 4431 new C(iter); 4432 }); 4433 var BUGGY_ZERO = !IS_WEAK && fails(function () { 4434 var $instance = new C(); 4435 var index = 5; 4436 4437 while (index--) { 4438 $instance[ADDER](index, index); 4439 } 4440 4441 return !$instance.has(-0); 4442 }); 4443 4444 if (!ACCEPT_ITERABLES) { 4445 C = wrapper(function (target, iterable) { 4446 anInstance(target, C, NAME); 4447 var that = inheritIfRequired(new Base(), target, C); 4448 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 4449 return that; 4450 }); 4451 C.prototype = proto; 4452 proto.constructor = C; 4453 } 4454 4455 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { 4456 fixMethod('delete'); 4457 fixMethod('has'); 4458 IS_MAP && fixMethod('get'); 4459 } 4460 4461 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); 4462 if (IS_WEAK && proto.clear) delete proto.clear; 4463 } 4464 4465 setToStringTag(C, NAME); 4466 O[NAME] = C; 4467 $export($export.G + $export.W + $export.F * (C != Base), O); 4468 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); 4469 return C;
vendor: 5,045 bytes, lines 4470-4718
4470}; 4471 4472/***/ }), 4473/* 111 */ 4474/***/ (function(module, exports, __w_pdfjs_require__) { 4475 4476"use strict"; 4477 4478 4479var isObject = __w_pdfjs_require__(13); 4480 4481var setPrototypeOf = __w_pdfjs_require__(112).set; 4482 4483module.exports = function (that, target, C) { 4484 var S = target.constructor; 4485 var P; 4486 4487 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { 4488 setPrototypeOf(that, P); 4489 } 4490 4491 return that; 4492}; 4493 4494/***/ }), 4495/* 112 */ 4496/***/ (function(module, exports, __w_pdfjs_require__) { 4497 4498"use strict"; 4499 4500 4501var isObject = __w_pdfjs_require__(13); 4502 4503var anObject = __w_pdfjs_require__(12); 4504 4505var check = function check(O, proto) { 4506 anObject(O); 4507 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 4508}; 4509 4510module.exports = { 4511 set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { 4512 try { 4513 set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(113).f(Object.prototype, '__proto__').set, 2); 4514 set(test, []); 4515 buggy = !(test instanceof Array); 4516 } catch (e) { 4517 buggy = true; 4518 } 4519 4520 return function setPrototypeOf(O, proto) { 4521 check(O, proto); 4522 if (buggy) O.__proto__ = proto;else set(O, proto); 4523 return O; 4524 }; 4525 }({}, false) : undefined), 4526 check: check 4527}; 4528 4529/***/ }), 4530/* 113 */ 4531/***/ (function(module, exports, __w_pdfjs_require__) { 4532 4533"use strict"; 4534 4535 4536var pIE = __w_pdfjs_require__(73); 4537 4538var createDesc = __w_pdfjs_require__(19); 4539 4540var toIObject = __w_pdfjs_require__(42); 4541 4542var toPrimitive = __w_pdfjs_require__(18); 4543 4544var has = __w_pdfjs_require__(21); 4545 4546var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 4547 4548var gOPD = Object.getOwnPropertyDescriptor; 4549exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { 4550 O = toIObject(O); 4551 P = toPrimitive(P, true); 4552 if (IE8_DOM_DEFINE) try { 4553 return gOPD(O, P); 4554 } catch (e) {} 4555 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 4556}; 4557 4558/***/ }), 4559/* 114 */ 4560/***/ (function(module, exports, __w_pdfjs_require__) { 4561 4562"use strict"; 4563 4564 4565__w_pdfjs_require__(115)('WeakMap'); 4566 4567/***/ }), 4568/* 115 */ 4569/***/ (function(module, exports, __w_pdfjs_require__) { 4570 4571"use strict"; 4572 4573 4574var $export = __w_pdfjs_require__(7); 4575 4576module.exports = function (COLLECTION) { 4577 $export($export.S, COLLECTION, { 4578 of: function of() { 4579 var length = arguments.length; 4580 var A = new Array(length); 4581 4582 while (length--) { 4583 A[length] = arguments[length]; 4584 } 4585 4586 return new this(A); 4587 } 4588 }); 4589}; 4590 4591/***/ }), 4592/* 116 */ 4593/***/ (function(module, exports, __w_pdfjs_require__) { 4594 4595"use strict"; 4596 4597 4598__w_pdfjs_require__(117)('WeakMap'); 4599 4600/***/ }), 4601/* 117 */ 4602/***/ (function(module, exports, __w_pdfjs_require__) { 4603 4604"use strict"; 4605 4606 4607var $export = __w_pdfjs_require__(7); 4608 4609var aFunction = __w_pdfjs_require__(24); 4610 4611var ctx = __w_pdfjs_require__(23); 4612 4613var forOf = __w_pdfjs_require__(88); 4614 4615module.exports = function (COLLECTION) { 4616 $export($export.S, COLLECTION, { 4617 from: function from(source) { 4618 var mapFn = arguments[1]; 4619 var mapping, A, n, cb; 4620 aFunction(this); 4621 mapping = mapFn !== undefined; 4622 if (mapping) aFunction(mapFn); 4623 if (source == undefined) return new this(); 4624 A = []; 4625 4626 if (mapping) { 4627 n = 0; 4628 cb = ctx(mapFn, arguments[2], 2); 4629 forOf(source, false, function (nextItem) { 4630 A.push(cb(nextItem, n++)); 4631 }); 4632 } else { 4633 forOf(source, false, A.push, A); 4634 } 4635 4636 return new this(A); 4637 } 4638 }); 4639}; 4640 4641/***/ }), 4642/* 118 */ 4643/***/ (function(module, exports, __w_pdfjs_require__) { 4644 4645"use strict"; 4646 4647 4648__w_pdfjs_require__(82); 4649 4650__w_pdfjs_require__(83); 4651 4652__w_pdfjs_require__(119); 4653 4654__w_pdfjs_require__(120); 4655 4656__w_pdfjs_require__(121); 4657 4658module.exports = __w_pdfjs_require__(9).WeakSet; 4659 4660/***/ }), 4661/* 119 */ 4662/***/ (function(module, exports, __w_pdfjs_require__) { 4663 4664"use strict"; 4665 4666 4667var weak = __w_pdfjs_require__(108); 4668 4669var validate = __w_pdfjs_require__(109); 4670 4671var WEAK_SET = 'WeakSet'; 4672 4673__w_pdfjs_require__(110)(WEAK_SET, function (get) { 4674 return function WeakSet() { 4675 return get(this, arguments.length > 0 ? arguments[0] : undefined); 4676 }; 4677}, { 4678 add: function add(value) { 4679 return weak.def(validate(this, WEAK_SET), value, true); 4680 } 4681}, weak, false, true); 4682 4683/***/ }), 4684/* 120 */ 4685/***/ (function(module, exports, __w_pdfjs_require__) { 4686 4687"use strict"; 4688 4689 4690__w_pdfjs_require__(115)('WeakSet'); 4691 4692/***/ }), 4693/* 121 */ 4694/***/ (function(module, exports, __w_pdfjs_require__) { 4695 4696"use strict"; 4697 4698 4699__w_pdfjs_require__(117)('WeakSet'); 4700 4701/***/ }), 4702/* 122 */ 4703/***/ (function(module, exports, __w_pdfjs_require__) { 4704 4705"use strict"; 4706 4707 4708__w_pdfjs_require__(123); 4709 4710module.exports = __w_pdfjs_require__(9).String.codePointAt; 4711 4712/***/ }), 4713/* 123 */ 4714/***/ (function(module, exports, __w_pdfjs_require__) { 4715 4716"use strict"; 4717 4718
4719var $export = __w_pdfjs_require__(7); 4720 4721var $at = __w_pdfjs_require__(48)(false); 4722 4723$export($export.P, 'String', { 4724 codePointAt: function codePointAt(pos) { 4725 return $at(this, pos); 4726 } 4727}); 4728 4729/***/ }), 4730/* 124 */ 4731/***/ (function(module, exports, __w_pdfjs_require__) { 4732 4733"use strict"; 4734 4735 4736__w_pdfjs_require__(125); 4737 4738module.exports = __w_pdfjs_require__(9).String.fromCodePoint; 4739 4740/***/ }), 4741/* 125 */ 4742/***/ (function(module, exports, __w_pdfjs_require__) { 4743 4744"use strict"; 4745 4746 4747var $export = __w_pdfjs_require__(7); 4748 4749var toAbsoluteIndex = __w_pdfjs_require__(44); 4750 4751var fromCharCode = String.fromCharCode; 4752var $fromCodePoint = String.fromCodePoint; 4753$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { 4754 fromCodePoint: function fromCodePoint(x) { 4755 var res = []; 4756 var aLen = arguments.length; 4757 var i = 0; 4758 var code; 4759 4760 while (aLen > i) { 4761 code = +arguments[i++]; 4762 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); 4763 res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); 4764 } 4765 4766 return res.join(''); 4767 } 4768}); 4769 4770/***/ }), 4771/* 126 */ 4772/***/ (function(module, exports, __w_pdfjs_require__) { 4773 4774"use strict"; 4775 4776 4777__w_pdfjs_require__(127); 4778 4779__w_pdfjs_require__(82); 4780 4781module.exports = __w_pdfjs_require__(9).Symbol; 4782 4783/***/ }), 4784/* 127 */ 4785/***/ (function(module, exports, __w_pdfjs_require__) { 4786 4787"use strict"; 4788 4789 4790function _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); } 4791 4792var global = __w_pdfjs_require__(8); 4793 4794var has = __w_pdfjs_require__(21); 4795 4796var DESCRIPTORS = __w_pdfjs_require__(15); 4797 4798var $export = __w_pdfjs_require__(7); 4799 4800var redefine = __w_pdfjs_require__(20); 4801 4802var META = __w_pdfjs_require__(107).KEY; 4803 4804var $fails = __w_pdfjs_require__(16); 4805 4806var shared = __w_pdfjs_require__(31); 4807 4808var setToStringTag = __w_pdfjs_require__(59); 4809 4810var uid = __w_pdfjs_require__(22); 4811 4812var wks = __w_pdfjs_require__(30); 4813 4814var wksExt = __w_pdfjs_require__(128); 4815 4816var wksDefine = __w_pdfjs_require__(129); 4817 4818var enumKeys = __w_pdfjs_require__(130); 4819 4820var isArray = __w_pdfjs_require__(106); 4821 4822var anObject = __w_pdfjs_require__(12); 4823 4824var isObject = __w_pdfjs_require__(13); 4825 4826var toIObject = __w_pdfjs_require__(42); 4827 4828var toPrimitive = __w_pdfjs_require__(18); 4829 4830var createDesc = __w_pdfjs_require__(19); 4831 4832var _create = __w_pdfjs_require__(52); 4833 4834var gOPNExt = __w_pdfjs_require__(131); 4835 4836var $GOPD = __w_pdfjs_require__(113); 4837 4838var $DP = __w_pdfjs_require__(11); 4839 4840var $keys = __w_pdfjs_require__(54); 4841 4842var gOPD = $GOPD.f; 4843var dP = $DP.f; 4844var gOPN = gOPNExt.f; 4845var $Symbol = global.Symbol; 4846var $JSON = global.JSON; 4847 4848var _stringify = $JSON && $JSON.stringify; 4849 4850var PROTOTYPE = 'prototype'; 4851var HIDDEN = wks('_hidden'); 4852var TO_PRIMITIVE = wks('toPrimitive'); 4853var isEnum = {}.propertyIsEnumerable; 4854var SymbolRegistry = shared('symbol-registry'); 4855var AllSymbols = shared('symbols'); 4856var OPSymbols = shared('op-symbols'); 4857var ObjectProto = Object[PROTOTYPE]; 4858var USE_NATIVE = typeof $Symbol == 'function'; 4859var QObject = global.QObject; 4860var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 4861var setSymbolDesc = DESCRIPTORS && $fails(function () { 4862 return _create(dP({}, 'a', { 4863 get: function get() { 4864 return dP(this, 'a', { 4865 value: 7 4866 }).a; 4867 } 4868 })).a != 7; 4869}) ? function (it, key, D) { 4870 var protoDesc = gOPD(ObjectProto, key); 4871 if (protoDesc) delete ObjectProto[key]; 4872 dP(it, key, D); 4873 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 4874} : dP; 4875 4876var wrap = function wrap(tag) { 4877 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 4878 4879 sym._k = tag; 4880 return sym; 4881}; 4882 4883var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { 4884 return _typeof(it) == 'symbol'; 4885} : function (it) { 4886 return it instanceof $Symbol; 4887}; 4888 4889var $defineProperty = function defineProperty(it, key, D) { 4890 if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 4891 anObject(it); 4892 key = toPrimitive(key, true); 4893 anObject(D); 4894 4895 if (has(AllSymbols, key)) { 4896 if (!D.enumerable) { 4897 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 4898 it[HIDDEN][key] = true; 4899 } else { 4900 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 4901 D = _create(D, { 4902 enumerable: createDesc(0, false) 4903 }); 4904 } 4905 4906 return setSymbolDesc(it, key, D); 4907 } 4908 4909 return dP(it, key, D); 4910}; 4911 4912var $defineProperties = function defineProperties(it, P) { 4913 anObject(it);
vendor: 4,221 bytes, lines 4914-5047
4914 var keys = enumKeys(P = toIObject(P)); 4915 var i = 0; 4916 var l = keys.length; 4917 var key; 4918 4919 while (l > i) { 4920 $defineProperty(it, key = keys[i++], P[key]); 4921 } 4922 4923 return it; 4924}; 4925 4926var $create = function create(it, P) { 4927 return P === undefined ? _create(it) : $defineProperties(_create(it), P); 4928}; 4929 4930var $propertyIsEnumerable = function propertyIsEnumerable(key) { 4931 var E = isEnum.call(this, key = toPrimitive(key, true)); 4932 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 4933 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 4934}; 4935 4936var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 4937 it = toIObject(it); 4938 key = toPrimitive(key, true); 4939 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 4940 var D = gOPD(it, key); 4941 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 4942 return D; 4943}; 4944 4945var $getOwnPropertyNames = function getOwnPropertyNames(it) { 4946 var names = gOPN(toIObject(it)); 4947 var result = []; 4948 var i = 0; 4949 var key; 4950 4951 while (names.length > i) { 4952 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 4953 } 4954 4955 return result; 4956}; 4957 4958var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 4959 var IS_OP = it === ObjectProto; 4960 var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 4961 var result = []; 4962 var i = 0; 4963 var key; 4964 4965 while (names.length > i) { 4966 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 4967 } 4968 4969 return result; 4970}; 4971 4972if (!USE_NATIVE) { 4973 $Symbol = function _Symbol() { 4974 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 4975 var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 4976 4977 var $set = function $set(value) { 4978 if (this === ObjectProto) $set.call(OPSymbols, value); 4979 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 4980 setSymbolDesc(this, tag, createDesc(1, value)); 4981 }; 4982 4983 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { 4984 configurable: true, 4985 set: $set 4986 }); 4987 return wrap(tag); 4988 }; 4989 4990 redefine($Symbol[PROTOTYPE], 'toString', function toString() { 4991 return this._k; 4992 }); 4993 $GOPD.f = $getOwnPropertyDescriptor; 4994 $DP.f = $defineProperty; 4995 __w_pdfjs_require__(132).f = gOPNExt.f = $getOwnPropertyNames; 4996 __w_pdfjs_require__(73).f = $propertyIsEnumerable; 4997 __w_pdfjs_require__(72).f = $getOwnPropertySymbols; 4998 4999 if (DESCRIPTORS && !__w_pdfjs_require__(32)) { 5000 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 5001 } 5002 5003 wksExt.f = function (name) { 5004 return wrap(wks(name)); 5005 }; 5006} 5007 5008$export($export.G + $export.W + $export.F * !USE_NATIVE, { 5009 Symbol: $Symbol 5010}); 5011 5012for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { 5013 wks(es6Symbols[j++]); 5014} 5015 5016for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { 5017 wksDefine(wellKnownSymbols[k++]); 5018} 5019 5020$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 5021 'for': function _for(key) { 5022 return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); 5023 }, 5024 keyFor: function keyFor(sym) { 5025 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 5026 5027 for (var key in SymbolRegistry) { 5028 if (SymbolRegistry[key] === sym) return key; 5029 } 5030 }, 5031 useSetter: function useSetter() { 5032 setter = true; 5033 }, 5034 useSimple: function useSimple() { 5035 setter = false; 5036 } 5037}); 5038$export($export.S + $export.F * !USE_NATIVE, 'Object', { 5039 create: $create, 5040 defineProperty: $defineProperty, 5041 defineProperties: $defineProperties, 5042 getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 5043 getOwnPropertyNames: $getOwnPropertyNames, 5044 getOwnPropertySymbols: $getOwnPropertySymbols 5045}); 5046$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 5047 var S = $Symbol();
5048 return _stringify([S]) != '[null]' || _stringify({ 5049 a: S 5050 }) != '{}' || _stringify(Object(S)) != '{}'; 5051})), 'JSON', { 5052 stringify: function stringify(it) { 5053 var args = [it]; 5054 var i = 1; 5055 var replacer, $replacer; 5056 5057 while (arguments.length > i) { 5058 args.push(arguments[i++]); 5059 } 5060 5061 $replacer = replacer = args[1]; 5062 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; 5063 if (!isArray(replacer)) replacer = function replacer(key, value) { 5064 if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 5065 if (!isSymbol(value)) return value; 5066 }; 5067 args[1] = replacer; 5068 return _stringify.apply($JSON, args); 5069 } 5070}); 5071$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 5072setToStringTag($Symbol, 'Symbol'); 5073setToStringTag(Math, 'Math', true); 5074setToStringTag(global.JSON, 'JSON', true); 5075 5076/***/ }), 5077/* 128 */ 5078/***/ (function(module, exports, __w_pdfjs_require__) { 5079 5080"use strict"; 5081 5082 5083exports.f = __w_pdfjs_require__(30); 5084 5085/***/ }), 5086/* 129 */ 5087/***/ (function(module, exports, __w_pdfjs_require__) { 5088 5089"use strict"; 5090 5091 5092var global = __w_pdfjs_require__(8); 5093 5094var core = __w_pdfjs_require__(9); 5095 5096var LIBRARY = __w_pdfjs_require__(32); 5097 5098var wksExt = __w_pdfjs_require__(128); 5099 5100var defineProperty = __w_pdfjs_require__(11).f; 5101 5102module.exports = function (name) { 5103 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 5104 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { 5105 value: wksExt.f(name) 5106 }); 5107}; 5108 5109/***/ }), 5110/* 130 */ 5111/***/ (function(module, exports, __w_pdfjs_require__) { 5112 5113"use strict"; 5114 5115 5116var getKeys = __w_pdfjs_require__(54); 5117 5118var gOPS = __w_pdfjs_require__(72); 5119 5120var pIE = __w_pdfjs_require__(73); 5121 5122module.exports = function (it) { 5123 var result = getKeys(it); 5124 var getSymbols = gOPS.f; 5125 5126 if (getSymbols) { 5127 var symbols = getSymbols(it); 5128 var isEnum = pIE.f; 5129 var i = 0; 5130 var key; 5131 5132 while (symbols.length > i) { 5133 if (isEnum.call(it, key = symbols[i++])) result.push(key); 5134 } 5135 } 5136 5137 return result; 5138}; 5139 5140/***/ }), 5141/* 131 */ 5142/***/ (function(module, exports, __w_pdfjs_require__) { 5143 5144"use strict"; 5145 5146 5147function _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); } 5148 5149var toIObject = __w_pdfjs_require__(42); 5150 5151var gOPN = __w_pdfjs_require__(132).f; 5152 5153var toString = {}.toString; 5154var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; 5155 5156var getWindowNames = function getWindowNames(it) { 5157 try { 5158 return gOPN(it); 5159 } catch (e) { 5160 return windowNames.slice(); 5161 } 5162}; 5163 5164module.exports.f = function getOwnPropertyNames(it) { 5165 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 5166}; 5167 5168/***/ }), 5169/* 132 */ 5170/***/ (function(module, exports, __w_pdfjs_require__) { 5171 5172"use strict"; 5173 5174 5175var $keys = __w_pdfjs_require__(55); 5176 5177var hiddenKeys = __w_pdfjs_require__(57).concat('length', 'prototype'); 5178 5179exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 5180 return $keys(O, hiddenKeys); 5181}; 5182 5183/***/ }), 5184/* 133 */ 5185/***/ (function(module, exports, __w_pdfjs_require__) { 5186 5187"use strict"; 5188 5189 5190__w_pdfjs_require__(134); 5191 5192module.exports = __w_pdfjs_require__(9).String.padStart; 5193 5194/***/ }), 5195/* 134 */ 5196/***/ (function(module, exports, __w_pdfjs_require__) { 5197 5198"use strict"; 5199 5200 5201var $export = __w_pdfjs_require__(7); 5202 5203var $pad = __w_pdfjs_require__(135); 5204 5205var userAgent = __w_pdfjs_require__(95); 5206 5207$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { 5208 padStart: function padStart(maxLength) { 5209 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); 5210 } 5211}); 5212 5213/***/ }), 5214/* 135 */ 5215/***/ (function(module, exports, __w_pdfjs_require__) { 5216 5217"use strict"; 5218 5219
5220var toLength = __w_pdfjs_require__(25); 5221 5222var repeat = __w_pdfjs_require__(136); 5223 5224var defined = __w_pdfjs_require__(33); 5225 5226module.exports = function (that, maxLength, fillString, left) { 5227 var S = String(defined(that)); 5228 var stringLength = S.length; 5229 var fillStr = fillString === undefined ? ' ' : String(fillString); 5230 var intMaxLength = toLength(maxLength); 5231 if (intMaxLength <= stringLength || fillStr == '') return S; 5232 var fillLen = intMaxLength - stringLength; 5233 var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); 5234 if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); 5235 return left ? stringFiller + S : S + stringFiller; 5236}; 5237 5238/***/ }), 5239/* 136 */ 5240/***/ (function(module, exports, __w_pdfjs_require__) { 5241 5242"use strict"; 5243 5244 5245var toInteger = __w_pdfjs_require__(26); 5246 5247var defined = __w_pdfjs_require__(33); 5248 5249module.exports = function repeat(count) { 5250 var str = String(defined(this)); 5251 var res = ''; 5252 var n = toInteger(count); 5253 if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); 5254 5255 for (; n > 0; (n >>>= 1) && (str += str)) { 5256 if (n & 1) res += str; 5257 } 5258 5259 return res; 5260}; 5261 5262/***/ }), 5263/* 137 */ 5264/***/ (function(module, exports, __w_pdfjs_require__) { 5265 5266"use strict"; 5267 5268 5269__w_pdfjs_require__(138); 5270 5271module.exports = __w_pdfjs_require__(9).String.padEnd; 5272 5273/***/ }), 5274/* 138 */ 5275/***/ (function(module, exports, __w_pdfjs_require__) { 5276 5277"use strict"; 5278 5279 5280var $export = __w_pdfjs_require__(7); 5281 5282var $pad = __w_pdfjs_require__(135); 5283 5284var userAgent = __w_pdfjs_require__(95); 5285 5286$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { 5287 padEnd: function padEnd(maxLength) { 5288 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); 5289 } 5290}); 5291 5292/***/ }), 5293/* 139 */ 5294/***/ (function(module, exports, __w_pdfjs_require__) { 5295 5296"use strict"; 5297 5298 5299__w_pdfjs_require__(140); 5300 5301module.exports = __w_pdfjs_require__(9).Object.values; 5302 5303/***/ }), 5304/* 140 */ 5305/***/ (function(module, exports, __w_pdfjs_require__) { 5306 5307"use strict"; 5308 5309 5310var $export = __w_pdfjs_require__(7); 5311 5312var $values = __w_pdfjs_require__(141)(false); 5313 5314$export($export.S, 'Object', { 5315 values: function values(it) { 5316 return $values(it); 5317 } 5318}); 5319 5320/***/ }), 5321/* 141 */ 5322/***/ (function(module, exports, __w_pdfjs_require__) { 5323 5324"use strict"; 5325 5326 5327var getKeys = __w_pdfjs_require__(54); 5328 5329var toIObject = __w_pdfjs_require__(42); 5330 5331var isEnum = __w_pdfjs_require__(73).f; 5332 5333module.exports = function (isEntries) { 5334 return function (it) { 5335 var O = toIObject(it); 5336 var keys = getKeys(O); 5337 var length = keys.length; 5338 var i = 0; 5339 var result = []; 5340 var key; 5341 5342 while (length > i) { 5343 if (isEnum.call(O, key = keys[i++])) { 5344 result.push(isEntries ? [key, O[key]] : O[key]); 5345 } 5346 } 5347 5348 return result; 5349 }; 5350}; 5351 5352/***/ }), 5353/* 142 */ 5354/***/ (function(module, exports, __w_pdfjs_require__) { 5355 5356"use strict"; 5357 5358 5359{ 5360 var isReadableStreamSupported = false; 5361 5362 if (typeof ReadableStream !== 'undefined') { 5363 try { 5364 new ReadableStream({ 5365 start: function start(controller) { 5366 controller.close(); 5367 } 5368 }); 5369 isReadableStreamSupported = true; 5370 } catch (e) {} 5371 } 5372 5373 if (isReadableStreamSupported) { 5374 exports.ReadableStream = ReadableStream; 5375 } else { 5376 exports.ReadableStream = __w_pdfjs_require__(143).ReadableStream; 5377 } 5378} 5379 5380/***/ }), 5381/* 143 */ 5382/***/ (function(module, exports, __w_pdfjs_require__) { 5383 5384"use strict"; 5385 5386 5387function _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); } 5388 5389(function (e, a) { 5390 for (var i in a) { 5391 e[i] = a[i]; 5392 } 5393})(exports, function (modules) { 5394 var installedModules = {}; 5395 5396 function __w_pdfjs_require__(moduleId) { 5397 if (installedModules[moduleId]) return installedModules[moduleId].exports; 5398 var module = installedModules[moduleId] = { 5399 i: moduleId, 5400 l: false, 5401 exports: {} 5402 }; 5403 modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 5404 module.l = true; 5405 return module.exports; 5406 } 5407 5408 __w_pdfjs_require__.m = modules; 5409 __w_pdfjs_require__.c = installedModules; 5410 5411 __w_pdfjs_require__.i = function (value) { 5412 return value; 5413 }; 5414 5415 __w_pdfjs_require__.d = function (exports, name, getter) { 5416 if (!__w_pdfjs_require__.o(exports, name)) { 5417 Object.defineProperty(exports, name, { 5418 configurable: false, 5419 enumerable: true, 5420 get: getter 5421 }); 5422 } 5423 }; 5424 5425 __w_pdfjs_require__.n = function (module) {
5426 var getter = module && module.__esModule ? function getDefault() { 5427 return module['default']; 5428 } : function getModuleExports() { 5429 return module; 5430 }; 5431 5432 __w_pdfjs_require__.d(getter, 'a', getter); 5433 5434 return getter; 5435 }; 5436 5437 __w_pdfjs_require__.o = function (object, property) { 5438 return Object.prototype.hasOwnProperty.call(object, property); 5439 }; 5440 5441 __w_pdfjs_require__.p = ""; 5442 return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); 5443}([function (module, exports, __w_pdfjs_require__) { 5444 "use strict"; 5445 5446 var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { 5447 return _typeof2(obj); 5448 } : function (obj) { 5449 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 5450 }; 5451 5452 var _require = __w_pdfjs_require__(1), 5453 assert = _require.assert; 5454 5455 function IsPropertyKey(argument) { 5456 return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; 5457 } 5458 5459 exports.typeIsObject = function (x) { 5460 return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; 5461 }; 5462 5463 exports.createDataProperty = function (o, p, v) { 5464 assert(exports.typeIsObject(o)); 5465 Object.defineProperty(o, p, { 5466 value: v, 5467 writable: true, 5468 enumerable: true, 5469 configurable: true 5470 }); 5471 }; 5472 5473 exports.createArrayFromList = function (elements) { 5474 return elements.slice(); 5475 }; 5476 5477 exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { 5478 new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); 5479 }; 5480 5481 exports.CreateIterResultObject = function (value, done) { 5482 assert(typeof done === 'boolean'); 5483 var obj = {}; 5484 Object.defineProperty(obj, 'value', { 5485 value: value, 5486 enumerable: true, 5487 writable: true, 5488 configurable: true 5489 }); 5490 Object.defineProperty(obj, 'done', { 5491 value: done, 5492 enumerable: true, 5493 writable: true, 5494 configurable: true 5495 }); 5496 return obj; 5497 }; 5498 5499 exports.IsFiniteNonNegativeNumber = function (v) { 5500 if (Number.isNaN(v)) { 5501 return false; 5502 } 5503 5504 if (v === Infinity) { 5505 return false; 5506 } 5507 5508 if (v < 0) { 5509 return false; 5510 } 5511 5512 return true; 5513 }; 5514 5515 function Call(F, V, args) { 5516 if (typeof F !== 'function') { 5517 throw new TypeError('Argument is not a function'); 5518 } 5519 5520 return Function.prototype.apply.call(F, V, args); 5521 } 5522 5523 exports.InvokeOrNoop = function (O, P, args) { 5524 assert(O !== undefined); 5525 assert(IsPropertyKey(P)); 5526 assert(Array.isArray(args)); 5527 var method = O[P]; 5528 5529 if (method === undefined) { 5530 return undefined; 5531 } 5532 5533 return Call(method, O, args); 5534 }; 5535 5536 exports.PromiseInvokeOrNoop = function (O, P, args) { 5537 assert(O !== undefined); 5538 assert(IsPropertyKey(P)); 5539 assert(Array.isArray(args)); 5540 5541 try { 5542 return Promise.resolve(exports.InvokeOrNoop(O, P, args)); 5543 } catch (returnValueE) { 5544 return Promise.reject(returnValueE); 5545 } 5546 }; 5547 5548 exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { 5549 assert(O !== undefined); 5550 assert(IsPropertyKey(P)); 5551 assert(Array.isArray(args)); 5552 assert(Array.isArray(argsF)); 5553 var method = void 0; 5554 5555 try { 5556 method = O[P]; 5557 } catch (methodE) { 5558 return Promise.reject(methodE); 5559 } 5560 5561 if (method === undefined) { 5562 return F.apply(null, argsF); 5563 } 5564 5565 try { 5566 return Promise.resolve(Call(method, O, args)); 5567 } catch (e) { 5568 return Promise.reject(e); 5569 } 5570 }; 5571 5572 exports.TransferArrayBuffer = function (O) { 5573 return O.slice(); 5574 }; 5575 5576 exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { 5577 highWaterMark = Number(highWaterMark); 5578 5579 if (Number.isNaN(highWaterMark) || highWaterMark < 0) { 5580 throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); 5581 } 5582 5583 return highWaterMark; 5584 }; 5585 5586 exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { 5587 if (size !== undefined && typeof size !== 'function') { 5588 throw new TypeError('size property of a queuing strategy must be a function'); 5589 } 5590 5591 highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); 5592 return { 5593 size: size, 5594 highWaterMark: highWaterMark 5595 }; 5596 }; 5597}, function (module, exports, __w_pdfjs_require__) { 5598 "use strict"; 5599 5600 function rethrowAssertionErrorRejection(e) { 5601 if (e && e.constructor === AssertionError) { 5602 setTimeout(function () { 5603 throw e; 5604 }, 0); 5605 } 5606 } 5607 5608 function AssertionError(message) { 5609 this.name = 'AssertionError'; 5610 this.message = message || ''; 5611 this.stack = new Error().stack; 5612 } 5613 5614 AssertionError.prototype = Object.create(Error.prototype); 5615 AssertionError.prototype.constructor = AssertionError; 5616 5617 function assert(value, message) { 5618 if (!value) { 5619 throw new AssertionError(message); 5620 } 5621 } 5622 5623 module.exports = { 5624 rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, 5625 AssertionError: AssertionError, 5626 assert: assert 5627 }; 5628}, function (module, exports, __w_pdfjs_require__) { 5629 "use strict"; 5630 5631 var _createClass = function () { 5632 function defineProperties(target, props) { 5633 for (var i = 0; i < props.length; i++) { 5634 var descriptor = props[i]; 5635 descriptor.enumerable = descriptor.enumerable || false; 5636 descriptor.configurable = true; 5637 if ("value" in descriptor) descriptor.writable = true; 5638 Object.defineProperty(target, descriptor.key, descriptor); 5639 } 5640 } 5641 5642 return function (Constructor, protoProps, staticProps) { 5643 if (protoProps) defineProperties(Constructor.prototype, protoProps); 5644 if (staticProps) defineProperties(Constructor, staticProps); 5645 return Constructor; 5646 }; 5647 }(); 5648 5649 function _classCallCheck(instance, Constructor) { 5650 if (!(instance instanceof Constructor)) { 5651 throw new TypeError("Cannot call a class as a function"); 5652 } 5653 } 5654 5655 var _require = __w_pdfjs_require__(0), 5656 InvokeOrNoop = _require.InvokeOrNoop, 5657 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 5658 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 5659 typeIsObject = _require.typeIsObject; 5660 5661 var _require2 = __w_pdfjs_require__(1), 5662 assert = _require2.assert, 5663 rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; 5664 5665 var _require3 = __w_pdfjs_require__(3), 5666 DequeueValue = _require3.DequeueValue, 5667 EnqueueValueWithSize = _require3.EnqueueValueWithSize, 5668 PeekQueueValue = _require3.PeekQueueValue, 5669 ResetQueue = _require3.ResetQueue; 5670 5671 var WritableStream = function () { 5672 function WritableStream() { 5673 var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 5674 5675 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 5676 size = _ref.size, 5677 _ref$highWaterMark = _ref.highWaterMark, 5678 highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; 5679 5680 _classCallCheck(this, WritableStream); 5681 5682 this._state = 'writable'; 5683 this._storedError = undefined; 5684 this._writer = undefined; 5685 this._writableStreamController = undefined; 5686 this._writeRequests = []; 5687 this._inFlightWriteRequest = undefined; 5688 this._closeRequest = undefined; 5689 this._inFlightCloseRequest = undefined; 5690 this._pendingAbortRequest = undefined; 5691 this._backpressure = false; 5692 var type = underlyingSink.type; 5693 5694 if (type !== undefined) { 5695 throw new RangeError('Invalid type is specified'); 5696 } 5697 5698 this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); 5699 5700 this._writableStreamController.__startSteps(); 5701 } 5702 5703 _createClass(WritableStream, [{ 5704 key: 'abort', 5705 value: function abort(reason) { 5706 if (IsWritableStream(this) === false) { 5707 return Promise.reject(streamBrandCheckException('abort')); 5708 } 5709 5710 if (IsWritableStreamLocked(this) === true) { 5711 return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); 5712 } 5713 5714 return WritableStreamAbort(this, reason); 5715 } 5716 }, { 5717 key: 'getWriter', 5718 value: function getWriter() { 5719 if (IsWritableStream(this) === false) { 5720 throw streamBrandCheckException('getWriter'); 5721 } 5722 5723 return AcquireWritableStreamDefaultWriter(this); 5724 } 5725 }, { 5726 key: 'locked', 5727 get: function get() { 5728 if (IsWritableStream(this) === false) { 5729 throw streamBrandCheckException('locked'); 5730 } 5731 5732 return IsWritableStreamLocked(this); 5733 } 5734 }]); 5735 5736 return WritableStream; 5737 }(); 5738 5739 module.exports = { 5740 AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, 5741 IsWritableStream: IsWritableStream, 5742 IsWritableStreamLocked: IsWritableStreamLocked, 5743 WritableStream: WritableStream, 5744 WritableStreamAbort: WritableStreamAbort, 5745 WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, 5746 WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, 5747 WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, 5748 WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, 5749 WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight 5750 }; 5751 5752 function AcquireWritableStreamDefaultWriter(stream) { 5753 return new WritableStreamDefaultWriter(stream); 5754 } 5755 5756 function IsWritableStream(x) { 5757 if (!typeIsObject(x)) { 5758 return false; 5759 } 5760 5761 if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { 5762 return false; 5763 } 5764 5765 return true; 5766 } 5767 5768 function IsWritableStreamLocked(stream) {
5769 assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); 5770 5771 if (stream._writer === undefined) { 5772 return false; 5773 } 5774 5775 return true; 5776 } 5777 5778 function WritableStreamAbort(stream, reason) { 5779 var state = stream._state; 5780 5781 if (state === 'closed') { 5782 return Promise.resolve(undefined); 5783 } 5784 5785 if (state === 'errored') { 5786 return Promise.reject(stream._storedError); 5787 } 5788 5789 var error = new TypeError('Requested to abort'); 5790 5791 if (stream._pendingAbortRequest !== undefined) { 5792 return Promise.reject(error); 5793 } 5794 5795 assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); 5796 var wasAlreadyErroring = false; 5797 5798 if (state === 'erroring') { 5799 wasAlreadyErroring = true; 5800 reason = undefined; 5801 } 5802 5803 var promise = new Promise(function (resolve, reject) { 5804 stream._pendingAbortRequest = { 5805 _resolve: resolve, 5806 _reject: reject, 5807 _reason: reason, 5808 _wasAlreadyErroring: wasAlreadyErroring 5809 }; 5810 }); 5811 5812 if (wasAlreadyErroring === false) { 5813 WritableStreamStartErroring(stream, error); 5814 } 5815 5816 return promise; 5817 } 5818 5819 function WritableStreamAddWriteRequest(stream) { 5820 assert(IsWritableStreamLocked(stream) === true); 5821 assert(stream._state === 'writable'); 5822 var promise = new Promise(function (resolve, reject) { 5823 var writeRequest = { 5824 _resolve: resolve, 5825 _reject: reject 5826 }; 5827 5828 stream._writeRequests.push(writeRequest); 5829 }); 5830 return promise; 5831 } 5832 5833 function WritableStreamDealWithRejection(stream, error) { 5834 var state = stream._state; 5835 5836 if (state === 'writable') { 5837 WritableStreamStartErroring(stream, error); 5838 return; 5839 } 5840 5841 assert(state === 'erroring'); 5842 WritableStreamFinishErroring(stream); 5843 } 5844 5845 function WritableStreamStartErroring(stream, reason) { 5846 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 5847 assert(stream._state === 'writable', 'state must be writable'); 5848 var controller = stream._writableStreamController; 5849 assert(controller !== undefined, 'controller must not be undefined'); 5850 stream._state = 'erroring'; 5851 stream._storedError = reason; 5852 var writer = stream._writer; 5853 5854 if (writer !== undefined) { 5855 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); 5856 } 5857 5858 if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { 5859 WritableStreamFinishErroring(stream); 5860 } 5861 } 5862 5863 function WritableStreamFinishErroring(stream) { 5864 assert(stream._state === 'erroring', 'stream._state === erroring'); 5865 assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); 5866 stream._state = 'errored'; 5867 5868 stream._writableStreamController.__errorSteps(); 5869 5870 var storedError = stream._storedError; 5871 5872 for (var i = 0; i < stream._writeRequests.length; i++) { 5873 var writeRequest = stream._writeRequests[i]; 5874 5875 writeRequest._reject(storedError); 5876 } 5877 5878 stream._writeRequests = []; 5879 5880 if (stream._pendingAbortRequest === undefined) { 5881 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5882 return; 5883 } 5884 5885 var abortRequest = stream._pendingAbortRequest; 5886 stream._pendingAbortRequest = undefined; 5887 5888 if (abortRequest._wasAlreadyErroring === true) { 5889 abortRequest._reject(storedError); 5890 5891 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5892 return; 5893 } 5894 5895 var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); 5896 5897 promise.then(function () { 5898 abortRequest._resolve(); 5899 5900 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5901 }, function (reason) { 5902 abortRequest._reject(reason); 5903 5904 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 5905 }); 5906 } 5907 5908 function WritableStreamFinishInFlightWrite(stream) { 5909 assert(stream._inFlightWriteRequest !== undefined); 5910 5911 stream._inFlightWriteRequest._resolve(undefined); 5912 5913 stream._inFlightWriteRequest = undefined; 5914 } 5915 5916 function WritableStreamFinishInFlightWriteWithError(stream, error) { 5917 assert(stream._inFlightWriteRequest !== undefined); 5918 5919 stream._inFlightWriteRequest._reject(error); 5920 5921 stream._inFlightWriteRequest = undefined; 5922 assert(stream._state === 'writable' || stream._state === 'erroring'); 5923 WritableStreamDealWithRejection(stream, error); 5924 } 5925 5926 function WritableStreamFinishInFlightClose(stream) { 5927 assert(stream._inFlightCloseRequest !== undefined); 5928 5929 stream._inFlightCloseRequest._resolve(undefined); 5930 5931 stream._inFlightCloseRequest = undefined; 5932 var state = stream._state; 5933 assert(state === 'writable' || state === 'erroring'); 5934 5935 if (state === 'erroring') { 5936 stream._storedError = undefined; 5937 5938 if (stream._pendingAbortRequest !== undefined) { 5939 stream._pendingAbortRequest._resolve(); 5940 5941 stream._pendingAbortRequest = undefined; 5942 } 5943 } 5944 5945 stream._state = 'closed'; 5946 var writer = stream._writer; 5947 5948 if (writer !== undefined) { 5949 defaultWriterClosedPromiseResolve(writer); 5950 } 5951 5952 assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); 5953 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 5954 } 5955 5956 function WritableStreamFinishInFlightCloseWithError(stream, error) { 5957 assert(stream._inFlightCloseRequest !== undefined); 5958 5959 stream._inFlightCloseRequest._reject(error); 5960 5961 stream._inFlightCloseRequest = undefined; 5962 assert(stream._state === 'writable' || stream._state === 'erroring'); 5963 5964 if (stream._pendingAbortRequest !== undefined) { 5965 stream._pendingAbortRequest._reject(error); 5966 5967 stream._pendingAbortRequest = undefined; 5968 } 5969 5970 WritableStreamDealWithRejection(stream, error); 5971 } 5972 5973 function WritableStreamCloseQueuedOrInFlight(stream) { 5974 if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { 5975 return false; 5976 } 5977 5978 return true; 5979 } 5980 5981 function WritableStreamHasOperationMarkedInFlight(stream) { 5982 if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { 5983 return false; 5984 } 5985 5986 return true; 5987 } 5988 5989 function WritableStreamMarkCloseRequestInFlight(stream) { 5990 assert(stream._inFlightCloseRequest === undefined); 5991 assert(stream._closeRequest !== undefined); 5992 stream._inFlightCloseRequest = stream._closeRequest; 5993 stream._closeRequest = undefined; 5994 } 5995 5996 function WritableStreamMarkFirstWriteRequestInFlight(stream) { 5997 assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); 5998 assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); 5999 stream._inFlightWriteRequest = stream._writeRequests.shift(); 6000 } 6001 6002 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { 6003 assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); 6004 6005 if (stream._closeRequest !== undefined) { 6006 assert(stream._inFlightCloseRequest === undefined); 6007 6008 stream._closeRequest._reject(stream._storedError); 6009 6010 stream._closeRequest = undefined; 6011 } 6012 6013 var writer = stream._writer; 6014 6015 if (writer !== undefined) { 6016 defaultWriterClosedPromiseReject(writer, stream._storedError); 6017 6018 writer._closedPromise.catch(function () {}); 6019 } 6020 } 6021 6022 function WritableStreamUpdateBackpressure(stream, backpressure) { 6023 assert(stream._state === 'writable');
6024 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 6025 var writer = stream._writer; 6026 6027 if (writer !== undefined && backpressure !== stream._backpressure) { 6028 if (backpressure === true) { 6029 defaultWriterReadyPromiseReset(writer); 6030 } else { 6031 assert(backpressure === false); 6032 defaultWriterReadyPromiseResolve(writer); 6033 } 6034 } 6035 6036 stream._backpressure = backpressure; 6037 } 6038 6039 var WritableStreamDefaultWriter = function () { 6040 function WritableStreamDefaultWriter(stream) { 6041 _classCallCheck(this, WritableStreamDefaultWriter); 6042 6043 if (IsWritableStream(stream) === false) { 6044 throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); 6045 } 6046 6047 if (IsWritableStreamLocked(stream) === true) { 6048 throw new TypeError('This stream has already been locked for exclusive writing by another writer'); 6049 } 6050 6051 this._ownerWritableStream = stream; 6052 stream._writer = this; 6053 var state = stream._state; 6054 6055 if (state === 'writable') { 6056 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { 6057 defaultWriterReadyPromiseInitialize(this); 6058 } else { 6059 defaultWriterReadyPromiseInitializeAsResolved(this); 6060 } 6061 6062 defaultWriterClosedPromiseInitialize(this); 6063 } else if (state === 'erroring') { 6064 defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); 6065 6066 this._readyPromise.catch(function () {}); 6067 6068 defaultWriterClosedPromiseInitialize(this); 6069 } else if (state === 'closed') { 6070 defaultWriterReadyPromiseInitializeAsResolved(this); 6071 defaultWriterClosedPromiseInitializeAsResolved(this); 6072 } else { 6073 assert(state === 'errored', 'state must be errored'); 6074 var storedError = stream._storedError; 6075 defaultWriterReadyPromiseInitializeAsRejected(this, storedError); 6076 6077 this._readyPromise.catch(function () {}); 6078 6079 defaultWriterClosedPromiseInitializeAsRejected(this, storedError); 6080 6081 this._closedPromise.catch(function () {}); 6082 } 6083 } 6084 6085 _createClass(WritableStreamDefaultWriter, [{ 6086 key: 'abort', 6087 value: function abort(reason) { 6088 if (IsWritableStreamDefaultWriter(this) === false) { 6089 return Promise.reject(defaultWriterBrandCheckException('abort')); 6090 } 6091 6092 if (this._ownerWritableStream === undefined) { 6093 return Promise.reject(defaultWriterLockException('abort')); 6094 } 6095 6096 return WritableStreamDefaultWriterAbort(this, reason); 6097 } 6098 }, { 6099 key: 'close', 6100 value: function close() { 6101 if (IsWritableStreamDefaultWriter(this) === false) { 6102 return Promise.reject(defaultWriterBrandCheckException('close')); 6103 } 6104 6105 var stream = this._ownerWritableStream; 6106 6107 if (stream === undefined) { 6108 return Promise.reject(defaultWriterLockException('close')); 6109 } 6110 6111 if (WritableStreamCloseQueuedOrInFlight(stream) === true) { 6112 return Promise.reject(new TypeError('cannot close an already-closing stream')); 6113 } 6114 6115 return WritableStreamDefaultWriterClose(this); 6116 } 6117 }, { 6118 key: 'releaseLock', 6119 value: function releaseLock() { 6120 if (IsWritableStreamDefaultWriter(this) === false) { 6121 throw defaultWriterBrandCheckException('releaseLock'); 6122 } 6123 6124 var stream = this._ownerWritableStream; 6125 6126 if (stream === undefined) { 6127 return; 6128 } 6129 6130 assert(stream._writer !== undefined); 6131 WritableStreamDefaultWriterRelease(this); 6132 } 6133 }, { 6134 key: 'write', 6135 value: function write(chunk) { 6136 if (IsWritableStreamDefaultWriter(this) === false) { 6137 return Promise.reject(defaultWriterBrandCheckException('write')); 6138 } 6139 6140 if (this._ownerWritableStream === undefined) { 6141 return Promise.reject(defaultWriterLockException('write to')); 6142 } 6143 6144 return WritableStreamDefaultWriterWrite(this, chunk); 6145 } 6146 }, { 6147 key: 'closed', 6148 get: function get() { 6149 if (IsWritableStreamDefaultWriter(this) === false) { 6150 return Promise.reject(defaultWriterBrandCheckException('closed')); 6151 } 6152 6153 return this._closedPromise; 6154 } 6155 }, { 6156 key: 'desiredSize', 6157 get: function get() { 6158 if (IsWritableStreamDefaultWriter(this) === false) { 6159 throw defaultWriterBrandCheckException('desiredSize'); 6160 } 6161 6162 if (this._ownerWritableStream === undefined) { 6163 throw defaultWriterLockException('desiredSize'); 6164 } 6165 6166 return WritableStreamDefaultWriterGetDesiredSize(this); 6167 } 6168 }, { 6169 key: 'ready', 6170 get: function get() { 6171 if (IsWritableStreamDefaultWriter(this) === false) { 6172 return Promise.reject(defaultWriterBrandCheckException('ready')); 6173 } 6174 6175 return this._readyPromise; 6176 } 6177 }]); 6178 6179 return WritableStreamDefaultWriter; 6180 }(); 6181 6182 function IsWritableStreamDefaultWriter(x) { 6183 if (!typeIsObject(x)) { 6184 return false; 6185 } 6186 6187 if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { 6188 return false; 6189 } 6190 6191 return true; 6192 } 6193 6194 function WritableStreamDefaultWriterAbort(writer, reason) { 6195 var stream = writer._ownerWritableStream; 6196 assert(stream !== undefined); 6197 return WritableStreamAbort(stream, reason); 6198 } 6199 6200 function WritableStreamDefaultWriterClose(writer) { 6201 var stream = writer._ownerWritableStream; 6202 assert(stream !== undefined); 6203 var state = stream._state; 6204 6205 if (state === 'closed' || state === 'errored') { 6206 return Promise.reject(new TypeError('The stream (in ' + state
6206+ ' state) is not in the writable state and cannot be closed')); 6207 } 6208 6209 assert(state === 'writable' || state === 'erroring'); 6210 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 6211 var promise = new Promise(function (resolve, reject) { 6212 var closeRequest = { 6213 _resolve: resolve, 6214 _reject: reject 6215 }; 6216 stream._closeRequest = closeRequest; 6217 }); 6218 6219 if (stream._backpressure === true && state === 'writable') { 6220 defaultWriterReadyPromiseResolve(writer); 6221 } 6222 6223 WritableStreamDefaultControllerClose(stream._writableStreamController); 6224 return promise; 6225 } 6226 6227 function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { 6228 var stream = writer._ownerWritableStream; 6229 assert(stream !== undefined); 6230 var state = stream._state; 6231 6232 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 6233 return Promise.resolve(); 6234 } 6235 6236 if (state === 'errored') { 6237 return Promise.reject(stream._storedError); 6238 } 6239 6240 assert(state === 'writable' || state === 'erroring'); 6241 return WritableStreamDefaultWriterClose(writer); 6242 } 6243 6244 function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { 6245 if (writer._closedPromiseState === 'pending') { 6246 defaultWriterClosedPromiseReject(writer, error); 6247 } else { 6248 defaultWriterClosedPromiseResetToRejected(writer, error); 6249 } 6250 6251 writer._closedPromise.catch(function () {}); 6252 } 6253 6254 function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { 6255 if (writer._readyPromiseState === 'pending') { 6256 defaultWriterReadyPromiseReject(writer, error); 6257 } else { 6258 defaultWriterReadyPromiseResetToRejected(writer, error); 6259 } 6260 6261 writer._readyPromise.catch(function () {}); 6262 } 6263 6264 function WritableStreamDefaultWriterGetDesiredSize(writer) { 6265 var stream = writer._ownerWritableStream; 6266 var state = stream._state; 6267 6268 if (state === 'errored' || state === 'erroring') { 6269 return null; 6270 } 6271 6272 if (state === 'closed') { 6273 return 0; 6274 } 6275 6276 return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); 6277 } 6278 6279 function WritableStreamDefaultWriterRelease(writer) { 6280 var stream = writer._ownerWritableStream; 6281 assert(stream !== undefined); 6282 assert(stream._writer === writer); 6283 var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); 6284 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); 6285 WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); 6286 stream._writer = undefined; 6287 writer._ownerWritableStream = undefined; 6288 } 6289 6290 function WritableStreamDefaultWriterWrite(writer, chunk) { 6291 var stream = writer._ownerWritableStream; 6292 assert(stream !== undefined); 6293 var controller = stream._writableStreamController; 6294 var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); 6295 6296 if (stream !== writer._ownerWritableStream) { 6297 return Promise.reject(defaultWriterLockException('write to')); 6298 } 6299 6300 var state = stream._state; 6301 6302 if (state === 'errored') { 6303 return Promise.reject(stream._storedError); 6304 } 6305 6306 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 6307 return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); 6308 } 6309 6310 if (state === 'erroring') { 6311 return Promise.reject(stream._storedError); 6312 } 6313 6314 assert(state === 'writable'); 6315 var promise = WritableStreamAddWriteRequest(stream); 6316 WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); 6317 return promise; 6318 } 6319 6320 var WritableStreamDefaultController = function () { 6321 function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { 6322 _classCallCheck(this, WritableStreamDefaultController); 6323 6324 if (IsWritableStream(stream) === false) { 6325 throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); 6326 } 6327 6328 if (stream._writableStreamController !== undefined) { 6329 throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); 6330 } 6331 6332 this._controlledWritableStream = stream; 6333 this._underlyingSink = underlyingSink; 6334 this._queue = undefined; 6335 this._queueTotalSize = undefined; 6336 ResetQueue(this); 6337 this._started = false; 6338 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 6339 this._strategySize = normalizedStrategy.size; 6340 this._strategyHWM = normalizedStrategy.highWaterMark; 6341 var backpressure = WritableStreamDefaultControllerGetBackpressure(this); 6342 WritableStreamUpdateBackpressure(stream, backpressure); 6343 } 6344 6345 _createClass(WritableStreamDefaultController, [{ 6346 key: 'error', 6347 value: function error(e) { 6348 if (IsWritableStreamDefaultController(this) === false) { 6349 throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); 6350 } 6351 6352 var state = this._controlledWritableStream._state; 6353 6354 if (state !== 'writable') { 6355 return; 6356 } 6357 6358 WritableStreamDefaultControllerError(this, e); 6359 } 6360 }, { 6361 key: '__abortSteps', 6362 value: function __abortSteps(reason) { 6363 return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); 6364 } 6365 }, { 6366 key: '__errorSteps', 6367 value: function __errorSteps() { 6368 ResetQueue(this); 6369 } 6370 }, { 6371 key: '__startSteps', 6372 value: function __startSteps() { 6373 var _this = this; 6374 6375 var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); 6376 var stream = this._controlledWritableStream; 6377 Promise.resolve(startResult).then(function () { 6378 assert(stream._state === 'writable' || stream._state === 'erroring'); 6379 _this._started = true; 6380 WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); 6381 }, function (r) { 6382 assert(stream._state === 'writable' || stream._state === 'erroring'); 6383 _this._started = true; 6384 WritableStreamDealWithRejection(stream, r); 6385 }).catch(rethrowAssertionErrorRejection); 6386 } 6387 }]); 6388 6389 return WritableStreamDefaultController; 6390 }(); 6391 6392 function WritableStreamDefaultControllerClose(controller) { 6393 EnqueueValueWithSize(controller, 'close', 0); 6394 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 6395 } 6396 6397 function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { 6398 var strategySize = controller._strategySize; 6399 6400 if (strategySize === undefined) { 6401 return 1; 6402 } 6403 6404 try { 6405 return strategySize(chunk);
6406 } catch (chunkSizeE) { 6407 WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 6408 return 1; 6409 } 6410 } 6411 6412 function WritableStreamDefaultControllerGetDesiredSize(controller) { 6413 return controller._strategyHWM - controller._queueTotalSize; 6414 } 6415 6416 function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { 6417 var writeRecord = { 6418 chunk: chunk 6419 }; 6420 6421 try { 6422 EnqueueValueWithSize(controller, writeRecord, chunkSize); 6423 } catch (enqueueE) { 6424 WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 6425 return; 6426 } 6427 6428 var stream = controller._controlledWritableStream; 6429 6430 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { 6431 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 6432 WritableStreamUpdateBackpressure(stream, backpressure); 6433 } 6434 6435 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 6436 } 6437 6438 function IsWritableStreamDefaultController(x) { 6439 if (!typeIsObject(x)) { 6440 return false; 6441 } 6442 6443 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { 6444 return false; 6445 } 6446 6447 return true; 6448 } 6449 6450 function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { 6451 var stream = controller._controlledWritableStream; 6452 6453 if (controller._started === false) { 6454 return; 6455 } 6456 6457 if (stream._inFlightWriteRequest !== undefined) { 6458 return; 6459 } 6460 6461 var state = stream._state; 6462 6463 if (state === 'closed' || state === 'errored') { 6464 return; 6465 } 6466 6467 if (state === 'erroring') { 6468 WritableStreamFinishErroring(stream); 6469 return; 6470 } 6471 6472 if (controller._queue.length === 0) { 6473 return; 6474 } 6475 6476 var writeRecord = PeekQueueValue(controller); 6477 6478 if (writeRecord === 'close') { 6479 WritableStreamDefaultControllerProcessClose(controller); 6480 } else { 6481 WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); 6482 } 6483 } 6484 6485 function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { 6486 if (controller._controlledWritableStream._state === 'writable') { 6487 WritableStreamDefaultControllerError(controller, error); 6488 } 6489 } 6490 6491 function WritableStreamDefaultControllerProcessClose(controller) { 6492 var stream = controller._controlledWritableStream; 6493 WritableStreamMarkCloseRequestInFlight(stream); 6494 DequeueValue(controller); 6495 assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); 6496 var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); 6497 sinkClosePromise.then(function () { 6498 WritableStreamFinishInFlightClose(stream); 6499 }, function (reason) { 6500 WritableStreamFinishInFlightCloseWithError(stream, reason); 6501 }).catch(rethrowAssertionErrorRejection); 6502 } 6503 6504 function WritableStreamDefaultControllerProcessWrite(controller, chunk) { 6505 var stream = controller._controlledWritableStream; 6506 WritableStreamMarkFirstWriteRequestInFlight(stream); 6507 var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); 6508 sinkWritePromise.then(function () { 6509 WritableStreamFinishInFlightWrite(stream); 6510 var state = stream._state; 6511 assert(state === 'writable' || state === 'erroring'); 6512 DequeueValue(controller); 6513 6514 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { 6515 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 6516 WritableStreamUpdateBackpressure(stream, backpressure); 6517 } 6518 6519 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 6520 }, function (reason) { 6521 WritableStreamFinishInFlightWriteWithError(stream, reason); 6522 }).catch(rethrowAssertionErrorRejection); 6523 } 6524 6525 function WritableStreamDefaultControllerGetBackpressure(controller) { 6526 var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); 6527 return desiredSize <= 0;
6528 } 6529 6530 function WritableStreamDefaultControllerError(controller, error) { 6531 var stream = controller._controlledWritableStream; 6532 assert(stream._state === 'writable'); 6533 WritableStreamStartErroring(stream, error); 6534 } 6535 6536 function streamBrandCheckException(name) { 6537 return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); 6538 } 6539 6540 function defaultWriterBrandCheckException(name) { 6541 return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); 6542 } 6543 6544 function defaultWriterLockException(name) { 6545 return new TypeError('Cannot ' + name + ' a stream using a released writer'); 6546 } 6547 6548 function defaultWriterClosedPromiseInitialize(writer) { 6549 writer._closedPromise = new Promise(function (resolve, reject) { 6550 writer._closedPromise_resolve = resolve; 6551 writer._closedPromise_reject = reject; 6552 writer._closedPromiseState = 'pending'; 6553 }); 6554 } 6555 6556 function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { 6557 writer._closedPromise = Promise.reject(reason); 6558 writer._closedPromise_resolve = undefined; 6559 writer._closedPromise_reject = undefined; 6560 writer._closedPromiseState = 'rejected'; 6561 } 6562 6563 function defaultWriterClosedPromiseInitializeAsResolved(writer) { 6564 writer._closedPromise = Promise.resolve(undefined); 6565 writer._closedPromise_resolve = undefined; 6566 writer._closedPromise_reject = undefined; 6567 writer._closedPromiseState = 'resolved'; 6568 } 6569 6570 function defaultWriterClosedPromiseReject(writer, reason) { 6571 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 6572 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 6573 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 6574 6575 writer._closedPromise_reject(reason); 6576 6577 writer._closedPromise_resolve = undefined; 6578 writer._closedPromise_reject = undefined; 6579 writer._closedPromiseState = 'rejected'; 6580 } 6581 6582 function defaultWriterClosedPromiseResetToRejected(writer, reason) { 6583 assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); 6584 assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); 6585 assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); 6586 writer._closedPromise = Promise.reject(reason); 6587 writer._closedPromiseState = 'rejected'; 6588 } 6589 6590 function defaultWriterClosedPromiseResolve(writer) { 6591 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 6592 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 6593 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 6594 6595 writer._closedPromise_resolve(undefined); 6596 6597 writer._closedPromise_resolve = undefined; 6598 writer._closedPromise_reject = undefined; 6599 writer._closedPromiseState = 'resolved'; 6600 } 6601 6602 function defaultWriterReadyPromiseInitialize(writer) { 6603 writer._readyPromise = new Promise(function (resolve, reject) { 6604 writer._readyPromise_resolve = resolve; 6605 writer._readyPromise_reject = reject; 6606 }); 6607 writer._readyPromiseState = 'pending'; 6608 } 6609 6610 function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { 6611 writer._readyPromise = Promise.reject(reason); 6612 writer._readyPromise_resolve = undefined; 6613 writer._readyPromise_reject = undefined; 6614 writer._readyPromiseState = 'rejected'; 6615 } 6616 6617 function defaultWriterReadyPromiseInitializeAsResolved(writer) { 6618 writer._readyPromise = Promise.resolve(undefined); 6619 writer._readyPromise_resolve = undefined; 6620 writer._readyPromise_reject = undefined; 6621 writer._readyPromiseState = 'fulfilled'; 6622 } 6623 6624 function defaultWriterReadyPromiseReject(writer, reason) { 6625 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 6626 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 6627 6628 writer._readyPromise_reject(reason); 6629 6630 writer._readyPromise_resolve = undefined; 6631 writer._readyPromise_reject = undefined; 6632 writer._readyPromiseState = 'rejected'; 6633 } 6634 6635 function defaultWriterReadyPromiseReset(writer) { 6636 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 6637 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 6638 writer._readyPromise = new Promise(function (resolve, reject) { 6639 writer._readyPromise_resolve = resolve; 6640 writer._readyPromise_reject = reject; 6641 });
6642 writer._readyPromiseState = 'pending'; 6643 } 6644 6645 function defaultWriterReadyPromiseResetToRejected(writer, reason) { 6646 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 6647 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 6648 writer._readyPromise = Promise.reject(reason); 6649 writer._readyPromiseState = 'rejected'; 6650 } 6651 6652 function defaultWriterReadyPromiseResolve(writer) { 6653 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 6654 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 6655 6656 writer._readyPromise_resolve(undefined); 6657 6658 writer._readyPromise_resolve = undefined; 6659 writer._readyPromise_reject = undefined; 6660 writer._readyPromiseState = 'fulfilled'; 6661 } 6662}, function (module, exports, __w_pdfjs_require__) { 6663 "use strict"; 6664 6665 var _require = __w_pdfjs_require__(0), 6666 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; 6667 6668 var _require2 = __w_pdfjs_require__(1), 6669 assert = _require2.assert; 6670 6671 exports.DequeueValue = function (container) { 6672 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 6673 assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); 6674 6675 var pair = container._queue.shift(); 6676 6677 container._queueTotalSize -= pair.size; 6678 6679 if (container._queueTotalSize < 0) { 6680 container._queueTotalSize = 0; 6681 } 6682 6683 return pair.value; 6684 }; 6685 6686 exports.EnqueueValueWithSize = function (container, value, size) { 6687 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); 6688 size = Number(size); 6689 6690 if (!IsFiniteNonNegativeNumber(size)) { 6691 throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); 6692 } 6693 6694 container._queue.push({ 6695 value: value, 6696 size: size 6697 }); 6698 6699 container._queueTotalSize += size; 6700 }; 6701 6702 exports.PeekQueueValue = function (container) { 6703 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 6704 assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); 6705 var pair = container._queue[0]; 6706 return pair.value; 6707 }; 6708 6709 exports.ResetQueue = function (container) { 6710 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 6711 container._queue = []; 6712 container._queueTotalSize = 0; 6713 }; 6714}, function (module, exports, __w_pdfjs_require__) { 6715 "use strict"; 6716 6717 var _createClass = function () { 6718 function defineProperties(target, props) { 6719 for (var i = 0; i < props.length; i++) { 6720 var descriptor = props[i]; 6721 descriptor.enumerable = descriptor.enumerable || false; 6722 descriptor.configurable = true; 6723 if ("value" in descriptor) descriptor.writable = true; 6724 Object.defineProperty(target, descriptor.key, descriptor); 6725 } 6726 } 6727 6728 return function (Constructor, protoProps, staticProps) { 6729 if (protoProps) defineProperties(Constructor.prototype, protoProps); 6730 if (staticProps) defineProperties(Constructor, staticProps); 6731 return Constructor; 6732 }; 6733 }(); 6734 6735 function _classCallCheck(instance, Constructor) { 6736 if (!(instance instanceof Constructor)) { 6737 throw new TypeError("Cannot call a class as a function"); 6738 } 6739 } 6740 6741 var _require = __w_pdfjs_require__(0), 6742 ArrayBufferCopy = _require.ArrayBufferCopy, 6743 CreateIterResultObject = _require.CreateIterResultObject, 6744 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, 6745 InvokeOrNoop = _require.InvokeOrNoop, 6746 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 6747 TransferArrayBuffer = _require.TransferArrayBuffer, 6748 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 6749 ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; 6750 6751 var _require2 = __w_pdfjs_require__(0), 6752 createArrayFromList = _require2.createArrayFromList, 6753 createDataProperty = _require2.createDataProperty, 6754 typeIsObject = _require2.typeIsObject; 6755 6756 var _require3 = __w_pdfjs_require__(1), 6757 assert = _require3.assert, 6758 rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; 6759 6760 var _require4 = __w_pdfjs_require__(3), 6761 DequeueValue = _require4.DequeueValue, 6762 EnqueueValueWithSize = _require4.EnqueueValueWithSize, 6763 ResetQueue = _require4.ResetQueue; 6764 6765 var _require5 = __w_pdfjs_require__(2), 6766 AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, 6767 IsWritableStream = _require5.IsWritableStream, 6768 IsWritableStreamLocked = _require5.IsWritableStreamLocked, 6769 WritableStreamAbort = _require5.WritableStreamAbort, 6770 WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, 6771 WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, 6772 WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, 6773 WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; 6774 6775 var ReadableStream = function () { 6776 function ReadableStream() { 6777 var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 6778 6779 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 6780 size = _ref.size, 6781 highWaterMark = _ref.highWaterMark; 6782 6783 _classCallCheck(this, ReadableStream); 6784 6785 this._state = 'readable'; 6786 this._reader = undefined; 6787 this._storedError = undefined; 6788 this._disturbed = false; 6789 this._readableStreamController = undefined; 6790 var type = underlyingSource.type; 6791 var typeString = String(type); 6792 6793 if (typeString === 'bytes') { 6794 if (highWaterMark === undefined) { 6795 highWaterMark = 0; 6796 } 6797 6798 this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); 6799 } else if (type === undefined) { 6800 if (highWaterMark === undefined) { 6801 highWaterMark = 1; 6802 } 6803 6804 this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); 6805 } else { 6806 throw new RangeError('Invalid type is specified'); 6807 } 6808 } 6809 6810 _createClass(ReadableStream, [{ 6811 key: 'cancel', 6812 value: function cancel(reason) { 6813 if (IsReadableStream(this) === false) { 6814 return Promise.reject(streamBrandCheckException('cancel')); 6815 } 6816 6817 if (IsReadableStreamLocked(this) === true) { 6818 return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); 6819 } 6820 6821 return ReadableStreamCancel(this, reason); 6822 } 6823 }, { 6824 key: 'getReader', 6825 value: function getReader() { 6826 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 6827 mode = _ref2.mode; 6828 6829 if (IsReadableStream(this) === false) { 6830 throw streamBrandCheckException('getReader'); 6831 } 6832 6833 if (mode === undefined) { 6834 return AcquireReadableStreamDefaultReader(this); 6835 } 6836 6837 mode = String(mode); 6838 6839 if (mode === 'byob') { 6840 return AcquireReadableStreamBYOBReader(this); 6841 } 6842 6843 throw new RangeError('Invalid mode is specified'); 6844 } 6845 }, { 6846 key: 'pipeThrough', 6847 value: function pipeThrough(_ref3, options) { 6848 var writable = _ref3.writable, 6849 readable = _ref3.readable; 6850 var promise = this.pipeTo(writable, options); 6851 ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); 6852 return readable; 6853 } 6854 }, { 6855 key: 'pipeTo', 6856 value: function pipeTo(dest) { 6857 var _this = this; 6858 6859 var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 6860 preventClose = _ref4.preventClose, 6861 preventAbort = _ref4.preventAbort, 6862 preventCancel = _ref4.preventCancel; 6863 6864 if (IsReadableStream(this) === false) { 6865 return Promise.reject(streamBrandCheckException('pipeTo')); 6866 } 6867 6868 if (IsWritableStream(dest) === false) { 6869 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); 6870 } 6871 6872 preventClose = Boolean(preventClose); 6873 preventAbort = Boolean(preventAbort); 6874 preventCancel = Boolean(preventCancel); 6875 6876 if (IsReadableStreamLocked(this) === true) { 6877 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); 6878 } 6879 6880 if (IsWritableStreamLocked(dest) === true) { 6881 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); 6882 } 6883 6884 var reader = AcquireReadableStreamDefaultReader(this); 6885 var writer = AcquireWritableStreamDefaultWriter(dest); 6886 var shuttingDown = false; 6887 var currentWrite = Promise.resolve(); 6888 return new Promise(function (resolve, reject) { 6889 function pipeLoop() { 6890 currentWrite = Promise.resolve(); 6891 6892 if (shuttingDown === true) { 6893 return Promise.resolve(); 6894 } 6895 6896 return writer._readyPromise.then(function () { 6897 return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { 6898 var value = _ref5.value, 6899 done = _ref5.done; 6900 6901 if (done === true) { 6902 return; 6903 } 6904 6905 currentWrite = WritableStreamDefaultWriterWrite(writer, value).cat
6905ch(function () {}); 6906 }); 6907 }).then(pipeLoop); 6908 } 6909 6910 isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { 6911 if (preventAbort === false) { 6912 shutdownWithAction(function () { 6913 return WritableStreamAbort(dest, storedError); 6914 }, true, storedError); 6915 } else { 6916 shutdown(true, storedError); 6917 } 6918 }); 6919 isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { 6920 if (preventCancel === false) { 6921 shutdownWithAction(function () { 6922 return ReadableStreamCancel(_this, storedError); 6923 }, true, storedError); 6924 } else { 6925 shutdown(true, storedError); 6926 } 6927 }); 6928 isOrBecomesClosed(_this, reader._closedPromise, function () { 6929 if (preventClose === false) { 6930 shutdownWithAction(function () { 6931 return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); 6932 }); 6933 } else { 6934 shutdown(); 6935 } 6936 }); 6937 6938 if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { 6939 var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); 6940 6941 if (preventCancel === false) { 6942 shutdownWithAction(function () { 6943 return ReadableStreamCancel(_this, destClosed); 6944 }, true, destClosed); 6945 } else { 6946 shutdown(true, destClosed); 6947 } 6948 } 6949 6950 pipeLoop().catch(function (err) { 6951 currentWrite = Promise.resolve(); 6952 rethrowAssertionErrorRejection(err); 6953 }); 6954 6955 function waitForWritesToFinish() { 6956 var oldCurrentWrite = currentWrite; 6957 return currentWrite.then(function () { 6958 return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; 6959 }); 6960 } 6961 6962 function isOrBecomesErrored(stream, promise, action) { 6963 if (stream._state === 'errored') { 6964 action(stream._storedError); 6965 } else { 6966 promise.catch(action).catch(rethrowAssertionErrorRejection); 6967 } 6968 } 6969 6970 function isOrBecomesClosed(stream, promise, action) { 6971 if (stream._state === 'closed') { 6972 action(); 6973 } else { 6974 promise.then(action).catch(rethrowAssertionErrorRejection); 6975 } 6976 } 6977 6978 function shutdownWithAction(action, originalIsError, originalError) { 6979 if (shuttingDown === true) { 6980 return; 6981 } 6982 6983 shuttingDown = true; 6984 6985 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 6986 waitForWritesToFinish().then(doTheRest); 6987 } else { 6988 doTheRest(); 6989 } 6990 6991 function doTheRest() { 6992 action().then(function () { 6993 return finalize(originalIsError, originalError); 6994 }, function (newError) { 6995 return finalize(true, newError); 6996 }).catch(rethrowAssertionErrorRejection); 6997 } 6998 } 6999 7000 function shutdown(isError, error) { 7001 if (shuttingDown === true) { 7002 return; 7003 } 7004 7005 shuttingDown = true; 7006 7007 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 7008 waitForWritesToFinish().then(function () { 7009 return finalize(isError, error); 7010 }).catch(rethrowAssertionErrorRejection); 7011 } else { 7012 finalize(isError, error); 7013 } 7014 } 7015 7016 function finalize(isError, error) { 7017 WritableStreamDefaultWriterRelease(writer); 7018 ReadableStreamReaderGenericRelease(reader); 7019 7020 if (isError) { 7021 reject(error); 7022 } else { 7023 resolve(undefined); 7024 } 7025 } 7026 }); 7027 } 7028 }, { 7029 key: 'tee', 7030 value: function tee() { 7031 if (IsReadableStream(this) === false) { 7032 throw streamBrandCheckException('tee'); 7033 } 7034 7035 var branches = ReadableStreamTee(this, false); 7036 return createArrayFromList(branches); 7037 } 7038 }, { 7039 key: 'locked', 7040 get: function get() { 7041 if (IsReadableStream(this) === false) { 7042 throw streamBrandCheckException('locked'); 7043 } 7044 7045 return IsReadableStreamLocked(this); 7046 } 7047 }]); 7048 7049 return ReadableStream; 7050 }(); 7051 7052 module.exports = { 7053 ReadableStream: ReadableStream, 7054 IsReadableStreamDisturbed: IsReadableStreamDisturbed, 7055 ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, 7056 ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, 7057 ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, 7058 ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize 7059 }; 7060 7061 function AcquireReadableStreamBYOBReader(stream) { 7062 return new ReadableStreamBYOBReader(stream); 7063 } 7064 7065 function AcquireReadableStreamDefaultReader(stream) { 7066 return new ReadableStreamDefaultReader(stream); 7067 } 7068 7069 function IsReadableStream(x) { 7070 if (!typeIsObject(x)) { 7071 return false; 7072 } 7073 7074 if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { 7075 return false; 7076 } 7077 7078 return true; 7079 } 7080 7081 function IsReadableStreamDisturbed(stream) {
7082 assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); 7083 return stream._disturbed; 7084 } 7085 7086 function IsReadableStreamLocked(stream) { 7087 assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); 7088 7089 if (stream._reader === undefined) { 7090 return false; 7091 } 7092 7093 return true; 7094 } 7095 7096 function ReadableStreamTee(stream, cloneForBranch2) { 7097 assert(IsReadableStream(stream) === true); 7098 assert(typeof cloneForBranch2 === 'boolean'); 7099 var reader = AcquireReadableStreamDefaultReader(stream); 7100 var teeState = { 7101 closedOrErrored: false, 7102 canceled1: false, 7103 canceled2: false, 7104 reason1: undefined, 7105 reason2: undefined 7106 }; 7107 teeState.promise = new Promise(function (resolve) { 7108 teeState._resolve = resolve; 7109 }); 7110 var pull = create_ReadableStreamTeePullFunction(); 7111 pull._reader = reader; 7112 pull._teeState = teeState; 7113 pull._cloneForBranch2 = cloneForBranch2; 7114 var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); 7115 cancel1._stream = stream; 7116 cancel1._teeState = teeState; 7117 var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); 7118 cancel2._stream = stream; 7119 cancel2._teeState = teeState; 7120 var underlyingSource1 = Object.create(Object.prototype);
7121 createDataProperty(underlyingSource1, 'pull', pull); 7122 createDataProperty(underlyingSource1, 'cancel', cancel1); 7123 var branch1Stream = new ReadableStream(underlyingSource1); 7124 var underlyingSource2 = Object.create(Object.prototype); 7125 createDataProperty(underlyingSource2, 'pull', pull); 7126 createDataProperty(underlyingSource2, 'cancel', cancel2); 7127 var branch2Stream = new ReadableStream(underlyingSource2); 7128 pull._branch1 = branch1Stream._readableStreamController; 7129 pull._branch2 = branch2Stream._readableStreamController; 7130 7131 reader._closedPromise.catch(function (r) { 7132 if (teeState.closedOrErrored === true) { 7133 return; 7134 } 7135 7136 ReadableStreamDefaultControllerError(pull._branch1, r); 7137 ReadableStreamDefaultControllerError(pull._branch2, r); 7138 teeState.closedOrErrored = true; 7139 }); 7140 7141 return [branch1Stream, branch2Stream]; 7142 } 7143 7144 function create_ReadableStreamTeePullFunction() { 7145 function f() { 7146 var reader = f._reader, 7147 branch1 = f._branch1, 7148 branch2 = f._branch2, 7149 teeState = f._teeState; 7150 return ReadableStreamDefaultReaderRead(reader).then(function (result) { 7151 assert(typeIsObject(result)); 7152 var value = result.value; 7153 var done = result.done; 7154 assert(typeof done === 'boolean'); 7155 7156 if (done === true && teeState.closedOrErrored === false) { 7157 if (teeState.canceled1 === false) { 7158 ReadableStreamDefaultControllerClose(branch1); 7159 } 7160 7161 if (teeState.canceled2 === false) { 7162 ReadableStreamDefaultControllerClose(branch2); 7163 } 7164 7165 teeState.closedOrErrored = true; 7166 } 7167 7168 if (teeState.closedOrErrored === true) { 7169 return; 7170 } 7171 7172 var value1 = value; 7173 var value2 = value; 7174 7175 if (teeState.canceled1 === false) { 7176 ReadableStreamDefaultControllerEnqueue(branch1, value1); 7177 } 7178 7179 if (teeState.canceled2 === false) { 7180 ReadableStreamDefaultControllerEnqueue(branch2, value2); 7181 } 7182 }); 7183 } 7184 7185 return f; 7186 } 7187 7188 function create_ReadableStreamTeeBranch1CancelFunction() { 7189 function f(reason) { 7190 var stream = f._stream, 7191 teeState = f._teeState; 7192 teeState.canceled1 = true; 7193 teeState.reason1 = reason; 7194 7195 if (teeState.canceled2 === true) { 7196 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 7197 var cancelResult = ReadableStreamCancel(stream, compositeReason); 7198 7199 teeState._resolve(cancelResult); 7200 } 7201 7202 return teeState.promise; 7203 } 7204 7205 return f; 7206 } 7207 7208 function create_ReadableStreamTeeBranch2CancelFunction() { 7209 function f(reason) { 7210 var stream = f._stream, 7211 teeState = f._teeState; 7212 teeState.canceled2 = true; 7213 teeState.reason2 = reason; 7214 7215 if (teeState.canceled1 === true) { 7216 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 7217 var cancelResult = ReadableStreamCancel(stream, compositeReason); 7218 7219 teeState._resolve(cancelResult); 7220 } 7221 7222 return teeState.promise; 7223 } 7224 7225 return f; 7226 } 7227 7228 function ReadableStreamAddReadIntoRequest(stream) { 7229 assert(IsReadableStreamBYOBReader(stream._reader) === true); 7230 assert(stream._state === 'readable' || stream._state === 'closed'); 7231 var promise = new Promise(function (resolve, reject) { 7232 var readIntoRequest = { 7233 _resolve: resolve, 7234 _reject: reject 7235 }; 7236 7237 stream._reader._readIntoRequests.push(readIntoRequest); 7238 }); 7239 return promise; 7240 } 7241 7242 function ReadableStreamAddReadRequest(stream) { 7243 assert(IsReadableStreamDefaultReader(stream._reader) === true); 7244 assert(stream._state === 'readable'); 7245 var promise = new Promise(function (resolve, reject) { 7246 var readRequest = { 7247 _resolve: resolve, 7248 _reject: reject 7249 }; 7250 7251 stream._reader._readRequests.push(readRequest); 7252 }); 7253 return promise; 7254 } 7255 7256 function ReadableStreamCancel(stream, reason) { 7257 stream._disturbed = true; 7258 7259 if (stream._state === 'closed') { 7260 return Promise.resolve(undefined); 7261 } 7262 7263 if (stream._state === 'errored') { 7264 return Promise.reject(stream._storedError); 7265 } 7266 7267 ReadableStreamClose(stream); 7268 7269 var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); 7270 7271 return sourceCancelPromise.then(function () { 7272 return undefined; 7273 });
7274 } 7275 7276 function ReadableStreamClose(stream) { 7277 assert(stream._state === 'readable'); 7278 stream._state = 'closed'; 7279 var reader = stream._reader; 7280 7281 if (reader === undefined) { 7282 return undefined; 7283 } 7284 7285 if (IsReadableStreamDefaultReader(reader) === true) { 7286 for (var i = 0; i < reader._readRequests.length; i++) { 7287 var _resolve = reader._readRequests[i]._resolve; 7288 7289 _resolve(CreateIterResultObject(undefined, true)); 7290 } 7291 7292 reader._readRequests = []; 7293 } 7294 7295 defaultReaderClosedPromiseResolve(reader); 7296 return undefined; 7297 } 7298 7299 function ReadableStreamError(stream, e) { 7300 assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); 7301 assert(stream._state === 'readable', 'state must be readable'); 7302 stream._state = 'errored'; 7303 stream._storedError = e; 7304 var reader = stream._reader; 7305 7306 if (reader === undefined) { 7307 return undefined; 7308 } 7309 7310 if (IsReadableStreamDefaultReader(reader) === true) { 7311 for (var i = 0; i < reader._readRequests.length; i++) { 7312 var readRequest = reader._readRequests[i]; 7313 7314 readRequest._reject(e); 7315 } 7316 7317 reader._readRequests = []; 7318 } else { 7319 assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); 7320 7321 for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { 7322 var readIntoRequest = reader._readIntoRequests[_i]; 7323 7324 readIntoRequest._reject(e); 7325 } 7326 7327 reader._readIntoRequests = []; 7328 } 7329 7330 defaultReaderClosedPromiseReject(reader, e); 7331 7332 reader._closedPromise.catch(function () {}); 7333 } 7334 7335 function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { 7336 var reader = stream._reader; 7337 assert(reader._readIntoRequests.length > 0); 7338 7339 var readIntoRequest = reader._readIntoRequests.shift(); 7340 7341 readIntoRequest._resolve(CreateIterResultObject(chunk, done)); 7342 } 7343 7344 function ReadableStreamFulfillReadRequest(stream, chunk, done) { 7345 var reader = stream._reader; 7346 assert(reader._readRequests.length > 0); 7347 7348 var readRequest = reader._readRequests.shift(); 7349 7350 readRequest._resolve(CreateIterResultObject(chunk, done)); 7351 } 7352 7353 function ReadableStreamGetNumReadIntoRequests(stream) { 7354 return stream._reader._readIntoRequests.length; 7355 } 7356 7357 function ReadableStreamGetNumReadRequests(stream) { 7358 return stream._reader._readRequests.length; 7359 } 7360 7361 function ReadableStreamHasBYOBReader(stream) { 7362 var reader = stream._reader; 7363 7364 if (reader === undefined) { 7365 return false; 7366 } 7367 7368 if (IsReadableStreamBYOBReader(reader) === false) { 7369 return false; 7370 } 7371 7372 return true; 7373 } 7374 7375 function ReadableStreamHasDefaultReader(stream) { 7376 var reader = stream._reader; 7377 7378 if (reader === undefined) { 7379 return false; 7380 } 7381 7382 if (IsReadableStreamDefaultReader(reader) === false) { 7383 return false; 7384 } 7385 7386 return true; 7387 } 7388 7389 var ReadableStreamDefaultReader = function () { 7390 function ReadableStreamDefaultReader(stream) { 7391 _classCallCheck(this, ReadableStreamDefaultReader); 7392 7393 if (IsReadableStream(stream) === false) { 7394 throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); 7395 } 7396 7397 if (IsReadableStreamLocked(stream) === true) { 7398 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 7399 } 7400 7401 ReadableStreamReaderGenericInitialize(this, stream); 7402 this._readRequests = []; 7403 } 7404 7405 _createClass(ReadableStreamDefaultReader, [{ 7406 key: 'cancel', 7407 value: function cancel(reason) { 7408 if (IsReadableStreamDefaultReader(this) === false) { 7409 return Promise.reject(defaultReaderBrandCheckException('cancel')); 7410 } 7411 7412 if (this._ownerReadableStream === undefined) { 7413 return Promise.reject(readerLockException('cancel')); 7414 } 7415 7416 return ReadableStreamReaderGenericCancel(this, reason); 7417 } 7418 }, { 7419 key: 'read', 7420 value: function read() { 7421 if (IsReadableStreamDefaultReader(this) === false) { 7422 return Promise.reject(defaultReaderBrandCheckException('read')); 7423 } 7424 7425 if (this._ownerReadableStream === undefined) { 7426 return Promise.reject(readerLockException('read from')); 7427 } 7428 7429 return ReadableStreamDefaultReaderRead(this); 7430 } 7431 }, { 7432 key: 'releaseLock', 7433 value: function releaseLock() { 7434 if (IsReadableStreamDefaultReader(this) === false) { 7435 throw defaultReaderBrandCheckException('releaseLock'); 7436 } 7437 7438 if (this._ownerReadableStream === undefined) { 7439 return; 7440 } 7441 7442 if (this._readRequests.length > 0) { 7443 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 7444 } 7445 7446 ReadableStreamReaderGenericRelease(this); 7447 } 7448 }, { 7449 key: 'closed', 7450 get: function get() { 7451 if (IsReadableStreamDefaultReader(this) === false) { 7452 return Promise.reject(defaultReaderBrandCheckException('closed')); 7453 } 7454 7455 return this._closedPromise; 7456 } 7457 }]); 7458 7459 return ReadableStreamDefaultReader; 7460 }(); 7461 7462 var ReadableStreamBYOBReader = function () { 7463 function ReadableStreamBYOBReader(stream) { 7464 _classCallCheck(this, ReadableStreamBYOBReader); 7465 7466 if (!IsReadableStream(stream)) { 7467 throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); 7468 } 7469 7470 if (IsReadableByteStreamController(stream._readableStreamController) === false) { 7471 throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + '
7471source'); 7472 } 7473 7474 if (IsReadableStreamLocked(stream)) { 7475 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 7476 } 7477 7478 ReadableStreamReaderGenericInitialize(this, stream); 7479 this._readIntoRequests = []; 7480 } 7481 7482 _createClass(ReadableStreamBYOBReader, [{ 7483 key: 'cancel', 7484 value: function cancel(reason) { 7485 if (!IsReadableStreamBYOBReader(this)) { 7486 return Promise.reject(byobReaderBrandCheckException('cancel')); 7487 } 7488 7489 if (this._ownerReadableStream === undefined) { 7490 return Promise.reject(readerLockException('cancel')); 7491 } 7492 7493 return ReadableStreamReaderGenericCancel(this, reason); 7494 } 7495 }, { 7496 key: 'read', 7497 value: function read(view) { 7498 if (!IsReadableStreamBYOBReader(this)) { 7499 return Promise.reject(byobReaderBrandCheckException('read')); 7500 } 7501 7502 if (this._ownerReadableStream === undefined) { 7503 return Promise.reject(readerLockException('read from')); 7504 } 7505 7506 if (!ArrayBuffer.isView(view)) { 7507 return Promise.reject(new TypeError('view must be an array buffer view')); 7508 } 7509 7510 if (view.byteLength === 0) { 7511 return Promise.reject(new TypeError('view must have non-zero byteLength')); 7512 } 7513 7514 return ReadableStreamBYOBReaderRead(this, view); 7515 } 7516 }, { 7517 key: 'releaseLock', 7518 value: function releaseLock() { 7519 if (!IsReadableStreamBYOBReader(this)) { 7520 throw byobReaderBrandCheckException('releaseLock'); 7521 } 7522 7523 if (this._ownerReadableStream === undefined) { 7524 return; 7525 } 7526 7527 if (this._readIntoRequests.length > 0) { 7528 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 7529 } 7530 7531 ReadableStreamReaderGenericRelease(this); 7532 } 7533 }, { 7534 key: 'closed', 7535 get: function get() { 7536 if (!IsReadableStreamBYOBReader(this)) { 7537 return Promise.reject(byobReaderBrandCheckException('closed')); 7538 } 7539 7540 return this._closedPromise; 7541 } 7542 }]); 7543 7544 return ReadableStreamBYOBReader; 7545 }(); 7546 7547 function IsReadableStreamBYOBReader(x) { 7548 if (!typeIsObject(x)) { 7549 return false; 7550 } 7551 7552 if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { 7553 return false; 7554 } 7555 7556 return true; 7557 } 7558 7559 function IsReadableStreamDefaultReader(x) { 7560 if (!typeIsObject(x)) { 7561 return false; 7562 } 7563 7564 if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { 7565 return false; 7566 } 7567 7568 return true; 7569 } 7570 7571 function ReadableStreamReaderGenericInitialize(reader, stream) { 7572 reader._ownerReadableStream = stream; 7573 stream._reader = reader; 7574 7575 if (stream._state === 'readable') { 7576 defaultReaderClosedPromiseInitialize(reader); 7577 } else if (stream._state === 'closed') { 7578 defaultReaderClosedPromiseInitializeAsResolved(reader); 7579 } else { 7580 assert(stream._state === 'errored', 'state must be errored'); 7581 defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); 7582 7583 reader._closedPromise.catch(function () {}); 7584 } 7585 } 7586 7587 function ReadableStreamReaderGenericCancel(reader, reason) { 7588 var stream = reader._ownerReadableStream; 7589 assert(stream !== undefined); 7590 return ReadableStreamCancel(stream, reason); 7591 } 7592 7593 function ReadableStreamReaderGenericRelease(reader) { 7594 assert(reader._ownerReadableStream !== undefined); 7595 assert(reader._ownerReadableStream._reader === reader); 7596 7597 if (reader._ownerReadableStream._state === 'readable') { 7598 defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 7599 } else { 7600 defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 7601 } 7602 7603 reader._closedPromise.catch(function () {}); 7604 7605 reader._ownerReadableStream._reader = undefined; 7606 reader._ownerReadableStream = undefined; 7607 } 7608 7609 function ReadableStreamBYOBReaderRead(reader, view) { 7610 var stream = reader._ownerReadableStream; 7611 assert(stream !== undefined); 7612 stream._disturbed = true; 7613 7614 if (stream._state === 'errored') { 7615 return Promise.reject(stream._storedError); 7616 } 7617 7618 return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); 7619 } 7620 7621 function ReadableStreamDefaultReaderRead(reader) { 7622 var stream = reader._ownerReadableStream; 7623 assert(stream !== undefined); 7624 stream._disturbed = true; 7625 7626 if (stream._state === 'closed') { 7627 return Promise.resolve(CreateIterResultObject(undefined, true)); 7628 } 7629 7630 if (stream._state === 'errored') { 7631 return Promise.reject(stream._storedError); 7632 } 7633 7634 assert(stream._state === 'readable'); 7635 return stream._readableStreamController.__pullSteps(); 7636 } 7637 7638 var ReadableStreamDefaultController = function () { 7639 function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { 7640 _classCallCheck(this, ReadableStreamDefaultController); 7641
7642 if (IsReadableStream(stream) === false) { 7643 throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); 7644 } 7645 7646 if (stream._readableStreamController !== undefined) { 7647 throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); 7648 } 7649 7650 this._controlledReadableStream = stream; 7651 this._underlyingSource = underlyingSource; 7652 this._queue = undefined; 7653 this._queueTotalSize = undefined; 7654 ResetQueue(this); 7655 this._started = false; 7656 this._closeRequested = false; 7657 this._pullAgain = false; 7658 this._pulling = false; 7659 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 7660 this._strategySize = normalizedStrategy.size; 7661 this._strategyHWM = normalizedStrategy.highWaterMark; 7662 var controller = this; 7663 var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); 7664 Promise.resolve(startResult).then(function () { 7665 controller._started = true; 7666 assert(controller._pulling === false); 7667 assert(controller._pullAgain === false); 7668 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 7669 }, function (r) { 7670 ReadableStreamDefaultControllerErrorIfNeeded(controller, r); 7671 }).catch(rethrowAssertionErrorRejection); 7672 } 7673 7674 _createClass(ReadableStreamDefaultController, [{ 7675 key: 'close', 7676 value: function close() { 7677 if (IsReadableStreamDefaultController(this) === false) { 7678 throw defaultControllerBrandCheckException('close'); 7679 } 7680 7681 if (this._closeRequested === true) { 7682 throw new TypeError('The stream has already been closed; do not close it again!'); 7683 } 7684 7685 var state = this._controlledReadableStream._state; 7686 7687 if (state !== 'readable') { 7688 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 7689 } 7690 7691 ReadableStreamDefaultControllerClose(this); 7692 } 7693 }, { 7694 key: 'enqueue', 7695 value: function enqueue(chunk) { 7696 if (IsReadableStreamDefaultController(this) === false) { 7697 throw defaultControllerBrandCheckException('enqueue'); 7698 } 7699 7700 if (this._closeRequested === true) { 7701 throw new TypeError('stream is closed or draining'); 7702 } 7703 7704 var state = this._controlledReadableStream._state; 7705 7706 if (state !== 'readable') { 7707 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 7708 } 7709 7710 return ReadableStreamDefaultControllerEnqueue(this, chunk); 7711 } 7712 }, { 7713 key: 'error', 7714 value: function error(e) { 7715 if (IsReadableStreamDefaultController(this) === false) { 7716 throw defaultControllerBrandCheckException('error'); 7717 } 7718 7719 var stream = this._controlledReadableStream; 7720 7721 if (stream._state !== 'readable') { 7722 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 7723 } 7724 7725 ReadableStreamDefaultControllerError(this, e); 7726 } 7727 }, { 7728 key: '__cancelSteps', 7729 value: function __cancelSteps(reason) { 7730 ResetQueue(this); 7731 return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); 7732 } 7733 }, { 7734 key: '__pullSteps', 7735 value: function __pullSteps() { 7736 var stream = this._controlledReadableStream; 7737 7738 if (this._queue.length > 0) { 7739 var chunk = DequeueValue(this); 7740 7741 if (this._closeRequested === true && this._queue.length === 0) { 7742 ReadableStreamClose(stream); 7743 } else { 7744 ReadableStreamDefaultControllerCallPullIfNeeded(this); 7745 } 7746 7747 return Promise.resolve(CreateIterResultObject(chunk, false)); 7748 } 7749 7750 var pendingPromise = ReadableStreamAddReadRequest(stream); 7751 ReadableStreamDefaultControllerCallPullIfNeeded(this); 7752 return pendingPromise; 7753 } 7754 }, { 7755 key: 'desiredSize', 7756 get: function get() { 7757 if (IsReadableStreamDefaultController(this) === false) { 7758 throw defaultControllerBrandCheckException('desiredSize'); 7759 } 7760 7761 return ReadableStreamDefaultControllerGetDesiredSize(this); 7762 } 7763 }]); 7764 7765 return ReadableStreamDefaultController; 7766 }(); 7767 7768 function IsReadableStreamDefaultController(x) { 7769 if (!typeIsObject(x)) { 7770 return false; 7771 } 7772 7773 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { 7774 return false; 7775 } 7776 7777 return true; 7778 } 7779 7780 function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { 7781 var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); 7782 7783 if (shouldPull === false) { 7784 return undefined; 7785 } 7786 7787 if (controller._pulling === true) { 7788 controller._pullAgain = true; 7789 return undefined; 7790 } 7791 7792 assert(controller._pullAgain === false); 7793 controller._pulling = true; 7794 var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); 7795 pullPromise.then(function () { 7796 controller._pulling = false; 7797 7798 if (controller._pullAgain === true) { 7799 controller._pullAgain = false; 7800 return ReadableStreamDefaultControllerCallPullIfNeeded(controller); 7801 } 7802 7803 return undefined; 7804 }, function (e) { 7805 ReadableStreamDefaultControllerErrorIfNeeded(controller, e); 7806 }).catch(rethrowAssertionErrorRejection); 7807 return undefined; 7808 } 7809 7810 function ReadableStreamDefaultControllerShouldCallPull(controller) { 7811 var stream = controller._controlledReadableStream; 7812 7813 if (stream._state === 'closed' || stream._state === 'errored') { 7814 return false; 7815 } 7816 7817 if (controller._closeRequested === true) { 7818 return false; 7819 } 7820 7821 if (controller._started === false) { 7822 return false; 7823 } 7824
7825 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 7826 return true; 7827 } 7828 7829 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 7830 7831 if (desiredSize > 0) { 7832 return true; 7833 } 7834 7835 return false; 7836 } 7837 7838 function ReadableStreamDefaultControllerClose(controller) { 7839 var stream = controller._controlledReadableStream; 7840 assert(controller._closeRequested === false); 7841 assert(stream._state === 'readable'); 7842 controller._closeRequested = true; 7843 7844 if (controller._queue.length === 0) { 7845 ReadableStreamClose(stream); 7846 } 7847 } 7848 7849 function ReadableStreamDefaultControllerEnqueue(controller, chunk) { 7850 var stream = controller._controlledReadableStream; 7851 assert(controller._closeRequested === false); 7852 assert(stream._state === 'readable'); 7853 7854 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 7855 ReadableStreamFulfillReadRequest(stream, chunk, false); 7856 } else { 7857 var chunkSize = 1; 7858 7859 if (controller._strategySize !== undefined) { 7860 var strategySize = controller._strategySize; 7861 7862 try { 7863 chunkSize = strategySize(chunk); 7864 } catch (chunkSizeE) { 7865 ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 7866 throw chunkSizeE; 7867 } 7868 } 7869 7870 try { 7871 EnqueueValueWithSize(controller, chunk, chunkSize); 7872 } catch (enqueueE) { 7873 ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 7874 throw enqueueE; 7875 } 7876 } 7877 7878 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 7879 return undefined; 7880 } 7881 7882 function ReadableStreamDefaultControllerError(controller, e) { 7883 var stream = controller._controlledReadableStream; 7884 assert(stream._state === 'readable'); 7885 ResetQueue(controller); 7886 ReadableStreamError(stream, e); 7887 } 7888 7889 function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { 7890 if (controller._controlledReadableStream._state === 'readable') { 7891 ReadableStreamDefaultControllerError(controller, e); 7892 } 7893 } 7894 7895 function ReadableStreamDefaultControllerGetDesiredSize(controller) { 7896 var stream = controller._controlledReadableStream; 7897 var state = stream._state; 7898 7899 if (state === 'errored') { 7900 return null; 7901 } 7902 7903 if (state === 'closed') { 7904 return 0; 7905 } 7906 7907 return controller._strategyHWM - controller._queueTotalSize; 7908 } 7909 7910 var ReadableStreamBYOBRequest = function () { 7911 function ReadableStreamBYOBRequest(controller, view) { 7912 _classCallCheck(this, ReadableStreamBYOBRequest); 7913 7914 this._associatedReadableByteStreamController = controller; 7915 this._view = view; 7916 } 7917 7918 _createClass(ReadableStreamBYOBRequest, [{ 7919 key: 'respond', 7920 value: function respond(bytesWritten) { 7921 if (IsReadableStreamBYOBRequest(this) === false) { 7922 throw byobRequestBrandCheckException('respond'); 7923 } 7924 7925 if (this._associatedReadableByteStreamController === undefined) { 7926 throw new TypeError('This BYOB request has been invalidated'); 7927 } 7928 7929 ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); 7930 } 7931 }, { 7932 key: 'respondWithNewView', 7933 value: function respondWithNewView(view) { 7934 if (IsReadableStreamBYOBRequest(this) === false) { 7935 throw byobRequestBrandCheckException('respond'); 7936 } 7937 7938 if (this._associatedReadableByteStreamController === undefined) { 7939 throw new TypeError('This BYOB request has been invalidated'); 7940 } 7941 7942 if (!ArrayBuffer.isView(view)) { 7943 throw new TypeError('You can only respond with array buffer views'); 7944 } 7945 7946 ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); 7947 } 7948 }, { 7949 key: 'view', 7950 get: function get() { 7951 return this._view; 7952 } 7953 }]); 7954 7955 return ReadableStreamBYOBRequest; 7956 }(); 7957 7958 var ReadableByteStreamController = function () { 7959 function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { 7960 _classCallCheck(this, ReadableByteStreamController); 7961
7962 if (IsReadableStream(stream) === false) { 7963 throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); 7964 } 7965 7966 if (stream._readableStreamController !== undefined) { 7967 throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); 7968 } 7969 7970 this._controlledReadableStream = stream; 7971 this._underlyingByteSource = underlyingByteSource; 7972 this._pullAgain = false; 7973 this._pulling = false; 7974 ReadableByteStreamControllerClearPendingPullIntos(this); 7975 this._queue = this._queueTotalSize = undefined; 7976 ResetQueue(this); 7977 this._closeRequested = false; 7978 this._started = false; 7979 this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); 7980 var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; 7981 7982 if (autoAllocateChunkSize !== undefined) { 7983 if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { 7984 throw new RangeError('autoAllocateChunkSize must be a positive integer'); 7985 } 7986 } 7987 7988 this._autoAllocateChunkSize = autoAllocateChunkSize; 7989 this._pendingPullIntos = []; 7990 var controller = this; 7991 var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); 7992 Promise.resolve(startResult).then(function () { 7993 controller._started = true; 7994 assert(controller._pulling === false); 7995 assert(controller._pullAgain === false); 7996 ReadableByteStreamControllerCallPullIfNeeded(controller); 7997 }, function (r) { 7998 if (stream._state === 'readable') { 7999 ReadableByteStreamControllerError(controller, r); 8000 } 8001 }).catch(rethrowAssertionErrorRejection); 8002 } 8003 8004 _createClass(ReadableByteStreamController, [{ 8005 key: 'close', 8006 value: function close() { 8007 if (IsReadableByteStreamController(this) === false) { 8008 throw byteStreamControllerBrandCheckException('close'); 8009 } 8010 8011 if (this._closeRequested === true) { 8012 throw new TypeError('The stream has already been closed; do not close it again!'); 8013 } 8014 8015 var state = this._controlledReadableStream._state; 8016 8017 if (state !== 'readable') { 8018 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 8019 } 8020 8021 ReadableByteStreamControllerClose(this); 8022 } 8023 }, { 8024 key: 'enqueue', 8025 value: function enqueue(chunk) { 8026 if (IsReadableByteStreamController(this) === false) { 8027 throw byteStreamControllerBrandCheckException('enqueue'); 8028 } 8029 8030 if (this._closeRequested === true) { 8031 throw new TypeError('stream is closed or draining'); 8032 } 8033 8034 var state = this._controlledReadableStream._state; 8035 8036 if (state !== 'readable') { 8037 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 8038 } 8039 8040 if (!ArrayBuffer.isView(chunk)) { 8041 throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); 8042 } 8043 8044 ReadableByteStreamControllerEnqueue(this, chunk); 8045 } 8046 }, { 8047 key: 'error', 8048 value: function error(e) { 8049 if (IsReadableByteStreamController(this) === false) { 8050 throw byteStreamControllerBrandCheckException('error'); 8051 } 8052 8053 var stream = this._controlledReadableStream; 8054 8055 if (stream._state !== 'readable') { 8056 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 8057 } 8058 8059 ReadableByteStreamControllerError(this, e); 8060 } 8061 }, { 8062 key: '__cancelSteps', 8063 value: function __cancelSteps(reason) { 8064 if (this._pendingPullIntos.length > 0) { 8065 var firstDescriptor = this._pendingPullIntos[0]; 8066 firstDescriptor.bytesFilled = 0; 8067 } 8068 8069 ResetQueue(this); 8070 return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); 8071 } 8072 }, { 8073 key: '__pullSteps', 8074 value: function __pullSteps() { 8075 var stream = this._controlledReadableStream;
8076 assert(ReadableStreamHasDefaultReader(stream) === true); 8077 8078 if (this._queueTotalSize > 0) { 8079 assert(ReadableStreamGetNumReadRequests(stream) === 0); 8080 8081 var entry = this._queue.shift(); 8082 8083 this._queueTotalSize -= entry.byteLength; 8084 ReadableByteStreamControllerHandleQueueDrain(this); 8085 var view = void 0; 8086 8087 try { 8088 view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); 8089 } catch (viewE) { 8090 return Promise.reject(viewE); 8091 } 8092 8093 return Promise.resolve(CreateIterResultObject(view, false)); 8094 } 8095 8096 var autoAllocateChunkSize = this._autoAllocateChunkSize; 8097 8098 if (autoAllocateChunkSize !== undefined) { 8099 var buffer = void 0; 8100 8101 try { 8102 buffer = new ArrayBuffer(autoAllocateChunkSize); 8103 } catch (bufferE) { 8104 return Promise.reject(bufferE); 8105 } 8106 8107 var pullIntoDescriptor = { 8108 buffer: buffer, 8109 byteOffset: 0, 8110 byteLength: autoAllocateChunkSize, 8111 bytesFilled: 0, 8112 elementSize: 1, 8113 ctor: Uint8Array, 8114 readerType: 'default' 8115 }; 8116 8117 this._pendingPullIntos.push(pullIntoDescriptor); 8118 } 8119 8120 var promise = ReadableStreamAddReadRequest(stream); 8121 ReadableByteStreamControllerCallPullIfNeeded(this); 8122 return promise; 8123 } 8124 }, { 8125 key: 'byobRequest', 8126 get: function get() { 8127 if (IsReadableByteStreamController(this) === false) { 8128 throw byteStreamControllerBrandCheckException('byobRequest'); 8129 } 8130 8131 if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { 8132 var firstDescriptor = this._pendingPullIntos[0]; 8133 var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); 8134 this._byobRequest = new ReadableStreamBYOBRequest(this, view); 8135 } 8136 8137 return this._byobRequest; 8138 } 8139 }, { 8140 key: 'desiredSize', 8141 get: function get() { 8142 if (IsReadableByteStreamController(this) === false) { 8143 throw byteStreamControllerBrandCheckException('desiredSize'); 8144 } 8145 8146 return ReadableByteStreamControllerGetDesiredSize(this); 8147 } 8148 }]); 8149 8150 return ReadableByteStreamController; 8151 }(); 8152 8153 function IsReadableByteStreamController(x) { 8154 if (!typeIsObject(x)) { 8155 return false; 8156 } 8157 8158 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { 8159 return false; 8160 } 8161 8162 return true; 8163 } 8164 8165 function IsReadableStreamBYOBRequest(x) { 8166 if (!typeIsObject(x)) { 8167 return false; 8168 } 8169 8170 if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { 8171 return false; 8172 } 8173 8174 return true; 8175 } 8176 8177 function ReadableByteStreamControllerCallPullIfNeeded(controller) { 8178 var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); 8179 8180 if (shouldPull === false) { 8181 return undefined; 8182 } 8183 8184 if (controller._pulling === true) { 8185 controller._pullAgain = true; 8186 return undefined; 8187 } 8188 8189 assert(controller._pullAgain === false); 8190 controller._pulling = true; 8191 var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); 8192 pullPromise.then(function () { 8193 controller._pulling = false; 8194 8195 if (controller._pullAgain === true) { 8196 controller._pullAgain = false; 8197 ReadableByteStreamControllerCallPullIfNeeded(controller); 8198 } 8199 }, function (e) { 8200 if (controller._controlledReadableStream._state === 'readable') { 8201 ReadableByteStreamControllerError(controller, e); 8202 } 8203 }).catch(rethrowAssertionErrorRejection); 8204 return undefined; 8205 } 8206 8207 function ReadableByteStreamControllerClearPendingPullIntos(controller) { 8208 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 8209 controller._pendingPullIntos = []; 8210 } 8211 8212 function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { 8213 assert(stream._state !== 'errored', 'state must not be errored'); 8214 var done = false; 8215 8216 if (stream._state === 'closed') { 8217 assert(pullIntoDescriptor.bytesFilled === 0); 8218 done = true; 8219 } 8220 8221 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 8222 8223 if (pullIntoDescriptor.readerType === 'default') { 8224 ReadableStreamFulfillReadRequest(stream, filledView, done); 8225 } else { 8226 assert(pullIntoDescriptor.readerType === 'byob'); 8227 ReadableStreamFulfillReadIntoRequest(stream, filledView, done); 8228 } 8229 } 8230 8231 function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { 8232 var bytesFilled = pullIntoDescriptor.bytesFilled; 8233 var elementSize = pullIntoDescriptor.elementSize; 8234 assert(bytesFilled <= pullIntoDescriptor.byteLength); 8235 assert(bytesFilled % elementSize === 0); 8236 return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); 8237 } 8238 8239 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { 8240 controller._queue.push({ 8241 buffer: buffer, 8242 byteOffset: byteOffset, 8243 byteLength: byteLength 8244 });
8245 8246 controller._queueTotalSize += byteLength; 8247 } 8248 8249 function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { 8250 var elementSize = pullIntoDescriptor.elementSize; 8251 var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; 8252 var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); 8253 var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; 8254 var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; 8255 var totalBytesToCopyRemaining = maxBytesToCopy; 8256 var ready = false; 8257 8258 if (maxAlignedBytes > currentAlignedBytes) { 8259 totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; 8260 ready = true; 8261 } 8262 8263 var queue = controller._queue; 8264 8265 while (totalBytesToCopyRemaining > 0) { 8266 var headOfQueue = queue[0]; 8267 var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); 8268 var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 8269 ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); 8270 8271 if (headOfQueue.byteLength === bytesToCopy) { 8272 queue.shift(); 8273 } else { 8274 headOfQueue.byteOffset += bytesToCopy; 8275 headOfQueue.byteLength -= bytesToCopy; 8276 } 8277 8278 controller._queueTotalSize -= bytesToCopy; 8279 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); 8280 totalBytesToCopyRemaining -= bytesToCopy; 8281 } 8282 8283 if (ready === false) { 8284 assert(controller._queueTotalSize === 0, 'queue must be empty'); 8285 assert(pullIntoDescriptor.bytesFilled > 0); 8286 assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); 8287 } 8288 8289 return ready; 8290 } 8291 8292 function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { 8293 assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); 8294 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 8295 pullIntoDescriptor.bytesFilled += size; 8296 } 8297 8298 function ReadableByteStreamControllerHandleQueueDrain(controller) { 8299 assert(controller._controlledReadableStream._state === 'readable'); 8300 8301 if (controller._queueTotalSize === 0 && controller._closeRequested === true) { 8302 ReadableStreamClose(controller._controlledReadableStream); 8303 } else { 8304 ReadableByteStreamControllerCallPullIfNeeded(controller); 8305 } 8306 } 8307 8308 function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { 8309 if (controller._byobRequest === undefined) { 8310 return; 8311 } 8312 8313 controller._byobRequest._associatedReadableByteStreamController = undefined; 8314 controller._byobRequest._view = undefined; 8315 controller._byobRequest = undefined; 8316 } 8317 8318 function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { 8319 assert(controller._closeRequested === false); 8320 8321 while (controller._pendingPullIntos.length > 0) { 8322 if (controller._queueTotalSize === 0) { 8323 return; 8324 } 8325 8326 var pullIntoDescriptor = controller._pendingPullIntos[0]; 8327 8328 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 8329 ReadableByteStreamControllerShiftPendingPullInto(controller); 8330 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 8331 } 8332 } 8333 } 8334 8335 function ReadableByteStreamControllerPullInto(controller, view) { 8336 var stream = controller._controlledReadableStream; 8337 var elementSize = 1; 8338 8339 if (view.constructor !== DataView) { 8340 elementSize = view.constructor.BYTES_PER_ELEMENT; 8341 } 8342 8343 var ctor = view.constructor; 8344 var pullIntoDescriptor = { 8345 buffer: view.buffer, 8346 byteOffset: view.byteOffset, 8347 byteLength: view.byteLength, 8348 bytesFilled: 0, 8349 elementSize: elementSize, 8350 ctor: ctor, 8351 readerType: 'byob' 8352 }; 8353 8354 if (controller._pendingPullIntos.length > 0) { 8355 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 8356 8357 controller._pendingPullIntos.push(pullIntoDescriptor); 8358 8359 return ReadableStreamAddReadIntoRequest(stream); 8360 } 8361 8362 if (stream._state === 'closed') { 8363 var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); 8364 return Promise.resolve(CreateIterResultObject(emptyView, true)); 8365 } 8366 8367 if (controller._queueTotalSize > 0) { 8368 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 8369 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 8370 ReadableByteStreamControllerHandleQueueDrain(controller); 8371 return Promise.resolve(CreateIterResultObject(filledView, false)); 8372 } 8373 8374 if (controller._closeRequested === true) { 8375 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 8376 ReadableByteStreamControllerError(controller, e); 8377 return Promise.reject(e); 8378 } 8379 } 8380 8381 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 8382 8383 controller._pendingPullIntos.push(pullIntoDescriptor); 8384 8385 var promise = ReadableStreamAddReadIntoRequest(stream); 8386 ReadableByteStreamControllerCallPullIfNeeded(controller); 8387 return promise; 8388 } 8389 8390 function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { 8391 firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); 8392 assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); 8393 var stream = controller._controlledReadableStream; 8394
8395 if (ReadableStreamHasBYOBReader(stream) === true) { 8396 while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { 8397 var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); 8398 ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); 8399 } 8400 } 8401 } 8402 8403 function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { 8404 if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { 8405 throw new RangeError('bytesWritten out of range'); 8406 } 8407 8408 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); 8409 8410 if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { 8411 return; 8412 } 8413 8414 ReadableByteStreamControllerShiftPendingPullInto(controller); 8415 var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; 8416 8417 if (remainderSize > 0) { 8418 var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 8419 var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); 8420 ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); 8421 } 8422 8423 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 8424 pullIntoDescriptor.bytesFilled -= remainderSize; 8425 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 8426 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 8427 } 8428 8429 function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { 8430 var firstDescriptor = controller._pendingPullIntos[0]; 8431 var stream = controller._controlledReadableStream; 8432 8433 if (stream._state === 'closed') { 8434 if (bytesWritten !== 0) { 8435 throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); 8436 } 8437 8438 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); 8439 } else { 8440 assert(stream._state === 'readable'); 8441 ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); 8442 } 8443 } 8444 8445 function ReadableByteStreamControllerShiftPendingPullInto(controller) { 8446 var descriptor = controller._pendingPullIntos.shift(); 8447 8448 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 8449 return descriptor; 8450 } 8451 8452 function ReadableByteStreamControllerShouldCallPull(controller) { 8453 var stream = controller._controlledReadableStream; 8454 8455 if (stream._state !== 'readable') { 8456 return false; 8457 } 8458 8459 if (controller._closeRequested === true) { 8460 return false; 8461 } 8462 8463 if (controller._started === false) { 8464 return false; 8465 } 8466 8467 if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 8468 return true; 8469 } 8470 8471 if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { 8472 return true; 8473 } 8474 8475 if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { 8476 return true; 8477 } 8478 8479 return false; 8480 } 8481 8482 function ReadableByteStreamControllerClose(controller) { 8483 var stream = controller._controlledReadableStream; 8484 assert(controller._closeRequested === false); 8485 assert(stream._state === 'readable'); 8486 8487 if (controller._queueTotalSize > 0) { 8488 controller._closeRequested = true; 8489 return; 8490 } 8491 8492 if (controller._pendingPullIntos.length > 0) { 8493 var firstPendingPullInto = controller._pendingPullIntos[0]; 8494 8495 if (firstPendingPullInto.bytesFilled > 0) { 8496 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 8497 ReadableByteStreamControllerError(controller, e); 8498 throw e; 8499 } 8500 } 8501 8502 ReadableStreamClose(stream); 8503 } 8504 8505 function ReadableByteStreamControllerEnqueue(controller, chunk) { 8506 var stream = controller._controlledReadableStream; 8507 assert(controller._closeRequested === false); 8508 assert(stream._state === 'readable'); 8509 var buffer = chunk.buffer; 8510 var byteOffset = chunk.byteOffset; 8511 var byteLength = chunk.byteLength; 8512 var transferredBuffer = TransferArrayBuffer(buffer); 8513
8514 if (ReadableStreamHasDefaultReader(stream) === true) { 8515 if (ReadableStreamGetNumReadRequests(stream) === 0) { 8516 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 8517 } else { 8518 assert(controller._queue.length === 0); 8519 var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); 8520 ReadableStreamFulfillReadRequest(stream, transferredView, false); 8521 } 8522 } else if (ReadableStreamHasBYOBReader(stream) === true) { 8523 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 8524 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 8525 } else { 8526 assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); 8527 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 8528 } 8529 } 8530 8531 function ReadableByteStreamControllerError(controller, e) { 8532 var stream = controller._controlledReadableStream; 8533 assert(stream._state === 'readable'); 8534 ReadableByteStreamControllerClearPendingPullIntos(controller); 8535 ResetQueue(controller); 8536 ReadableStreamError(stream, e); 8537 } 8538 8539 function ReadableByteStreamControllerGetDesiredSize(controller) { 8540 var stream = controller._controlledReadableStream; 8541 var state = stream._state; 8542 8543 if (state === 'errored') { 8544 return null; 8545 } 8546 8547 if (state === 'closed') { 8548 return 0; 8549 } 8550 8551 return controller._strategyHWM - controller._queueTotalSize; 8552 } 8553 8554 function ReadableByteStreamControllerRespond(controller, bytesWritten) { 8555 bytesWritten = Number(bytesWritten); 8556 8557 if (IsFiniteNonNegativeNumber(bytesWritten) === false) { 8558 throw new RangeError('bytesWritten must be a finite'); 8559 } 8560 8561 assert(controller._pendingPullIntos.length > 0); 8562 ReadableByteStreamControllerRespondInternal(controller, bytesWritten); 8563 } 8564 8565 function ReadableByteStreamControllerRespondWithNewView(controller, view) { 8566 assert(controller._pendingPullIntos.length > 0); 8567 var firstDescriptor = controller._pendingPullIntos[0]; 8568 8569 if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { 8570 throw new RangeError('The region specified by view does not match byobRequest'); 8571 } 8572 8573 if (firstDescriptor.byteLength !== view.byteLength) { 8574 throw new RangeError('The buffer of view has different capacity than byobRequest'); 8575 } 8576 8577 firstDescriptor.buffer = view.buffer; 8578 ReadableByteStreamControllerRespondInternal(controller, view.byteLength); 8579 } 8580 8581 function streamBrandCheckException(name) { 8582 return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); 8583 } 8584 8585 function readerLockException(name) { 8586 return new TypeError('Cannot ' + name + ' a stream using a released reader'); 8587 } 8588 8589 function defaultReaderBrandCheckException(name) { 8590 return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); 8591 } 8592 8593 function defaultReaderClosedPromiseInitialize(reader) { 8594 reader._closedPromise = new Promise(function (resolve, reject) { 8595 reader._closedPromise_resolve = resolve; 8596 reader._closedPromise_reject = reject; 8597 }); 8598 } 8599 8600 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { 8601 reader._closedPromise = Promise.reject(reason); 8602 reader._closedPromise_resolve = undefined; 8603 reader._closedPromise_reject = undefined; 8604 } 8605 8606 function defaultReaderClosedPromiseInitializeAsResolved(reader) { 8607 reader._closedPromise = Promise.resolve(undefined); 8608 reader._closedPromise_resolve = undefined; 8609 reader._closedPromise_reject = undefined; 8610 } 8611 8612 function defaultReaderClosedPromiseReject(reader, reason) { 8613 assert(reader._closedPromise_resolve !== undefined); 8614 assert(reader._closedPromise_reject !== undefined); 8615 8616 reader._closedPromise_reject(reason); 8617 8618 reader._closedPromise_resolve = undefined; 8619 reader._closedPromise_reject = undefined; 8620 } 8621 8622 function defaultReaderClosedPromiseResetToRejected(reader, reason) { 8623 assert(reader._closedPromise_resolve === undefined); 8624 assert(reader._closedPromise_reject === undefined); 8625 reader._closedPromise = Promise.reject(reason); 8626 } 8627 8628 function defaultReaderClosedPromiseResolve(reader) { 8629 assert(reader._closedPromise_resolve !== undefined); 8630 assert(reader._closedPromise_reject !== undefined); 8631 8632 reader._closedPromise_resolve(undefined); 8633 8634 reader._closedPromise_resolve = undefined; 8635 reader._closedPromise_reject = undefined; 8636 } 8637 8638 function byobReaderBrandCheckException(name) { 8639 return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); 8640 } 8641 8642 function defaultControllerBrandCheckException(name) { 8643 return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); 8644 } 8645 8646 function byobRequestBrandCheckException(name) { 8647 return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); 8648 } 8649 8650 function byteStreamControllerBrandCheckException(name) { 8651 return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); 8652 } 8653 8654 function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { 8655 try { 8656 Promise.prototype.then.call(promise, undefined, function () {}); 8657 } catch (e) {} 8658 } 8659}, function (module, exports, __w_pdfjs_require__) { 8660 "use strict"; 8661 8662 var transformStream = __w_pdfjs_require__(6); 8663 8664 var readableStream = __w_pdfjs_require__(4); 8665 8666 var writableStream = __w_pdfjs_require__(2); 8667 8668 exports.TransformStream = transformStream.TransformStream; 8669 exports.ReadableStream = readableStream.ReadableStream; 8670 exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; 8671 exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; 8672 exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; 8673 exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; 8674 exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; 8675 exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; 8676 exports.IsWritableStream = writableStream.IsWritableStream; 8677 exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; 8678 exports.WritableStream = writableStream.WritableStream; 8679 exports.WritableStreamAbort = writableStream.WritableStreamAbort; 8680 exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; 8681 exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; 8682 exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; 8683 exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; 8684}, function (module, exports, __w_pdfjs_require__) { 8685 "use strict"; 8686 8687 var _createClass = function () { 8688 function defineProperties(target, props) { 8689 for (var i = 0; i < props.length; i++) { 8690 var descriptor = props[i]; 8691 descriptor.enumerable = descriptor.enumerable || false; 8692 descriptor.configurable = true; 8693 if ("value" in descriptor) descriptor.writable = true; 8694 Object.defineProperty(target, descriptor.key, descriptor); 8695 } 8696 } 8697 8698 return function (Constructor, protoProps, staticProps) { 8699 if (protoProps) defineProperties(Constructor.prototype, protoProps); 8700 if (staticProps) defineProperties(Constructor, staticProps); 8701 return Constructor; 8702 }; 8703 }(); 8704 8705 function _classCallCheck(instance, Constructor) { 8706 if (!(instance instanceof Constructor)) { 8707 throw new TypeError("Cannot call a class as a function"); 8708 } 8709 } 8710 8711 var _require = __w_pdfjs_require__(1), 8712 assert = _require.assert; 8713 8714 var _require2 = __w_pdfjs_require__(0), 8715 InvokeOrNoop = _require2.InvokeOrNoop, 8716 PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, 8717 PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, 8718 typeIsObject = _require2.typeIsObject; 8719 8720 var _require3 = __w_pdfjs_require__(4), 8721 ReadableStream = _require3.ReadableStream, 8722 ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, 8723 ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, 8724 ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, 8725 ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; 8726 8727 var _require4 = __w_pdfjs_require__(2), 8728 WritableStream = _require4.WritableStream, 8729 WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; 8730 8731 function TransformStreamCloseReadable(transformStream) { 8732 if (transformStream._errored === true) { 8733 throw new TypeError('TransformStream is already errored'); 8734 } 8735 8736 if (transformStream._readableClosed === true) { 8737 throw new TypeError('Readable side is already closed'); 8738 } 8739 8740 TransformStreamCloseReadableInternal(transformStream); 8741 } 8742 8743 function TransformStreamEnqueueToReadable(transformStream, chunk) { 8744 if (transformStream._errored === true) { 8745 throw new TypeError('TransformStream is already errored'); 8746 } 8747 8748 if (transformStream._readableClosed === true) { 8749 throw new TypeError('Readable side is already closed'); 8750 } 8751 8752 var controller = transformStream._readableController; 8753 8754 try { 8755 ReadableStreamDefaultControllerEnqueue(controller, chunk); 8756 } catch (e) { 8757 transformStream._readableClosed = true; 8758 TransformStreamErrorIfNeeded(transformStream, e); 8759 throw transformStream._storedError; 8760 } 8761 8762 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 8763 var maybeBackpressure = desiredSize <= 0;
8764 8765 if (maybeBackpressure === true && transformStream._backpressure === false) { 8766 TransformStreamSetBackpressure(transformStream, true); 8767 } 8768 } 8769 8770 function TransformStreamError(transformStream, e) { 8771 if (transformStream._errored === true) { 8772 throw new TypeError('TransformStream is already errored'); 8773 } 8774 8775 TransformStreamErrorInternal(transformStream, e); 8776 } 8777 8778 function TransformStreamCloseReadableInternal(transformStream) { 8779 assert(transformStream._errored === false); 8780 assert(transformStream._readableClosed === false); 8781 8782 try { 8783 ReadableStreamDefaultControllerClose(transformStream._readableController); 8784 } catch (e) { 8785 assert(false); 8786 } 8787 8788 transformStream._readableClosed = true; 8789 } 8790 8791 function TransformStreamErrorIfNeeded(transformStream, e) { 8792 if (transformStream._errored === false) { 8793 TransformStreamErrorInternal(transformStream, e); 8794 } 8795 } 8796 8797 function TransformStreamErrorInternal(transformStream, e) { 8798 assert(transformStream._errored === false); 8799 transformStream._errored = true; 8800 transformStream._storedError = e; 8801 8802 if (transformStream._writableDone === false) { 8803 WritableStreamDefaultControllerError(transformStream._writableController, e); 8804 } 8805 8806 if (transformStream._readableClosed === false) { 8807 ReadableStreamDefaultControllerError(transformStream._readableController, e); 8808 } 8809 } 8810 8811 function TransformStreamReadableReadyPromise(transformStream) { 8812 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 8813 8814 if (transformStream._backpressure === false) { 8815 return Promise.resolve(); 8816 } 8817 8818 assert(transformStream._backpressure === true, '_backpressure should have been initialized'); 8819 return transformStream._backpressureChangePromise; 8820 } 8821 8822 function TransformStreamSetBackpressure(transformStream, backpressure) { 8823 assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); 8824 8825 if (transformStream._backpressureChangePromise !== undefined) { 8826 transformStream._backpressureChangePromise_resolve(backpressure); 8827 } 8828 8829 transformStream._backpressureChangePromise = new Promise(function (resolve) { 8830 transformStream._backpressureChangePromise_resolve = resolve; 8831 }); 8832 8833 transformStream._backpressureChangePromise.then(function (resolution) { 8834 assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); 8835 }); 8836 8837 transformStream._backpressure = backpressure; 8838 } 8839 8840 function TransformStreamDefaultTransform(chunk, transformStreamController) { 8841 var transformStream = transformStreamController._controlledTransformStream; 8842 TransformStreamEnqueueToReadable(transformStream, chunk); 8843 return Promise.resolve(); 8844 } 8845 8846 function TransformStreamTransform(transformStream, chunk) { 8847 assert(transformStream._errored === false); 8848 assert(transformStream._transforming === false); 8849 assert(transformStream._backpressure === false); 8850 transformStream._transforming = true; 8851 var transformer = transformStream._transformer; 8852 var controller = transformStream._transformStreamController; 8853 var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); 8854 return transformPromise.then(function () { 8855 transformStream._transforming = false; 8856 return TransformStreamReadableReadyPromise(transformStream); 8857 }, function (e) { 8858 TransformStreamErrorIfNeeded(transformStream, e); 8859 return Promise.reject(e); 8860 }); 8861 } 8862 8863 function IsTransformStreamDefaultController(x) { 8864 if (!typeIsObject(x)) { 8865 return false; 8866 } 8867 8868 if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { 8869 return false; 8870 } 8871 8872 return true; 8873 } 8874 8875 function IsTransformStream(x) { 8876 if (!typeIsObject(x)) { 8877 return false; 8878 } 8879 8880 if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { 8881 return false; 8882 } 8883 8884 return true; 8885 } 8886 8887 var TransformStreamSink = function () { 8888 function TransformStreamSink(transformStream, startPromise) { 8889 _classCallCheck(this, TransformStreamSink); 8890 8891 this._transformStream = transformStream; 8892 this._startPromise = startPromise; 8893 } 8894 8895 _createClass(TransformStreamSink, [{ 8896 key: 'start', 8897 value: function start(c) { 8898 var transformStream = this._transformStream; 8899 transformStream._writableController = c; 8900 return this._startPromise.then(function () { 8901 return TransformStreamReadableReadyPromise(transformStream); 8902 }); 8903 } 8904 }, { 8905 key: 'write', 8906 value: function write(chunk) { 8907 var transformStream = this._transformStream; 8908 return TransformStreamTransform(transformStream, chunk); 8909 } 8910 }, { 8911 key: 'abort', 8912 value: function abort() { 8913 var transformStream = this._transformStream; 8914 transformStream._writableDone = true; 8915 TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); 8916 } 8917 }, { 8918 key: 'close', 8919 value: function close() { 8920 var transformStream = this._transformStream; 8921 assert(transformStream._transforming === false); 8922 transformStream._writableDone = true; 8923 var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); 8924 return flushPromise.then(function () { 8925 if (transformStream._errored === true) { 8926 return Promise.reject(transformStream._storedError); 8927 } 8928 8929 if (transformStream._readableClosed === false) { 8930 TransformStreamCloseReadableInternal(transformStream); 8931 } 8932 8933 return Promise.resolve(); 8934 }).catch(function (r) { 8935 TransformStreamErrorIfNeeded(transformStream, r); 8936 return Promise.reject(transformStream._storedError); 8937 }); 8938 } 8939 }]); 8940 8941 return TransformStreamSink; 8942 }(); 8943 8944 var TransformStreamSource = function () { 8945 function TransformStreamSource(transformStream, startPromise) { 8946 _classCallCheck(this, TransformStreamSource); 8947 8948 this._transformStream = transformStream; 8949 this._startPromise = startPromise; 8950 } 8951 8952 _createClass(TransformStreamSource, [{ 8953 key: 'start', 8954 value: function start(c) { 8955 var transformStream = this._transformStream; 8956 transformStream._readableController = c; 8957 return this._startPromise.then(function () { 8958 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 8959 8960 if (transformStream._backpressure === true) { 8961 return Promise.resolve(); 8962 } 8963 8964 assert(transformStream._backpressure === false, '_backpressure should have been initialized'); 8965 return transformStream._backpressureChangePromise; 8966 }); 8967 } 8968 }, { 8969 key: 'pull', 8970 value: function pull() { 8971 var transformStream = this._transformStream; 8972 assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); 8973 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 8974 TransformStreamSetBackpressure(transformStream, false); 8975 return transformStream._backpressureChangePromise; 8976 } 8977 }, { 8978 key: 'cancel', 8979 value: function cancel() { 8980 var transformStream = this._transformStream; 8981 transformStream._readableClosed = true; 8982 TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); 8983 } 8984 }]); 8985 8986 return TransformStreamSource; 8987 }(); 8988 8989 var TransformStreamDefaultController = function () { 8990 function TransformStreamDefaultController(transformStream) { 8991 _classCallCheck(this, TransformStreamDefaultController); 8992 8993 if (IsTransformStream(transformStream) === false) { 8994 throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); 8995 } 8996 8997 if (transformStream._transformStreamController !== undefined) { 8998 throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); 8999 } 9000 9001 this._controlledTransformStream = transformStream; 9002 } 9003 9004 _createClass(TransformStreamDefaultController, [{ 9005 key: 'enqueue',
9006 value: function enqueue(chunk) { 9007 if (IsTransformStreamDefaultController(this) === false) { 9008 throw defaultControllerBrandCheckException('enqueue'); 9009 } 9010 9011 TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); 9012 } 9013 }, { 9014 key: 'close', 9015 value: function close() { 9016 if (IsTransformStreamDefaultController(this) === false) { 9017 throw defaultControllerBrandCheckException('close'); 9018 } 9019 9020 TransformStreamCloseReadable(this._controlledTransformStream); 9021 } 9022 }, { 9023 key: 'error', 9024 value: function error(reason) { 9025 if (IsTransformStreamDefaultController(this) === false) { 9026 throw defaultControllerBrandCheckException('error'); 9027 } 9028 9029 TransformStreamError(this._controlledTransformStream, reason); 9030 } 9031 }, { 9032 key: 'desiredSize', 9033 get: function get() { 9034 if (IsTransformStreamDefaultController(this) === false) { 9035 throw defaultControllerBrandCheckException('desiredSize'); 9036 } 9037 9038 var transformStream = this._controlledTransformStream; 9039 var readableController = transformStream._readableController; 9040 return ReadableStreamDefaultControllerGetDesiredSize(readableController); 9041 } 9042 }]); 9043 9044 return TransformStreamDefaultController; 9045 }(); 9046 9047 var TransformStream = function () { 9048 function TransformStream() { 9049 var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 9050 9051 _classCallCheck(this, TransformStream); 9052 9053 this._transformer = transformer; 9054 var readableStrategy = transformer.readableStrategy, 9055 writableStrategy = transformer.writableStrategy; 9056 this._transforming = false; 9057 this._errored = false; 9058 this._storedError = undefined; 9059 this._writableController = undefined; 9060 this._readableController = undefined; 9061 this._transformStreamController = undefined; 9062 this._writableDone = false; 9063 this._readableClosed = false; 9064 this._backpressure = undefined; 9065 this._backpressureChangePromise = undefined; 9066 this._backpressureChangePromise_resolve = undefined; 9067 this._transformStreamController = new TransformStreamDefaultController(this); 9068 var startPromise_resolve = void 0; 9069 var startPromise = new Promise(function (resolve) { 9070 startPromise_resolve = resolve; 9071 }); 9072 var source = new TransformStreamSource(this, startPromise); 9073 this._readable = new ReadableStream(source, readableStrategy); 9074 var sink = new TransformStreamSink(this, startPromise); 9075 this._writable = new WritableStream(sink, writableStrategy); 9076 assert(this._writableController !== undefined); 9077 assert(this._readableController !== undefined); 9078 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); 9079 TransformStreamSetBackpressure(this, desiredSize <= 0); 9080 var transformStream = this; 9081 var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); 9082 startPromise_resolve(startResult); 9083 startPromise.catch(function (e) { 9084 if (transformStream._errored === false) { 9085 transformStream._errored = true; 9086 transformStream._storedError = e; 9087 } 9088 }); 9089 } 9090 9091 _createClass(TransformStream, [{ 9092 key: 'readable', 9093 get: function get() { 9094 if (IsTransformStream(this) === false) { 9095 throw streamBrandCheckException('readable'); 9096 } 9097 9098 return this._readable; 9099 } 9100 }, { 9101 key: 'writable', 9102 get: function get() { 9103 if (IsTransformStream(this) === false) { 9104 throw streamBrandCheckException('writable'); 9105 } 9106 9107 return this._writable; 9108 } 9109 }]); 9110 9111 return TransformStream; 9112 }(); 9113 9114 module.exports = { 9115 TransformStream: TransformStream 9116 }; 9117 9118 function defaultControllerBrandCheckException(name) { 9119 return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); 9120 } 9121 9122 function streamBrandCheckException(name) { 9123 return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); 9124 } 9125}, function (module, exports, __w_pdfjs_require__) { 9126 module.exports = __w_pdfjs_require__(5); 9127}])); 9128 9129/***/ }), 9130/* 144 */ 9131/***/ (function(module, exports, __w_pdfjs_require__) { 9132 9133"use strict"; 9134 9135 9136function _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); } 9137 9138{ 9139 var isURLSupported = false; 9140 9141 try { 9142 if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { 9143 var u = new URL('b', 'http://a'); 9144 u.pathname = 'c%20d'; 9145 isURLSupported = u.href === 'http://a/c%20d'; 9146 } 9147 } catch (ex) {} 9148 9149 if (isURLSupported) { 9150 exports.URL = URL; 9151 } else { 9152 var PolyfillURL = __w_pdfjs_require__(145).URL; 9153 9154 var OriginalURL = __w_pdfjs_require__(3).URL; 9155 9156 if (OriginalURL) { 9157 PolyfillURL.createObjectURL = function (blob) { 9158 return OriginalURL.createObjectURL.apply(OriginalURL, arguments); 9159 }; 9160 9161 PolyfillURL.revokeObjectURL = function (url) { 9162 OriginalURL.revokeObjectURL(url); 9163 }; 9164 } 9165 9166 exports.URL = PolyfillURL; 9167 } 9168} 9169 9170/***/ }), 9171/* 145 */ 9172/***/ (function(module, exports, __w_pdfjs_require__) { 9173 9174"use strict"; 9175 9176 9177(function URLConstructorClosure() { 9178 'use strict'; 9179 9180 var relative = Object.create(null); 9181 relative['ftp'] = 21; 9182 relative['file'] = 0; 9183 relative['gopher'] = 70; 9184 relative['http'] = 80; 9185 relative['https'] = 443; 9186 relative['ws'] = 80; 9187 relative['wss'] = 443; 9188 var relativePathDotMapping = Object.create(null); 9189 relativePathDotMapping['%2e'] = '.'; 9190 relativePathDotMapping['.%2e'] = '..'; 9191 relativePathDotMapping['%2e.'] = '..'; 9192 relativePathDotMapping['%2e%2e'] = '..'; 9193 9194 function isRelativeScheme(scheme) { 9195 return relative[scheme] !== undefined; 9196 } 9197
9198 function invalid() { 9199 clear.call(this); 9200 this._isInvalid = true; 9201 } 9202 9203 function IDNAToASCII(h) { 9204 if (h === '') { 9205 invalid.call(this); 9206 } 9207 9208 return h.toLowerCase(); 9209 } 9210 9211 function percentEscape(c) { 9212 var unicode = c.charCodeAt(0); 9213 9214 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { 9215 return c; 9216 } 9217 9218 return encodeURIComponent(c); 9219 } 9220 9221 function percentEscapeQuery(c) { 9222 var unicode = c.charCodeAt(0); 9223 9224 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { 9225 return c; 9226 } 9227 9228 return encodeURIComponent(c); 9229 } 9230 9231 var EOF, 9232 ALPHA = /[a-zA-Z]/, 9233 ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; 9234 9235 function parse(input, stateOverride, base) { 9236 function err(message) { 9237 errors.push(message); 9238 } 9239 9240 var state = stateOverride || 'scheme start', 9241 cursor = 0, 9242 buffer = '', 9243 seenAt = false, 9244 seenBracket = false, 9245 errors = []; 9246 9247 loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { 9248 var c = input[cursor]; 9249 9250 switch (state) { 9251 case 'scheme start': 9252 if (c && ALPHA.test(c)) { 9253 buffer += c.toLowerCase(); 9254 state = 'scheme'; 9255 } else if (!stateOverride) { 9256 buffer = ''; 9257 state = 'no scheme'; 9258 continue; 9259 } else { 9260 err('Invalid scheme.'); 9261 break loop; 9262 } 9263 9264 break; 9265 9266 case 'scheme': 9267 if (c && ALPHANUMERIC.test(c)) { 9268 buffer += c.toLowerCase(); 9269 } else if (c === ':') { 9270 this._scheme = buffer; 9271 buffer = ''; 9272 9273 if (stateOverride) { 9274 break loop; 9275 } 9276 9277 if (isRelativeScheme(this._scheme)) { 9278 this._isRelative = true; 9279 } 9280 9281 if (this._scheme === 'file') { 9282 state = 'relative'; 9283 } else if (this._isRelative && base && base._scheme === this._scheme) { 9284 state = 'relative or authority'; 9285 } else if (this._isRelative) { 9286 state = 'authority first slash'; 9287 } else { 9288 state = 'scheme data'; 9289 } 9290 } else if (!stateOverride) { 9291 buffer = ''; 9292 cursor = 0; 9293 state = 'no scheme'; 9294 continue; 9295 } else if (c === EOF) { 9296 break loop; 9297 } else { 9298 err('Code point not allowed in scheme: ' + c); 9299 break loop; 9300 } 9301 9302 break; 9303 9304 case 'scheme data': 9305 if (c === '?') { 9306 this._query = '?'; 9307 state = 'query'; 9308 } else if (c === '#') { 9309 this._fragment = '#'; 9310 state = 'fragment'; 9311 } else { 9312 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 9313 this._schemeData += percentEscape(c); 9314 } 9315 } 9316 9317 break; 9318 9319 case 'no scheme': 9320 if (!base || !isRelativeScheme(base._scheme)) { 9321 err('Missing scheme.'); 9322 invalid.call(this); 9323 } else { 9324 state = 'relative'; 9325 continue; 9326 } 9327 9328 break; 9329 9330 case 'relative or authority': 9331 if (c === '/' && input[cursor + 1] === '/') { 9332 state = 'authority ignore slashes'; 9333 } else { 9334 err('Expected /, got: ' + c); 9335 state = 'relative'; 9336 continue; 9337 } 9338 9339 break; 9340 9341 case 'relative': 9342 this._isRelative = true; 9343 9344 if (this._scheme !== 'file') { 9345 this._scheme = base._scheme; 9346 } 9347 9348 if (c === EOF) { 9349 this._host = base._host; 9350 this._port = base._port; 9351 this._path = base._path.slice(); 9352 this._query = base._query; 9353 this._username = base._username; 9354 this._password = base._password; 9355 break loop; 9356 } else if (c === '/' || c === '\\') { 9357 if (c === '\\') {
9358 err('\\ is an invalid code point.'); 9359 } 9360 9361 state = 'relative slash'; 9362 } else if (c === '?') { 9363 this._host = base._host; 9364 this._port = base._port; 9365 this._path = base._path.slice(); 9366 this._query = '?'; 9367 this._username = base._username; 9368 this._password = base._password; 9369 state = 'query'; 9370 } else if (c === '#') { 9371 this._host = base._host; 9372 this._port = base._port; 9373 this._path = base._path.slice(); 9374 this._query = base._query; 9375 this._fragment = '#'; 9376 this._username = base._username; 9377 this._password = base._password; 9378 state = 'fragment'; 9379 } else { 9380 var nextC = input[cursor + 1]; 9381 var nextNextC = input[cursor + 2]; 9382 9383 if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { 9384 this._host = base._host; 9385 this._port = base._port; 9386 this._username = base._username; 9387 this._password = base._password; 9388 this._path = base._path.slice(); 9389 9390 this._path.pop(); 9391 } 9392 9393 state = 'relative path'; 9394 continue; 9395 } 9396 9397 break; 9398 9399 case 'relative slash': 9400 if (c === '/' || c === '\\') { 9401 if (c === '\\') { 9402 err('\\ is an invalid code point.'); 9403 } 9404 9405 if (this._scheme === 'file') { 9406 state = 'file host'; 9407 } else { 9408 state = 'authority ignore slashes'; 9409 } 9410 } else { 9411 if (this._scheme !== 'file') { 9412 this._host = base._host; 9413 this._port = base._port; 9414 this._username = base._username; 9415 this._password = base._password; 9416 } 9417 9418 state = 'relative path'; 9419 continue; 9420 } 9421 9422 break; 9423 9424 case 'authority first slash': 9425 if (c === '/') { 9426 state = 'authority second slash'; 9427 } else { 9428 err('Expected \'/\', got: ' + c); 9429 state = 'authority ignore slashes'; 9430 continue; 9431 } 9432 9433 break; 9434 9435 case 'authority second slash': 9436 state = 'authority ignore slashes'; 9437 9438 if (c !== '/') { 9439 err('Expected \'/\', got: ' + c); 9440 continue; 9441 } 9442 9443 break; 9444 9445 case 'authority ignore slashes': 9446 if (c !== '/' && c !== '\\') { 9447 state = 'authority'; 9448 continue; 9449 } else { 9450 err('Expected authority, got: ' + c); 9451 } 9452 9453 break; 9454 9455 case 'authority': 9456 if (c === '@') { 9457 if (seenAt) { 9458 err('@ already seen.'); 9459 buffer += '%40'; 9460 } 9461 9462 seenAt = true; 9463 9464 for (var i = 0; i < buffer.length; i++) { 9465 var cp = buffer[i]; 9466 9467 if (cp === '\t' || cp === '\n' || cp === '\r') { 9468 err('Invalid whitespace in authority.'); 9469 continue; 9470 } 9471 9472 if (cp === ':' && this._password === null) { 9473 this._password = ''; 9474 continue; 9475 } 9476 9477 var tempC = percentEscape(cp); 9478 9479 if (this._password !== null) { 9480 this._password += tempC; 9481 } else { 9482 this._username += tempC; 9483 } 9484 } 9485 9486 buffer = ''; 9487 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 9488 cursor -= buffer.length; 9489 buffer = ''; 9490 state = 'host'; 9491 continue; 9492 } else { 9493 buffer += c; 9494 } 9495 9496 break; 9497 9498 case 'file host': 9499 if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 9500 if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { 9501 state = 'relative path'; 9502 } else if (buffer.length === 0) { 9503 state = 'relative path start'; 9504 } else {
9505 this._host = IDNAToASCII.call(this, buffer); 9506 buffer = ''; 9507 state = 'relative path start'; 9508 } 9509 9510 continue; 9511 } else if (c === '\t' || c === '\n' || c === '\r') { 9512 err('Invalid whitespace in file host.'); 9513 } else { 9514 buffer += c; 9515 } 9516 9517 break; 9518 9519 case 'host': 9520 case 'hostname': 9521 if (c === ':' && !seenBracket) { 9522 this._host = IDNAToASCII.call(this, buffer); 9523 buffer = ''; 9524 state = 'port'; 9525 9526 if (stateOverride === 'hostname') { 9527 break loop; 9528 } 9529 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 9530 this._host = IDNAToASCII.call(this, buffer); 9531 buffer = ''; 9532 state = 'relative path start'; 9533 9534 if (stateOverride) { 9535 break loop; 9536 } 9537 9538 continue; 9539 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 9540 if (c === '[') { 9541 seenBracket = true; 9542 } else if (c === ']') { 9543 seenBracket = false; 9544 } 9545 9546 buffer += c; 9547 } else { 9548 err('Invalid code point in host/hostname: ' + c); 9549 } 9550 9551 break; 9552 9553 case 'port': 9554 if (/[0-9]/.test(c)) { 9555 buffer += c; 9556 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { 9557 if (buffer !== '') { 9558 var temp = parseInt(buffer, 10); 9559 9560 if (temp !== relative[this._scheme]) { 9561 this._port = temp + ''; 9562 } 9563 9564 buffer = ''; 9565 } 9566 9567 if (stateOverride) { 9568 break loop; 9569 } 9570 9571 state = 'relative path start'; 9572 continue; 9573 } else if (c === '\t' || c === '\n' || c === '\r') { 9574 err('Invalid code point in port: ' + c); 9575 } else { 9576 invalid.call(this); 9577 } 9578 9579 break; 9580 9581 case 'relative path start': 9582 if (c === '\\') { 9583 err('\'\\\' not allowed in path.'); 9584 } 9585 9586 state = 'relative path'; 9587 9588 if (c !== '/' && c !== '\\') { 9589 continue; 9590 } 9591 9592 break; 9593 9594 case 'relative path': 9595 if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { 9596 if (c === '\\') { 9597 err('\\ not allowed in relative path.'); 9598 } 9599 9600 var tmp; 9601 9602 if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { 9603 buffer = tmp; 9604 } 9605 9606 if (buffer === '..') { 9607 this._path.pop(); 9608 9609 if (c !== '/' && c !== '\\') { 9610 this._path.push(''); 9611 } 9612 } else if (buffer === '.' && c !== '/' && c !== '\\') { 9613 this._path.push(''); 9614 } else if (buffer !== '.') { 9615 if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { 9616 buffer = buffer[0] + ':'; 9617 } 9618 9619 this._path.push(buffer); 9620 } 9621 9622 buffer = ''; 9623 9624 if (c === '?') { 9625 this._query = '?'; 9626 state = 'query'; 9627 } else if (c === '#') { 9628 this._fragment = '#'; 9629 state = 'fragment'; 9630 } 9631 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 9632 buffer += percentEscape(c); 9633 } 9634 9635 break; 9636 9637 case 'query': 9638 if (!stateOverride && c === '#') { 9639 this._fragment = '#'; 9640 state = 'fragment'; 9641 } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 9642 this._query += percentEscapeQuery(c); 9643 } 9644 9645 break; 9646 9647 case 'fragment': 9648 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 9649 this._fragment += c; 9650 } 9651 9652 break; 9653 } 9654 9655 cursor++; 9656 } 9657 } 9658 9659 function clear() { 9660 this._scheme = ''; 9661 this._schemeData = ''; 9662 this._username = ''; 9663 this._password = null; 9664 this._host = ''; 9665 this._port = ''; 9666 this._path = []; 9667 this._query = ''; 9668 this._fragment = ''; 9669 this._isInvalid = false; 9670 this._isRelative = false; 9671 } 9672 9673 function JURL(url, base) { 9674 if (base !== undefined && !(base instanceof JURL)) { 9675 base = new JURL(String(base)); 9676 } 9677 9678 this._url = url; 9679 clear.call(this); 9680 var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); 9681 parse.call(this, input, null, base); 9682 } 9683 9684 JURL.prototype = { 9685 toString: function toString() { 9686 return this.href; 9687 }, 9688 9689 get href() { 9690 if (this._isInvalid) { 9691 return this._url; 9692 } 9693 9694 var authority = ''; 9695 9696 if (this._username !== '' || this._password !== null) { 9697 authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; 9698 } 9699 9700 return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; 9701 }, 9702 9703 set href(value) { 9704 clear.call(this); 9705 parse.call(this, value); 9706 }, 9707 9708 get protocol() { 9709 return this._scheme + ':'; 9710 }, 9711 9712 set protocol(value) { 9713 if (this._isInvalid) { 9714 return; 9715 } 9716 9717 parse.call(this, value + ':', 'scheme start'); 9718 }, 9719 9720 get host() { 9721 return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; 9722 }, 9723 9724 set host(value) { 9725 if (this._isInvalid || !this._isRelative) { 9726 return; 9727 } 9728 9729 parse.call(this, value, 'host'); 9730 }, 9731 9732 get hostname() { 9733 return this._host; 9734 }, 9735 9736 set hostname(value) { 9737 if (this._isInvalid || !this._isRelative) { 9738 return; 9739 } 9740 9741 parse.call(this, value, 'hostname'); 9742 }, 9743 9744 get port() { 9745 return this._port; 9746 }, 9747 9748 set port(value) { 9749 if (this._isInvalid || !this._isRelative) { 9750 return; 9751 } 9752 9753 parse.call(this, value, 'port'); 9754 }, 9755 9756 get pathname() { 9757 return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; 9758 }, 9759 9760 set pathname(value) { 9761 if (this._isInvalid || !this._isRelative) { 9762 return; 9763 } 9764 9765 this._path = []; 9766 parse.call(this, value, 'relative path start'); 9767 }, 9768 9769 get search() { 9770 return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; 9771 }, 9772 9773 set search(value) { 9774 if (this._isInvalid || !this._isRelative) { 9775 return; 9776 } 9777 9778 this._query = '?'; 9779 9780 if (value[0] === '?') { 9781 value = value.slice(1); 9782 } 9783 9784 parse.call(this, value, 'query'); 9785 }, 9786 9787 get hash() { 9788 return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; 9789 }, 9790 9791 set hash(value) { 9792 if (this._isInvalid) { 9793 return; 9794 } 9795 9796 this._fragment = '#'; 9797 9798 if (value[0] === '#') { 9799 value = value.slice(1); 9800 } 9801 9802 parse.call(this, value, 'fragment'); 9803 }, 9804 9805 get origin() { 9806 var host; 9807 9808 if (this._isInvalid || !this._scheme) { 9809 return ''; 9810 } 9811 9812 switch (this._scheme) { 9813 case 'data': 9814 case 'file': 9815 case 'javascript': 9816 case 'mailto': 9817 return 'null'; 9818 9819 case 'blob': 9820 try { 9821 return new JURL(this._schemeData).origin || 'null'; 9822 } catch (_) {} 9823 9824 return 'null'; 9825 } 9826 9827 host = this.host; 9828 9829 if (!host) { 9830 return ''; 9831 } 9832 9833 return this._scheme + '://' + host; 9834 } 9835 9836 }; 9837 exports.URL = JURL; 9838})(); 9839 9840/***/ }), 9841/* 146 */ 9842/***/ (function(module, exports, __w_pdfjs_require__) { 9843 9844"use strict"; 9845 9846 9847Object.defineProperty(exports, "__esModule", { 9848 value: true 9849}); 9850exports.getDocument = getDocument; 9851exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
9852exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; 9853 9854var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 9855 9856var _util = __w_pdfjs_require__(1); 9857 9858var _dom_utils = __w_pdfjs_require__(151); 9859 9860var _font_loader = __w_pdfjs_require__(152); 9861 9862var _api_compatibility = __w_pdfjs_require__(153); 9863 9864var _canvas = __w_pdfjs_require__(154); 9865 9866var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); 9867 9868var _worker_options = __w_pdfjs_require__(156); 9869 9870var _message_handler = __w_pdfjs_require__(157); 9871 9872var _metadata = __w_pdfjs_require__(158); 9873 9874var _transport_stream = __w_pdfjs_require__(160); 9875 9876var _webgl = __w_pdfjs_require__(161); 9877 9878function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 9879 9880function 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); } } 9881 9882function _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); }); }; } 9883 9884function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 9885 9886function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 9887 9888function _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; } 9889 9890function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 9891 9892function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } 9893 9894function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } 9895 9896function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } 9897 9898function _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; } } 9899 9900function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 9901 9902function _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); } } 9903 9904function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 9905 9906function _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); } 9907 9908var DEFAULT_RANGE_CHUNK_SIZE = 65536; 9909var isWorkerDisabled = false; 9910var fallbackWorkerSrc; 9911var fakeWorkerFilesLoader = null; 9912{ 9913 var useRequireEnsure = false; 9914 9915 if (typeof window === 'undefined') { 9916 isWorkerDisabled = true; 9917 9918 if (typeof require.ensure === 'undefined') { 9919 require.ensure = require('node-ensure'); 9920 } 9921 9922 useRequireEnsure = true; 9923 } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { 9924 useRequireEnsure = true; 9925 } 9926 9927 if (typeof requirejs !== 'undefined' && requirejs.toUrl) { 9928 fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); 9929 } 9930 9931 var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; 9932 fakeWorkerFilesLoader = useRequireEnsure ? function () { 9933 return new Promise(function (resolve, reject) { 9934 require.ensure([], function () { 9935 try { 9936 var worker; 9937 worker = require('./pdf.worker.js'); 9938 resolve(worker.WorkerMessageHandler); 9939 } catch (ex) { 9940 reject(ex); 9941 } 9942 }, reject, 'pdfjsWorker'); 9943 });
9944 } : dynamicLoaderSupported ? function () { 9945 return new Promise(function (resolve, reject) { 9946 requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { 9947 try { 9948 resolve(worker.WorkerMessageHandler); 9949 } catch (ex) { 9950 reject(ex); 9951 } 9952 }, reject); 9953 }); 9954 } : null; 9955 9956 if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) { 9957 var pdfjsFilePath = document.currentScript && document.currentScript.src; 9958 9959 if (pdfjsFilePath) { 9960 fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); 9961 } 9962 } 9963} 9964var createPDFNetworkStream; 9965 9966function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { 9967 createPDFNetworkStream = pdfNetworkStreamFactory; 9968} 9969 9970function getDocument(src) { 9971 var task = new PDFDocumentLoadingTask(); 9972 var source; 9973 9974 if (typeof src === 'string') { 9975 source = { 9976 url: src 9977 }; 9978 } else if ((0, _util.isArrayBuffer)(src)) { 9979 source = { 9980 data: src 9981 }; 9982 } else if (src instanceof PDFDataRangeTransport) { 9983 source = { 9984 range: src 9985 }; 9986 } else { 9987 if (_typeof(src) !== 'object') { 9988 throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); 9989 } 9990 9991 if (!src.url && !src.data && !src.range) { 9992 throw new Error('Invalid parameter object: need either .data, .range or .url'); 9993 } 9994 9995 source = src; 9996 } 9997 9998 var params = Object.create(null); 9999 var rangeTransport = null, 10000 worker = null; 10001 10002 for (var key in source) { 10003 if (key === 'url' && typeof window !== 'undefined') { 10004 params[key] = new _util.URL(source[key], window.location).href; 10005 continue; 10006 } else if (key === 'range') { 10007 rangeTransport = source[key]; 10008 continue; 10009 } else if (key === 'worker') { 10010 worker = source[key]; 10011 continue; 10012 } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { 10013 var pdfBytes = source[key]; 10014 10015 if (typeof pdfBytes === 'string') { 10016 params[key] = (0, _util.stringToBytes)(pdfBytes); 10017 } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { 10018 params[key] = new Uint8Array(pdfBytes); 10019 } else if ((0, _util.isArrayBuffer)(pdfBytes)) { 10020 params[key] = new Uint8Array(pdfBytes); 10021 } else { 10022 throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); 10023 } 10024 10025 continue; 10026 } 10027 10028 params[key] = source[key]; 10029 } 10030 10031 params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; 10032 params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory; 10033 params.ignoreErrors = params.stopAtErrors !== true; 10034 params.pdfBug = params.pdfBug === true; 10035 var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); 10036 10037 if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { 10038 params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; 10039 } 10040 10041 if (!Number.isInteger(params.maxImageSize)) { 10042 params.maxImageSize = -1; 10043 } 10044 10045 if (typeof params.isEvalSupported !== 'boolean') { 10046 params.isEvalSupported = true; 10047 } 10048 10049 if (typeof params.disableFontFace !== 'boolean') { 10050 params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; 10051 } 10052 10053 if (typeof params.disableRange !== 'boolean') { 10054 params.disableRange = false; 10055 } 10056 10057 if (typeof params.disableStream !== 'boolean') { 10058 params.disableStream = false; 10059 } 10060 10061 if (typeof params.disableAutoFetch !== 'boolean') { 10062 params.disableAutoFetch = false; 10063 } 10064 10065 if (typeof params.disableCreateObjectURL !== 'boolean') { 10066 params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; 10067 } 10068 10069 (0, _util.setVerbosityLevel)(params.verbosity); 10070 10071 if (!worker) { 10072 var workerParams = { 10073 postMessageTransfers: params.postMessageTransfers, 10074 verbosity: params.verbosity, 10075 port: _worker_options.GlobalWorkerOptions.workerPort 10076 }; 10077 worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); 10078 task._worker = worker; 10079 } 10080 10081 var docId = task.docId; 10082 worker.promise.then(function () { 10083 if (task.destroyed) { 10084 throw new Error('Loading aborted'); 10085 } 10086 10087 return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { 10088 if (task.destroyed) { 10089 throw new Error('Loading aborted'); 10090 } 10091 10092 var networkStream; 10093 10094 if (rangeTransport) { 10095 networkStream = new _transport_stream.PDFDataTransportStream({ 10096 length: params.length, 10097 initialData: params.initialData, 10098 disableRange: params.disableRange, 10099 disableStream: params.disableStream 10100 }, rangeTransport); 10101 } else if (!params.data) { 10102 networkStream = createPDFNetworkStream({ 10103 url: params.url, 10104 length: params.length, 10105 httpHeaders: params.httpHeaders, 10106 withCredentials: params.withCredentials, 10107 rangeChunkSize: params.rangeChunkSize, 10108 disableRange: params.disableRange, 10109 disableStream: params.disableStream 10110 }); 10111 } 10112 10113 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); 10114 messageHandler.postMessageTransfers = worker.postMessageTransfers; 10115 var transport = new WorkerTransport(messageHandler, task, networkStream, params); 10116 task._transport = transport; 10117 messageHandler.send('Ready', null); 10118 });
10119 }).catch(task._capability.reject); 10120 return task; 10121} 10122 10123function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { 10124 if (worker.destroyed) { 10125 return Promise.reject(new Error('Worker was destroyed')); 10126 } 10127 10128 if (pdfDataRangeTransport) { 10129 source.length = pdfDataRangeTransport.length; 10130 source.initialData = pdfDataRangeTransport.initialData; 10131 } 10132 10133 return worker.messageHandler.sendWithPromise('GetDocRequest', { 10134 docId: docId, 10135 apiVersion: '2.1.266', 10136 source: { 10137 data: source.data, 10138 url: source.url, 10139 password: source.password, 10140 disableAutoFetch: source.disableAutoFetch, 10141 rangeChunkSize: source.rangeChunkSize, 10142 length: source.length 10143 }, 10144 maxImageSize: source.maxImageSize, 10145 disableFontFace: source.disableFontFace, 10146 disableCreateObjectURL: source.disableCreateObjectURL, 10147 postMessageTransfers: worker.postMessageTransfers, 10148 docBaseUrl: source.docBaseUrl, 10149 nativeImageDecoderSupport: source.nativeImageDecoderSupport,
10150 ignoreErrors: source.ignoreErrors, 10151 isEvalSupported: source.isEvalSupported 10152 }).then(function (workerId) { 10153 if (worker.destroyed) { 10154 throw new Error('Worker was destroyed'); 10155 } 10156 10157 return workerId; 10158 }); 10159} 10160 10161var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { 10162 var nextDocumentId = 0; 10163 10164 var PDFDocumentLoadingTask = 10165 /*#__PURE__*/ 10166 function () { 10167 function PDFDocumentLoadingTask() { 10168 _classCallCheck(this, PDFDocumentLoadingTask); 10169 10170 this._capability = (0, _util.createPromiseCapability)(); 10171 this._transport = null; 10172 this._worker = null; 10173 this.docId = 'd' + nextDocumentId++; 10174 this.destroyed = false; 10175 this.onPassword = null; 10176 this.onProgress = null; 10177 this.onUnsupportedFeature = null; 10178 } 10179 10180 _createClass(PDFDocumentLoadingTask, [{ 10181 key: "destroy", 10182 value: function destroy() { 10183 var _this = this; 10184 10185 this.destroyed = true; 10186 var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); 10187 return transportDestroyed.then(function () { 10188 _this._transport = null; 10189 10190 if (_this._worker) { 10191 _this._worker.destroy(); 10192 10193 _this._worker = null; 10194 } 10195 }); 10196 } 10197 }, { 10198 key: "then", 10199 value: function then(onFulfilled, onRejected) { 10200 (0, _util.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.'); 10201 return this.promise.then.apply(this.promise, arguments); 10202 } 10203 }, { 10204 key: "promise", 10205 get: function get() { 10206 return this._capability.promise; 10207 } 10208 }]); 10209 10210 return PDFDocumentLoadingTask; 10211 }(); 10212 10213 return PDFDocumentLoadingTask; 10214}(); 10215 10216var PDFDataRangeTransport = 10217/*#__PURE__*/ 10218function () { 10219 function PDFDataRangeTransport(length, initialData) { 10220 _classCallCheck(this, PDFDataRangeTransport); 10221 10222 this.length = length; 10223 this.initialData = initialData; 10224 this._rangeListeners = []; 10225 this._progressListeners = []; 10226 this._progressiveReadListeners = []; 10227 this._readyCapability = (0, _util.createPromiseCapability)(); 10228 } 10229 10230 _createClass(PDFDataRangeTransport, [{ 10231 key: "addRangeListener", 10232 value: function addRangeListener(listener) { 10233 this._rangeListeners.push(listener); 10234 } 10235 }, { 10236 key: "addProgressListener", 10237 value: function addProgressListener(listener) { 10238 this._progressListeners.push(listener); 10239 } 10240 }, { 10241 key: "addProgressiveReadListener", 10242 value: function addProgressiveReadListener(listener) { 10243 this._progressiveReadListeners.push(listener); 10244 } 10245 }, { 10246 key: "onDataRange", 10247 value: function onDataRange(begin, chunk) { 10248 var _iteratorNormalCompletion = true; 10249 var _didIteratorError = false; 10250 var _iteratorError = undefined; 10251 10252 try { 10253 for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 10254 var listener = _step.value; 10255 listener(begin, chunk); 10256 } 10257 } catch (err) { 10258 _didIteratorError = true; 10259 _iteratorError = err; 10260 } finally { 10261 try { 10262 if (!_iteratorNormalCompletion && _iterator.return != null) { 10263 _iterator.return(); 10264 } 10265 } finally { 10266 if (_didIteratorError) { 10267 throw _iteratorError; 10268 } 10269 } 10270 } 10271 } 10272 }, { 10273 key: "onDataProgress", 10274 value: function onDataProgress(loaded) { 10275 var _this2 = this; 10276 10277 this._readyCapability.promise.then(function () { 10278 var _iteratorNormalCompletion2 = true; 10279 var _didIteratorError2 = false; 10280 var _iteratorError2 = undefined; 10281 10282 try { 10283 for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 10284 var listener = _step2.value; 10285 listener(loaded); 10286 } 10287 } catch (err) {
10288 _didIteratorError2 = true; 10289 _iteratorError2 = err; 10290 } finally { 10291 try { 10292 if (!_iteratorNormalCompletion2 && _iterator2.return != null) { 10293 _iterator2.return(); 10294 } 10295 } finally { 10296 if (_didIteratorError2) { 10297 throw _iteratorError2; 10298 } 10299 } 10300 } 10301 }); 10302 } 10303 }, { 10304 key: "onDataProgressiveRead", 10305 value: function onDataProgressiveRead(chunk) { 10306 var _this3 = this; 10307 10308 this._readyCapability.promise.then(function () { 10309 var _iteratorNormalCompletion3 = true; 10310 var _didIteratorError3 = false; 10311 var _iteratorError3 = undefined; 10312 10313 try { 10314 for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { 10315 var listener = _step3.value; 10316 listener(chunk); 10317 } 10318 } catch (err) { 10319 _didIteratorError3 = true; 10320 _iteratorError3 = err; 10321 } finally { 10322 try { 10323 if (!_iteratorNormalCompletion3 && _iterator3.return != null) { 10324 _iterator3.return(); 10325 } 10326 } finally { 10327 if (_didIteratorError3) { 10328 throw _iteratorError3; 10329 } 10330 } 10331 } 10332 }); 10333 } 10334 }, { 10335 key: "transportReady", 10336 value: function transportReady() { 10337 this._readyCapability.resolve(); 10338 } 10339 }, { 10340 key: "requestDataRange", 10341 value: function requestDataRange(begin, end) { 10342 (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); 10343 } 10344 }, { 10345 key: "abort", 10346 value: function abort() {} 10347 }]); 10348 10349 return PDFDataRangeTransport; 10350}(); 10351 10352exports.PDFDataRangeTransport = PDFDataRangeTransport; 10353 10354var PDFDocumentProxy = 10355/*#__PURE__*/ 10356function () { 10357 function PDFDocumentProxy(pdfInfo, transport, loadingTask) { 10358 _classCallCheck(this, PDFDocumentProxy); 10359 10360 this.loadingTask = loadingTask; 10361 this._pdfInfo = pdfInfo; 10362 this._transport = transport; 10363 } 10364 10365 _createClass(PDFDocumentProxy, [{ 10366 key: "getPage", 10367 value: function getPage(pageNumber) { 10368 return this._transport.getPage(pageNumber); 10369 } 10370 }, { 10371 key: "getPageIndex", 10372 value: function getPageIndex(ref) { 10373 return this._transport.getPageIndex(ref); 10374 } 10375 }, { 10376 key: "getDestinations", 10377 value: function getDestinations() { 10378 return this._transport.getDestinations(); 10379 } 10380 }, { 10381 key: "getDestination", 10382 value: function getDestination(id) { 10383 return this._transport.getDestination(id); 10384 } 10385 }, { 10386 key: "getPageLabels", 10387 value: function getPageLabels() { 10388 return this._transport.getPageLabels(); 10389 } 10390 }, { 10391 key: "getPageMode", 10392 value: function getPageMode() { 10393 return this._transport.getPageMode(); 10394 } 10395 }, { 10396 key: "getOpenActionDestination", 10397 value: function getOpenActionDestination() { 10398 return this._transport.getOpenActionDestination(); 10399 } 10400 }, { 10401 key: "getAttachments", 10402 value: function getAttachments() { 10403 return this._transport.getAttachments(); 10404 } 10405 }, { 10406 key: "getJavaScript", 10407 value: function getJavaScript() { 10408 return this._transport.getJavaScript(); 10409 } 10410 }, { 10411 key: "getOutline", 10412 value: function getOutline() { 10413 return this._transport.getOutline(); 10414 } 10415 }, { 10416 key: "getPermissions", 10417 value: function getPermissions() { 10418 return this._transport.getPermissions(); 10419 } 10420 }, { 10421 key: "getMetadata", 10422 value: function getMetadata() { 10423 return this._transport.getMetadata(); 10424 } 10425 }, { 10426 key: "getData", 10427 value: function getData() { 10428 return this._transport.getData(); 10429 } 10430 }, { 10431 key: "getDownloadInfo", 10432 value: function getDownloadInfo() { 10433 return this._transport.downloadInfoCapability.promise; 10434 } 10435 }, { 10436 key: "getStats", 10437 value: function getStats() { 10438 return this._transport.getStats(); 10439 } 10440 }, { 10441 key: "cleanup", 10442 value: function cleanup() { 10443 this._transport.startCleanup(); 10444 } 10445 }, {
10446 key: "destroy", 10447 value: function destroy() { 10448 return this.loadingTask.destroy(); 10449 } 10450 }, { 10451 key: "numPages", 10452 get: function get() { 10453 return this._pdfInfo.numPages; 10454 } 10455 }, { 10456 key: "fingerprint", 10457 get: function get() { 10458 return this._pdfInfo.fingerprint; 10459 } 10460 }, { 10461 key: "loadingParams", 10462 get: function get() { 10463 return this._transport.loadingParams; 10464 } 10465 }]); 10466 10467 return PDFDocumentProxy; 10468}(); 10469 10470exports.PDFDocumentProxy = PDFDocumentProxy; 10471 10472var PDFPageProxy = 10473/*#__PURE__*/ 10474function () { 10475 function PDFPageProxy(pageIndex, pageInfo, transport) { 10476 var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; 10477 10478 _classCallCheck(this, PDFPageProxy); 10479 10480 this.pageIndex = pageIndex; 10481 this._pageInfo = pageInfo; 10482 this._transport = transport; 10483 this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer; 10484 this._pdfBug = pdfBug; 10485 this.commonObjs = transport.commonObjs; 10486 this.objs = new PDFObjects(); 10487 this.cleanupAfterRender = false; 10488 this.pendingCleanup = false; 10489 this.intentStates = Object.create(null); 10490 this.destroyed = false; 10491 } 10492 10493 _createClass(PDFPageProxy, [{ 10494 key: "getViewport", 10495 value: function getViewport() { 10496 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 10497 scale = _ref.scale, 10498 _ref$rotation = _ref.rotation, 10499 rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation, 10500 _ref$dontFlip = _ref.dontFlip, 10501 dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip; 10502 10503 if (arguments.length > 1 || typeof arguments[0] === 'number') { 10504 (0, _util.deprecated)('getViewport is called with obsolete arguments.'); 10505 scale = arguments[0]; 10506 rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate; 10507 dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false; 10508 } 10509 10510 return new _dom_utils.PageViewport({
10511 viewBox: this.view, 10512 scale: scale, 10513 rotation: rotation, 10514 dontFlip: dontFlip 10515 }); 10516 } 10517 }, { 10518 key: "getAnnotations", 10519 value: function getAnnotations() { 10520 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 10521 _ref2$intent = _ref2.intent, 10522 intent = _ref2$intent === void 0 ? null : _ref2$intent; 10523 10524 if (!this.annotationsPromise || this.annotationsIntent !== intent) { 10525 this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent); 10526 this.annotationsIntent = intent; 10527 } 10528 10529 return this.annotationsPromise; 10530 } 10531 }, { 10532 key: "render", 10533 value: function render(_ref3) { 10534 var _this4 = this; 10535 10536 var canvasContext = _ref3.canvasContext, 10537 viewport = _ref3.viewport, 10538 _ref3$intent = _ref3.intent, 10539 intent = _ref3$intent === void 0 ? 'display' : _ref3$intent, 10540 _ref3$enableWebGL = _ref3.enableWebGL, 10541 enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL, 10542 _ref3$renderInteracti = _ref3.renderInteractiveForms, 10543 renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti, 10544 _ref3$transform = _ref3.transform, 10545 transform = _ref3$transform === void 0 ? null : _ref3$transform, 10546 _ref3$imageLayer = _ref3.imageLayer, 10547 imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer, 10548 _ref3$canvasFactory = _ref3.canvasFactory, 10549 canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory, 10550 _ref3$background = _ref3.background, 10551 background = _ref3$background === void 0 ? null : _ref3$background; 10552 var stats = this._stats; 10553 stats.time('Overall'); 10554 this.pendingCleanup = false; 10555 var renderingIntent = intent === 'print' ? 'print' : 'display'; 10556 var canvasFactoryInstance = canvasFactory || new _dom_utils.DOMCanvasFactory(); 10557 var webGLContext = new _webgl.WebGLContext({ 10558 enable: enableWebGL 10559 }); 10560 10561 if (!this.intentStates[renderingIntent]) { 10562 this.intentStates[renderingIntent] = Object.create(null); 10563 } 10564 10565 var intentState = this.intentStates[renderingIntent]; 10566 10567 if (!intentState.displayReadyCapability) { 10568 intentState.receivingOperatorList = true; 10569 intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); 10570 intentState.operatorList = { 10571 fnArray: [], 10572 argsArray: [], 10573 lastChunk: false 10574 }; 10575 stats.time('Page Request'); 10576 10577 this._transport.messageHandler.send('RenderPageRequest', { 10578 pageIndex: this.pageNumber - 1, 10579 intent: renderingIntent, 10580 renderInteractiveForms: renderInteractiveForms === true 10581 }); 10582 } 10583 10584 var complete = function complete(error) { 10585 var i = intentState.renderTasks.indexOf(internalRenderTask); 10586 10587 if (i >= 0) { 10588 intentState.renderTasks.splice(i, 1); 10589 } 10590 10591 if (_this4.cleanupAfterRender) { 10592 _this4.pendingCleanup = true; 10593 } 10594 10595 _this4._tryCleanup(); 10596 10597 if (error) { 10598 internalRenderTask.capability.reject(error); 10599 } else { 10600 internalRenderTask.capability.resolve(); 10601 } 10602 10603 stats.timeEnd('Rendering'); 10604 stats.timeEnd('Overall'); 10605 }; 10606 10607 var internalRenderTask = new InternalRenderTask({ 10608 callback: complete, 10609 params: { 10610 canvasContext: canvasContext, 10611 viewport: viewport, 10612 transform: transform, 10613 imageLayer: imageLayer, 10614 background: background 10615 }, 10616 objs: this.objs, 10617 commonObjs: this.commonObjs, 10618 operatorList: intentState.operatorList, 10619 pageNumber: this.pageNumber, 10620 canvasFactory: canvasFactoryInstance, 10621 webGLContext: webGLContext, 10622 useRequestAnimationFrame: renderingIntent !== 'print', 10623 pdfBug: this._pdfBug 10624 }); 10625 10626 if (!intentState.renderTasks) { 10627 intentState.renderTasks = []; 10628 } 10629 10630 intentState.renderTasks.push(internalRenderTask); 10631 var renderTask = internalRenderTask.task; 10632 intentState.displayReadyCapability.promise.then(function (transparency) { 10633 if (_this4.pendingCleanup) { 10634 complete(); 10635 return; 10636 } 10637 10638 stats.time('Rendering');
10639 internalRenderTask.initializeGraphics(transparency); 10640 internalRenderTask.operatorListChanged(); 10641 }).catch(complete); 10642 return renderTask; 10643 } 10644 }, { 10645 key: "getOperatorList", 10646 value: function getOperatorList() { 10647 function operatorListChanged() { 10648 if (intentState.operatorList.lastChunk) { 10649 intentState.opListReadCapability.resolve(intentState.operatorList); 10650 var i = intentState.renderTasks.indexOf(opListTask); 10651 10652 if (i >= 0) { 10653 intentState.renderTasks.splice(i, 1); 10654 } 10655 } 10656 } 10657 10658 var renderingIntent = 'oplist'; 10659 10660 if (!this.intentStates[renderingIntent]) { 10661 this.intentStates[renderingIntent] = Object.create(null); 10662 } 10663 10664 var intentState = this.intentStates[renderingIntent]; 10665 var opListTask; 10666 10667 if (!intentState.opListReadCapability) { 10668 opListTask = {}; 10669 opListTask.operatorListChanged = operatorListChanged; 10670 intentState.receivingOperatorList = true; 10671 intentState.opListReadCapability = (0, _util.createPromiseCapability)(); 10672 intentState.renderTasks = []; 10673 intentState.renderTasks.push(opListTask); 10674 intentState.operatorList = { 10675 fnArray: [], 10676 argsArray: [], 10677 lastChunk: false 10678 }; 10679 10680 this._stats.time('Page Request'); 10681 10682 this._transport.messageHandler.send('RenderPageRequest', { 10683 pageIndex: this.pageIndex, 10684 intent: renderingIntent 10685 }); 10686 } 10687 10688 return intentState.opListReadCapability.promise; 10689 } 10690 }, { 10691 key: "streamTextContent", 10692 value: function streamTextContent() { 10693 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 10694 _ref4$normalizeWhites = _ref4.normalizeWhitespace, 10695 normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites, 10696 _ref4$disableCombineT = _ref4.disableCombineTextItems, 10697 disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT; 10698 10699 var TEXT_CONTENT_CHUNK_SIZE = 100; 10700 return this._transport.messageHandler.sendWithStream('GetTextContent', { 10701 pageIndex: this.pageNumber - 1, 10702 normalizeWhitespace: normalizeWhitespace === true, 10703 combineTextItems: disableCombineTextItems !== true 10704 }, { 10705 highWaterMark: TEXT_CONTENT_CHUNK_SIZE, 10706 size: function size(textContent) { 10707 return textContent.items.length; 10708 } 10709 }); 10710 } 10711 }, { 10712 key: "getTextContent", 10713 value: function getTextContent() { 10714 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 10715 var readableStream = this.streamTextContent(params); 10716 return new Promise(function (resolve, reject) { 10717 function pump() { 10718 reader.read().then(function (_ref5) { 10719 var _textContent$items; 10720 10721 var value = _ref5.value, 10722 done = _ref5.done; 10723 10724 if (done) { 10725 resolve(textContent); 10726 return; 10727 } 10728 10729 Object.assign(textContent.styles, value.styles); 10730 10731 (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); 10732 10733 pump(); 10734 }, reject); 10735 } 10736 10737 var reader = readableStream.getReader(); 10738 var textContent = { 10739 items: [], 10740 styles: Object.create(null) 10741 }; 10742 pump(); 10743 }); 10744 } 10745 }, { 10746 key: "_destroy", 10747 value: function _destroy() { 10748 this.destroyed = true; 10749 this._transport.pageCache[this.pageIndex] = null; 10750 var waitOn = []; 10751 Object.keys(this.intentStates).forEach(function (intent) { 10752 if (intent === 'oplist') { 10753 return; 10754 } 10755 10756 var intentState = this.intentStates[intent]; 10757 intentState.renderTasks.forEach(function (renderTask) { 10758 var renderCompleted = renderTask.capability.promise.catch(function () {}); 10759 waitOn.push(renderCompleted); 10760 renderTask.cancel(); 10761 }); 10762 }, this); 10763 this.objs.clear();
10764 this.annotationsPromise = null; 10765 this.pendingCleanup = false; 10766 return Promise.all(waitOn); 10767 } 10768 }, { 10769 key: "cleanup", 10770 value: function cleanup() { 10771 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 10772 this.pendingCleanup = true; 10773 10774 this._tryCleanup(resetStats); 10775 } 10776 }, { 10777 key: "_tryCleanup", 10778 value: function _tryCleanup() { 10779 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 10780 10781 if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { 10782 var intentState = this.intentStates[intent]; 10783 return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; 10784 }, this)) { 10785 return; 10786 } 10787 10788 Object.keys(this.intentStates).forEach(function (intent) { 10789 delete this.intentStates[intent]; 10790 }, this); 10791 this.objs.clear(); 10792 this.annotationsPromise = null; 10793 10794 if (resetStats && this._stats instanceof _dom_utils.StatTimer) { 10795 this._stats = new _dom_utils.StatTimer(); 10796 } 10797 10798 this.pendingCleanup = false; 10799 } 10800 }, { 10801 key: "_startRenderPage", 10802 value: function _startRenderPage(transparency, intent) { 10803 var intentState = this.intentStates[intent]; 10804 10805 if (intentState.displayReadyCapability) { 10806 intentState.displayReadyCapability.resolve(transparency); 10807 } 10808 } 10809 }, { 10810 key: "_renderPageChunk", 10811 value: function _renderPageChunk(operatorListChunk, intent) { 10812 var intentState = this.intentStates[intent]; 10813 10814 for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { 10815 intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); 10816 intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); 10817 } 10818 10819 intentState.operatorList.lastChunk = operatorListChunk.lastChunk; 10820 10821 for (var _i = 0; _i < intentState.renderTasks.length; _i++) { 10822 intentState.renderTasks[_i].operatorListChanged(); 10823 } 10824 10825 if (operatorListChunk.lastChunk) { 10826 intentState.receivingOperatorList = false; 10827 10828 this._tryCleanup(); 10829 } 10830 } 10831 }, { 10832 key: "pageNumber", 10833 get: function get() { 10834 return this.pageIndex + 1; 10835 } 10836 }, { 10837 key: "rotate", 10838 get: function get() { 10839 return this._pageInfo.rotate; 10840 } 10841 }, { 10842 key: "ref", 10843 get: function get() { 10844 return this._pageInfo.ref; 10845 } 10846 }, { 10847 key: "userUnit", 10848 get: function get() { 10849 return this._pageInfo.userUnit; 10850 } 10851 }, { 10852 key: "view", 10853 get: function get() { 10854 return this._pageInfo.view; 10855 } 10856 }, { 10857 key: "stats", 10858 get: function get() { 10859 return this._stats instanceof _dom_utils.StatTimer ? this._stats : null; 10860 } 10861 }]); 10862 10863 return PDFPageProxy; 10864}(); 10865 10866exports.PDFPageProxy = PDFPageProxy; 10867 10868var LoopbackPort = 10869/*#__PURE__*/ 10870function () { 10871 function LoopbackPort() { 10872 var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 10873 10874 _classCallCheck(this, LoopbackPort); 10875 10876 this._listeners = []; 10877 this._defer = defer; 10878 this._deferred = Promise.resolve(undefined); 10879 } 10880 10881 _createClass(LoopbackPort, [{ 10882 key: "postMessage", 10883 value: function postMessage(obj, transfers) { 10884 var _this5 = this; 10885 10886 function cloneValue(value) { 10887 if (_typeof(value) !== 'object' || value === null) { 10888 return value; 10889 } 10890 10891 if (cloned.has(value)) { 10892 return cloned.get(value); 10893 } 10894 10895 var buffer, result; 10896 10897 if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { 10898 var transferable = transfers && transfers.includes(buffer); 10899 10900 if (value === buffer) { 10901 result = value; 10902 } else if (transferable) { 10903 result = new value.constructor(buffer, value.byteOffset, value.byteLength); 10904 } else { 10905 result = new value.constructor(value); 10906 } 10907 10908 cloned.set(value, result); 10909 return result; 10910 } 10911 10912 result = Array.isArray(value) ? [] : {}; 10913 cloned.set(value, result); 10914 10915 for (var i in value) { 10916 var desc = void 0, 10917 p = value; 10918 10919 while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { 10920 p = Object.getPrototypeOf(p); 10921 } 10922 10923 if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { 10924 continue; 10925 } 10926 10927 result[i] = cloneValue(desc.value); 10928 } 10929 10930 return result; 10931 } 10932 10933 if (!this._defer) {
10934 this._listeners.forEach(function (listener) { 10935 listener.call(this, { 10936 data: obj 10937 }); 10938 }, this); 10939 10940 return; 10941 } 10942 10943 var cloned = new WeakMap(); 10944 var e = { 10945 data: cloneValue(obj) 10946 }; 10947 10948 this._deferred.then(function () { 10949 _this5._listeners.forEach(function (listener) { 10950 listener.call(this, e); 10951 }, _this5); 10952 }); 10953 } 10954 }, { 10955 key: "addEventListener", 10956 value: function addEventListener(name, listener) { 10957 this._listeners.push(listener); 10958 } 10959 }, { 10960 key: "removeEventListener", 10961 value: function removeEventListener(name, listener) { 10962 var i = this._listeners.indexOf(listener); 10963 10964 this._listeners.splice(i, 1); 10965 } 10966 }, { 10967 key: "terminate", 10968 value: function terminate() { 10969 this._listeners = []; 10970 } 10971 }]); 10972 10973 return LoopbackPort; 10974}(); 10975 10976exports.LoopbackPort = LoopbackPort; 10977 10978var PDFWorker = function PDFWorkerClosure() { 10979 var pdfWorkerPorts = new WeakMap(); 10980 var nextFakeWorkerId = 0; 10981 var fakeWorkerFilesLoadedCapability; 10982 10983 function _getWorkerSrc() { 10984 if (_worker_options.GlobalWorkerOptions.workerSrc) { 10985 return _worker_options.GlobalWorkerOptions.workerSrc; 10986 } 10987 10988 if (typeof fallbackWorkerSrc !== 'undefined') { 10989 return fallbackWorkerSrc; 10990 } 10991 10992 throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); 10993 } 10994 10995 function getMainThreadWorkerMessageHandler() { 10996 try { 10997 if (typeof window !== 'undefined') { 10998 return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; 10999 } 11000 } catch (ex) {} 11001 11002 return null; 11003 } 11004 11005 function setupFakeWorkerGlobal() { 11006 if (fakeWorkerFilesLoadedCapability) { 11007 return fakeWorkerFilesLoadedCapability.promise; 11008 } 11009 11010 fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); 11011 var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); 11012 11013 if (mainWorkerMessageHandler) { 11014 fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); 11015 return fakeWorkerFilesLoadedCapability.promise; 11016 } 11017 11018 var loader = fakeWorkerFilesLoader || function () { 11019 return (0, _dom_utils.loadScript)(_getWorkerSrc()).then(function () { 11020 return window.pdfjsWorker.WorkerMessageHandler; 11021 }); 11022 }; 11023 11024 loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); 11025 return fakeWorkerFilesLoadedCapability.promise; 11026 } 11027 11028 function createCDNWrapper(url) { 11029 var wrapper = 'importScripts(\'' + url + '\');'; 11030 return _util.URL.createObjectURL(new Blob([wrapper])); 11031 } 11032 11033 var PDFWorker = 11034 /*#__PURE__*/ 11035 function () { 11036 function PDFWorker() { 11037 var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 11038 _ref6$name = _ref6.name, 11039 name = _ref6$name === void 0 ? null : _ref6$name, 11040 _ref6$port = _ref6.port, 11041 port = _ref6$port === void 0 ? null : _ref6$port, 11042 _ref6$postMessageTran = _ref6.postMessageTransfers, 11043 postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran, 11044 _ref6$verbosity = _ref6.verbosity, 11045 verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity; 11046 11047 _classCallCheck(this, PDFWorker); 11048 11049 if (port && pdfWorkerPorts.has(port)) { 11050 throw new Error('Cannot use more than one PDFWorker per port'); 11051 } 11052 11053 this.name = name; 11054 this.destroyed = false; 11055 this.postMessageTransfers = postMessageTransfers !== false; 11056 this.verbosity = verbosity; 11057 this._readyCapability = (0, _util.createPromiseCapability)(); 11058 this._port = null; 11059 this._webWorker = null; 11060 this._messageHandler = null; 11061 11062 if (port) { 11063 pdfWorkerPorts.set(port, this); 11064 11065 this._initializeFromPort(port); 11066 11067 return; 11068 } 11069 11070 this._initialize(); 11071 } 11072 11073 _createClass(PDFWorker, [{ 11074 key: "_initializeFromPort", 11075 value: function _initializeFromPort(port) { 11076 this._port = port; 11077 this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); 11078 11079 this._messageHandler.on('ready', function () {}); 11080 11081 this._readyCapability.resolve(); 11082 } 11083 }, { 11084 key: "_initialize", 11085 value: function _initialize() { 11086 var _this6 = this; 11087 11088 if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { 11089 var workerSrc = _getWorkerSrc(); 11090 11091 try { 11092 if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { 11093 workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); 11094 } 11095 11096 var worker = new Worker(workerSrc); 11097 var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); 11098 11099 var terminateEarly = function terminateEarly() { 11100 worker.removeEventListener('error', onWorkerError); 11101 messageHandler.destroy(); 11102 worker.terminate(); 11103 11104 if (_this6.destroyed) { 11105 _this6._readyCapability.reject(new Error('Worker was destroyed')); 11106 } else { 11107 _this6._setupFakeWorker(); 11108 } 11109 }; 11110 11111 var onWorkerError = function onWorkerError() { 11112 if (!_this6._webWorker) { 11113 terminateEarly(); 11114 } 11115 }; 11116 11117 worker.addEventListener('error', onWorkerError); 11118 messageHandler.on('test', function (data) { 11119 worker.removeEventListener('error', onWorkerError); 11120 11121 if (_this6.destroyed) { 11122 terminateEarly(); 11123 return; 11124 } 11125 11126 if (data && data.supportTypedArray) { 11127 _this6._messageHandler = messageHandler; 11128 _this6._port = worker; 11129 _this6._webWorker = worker; 11130 11131 if (!data.supportTransfers) { 11132 _this6.postMessageTransfers = false; 11133 } 11134 11135 _this6._readyCapability.resolve(); 11136 11137 messageHandler.send('configure', { 11138 verbosity: _this6.verbosity 11139 }); 11140 } else { 11141 _this6._setupFakeWorker(); 11142 11143 messageHandler.destroy(); 11144 worker.terminate(); 11145 } 11146 }); 11147 messageHandler.on('ready', function (data) { 11148 worker.removeEventListener('error', onWorkerError); 11149 11150 if (_this6.destroyed) { 11151 terminateEarly(); 11152 return; 11153 } 11154 11155 try { 11156 sendTest(); 11157 } catch (e) { 11158 _this6._setupFakeWorker(); 11159 } 11160 }); 11161 11162 var sendTest = function sendTest() { 11163 var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]); 11164 11165 try { 11166 messageHandler.send('test', testObj, [testObj.buffer]); 11167 } catch (ex) { 11168 (0, _util.info)('Cannot use postMessage transfers'); 11169 testObj[0] = 0; 11170 messageHandler.send('test', testObj); 11171 } 11172 }; 11173 11174 sendTest(); 11175 return; 11176 } catch (e) { 11177 (0, _util.info)('The worker has been disabled.'); 11178 } 11179 } 11180 11181 this._setupFakeWorker(); 11182 } 11183 }, { 11184 key: "_setupFakeWorker", 11185 value: function _setupFakeWorker() { 11186 var _this7 = this; 11187 11188 if (!isWorkerDisabled) { 11189 (0, _util.warn)('Setting up fake worker.'); 11190 isWorkerDisabled = true; 11191 } 11192 11193 setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { 11194 if (_this7.destroyed) { 11195 _this7._readyCapability.reject(new Error('Worker was destroyed')); 11196 11197 return; 11198 } 11199 11200 var port = new LoopbackPort(); 11201 _this7._port = port; 11202 var id = 'fake' + nextFakeWorkerId++; 11203 var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); 11204 WorkerMessageHandler.setup(workerHandler, port); 11205 var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); 11206 _this7._messageHandler = messageHandler; 11207 11208 _this7._readyCapability.resolve(); 11209 }).catch(function (reason) { 11210 _this7._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); 11211 }); 11212 } 11213 }, {
11214 key: "destroy", 11215 value: function destroy() { 11216 this.destroyed = true; 11217 11218 if (this._webWorker) { 11219 this._webWorker.terminate(); 11220 11221 this._webWorker = null; 11222 } 11223 11224 pdfWorkerPorts.delete(this._port); 11225 this._port = null; 11226 11227 if (this._messageHandler) { 11228 this._messageHandler.destroy(); 11229 11230 this._messageHandler = null; 11231 } 11232 } 11233 }, { 11234 key: "promise", 11235 get: function get() { 11236 return this._readyCapability.promise; 11237 } 11238 }, { 11239 key: "port", 11240 get: function get() { 11241 return this._port; 11242 } 11243 }, { 11244 key: "messageHandler", 11245 get: function get() { 11246 return this._messageHandler; 11247 } 11248 }], [{ 11249 key: "fromPort", 11250 value: function fromPort(params) { 11251 if (!params || !params.port) { 11252 throw new Error('PDFWorker.fromPort - invalid method signature.'); 11253 } 11254 11255 if (pdfWorkerPorts.has(params.port)) { 11256 return pdfWorkerPorts.get(params.port); 11257 } 11258 11259 return new PDFWorker(params); 11260 } 11261 }, { 11262 key: "getWorkerSrc", 11263 value: function getWorkerSrc() { 11264 return _getWorkerSrc(); 11265 } 11266 }]); 11267 11268 return PDFWorker; 11269 }(); 11270 11271 return PDFWorker; 11272}(); 11273 11274exports.PDFWorker = PDFWorker; 11275 11276var WorkerTransport = 11277/*#__PURE__*/ 11278function () { 11279 function WorkerTransport(messageHandler, loadingTask, networkStream, params) { 11280 _classCallCheck(this, WorkerTransport); 11281 11282 this.messageHandler = messageHandler; 11283 this.loadingTask = loadingTask; 11284 this.commonObjs = new PDFObjects(); 11285 this.fontLoader = new _font_loader.FontLoader({ 11286 docId: loadingTask.docId, 11287 onUnsupportedFeature: this._onUnsupportedFeature.bind(this) 11288 }); 11289 this._params = params; 11290 this.CMapReaderFactory = new params.CMapReaderFactory({ 11291 baseUrl: params.cMapUrl, 11292 isCompressed: params.cMapPacked 11293 }); 11294 this.destroyed = false; 11295 this.destroyCapability = null; 11296 this._passwordCapability = null; 11297 this._networkStream = networkStream; 11298 this._fullReader = null; 11299 this._lastProgress = null; 11300 this.pageCache = []; 11301 this.pagePromises = []; 11302 this.downloadInfoCapability = (0, _util.createPromiseCapability)(); 11303 this.setupMessageHandler(); 11304 } 11305 11306 _createClass(WorkerTransport, [{ 11307 key: "destroy", 11308 value: function destroy() { 11309 var _this8 = this; 11310 11311 if (this.destroyCapability) { 11312 return this.destroyCapability.promise; 11313 } 11314 11315 this.destroyed = true; 11316 this.destroyCapability = (0, _util.createPromiseCapability)(); 11317 11318 if (this._passwordCapability) { 11319 this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); 11320 } 11321 11322 var waitOn = []; 11323 this.pageCache.forEach(function (page) { 11324 if (page) { 11325 waitOn.push(page._destroy()); 11326 } 11327 }); 11328 this.pageCache = []; 11329 this.pagePromises = []; 11330 var terminated = this.messageHandler.sendWithPromise('Terminate', null); 11331 waitOn.push(terminated); 11332 Promise.all(waitOn).then(function () { 11333 _this8.fontLoader.clear(); 11334 11335 if (_this8._networkStream) { 11336 _this8._networkStream.cancelAllRequests(); 11337 } 11338 11339 if (_this8.messageHandler) { 11340 _this8.messageHandler.destroy(); 11341 11342 _this8.messageHandler = null; 11343 } 11344 11345 _this8.destroyCapability.resolve(); 11346 }, this.destroyCapability.reject); 11347 return this.destroyCapability.promise; 11348 } 11349 }, { 11350 key: "setupMessageHandler", 11351 value: function setupMessageHandler() { 11352 var messageHandler = this.messageHandler, 11353 loadingTask = this.loadingTask; 11354 messageHandler.on('GetReader', function (data, sink) { 11355 var _this9 = this; 11356 11357 (0, _util.assert)(this._networkStream); 11358 this._fullReader = this._networkStream.getFullReader(); 11359 11360 this._fullReader.onProgress = function (evt) { 11361 _this9._lastProgress = { 11362 loaded: evt.loaded, 11363 total: evt.total 11364 }; 11365 }; 11366 11367 sink.onPull = function () { 11368 _this9._fullReader.read().then(function (_ref7) { 11369 var value = _ref7.value, 11370 done = _ref7.done; 11371 11372 if (done) { 11373 sink.close(); 11374 return; 11375 } 11376 11377 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 11378 sink.enqueue(new Uint8Array(value), 1, [value]); 11379 }).catch(function (reason) { 11380 sink.error(reason); 11381 }); 11382 }; 11383 11384 sink.onCancel = function (reason) { 11385 _this9._fullReader.cancel(reason); 11386 }; 11387 }, this); 11388 messageHandler.on('ReaderHeadersReady', function (data) { 11389 var _this10 = this; 11390 11391 var headersCapability = (0, _util.createPromiseCapability)(); 11392 var fullReader = this._fullReader; 11393 fullReader.headersReady.then(function () { 11394 if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { 11395 if (_this10._lastProgress && loadingTask.onProgress) { 11396 loadingTask.onProgress(_this10._lastProgress); 11397 } 11398 11399 fullReader.onProgress = function (evt) { 11400 if (loadingTask.onProgress) { 11401 loadingTask.onProgress({ 11402 loaded: evt.loaded, 11403 total: evt.total 11404 }); 11405 } 11406 }; 11407 } 11408 11409 headersCapability.resolve({ 11410 isStreamingSupported: fullReader.isStreamingSupported, 11411 isRangeSupported: fullReader.isRangeSupported, 11412 contentLength: fullReader.contentLength 11413 }); 11414 }, headersCapability.reject); 11415 return headersCapability.promise; 11416 }, this); 11417 messageHandler.on('GetRangeReader', function (data, sink) { 11418 (0, _util.assert)(this._networkStream); 11419 11420 var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); 11421 11422 sink.onPull = function () { 11423 rangeReader.read().then(function (_ref8) { 11424 var value = _ref8.value, 11425 done = _ref8.done; 11426 11427 if (done) { 11428 sink.close(); 11429 return; 11430 } 11431 11432 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 11433 sink.enqueue(new Uint8Array(value), 1, [value]); 11434 }).catch(function (reason) { 11435 sink.error(reason); 11436 }); 11437 }; 11438 11439 sink.onCancel = function (reason) { 11440 rangeReader.cancel(reason); 11441 }; 11442 }, this); 11443 messageHandler.on('GetDoc', function (_ref9) { 11444 var pdfInfo = _ref9.pdfInfo; 11445 this.numPages = pdfInfo.numPages; 11446 this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask); 11447 11448 loadingTask._capability.resolve(this.pdfDocument); 11449 }, this); 11450 messageHandler.on('PasswordRequest', function (exception) { 11451 var _this11 = this; 11452 11453 this._passwordCapability = (0, _util.createPromiseCapability)(); 11454 11455 if (loadingTask.onPassword) { 11456 var updatePassword = function updatePassword(password) { 11457 _this11._passwordCapability.resolve({ 11458 password: password 11459 }); 11460 }; 11461 11462 try { 11463 loadingTask.onPassword(updatePassword, exception.code); 11464 } catch (ex) { 11465 this._passwordCapability.reject(ex); 11466 } 11467 } else { 11468 this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); 11469 } 11470 11471 return this._passwordCapability.promise; 11472 }, this); 11473 messageHandler.on('PasswordException', function (exception) { 11474 loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); 11475 }, this); 11476 messageHandler.on('InvalidPDF', function (exception) { 11477 loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); 11478 }, this); 11479 messageHandler.on('MissingPDF', function (exception) { 11480 loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); 11481 }, this); 11482 messageHandler.on('UnexpectedResponse', function (exception) { 11483 loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); 11484 }, this); 11485 messageHandler.on('UnknownError', function (exception) { 11486 loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); 11487 }, this); 11488 messageHandler.on('DataLoaded', function (data) { 11489 if (loadingTask.onProgress) { 11490 loadingTask.onProgress({ 11491 loaded: data.length, 11492 total: data.length 11493 }); 11494 } 11495 11496 this.downloadInfoCapability.resolve(data); 11497 }, this); 11498 messageHandler.on('StartRenderPage', function (data) { 11499 if (this.destroyed) { 11500 return; 11501 } 11502 11503 var page = this.pageCache[data.pageIndex]; 11504 11505 page._stats.timeEnd('Page Request'); 11506 11507 page._startRenderPage(data.transparency, data.intent); 11508 }, this); 11509 messageHandler.on('RenderPageChunk', function (data) { 11510 if (this.destroyed) { 11511 return; 11512 } 11513 11514 var page = this.pageCache[data.pageIndex]; 11515 11516 page._renderPageChunk(data.operatorList, data.intent); 11517 }, this); 11518 messageHandler.on('commonobj', function (data) { 11519 var _this12 = this; 11520 11521 if (this.destroyed) { 11522 return; 11523 } 11524 11525 var _data = _slicedToArray(data, 3), 11526 id = _data[0], 11527 type = _data[1], 11528 exportedData = _data[2]; 11529 11530 if (this.commonObjs.has(id)) { 11531 return; 11532 } 11533 11534 switch (type) { 11535 case 'Font': 11536 var params = this._params; 11537 11538 if ('error' in exportedData) { 11539 var exportedError = exportedData.error; 11540 (0, _util.warn)("Error during font loading: ".concat(exportedError)); 11541 this.commonObjs.resolve(id, exportedError); 11542 break; 11543 } 11544 11545 var fontRegistry = null; 11546 11547 if (params.pdfBug && _global_scope.default.FontInspector && _global_scope.default.FontInspector.enabled) { 11548 fontRegistry = { 11549 registerFont: function registerFont(font, url) { 11550 _global_scope.default['FontInspector'].fontAdded(font, url); 11551 } 11552 }; 11553 } 11554 11555 var font = new _font_loader.FontFaceObject(exportedData, { 11556 isEvalSupported: params.isEvalSupported, 11557 disableFontFace: params.disableFontFace, 11558 ignoreErrors: params.ignoreErrors, 11559 onUnsupportedFeature: this._onUnsupportedFeature.bind(this), 11560 fontRegistry: fontRegistry 11561 }); 11562 this.fontLoader.bind(font).then(function () { 11563 _this12.commonObjs.resolve(id, font); 11564 }, function (reason) {
11565 messageHandler.sendWithPromise('FontFallback', { 11566 id: id 11567 }).finally(function () { 11568 _this12.commonObjs.resolve(id, font); 11569 }); 11570 }); 11571 break; 11572 11573 case 'FontPath': 11574 this.commonObjs.resolve(id, exportedData); 11575 break; 11576 11577 default: 11578 throw new Error("Got unknown common object type ".concat(type)); 11579 } 11580 }, this); 11581 messageHandler.on('obj', function (data) { 11582 if (this.destroyed) { 11583 return; 11584 } 11585 11586 var _data2 = _slicedToArray(data, 4), 11587 id = _data2[0], 11588 pageIndex = _data2[1], 11589 type = _data2[2], 11590 imageData = _data2[3]; 11591 11592 var pageProxy = this.pageCache[pageIndex]; 11593 11594 if (pageProxy.objs.has(id)) { 11595 return; 11596 } 11597 11598 switch (type) { 11599 case 'JpegStream': 11600 return new Promise(function (resolve, reject) { 11601 var img = new Image(); 11602 11603 img.onload = function () { 11604 resolve(img); 11605 }; 11606 11607 img.onerror = function () { 11608 reject(new Error('Error during JPEG image loading')); 11609 }; 11610 11611 img.src = imageData; 11612 }).then(function (img) { 11613 pageProxy.objs.resolve(id, img); 11614 }); 11615 11616 case 'Image': 11617 pageProxy.objs.resolve(id, imageData); 11618 var MAX_IMAGE_SIZE_TO_STORE = 8000000; 11619 11620 if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { 11621 pageProxy.cleanupAfterRender = true; 11622 } 11623 11624 break; 11625 11626 default: 11627 throw new Error("Got unknown object type ".concat(type)); 11628 } 11629 }, this); 11630 messageHandler.on('DocProgress', function (data) { 11631 if (this.destroyed) { 11632 return; 11633 } 11634 11635 if (loadingTask.onProgress) { 11636 loadingTask.onProgress({ 11637 loaded: data.loaded, 11638 total: data.total 11639 }); 11640 } 11641 }, this); 11642 messageHandler.on('PageError', function (data) { 11643 if (this.destroyed) { 11644 return; 11645 } 11646 11647 var page = this.pageCache[data.pageNum - 1]; 11648 var intentState = page.intentStates[data.intent]; 11649 11650 if (intentState.displayReadyCapability) { 11651 intentState.displayReadyCapability.reject(data.error); 11652 } else { 11653 throw new Error(data.error); 11654 } 11655 11656 if (intentState.operatorList) { 11657 intentState.operatorList.lastChunk = true; 11658 11659 for (var i = 0; i < intentState.renderTasks.length; i++) { 11660 intentState.renderTasks[i].operatorListChanged(); 11661 } 11662 } 11663 }, this); 11664 messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this); 11665 messageHandler.on('JpegDecode', function (data) { 11666 if (this.destroyed) { 11667 return Promise.reject(new Error('Worker was destroyed')); 11668 } 11669 11670 if (typeof document === 'undefined') { 11671 return Promise.reject(new Error('"document" is not defined.')); 11672 } 11673 11674 var _data3 = _slicedToArray(data, 2), 11675 imageUrl = _data3[0], 11676 components = _data3[1]; 11677 11678 if (components !== 3 && components !== 1) { 11679 return Promise.reject(new Error('Only 3 components or 1 component can be returned')); 11680 } 11681 11682 return new Promise(function (resolve, reject) { 11683 var img = new Image(); 11684 11685 img.onload = function () { 11686 var width = img.width; 11687 var height = img.height; 11688 var size = width * height; 11689 var rgbaLength = size * 4; 11690 var buf = new Uint8ClampedArray(size * components); 11691 var tmpCanvas = document.createElement('canvas'); 11692 tmpCanvas.width = width; 11693 tmpCanvas.height = height; 11694 var tmpCtx = tmpCanvas.getContext('2d'); 11695 tmpCtx.drawImage(img, 0, 0); 11696 var data = tmpCtx.getImageData(0, 0, width, height).data; 11697 11698 if (components === 3) { 11699 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { 11700 buf[j] = data[i]; 11701 buf[j + 1] = data[i + 1];
11702 buf[j + 2] = data[i + 2]; 11703 } 11704 } else if (components === 1) { 11705 for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) { 11706 buf[_j] = data[_i2]; 11707 } 11708 } 11709 11710 resolve({ 11711 data: buf, 11712 width: width, 11713 height: height 11714 }); 11715 }; 11716 11717 img.onerror = function () { 11718 reject(new Error('JpegDecode failed to load image')); 11719 }; 11720 11721 img.src = imageUrl; 11722 }); 11723 }, this); 11724 messageHandler.on('FetchBuiltInCMap', function (data) { 11725 if (this.destroyed) { 11726 return Promise.reject(new Error('Worker was destroyed')); 11727 } 11728 11729 return this.CMapReaderFactory.fetch({ 11730 name: data.name 11731 }); 11732 }, this); 11733 } 11734 }, { 11735 key: "_onUnsupportedFeature", 11736 value: function _onUnsupportedFeature(_ref10) { 11737 var featureId = _ref10.featureId; 11738 11739 if (this.destroyed) { 11740 return; 11741 } 11742 11743 if (this.loadingTask.onUnsupportedFeature) { 11744 this.loadingTask.onUnsupportedFeature(featureId); 11745 } 11746 } 11747 }, { 11748 key: "getData", 11749 value: function getData() { 11750 return this.messageHandler.sendWithPromise('GetData', null); 11751 } 11752 }, { 11753 key: "getPage", 11754 value: function getPage(pageNumber) { 11755 var _this13 = this; 11756 11757 if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) { 11758 return Promise.reject(new Error('Invalid page request')); 11759 } 11760 11761 var pageIndex = pageNumber - 1; 11762 11763 if (pageIndex in this.pagePromises) { 11764 return this.pagePromises[pageIndex]; 11765 } 11766 11767 var promise = this.messageHandler.sendWithPromise('GetPage', { 11768 pageIndex: pageIndex 11769 }).then(function (pageInfo) { 11770 if (_this13.destroyed) { 11771 throw new Error('Transport destroyed'); 11772 } 11773 11774 var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug); 11775 _this13.pageCache[pageIndex] = page; 11776 return page; 11777 }); 11778 this.pagePromises[pageIndex] = promise; 11779 return promise; 11780 } 11781 }, { 11782 key: "getPageIndex", 11783 value: function getPageIndex(ref) { 11784 return this.messageHandler.sendWithPromise('GetPageIndex', { 11785 ref: ref 11786 }).catch(function (reason) { 11787 return Promise.reject(new Error(reason)); 11788 }); 11789 } 11790 }, { 11791 key: "getAnnotations", 11792 value: function getAnnotations(pageIndex, intent) { 11793 return this.messageHandler.sendWithPromise('GetAnnotations', { 11794 pageIndex: pageIndex, 11795 intent: intent 11796 }); 11797 } 11798 }, { 11799 key: "getDestinations", 11800 value: function getDestinations() { 11801 return this.messageHandler.sendWithPromise('GetDestinations', null); 11802 } 11803 }, { 11804 key: "getDestination", 11805 value: function getDestination(id) { 11806 if (typeof id !== 'string') { 11807 return Promise.reject(new Error('Invalid destination request.')); 11808 } 11809 11810 return this.messageHandler.sendWithPromise('GetDestination', { 11811 id: id 11812 }); 11813 } 11814 }, { 11815 key: "getPageLabels", 11816 value: function getPageLabels() { 11817 return this.messageHandler.sendWithPromise('GetPageLabels', null); 11818 } 11819 }, { 11820 key: "getPageMode", 11821 value: function getPageMode() { 11822 return this.messageHandler.sendWithPromise('GetPageMode', null); 11823 } 11824 }, { 11825 key: "getOpenActionDestination", 11826 value: function getOpenActionDestination() { 11827 return this.messageHandler.sendWithPromise('getOpenActionDestination', null); 11828 } 11829 }, { 11830 key: "getAttachments", 11831 value: function getAttachments() { 11832 return this.messageHandler.sendWithPromise('GetAttachments', null); 11833 } 11834 }, { 11835 key: "getJavaScript", 11836 value: function getJavaScript() { 11837 return this.messageHandler.sendWithPromise('GetJavaScript', null); 11838 } 11839 }, { 11840 key: "getOutline", 11841 value: function getOutline() {
11842 return this.messageHandler.sendWithPromise('GetOutline', null); 11843 } 11844 }, { 11845 key: "getPermissions", 11846 value: function getPermissions() { 11847 return this.messageHandler.sendWithPromise('GetPermissions', null); 11848 } 11849 }, { 11850 key: "getMetadata", 11851 value: function getMetadata() { 11852 var _this14 = this; 11853 11854 return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { 11855 return { 11856 info: results[0], 11857 metadata: results[1] ? new _metadata.Metadata(results[1]) : null, 11858 contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null 11859 }; 11860 }); 11861 } 11862 }, { 11863 key: "getStats", 11864 value: function getStats() { 11865 return this.messageHandler.sendWithPromise('GetStats', null); 11866 } 11867 }, { 11868 key: "startCleanup", 11869 value: function startCleanup() { 11870 var _this15 = this; 11871 11872 this.messageHandler.sendWithPromise('Cleanup', null).then(function () { 11873 for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) { 11874 var page = _this15.pageCache[i]; 11875 11876 if (page) { 11877 page.cleanup(); 11878 } 11879 } 11880 11881 _this15.commonObjs.clear(); 11882 11883 _this15.fontLoader.clear(); 11884 }); 11885 } 11886 }, { 11887 key: "loadingParams", 11888 get: function get() { 11889 var params = this._params; 11890 return (0, _util.shadow)(this, 'loadingParams', { 11891 disableAutoFetch: params.disableAutoFetch, 11892 disableCreateObjectURL: params.disableCreateObjectURL, 11893 disableFontFace: params.disableFontFace, 11894 nativeImageDecoderSupport: params.nativeImageDecoderSupport 11895 }); 11896 } 11897 }]); 11898 11899 return WorkerTransport; 11900}(); 11901 11902var PDFObjects = 11903/*#__PURE__*/ 11904function () { 11905 function PDFObjects() { 11906 _classCallCheck(this, PDFObjects); 11907 11908 this._objs = Object.create(null); 11909 } 11910 11911 _createClass(PDFObjects, [{ 11912 key: "_ensureObj", 11913 value: function _ensureObj(objId) { 11914 if (this._objs[objId]) { 11915 return this._objs[objId]; 11916 } 11917 11918 return this._objs[objId] = { 11919 capability: (0, _util.createPromiseCapability)(), 11920 data: null, 11921 resolved: false 11922 }; 11923 } 11924 }, { 11925 key: "get", 11926 value: function get(objId) { 11927 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; 11928 11929 if (callback) { 11930 this._ensureObj(objId).capability.promise.then(callback); 11931 11932 return null; 11933 } 11934 11935 var obj = this._objs[objId]; 11936 11937 if (!obj || !obj.resolved) { 11938 throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); 11939 } 11940 11941 return obj.data; 11942 } 11943 }, { 11944 key: "has", 11945 value: function has(objId) { 11946 var obj = this._objs[objId]; 11947 return obj ? obj.resolved : false; 11948 } 11949 }, { 11950 key: "resolve", 11951 value: function resolve(objId, data) { 11952 var obj = this._ensureObj(objId); 11953 11954 obj.resolved = true; 11955 obj.data = data; 11956 obj.capability.resolve(data); 11957 } 11958 }, { 11959 key: "clear", 11960 value: function clear() { 11961 this._objs = Object.create(null); 11962 } 11963 }]); 11964 11965 return PDFObjects; 11966}(); 11967 11968var RenderTask = 11969/*#__PURE__*/ 11970function () {
11971 function RenderTask(internalRenderTask) { 11972 _classCallCheck(this, RenderTask); 11973 11974 this._internalRenderTask = internalRenderTask; 11975 this.onContinue = null; 11976 } 11977 11978 _createClass(RenderTask, [{ 11979 key: "cancel", 11980 value: function cancel() { 11981 this._internalRenderTask.cancel(); 11982 } 11983 }, { 11984 key: "then", 11985 value: function then(onFulfilled, onRejected) { 11986 (0, _util.deprecated)('RenderTask.then method, use the `promise` getter instead.'); 11987 return this.promise.then.apply(this.promise, arguments); 11988 } 11989 }, { 11990 key: "promise", 11991 get: function get() { 11992 return this._internalRenderTask.capability.promise; 11993 } 11994 }]); 11995 11996 return RenderTask; 11997}(); 11998 11999var InternalRenderTask = function InternalRenderTaskClosure() { 12000 var canvasInRendering = new WeakSet(); 12001 12002 var InternalRenderTask = 12003 /*#__PURE__*/ 12004 function () { 12005 function InternalRenderTask(_ref11) { 12006 var callback = _ref11.callback, 12007 params = _ref11.params, 12008 objs = _ref11.objs, 12009 commonObjs = _ref11.commonObjs, 12010 operatorList = _ref11.operatorList, 12011 pageNumber = _ref11.pageNumber, 12012 canvasFactory = _ref11.canvasFactory, 12013 webGLContext = _ref11.webGLContext, 12014 _ref11$useRequestAnim = _ref11.useRequestAnimationFrame, 12015 useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim, 12016 _ref11$pdfBug = _ref11.pdfBug, 12017 pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug; 12018 12019 _classCallCheck(this, InternalRenderTask); 12020 12021 this.callback = callback; 12022 this.params = params; 12023 this.objs = objs; 12024 this.commonObjs = commonObjs; 12025 this.operatorListIdx = null; 12026 this.operatorList = operatorList; 12027 this.pageNumber = pageNumber; 12028 this.canvasFactory = canvasFactory; 12029 this.webGLContext = webGLContext; 12030 this._pdfBug = pdfBug; 12031 this.running = false; 12032 this.graphicsReadyCallback = null; 12033 this.graphicsReady = false; 12034 this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined'; 12035 this.cancelled = false; 12036 this.capability = (0, _util.createPromiseCapability)(); 12037 this.task = new RenderTask(this); 12038 this._continueBound = this._continue.bind(this); 12039 this._scheduleNextBound = this._scheduleNext.bind(this); 12040 this._nextBound = this._next.bind(this); 12041 this._canvas = params.canvasContext.canvas; 12042 } 12043 12044 _createClass(InternalRenderTask, [{ 12045 key: "initializeGraphics", 12046 value: function initializeGraphics() { 12047 var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 12048 12049 if (this.cancelled) { 12050 return; 12051 } 12052 12053 if (this._canvas) { 12054 if (canvasInRendering.has(this._canvas)) { 12055 throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); 12056 } 12057 12058 canvasInRendering.add(this._canvas); 12059 } 12060 12061 if (this._pdfBug && _global_scope.default.StepperManager && _global_scope.default.StepperManager.enabled) { 12062 this.stepper = _global_scope.default.StepperManager.create(this.pageNumber - 1); 12063 this.stepper.init(this.operatorList); 12064 this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); 12065 } 12066 12067 var _this$params = this.params, 12068 canvasContext = _this$params.canvasContext, 12069 viewport = _this$params.viewport, 12070 transform = _this$params.transform, 12071 imageLayer = _this$params.imageLayer, 12072 background = _this$params.background; 12073 this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer); 12074 this.gfx.beginDrawing({ 12075 transform: transform, 12076 viewport: viewport, 12077 transparency: transparency, 12078 background: background 12079 }); 12080 this.operatorListIdx = 0; 12081 this.graphicsReady = true; 12082 12083 if (this.graphicsReadyCallback) { 12084 this.graphicsReadyCallback(); 12085 } 12086 } 12087 }, { 12088 key: "cancel", 12089 value: function cancel() { 12090 var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; 12091 this.running = false; 12092 this.cancelled = true; 12093 12094 if (this.gfx) { 12095 this.gfx.endDrawing(); 12096 } 12097 12098 if (this._canvas) { 12099 canvasInRendering.delete(this._canvas); 12100 } 12101 12102 this.callback(error || new _dom_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas')); 12103 } 12104 }, { 12105 key: "operatorListChanged", 12106 value: function operatorListChanged() { 12107 if (!this.graphicsReady) { 12108 if (!this.graphicsReadyCallback) { 12109 this.graphicsReadyCallback = this._continueBound; 12110 } 12111 12112 return; 12113 } 12114 12115 if (this.stepper) { 12116 this.stepper.updateOperatorList(this.operatorList); 12117 } 12118 12119 if (this.running) { 12120 return; 12121 } 12122 12123 this._continue(); 12124 } 12125 }, { 12126 key: "_continue", 12127 value: function _continue() { 12128 this.running = true; 12129 12130 if (this.cancelled) { 12131 return; 12132 } 12133 12134 if (this.task.onContinue) { 12135 this.task.onContinue(this._scheduleNextBound); 12136 } else { 12137 this._scheduleNext(); 12138 } 12139 } 12140 }, { 12141 key: "_scheduleNext", 12142 value: function _scheduleNext() { 12143 var _this16 = this; 12144 12145 if (this._useRequestAnimationFrame) { 12146 window.requestAnimationFrame(function () { 12147 _this16._nextBound().catch(_this16.cancel.bind(_this16)); 12148 }); 12149 } else {
12150 Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this)); 12151 } 12152 } 12153 }, { 12154 key: "_next", 12155 value: function () { 12156 var _next2 = _asyncToGenerator( 12157 /*#__PURE__*/ 12158 _regenerator.default.mark(function _callee() { 12159 return _regenerator.default.wrap(function _callee$(_context) { 12160 while (1) { 12161 switch (_context.prev = _context.next) { 12162 case 0: 12163 if (!this.cancelled) { 12164 _context.next = 2; 12165 break; 12166 } 12167 12168 return _context.abrupt("return"); 12169 12170 case 2: 12171 this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); 12172 12173 if (this.operatorListIdx === this.operatorList.argsArray.length) { 12174 this.running = false; 12175 12176 if (this.operatorList.lastChunk) { 12177 this.gfx.endDrawing(); 12178 12179 if (this._canvas) { 12180 canvasInRendering.delete(this._canvas); 12181 } 12182 12183 this.callback(); 12184 } 12185 } 12186 12187 case 4: 12188 case "end": 12189 return _context.stop(); 12190 } 12191 } 12192 }, _callee, this); 12193 })); 12194 12195 function _next() { 12196 return _next2.apply(this, arguments); 12197 } 12198 12199 return _next; 12200 }() 12201 }]); 12202 12203 return InternalRenderTask; 12204 }(); 12205 12206 return InternalRenderTask; 12207}(); 12208 12209var version = '2.1.266'; 12210exports.version = version; 12211var build = '81f5835c'; 12212exports.build = build; 12213 12214/***/ }), 12215/* 147 */ 12216/***/ (function(module, exports, __w_pdfjs_require__) { 12217 12218"use strict"; 12219 12220 12221module.exports = __w_pdfjs_require__(148); 12222 12223/***/ }), 12224/* 148 */ 12225/***/ (function(module, exports, __w_pdfjs_require__) { 12226 12227"use strict"; 12228 12229 12230function _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); } 12231 12232var g = function () { 12233 return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self; 12234}() || Function("return this")(); 12235 12236var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; 12237var oldRuntime = hadRuntime && g.regeneratorRuntime; 12238g.regeneratorRuntime = undefined; 12239module.exports = __w_pdfjs_require__(149); 12240 12241if (hadRuntime) { 12242 g.regeneratorRuntime = oldRuntime; 12243} else { 12244 try { 12245 delete g.regeneratorRuntime; 12246 } catch (e) { 12247 g.regeneratorRuntime = undefined; 12248 } 12249} 12250 12251/***/ }), 12252/* 149 */ 12253/***/ (function(module, exports, __w_pdfjs_require__) { 12254 12255"use strict"; 12256/* WEBPACK VAR INJECTION */(function(module) { 12257 12258function _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); } 12259 12260!function (global) { 12261 "use strict"; 12262 12263 var Op = Object.prototype; 12264 var hasOwn = Op.hasOwnProperty; 12265 var undefined; 12266 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 12267 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 12268 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 12269 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 12270 var inModule = ( false ? undefined : _typeof(module)) === "object"; 12271 var runtime = global.regeneratorRuntime; 12272 12273 if (runtime) { 12274 if (inModule) { 12275 module.exports = runtime; 12276 } 12277 12278 return; 12279 } 12280 12281 runtime = global.regeneratorRuntime = inModule ? module.exports : {}; 12282 12283 function wrap(innerFn, outerFn, self, tryLocsList) { 12284 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 12285 var generator = Object.create(protoGenerator.prototype); 12286 var context = new Context(tryLocsList || []); 12287 generator._invoke = makeInvokeMethod(innerFn, self, context); 12288 return generator; 12289 } 12290 12291 runtime.wrap = wrap; 12292 12293 function tryCatch(fn, obj, arg) { 12294 try { 12295 return { 12296 type: "normal", 12297 arg: fn.call(obj, arg) 12298 }; 12299 } catch (err) { 12300 return { 12301 type: "throw", 12302 arg: err 12303 }; 12304 } 12305 } 12306 12307 var GenStateSuspendedStart = "suspendedStart"; 12308 var GenStateSuspendedYield = "suspendedYield"; 12309 var GenStateExecuting = "executing"; 12310 var GenStateCompleted = "completed"; 12311 var ContinueSentinel = {}; 12312 12313 function Generator() {} 12314 12315 function GeneratorFunction() {} 12316 12317 function GeneratorFunctionPrototype() {} 12318 12319 var IteratorPrototype = {}; 12320 12321 IteratorPrototype[iteratorSymbol] = function () { 12322 return this; 12323 }; 12324 12325 var getProto = Object.getPrototypeOf; 12326 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 12327 12328 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 12329 IteratorPrototype = NativeIteratorPrototype; 12330 } 12331 12332 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); 12333 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 12334 GeneratorFunctionPrototype.constructor = GeneratorFunction; 12335 GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; 12336 12337 function defineIteratorMethods(prototype) { 12338 ["next", "throw", "return"].forEach(function (method) { 12339 prototype[method] = function (arg) { 12340 return this._invoke(method, arg); 12341 }; 12342 });
vendor: 6,147 bytes, lines 12343-12564
12343 } 12344 12345 runtime.isGeneratorFunction = function (genFun) { 12346 var ctor = typeof genFun === "function" && genFun.constructor; 12347 return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; 12348 }; 12349 12350 runtime.mark = function (genFun) { 12351 if (Object.setPrototypeOf) { 12352 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 12353 } else { 12354 genFun.__proto__ = GeneratorFunctionPrototype; 12355 12356 if (!(toStringTagSymbol in genFun)) { 12357 genFun[toStringTagSymbol] = "GeneratorFunction"; 12358 } 12359 } 12360 12361 genFun.prototype = Object.create(Gp); 12362 return genFun; 12363 }; 12364 12365 runtime.awrap = function (arg) { 12366 return { 12367 __await: arg 12368 }; 12369 }; 12370 12371 function AsyncIterator(generator) { 12372 function invoke(method, arg, resolve, reject) { 12373 var record = tryCatch(generator[method], generator, arg); 12374 12375 if (record.type === "throw") { 12376 reject(record.arg); 12377 } else { 12378 var result = record.arg; 12379 var value = result.value; 12380 12381 if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { 12382 return Promise.resolve(value.__await).then(function (value) { 12383 invoke("next", value, resolve, reject); 12384 }, function (err) { 12385 invoke("throw", err, resolve, reject); 12386 }); 12387 } 12388 12389 return Promise.resolve(value).then(function (unwrapped) { 12390 result.value = unwrapped; 12391 resolve(result); 12392 }, function (error) { 12393 return invoke("throw", error, resolve, reject); 12394 }); 12395 } 12396 } 12397 12398 var previousPromise; 12399 12400 function enqueue(method, arg) { 12401 function callInvokeWithMethodAndArg() { 12402 return new Promise(function (resolve, reject) { 12403 invoke(method, arg, resolve, reject); 12404 }); 12405 } 12406 12407 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); 12408 } 12409 12410 this._invoke = enqueue; 12411 } 12412 12413 defineIteratorMethods(AsyncIterator.prototype); 12414 12415 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 12416 return this; 12417 }; 12418 12419 runtime.AsyncIterator = AsyncIterator; 12420 12421 runtime.async = function (innerFn, outerFn, self, tryLocsList) { 12422 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); 12423 return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { 12424 return result.done ? result.value : iter.next(); 12425 }); 12426 }; 12427 12428 function makeInvokeMethod(innerFn, self, context) { 12429 var state = GenStateSuspendedStart; 12430 return function invoke(method, arg) { 12431 if (state === GenStateExecuting) { 12432 throw new Error("Generator is already running"); 12433 } 12434 12435 if (state === GenStateCompleted) { 12436 if (method === "throw") { 12437 throw arg; 12438 } 12439 12440 return doneResult(); 12441 } 12442 12443 context.method = method; 12444 context.arg = arg; 12445 12446 while (true) { 12447 var delegate = context.delegate; 12448 12449 if (delegate) { 12450 var delegateResult = maybeInvokeDelegate(delegate, context); 12451 12452 if (delegateResult) { 12453 if (delegateResult === ContinueSentinel) continue; 12454 return delegateResult; 12455 } 12456 } 12457 12458 if (context.method === "next") { 12459 context.sent = context._sent = context.arg; 12460 } else if (context.method === "throw") { 12461 if (state === GenStateSuspendedStart) { 12462 state = GenStateCompleted; 12463 throw context.arg; 12464 } 12465 12466 context.dispatchException(context.arg); 12467 } else if (context.method === "return") { 12468 context.abrupt("return", context.arg); 12469 } 12470 12471 state = GenStateExecuting; 12472 var record = tryCatch(innerFn, self, context); 12473 12474 if (record.type === "normal") { 12475 state = context.done ? GenStateCompleted : GenStateSuspendedYield; 12476 12477 if (record.arg === ContinueSentinel) { 12478 continue; 12479 } 12480 12481 return { 12482 value: record.arg, 12483 done: context.done 12484 }; 12485 } else if (record.type === "throw") { 12486 state = GenStateCompleted; 12487 context.method = "throw"; 12488 context.arg = record.arg; 12489 } 12490 } 12491 }; 12492 } 12493 12494 function maybeInvokeDelegate(delegate, context) { 12495 var method = delegate.iterator[context.method]; 12496 12497 if (method === undefined) { 12498 context.delegate = null; 12499 12500 if (context.method === "throw") { 12501 if (delegate.iterator.return) { 12502 context.method = "return"; 12503 context.arg = undefined; 12504 maybeInvokeDelegate(delegate, context); 12505 12506 if (context.method === "throw") { 12507 return ContinueSentinel; 12508 } 12509 } 12510 12511 context.method = "throw"; 12512 context.arg = new TypeError("The iterator does not provide a 'throw' method"); 12513 } 12514 12515 return ContinueSentinel; 12516 } 12517 12518 var record = tryCatch(method, delegate.iterator, context.arg); 12519 12520 if (record.type === "throw") { 12521 context.method = "throw"; 12522 context.arg = record.arg; 12523 context.delegate = null; 12524 return ContinueSentinel; 12525 } 12526 12527 var info = record.arg; 12528 12529 if (!info) { 12530 context.method = "throw"; 12531 context.arg = new TypeError("iterator result is not an object"); 12532 context.delegate = null; 12533 return ContinueSentinel; 12534 } 12535 12536 if (info.done) { 12537 context[delegate.resultName] = info.value; 12538 context.next = delegate.nextLoc; 12539 12540 if (context.method !== "return") { 12541 context.method = "next"; 12542 context.arg = undefined; 12543 } 12544 } else { 12545 return info; 12546 } 12547 12548 context.delegate = null; 12549 return ContinueSentinel; 12550 } 12551 12552 defineIteratorMethods(Gp); 12553 Gp[toStringTagSymbol] = "Generator"; 12554 12555 Gp[iteratorSymbol] = function () { 12556 return this; 12557 }; 12558 12559 Gp.toString = function () { 12560 return "[object Generator]"; 12561 }; 12562 12563 function pushTryEntry(locs) { 12564 var entry = {
vendor: 4,447 bytes, lines 12565-12750
12565 tryLoc: locs[0] 12566 }; 12567 12568 if (1 in locs) { 12569 entry.catchLoc = locs[1]; 12570 } 12571 12572 if (2 in locs) { 12573 entry.finallyLoc = locs[2]; 12574 entry.afterLoc = locs[3]; 12575 } 12576 12577 this.tryEntries.push(entry); 12578 } 12579 12580 function resetTryEntry(entry) { 12581 var record = entry.completion || {}; 12582 record.type = "normal"; 12583 delete record.arg; 12584 entry.completion = record; 12585 } 12586 12587 function Context(tryLocsList) { 12588 this.tryEntries = [{ 12589 tryLoc: "root" 12590 }]; 12591 tryLocsList.forEach(pushTryEntry, this); 12592 this.reset(true); 12593 } 12594 12595 runtime.keys = function (object) { 12596 var keys = []; 12597 12598 for (var key in object) { 12599 keys.push(key); 12600 } 12601 12602 keys.reverse(); 12603 return function next() { 12604 while (keys.length) { 12605 var key = keys.pop(); 12606 12607 if (key in object) { 12608 next.value = key; 12609 next.done = false; 12610 return next; 12611 } 12612 } 12613 12614 next.done = true; 12615 return next; 12616 }; 12617 }; 12618 12619 function values(iterable) { 12620 if (iterable) { 12621 var iteratorMethod = iterable[iteratorSymbol]; 12622 12623 if (iteratorMethod) { 12624 return iteratorMethod.call(iterable); 12625 } 12626 12627 if (typeof iterable.next === "function") { 12628 return iterable; 12629 } 12630 12631 if (!isNaN(iterable.length)) { 12632 var i = -1, 12633 next = function next() { 12634 while (++i < iterable.length) { 12635 if (hasOwn.call(iterable, i)) { 12636 next.value = iterable[i]; 12637 next.done = false; 12638 return next; 12639 } 12640 } 12641 12642 next.value = undefined; 12643 next.done = true; 12644 return next; 12645 }; 12646 12647 return next.next = next; 12648 } 12649 } 12650 12651 return { 12652 next: doneResult 12653 }; 12654 } 12655 12656 runtime.values = values; 12657 12658 function doneResult() { 12659 return { 12660 value: undefined, 12661 done: true 12662 }; 12663 } 12664 12665 Context.prototype = { 12666 constructor: Context, 12667 reset: function reset(skipTempReset) { 12668 this.prev = 0; 12669 this.next = 0; 12670 this.sent = this._sent = undefined; 12671 this.done = false; 12672 this.delegate = null; 12673 this.method = "next"; 12674 this.arg = undefined; 12675 this.tryEntries.forEach(resetTryEntry); 12676 12677 if (!skipTempReset) { 12678 for (var name in this) { 12679 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { 12680 this[name] = undefined; 12681 } 12682 } 12683 } 12684 }, 12685 stop: function stop() { 12686 this.done = true; 12687 var rootEntry = this.tryEntries[0]; 12688 var rootRecord = rootEntry.completion; 12689 12690 if (rootRecord.type === "throw") { 12691 throw rootRecord.arg; 12692 } 12693 12694 return this.rval; 12695 }, 12696 dispatchException: function dispatchException(exception) { 12697 if (this.done) { 12698 throw exception; 12699 } 12700 12701 var context = this; 12702 12703 function handle(loc, caught) { 12704 record.type = "throw"; 12705 record.arg = exception; 12706 context.next = loc; 12707 12708 if (caught) { 12709 context.method = "next"; 12710 context.arg = undefined; 12711 } 12712 12713 return !!caught; 12714 } 12715 12716 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12717 var entry = this.tryEntries[i]; 12718 var record = entry.completion; 12719 12720 if (entry.tryLoc === "root") { 12721 return handle("end"); 12722 } 12723 12724 if (entry.tryLoc <= this.prev) { 12725 var hasCatch = hasOwn.call(entry, "catchLoc"); 12726 var hasFinally = hasOwn.call(entry, "finallyLoc"); 12727 12728 if (hasCatch && hasFinally) { 12729 if (this.prev < entry.catchLoc) { 12730 return handle(entry.catchLoc, true); 12731 } else if (this.prev < entry.finallyLoc) { 12732 return handle(entry.finallyLoc); 12733 } 12734 } else if (hasCatch) { 12735 if (this.prev < entry.catchLoc) { 12736 return handle(entry.catchLoc, true); 12737 } 12738 } else if (hasFinally) { 12739 if (this.prev < entry.finallyLoc) { 12740 return handle(entry.finallyLoc); 12741 } 12742 } else { 12743 throw new Error("try statement without catch or finally"); 12744 } 12745 } 12746 } 12747 }, 12748 abrupt: function abrupt(type, arg) { 12749 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12750 var entry = this.tryEntries[i];
12751 12752 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { 12753 var finallyEntry = entry; 12754 break; 12755 } 12756 } 12757 12758 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { 12759 finallyEntry = null; 12760 } 12761 12762 var record = finallyEntry ? finallyEntry.completion : {}; 12763 record.type = type; 12764 record.arg = arg; 12765 12766 if (finallyEntry) { 12767 this.method = "next"; 12768 this.next = finallyEntry.finallyLoc; 12769 return ContinueSentinel; 12770 } 12771 12772 return this.complete(record); 12773 }, 12774 complete: function complete(record, afterLoc) { 12775 if (record.type === "throw") { 12776 throw record.arg; 12777 } 12778 12779 if (record.type === "break" || record.type === "continue") { 12780 this.next = record.arg; 12781 } else if (record.type === "return") { 12782 this.rval = this.arg = record.arg; 12783 this.method = "return"; 12784 this.next = "end"; 12785 } else if (record.type === "normal" && afterLoc) { 12786 this.next = afterLoc; 12787 } 12788 12789 return ContinueSentinel; 12790 }, 12791 finish: function finish(finallyLoc) { 12792 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12793 var entry = this.tryEntries[i]; 12794 12795 if (entry.finallyLoc === finallyLoc) { 12796 this.complete(entry.completion, entry.afterLoc); 12797 resetTryEntry(entry); 12798 return ContinueSentinel; 12799 } 12800 } 12801 }, 12802 "catch": function _catch(tryLoc) { 12803 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 12804 var entry = this.tryEntries[i]; 12805 12806 if (entry.tryLoc === tryLoc) { 12807 var record = entry.completion; 12808 12809 if (record.type === "throw") { 12810 var thrown = record.arg; 12811 resetTryEntry(entry); 12812 } 12813 12814 return thrown; 12815 } 12816 } 12817 12818 throw new Error("illegal catch attempt"); 12819 }, 12820 delegateYield: function delegateYield(iterable, resultName, nextLoc) { 12821 this.delegate = { 12822 iterator: values(iterable), 12823 resultName: resultName, 12824 nextLoc: nextLoc 12825 }; 12826 12827 if (this.method === "next") { 12828 this.arg = undefined; 12829 } 12830 12831 return ContinueSentinel; 12832 } 12833 }; 12834}(function () { 12835 return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self; 12836}() || Function("return this")()); 12837/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module))) 12838 12839/***/ }), 12840/* 150 */ 12841/***/ (function(module, exports, __w_pdfjs_require__) { 12842 12843"use strict"; 12844 12845 12846module.exports = function (module) { 12847 if (!module.webpackPolyfill) { 12848 module.deprecate = function () {}; 12849 12850 module.paths = []; 12851 if (!module.children) module.children = []; 12852 Object.defineProperty(module, "loaded", { 12853 enumerable: true, 12854 get: function get() { 12855 return module.l; 12856 } 12857 }); 12858 Object.defineProperty(module, "id", { 12859 enumerable: true, 12860 get: function get() { 12861 return module.i; 12862 } 12863 }); 12864 module.webpackPolyfill = 1; 12865 } 12866 12867 return module; 12868}; 12869 12870/***/ }), 12871/* 151 */ 12872/***/ (function(module, exports, __w_pdfjs_require__) { 12873 12874"use strict"; 12875 12876 12877Object.defineProperty(exports, "__esModule", { 12878 value: true 12879}); 12880exports.addLinkAttributes = addLinkAttributes; 12881exports.getFilenameFromUrl = getFilenameFromUrl; 12882exports.loadScript = loadScript; 12883exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; 12884 12885var _util = __w_pdfjs_require__(1); 12886 12887function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 12888 12889function _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); } } 12890 12891function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 12892 12893var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; 12894exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; 12895var SVG_NS = 'http://www.w3.org/2000/svg'; 12896 12897var DOMCanvasFactory = 12898/*#__PURE__*/ 12899function () { 12900 function DOMCanvasFactory() { 12901 _classCallCheck(this, DOMCanvasFactory); 12902 } 12903 12904 _createClass(DOMCanvasFactory, [{ 12905 key: "create", 12906 value: function create(width, height) { 12907 if (width <= 0 || height <= 0) { 12908 throw new Error('invalid canvas size'); 12909 } 12910 12911 var canvas = document.createElement('canvas'); 12912 var context = canvas.getContext('2d'); 12913 canvas.width = width; 12914 canvas.height = height; 12915 return { 12916 canvas: canvas, 12917 context: context 12918 }; 12919 } 12920 }, { 12921 key: "reset", 12922 value: function reset(canvasAndContext, width, height) { 12923 if (!canvasAndContext.canvas) { 12924 throw new Error('canvas is not specified'); 12925 } 12926 12927 if (width <= 0 || height <= 0) { 12928 throw new Error('invalid canvas size'); 12929 } 12930 12931 canvasAndContext.canvas.width = width; 12932 canvasAndContext.canvas.height = height; 12933 } 12934 }, {
12935 key: "destroy", 12936 value: function destroy(canvasAndContext) { 12937 if (!canvasAndContext.canvas) { 12938 throw new Error('canvas is not specified'); 12939 } 12940 12941 canvasAndContext.canvas.width = 0; 12942 canvasAndContext.canvas.height = 0; 12943 canvasAndContext.canvas = null; 12944 canvasAndContext.context = null; 12945 } 12946 }]); 12947 12948 return DOMCanvasFactory; 12949}(); 12950 12951exports.DOMCanvasFactory = DOMCanvasFactory; 12952 12953var DOMCMapReaderFactory = 12954/*#__PURE__*/ 12955function () { 12956 function DOMCMapReaderFactory(_ref) { 12957 var _ref$baseUrl = _ref.baseUrl, 12958 baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, 12959 _ref$isCompressed = _ref.isCompressed, 12960 isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; 12961 12962 _classCallCheck(this, DOMCMapReaderFactory); 12963 12964 this.baseUrl = baseUrl; 12965 this.isCompressed = isCompressed; 12966 } 12967 12968 _createClass(DOMCMapReaderFactory, [{ 12969 key: "fetch", 12970 value: function fetch(_ref2) { 12971 var _this = this; 12972 12973 var name = _ref2.name; 12974 12975 if (!this.baseUrl) { 12976 return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.')); 12977 } 12978 12979 if (!name) { 12980 return Promise.reject(new Error('CMap name must be specified.')); 12981 } 12982 12983 return new Promise(function (resolve, reject) { 12984 var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : ''); 12985 var request = new XMLHttpRequest(); 12986 request.open('GET', url, true); 12987 12988 if (_this.isCompressed) { 12989 request.responseType = 'arraybuffer'; 12990 } 12991 12992 request.onreadystatechange = function () { 12993 if (request.readyState !== XMLHttpRequest.DONE) { 12994 return; 12995 } 12996 12997 if (request.status === 200 || request.status === 0) { 12998 var data; 12999 13000 if (_this.isCompressed && request.response) { 13001 data = new Uint8Array(request.response); 13002 } else if (!_this.isCompressed && request.responseText) { 13003 data = (0, _util.stringToBytes)(request.responseText); 13004 } 13005 13006 if (data) { 13007 resolve({ 13008 cMapData: data, 13009 compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE 13010 }); 13011 return; 13012 } 13013 } 13014 13015 reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url)); 13016 }; 13017 13018 request.send(null); 13019 }); 13020 } 13021 }]); 13022 13023 return DOMCMapReaderFactory; 13024}(); 13025 13026exports.DOMCMapReaderFactory = DOMCMapReaderFactory; 13027 13028var DOMSVGFactory = 13029/*#__PURE__*/ 13030function () { 13031 function DOMSVGFactory() { 13032 _classCallCheck(this, DOMSVGFactory); 13033 } 13034 13035 _createClass(DOMSVGFactory, [{ 13036 key: "create", 13037 value: function create(width, height) { 13038 (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); 13039 var svg = document.createElementNS(SVG_NS, 'svg:svg'); 13040 svg.setAttribute('version', '1.1'); 13041 svg.setAttribute('width', width + 'px'); 13042 svg.setAttribute('height', height + 'px'); 13043 svg.setAttribute('preserveAspectRatio', 'none'); 13044 svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); 13045 return svg; 13046 } 13047 }, { 13048 key: "createElement", 13049 value: function createElement(type) { 13050 (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); 13051 return document.createElementNS(SVG_NS, type); 13052 } 13053 }]); 13054 13055 return DOMSVGFactory; 13056}(); 13057 13058exports.DOMSVGFactory = DOMSVGFactory; 13059 13060var PageViewport = 13061/*#__PURE__*/ 13062function () { 13063 function PageViewport(_ref3) { 13064 var viewBox = _ref3.viewBox, 13065 scale = _ref3.scale, 13066 rotation = _ref3.rotation, 13067 _ref3$offsetX = _ref3.offsetX, 13068 offsetX = _ref3$offsetX === void 0 ? 0 : _ref3$offsetX, 13069 _ref3$offsetY = _ref3.offsetY, 13070 offsetY = _ref3$offsetY === void 0 ? 0 : _ref3$offsetY, 13071 _ref3$dontFlip = _ref3.dontFlip, 13072 dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip; 13073 13074 _classCallCheck(this, PageViewport); 13075 13076 this.viewBox = viewBox; 13077 this.scale = scale; 13078 this.rotation = rotation; 13079 this.offsetX = offsetX; 13080 this.offsetY = offsetY; 13081 var centerX = (viewBox[2] + viewBox[0]) / 2; 13082 var centerY = (viewBox[3] + viewBox[1]) / 2; 13083 var rotateA, rotateB, rotateC, rotateD; 13084 rotation = rotation % 360; 13085 rotation = rotation < 0 ? rotation + 360 : rotation; 13086 13087 switch (rotation) { 13088 case 180: 13089 rotateA = -1; 13090 rotateB = 0; 13091 rotateC = 0; 13092 rotateD = 1; 13093 break; 13094 13095 case 90: 13096 rotateA = 0; 13097 rotateB = 1; 13098 rotateC = 1; 13099 rotateD = 0; 13100 break; 13101 13102 case 270: 13103 rotateA = 0; 13104 rotateB = -1; 13105 rotateC = -1; 13106 rotateD = 0; 13107 break; 13108 13109 default: 13110 rotateA = 1; 13111 rotateB = 0; 13112 rotateC = 0; 13113 rotateD = -1; 13114 break; 13115 } 13116 13117 if (dontFlip) { 13118 rotateC = -rotateC; 13119 rotateD = -rotateD; 13120 } 13121 13122 var offsetCanvasX, offsetCanvasY; 13123 var width, height; 13124 13125 if (rotateA === 0) { 13126 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; 13127 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; 13128 width = Math.abs(viewBox[3] - viewBox[1]) * scale; 13129 height = Math.abs(viewBox[2] - viewBox[0]) * scale; 13130 } else { 13131 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; 13132 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; 13133 width = Math.abs(viewBox[2] - viewBox[0]) * scale; 13134 height = Math.abs(viewBox[3] - viewBox[1]) * scale; 13135 } 13136 13137 this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; 13138 this.width = width; 13139 this.height = height; 13140 } 13141 13142 _createClass(PageViewport, [{ 13143 key: "clone", 13144 value: function clone() { 13145 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 13146 _ref4$scale = _ref4.scale, 13147 scale = _ref4$scale === void 0 ? this.scale : _ref4$scale, 13148 _ref4$rotation = _ref4.rotation, 13149 rotation = _ref4$rotation === void 0 ? this.rotation : _ref4$rotation, 13150 _ref4$dontFlip = _ref4.dontFlip, 13151 dontFlip = _ref4$dontFlip === void 0 ? false : _ref4$dontFlip; 13152 13153 return new PageViewport({
13154 viewBox: this.viewBox.slice(), 13155 scale: scale, 13156 rotation: rotation, 13157 offsetX: this.offsetX, 13158 offsetY: this.offsetY, 13159 dontFlip: dontFlip 13160 }); 13161 } 13162 }, { 13163 key: "convertToViewportPoint", 13164 value: function convertToViewportPoint(x, y) { 13165 return _util.Util.applyTransform([x, y], this.transform); 13166 } 13167 }, { 13168 key: "convertToViewportRectangle", 13169 value: function convertToViewportRectangle(rect) { 13170 var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform); 13171 13172 var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform); 13173 13174 return [tl[0], tl[1], br[0], br[1]]; 13175 } 13176 }, { 13177 key: "convertToPdfPoint", 13178 value: function convertToPdfPoint(x, y) { 13179 return _util.Util.applyInverseTransform([x, y], this.transform); 13180 } 13181 }]); 13182 13183 return PageViewport; 13184}(); 13185 13186exports.PageViewport = PageViewport; 13187 13188var RenderingCancelledException = function RenderingCancelledException() { 13189 function RenderingCancelledException(msg, type) { 13190 this.message = msg; 13191 this.type = type; 13192 } 13193 13194 RenderingCancelledException.prototype = new Error(); 13195 RenderingCancelledException.prototype.name = 'RenderingCancelledException'; 13196 RenderingCancelledException.constructor = RenderingCancelledException; 13197 return RenderingCancelledException; 13198}(); 13199 13200exports.RenderingCancelledException = RenderingCancelledException; 13201var LinkTarget = { 13202 NONE: 0, 13203 SELF: 1, 13204 BLANK: 2, 13205 PARENT: 3, 13206 TOP: 4 13207}; 13208exports.LinkTarget = LinkTarget; 13209var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; 13210 13211function addLinkAttributes(link) { 13212 var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 13213 url = _ref5.url, 13214 target = _ref5.target, 13215 rel = _ref5.rel; 13216 13217 link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; 13218 13219 if (url) { 13220 var LinkTargetValues = Object.values(LinkTarget); 13221 var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; 13222 link.target = LinkTargetStringMap[targetIndex]; 13223 link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL; 13224 } 13225} 13226 13227function getFilenameFromUrl(url) { 13228 var anchor = url.indexOf('#'); 13229 var query = url.indexOf('?'); 13230 var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); 13231 return url.substring(url.lastIndexOf('/', end) + 1, end); 13232} 13233 13234var StatTimer = 13235/*#__PURE__*/ 13236function () { 13237 function StatTimer() { 13238 var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 13239 13240 _classCallCheck(this, StatTimer); 13241 13242 this.enabled = !!enable; 13243 this.started = Object.create(null); 13244 this.times = []; 13245 } 13246 13247 _createClass(StatTimer, [{ 13248 key: "time", 13249 value: function time(name) { 13250 if (!this.enabled) { 13251 return; 13252 } 13253 13254 if (name in this.started) { 13255 (0, _util.warn)('Timer is already running for ' + name); 13256 } 13257 13258 this.started[name] = Date.now(); 13259 } 13260 }, { 13261 key: "timeEnd", 13262 value: function timeEnd(name) { 13263 if (!this.enabled) { 13264 return; 13265 } 13266 13267 if (!(name in this.started)) { 13268 (0, _util.warn)('Timer has not been started for ' + name); 13269 } 13270 13271 this.times.push({ 13272 'name': name, 13273 'start': this.started[name], 13274 'end': Date.now() 13275 }); 13276 delete this.started[name]; 13277 } 13278 }, { 13279 key: "toString", 13280 value: function toString() { 13281 var times = this.times; 13282 var out = '', 13283 longest = 0; 13284 13285 for (var i = 0, ii = times.length; i < ii; ++i) { 13286 var name = times[i]['name']; 13287 13288 if (name.length > longest) { 13289 longest = name.length; 13290 } 13291 } 13292 13293 for (var _i = 0, _ii = times.length; _i < _ii; ++_i) { 13294 var span = times[_i]; 13295 var duration = span.end - span.start; 13296 out += "".concat(span['name'].padEnd(longest), " ").concat(duration, "ms\n"); 13297 } 13298 13299 return out; 13300 } 13301 }]); 13302 13303 return StatTimer; 13304}();
13305 13306exports.StatTimer = StatTimer; 13307 13308var DummyStatTimer = 13309/*#__PURE__*/ 13310function () { 13311 function DummyStatTimer() { 13312 _classCallCheck(this, DummyStatTimer); 13313 13314 (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); 13315 } 13316 13317 _createClass(DummyStatTimer, null, [{ 13318 key: "time", 13319 value: function time(name) {} 13320 }, { 13321 key: "timeEnd", 13322 value: function timeEnd(name) {} 13323 }, { 13324 key: "toString", 13325 value: function toString() { 13326 return ''; 13327 } 13328 }]); 13329 13330 return DummyStatTimer; 13331}(); 13332 13333exports.DummyStatTimer = DummyStatTimer; 13334 13335function loadScript(src) { 13336 return new Promise(function (resolve, reject) { 13337 var script = document.createElement('script'); 13338 script.src = src; 13339 script.onload = resolve; 13340 13341 script.onerror = function () { 13342 reject(new Error("Cannot load script at: ".concat(script.src))); 13343 }; 13344 13345 (document.head || document.documentElement).appendChild(script); 13346 }); 13347} 13348 13349/***/ }), 13350/* 152 */ 13351/***/ (function(module, exports, __w_pdfjs_require__) { 13352 13353"use strict"; 13354 13355 13356Object.defineProperty(exports, "__esModule", { 13357 value: true 13358}); 13359exports.FontLoader = exports.FontFaceObject = void 0; 13360 13361var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 13362 13363var _util = __w_pdfjs_require__(1); 13364 13365function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 13366 13367function _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); } 13368 13369function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 13370 13371function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 13372 13373function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 13374 13375function _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); } 13376 13377function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 13378 13379function 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); } } 13380 13381function _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); }); }; } 13382 13383function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 13384 13385function _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); } } 13386 13387function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 13388 13389var BaseFontLoader = 13390/*#__PURE__*/ 13391function () { 13392 function BaseFontLoader(_ref) { 13393 var docId = _ref.docId, 13394 onUnsupportedFeature = _ref.onUnsupportedFeature; 13395 13396 _classCallCheck(this, BaseFontLoader); 13397 13398 if (this.constructor === BaseFontLoader) { 13399 (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); 13400 } 13401 13402 this.docId = docId; 13403 this._onUnsupportedFeature = onUnsupportedFeature; 13404 this.nativeFontFaces = []; 13405 this.styleElement = null; 13406 } 13407 13408 _createClass(BaseFontLoader, [{ 13409 key: "addNativeFontFace", 13410 value: function addNativeFontFace(nativeFontFace) { 13411 this.nativeFontFaces.push(nativeFontFace); 13412 document.fonts.add(nativeFontFace); 13413 } 13414 }, { 13415 key: "insertRule", 13416 value: function insertRule(rule) { 13417 var styleElement = this.styleElement; 13418 13419 if (!styleElement) { 13420 styleElement = this.styleElement = document.createElement('style'); 13421 styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); 13422 document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); 13423 } 13424 13425 var styleSheet = styleElement.sheet; 13426 styleSheet.insertRule(rule, styleSheet.cssRules.length); 13427 } 13428 }, { 13429 key: "clear", 13430 value: function clear() {
13431 this.nativeFontFaces.forEach(function (nativeFontFace) { 13432 document.fonts.delete(nativeFontFace); 13433 }); 13434 this.nativeFontFaces.length = 0; 13435 13436 if (this.styleElement) { 13437 this.styleElement.remove(); 13438 this.styleElement = null; 13439 } 13440 } 13441 }, { 13442 key: "bind", 13443 value: function () { 13444 var _bind = _asyncToGenerator( 13445 /*#__PURE__*/ 13446 _regenerator.default.mark(function _callee(font) { 13447 var _this = this; 13448 13449 var nativeFontFace, rule; 13450 return _regenerator.default.wrap(function _callee$(_context) { 13451 while (1) { 13452 switch (_context.prev = _context.next) { 13453 case 0: 13454 if (!(font.attached || font.missingFile)) { 13455 _context.next = 2; 13456 break; 13457 } 13458 13459 return _context.abrupt("return"); 13460 13461 case 2: 13462 font.attached = true; 13463 13464 if (!this.isFontLoadingAPISupported) { 13465 _context.next = 19; 13466 break; 13467 } 13468 13469 nativeFontFace = font.createNativeFontFace(); 13470 13471 if (!nativeFontFace) { 13472 _context.next = 18; 13473 break; 13474 } 13475 13476 this.addNativeFontFace(nativeFontFace); 13477 _context.prev = 7; 13478 _context.next = 10; 13479 return nativeFontFace.loaded; 13480 13481 case 10: 13482 _context.next = 18; 13483 break; 13484 13485 case 12: 13486 _context.prev = 12; 13487 _context.t0 = _context["catch"](7); 13488 13489 this._onUnsupportedFeature({ 13490 featureId: _util.UNSUPPORTED_FEATURES.font 13491 }); 13492 13493 (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); 13494 font.disableFontFace = true; 13495 throw _context.t0; 13496 13497 case 18: 13498 return _context.abrupt("return"); 13499 13500 case 19: 13501 rule = font.createFontFaceRule(); 13502 13503 if (!rule) { 13504 _context.next = 25; 13505 break; 13506 } 13507 13508 this.insertRule(rule); 13509 13510 if (!this.isSyncFontLoadingSupported) { 13511 _context.next = 24; 13512 break; 13513 } 13514 13515 return _context.abrupt("return"); 13516 13517 case 24: 13518 return _context.abrupt("return", new Promise(function (resolve) { 13519 var request = _this._queueLoadingCallback(resolve); 13520 13521 _this._prepareFontLoadEvent([rule], [font], request); 13522 })); 13523 13524 case 25: 13525 case "end": 13526 return _context.stop(); 13527 } 13528 } 13529 }, _callee, this, [[7, 12]]); 13530 })); 13531 13532 function bind(_x) { 13533 return _bind.apply(this, arguments); 13534 } 13535 13536 return bind; 13537 }() 13538 }, { 13539 key: "_queueLoadingCallback", 13540 value: function _queueLoadingCallback(callback) { 13541 (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.'); 13542 } 13543 }, { 13544 key: "_prepareFontLoadEvent", 13545 value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { 13546 (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); 13547 } 13548 }, { 13549 key: "isFontLoadingAPISupported", 13550 get: function get() { 13551 (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); 13552 } 13553 }, { 13554 key: "isSyncFontLoadingSupported", 13555 get: function get() { 13556 (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); 13557 } 13558 }, { 13559 key: "_loadTestFont", 13560 get: function get() { 13561 (0, _util.unreachable)('Abstract method `_loadTestFont`.'); 13562 } 13563 }]); 13564 13565 return BaseFontLoader; 13566}(); 13567 13568var FontLoader; 13569exports.FontLoader = FontLoader; 13570{ 13571 exports.FontLoader = FontLoader = 13572 /*#__PURE__*/ 13573 function (_BaseFontLoader) { 13574 _inherits(GenericFontLoader, _BaseFontLoader); 13575 13576 function GenericFontLoader(docId) { 13577 var _this2; 13578 13579 _classCallCheck(this, GenericFontLoader); 13580 13581 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId)); 13582 _this2.loadingContext = { 13583 requests: [], 13584 nextRequestId: 0 13585 }; 13586 _this2.loadTestFontId = 0; 13587 return _this2; 13588 } 13589 13590 _createClass(GenericFontLoader, [{ 13591 key: "_queueLoadingCallback", 13592 value: function _queueLoadingCallback(callback) { 13593 function completeRequest() { 13594 (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); 13595 request.done = true; 13596 13597 while (context.requests.length > 0 && context.requests[0].done) { 13598 var otherRequest = context.requests.shift(); 13599 setTimeout(otherRequest.callback, 0); 13600 } 13601 } 13602 13603 var context = this.loadingContext; 13604 var request = { 13605 id: "pdfjs-font-loading-".concat(context.nextRequestId++), 13606 done: false, 13607 complete: completeRequest, 13608 callback: callback 13609 }; 13610 context.requests.push(request); 13611 return request; 13612 } 13613 }, { 13614 key: "_prepareFontLoadEvent", 13615 value: function _prepareFontLoadEvent(rules, fonts, request) { 13616 function int32(data, offset) { 13617 return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; 13618 } 13619 13620 function spliceString(s, offset, remove, insert) { 13621 var chunk1 = s.substring(0, offset); 13622 var chunk2 = s.substring(offset + remove); 13623 return chunk1 + insert + chunk2; 13624 } 13625 13626 var i, ii; 13627 var canvas = document.createElement('canvas'); 13628 canvas.width = 1; 13629 canvas.height = 1; 13630 var ctx = canvas.getContext('2d'); 13631 var called = 0; 13632 13633 function isFontReady(name, callback) { 13634 called++; 13635 13636 if (called > 30) { 13637 (0, _util.warn)('Load test font never loaded.'); 13638 callback(); 13639 return; 13640 } 13641 13642 ctx.font = '30px ' + name; 13643 ctx.fillText('.', 0, 20); 13644 var imageData = ctx.getImageData(0, 0, 1, 1); 13645 13646 if (imageData.data[3] > 0) { 13647 callback(); 13648 return; 13649 } 13650 13651 setTimeout(isFontReady.bind(null, name, callback)); 13652 } 13653 13654 var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++); 13655 var data = this._loadTestFont; 13656 var COMMENT_OFFSET = 976;
13657 data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); 13658 var CFF_CHECKSUM_OFFSET = 16; 13659 var XXXX_VALUE = 0x58585858; 13660 var checksum = int32(data, CFF_CHECKSUM_OFFSET); 13661 13662 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { 13663 checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; 13664 } 13665 13666 if (i < loadTestFontId.length) { 13667 checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; 13668 } 13669 13670 data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); 13671 var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); 13672 var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}"); 13673 this.insertRule(rule); 13674 var names = []; 13675 13676 for (i = 0, ii = fonts.length; i < ii; i++) { 13677 names.push(fonts[i].loadedName); 13678 } 13679 13680 names.push(loadTestFontId); 13681 var div = document.createElement('div'); 13682 div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); 13683 13684 for (i = 0, ii = names.length; i < ii; ++i) { 13685 var span = document.createElement('span'); 13686 span.textContent = 'Hi'; 13687 span.style.fontFamily = names[i]; 13688 div.appendChild(span); 13689 } 13690 13691 document.body.appendChild(div); 13692 isFontReady(loadTestFontId, function () { 13693 document.body.removeChild(div); 13694 request.complete(); 13695 }); 13696 } 13697 }, { 13698 key: "isFontLoadingAPISupported", 13699 get: function get() { 13700 var supported = typeof document !== 'undefined' && !!document.fonts; 13701 13702 if (supported && typeof navigator !== 'undefined') { 13703 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 13704 13705 if (m && m[1] < 63) { 13706 supported = false; 13707 } 13708 } 13709 13710 return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); 13711 } 13712 }, { 13713 key: "isSyncFontLoadingSupported", 13714 get: function get() { 13715 var supported = false; 13716 13717 if (typeof navigator === 'undefined') { 13718 supported = true; 13719 } else { 13720 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 13721 13722 if (m && m[1] >= 14) { 13723 supported = true; 13724 } 13725 } 13726 13727 return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); 13728 } 13729 }, { 13730 key: "_loadTestFont", 13731 get: function get() { 13732 var getLoadTestFont = function getLoadTestFont() { 13733 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=='); 13734 }; 13735 13736 return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); 13737 } 13738 }]); 13739 13740 return GenericFontLoader; 13741 }(BaseFontLoader); 13742} 13743var IsEvalSupportedCached = { 13744 get value() { 13745 return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); 13746 } 13747 13748}; 13749 13750var FontFaceObject = 13751/*#__PURE__*/ 13752function () { 13753 function FontFaceObject(translatedData, _ref2) { 13754 var _ref2$isEvalSupported = _ref2.isEvalSupported, 13755 isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, 13756 _ref2$disableFontFace = _ref2.disableFontFace, 13757 disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, 13758 _ref2$ignoreErrors = _ref2.ignoreErrors, 13759 ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, 13760 _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature, 13761 onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe, 13762 _ref2$fontRegistry = _ref2.fontRegistry, 13763 fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; 13764 13765 _classCallCheck(this, FontFaceObject); 13766 13767 this.compiledGlyphs = Object.create(null); 13768 13769 for (var i in translatedData) { 13770 this[i] = translatedData[i]; 13771 } 13772 13773 this.isEvalSupported = isEvalSupported !== false; 13774 this.disableFontFace = disableFontFace === true; 13775 this.ignoreErrors = ignoreErrors === true; 13776 this._onUnsupportedFeature = onUnsupportedFeature; 13777 this.fontRegistry = fontRegistry; 13778 } 13779 13780 _createClass(FontFaceObject, [{ 13781 key: "createNativeFontFace", 13782 value: function createNativeFontFace() { 13783 if (!this.data || this.disableFontFace) { 13784 return null; 13785 } 13786 13787 var nativeFontFace = new FontFace(this.loadedName, this.data, {}); 13788 13789 if (this.fontRegistry) { 13790 this.fontRegistry.registerFont(this); 13791 } 13792 13793 return nativeFontFace; 13794 } 13795 }, { 13796 key: "createFontFaceRule", 13797 value: function createFontFaceRule() { 13798 if (!this.data || this.disableFontFace) { 13799 return null; 13800 } 13801 13802 var data = (0, _util.bytesToString)(new Uint8Array(this.data)); 13803 var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); 13804 var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); 13805 13806 if (this.fontRegistry) { 13807 this.fontRegistry.registerFont(this, url); 13808 } 13809 13810 return rule; 13811 } 13812 }, { 13813 key: "getPathGenerator", 13814 value: function getPathGenerator(objs, character) { 13815 if (this.compiledGlyphs[character] !== undefined) { 13816 return this.compiledGlyphs[character]; 13817 } 13818 13819 var cmds, current; 13820
13821 try { 13822 cmds = objs.get(this.loadedName + '_path_' + character); 13823 } catch (ex) { 13824 if (!this.ignoreErrors) { 13825 throw ex; 13826 } 13827 13828 if (this._onUnsupportedFeature) { 13829 this._onUnsupportedFeature({ 13830 featureId: _util.UNSUPPORTED_FEATURES.font 13831 }); 13832 } 13833 13834 (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); 13835 return this.compiledGlyphs[character] = function (c, size) {}; 13836 } 13837 13838 if (this.isEvalSupported && IsEvalSupportedCached.value) { 13839 var args, 13840 js = ''; 13841 13842 for (var i = 0, ii = cmds.length; i < ii; i++) { 13843 current = cmds[i]; 13844 13845 if (current.args !== undefined) { 13846 args = current.args.join(','); 13847 } else { 13848 args = ''; 13849 } 13850 13851 js += 'c.' + current.cmd + '(' + args + ');\n'; 13852 } 13853 13854 return this.compiledGlyphs[character] = new Function('c', 'size', js); 13855 } 13856 13857 return this.compiledGlyphs[character] = function (c, size) { 13858 for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { 13859 current = cmds[_i]; 13860 13861 if (current.cmd === 'scale') { 13862 current.args = [size, -size]; 13863 } 13864 13865 c[current.cmd].apply(c, current.args); 13866 } 13867 }; 13868 } 13869 }]); 13870 13871 return FontFaceObject; 13872}(); 13873 13874exports.FontFaceObject = FontFaceObject; 13875 13876/***/ }), 13877/* 153 */ 13878/***/ (function(module, exports, __w_pdfjs_require__) { 13879 13880"use strict"; 13881 13882 13883var compatibilityParams = Object.create(null); 13884{ 13885 var isNodeJS = __w_pdfjs_require__(4); 13886 13887 var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; 13888 var isIE = /Trident/.test(userAgent); 13889 var isIOSChrome = /CriOS/.test(userAgent); 13890 13891 (function checkOnBlobSupport() { 13892 if (isIE || isIOSChrome) { 13893 compatibilityParams.disableCreateObjectURL = true; 13894 } 13895 })(); 13896 13897 (function checkFontFaceAndImage() { 13898 if (isNodeJS()) { 13899 compatibilityParams.disableFontFace = true; 13900 compatibilityParams.nativeImageDecoderSupport = 'none'; 13901 } 13902 })(); 13903} 13904exports.apiCompatibilityParams = Object.freeze(compatibilityParams); 13905 13906/***/ }), 13907/* 154 */ 13908/***/ (function(module, exports, __w_pdfjs_require__) { 13909 13910"use strict"; 13911 13912 13913Object.defineProperty(exports, "__esModule", { 13914 value: true 13915}); 13916exports.CanvasGraphics = void 0; 13917 13918var _util = __w_pdfjs_require__(1); 13919 13920var _pattern_helper = __w_pdfjs_require__(155); 13921 13922var MIN_FONT_SIZE = 16; 13923var MAX_FONT_SIZE = 100; 13924var MAX_GROUP_SIZE = 4096; 13925var MIN_WIDTH_FACTOR = 0.65; 13926var COMPILE_TYPE3_GLYPHS = true; 13927var MAX_SIZE_TO_COMPILE = 1000; 13928var FULL_CHUNK_HEIGHT = 16; 13929var IsLittleEndianCached = { 13930 get value() { 13931 return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); 13932 } 13933 13934}; 13935 13936function addContextCurrentTransform(ctx) { 13937 if (!ctx.mozCurrentTransform) { 13938 ctx._originalSave = ctx.save; 13939 ctx._originalRestore = ctx.restore; 13940 ctx._originalRotate = ctx.rotate; 13941 ctx._originalScale = ctx.scale; 13942 ctx._originalTranslate = ctx.translate; 13943 ctx._originalTransform = ctx.transform; 13944 ctx._originalSetTransform = ctx.setTransform; 13945 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; 13946 ctx._transformStack = []; 13947 Object.defineProperty(ctx, 'mozCurrentTransform', { 13948 get: function getCurrentTransform() { 13949 return this._transformMatrix; 13950 } 13951 }); 13952 Object.defineProperty(ctx, 'mozCurrentTransformInverse', { 13953 get: function getCurrentTransformInverse() { 13954 var m = this._transformMatrix; 13955 var a = m[0], 13956 b = m[1], 13957 c = m[2], 13958 d = m[3], 13959 e = m[4], 13960 f = m[5]; 13961 var ad_bc = a * d - b * c; 13962 var bc_ad = b * c - a * d; 13963 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]; 13964 } 13965 }); 13966 13967 ctx.save = function ctxSave() { 13968 var old = this._transformMatrix; 13969 13970 this._transformStack.push(old);
vendor: 5,347 bytes, lines 13971-14197
13971 13972 this._transformMatrix = old.slice(0, 6); 13973 13974 this._originalSave(); 13975 }; 13976 13977 ctx.restore = function ctxRestore() { 13978 var prev = this._transformStack.pop(); 13979 13980 if (prev) { 13981 this._transformMatrix = prev; 13982 13983 this._originalRestore(); 13984 } 13985 }; 13986 13987 ctx.translate = function ctxTranslate(x, y) { 13988 var m = this._transformMatrix; 13989 m[4] = m[0] * x + m[2] * y + m[4]; 13990 m[5] = m[1] * x + m[3] * y + m[5]; 13991 13992 this._originalTranslate(x, y); 13993 }; 13994 13995 ctx.scale = function ctxScale(x, y) { 13996 var m = this._transformMatrix; 13997 m[0] = m[0] * x; 13998 m[1] = m[1] * x; 13999 m[2] = m[2] * y; 14000 m[3] = m[3] * y; 14001 14002 this._originalScale(x, y); 14003 }; 14004 14005 ctx.transform = function ctxTransform(a, b, c, d, e, f) { 14006 var m = this._transformMatrix; 14007 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]]; 14008 14009 ctx._originalTransform(a, b, c, d, e, f); 14010 }; 14011 14012 ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { 14013 this._transformMatrix = [a, b, c, d, e, f]; 14014 14015 ctx._originalSetTransform(a, b, c, d, e, f); 14016 }; 14017 14018 ctx.rotate = function ctxRotate(angle) { 14019 var cosValue = Math.cos(angle); 14020 var sinValue = Math.sin(angle); 14021 var m = this._transformMatrix; 14022 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]]; 14023 14024 this._originalRotate(angle); 14025 }; 14026 } 14027} 14028 14029var CachedCanvases = function CachedCanvasesClosure() { 14030 function CachedCanvases(canvasFactory) { 14031 this.canvasFactory = canvasFactory; 14032 this.cache = Object.create(null); 14033 } 14034 14035 CachedCanvases.prototype = { 14036 getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { 14037 var canvasEntry; 14038 14039 if (this.cache[id] !== undefined) { 14040 canvasEntry = this.cache[id]; 14041 this.canvasFactory.reset(canvasEntry, width, height); 14042 canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); 14043 } else { 14044 canvasEntry = this.canvasFactory.create(width, height); 14045 this.cache[id] = canvasEntry; 14046 } 14047 14048 if (trackTransform) { 14049 addContextCurrentTransform(canvasEntry.context); 14050 } 14051 14052 return canvasEntry; 14053 }, 14054 clear: function clear() { 14055 for (var id in this.cache) { 14056 var canvasEntry = this.cache[id]; 14057 this.canvasFactory.destroy(canvasEntry); 14058 delete this.cache[id]; 14059 } 14060 } 14061 }; 14062 return CachedCanvases; 14063}(); 14064 14065function compileType3Glyph(imgData) { 14066 var POINT_TO_PROCESS_LIMIT = 1000; 14067 var width = imgData.width, 14068 height = imgData.height; 14069 var i, 14070 j, 14071 j0, 14072 width1 = width + 1; 14073 var points = new Uint8Array(width1 * (height + 1)); 14074 var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); 14075 var lineSize = width + 7 & ~7, 14076 data0 = imgData.data; 14077 var data = new Uint8Array(lineSize * height), 14078 pos = 0, 14079 ii; 14080 14081 for (i = 0, ii = data0.length; i < ii; i++) { 14082 var mask = 128, 14083 elem = data0[i]; 14084 14085 while (mask > 0) { 14086 data[pos++] = elem & mask ? 0 : 255; 14087 mask >>= 1; 14088 } 14089 } 14090 14091 var count = 0; 14092 pos = 0; 14093 14094 if (data[pos] !== 0) { 14095 points[0] = 1; 14096 ++count; 14097 } 14098 14099 for (j = 1; j < width; j++) { 14100 if (data[pos] !== data[pos + 1]) { 14101 points[j] = data[pos] ? 2 : 1; 14102 ++count; 14103 } 14104 14105 pos++; 14106 } 14107 14108 if (data[pos] !== 0) { 14109 points[j] = 2; 14110 ++count; 14111 } 14112 14113 for (i = 1; i < height; i++) { 14114 pos = i * lineSize; 14115 j0 = i * width1; 14116 14117 if (data[pos - lineSize] !== data[pos]) { 14118 points[j0] = data[pos] ? 1 : 8; 14119 ++count; 14120 } 14121 14122 var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); 14123 14124 for (j = 1; j < width; j++) { 14125 sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); 14126 14127 if (POINT_TYPES[sum]) { 14128 points[j0 + j] = POINT_TYPES[sum]; 14129 ++count; 14130 } 14131 14132 pos++; 14133 } 14134 14135 if (data[pos - lineSize] !== data[pos]) { 14136 points[j0 + j] = data[pos] ? 2 : 4; 14137 ++count; 14138 } 14139 14140 if (count > POINT_TO_PROCESS_LIMIT) { 14141 return null; 14142 } 14143 } 14144 14145 pos = lineSize * (height - 1); 14146 j0 = i * width1; 14147 14148 if (data[pos] !== 0) { 14149 points[j0] = 8; 14150 ++count; 14151 } 14152 14153 for (j = 1; j < width; j++) { 14154 if (data[pos] !== data[pos + 1]) { 14155 points[j0 + j] = data[pos] ? 4 : 8; 14156 ++count; 14157 } 14158 14159 pos++; 14160 } 14161 14162 if (data[pos] !== 0) { 14163 points[j0 + j] = 4; 14164 ++count; 14165 } 14166 14167 if (count > POINT_TO_PROCESS_LIMIT) { 14168 return null; 14169 } 14170 14171 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); 14172 var outlines = []; 14173 14174 for (i = 0; count && i <= height; i++) { 14175 var p = i * width1; 14176 var end = p + width; 14177 14178 while (p < end && !points[p]) { 14179 p++; 14180 } 14181 14182 if (p === end) { 14183 continue; 14184 } 14185 14186 var coords = [p % width1, i]; 14187 var type = points[p], 14188 p0 = p, 14189 pp; 14190 14191 do { 14192 var step = steps[type]; 14193 14194 do { 14195 p += step; 14196 } while (!points[p]); 14197
14198 pp = points[p]; 14199 14200 if (pp !== 5 && pp !== 10) { 14201 type = pp; 14202 points[p] = 0; 14203 } else { 14204 type = pp & 0x33 * type >> 4; 14205 points[p] &= type >> 2 | type << 2; 14206 } 14207 14208 coords.push(p % width1); 14209 coords.push(p / width1 | 0); 14210 --count; 14211 } while (p0 !== p); 14212 14213 outlines.push(coords); 14214 --i; 14215 } 14216 14217 var drawOutline = function drawOutline(c) { 14218 c.save(); 14219 c.scale(1 / width, -1 / height); 14220 c.translate(0, -height); 14221 c.beginPath(); 14222 14223 for (var i = 0, ii = outlines.length; i < ii; i++) { 14224 var o = outlines[i]; 14225 c.moveTo(o[0], o[1]); 14226 14227 for (var j = 2, jj = o.length; j < jj; j += 2) { 14228 c.lineTo(o[j], o[j + 1]); 14229 } 14230 } 14231 14232 c.fill(); 14233 c.beginPath(); 14234 c.restore(); 14235 }; 14236 14237 return drawOutline; 14238} 14239 14240var CanvasExtraState = function CanvasExtraStateClosure() { 14241 function CanvasExtraState() { 14242 this.alphaIsShape = false; 14243 this.fontSize = 0; 14244 this.fontSizeScale = 1; 14245 this.textMatrix = _util.IDENTITY_MATRIX; 14246 this.textMatrixScale = 1; 14247 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 14248 this.leading = 0; 14249 this.x = 0; 14250 this.y = 0; 14251 this.lineX = 0; 14252 this.lineY = 0; 14253 this.charSpacing = 0; 14254 this.wordSpacing = 0; 14255 this.textHScale = 1; 14256 this.textRenderingMode = _util.TextRenderingMode.FILL; 14257 this.textRise = 0; 14258 this.fillColor = '#000000'; 14259 this.strokeColor = '#000000'; 14260 this.patternFill = false; 14261 this.fillAlpha = 1; 14262 this.strokeAlpha = 1; 14263 this.lineWidth = 1; 14264 this.activeSMask = null; 14265 this.resumeSMaskCtx = null; 14266 } 14267 14268 CanvasExtraState.prototype = { 14269 clone: function CanvasExtraState_clone() { 14270 return Object.create(this); 14271 }, 14272 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { 14273 this.x = x; 14274 this.y = y; 14275 } 14276 }; 14277 return CanvasExtraState; 14278}();
14279 14280var CanvasGraphics = function CanvasGraphicsClosure() { 14281 var EXECUTION_TIME = 15; 14282 var EXECUTION_STEPS = 10; 14283 14284 function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { 14285 this.ctx = canvasCtx; 14286 this.current = new CanvasExtraState(); 14287 this.stateStack = []; 14288 this.pendingClip = null; 14289 this.pendingEOFill = false; 14290 this.res = null; 14291 this.xobjs = null; 14292 this.commonObjs = commonObjs; 14293 this.objs = objs; 14294 this.canvasFactory = canvasFactory; 14295 this.webGLContext = webGLContext; 14296 this.imageLayer = imageLayer; 14297 this.groupStack = []; 14298 this.processingType3 = null; 14299 this.baseTransform = null; 14300 this.baseTransformStack = []; 14301 this.groupLevel = 0; 14302 this.smaskStack = []; 14303 this.smaskCounter = 0; 14304 this.tempSMask = null; 14305 this.cachedCanvases = new CachedCanvases(this.canvasFactory); 14306 14307 if (canvasCtx) { 14308 addContextCurrentTransform(canvasCtx); 14309 } 14310 14311 this._cachedGetSinglePixelWidth = null; 14312 } 14313 14314 function putBinaryImageData(ctx, imgData) { 14315 if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { 14316 ctx.putImageData(imgData, 0, 0); 14317 return; 14318 } 14319 14320 var height = imgData.height, 14321 width = imgData.width; 14322 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 14323 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 14324 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 14325 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 14326 var srcPos = 0, 14327 destPos; 14328 var src = imgData.data; 14329 var dest = chunkImgData.data; 14330 var i, j, thisChunkHeight, elemsInThisChunk; 14331 14332 if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { 14333 var srcLength = src.byteLength; 14334 var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); 14335 var dest32DataLength = dest32.length; 14336 var fullSrcDiff = width + 7 >> 3; 14337 var white = 0xFFFFFFFF; 14338 var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; 14339 14340 for (i = 0; i < totalChunks; i++) { 14341 thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 14342 destPos = 0; 14343 14344 for (j = 0; j < thisChunkHeight; j++) { 14345 var srcDiff = srcLength - srcPos; 14346 var k = 0; 14347 var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; 14348 var kEndUnrolled = kEnd & ~7; 14349 var mask = 0; 14350 var srcByte = 0; 14351 14352 for (; k < kEndUnrolled; k += 8) { 14353 srcByte = src[srcPos++]; 14354 dest32[destPos++] = srcByte & 128 ? white : black; 14355 dest32[destPos++] = srcByte & 64 ? white : black; 14356 dest32[destPos++] = srcByte & 32 ? white : black; 14357 dest32[destPos++] = srcByte & 16 ? white : black; 14358 dest32[destPos++] = srcByte & 8 ? white : black; 14359 dest32[destPos++] = srcByte & 4 ? white : black; 14360 dest32[destPos++] = srcByte & 2 ? white : black; 14361 dest32[destPos++] = srcByte & 1 ? white : black; 14362 } 14363 14364 for (; k < kEnd; k++) { 14365 if (mask === 0) { 14366 srcByte = src[srcPos++]; 14367 mask = 128; 14368 } 14369 14370 dest32[destPos++] = srcByte & mask ? white : black; 14371 mask >>= 1; 14372 } 14373 } 14374 14375 while (destPos < dest32DataLength) { 14376 dest32[destPos++] = 0; 14377 } 14378 14379 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 14380 } 14381 } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { 14382 j = 0; 14383 elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; 14384 14385 for (i = 0; i < fullChunks; i++) { 14386 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 14387 srcPos += elemsInThisChunk; 14388 ctx.putImageData(chunkImgData, 0, j); 14389 j += FULL_CHUNK_HEIGHT; 14390 } 14391 14392 if (i < totalChunks) { 14393 elemsInThisChunk = width * partialChunkHeight * 4; 14394 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 14395 ctx.putImageData(chunkImgData, 0, j); 14396 } 14397 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { 14398 thisChunkHeight = FULL_CHUNK_HEIGHT; 14399 elemsInThisChunk = width * thisChunkHeight; 14400 14401 for (i = 0; i < totalChunks; i++) { 14402 if (i >= fullChunks) { 14403 thisChunkHeight = partialChunkHeight; 14404 elemsInThisChunk = width * thisChunkHeight; 14405 } 14406 14407 destPos = 0; 14408
14409 for (j = elemsInThisChunk; j--;) { 14410 dest[destPos++] = src[srcPos++]; 14411 dest[destPos++] = src[srcPos++]; 14412 dest[destPos++] = src[srcPos++]; 14413 dest[destPos++] = 255; 14414 } 14415 14416 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 14417 } 14418 } else { 14419 throw new Error("bad image kind: ".concat(imgData.kind)); 14420 } 14421 } 14422 14423 function putBinaryImageMask(ctx, imgData) { 14424 var height = imgData.height, 14425 width = imgData.width; 14426 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 14427 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 14428 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 14429 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 14430 var srcPos = 0; 14431 var src = imgData.data; 14432 var dest = chunkImgData.data; 14433 14434 for (var i = 0; i < totalChunks; i++) { 14435 var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 14436 var destPos = 3; 14437 14438 for (var j = 0; j < thisChunkHeight; j++) { 14439 var mask = 0; 14440 14441 for (var k = 0; k < width; k++) { 14442 if (!mask) { 14443 var elem = src[srcPos++]; 14444 mask = 128; 14445 } 14446 14447 dest[destPos] = elem & mask ? 0 : 255; 14448 destPos += 4; 14449 mask >>= 1; 14450 } 14451 } 14452 14453 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 14454 } 14455 } 14456 14457 function copyCtxState(sourceCtx, destCtx) { 14458 var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; 14459 14460 for (var i = 0, ii = properties.length; i < ii; i++) { 14461 var property = properties[i]; 14462 14463 if (sourceCtx[property] !== undefined) { 14464 destCtx[property] = sourceCtx[property]; 14465 } 14466 } 14467 14468 if (sourceCtx.setLineDash !== undefined) { 14469 destCtx.setLineDash(sourceCtx.getLineDash()); 14470 destCtx.lineDashOffset = sourceCtx.lineDashOffset; 14471 } 14472 } 14473 14474 function resetCtxToDefault(ctx) { 14475 ctx.strokeStyle = '#000000'; 14476 ctx.fillStyle = '#000000'; 14477 ctx.fillRule = 'nonzero'; 14478 ctx.globalAlpha = 1; 14479 ctx.lineWidth = 1; 14480 ctx.lineCap = 'butt'; 14481 ctx.lineJoin = 'miter'; 14482 ctx.miterLimit = 10; 14483 ctx.globalCompositeOperation = 'source-over'; 14484 ctx.font = '10px sans-serif'; 14485 14486 if (ctx.setLineDash !== undefined) { 14487 ctx.setLineDash([]); 14488 ctx.lineDashOffset = 0; 14489 } 14490 } 14491 14492 function composeSMaskBackdrop(bytes, r0, g0, b0) { 14493 var length = bytes.length; 14494 14495 for (var i = 3; i < length; i += 4) { 14496 var alpha = bytes[i]; 14497 14498 if (alpha === 0) { 14499 bytes[i - 3] = r0; 14500 bytes[i - 2] = g0; 14501 bytes[i - 1] = b0; 14502 } else if (alpha < 255) { 14503 var alpha_ = 255 - alpha; 14504 bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; 14505 bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; 14506 bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; 14507 } 14508 } 14509 } 14510 14511 function composeSMaskAlpha(maskData, layerData, transferMap) { 14512 var length = maskData.length; 14513 var scale = 1 / 255; 14514 14515 for (var i = 3; i < length; i += 4) { 14516 var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; 14517 layerData[i] = layerData[i] * alpha * scale | 0; 14518 } 14519 } 14520 14521 function composeSMaskLuminosity(maskData, layerData, transferMap) { 14522 var length = maskData.length; 14523 14524 for (var i = 3; i < length; i += 4) { 14525 var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; 14526 layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; 14527 } 14528 } 14529 14530 function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { 14531 var hasBackdrop = !!backdrop; 14532 var r0 = hasBackdrop ? backdrop[0] : 0; 14533 var g0 = hasBackdrop ? backdrop[1] : 0; 14534 var b0 = hasBackdrop ? backdrop[2] : 0; 14535 var composeFn; 14536 14537 if (subtype === 'Luminosity') { 14538 composeFn = composeSMaskLuminosity; 14539 } else { 14540 composeFn = composeSMaskAlpha; 14541 } 14542 14543 var PIXELS_TO_PROCESS = 1048576; 14544 var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); 14545 14546 for (var row = 0; row < height; row += chunkSize) { 14547 var chunkHeight = Math.min(chunkSize, height - row); 14548 var maskData = maskCtx.getImageData(0, row, width, chunkHeight); 14549 var layerData = layerCtx.getImageData(0, row, width, chunkHeight); 14550 14551 if (hasBackdrop) { 14552 composeSMaskBackdrop(maskData.data, r0, g0, b0); 14553 } 14554 14555 composeFn(maskData.data, layerData.data, transferMap); 14556 maskCtx.putImageData(layerData, 0, row); 14557 } 14558 } 14559 14560 function composeSMask(ctx, smask, layerCtx, webGLContext) { 14561 var mask = smask.canvas; 14562 var maskCtx = smask.context; 14563 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); 14564 var backdrop = smask.backdrop || null; 14565 14566 if (!smask.transferMap && webGLContext.isEnabled) { 14567 var composed = webGLContext.composeSMask({ 14568 layer: layerCtx.canvas, 14569 mask: mask, 14570 properties: { 14571 subtype: smask.subtype, 14572 backdrop: backdrop 14573 } 14574 }); 14575 ctx.setTransform(1, 0, 0, 1, 0, 0); 14576 ctx.drawImage(composed, smask.offsetX, smask.offsetY); 14577 return; 14578 } 14579 14580 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); 14581 ctx.drawImage(mask, 0, 0); 14582 } 14583 14584 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 14585 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 14586 var NORMAL_CLIP = {}; 14587 var EO_CLIP = {}; 14588 CanvasGraphics.prototype = { 14589 beginDrawing: function beginDrawing(_ref) { 14590 var transform = _ref.transform, 14591 viewport = _ref.viewport, 14592 _ref$transparency = _ref.transparency, 14593 transparency = _ref$transparency === void 0 ? false : _ref$transparency, 14594 _ref$background = _ref.background, 14595 background = _ref$background === void 0 ? null : _ref$background; 14596 var width = this.ctx.canvas.width; 14597 var height = this.ctx.canvas.height; 14598 this.ctx.save(); 14599 this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; 14600 this.ctx.fillRect(0, 0, width, height);
14601 this.ctx.restore(); 14602 14603 if (transparency) { 14604 var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); 14605 this.compositeCtx = this.ctx; 14606 this.transparentCanvas = transparentCanvas.canvas; 14607 this.ctx = transparentCanvas.context; 14608 this.ctx.save(); 14609 this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); 14610 } 14611 14612 this.ctx.save(); 14613 resetCtxToDefault(this.ctx); 14614 14615 if (transform) { 14616 this.ctx.transform.apply(this.ctx, transform); 14617 } 14618 14619 this.ctx.transform.apply(this.ctx, viewport.transform); 14620 this.baseTransform = this.ctx.mozCurrentTransform.slice(); 14621 14622 if (this.imageLayer) { 14623 this.imageLayer.beginLayout(); 14624 } 14625 }, 14626 executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { 14627 var argsArray = operatorList.argsArray; 14628 var fnArray = operatorList.fnArray; 14629 var i = executionStartIdx || 0; 14630 var argsArrayLen = argsArray.length; 14631 14632 if (argsArrayLen === i) { 14633 return i; 14634 } 14635 14636 var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; 14637 var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; 14638 var steps = 0; 14639 var commonObjs = this.commonObjs; 14640 var objs = this.objs; 14641 var fnId; 14642 14643 while (true) { 14644 if (stepper !== undefined && i === stepper.nextBreakPoint) { 14645 stepper.breakIt(i, continueCallback); 14646 return i; 14647 } 14648 14649 fnId = fnArray[i]; 14650 14651 if (fnId !== _util.OPS.dependency) { 14652 this[fnId].apply(this, argsArray[i]); 14653 } else { 14654 var deps = argsArray[i]; 14655 14656 for (var n = 0, nn = deps.length; n < nn; n++) { 14657 var depObjId = deps[n]; 14658 var common = depObjId[0] === 'g' && depObjId[1] === '_'; 14659 var objsPool = common ? commonObjs : objs; 14660 14661 if (!objsPool.has(depObjId)) { 14662 objsPool.get(depObjId, continueCallback); 14663 return i; 14664 } 14665 } 14666 } 14667 14668 i++; 14669 14670 if (i === argsArrayLen) { 14671 return i; 14672 } 14673 14674 if (chunkOperations && ++steps > EXECUTION_STEPS) { 14675 if (Date.now() > endTime) { 14676 continueCallback(); 14677 return i; 14678 } 14679 14680 steps = 0; 14681 } 14682 } 14683 }, 14684 endDrawing: function CanvasGraphics_endDrawing() { 14685 if (this.current.activeSMask !== null) { 14686 this.endSMaskGroup(); 14687 } 14688 14689 this.ctx.restore(); 14690 14691 if (this.transparentCanvas) { 14692 this.ctx = this.compositeCtx; 14693 this.ctx.save(); 14694 this.ctx.setTransform(1, 0, 0, 1, 0, 0); 14695 this.ctx.drawImage(this.transparentCanvas, 0, 0); 14696 this.ctx.restore(); 14697 this.transparentCanvas = null; 14698 } 14699 14700 this.cachedCanvases.clear(); 14701 this.webGLContext.clear(); 14702 14703 if (this.imageLayer) { 14704 this.imageLayer.endLayout(); 14705 } 14706 }, 14707 setLineWidth: function CanvasGraphics_setLineWidth(width) { 14708 this.current.lineWidth = width; 14709 this.ctx.lineWidth = width; 14710 }, 14711 setLineCap: function CanvasGraphics_setLineCap(style) { 14712 this.ctx.lineCap = LINE_CAP_STYLES[style]; 14713 }, 14714 setLineJoin: function CanvasGraphics_setLineJoin(style) { 14715 this.ctx.lineJoin = LINE_JOIN_STYLES[style]; 14716 }, 14717 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { 14718 this.ctx.miterLimit = limit; 14719 }, 14720 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { 14721 var ctx = this.ctx; 14722 14723 if (ctx.setLineDash !== undefined) { 14724 ctx.setLineDash(dashArray); 14725 ctx.lineDashOffset = dashPhase; 14726 } 14727 }, 14728 setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {}, 14729 setFlatness: function CanvasGraphics_setFlatness(flatness) {}, 14730 setGState: function CanvasGraphics_setGState(states) { 14731 for (var i = 0, ii = states.length; i < ii; i++) { 14732 var state = states[i]; 14733 var key = state[0]; 14734 var value = state[1]; 14735 14736 switch (key) { 14737 case 'LW': 14738 this.setLineWidth(value); 14739 break; 14740 14741 case 'LC': 14742 this.setLineCap(value); 14743 break; 14744 14745 case 'LJ': 14746 this.setLineJoin(value); 14747 break; 14748 14749 case 'ML': 14750 this.setMiterLimit(value); 14751 break; 14752 14753 case 'D': 14754 this.setDash(value[0], value[1]); 14755 break; 14756 14757 case 'RI':
vendor: 3,883 bytes, lines 14758-14862
14758 this.setRenderingIntent(value); 14759 break; 14760 14761 case 'FL': 14762 this.setFlatness(value); 14763 break; 14764 14765 case 'Font': 14766 this.setFont(value[0], value[1]); 14767 break; 14768 14769 case 'CA': 14770 this.current.strokeAlpha = state[1]; 14771 break; 14772 14773 case 'ca': 14774 this.current.fillAlpha = state[1]; 14775 this.ctx.globalAlpha = state[1]; 14776 break; 14777 14778 case 'BM': 14779 this.ctx.globalCompositeOperation = value; 14780 break; 14781 14782 case 'SMask': 14783 if (this.current.activeSMask) { 14784 if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { 14785 this.suspendSMaskGroup(); 14786 } else { 14787 this.endSMaskGroup(); 14788 } 14789 } 14790 14791 this.current.activeSMask = value ? this.tempSMask : null; 14792 14793 if (this.current.activeSMask) { 14794 this.beginSMaskGroup(); 14795 } 14796 14797 this.tempSMask = null; 14798 break; 14799 } 14800 } 14801 }, 14802 beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { 14803 var activeSMask = this.current.activeSMask; 14804 var drawnWidth = activeSMask.canvas.width; 14805 var drawnHeight = activeSMask.canvas.height; 14806 var cacheId = 'smaskGroupAt' + this.groupLevel; 14807 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 14808 var currentCtx = this.ctx; 14809 var currentTransform = currentCtx.mozCurrentTransform; 14810 this.ctx.save(); 14811 var groupCtx = scratchCanvas.context; 14812 groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); 14813 groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); 14814 groupCtx.transform.apply(groupCtx, currentTransform); 14815 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; 14816 copyCtxState(currentCtx, groupCtx); 14817 this.ctx = groupCtx; 14818 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 14819 this.groupStack.push(currentCtx); 14820 this.groupLevel++; 14821 }, 14822 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { 14823 var groupCtx = this.ctx; 14824 this.groupLevel--; 14825 this.ctx = this.groupStack.pop(); 14826 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); 14827 this.ctx.restore(); 14828 this.ctx.save(); 14829 copyCtxState(groupCtx, this.ctx); 14830 this.current.resumeSMaskCtx = groupCtx; 14831 14832 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 14833 14834 this.ctx.transform.apply(this.ctx, deltaTransform); 14835 groupCtx.save(); 14836 groupCtx.setTransform(1, 0, 0, 1, 0, 0); 14837 groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); 14838 groupCtx.restore(); 14839 }, 14840 resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { 14841 var groupCtx = this.current.resumeSMaskCtx; 14842 var currentCtx = this.ctx; 14843 this.ctx = groupCtx; 14844 this.groupStack.push(currentCtx); 14845 this.groupLevel++; 14846 }, 14847 endSMaskGroup: function CanvasGraphics_endSMaskGroup() { 14848 var groupCtx = this.ctx; 14849 this.groupLevel--; 14850 this.ctx = this.groupStack.pop(); 14851 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); 14852 this.ctx.restore(); 14853 copyCtxState(groupCtx, this.ctx); 14854 14855 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 14856 14857 this.ctx.transform.apply(this.ctx, deltaTransform); 14858 }, 14859 save: function CanvasGraphics_save() { 14860 this.ctx.save(); 14861 var old = this.current; 14862 this.stateStack.push(old);
14863 this.current = old.clone(); 14864 this.current.resumeSMaskCtx = null; 14865 }, 14866 restore: function CanvasGraphics_restore() { 14867 if (this.current.resumeSMaskCtx) { 14868 this.resumeSMaskGroup(); 14869 } 14870 14871 if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { 14872 this.endSMaskGroup(); 14873 } 14874 14875 if (this.stateStack.length !== 0) { 14876 this.current = this.stateStack.pop(); 14877 this.ctx.restore(); 14878 this.pendingClip = null; 14879 this._cachedGetSinglePixelWidth = null; 14880 } 14881 }, 14882 transform: function CanvasGraphics_transform(a, b, c, d, e, f) { 14883 this.ctx.transform(a, b, c, d, e, f); 14884 this._cachedGetSinglePixelWidth = null; 14885 }, 14886 constructPath: function CanvasGraphics_constructPath(ops, args) { 14887 var ctx = this.ctx; 14888 var current = this.current; 14889 var x = current.x, 14890 y = current.y; 14891 14892 for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { 14893 switch (ops[i] | 0) { 14894 case _util.OPS.rectangle: 14895 x = args[j++]; 14896 y = args[j++]; 14897 var width = args[j++]; 14898 var height = args[j++]; 14899 14900 if (width === 0) { 14901 width = this.getSinglePixelWidth(); 14902 } 14903 14904 if (height === 0) { 14905 height = this.getSinglePixelWidth(); 14906 } 14907 14908 var xw = x + width; 14909 var yh = y + height; 14910 this.ctx.moveTo(x, y); 14911 this.ctx.lineTo(xw, y); 14912 this.ctx.lineTo(xw, yh); 14913 this.ctx.lineTo(x, yh); 14914 this.ctx.lineTo(x, y); 14915 this.ctx.closePath(); 14916 break; 14917 14918 case _util.OPS.moveTo: 14919 x = args[j++]; 14920 y = args[j++]; 14921 ctx.moveTo(x, y); 14922 break; 14923 14924 case _util.OPS.lineTo: 14925 x = args[j++]; 14926 y = args[j++]; 14927 ctx.lineTo(x, y); 14928 break; 14929 14930 case _util.OPS.curveTo: 14931 x = args[j + 4]; 14932 y = args[j + 5]; 14933 ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); 14934 j += 6; 14935 break; 14936 14937 case _util.OPS.curveTo2: 14938 ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); 14939 x = args[j + 2]; 14940 y = args[j + 3]; 14941 j += 4; 14942 break; 14943 14944 case _util.OPS.curveTo3: 14945 x = args[j + 2]; 14946 y = args[j + 3]; 14947 ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); 14948 j += 4; 14949 break; 14950 14951 case _util.OPS.closePath: 14952 ctx.closePath(); 14953 break; 14954 } 14955 } 14956 14957 current.setCurrentPoint(x, y); 14958 }, 14959 closePath: function CanvasGraphics_closePath() { 14960 this.ctx.closePath(); 14961 }, 14962 stroke: function CanvasGraphics_stroke(consumePath) { 14963 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 14964 var ctx = this.ctx; 14965 var strokeColor = this.current.strokeColor; 14966 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); 14967 ctx.globalAlpha = this.current.strokeAlpha; 14968 14969 if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { 14970 ctx.save(); 14971 ctx.strokeStyle = strokeColor.getPattern(ctx, this); 14972 ctx.stroke(); 14973 ctx.restore(); 14974 } else { 14975 ctx.stroke(); 14976 } 14977 14978 if (consumePath) { 14979 this.consumePath(); 14980 } 14981 14982 ctx.globalAlpha = this.current.fillAlpha; 14983 }, 14984 closeStroke: function CanvasGraphics_closeStroke() { 14985 this.closePath(); 14986 this.stroke(); 14987 }, 14988 fill: function CanvasGraphics_fill(consumePath) { 14989 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 14990 var ctx = this.ctx; 14991 var fillColor = this.current.fillColor; 14992 var isPatternFill = this.current.patternFill; 14993 var needRestore = false; 14994 14995 if (isPatternFill) { 14996 ctx.save(); 14997 14998 if (this.baseTransform) { 14999 ctx.setTransform.apply(ctx, this.baseTransform); 15000 } 15001 15002 ctx.fillStyle = fillColor.getPattern(ctx, this); 15003 needRestore = true; 15004 } 15005 15006 if (this.pendingEOFill) { 15007 ctx.fill('evenodd'); 15008 this.pendingEOFill = false; 15009 } else { 15010 ctx.fill(); 15011 } 15012 15013 if (needRestore) {
15014 ctx.restore(); 15015 } 15016 15017 if (consumePath) { 15018 this.consumePath(); 15019 } 15020 }, 15021 eoFill: function CanvasGraphics_eoFill() { 15022 this.pendingEOFill = true; 15023 this.fill(); 15024 }, 15025 fillStroke: function CanvasGraphics_fillStroke() { 15026 this.fill(false); 15027 this.stroke(false); 15028 this.consumePath(); 15029 }, 15030 eoFillStroke: function CanvasGraphics_eoFillStroke() { 15031 this.pendingEOFill = true; 15032 this.fillStroke(); 15033 }, 15034 closeFillStroke: function CanvasGraphics_closeFillStroke() { 15035 this.closePath(); 15036 this.fillStroke(); 15037 }, 15038 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { 15039 this.pendingEOFill = true; 15040 this.closePath(); 15041 this.fillStroke(); 15042 }, 15043 endPath: function CanvasGraphics_endPath() { 15044 this.consumePath(); 15045 }, 15046 clip: function CanvasGraphics_clip() { 15047 this.pendingClip = NORMAL_CLIP; 15048 }, 15049 eoClip: function CanvasGraphics_eoClip() { 15050 this.pendingClip = EO_CLIP; 15051 }, 15052 beginText: function CanvasGraphics_beginText() { 15053 this.current.textMatrix = _util.IDENTITY_MATRIX; 15054 this.current.textMatrixScale = 1; 15055 this.current.x = this.current.lineX = 0; 15056 this.current.y = this.current.lineY = 0; 15057 }, 15058 endText: function CanvasGraphics_endText() { 15059 var paths = this.pendingTextPaths; 15060 var ctx = this.ctx; 15061 15062 if (paths === undefined) { 15063 ctx.beginPath(); 15064 return; 15065 } 15066 15067 ctx.save(); 15068 ctx.beginPath(); 15069 15070 for (var i = 0; i < paths.length; i++) { 15071 var path = paths[i]; 15072 ctx.setTransform.apply(ctx, path.transform); 15073 ctx.translate(path.x, path.y); 15074 path.addToPath(ctx, path.fontSize); 15075 } 15076 15077 ctx.restore(); 15078 ctx.clip(); 15079 ctx.beginPath(); 15080 delete this.pendingTextPaths; 15081 }, 15082 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { 15083 this.current.charSpacing = spacing; 15084 }, 15085 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { 15086 this.current.wordSpacing = spacing; 15087 }, 15088 setHScale: function CanvasGraphics_setHScale(scale) { 15089 this.current.textHScale = scale / 100; 15090 }, 15091 setLeading: function CanvasGraphics_setLeading(leading) { 15092 this.current.leading = -leading; 15093 }, 15094 setFont: function CanvasGraphics_setFont(fontRefName, size) { 15095 var fontObj = this.commonObjs.get(fontRefName); 15096 var current = this.current; 15097 15098 if (!fontObj) { 15099 throw new Error("Can't find font for ".concat(fontRefName)); 15100 } 15101 15102 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 15103 15104 if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { 15105 (0, _util.warn)('Invalid font matrix for font ' + fontRefName); 15106 } 15107 15108 if (size < 0) { 15109 size = -size; 15110 current.fontDirection = -1; 15111 } else { 15112 current.fontDirection = 1; 15113 } 15114 15115 this.current.font = fontObj; 15116 this.current.fontSize = size; 15117 15118 if (fontObj.isType3Font) { 15119 return; 15120 } 15121 15122 var name = fontObj.loadedName || 'sans-serif'; 15123 var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; 15124 var italic = fontObj.italic ? 'italic' : 'normal'; 15125 var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); 15126 var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; 15127 this.current.fontSizeScale = size / browserFontSize; 15128 this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); 15129 }, 15130 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { 15131 this.current.textRenderingMode = mode; 15132 }, 15133 setTextRise: function CanvasGraphics_setTextRise(rise) { 15134 this.current.textRise = rise; 15135 }, 15136 moveText: function CanvasGraphics_moveText(x, y) { 15137 this.current.x = this.current.lineX += x; 15138 this.current.y = this.current.lineY += y; 15139 },
15140 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { 15141 this.setLeading(-y); 15142 this.moveText(x, y); 15143 }, 15144 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { 15145 this.current.textMatrix = [a, b, c, d, e, f]; 15146 this.current.textMatrixScale = Math.sqrt(a * a + b * b); 15147 this.current.x = this.current.lineX = 0; 15148 this.current.y = this.current.lineY = 0; 15149 }, 15150 nextLine: function CanvasGraphics_nextLine() { 15151 this.moveText(0, this.current.leading); 15152 }, 15153 paintChar: function paintChar(character, x, y, patternTransform) { 15154 var ctx = this.ctx; 15155 var current = this.current; 15156 var font = current.font; 15157 var textRenderingMode = current.textRenderingMode; 15158 var fontSize = current.fontSize / current.fontSizeScale; 15159 var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 15160 var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); 15161 var patternFill = current.patternFill && font.data; 15162 var addToPath; 15163 15164 if (font.disableFontFace || isAddToPathSet || patternFill) { 15165 addToPath = font.getPathGenerator(this.commonObjs, character); 15166 } 15167 15168 if (font.disableFontFace || patternFill) { 15169 ctx.save(); 15170 ctx.translate(x, y); 15171 ctx.beginPath(); 15172 addToPath(ctx, fontSize); 15173 15174 if (patternTransform) { 15175 ctx.setTransform.apply(ctx, patternTransform); 15176 } 15177 15178 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15179 ctx.fill(); 15180 } 15181 15182 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15183 ctx.stroke(); 15184 } 15185 15186 ctx.restore(); 15187 } else { 15188 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15189 ctx.fillText(character, x, y); 15190 } 15191 15192 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15193 ctx.strokeText(character, x, y); 15194 } 15195 } 15196 15197 if (isAddToPathSet) { 15198 var paths = this.pendingTextPaths || (this.pendingTextPaths = []); 15199 paths.push({ 15200 transform: ctx.mozCurrentTransform, 15201 x: x, 15202 y: y, 15203 fontSize: fontSize, 15204 addToPath: addToPath 15205 }); 15206 } 15207 }, 15208 15209 get isFontSubpixelAAEnabled() { 15210 var ctx = this.canvasFactory.create(10, 10).context; 15211 ctx.scale(1.5, 1); 15212 ctx.fillText('I', 0, 10); 15213 var data = ctx.getImageData(0, 0, 10, 10).data; 15214 var enabled = false; 15215 15216 for (var i = 3; i < data.length; i += 4) { 15217 if (data[i] > 0 && data[i] < 255) { 15218 enabled = true; 15219 break; 15220 } 15221 } 15222 15223 return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); 15224 }, 15225 15226 showText: function CanvasGraphics_showText(glyphs) { 15227 var current = this.current; 15228 var font = current.font; 15229 15230 if (font.isType3Font) { 15231 return this.showType3Text(glyphs); 15232 } 15233 15234 var fontSize = current.fontSize; 15235 15236 if (fontSize === 0) { 15237 return; 15238 } 15239 15240 var ctx = this.ctx; 15241 var fontSizeScale = current.fontSizeScale; 15242 var charSpacing = current.charSpacing; 15243 var wordSpacing = current.wordSpacing; 15244 var fontDirection = current.fontDirection; 15245 var textHScale = current.textHScale * fontDirection; 15246 var glyphsLength = glyphs.length; 15247 var vertical = font.vertical; 15248 var spacingDir = vertical ? 1 : -1; 15249 var defaultVMetrics = font.defaultVMetrics; 15250 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 15251 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; 15252 ctx.save(); 15253 var patternTransform; 15254 15255 if (current.patternFill) { 15256 ctx.save(); 15257 var pattern = current.fillColor.getPattern(ctx, this); 15258 patternTransform = ctx.mozCurrentTransform;
15259 ctx.restore(); 15260 ctx.fillStyle = pattern; 15261 } 15262 15263 ctx.transform.apply(ctx, current.textMatrix); 15264 ctx.translate(current.x, current.y + current.textRise); 15265 15266 if (fontDirection > 0) { 15267 ctx.scale(textHScale, -1); 15268 } else { 15269 ctx.scale(textHScale, 1); 15270 } 15271 15272 var lineWidth = current.lineWidth; 15273 var scale = current.textMatrixScale; 15274 15275 if (scale === 0 || lineWidth === 0) { 15276 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 15277 15278 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 15279 this._cachedGetSinglePixelWidth = null; 15280 lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; 15281 } 15282 } else { 15283 lineWidth /= scale; 15284 } 15285 15286 if (fontSizeScale !== 1.0) { 15287 ctx.scale(fontSizeScale, fontSizeScale); 15288 lineWidth /= fontSizeScale; 15289 } 15290 15291 ctx.lineWidth = lineWidth; 15292 var x = 0, 15293 i; 15294 15295 for (i = 0; i < glyphsLength; ++i) { 15296 var glyph = glyphs[i]; 15297 15298 if ((0, _util.isNum)(glyph)) { 15299 x += spacingDir * glyph * fontSize / 1000; 15300 continue; 15301 } 15302 15303 var restoreNeeded = false; 15304 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 15305 var character = glyph.fontChar; 15306 var accent = glyph.accent; 15307 var scaledX, scaledY, scaledAccentX, scaledAccentY; 15308 var width = glyph.width; 15309 15310 if (vertical) { 15311 var vmetric, vx, vy; 15312 vmetric = glyph.vmetric || defaultVMetrics; 15313 vx = glyph.vmetric ? vmetric[1] : width * 0.5; 15314 vx = -vx * widthAdvanceScale; 15315 vy = vmetric[2] * widthAdvanceScale; 15316 width = vmetric ? -vmetric[0] : width; 15317 scaledX = vx / fontSizeScale; 15318 scaledY = (x + vy) / fontSizeScale; 15319 } else { 15320 scaledX = x / fontSizeScale; 15321 scaledY = 0; 15322 } 15323 15324 if (font.remeasure && width > 0) { 15325 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; 15326 15327 if (width < measuredWidth && this.isFontSubpixelAAEnabled) { 15328 var characterScaleX = width / measuredWidth; 15329 restoreNeeded = true; 15330 ctx.save(); 15331 ctx.scale(characterScaleX, 1); 15332 scaledX /= characterScaleX; 15333 } else if (width !== measuredWidth) { 15334 scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; 15335 } 15336 } 15337 15338 if (glyph.isInFont || font.missingFile) { 15339 if (simpleFillText && !accent) { 15340 ctx.fillText(character, scaledX, scaledY); 15341 } else { 15342 this.paintChar(character, scaledX, scaledY, patternTransform); 15343 15344 if (accent) { 15345 scaledAccentX = scaledX + accent.offset.x / fontSizeScale; 15346 scaledAccentY = scaledY - accent.offset.y / fontSizeScale; 15347 this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); 15348 } 15349 } 15350 } 15351 15352 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 15353 x += charWidth; 15354 15355 if (restoreNeeded) { 15356 ctx.restore(); 15357 } 15358 } 15359 15360 if (vertical) { 15361 current.y -= x * textHScale; 15362 } else { 15363 current.x += x * textHScale; 15364 } 15365 15366 ctx.restore(); 15367 }, 15368 showType3Text: function CanvasGraphics_showType3Text(glyphs) { 15369 var ctx = this.ctx; 15370 var current = this.current; 15371 var font = current.font; 15372 var fontSize = current.fontSize; 15373 var fontDirection = current.fontDirection; 15374 var spacingDir = font.vertical ? 1 : -1; 15375 var charSpacing = current.charSpacing; 15376 var wordSpacing = current.wordSpacing; 15377 var textHScale = current.textHScale * fontDirection; 15378 var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; 15379 var glyphsLength = glyphs.length; 15380 var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; 15381 var i, glyph, width, spacingLength; 15382 15383 if (isTextInvisible || fontSize === 0) { 15384 return; 15385 } 15386 15387 this._cachedGetSinglePixelWidth = null; 15388 ctx.save(); 15389 ctx.transform.apply(ctx, current.textMatrix); 15390 ctx.translate(current.x, current.y); 15391 ctx.scale(textHScale, fontDirection); 15392 15393 for (i = 0; i < glyphsLength; ++i) { 15394 glyph = glyphs[i]; 15395
15396 if ((0, _util.isNum)(glyph)) { 15397 spacingLength = spacingDir * glyph * fontSize / 1000; 15398 this.ctx.translate(spacingLength, 0); 15399 current.x += spacingLength * textHScale; 15400 continue; 15401 } 15402 15403 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 15404 var operatorList = font.charProcOperatorList[glyph.operatorListId]; 15405 15406 if (!operatorList) { 15407 (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); 15408 continue; 15409 } 15410 15411 this.processingType3 = glyph; 15412 this.save(); 15413 ctx.scale(fontSize, fontSize); 15414 ctx.transform.apply(ctx, fontMatrix); 15415 this.executeOperatorList(operatorList); 15416 this.restore(); 15417 15418 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); 15419 15420 width = transformed[0] * fontSize + spacing; 15421 ctx.translate(width, 0); 15422 current.x += width * textHScale; 15423 } 15424 15425 ctx.restore(); 15426 this.processingType3 = null; 15427 }, 15428 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, 15429 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { 15430 this.ctx.rect(llx, lly, urx - llx, ury - lly); 15431 this.clip(); 15432 this.endPath(); 15433 }, 15434 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { 15435 var _this = this; 15436 15437 var pattern; 15438 15439 if (IR[0] === 'TilingPattern') { 15440 var color = IR[1]; 15441 var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); 15442 var canvasGraphicsFactory = { 15443 createCanvasGraphics: function createCanvasGraphics(ctx) { 15444 return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); 15445 } 15446 }; 15447 pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); 15448 } else { 15449 pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); 15450 } 15451 15452 return pattern; 15453 }, 15454 setStrokeColorN: function CanvasGraphics_setStrokeColorN() { 15455 this.current.strokeColor = this.getColorN_Pattern(arguments); 15456 }, 15457 setFillColorN: function CanvasGraphics_setFillColorN() { 15458 this.current.fillColor = this.getColorN_Pattern(arguments); 15459 this.current.patternFill = true; 15460 }, 15461 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { 15462 var color = _util.Util.makeCssRgb(r, g, b); 15463 15464 this.ctx.strokeStyle = color; 15465 this.current.strokeColor = color; 15466 }, 15467 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { 15468 var color = _util.Util.makeCssRgb(r, g, b); 15469 15470 this.ctx.fillStyle = color; 15471 this.current.fillColor = color; 15472 this.current.patternFill = false; 15473 }, 15474 shadingFill: function CanvasGraphics_shadingFill(patternIR) { 15475 var ctx = this.ctx; 15476 this.save(); 15477 var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); 15478 ctx.fillStyle = pattern.getPattern(ctx, this, true); 15479 var inv = ctx.mozCurrentTransformInverse; 15480 15481 if (inv) { 15482 var canvas = ctx.canvas; 15483 var width = canvas.width; 15484 var height = canvas.height; 15485 15486 var bl = _util.Util.applyTransform([0, 0], inv); 15487 15488 var br = _util.Util.applyTransform([0, height], inv); 15489 15490 var ul = _util.Util.applyTransform([width, 0], inv); 15491 15492 var ur = _util.Util.applyTransform([width, height], inv); 15493 15494 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); 15495 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); 15496 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); 15497 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); 15498 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); 15499 } else { 15500 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); 15501 } 15502 15503 this.restore(); 15504 }, 15505 beginInlineImage: function CanvasGraphics_beginInlineImage() { 15506 (0, _util.unreachable)('Should not call beginInlineImage'); 15507 }, 15508 beginImageData: function CanvasGraphics_beginImageData() { 15509 (0, _util.unreachable)('Should not call beginImageData'); 15510 }, 15511 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { 15512 this.save(); 15513 this.baseTransformStack.push(this.baseTransform); 15514 15515 if (Array.isArray(matrix) && matrix.length === 6) { 15516 this.transform.apply(this, matrix); 15517 } 15518 15519 this.baseTransform = this.ctx.mozCurrentTransform; 15520 15521 if (bbox) { 15522 var width = bbox[2] - bbox[0]; 15523 var height = bbox[3] - bbox[1]; 15524 this.ctx.rect(bbox[0], bbox[1], width, height); 15525 this.clip(); 15526 this.endPath(); 15527 } 15528 }, 15529 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
15530 this.restore(); 15531 this.baseTransform = this.baseTransformStack.pop(); 15532 }, 15533 beginGroup: function CanvasGraphics_beginGroup(group) { 15534 this.save(); 15535 var currentCtx = this.ctx; 15536 15537 if (!group.isolated) { 15538 (0, _util.info)('TODO: Support non-isolated groups.'); 15539 } 15540 15541 if (group.knockout) { 15542 (0, _util.warn)('Knockout groups not supported.'); 15543 } 15544 15545 var currentTransform = currentCtx.mozCurrentTransform; 15546 15547 if (group.matrix) { 15548 currentCtx.transform.apply(currentCtx, group.matrix); 15549 } 15550 15551 if (!group.bbox) { 15552 throw new Error('Bounding box is required.'); 15553 } 15554 15555 var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); 15556 15557 var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; 15558 bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; 15559 var offsetX = Math.floor(bounds[0]); 15560 var offsetY = Math.floor(bounds[1]); 15561 var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); 15562 var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); 15563 var scaleX = 1, 15564 scaleY = 1; 15565 15566 if (drawnWidth > MAX_GROUP_SIZE) { 15567 scaleX = drawnWidth / MAX_GROUP_SIZE; 15568 drawnWidth = MAX_GROUP_SIZE; 15569 } 15570 15571 if (drawnHeight > MAX_GROUP_SIZE) { 15572 scaleY = drawnHeight / MAX_GROUP_SIZE; 15573 drawnHeight = MAX_GROUP_SIZE; 15574 } 15575 15576 var cacheId = 'groupAt' + this.groupLevel; 15577 15578 if (group.smask) { 15579 cacheId += '_smask_' + this.smaskCounter++ % 2; 15580 } 15581 15582 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 15583 var groupCtx = scratchCanvas.context; 15584 groupCtx.scale(1 / scaleX, 1 / scaleY); 15585 groupCtx.translate(-offsetX, -offsetY); 15586 groupCtx.transform.apply(groupCtx, currentTransform); 15587 15588 if (group.smask) { 15589 this.smaskStack.push({ 15590 canvas: scratchCanvas.canvas, 15591 context: groupCtx, 15592 offsetX: offsetX, 15593 offsetY: offsetY, 15594 scaleX: scaleX, 15595 scaleY: scaleY, 15596 subtype: group.smask.subtype, 15597 backdrop: group.smask.backdrop, 15598 transferMap: group.smask.transferMap || null, 15599 startTransformInverse: null 15600 }); 15601 } else { 15602 currentCtx.setTransform(1, 0, 0, 1, 0, 0); 15603 currentCtx.translate(offsetX, offsetY); 15604 currentCtx.scale(scaleX, scaleY); 15605 } 15606 15607 copyCtxState(currentCtx, groupCtx); 15608 this.ctx = groupCtx; 15609 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 15610 this.groupStack.push(currentCtx); 15611 this.groupLevel++; 15612 this.current.activeSMask = null; 15613 }, 15614 endGroup: function CanvasGraphics_endGroup(group) { 15615 this.groupLevel--; 15616 var groupCtx = this.ctx; 15617 this.ctx = this.groupStack.pop(); 15618 15619 if (this.ctx.imageSmoothingEnabled !== undefined) { 15620 this.ctx.imageSmoothingEnabled = false; 15621 } else { 15622 this.ctx.mozImageSmoothingEnabled = false; 15623 } 15624 15625 if (group.smask) { 15626 this.tempSMask = this.smaskStack.pop(); 15627 } else { 15628 this.ctx.drawImage(groupCtx.canvas, 0, 0); 15629 } 15630 15631 this.restore(); 15632 }, 15633 beginAnnotations: function CanvasGraphics_beginAnnotations() { 15634 this.save(); 15635 15636 if (this.baseTransform) { 15637 this.ctx.setTransform.apply(this.ctx, this.baseTransform); 15638 } 15639 }, 15640 endAnnotations: function CanvasGraphics_endAnnotations() { 15641 this.restore(); 15642 }, 15643 beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { 15644 this.save(); 15645 resetCtxToDefault(this.ctx); 15646 this.current = new CanvasExtraState(); 15647 15648 if (Array.isArray(rect) && rect.length === 4) { 15649 var width = rect[2] - rect[0];
vendor: 4,243 bytes, lines 15650-15762
15650 var height = rect[3] - rect[1]; 15651 this.ctx.rect(rect[0], rect[1], width, height); 15652 this.clip(); 15653 this.endPath(); 15654 } 15655 15656 this.transform.apply(this, transform); 15657 this.transform.apply(this, matrix); 15658 }, 15659 endAnnotation: function CanvasGraphics_endAnnotation() { 15660 this.restore(); 15661 }, 15662 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { 15663 var domImage = this.objs.get(objId); 15664 15665 if (!domImage) { 15666 (0, _util.warn)('Dependent image isn\'t ready yet'); 15667 return; 15668 } 15669 15670 this.save(); 15671 var ctx = this.ctx; 15672 ctx.scale(1 / w, -1 / h); 15673 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); 15674 15675 if (this.imageLayer) { 15676 var currentTransform = ctx.mozCurrentTransformInverse; 15677 var position = this.getCanvasPosition(0, 0); 15678 this.imageLayer.appendImage({ 15679 objId: objId, 15680 left: position[0], 15681 top: position[1], 15682 width: w / currentTransform[0], 15683 height: h / currentTransform[3] 15684 }); 15685 } 15686 15687 this.restore(); 15688 }, 15689 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { 15690 var ctx = this.ctx; 15691 var width = img.width, 15692 height = img.height; 15693 var fillColor = this.current.fillColor; 15694 var isPatternFill = this.current.patternFill; 15695 var glyph = this.processingType3; 15696 15697 if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { 15698 if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { 15699 glyph.compiled = compileType3Glyph({ 15700 data: img.data, 15701 width: width, 15702 height: height 15703 }); 15704 } else { 15705 glyph.compiled = null; 15706 } 15707 } 15708 15709 if (glyph && glyph.compiled) { 15710 glyph.compiled(ctx); 15711 return; 15712 } 15713 15714 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 15715 var maskCtx = maskCanvas.context; 15716 maskCtx.save(); 15717 putBinaryImageMask(maskCtx, img); 15718 maskCtx.globalCompositeOperation = 'source-in'; 15719 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 15720 maskCtx.fillRect(0, 0, width, height); 15721 maskCtx.restore(); 15722 this.paintInlineImageXObject(maskCanvas.canvas); 15723 }, 15724 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { 15725 var width = imgData.width; 15726 var height = imgData.height; 15727 var fillColor = this.current.fillColor; 15728 var isPatternFill = this.current.patternFill; 15729 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 15730 var maskCtx = maskCanvas.context; 15731 maskCtx.save(); 15732 putBinaryImageMask(maskCtx, imgData); 15733 maskCtx.globalCompositeOperation = 'source-in'; 15734 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 15735 maskCtx.fillRect(0, 0, width, height); 15736 maskCtx.restore(); 15737 var ctx = this.ctx; 15738 15739 for (var i = 0, ii = positions.length; i < ii; i += 2) { 15740 ctx.save(); 15741 ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); 15742 ctx.scale(1, -1); 15743 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 15744 ctx.restore(); 15745 } 15746 }, 15747 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { 15748 var ctx = this.ctx; 15749 var fillColor = this.current.fillColor; 15750 var isPatternFill = this.current.patternFill; 15751 15752 for (var i = 0, ii = images.length; i < ii; i++) { 15753 var image = images[i]; 15754 var width = image.width, 15755 height = image.height; 15756 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 15757 var maskCtx = maskCanvas.context; 15758 maskCtx.save(); 15759 putBinaryImageMask(maskCtx, image); 15760 maskCtx.globalCompositeOperation = 'source-in'; 15761 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 15762 maskCtx.fillRect(0, 0, width, height);
15763 maskCtx.restore(); 15764 ctx.save(); 15765 ctx.transform.apply(ctx, image.transform); 15766 ctx.scale(1, -1); 15767 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 15768 ctx.restore(); 15769 } 15770 }, 15771 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { 15772 var imgData = this.objs.get(objId); 15773 15774 if (!imgData) { 15775 (0, _util.warn)('Dependent image isn\'t ready yet'); 15776 return; 15777 } 15778 15779 this.paintInlineImageXObject(imgData); 15780 }, 15781 paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { 15782 var imgData = this.objs.get(objId); 15783 15784 if (!imgData) { 15785 (0, _util.warn)('Dependent image isn\'t ready yet'); 15786 return; 15787 } 15788 15789 var width = imgData.width; 15790 var height = imgData.height; 15791 var map = []; 15792 15793 for (var i = 0, ii = positions.length; i < ii; i += 2) { 15794 map.push({ 15795 transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], 15796 x: 0, 15797 y: 0, 15798 w: width, 15799 h: height 15800 }); 15801 } 15802 15803 this.paintInlineImageXObjectGroup(imgData, map); 15804 }, 15805 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { 15806 var width = imgData.width; 15807 var height = imgData.height; 15808 var ctx = this.ctx; 15809 this.save(); 15810 ctx.scale(1 / width, -1 / height); 15811 var currentTransform = ctx.mozCurrentTransformInverse; 15812 var a = currentTransform[0], 15813 b = currentTransform[1]; 15814 var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); 15815 var c = currentTransform[2], 15816 d = currentTransform[3]; 15817 var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); 15818 var imgToPaint, tmpCanvas; 15819 15820 if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { 15821 imgToPaint = imgData; 15822 } else { 15823 tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); 15824 var tmpCtx = tmpCanvas.context; 15825 putBinaryImageData(tmpCtx, imgData); 15826 imgToPaint = tmpCanvas.canvas; 15827 } 15828 15829 var paintWidth = width, 15830 paintHeight = height; 15831 var tmpCanvasId = 'prescale1'; 15832 15833 while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { 15834 var newWidth = paintWidth, 15835 newHeight = paintHeight; 15836 15837 if (widthScale > 2 && paintWidth > 1) { 15838 newWidth = Math.ceil(paintWidth / 2); 15839 widthScale /= paintWidth / newWidth; 15840 } 15841 15842 if (heightScale > 2 && paintHeight > 1) { 15843 newHeight = Math.ceil(paintHeight / 2); 15844 heightScale /= paintHeight / newHeight; 15845 } 15846 15847 tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); 15848 tmpCtx = tmpCanvas.context; 15849 tmpCtx.clearRect(0, 0, newWidth, newHeight); 15850 tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); 15851 imgToPaint = tmpCanvas.canvas; 15852 paintWidth = newWidth; 15853 paintHeight = newHeight; 15854 tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; 15855 } 15856 15857 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); 15858 15859 if (this.imageLayer) { 15860 var position = this.getCanvasPosition(0, -height); 15861 this.imageLayer.appendImage({ 15862 imgData: imgData, 15863 left: position[0], 15864 top: position[1], 15865 width: width / currentTransform[0], 15866 height: height / currentTransform[3] 15867 }); 15868 } 15869 15870 this.restore(); 15871 }, 15872 paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { 15873 var ctx = this.ctx; 15874 var w = imgData.width; 15875 var h = imgData.height; 15876 var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); 15877 var tmpCtx = tmpCanvas.context; 15878 putBinaryImageData(tmpCtx, imgData); 15879 15880 for (var i = 0, ii = map.length; i < ii; i++) { 15881 var entry = map[i];
vendor: 7,770 bytes, lines 15882-16134
15882 ctx.save(); 15883 ctx.transform.apply(ctx, entry.transform); 15884 ctx.scale(1, -1); 15885 ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); 15886 15887 if (this.imageLayer) { 15888 var position = this.getCanvasPosition(entry.x, entry.y); 15889 this.imageLayer.appendImage({ 15890 imgData: imgData, 15891 left: position[0], 15892 top: position[1], 15893 width: w, 15894 height: h 15895 }); 15896 } 15897 15898 ctx.restore(); 15899 } 15900 }, 15901 paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { 15902 this.ctx.fillRect(0, 0, 1, 1); 15903 }, 15904 paintXObject: function CanvasGraphics_paintXObject() { 15905 (0, _util.warn)('Unsupported \'paintXObject\' command.'); 15906 }, 15907 markPoint: function CanvasGraphics_markPoint(tag) {}, 15908 markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, 15909 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, 15910 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, 15911 endMarkedContent: function CanvasGraphics_endMarkedContent() {}, 15912 beginCompat: function CanvasGraphics_beginCompat() {}, 15913 endCompat: function CanvasGraphics_endCompat() {}, 15914 consumePath: function CanvasGraphics_consumePath() { 15915 var ctx = this.ctx; 15916 15917 if (this.pendingClip) { 15918 if (this.pendingClip === EO_CLIP) { 15919 ctx.clip('evenodd'); 15920 } else { 15921 ctx.clip(); 15922 } 15923 15924 this.pendingClip = null; 15925 } 15926 15927 ctx.beginPath(); 15928 }, 15929 getSinglePixelWidth: function getSinglePixelWidth(scale) { 15930 if (this._cachedGetSinglePixelWidth === null) { 15931 var inverse = this.ctx.mozCurrentTransformInverse; 15932 this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); 15933 } 15934 15935 return this._cachedGetSinglePixelWidth; 15936 }, 15937 getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { 15938 var transform = this.ctx.mozCurrentTransform; 15939 return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; 15940 } 15941 }; 15942 15943 for (var op in _util.OPS) { 15944 CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; 15945 } 15946 15947 return CanvasGraphics; 15948}(); 15949 15950exports.CanvasGraphics = CanvasGraphics; 15951 15952/***/ }), 15953/* 155 */ 15954/***/ (function(module, exports, __w_pdfjs_require__) { 15955 15956"use strict"; 15957 15958 15959Object.defineProperty(exports, "__esModule", { 15960 value: true 15961}); 15962exports.getShadingPatternFromIR = getShadingPatternFromIR; 15963exports.TilingPattern = void 0; 15964 15965var _util = __w_pdfjs_require__(1); 15966 15967var ShadingIRs = {}; 15968ShadingIRs.RadialAxial = { 15969 fromIR: function RadialAxial_fromIR(raw) { 15970 var type = raw[1]; 15971 var colorStops = raw[2]; 15972 var p0 = raw[3]; 15973 var p1 = raw[4]; 15974 var r0 = raw[5]; 15975 var r1 = raw[6]; 15976 return { 15977 type: 'Pattern', 15978 getPattern: function RadialAxial_getPattern(ctx) { 15979 var grad; 15980 15981 if (type === 'axial') { 15982 grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); 15983 } else if (type === 'radial') { 15984 grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); 15985 } 15986 15987 for (var i = 0, ii = colorStops.length; i < ii; ++i) { 15988 var c = colorStops[i]; 15989 grad.addColorStop(c[0], c[1]); 15990 } 15991 15992 return grad; 15993 } 15994 }; 15995 } 15996}; 15997 15998var createMeshCanvas = function createMeshCanvasClosure() { 15999 function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { 16000 var coords = context.coords, 16001 colors = context.colors; 16002 var bytes = data.data, 16003 rowSize = data.width * 4; 16004 var tmp; 16005 16006 if (coords[p1 + 1] > coords[p2 + 1]) { 16007 tmp = p1; 16008 p1 = p2; 16009 p2 = tmp; 16010 tmp = c1; 16011 c1 = c2; 16012 c2 = tmp; 16013 } 16014 16015 if (coords[p2 + 1] > coords[p3 + 1]) { 16016 tmp = p2; 16017 p2 = p3; 16018 p3 = tmp; 16019 tmp = c2; 16020 c2 = c3; 16021 c3 = tmp; 16022 } 16023 16024 if (coords[p1 + 1] > coords[p2 + 1]) { 16025 tmp = p1; 16026 p1 = p2; 16027 p2 = tmp; 16028 tmp = c1; 16029 c1 = c2; 16030 c2 = tmp; 16031 } 16032 16033 var x1 = (coords[p1] + context.offsetX) * context.scaleX; 16034 var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; 16035 var x2 = (coords[p2] + context.offsetX) * context.scaleX; 16036 var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; 16037 var x3 = (coords[p3] + context.offsetX) * context.scaleX; 16038 var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; 16039 16040 if (y1 >= y3) { 16041 return; 16042 } 16043 16044 var c1r = colors[c1], 16045 c1g = colors[c1 + 1], 16046 c1b = colors[c1 + 2]; 16047 var c2r = colors[c2], 16048 c2g = colors[c2 + 1], 16049 c2b = colors[c2 + 2]; 16050 var c3r = colors[c3], 16051 c3g = colors[c3 + 1], 16052 c3b = colors[c3 + 2]; 16053 var minY = Math.round(y1), 16054 maxY = Math.round(y3); 16055 var xa, car, cag, cab; 16056 var xb, cbr, cbg, cbb; 16057 var k; 16058 16059 for (var y = minY; y <= maxY; y++) { 16060 if (y < y2) { 16061 k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); 16062 xa = x1 - (x1 - x2) * k; 16063 car = c1r - (c1r - c2r) * k; 16064 cag = c1g - (c1g - c2g) * k; 16065 cab = c1b - (c1b - c2b) * k; 16066 } else { 16067 k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); 16068 xa = x2 - (x2 - x3) * k; 16069 car = c2r - (c2r - c3r) * k; 16070 cag = c2g - (c2g - c3g) * k; 16071 cab = c2b - (c2b - c3b) * k; 16072 } 16073 16074 k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); 16075 xb = x1 - (x1 - x3) * k; 16076 cbr = c1r - (c1r - c3r) * k; 16077 cbg = c1g - (c1g - c3g) * k; 16078 cbb = c1b - (c1b - c3b) * k; 16079 var x1_ = Math.round(Math.min(xa, xb)); 16080 var x2_ = Math.round(Math.max(xa, xb)); 16081 var j = rowSize * y + x1_ * 4; 16082 16083 for (var x = x1_; x <= x2_; x++) { 16084 k = (xa - x) / (xa - xb); 16085 k = k < 0 ? 0 : k > 1 ? 1 : k; 16086 bytes[j++] = car - (car - cbr) * k | 0; 16087 bytes[j++] = cag - (cag - cbg) * k | 0; 16088 bytes[j++] = cab - (cab - cbb) * k | 0; 16089 bytes[j++] = 255; 16090 } 16091 } 16092 } 16093 16094 function drawFigure(data, figure, context) { 16095 var ps = figure.coords; 16096 var cs = figure.colors; 16097 var i, ii; 16098 16099 switch (figure.type) { 16100 case 'lattice': 16101 var verticesPerRow = figure.verticesPerRow; 16102 var rows = Math.floor(ps.length / verticesPerRow) - 1; 16103 var cols = verticesPerRow - 1; 16104 16105 for (i = 0; i < rows; i++) { 16106 var q = i * verticesPerRow; 16107 16108 for (var j = 0; j < cols; j++, q++) { 16109 drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); 16110 drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); 16111 } 16112 } 16113 16114 break; 16115 16116 case 'triangles': 16117 for (i = 0, ii = ps.length; i < ii; i += 3) { 16118 drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); 16119 } 16120 16121 break; 16122 16123 default: 16124 throw new Error('illegal figure'); 16125 } 16126 } 16127 16128 function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { 16129 var EXPECTED_SCALE = 1.1; 16130 var MAX_PATTERN_SIZE = 3000; 16131 var BORDER_SIZE = 2; 16132 var offsetX = Math.floor(bounds[0]); 16133 var offsetY = Math.floor(bounds[1]); 16134 var boundsWidth = Math.ceil(bounds[2]) - offsetX;
16135 var boundsHeight = Math.ceil(bounds[3]) - offsetY; 16136 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 16137 var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 16138 var scaleX = boundsWidth / width; 16139 var scaleY = boundsHeight / height; 16140 var context = { 16141 coords: coords, 16142 colors: colors, 16143 offsetX: -offsetX, 16144 offsetY: -offsetY, 16145 scaleX: 1 / scaleX, 16146 scaleY: 1 / scaleY 16147 }; 16148 var paddedWidth = width + BORDER_SIZE * 2; 16149 var paddedHeight = height + BORDER_SIZE * 2; 16150 var canvas, tmpCanvas, i, ii; 16151 16152 if (webGLContext.isEnabled) { 16153 canvas = webGLContext.drawFigures({ 16154 width: width, 16155 height: height, 16156 backgroundColor: backgroundColor, 16157 figures: figures, 16158 context: context 16159 }); 16160 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 16161 tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); 16162 canvas = tmpCanvas.canvas; 16163 } else { 16164 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 16165 var tmpCtx = tmpCanvas.context; 16166 var data = tmpCtx.createImageData(width, height); 16167 16168 if (backgroundColor) { 16169 var bytes = data.data; 16170 16171 for (i = 0, ii = bytes.length; i < ii; i += 4) { 16172 bytes[i] = backgroundColor[0]; 16173 bytes[i + 1] = backgroundColor[1]; 16174 bytes[i + 2] = backgroundColor[2]; 16175 bytes[i + 3] = 255; 16176 } 16177 } 16178 16179 for (i = 0; i < figures.length; i++) { 16180 drawFigure(data, figures[i], context); 16181 } 16182 16183 tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); 16184 canvas = tmpCanvas.canvas; 16185 } 16186 16187 return { 16188 canvas: canvas, 16189 offsetX: offsetX - BORDER_SIZE * scaleX, 16190 offsetY: offsetY - BORDER_SIZE * scaleY, 16191 scaleX: scaleX, 16192 scaleY: scaleY 16193 }; 16194 } 16195 16196 return createMeshCanvas; 16197}(); 16198 16199ShadingIRs.Mesh = { 16200 fromIR: function Mesh_fromIR(raw) { 16201 var coords = raw[2]; 16202 var colors = raw[3]; 16203 var figures = raw[4]; 16204 var bounds = raw[5]; 16205 var matrix = raw[6]; 16206 var background = raw[8]; 16207 return { 16208 type: 'Pattern', 16209 getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { 16210 var scale; 16211 16212 if (shadingFill) { 16213 scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); 16214 } else { 16215 scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); 16216 16217 if (matrix) { 16218 var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); 16219 16220 scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; 16221 } 16222 } 16223 16224 var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); 16225 16226 if (!shadingFill) { 16227 ctx.setTransform.apply(ctx, owner.baseTransform); 16228 16229 if (matrix) { 16230 ctx.transform.apply(ctx, matrix); 16231 } 16232 } 16233 16234 ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); 16235 ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); 16236 return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); 16237 } 16238 }; 16239 } 16240}; 16241ShadingIRs.Dummy = { 16242 fromIR: function Dummy_fromIR() { 16243 return { 16244 type: 'Pattern', 16245 getPattern: function Dummy_fromIR_getPattern() { 16246 return 'hotpink'; 16247 } 16248 }; 16249 } 16250}; 16251 16252function getShadingPatternFromIR(raw) { 16253 var shadingIR = ShadingIRs[raw[0]]; 16254 16255 if (!shadingIR) { 16256 throw new Error("Unknown IR type: ".concat(raw[0])); 16257 } 16258 16259 return shadingIR.fromIR(raw); 16260} 16261 16262var TilingPattern = function TilingPatternClosure() { 16263 var PaintType = { 16264 COLORED: 1, 16265 UNCOLORED: 2 16266 }; 16267 var MAX_PATTERN_SIZE = 3000; 16268 16269 function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { 16270 this.operatorList = IR[2]; 16271 this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; 16272 this.bbox = IR[4]; 16273 this.xstep = IR[5]; 16274 this.ystep = IR[6]; 16275 this.paintType = IR[7]; 16276 this.tilingType = IR[8]; 16277 this.color = color; 16278 this.canvasGraphicsFactory = canvasGraphicsFactory;
16279 this.baseTransform = baseTransform; 16280 this.type = 'Pattern'; 16281 this.ctx = ctx; 16282 } 16283 16284 TilingPattern.prototype = { 16285 createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { 16286 var operatorList = this.operatorList; 16287 var bbox = this.bbox; 16288 var xstep = this.xstep; 16289 var ystep = this.ystep; 16290 var paintType = this.paintType; 16291 var tilingType = this.tilingType; 16292 var color = this.color; 16293 var canvasGraphicsFactory = this.canvasGraphicsFactory; 16294 (0, _util.info)('TilingType: ' + tilingType); 16295 var x0 = bbox[0], 16296 y0 = bbox[1], 16297 x1 = bbox[2], 16298 y1 = bbox[3]; 16299 var topLeft = [x0, y0]; 16300 var botRight = [x0 + xstep, y0 + ystep]; 16301 var width = botRight[0] - topLeft[0]; 16302 var height = botRight[1] - topLeft[1]; 16303 16304 var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); 16305 16306 var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); 16307 16308 var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; 16309 width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE); 16310 height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE); 16311 var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true); 16312 var tmpCtx = tmpCanvas.context; 16313 var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); 16314 graphics.groupLevel = owner.groupLevel; 16315 this.setFillAndStrokeStyleToContext(graphics, paintType, color); 16316 this.setScale(width, height, xstep, ystep); 16317 this.transformToScale(graphics); 16318 var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]]; 16319 graphics.transform.apply(graphics, tmpTranslate); 16320 this.clipBbox(graphics, bbox, x0, y0, x1, y1); 16321 graphics.executeOperatorList(operatorList); 16322 return tmpCanvas.canvas; 16323 }, 16324 setScale: function TilingPattern_setScale(width, height, xstep, ystep) { 16325 this.scale = [width / xstep, height / ystep]; 16326 }, 16327 transformToScale: function TilingPattern_transformToScale(graphics) { 16328 var scale = this.scale; 16329 var tmpScale = [scale[0], 0, 0, scale[1], 0, 0]; 16330 graphics.transform.apply(graphics, tmpScale); 16331 }, 16332 scaleToContext: function TilingPattern_scaleToContext() { 16333 var scale = this.scale; 16334 this.ctx.scale(1 / scale[0], 1 / scale[1]); 16335 }, 16336 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { 16337 if (Array.isArray(bbox) && bbox.length === 4) { 16338 var bboxWidth = x1 - x0; 16339 var bboxHeight = y1 - y0; 16340 graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); 16341 graphics.clip(); 16342 graphics.endPath(); 16343 } 16344 }, 16345 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { 16346 var context = graphics.ctx, 16347 current = graphics.current; 16348 16349 switch (paintType) { 16350 case PaintType.COLORED: 16351 var ctx = this.ctx; 16352 context.fillStyle = ctx.fillStyle; 16353 context.strokeStyle = ctx.strokeStyle; 16354 current.fillColor = ctx.fillStyle; 16355 current.strokeColor = ctx.strokeStyle; 16356 break; 16357 16358 case PaintType.UNCOLORED: 16359 var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); 16360 16361 context.fillStyle = cssColor; 16362 context.strokeStyle = cssColor; 16363 current.fillColor = cssColor; 16364 current.strokeColor = cssColor; 16365 break; 16366 16367 default: 16368 throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); 16369 } 16370 }, 16371 getPattern: function TilingPattern_getPattern(ctx, owner) { 16372 var temporaryPatternCanvas = this.createPatternCanvas(owner); 16373 ctx = this.ctx; 16374 ctx.setTransform.apply(ctx, this.baseTransform); 16375 ctx.transform.apply(ctx, this.matrix); 16376 this.scaleToContext(); 16377 return ctx.createPattern(temporaryPatternCanvas, 'repeat'); 16378 } 16379 }; 16380 return TilingPattern; 16381}(); 16382 16383exports.TilingPattern = TilingPattern; 16384 16385/***/ }), 16386/* 156 */ 16387/***/ (function(module, exports, __w_pdfjs_require__) { 16388 16389"use strict"; 16390 16391 16392Object.defineProperty(exports, "__esModule", { 16393 value: true 16394}); 16395exports.GlobalWorkerOptions = void 0; 16396var GlobalWorkerOptions = Object.create(null); 16397exports.GlobalWorkerOptions = GlobalWorkerOptions; 16398GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; 16399GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; 16400 16401/***/ }), 16402/* 157 */ 16403/***/ (function(module, exports, __w_pdfjs_require__) { 16404 16405"use strict"; 16406 16407 16408Object.defineProperty(exports, "__esModule", { 16409 value: true 16410}); 16411exports.MessageHandler = MessageHandler; 16412 16413var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 16414 16415var _util = __w_pdfjs_require__(1); 16416 16417function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 16418 16419function _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); } 16420 16421function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { tr
16421y { 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); } } 16422 16423function _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); }); }; } 16424 16425function resolveCall(_x, _x2) { 16426 return _resolveCall.apply(this, arguments); 16427} 16428 16429function _resolveCall() { 16430 _resolveCall = _asyncToGenerator( 16431 /*#__PURE__*/ 16432 _regenerator.default.mark(function _callee(fn, args) { 16433 var thisArg, 16434 _args = arguments; 16435 return _regenerator.default.wrap(function _callee$(_context) { 16436 while (1) { 16437 switch (_context.prev = _context.next) { 16438 case 0: 16439 thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; 16440 16441 if (fn) { 16442 _context.next = 3; 16443 break; 16444 } 16445 16446 return _context.abrupt("return"); 16447 16448 case 3: 16449 return _context.abrupt("return", fn.apply(thisArg, args)); 16450 16451 case 4: 16452 case "end": 16453 return _context.stop(); 16454 } 16455 } 16456 }, _callee, this); 16457 })); 16458 return _resolveCall.apply(this, arguments); 16459} 16460 16461function wrapReason(reason) { 16462 if (_typeof(reason) !== 'object') { 16463 return reason; 16464 } 16465 16466 switch (reason.name) { 16467 case 'AbortException': 16468 return new _util.AbortException(reason.message); 16469 16470 case 'MissingPDFException': 16471 return new _util.MissingPDFException(reason.message); 16472 16473 case 'UnexpectedResponseException': 16474 return new _util.UnexpectedResponseException(reason.message, reason.status); 16475 16476 default: 16477 return new _util.UnknownErrorException(reason.message, reason.details); 16478 } 16479} 16480 16481function makeReasonSerializable(reason) { 16482 if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { 16483 return reason; 16484 } 16485 16486 return new _util.UnknownErrorException(reason.message, reason.toString()); 16487} 16488 16489function resolveOrReject(capability, success, reason) { 16490 if (success) { 16491 capability.resolve(); 16492 } else { 16493 capability.reject(reason); 16494 } 16495} 16496 16497function finalize(promise) { 16498 return Promise.resolve(promise).catch(function () {}); 16499} 16500 16501function MessageHandler(sourceName, targetName, comObj) { 16502 var _this = this; 16503 16504 this.sourceName = sourceName; 16505 this.targetName = targetName; 16506 this.comObj = comObj; 16507 this.callbackId = 1; 16508 this.streamId = 1; 16509 this.postMessageTransfers = true; 16510 this.streamSinks = Object.create(null); 16511 this.streamControllers = Object.create(null); 16512 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); 16513 var ah = this.actionHandler = Object.create(null); 16514 16515 this._onComObjOnMessage = function (event) { 16516 var data = event.data; 16517 16518 if (data.targetName !== _this.sourceName) { 16519 return; 16520 } 16521 16522 if (data.stream) { 16523 _this._processStreamMessage(data); 16524 } else if (data.isReply) { 16525 var callbackId = data.callbackId; 16526 16527 if (data.callbackId in callbacksCapabilities) { 16528 var callback = callbacksCapabilities[callbackId]; 16529 delete callbacksCapabilities[callbackId]; 16530 16531 if ('error' in data) { 16532 callback.reject(wrapReason(data.error)); 16533 } else { 16534 callback.resolve(data.data); 16535 } 16536 } else { 16537 throw new Error("Cannot resolve callback ".concat(callbackId)); 16538 } 16539 } else if (data.action in ah) { 16540 var action = ah[data.action]; 16541 16542 if (data.callbackId) { 16543 var _sourceName = _this.sourceName; 16544 var _targetName = data.sourceName; 16545 Promise.resolve().then(function () { 16546 return action[0].call(action[1], data.data); 16547 }).then(function (result) { 16548 comObj.postMessage({ 16549 sourceName: _sourceName, 16550 targetName: _targetName, 16551 isReply: true, 16552 callbackId: data.callbackId, 16553 data: result 16554 }); 16555 }, function (reason) { 16556 comObj.postMessage({ 16557 sourceName: _sourceName, 16558 targetName: _targetName, 16559 isReply: true, 16560 callbackId: data.callbackId, 16561 error: makeReasonSerializable(reason) 16562 }); 16563 }); 16564 } else if (data.streamId) { 16565 _this._createStreamSink(data); 16566 } else { 16567 action[0].call(action[1], data.data); 16568 } 16569 } else { 16570 throw new Error("Unknown action from worker: ".concat(data.action)); 16571 } 16572 }; 16573 16574 comObj.addEventListener('message', this._onComObjOnMessage); 16575} 16576 16577MessageHandler.prototype = { 16578 on: function on(actionName, handler, scope) { 16579 var ah = this.actionHandler; 16580 16581 if (ah[actionName]) { 16582 throw new Error("There is already an actionName called \"".concat(actionName, "\"")); 16583 } 16584 16585 ah[actionName] = [handler, scope]; 16586 }, 16587 send: function send(actionName, data, transfers) { 16588 var message = { 16589 sourceName: this.sourceName, 16590 targetName: this.targetName, 16591 action: actionName, 16592 data: data 16593 }; 16594 this.postMessage(message, transfers); 16595 },
16596 sendWithPromise: function sendWithPromise(actionName, data, transfers) { 16597 var callbackId = this.callbackId++; 16598 var message = { 16599 sourceName: this.sourceName, 16600 targetName: this.targetName, 16601 action: actionName, 16602 data: data, 16603 callbackId: callbackId 16604 }; 16605 var capability = (0, _util.createPromiseCapability)(); 16606 this.callbacksCapabilities[callbackId] = capability; 16607 16608 try { 16609 this.postMessage(message, transfers); 16610 } catch (e) { 16611 capability.reject(e); 16612 } 16613 16614 return capability.promise; 16615 }, 16616 sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { 16617 var _this2 = this; 16618 16619 var streamId = this.streamId++; 16620 var sourceName = this.sourceName; 16621 var targetName = this.targetName; 16622 return new _util.ReadableStream({ 16623 start: function start(controller) { 16624 var startCapability = (0, _util.createPromiseCapability)(); 16625 _this2.streamControllers[streamId] = { 16626 controller: controller, 16627 startCall: startCapability, 16628 isClosed: false 16629 }; 16630 16631 _this2.postMessage({ 16632 sourceName: sourceName, 16633 targetName: targetName, 16634 action: actionName, 16635 streamId: streamId, 16636 data: data, 16637 desiredSize: controller.desiredSize 16638 }); 16639 16640 return startCapability.promise; 16641 }, 16642 pull: function pull(controller) { 16643 var pullCapability = (0, _util.createPromiseCapability)(); 16644 _this2.streamControllers[streamId].pullCall = pullCapability; 16645 16646 _this2.postMessage({ 16647 sourceName: sourceName, 16648 targetName: targetName, 16649 stream: 'pull', 16650 streamId: streamId, 16651 desiredSize: controller.desiredSize 16652 }); 16653 16654 return pullCapability.promise; 16655 }, 16656 cancel: function cancel(reason) { 16657 var cancelCapability = (0, _util.createPromiseCapability)(); 16658 _this2.streamControllers[streamId].cancelCall = cancelCapability; 16659 _this2.streamControllers[streamId].isClosed = true; 16660 16661 _this2.postMessage({ 16662 sourceName: sourceName, 16663 targetName: targetName, 16664 stream: 'cancel', 16665 reason: reason, 16666 streamId: streamId 16667 }); 16668 16669 return cancelCapability.promise; 16670 } 16671 }, queueingStrategy); 16672 }, 16673 _createStreamSink: function _createStreamSink(data) { 16674 var _this3 = this; 16675 16676 var self = this; 16677 var action = this.actionHandler[data.action]; 16678 var streamId = data.streamId; 16679 var desiredSize = data.desiredSize; 16680 var sourceName = this.sourceName; 16681 var targetName = data.sourceName; 16682 var capability = (0, _util.createPromiseCapability)(); 16683 16684 var sendStreamRequest = function sendStreamRequest(_ref) { 16685 var stream = _ref.stream, 16686 chunk = _ref.chunk, 16687 transfers = _ref.transfers, 16688 success = _ref.success, 16689 reason = _ref.reason; 16690 16691 _this3.postMessage({ 16692 sourceName: sourceName, 16693 targetName: targetName, 16694 stream: stream, 16695 streamId: streamId, 16696 chunk: chunk, 16697 success: success, 16698 reason: reason 16699 }, transfers); 16700 }; 16701 16702 var streamSink = { 16703 enqueue: function enqueue(chunk) { 16704 var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; 16705 var transfers = arguments.length > 2 ? arguments[2] : undefined; 16706 16707 if (this.isCancelled) { 16708 return; 16709 } 16710 16711 var lastDesiredSize = this.desiredSize; 16712 this.desiredSize -= size; 16713 16714 if (lastDesiredSize > 0 && this.desiredSize <= 0) { 16715 this.sinkCapability = (0, _util.createPromiseCapability)(); 16716 this.ready = this.sinkCapability.promise; 16717 } 16718 16719 sendStreamRequest({ 16720 stream: 'enqueue', 16721 chunk: chunk, 16722 transfers: transfers 16723 }); 16724 }, 16725 close: function close() { 16726 if (this.isCancelled) { 16727 return; 16728 } 16729 16730 this.isCancelled = true;
16731 sendStreamRequest({ 16732 stream: 'close' 16733 }); 16734 delete self.streamSinks[streamId]; 16735 }, 16736 error: function error(reason) { 16737 if (this.isCancelled) { 16738 return; 16739 } 16740 16741 this.isCancelled = true; 16742 sendStreamRequest({ 16743 stream: 'error', 16744 reason: reason 16745 }); 16746 }, 16747 sinkCapability: capability, 16748 onPull: null, 16749 onCancel: null, 16750 isCancelled: false, 16751 desiredSize: desiredSize, 16752 ready: null 16753 }; 16754 streamSink.sinkCapability.resolve(); 16755 streamSink.ready = streamSink.sinkCapability.promise; 16756 this.streamSinks[streamId] = streamSink; 16757 resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { 16758 sendStreamRequest({ 16759 stream: 'start_complete', 16760 success: true 16761 }); 16762 }, function (reason) { 16763 sendStreamRequest({ 16764 stream: 'start_complete', 16765 success: false, 16766 reason: reason 16767 }); 16768 }); 16769 }, 16770 _processStreamMessage: function _processStreamMessage(data) { 16771 var _this4 = this; 16772 16773 var sourceName = this.sourceName; 16774 var targetName = data.sourceName; 16775 var streamId = data.streamId; 16776 16777 var sendStreamResponse = function sendStreamResponse(_ref2) { 16778 var stream = _ref2.stream, 16779 success = _ref2.success, 16780 reason = _ref2.reason; 16781 16782 _this4.comObj.postMessage({ 16783 sourceName: sourceName, 16784 targetName: targetName, 16785 stream: stream, 16786 success: success, 16787 streamId: streamId, 16788 reason: reason 16789 }); 16790 }; 16791 16792 var deleteStreamController = function deleteStreamController() { 16793 Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { 16794 return capability && finalize(capability.promise); 16795 })).then(function () { 16796 delete _this4.streamControllers[data.streamId]; 16797 }); 16798 }; 16799 16800 switch (data.stream) { 16801 case 'start_complete': 16802 resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); 16803 break; 16804 16805 case 'pull_complete': 16806 resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); 16807 break; 16808 16809 case 'pull': 16810 if (!this.streamSinks[data.streamId]) { 16811 sendStreamResponse({ 16812 stream: 'pull_complete', 16813 success: true 16814 }); 16815 break; 16816 } 16817 16818 if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { 16819 this.streamSinks[data.streamId].sinkCapability.resolve(); 16820 } 16821 16822 this.streamSinks[data.streamId].desiredSize = data.desiredSize; 16823 resolveCall(this.streamSinks[data.streamId].onPull).then(function () { 16824 sendStreamResponse({ 16825 stream: 'pull_complete', 16826 success: true 16827 }); 16828 }, function (reason) { 16829 sendStreamResponse({ 16830 stream: 'pull_complete', 16831 success: false, 16832 reason: reason 16833 }); 16834 }); 16835 break; 16836 16837 case 'enqueue': 16838 (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); 16839 16840 if (!this.streamControllers[data.streamId].isClosed) { 16841 this.streamControllers[data.streamId].controller.enqueue(data.chunk); 16842 } 16843 16844 break; 16845 16846 case 'close': 16847 (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); 16848 16849 if (this.streamControllers[data.streamId].isClosed) { 16850 break; 16851 } 16852 16853 this.streamControllers[data.streamId].isClosed = true; 16854 this.streamControllers[data.streamId].controller.close(); 16855 deleteStreamController(); 16856 break; 16857 16858 case 'error': 16859 (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); 16860 this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); 16861 deleteStreamController(); 16862 break; 16863 16864 case 'cancel_complete': 16865 resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); 16866 deleteStreamController(); 16867 break; 16868 16869 case 'cancel': 16870 if (!this.streamSinks[data.streamId]) { 16871 break; 16872 } 16873 16874 resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { 16875 sendStreamResponse({ 16876 stream: 'cancel_complete', 16877 success: true 16878 }); 16879 }, function (reason) { 16880 sendStreamResponse({ 16881 stream: 'cancel_complete', 16882 success: false, 16883 reason: reason 16884 }); 16885 }); 16886 this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); 16887 this.streamSinks[data.streamId].isCancelled = true; 16888 delete this.streamSinks[data.streamId]; 16889 break; 16890 16891 default: 16892 throw new Error('Unexpected stream case'); 16893 } 16894 }, 16895 postMessage: function postMessage(message, transfers) { 16896 if (transfers && this.postMessageTransfers) { 16897 this.comObj.postMessage(message, transfers); 16898 } else { 16899 this.comObj.postMessage(message); 16900 } 16901 }, 16902 destroy: function destroy() { 16903 this.comObj.removeEventListener('message', this._onComObjOnMessage); 16904 } 16905}; 16906 16907/***/ }), 16908/* 158 */ 16909/***/ (function(module, exports, __w_pdfjs_require__) { 16910 16911"use strict"; 16912 16913 16914Object.defineProperty(exports, "__esModule", { 16915 value: true 16916}); 16917exports.Metadata = void 0; 16918 16919var _util = __w_pdfjs_require__(1); 16920 16921var _xml_parser = __w_pdfjs_require__(159); 16922 16923function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 16924 16925function _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); } } 16926 16927function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 16928 16929var Metadata = 16930/*#__PURE__*/ 16931function () { 16932 function Metadata(data) { 16933 _classCallCheck(this, Metadata); 16934 16935 (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); 16936 data = this._repair(data); 16937 var parser = new _xml_parser.SimpleXMLParser(); 16938 var xmlDocument = parser.parseFromString(data); 16939 this._metadata = Object.create(null); 16940 16941 if (xmlDocument) { 16942 this._parse(xmlDocument); 16943 } 16944 } 16945 16946 _createClass(Metadata, [{ 16947 key: "_repair", 16948 value: function _repair(data) { 16949 return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) { 16950 var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { 16951 return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); 16952 }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { 16953 switch (name) { 16954 case 'amp': 16955 return '&'; 16956 16957 case 'apos': 16958 return '\''; 16959 16960 case 'gt': 16961 return '>'; 16962 16963 case 'lt': 16964 return '<'; 16965 16966 case 'quot': 16967 return '\"'; 16968 } 16969 16970 throw new Error("_repair: ".concat(name, " isn't defined."));
16971 }); 16972 var chars = ''; 16973 16974 for (var i = 0, ii = bytes.length; i < ii; i += 2) { 16975 var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); 16976 16977 if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { 16978 chars += String.fromCharCode(code); 16979 } else { 16980 chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; 16981 } 16982 } 16983 16984 return '>' + chars; 16985 }); 16986 } 16987 }, { 16988 key: "_parse", 16989 value: function _parse(xmlDocument) { 16990 var rdf = xmlDocument.documentElement; 16991 16992 if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 16993 rdf = rdf.firstChild; 16994 16995 while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 16996 rdf = rdf.nextSibling; 16997 } 16998 } 16999 17000 var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; 17001 17002 if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { 17003 return; 17004 } 17005 17006 var children = rdf.childNodes; 17007 17008 for (var i = 0, ii = children.length; i < ii; i++) { 17009 var desc = children[i]; 17010 17011 if (desc.nodeName.toLowerCase() !== 'rdf:description') { 17012 continue; 17013 } 17014 17015 for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { 17016 if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { 17017 var entry = desc.childNodes[j]; 17018 var name = entry.nodeName.toLowerCase(); 17019 this._metadata[name] = entry.textContent.trim(); 17020 } 17021 } 17022 } 17023 } 17024 }, { 17025 key: "get", 17026 value: function get(name) { 17027 var data = this._metadata[name]; 17028 return typeof data !== 'undefined' ? data : null; 17029 } 17030 }, { 17031 key: "getAll", 17032 value: function getAll() { 17033 return this._metadata; 17034 } 17035 }, { 17036 key: "has", 17037 value: function has(name) { 17038 return typeof this._metadata[name] !== 'undefined'; 17039 } 17040 }]); 17041 17042 return Metadata; 17043}(); 17044 17045exports.Metadata = Metadata; 17046 17047/***/ }), 17048/* 159 */ 17049/***/ (function(module, exports, __w_pdfjs_require__) { 17050 17051"use strict"; 17052 17053 17054Object.defineProperty(exports, "__esModule", { 17055 value: true 17056}); 17057exports.SimpleXMLParser = void 0; 17058 17059function _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); } 17060 17061function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 17062 17063function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 17064 17065function _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; } 17066 17067function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 17068 17069function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 17070 17071function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 17072 17073function _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); } 17074 17075function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } 17076
17077function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 17078 17079function _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); } 17080 17081function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 17082 17083function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17084 17085function _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); } } 17086 17087function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 17088 17089var XMLParserErrorCode = { 17090 NoError: 0, 17091 EndOfDocument: -1, 17092 UnterminatedCdat: -2, 17093 UnterminatedXmlDeclaration: -3, 17094 UnterminatedDoctypeDeclaration: -4, 17095 UnterminatedComment: -5, 17096 MalformedElement: -6, 17097 OutOfMemory: -7, 17098 UnterminatedAttributeValue: -8, 17099 UnterminatedElement: -9, 17100 ElementNeverBegun: -10 17101}; 17102 17103function isWhitespace(s, index) { 17104 var ch = s[index]; 17105 return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; 17106} 17107 17108function isWhitespaceString(s) { 17109 for (var i = 0, ii = s.length; i < ii; i++) { 17110 if (!isWhitespace(s, i)) { 17111 return false; 17112 } 17113 } 17114 17115 return true; 17116} 17117 17118var XMLParserBase = 17119/*#__PURE__*/ 17120function () { 17121 function XMLParserBase() { 17122 _classCallCheck(this, XMLParserBase); 17123 } 17124 17125 _createClass(XMLParserBase, [{ 17126 key: "_resolveEntities", 17127 value: function _resolveEntities(s) { 17128 var _this = this; 17129 17130 return s.replace(/&([^;]+);/g, function (all, entity) { 17131 if (entity.substring(0, 2) === '#x') { 17132 return String.fromCharCode(parseInt(entity.substring(2), 16)); 17133 } else if (entity.substring(0, 1) === '#') { 17134 return String.fromCharCode(parseInt(entity.substring(1), 10)); 17135 } 17136 17137 switch (entity) { 17138 case 'lt': 17139 return '<'; 17140 17141 case 'gt': 17142 return '>'; 17143 17144 case 'amp': 17145 return '&'; 17146 17147 case 'quot': 17148 return '\"'; 17149 } 17150 17151 return _this.onResolveEntity(entity); 17152 }); 17153 } 17154 }, { 17155 key: "_parseContent", 17156 value: function _parseContent(s, start) { 17157 var pos = start, 17158 name, 17159 attributes = []; 17160 17161 function skipWs() { 17162 while (pos < s.length && isWhitespace(s, pos)) { 17163 ++pos; 17164 } 17165 } 17166 17167 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 17168 ++pos; 17169 } 17170 17171 name = s.substring(start, pos); 17172 skipWs(); 17173 17174 while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { 17175 skipWs(); 17176 var attrName = '', 17177 attrValue = ''; 17178 17179 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { 17180 attrName += s[pos]; 17181 ++pos; 17182 } 17183 17184 skipWs(); 17185 17186 if (s[pos] !== '=') { 17187 return null; 17188 } 17189 17190 ++pos; 17191 skipWs(); 17192 var attrEndChar = s[pos]; 17193 17194 if (attrEndChar !== '\"' && attrEndChar !== '\'') { 17195 return null; 17196 } 17197 17198 var attrEndIndex = s.indexOf(attrEndChar, ++pos); 17199 17200 if (attrEndIndex < 0) { 17201 return null; 17202 } 17203 17204 attrValue = s.substring(pos, attrEndIndex); 17205 attributes.push({ 17206 name: attrName, 17207 value: this._resolveEntities(attrValue) 17208 }); 17209 pos = attrEndIndex + 1; 17210 skipWs(); 17211 } 17212 17213 return { 17214 name: name, 17215 attributes: attributes, 17216 parsed: pos - start 17217 }; 17218 } 17219 }, { 17220 key: "_parseProcessingInstruction", 17221 value: function _parseProcessingInstruction(s, start) { 17222 var pos = start, 17223 name, 17224 value; 17225 17226 function skipWs() { 17227 while (pos < s.length && isWhitespace(s, pos)) { 17228 ++pos; 17229 } 17230 } 17231 17232 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 17233 ++pos; 17234 } 17235 17236 name = s.substring(start, pos); 17237 skipWs(); 17238 var attrStart = pos; 17239 17240 while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { 17241 ++pos; 17242 } 17243 17244 value = s.substring(attrStart, pos); 17245 return { 17246 name: name, 17247 value: value, 17248 parsed: pos - start 17249 }; 17250 } 17251 }, { 17252 key: "parseXml", 17253 value: function parseXml(s) { 17254 var i = 0; 17255 17256 while (i < s.length) { 17257 var ch = s[i];
17258 var j = i; 17259 17260 if (ch === '<') { 17261 ++j; 17262 var ch2 = s[j]; 17263 var q = void 0; 17264 17265 switch (ch2) { 17266 case '/': 17267 ++j; 17268 q = s.indexOf('>', j); 17269 17270 if (q < 0) { 17271 this.onError(XMLParserErrorCode.UnterminatedElement); 17272 return; 17273 } 17274 17275 this.onEndElement(s.substring(j, q)); 17276 j = q + 1; 17277 break; 17278 17279 case '?': 17280 ++j; 17281 17282 var pi = this._parseProcessingInstruction(s, j); 17283 17284 if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { 17285 this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); 17286 return; 17287 } 17288 17289 this.onPi(pi.name, pi.value); 17290 j += pi.parsed + 2; 17291 break; 17292 17293 case '!': 17294 if (s.substring(j + 1, j + 3) === '--') { 17295 q = s.indexOf('-->', j + 3); 17296 17297 if (q < 0) { 17298 this.onError(XMLParserErrorCode.UnterminatedComment); 17299 return; 17300 } 17301 17302 this.onComment(s.substring(j + 3, q)); 17303 j = q + 3; 17304 } else if (s.substring(j + 1, j + 8) === '[CDATA[') { 17305 q = s.indexOf(']]>', j + 8); 17306 17307 if (q < 0) { 17308 this.onError(XMLParserErrorCode.UnterminatedCdat); 17309 return; 17310 } 17311 17312 this.onCdata(s.substring(j + 8, q)); 17313 j = q + 3; 17314 } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { 17315 var q2 = s.indexOf('[', j + 8); 17316 var complexDoctype = false; 17317 q = s.indexOf('>', j + 8); 17318 17319 if (q < 0) { 17320 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 17321 return; 17322 } 17323 17324 if (q2 > 0 && q > q2) { 17325 q = s.indexOf(']>', j + 8); 17326 17327 if (q < 0) { 17328 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 17329 return; 17330 } 17331 17332 complexDoctype = true; 17333 } 17334 17335 var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); 17336 this.onDoctype(doctypeContent); 17337 j = q + (complexDoctype ? 2 : 1); 17338 } else { 17339 this.onError(XMLParserErrorCode.MalformedElement); 17340 return; 17341 } 17342 17343 break; 17344 17345 default: 17346 var content = this._parseContent(s, j); 17347 17348 if (content === null) { 17349 this.onError(XMLParserErrorCode.MalformedElement); 17350 return; 17351 } 17352 17353 var isClosed = false; 17354 17355 if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { 17356 isClosed = true; 17357 } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { 17358 this.onError(XMLParserErrorCode.UnterminatedElement); 17359 return; 17360 } 17361 17362 this.onBeginElement(content.name, content.attributes, isClosed); 17363 j += content.parsed + (isClosed ? 2 : 1); 17364 break; 17365 } 17366 } else { 17367 while (j < s.length && s[j] !== '<') { 17368 j++; 17369 } 17370 17371 var text = s.substring(i, j); 17372 this.onText(this._resolveEntities(text)); 17373 } 17374 17375 i = j; 17376 } 17377 } 17378 }, { 17379 key: "onResolveEntity", 17380 value: function onResolveEntity(name) { 17381 return "&".concat(name, ";"); 17382 } 17383 }, { 17384 key: "onPi", 17385 value: function onPi(name, value) {} 17386 }, { 17387 key: "onComment", 17388 value: function onComment(text) {} 17389 }, { 17390 key: "onCdata", 17391 value: function onCdata(text) {} 17392 }, { 17393 key: "onDoctype", 17394 value: function onDoctype(doctypeContent) {} 17395 }, { 17396 key: "onText", 17397 value: function onText(text) {} 17398 }, { 17399 key: "onBeginElement", 17400 value: function onBeginElement(name, attributes, isEmpty) {} 17401 }, { 17402 key: "onEndElement", 17403 value: function onEndElement(name) {} 17404 }, { 17405 key: "onError", 17406 value: function onError(code) {} 17407 }]); 17408 17409 return XMLParserBase; 17410}();
17411 17412var SimpleDOMNode = 17413/*#__PURE__*/ 17414function () { 17415 function SimpleDOMNode(nodeName, nodeValue) { 17416 _classCallCheck(this, SimpleDOMNode); 17417 17418 this.nodeName = nodeName; 17419 this.nodeValue = nodeValue; 17420 Object.defineProperty(this, 'parentNode', { 17421 value: null, 17422 writable: true 17423 }); 17424 } 17425 17426 _createClass(SimpleDOMNode, [{ 17427 key: "hasChildNodes", 17428 value: function hasChildNodes() { 17429 return this.childNodes && this.childNodes.length > 0; 17430 } 17431 }, { 17432 key: "firstChild", 17433 get: function get() { 17434 return this.childNodes && this.childNodes[0]; 17435 } 17436 }, { 17437 key: "nextSibling", 17438 get: function get() { 17439 var childNodes = this.parentNode.childNodes; 17440 17441 if (!childNodes) { 17442 return undefined; 17443 } 17444 17445 var index = childNodes.indexOf(this); 17446 17447 if (index === -1) { 17448 return undefined; 17449 } 17450 17451 return childNodes[index + 1]; 17452 } 17453 }, { 17454 key: "textContent", 17455 get: function get() { 17456 if (!this.childNodes) { 17457 return this.nodeValue || ''; 17458 } 17459 17460 return this.childNodes.map(function (child) { 17461 return child.textContent; 17462 }).join(''); 17463 } 17464 }]); 17465 17466 return SimpleDOMNode; 17467}(); 17468 17469var SimpleXMLParser = 17470/*#__PURE__*/ 17471function (_XMLParserBase) { 17472 _inherits(SimpleXMLParser, _XMLParserBase); 17473 17474 function SimpleXMLParser() { 17475 var _this2; 17476 17477 _classCallCheck(this, SimpleXMLParser); 17478 17479 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this)); 17480 _this2._currentFragment = null; 17481 _this2._stack = null; 17482 _this2._errorCode = XMLParserErrorCode.NoError; 17483 return _this2; 17484 } 17485 17486 _createClass(SimpleXMLParser, [{ 17487 key: "parseFromString", 17488 value: function parseFromString(data) { 17489 this._currentFragment = []; 17490 this._stack = []; 17491 this._errorCode = XMLParserErrorCode.NoError; 17492 this.parseXml(data); 17493 17494 if (this._errorCode !== XMLParserErrorCode.NoError) { 17495 return undefined; 17496 } 17497 17498 var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1), 17499 documentElement = _this$_currentFragmen[0]; 17500 17501 if (!documentElement) { 17502 return undefined; 17503 } 17504 17505 return { 17506 documentElement: documentElement 17507 }; 17508 } 17509 }, { 17510 key: "onResolveEntity", 17511 value: function onResolveEntity(name) { 17512 switch (name) { 17513 case 'apos': 17514 return '\''; 17515 } 17516 17517 return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name); 17518 } 17519 }, { 17520 key: "onText", 17521 value: function onText(text) { 17522 if (isWhitespaceString(text)) { 17523 return; 17524 } 17525 17526 var node = new SimpleDOMNode('#text', text); 17527 17528 this._currentFragment.push(node); 17529 } 17530 }, { 17531 key: "onCdata", 17532 value: function onCdata(text) { 17533 var node = new SimpleDOMNode('#text', text); 17534 17535 this._currentFragment.push(node); 17536 } 17537 }, { 17538 key: "onBeginElement", 17539 value: function onBeginElement(name, attributes, isEmpty) { 17540 var node = new SimpleDOMNode(name); 17541 node.childNodes = []; 17542 17543 this._currentFragment.push(node); 17544 17545 if (isEmpty) { 17546 return; 17547 } 17548 17549 this._stack.push(this._currentFragment); 17550 17551 this._currentFragment = node.childNodes; 17552 } 17553 }, { 17554 key: "onEndElement", 17555 value: function onEndElement(name) { 17556 this._currentFragment = this._stack.pop() || []; 17557 var lastElement = this._currentFragment[this._currentFragment.length - 1]; 17558 17559 if (!lastElement) { 17560 return; 17561 } 17562 17563 for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { 17564 lastElement.childNodes[i].parentNode = lastElement; 17565 } 17566 } 17567 }, { 17568 key: "onError", 17569 value: function onError(code) { 17570 this._errorCode = code; 17571 } 17572 }]); 17573 17574 return SimpleXMLParser; 17575}(XMLParserBase); 17576 17577exports.SimpleXMLParser = SimpleXMLParser; 17578 17579/***/ }), 17580/* 160 */ 17581/***/ (function(module, exports, __w_pdfjs_require__) { 17582 17583"use strict"; 17584 17585 17586Object.defineProperty(exports, "__esModule", { 17587 value: true 17588}); 17589exports.PDFDataTransportStream = void 0; 17590 17591var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 17592 17593var _util = __w_pdfjs_require__(1); 17594 17595function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 17596 17597function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { tr
17597y { 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); } } 17598 17599function _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); }); }; } 17600 17601var PDFDataTransportStream = function PDFDataTransportStreamClosure() { 17602 function PDFDataTransportStream(params, pdfDataRangeTransport) { 17603 var _this = this; 17604 17605 (0, _util.assert)(pdfDataRangeTransport); 17606 this._queuedChunks = []; 17607 var initialData = params.initialData; 17608 17609 if (initialData && initialData.length > 0) { 17610 var buffer = new Uint8Array(initialData).buffer; 17611 17612 this._queuedChunks.push(buffer); 17613 } 17614 17615 this._pdfDataRangeTransport = pdfDataRangeTransport; 17616 this._isStreamingSupported = !params.disableStream; 17617 this._isRangeSupported = !params.disableRange; 17618 this._contentLength = params.length; 17619 this._fullRequestReader = null; 17620 this._rangeReaders = []; 17621 17622 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { 17623 _this._onReceiveData({ 17624 begin: begin, 17625 chunk: chunk 17626 }); 17627 }); 17628 17629 this._pdfDataRangeTransport.addProgressListener(function (loaded) { 17630 _this._onProgress({ 17631 loaded: loaded 17632 }); 17633 }); 17634 17635 this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { 17636 _this._onReceiveData({ 17637 chunk: chunk 17638 }); 17639 }); 17640 17641 this._pdfDataRangeTransport.transportReady(); 17642 } 17643 17644 PDFDataTransportStream.prototype = { 17645 _onReceiveData: function PDFDataTransportStream_onReceiveData(args) { 17646 var buffer = new Uint8Array(args.chunk).buffer; 17647 17648 if (args.begin === undefined) { 17649 if (this._fullRequestReader) { 17650 this._fullRequestReader._enqueue(buffer); 17651 } else { 17652 this._queuedChunks.push(buffer); 17653 } 17654 } else { 17655 var found = this._rangeReaders.some(function (rangeReader) { 17656 if (rangeReader._begin !== args.begin) { 17657 return false; 17658 } 17659 17660 rangeReader._enqueue(buffer); 17661 17662 return true; 17663 }); 17664 17665 (0, _util.assert)(found); 17666 } 17667 }, 17668 _onProgress: function PDFDataTransportStream_onDataProgress(evt) { 17669 if (this._rangeReaders.length > 0) { 17670 var firstReader = this._rangeReaders[0]; 17671 17672 if (firstReader.onProgress) { 17673 firstReader.onProgress({ 17674 loaded: evt.loaded 17675 }); 17676 } 17677 } 17678 }, 17679 _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) { 17680 var i = this._rangeReaders.indexOf(reader); 17681 17682 if (i >= 0) { 17683 this._rangeReaders.splice(i, 1); 17684 } 17685 }, 17686 getFullReader: function PDFDataTransportStream_getFullReader() { 17687 (0, _util.assert)(!this._fullRequestReader); 17688 var queuedChunks = this._queuedChunks; 17689 this._queuedChunks = null; 17690 return new PDFDataTransportStreamReader(this, queuedChunks); 17691 }, 17692 getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) { 17693 var reader = new PDFDataTransportStreamRangeReader(this, begin, end); 17694 17695 this._pdfDataRangeTransport.requestDataRange(begin, end); 17696 17697 this._rangeReaders.push(reader); 17698 17699 return reader; 17700 }, 17701 cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) { 17702 if (this._fullRequestReader) { 17703 this._fullRequestReader.cancel(reason); 17704 } 17705 17706 var readers = this._rangeReaders.slice(0); 17707 17708 readers.forEach(function (rangeReader) { 17709 rangeReader.cancel(reason); 17710 }); 17711 17712 this._pdfDataRangeTransport.abort(); 17713 } 17714 }; 17715 17716 function PDFDataTransportStreamReader(stream, queuedChunks) { 17717 this._stream = stream; 17718 this._done = false; 17719 this._filename = null; 17720 this._queuedChunks = queuedChunks || []; 17721 this._requests = []; 17722 this._headersReady = Promise.resolve(); 17723 stream._fullRequestReader = this; 17724 this.onProgress = null; 17725 } 17726 17727 PDFDataTransportStreamReader.prototype = { 17728 _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) { 17729 if (this._done) { 17730 return; 17731 } 17732 17733 if (this._requests.length > 0) { 17734 var requestCapability = this._requests.shift(); 17735 17736 requestCapability.resolve({ 17737 value: chunk, 17738 done: false 17739 }); 17740 return; 17741 } 17742 17743 this._queuedChunks.push(chunk);
17744 }, 17745 17746 get headersReady() { 17747 return this._headersReady; 17748 }, 17749 17750 get filename() { 17751 return this._filename; 17752 }, 17753 17754 get isRangeSupported() { 17755 return this._stream._isRangeSupported; 17756 }, 17757 17758 get isStreamingSupported() { 17759 return this._stream._isStreamingSupported; 17760 }, 17761 17762 get contentLength() { 17763 return this._stream._contentLength; 17764 }, 17765 17766 read: function () { 17767 var _read = _asyncToGenerator( 17768 /*#__PURE__*/ 17769 _regenerator.default.mark(function _callee() { 17770 var chunk, requestCapability; 17771 return _regenerator.default.wrap(function _callee$(_context) { 17772 while (1) { 17773 switch (_context.prev = _context.next) { 17774 case 0: 17775 if (!(this._queuedChunks.length > 0)) { 17776 _context.next = 3; 17777 break; 17778 } 17779 17780 chunk = this._queuedChunks.shift(); 17781 return _context.abrupt("return", { 17782 value: chunk, 17783 done: false 17784 }); 17785 17786 case 3: 17787 if (!this._done) { 17788 _context.next = 5; 17789 break; 17790 } 17791 17792 return _context.abrupt("return", { 17793 value: undefined, 17794 done: true 17795 }); 17796 17797 case 5: 17798 requestCapability = (0, _util.createPromiseCapability)(); 17799 17800 this._requests.push(requestCapability); 17801 17802 return _context.abrupt("return", requestCapability.promise); 17803 17804 case 8: 17805 case "end": 17806 return _context.stop(); 17807 } 17808 } 17809 }, _callee, this); 17810 })); 17811 17812 function read() { 17813 return _read.apply(this, arguments); 17814 } 17815 17816 return read; 17817 }(), 17818 cancel: function PDFDataTransportStreamReader_cancel(reason) { 17819 this._done = true; 17820 17821 this._requests.forEach(function (requestCapability) { 17822 requestCapability.resolve({ 17823 value: undefined, 17824 done: true 17825 }); 17826 }); 17827 17828 this._requests = []; 17829 } 17830 }; 17831 17832 function PDFDataTransportStreamRangeReader(stream, begin, end) { 17833 this._stream = stream; 17834 this._begin = begin; 17835 this._end = end; 17836 this._queuedChunk = null; 17837 this._requests = []; 17838 this._done = false; 17839 this.onProgress = null; 17840 } 17841 17842 PDFDataTransportStreamRangeReader.prototype = { 17843 _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) { 17844 if (this._done) { 17845 return; 17846 } 17847 17848 if (this._requests.length === 0) { 17849 this._queuedChunk = chunk; 17850 } else { 17851 var requestsCapability = this._requests.shift(); 17852 17853 requestsCapability.resolve({ 17854 value: chunk, 17855 done: false 17856 }); 17857 17858 this._requests.forEach(function (requestCapability) { 17859 requestCapability.resolve({ 17860 value: undefined, 17861 done: true 17862 }); 17863 }); 17864 17865 this._requests = []; 17866 } 17867 17868 this._done = true; 17869 17870 this._stream._removeRangeReader(this); 17871 }, 17872 17873 get isStreamingSupported() { 17874 return false; 17875 }, 17876 17877 read: function () { 17878 var _read2 = _asyncToGenerator( 17879 /*#__PURE__*/ 17880 _regenerator.default.mark(function _callee2() { 17881 var chunk, requestCapability; 17882 return _regenerator.default.wrap(function _callee2$(_context2) { 17883 while (1) { 17884 switch (_context2.prev = _context2.next) { 17885 case 0: 17886 if (!this._queuedChunk) { 17887 _context2.next = 4; 17888 break; 17889 } 17890 17891 chunk = this._queuedChunk; 17892 this._queuedChunk = null; 17893 return _context2.abrupt("return", { 17894 value: chunk, 17895 done: false 17896 }); 17897 17898 case 4: 17899 if (!this._done) { 17900 _context2.next = 6; 17901 break; 17902 } 17903 17904 return _context2.abrupt("return", { 17905 value: undefined, 17906 done: true 17907 }); 17908 17909 case 6: 17910 requestCapability = (0, _util.createPromiseCapability)(); 17911 17912 this._requests.push(requestCapability); 17913 17914 return _context2.abrupt("return", requestCapability.promise); 17915 17916 case 9: 17917 case "end": 17918 return _context2.stop(); 17919 } 17920 } 17921 }, _callee2, this); 17922 })); 17923 17924 function read() { 17925 return _read2.apply(this, arguments); 17926 } 17927 17928 return read; 17929 }(), 17930 cancel: function PDFDataTransportStreamRangeReader_cancel(reason) { 17931 this._done = true; 17932
17933 this._requests.forEach(function (requestCapability) { 17934 requestCapability.resolve({ 17935 value: undefined, 17936 done: true 17937 }); 17938 }); 17939 17940 this._requests = []; 17941 17942 this._stream._removeRangeReader(this); 17943 } 17944 }; 17945 return PDFDataTransportStream; 17946}(); 17947 17948exports.PDFDataTransportStream = PDFDataTransportStream; 17949 17950/***/ }), 17951/* 161 */ 17952/***/ (function(module, exports, __w_pdfjs_require__) { 17953 17954"use strict"; 17955 17956 17957Object.defineProperty(exports, "__esModule", { 17958 value: true 17959}); 17960exports.WebGLContext = void 0; 17961 17962var _util = __w_pdfjs_require__(1); 17963 17964function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17965 17966function _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); } } 17967 17968function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 17969 17970var WebGLContext = 17971/*#__PURE__*/ 17972function () { 17973 function WebGLContext(_ref) { 17974 var _ref$enable = _ref.enable, 17975 enable = _ref$enable === void 0 ? false : _ref$enable; 17976 17977 _classCallCheck(this, WebGLContext); 17978 17979 this._enabled = enable === true; 17980 } 17981 17982 _createClass(WebGLContext, [{ 17983 key: "composeSMask", 17984 value: function composeSMask(_ref2) { 17985 var layer = _ref2.layer, 17986 mask = _ref2.mask, 17987 properties = _ref2.properties; 17988 return WebGLUtils.composeSMask(layer, mask, properties); 17989 } 17990 }, { 17991 key: "drawFigures", 17992 value: function drawFigures(_ref3) { 17993 var width = _ref3.width, 17994 height = _ref3.height, 17995 backgroundColor = _ref3.backgroundColor, 17996 figures = _ref3.figures, 17997 context = _ref3.context; 17998 return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); 17999 } 18000 }, { 18001 key: "clear", 18002 value: function clear() { 18003 WebGLUtils.cleanup(); 18004 } 18005 }, { 18006 key: "isEnabled", 18007 get: function get() { 18008 var enabled = this._enabled; 18009 18010 if (enabled) { 18011 enabled = WebGLUtils.tryInitGL(); 18012 } 18013 18014 return (0, _util.shadow)(this, 'isEnabled', enabled); 18015 } 18016 }]); 18017 18018 return WebGLContext; 18019}(); 18020 18021exports.WebGLContext = WebGLContext; 18022 18023var WebGLUtils = function WebGLUtilsClosure() { 18024 function loadShader(gl, code, shaderType) { 18025 var shader = gl.createShader(shaderType); 18026 gl.shaderSource(shader, code); 18027 gl.compileShader(shader); 18028 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); 18029 18030 if (!compiled) { 18031 var errorMsg = gl.getShaderInfoLog(shader); 18032 throw new Error('Error during shader compilation: ' + errorMsg); 18033 } 18034 18035 return shader; 18036 } 18037 18038 function createVertexShader(gl, code) { 18039 return loadShader(gl, code, gl.VERTEX_SHADER); 18040 } 18041 18042 function createFragmentShader(gl, code) { 18043 return loadShader(gl, code, gl.FRAGMENT_SHADER); 18044 } 18045 18046 function createProgram(gl, shaders) { 18047 var program = gl.createProgram(); 18048 18049 for (var i = 0, ii = shaders.length; i < ii; ++i) { 18050 gl.attachShader(program, shaders[i]); 18051 } 18052 18053 gl.linkProgram(program); 18054 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); 18055 18056 if (!linked) { 18057 var errorMsg = gl.getProgramInfoLog(program); 18058 throw new Error('Error during program linking: ' + errorMsg); 18059 } 18060 18061 return program; 18062 } 18063 18064 function createTexture(gl, image, textureId) { 18065 gl.activeTexture(textureId); 18066 var texture = gl.createTexture(); 18067 gl.bindTexture(gl.TEXTURE_2D, texture); 18068 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); 18069 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); 18070 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); 18071 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); 18072 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); 18073 return texture; 18074 } 18075 18076 var currentGL, currentCanvas; 18077 18078 function generateGL() { 18079 if (currentGL) { 18080 return; 18081 } 18082 18083 currentCanvas = document.createElement('canvas'); 18084 currentGL = currentCanvas.getContext('webgl', { 18085 premultipliedalpha: false 18086 });
18087 } 18088 18089 var smaskVertexShaderCode = '\ 18090 attribute vec2 a_position; \ 18091 attribute vec2 a_texCoord; \ 18092 \ 18093 uniform vec2 u_resolution; \ 18094 \ 18095 varying vec2 v_texCoord; \ 18096 \ 18097 void main() { \ 18098 vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ 18099 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 18100 \ 18101 v_texCoord = a_texCoord; \ 18102 } '; 18103 var smaskFragmentShaderCode = '\ 18104 precision mediump float; \ 18105 \ 18106 uniform vec4 u_backdrop; \ 18107 uniform int u_subtype; \ 18108 uniform sampler2D u_image; \ 18109 uniform sampler2D u_mask; \ 18110 \ 18111 varying vec2 v_texCoord; \ 18112 \ 18113 void main() { \ 18114 vec4 imageColor = texture2D(u_image, v_texCoord); \ 18115 vec4 maskColor = texture2D(u_mask, v_texCoord); \ 18116 if (u_backdrop.a > 0.0) { \ 18117 maskColor.rgb = maskColor.rgb * maskColor.a + \ 18118 u_backdrop.rgb * (1.0 - maskColor.a); \ 18119 } \ 18120 float lum; \ 18121 if (u_subtype == 0) { \ 18122 lum = maskColor.a; \ 18123 } else { \ 18124 lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ 18125 maskColor.b * 0.11; \ 18126 } \ 18127 imageColor.a *= lum; \ 18128 imageColor.rgb *= imageColor.a; \ 18129 gl_FragColor = imageColor; \ 18130 } '; 18131 var smaskCache = null; 18132 18133 function initSmaskGL() { 18134 var canvas, gl; 18135 generateGL(); 18136 canvas = currentCanvas; 18137 currentCanvas = null; 18138 gl = currentGL; 18139 currentGL = null; 18140 var vertexShader = createVertexShader(gl, smaskVertexShaderCode); 18141 var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); 18142 var program = createProgram(gl, [vertexShader, fragmentShader]); 18143 gl.useProgram(program); 18144 var cache = {}; 18145 cache.gl = gl; 18146 cache.canvas = canvas; 18147 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 18148 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 18149 cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); 18150 cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); 18151 var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); 18152 var texLayerLocation = gl.getUniformLocation(program, 'u_image'); 18153 var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); 18154 var texCoordBuffer = gl.createBuffer(); 18155 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); 18156 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); 18157 gl.enableVertexAttribArray(texCoordLocation); 18158 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); 18159 gl.uniform1i(texLayerLocation, 0); 18160 gl.uniform1i(texMaskLocation, 1); 18161 smaskCache = cache; 18162 } 18163 18164 function composeSMask(layer, mask, properties) { 18165 var width = layer.width, 18166 height = layer.height; 18167 18168 if (!smaskCache) { 18169 initSmaskGL(); 18170 } 18171 18172 var cache = smaskCache,
18173 canvas = cache.canvas, 18174 gl = cache.gl; 18175 canvas.width = width; 18176 canvas.height = height; 18177 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 18178 gl.uniform2f(cache.resolutionLocation, width, height); 18179 18180 if (properties.backdrop) { 18181 gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); 18182 } else { 18183 gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); 18184 } 18185 18186 gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); 18187 var texture = createTexture(gl, layer, gl.TEXTURE0); 18188 var maskTexture = createTexture(gl, mask, gl.TEXTURE1); 18189 var buffer = gl.createBuffer(); 18190 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 18191 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); 18192 gl.enableVertexAttribArray(cache.positionLocation); 18193 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 18194 gl.clearColor(0, 0, 0, 0); 18195 gl.enable(gl.BLEND); 18196 gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); 18197 gl.clear(gl.COLOR_BUFFER_BIT); 18198 gl.drawArrays(gl.TRIANGLES, 0, 6); 18199 gl.flush(); 18200 gl.deleteTexture(texture); 18201 gl.deleteTexture(maskTexture); 18202 gl.deleteBuffer(buffer); 18203 return canvas; 18204 } 18205 18206 var figuresVertexShaderCode = '\ 18207 attribute vec2 a_position; \ 18208 attribute vec3 a_color; \ 18209 \ 18210 uniform vec2 u_resolution; \ 18211 uniform vec2 u_scale; \ 18212 uniform vec2 u_offset; \ 18213 \ 18214 varying vec4 v_color; \ 18215 \ 18216 void main() { \ 18217 vec2 position = (a_position + u_offset) * u_scale; \ 18218 vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ 18219 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 18220 \ 18221 v_color = vec4(a_color / 255.0, 1.0); \ 18222 } '; 18223 var figuresFragmentShaderCode = '\ 18224 precision mediump float; \ 18225 \ 18226 varying vec4 v_color; \ 18227 \ 18228 void main() { \ 18229 gl_FragColor = v_color; \ 18230 } '; 18231 var figuresCache = null; 18232 18233 function initFiguresGL() { 18234 var canvas, gl; 18235 generateGL(); 18236 canvas = currentCanvas; 18237 currentCanvas = null; 18238 gl = currentGL; 18239 currentGL = null; 18240 var vertexShader = createVertexShader(gl, figuresVertexShaderCode); 18241 var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); 18242 var program = createProgram(gl, [vertexShader, fragmentShader]); 18243 gl.useProgram(program); 18244 var cache = {}; 18245 cache.gl = gl; 18246 cache.canvas = canvas; 18247 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 18248 cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); 18249 cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); 18250 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 18251 cache.colorLocation = gl.getAttribLocation(program, 'a_color'); 18252 figuresCache = cache; 18253 } 18254 18255 function drawFigures(width, height, backgroundColor, figures, context) { 18256 if (!figuresCache) { 18257 initFiguresGL(); 18258 } 18259 18260 var cache = figuresCache, 18261 canvas = cache.canvas, 18262 gl = cache.gl; 18263 canvas.width = width; 18264 canvas.height = height; 18265 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 18266 gl.uniform2f(cache.resolutionLocation, width, height); 18267 var count = 0; 18268 var i, ii, rows; 18269 18270 for (i = 0, ii = figures.length; i < ii; i++) { 18271 switch (figures[i].type) { 18272 case 'lattice': 18273 rows = figures[i].coords.length / figures[i].verticesPerRow | 0; 18274 count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; 18275 break; 18276 18277 case 'triangles': 18278 count += figures[i].coords.length; 18279 break; 18280 } 18281 } 18282 18283 var coords = new Float32Array(count * 2); 18284 var colors = new Uint8Array(count * 3); 18285 var coordsMap = context.coords, 18286 colorsMap = context.colors; 18287 var pIndex = 0, 18288 cIndex = 0; 18289 18290 for (i = 0, ii = figures.length; i < ii; i++) { 18291 var figure = figures[i], 18292 ps = figure.coords, 18293 cs = figure.colors; 18294 18295 switch (figure.type) { 18296 case 'lattice': 18297 var cols = figure.verticesPerRow; 18298 rows = ps.length / cols | 0; 18299 18300 for (var row = 1; row < rows; row++) { 18301 var offset = row * cols + 1; 18302 18303 for (var col = 1; col < cols; col++, offset++) { 18304 coords[pIndex] = coordsMap[ps[offset - cols - 1]];
vendor: 4,444 bytes, lines 18305-18424
18305 coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; 18306 coords[pIndex + 2] = coordsMap[ps[offset - cols]]; 18307 coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; 18308 coords[pIndex + 4] = coordsMap[ps[offset - 1]]; 18309 coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; 18310 colors[cIndex] = colorsMap[cs[offset - cols - 1]]; 18311 colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; 18312 colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; 18313 colors[cIndex + 3] = colorsMap[cs[offset - cols]]; 18314 colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; 18315 colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; 18316 colors[cIndex + 6] = colorsMap[cs[offset - 1]]; 18317 colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; 18318 colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; 18319 coords[pIndex + 6] = coords[pIndex + 2]; 18320 coords[pIndex + 7] = coords[pIndex + 3]; 18321 coords[pIndex + 8] = coords[pIndex + 4]; 18322 coords[pIndex + 9] = coords[pIndex + 5]; 18323 coords[pIndex + 10] = coordsMap[ps[offset]]; 18324 coords[pIndex + 11] = coordsMap[ps[offset] + 1]; 18325 colors[cIndex + 9] = colors[cIndex + 3]; 18326 colors[cIndex + 10] = colors[cIndex + 4]; 18327 colors[cIndex + 11] = colors[cIndex + 5]; 18328 colors[cIndex + 12] = colors[cIndex + 6]; 18329 colors[cIndex + 13] = colors[cIndex + 7]; 18330 colors[cIndex + 14] = colors[cIndex + 8]; 18331 colors[cIndex + 15] = colorsMap[cs[offset]]; 18332 colors[cIndex + 16] = colorsMap[cs[offset] + 1]; 18333 colors[cIndex + 17] = colorsMap[cs[offset] + 2]; 18334 pIndex += 12; 18335 cIndex += 18; 18336 } 18337 } 18338 18339 break; 18340 18341 case 'triangles': 18342 for (var j = 0, jj = ps.length; j < jj; j++) { 18343 coords[pIndex] = coordsMap[ps[j]]; 18344 coords[pIndex + 1] = coordsMap[ps[j] + 1]; 18345 colors[cIndex] = colorsMap[cs[j]]; 18346 colors[cIndex + 1] = colorsMap[cs[j] + 1]; 18347 colors[cIndex + 2] = colorsMap[cs[j] + 2]; 18348 pIndex += 2; 18349 cIndex += 3; 18350 } 18351 18352 break; 18353 } 18354 } 18355 18356 if (backgroundColor) { 18357 gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); 18358 } else { 18359 gl.clearColor(0, 0, 0, 0); 18360 } 18361 18362 gl.clear(gl.COLOR_BUFFER_BIT); 18363 var coordsBuffer = gl.createBuffer(); 18364 gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); 18365 gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); 18366 gl.enableVertexAttribArray(cache.positionLocation); 18367 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 18368 var colorsBuffer = gl.createBuffer(); 18369 gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); 18370 gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); 18371 gl.enableVertexAttribArray(cache.colorLocation); 18372 gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); 18373 gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); 18374 gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); 18375 gl.drawArrays(gl.TRIANGLES, 0, count); 18376 gl.flush(); 18377 gl.deleteBuffer(coordsBuffer); 18378 gl.deleteBuffer(colorsBuffer); 18379 return canvas; 18380 } 18381 18382 return { 18383 tryInitGL: function tryInitGL() { 18384 try { 18385 generateGL(); 18386 return !!currentGL; 18387 } catch (ex) {} 18388 18389 return false; 18390 }, 18391 composeSMask: composeSMask, 18392 drawFigures: drawFigures, 18393 cleanup: function cleanup() { 18394 if (smaskCache && smaskCache.canvas) { 18395 smaskCache.canvas.width = 0; 18396 smaskCache.canvas.height = 0; 18397 } 18398 18399 if (figuresCache && figuresCache.canvas) { 18400 figuresCache.canvas.width = 0; 18401 figuresCache.canvas.height = 0; 18402 } 18403 18404 smaskCache = null; 18405 figuresCache = null; 18406 } 18407 }; 18408}(); 18409 18410/***/ }), 18411/* 162 */ 18412/***/ (function(module, exports, __w_pdfjs_require__) { 18413 18414"use strict"; 18415 18416 18417Object.defineProperty(exports, "__esModule", { 18418 value: true 18419}); 18420exports.renderTextLayer = void 0; 18421 18422var _util = __w_pdfjs_require__(1); 18423 18424var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
18425 18426function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 18427 18428var renderTextLayer = function renderTextLayerClosure() { 18429 var MAX_TEXT_DIVS_TO_RENDER = 100000; 18430 var NonWhitespaceRegexp = /\S/; 18431 18432 function isAllWhitespace(str) { 18433 return !NonWhitespaceRegexp.test(str); 18434 } 18435 18436 var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; 18437 18438 function appendText(task, geom, styles) { 18439 var textDiv = document.createElement('span'); 18440 var textDivProperties = { 18441 style: null, 18442 angle: 0, 18443 canvasWidth: 0, 18444 isWhitespace: false, 18445 originalTransform: null, 18446 paddingBottom: 0, 18447 paddingLeft: 0, 18448 paddingRight: 0, 18449 paddingTop: 0, 18450 scale: 1 18451 }; 18452 18453 task._textDivs.push(textDiv); 18454 18455 if (isAllWhitespace(geom.str)) { 18456 textDivProperties.isWhitespace = true; 18457 18458 task._textDivProperties.set(textDiv, textDivProperties); 18459 18460 return; 18461 } 18462 18463 var tx = _util.Util.transform(task._viewport.transform, geom.transform); 18464 18465 var angle = Math.atan2(tx[1], tx[0]); 18466 var style = styles[geom.fontName]; 18467 18468 if (style.vertical) { 18469 angle += Math.PI / 2; 18470 } 18471 18472 var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); 18473 var fontAscent = fontHeight; 18474 18475 if (style.ascent) { 18476 fontAscent = style.ascent * fontAscent; 18477 } else if (style.descent) { 18478 fontAscent = (1 + style.descent) * fontAscent; 18479 } 18480 18481 var left; 18482 var top; 18483 18484 if (angle === 0) { 18485 left = tx[4]; 18486 top = tx[5] - fontAscent; 18487 } else { 18488 left = tx[4] + fontAscent * Math.sin(angle); 18489 top = tx[5] - fontAscent * Math.cos(angle); 18490 } 18491 18492 styleBuf[1] = left; 18493 styleBuf[3] = top; 18494 styleBuf[5] = fontHeight; 18495 styleBuf[7] = style.fontFamily; 18496 textDivProperties.style = styleBuf.join(''); 18497 textDiv.setAttribute('style', textDivProperties.style); 18498 textDiv.textContent = geom.str; 18499 18500 if (task._fontInspectorEnabled) { 18501 textDiv.dataset.fontName = geom.fontName; 18502 } 18503 18504 if (angle !== 0) { 18505 textDivProperties.angle = angle * (180 / Math.PI); 18506 } 18507 18508 if (geom.str.length > 1) { 18509 if (style.vertical) { 18510 textDivProperties.canvasWidth = geom.height * task._viewport.scale; 18511 } else { 18512 textDivProperties.canvasWidth = geom.width * task._viewport.scale; 18513 } 18514 } 18515 18516 task._textDivProperties.set(textDiv, textDivProperties); 18517 18518 if (task._textContentStream) { 18519 task._layoutText(textDiv); 18520 } 18521 18522 if (task._enhanceTextSelection) { 18523 var angleCos = 1, 18524 angleSin = 0; 18525 18526 if (angle !== 0) { 18527 angleCos = Math.cos(angle); 18528 angleSin = Math.sin(angle); 18529 } 18530 18531 var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; 18532 var divHeight = fontHeight; 18533 var m, b; 18534 18535 if (angle !== 0) { 18536 m = [angleCos, angleSin, -angleSin, angleCos, left, top]; 18537 b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); 18538 } else { 18539 b = [left, top, left + divWidth, top + divHeight]; 18540 } 18541 18542 task._bounds.push({ 18543 left: b[0], 18544 top: b[1], 18545 right: b[2], 18546 bottom: b[3], 18547 div: textDiv, 18548 size: [divWidth, divHeight], 18549 m: m 18550 }); 18551 } 18552 } 18553 18554 function render(task) { 18555 if (task._canceled) { 18556 return; 18557 } 18558 18559 var textDivs = task._textDivs; 18560 var capability = task._capability; 18561 var textDivsLength = textDivs.length; 18562 18563 if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { 18564 task._renderingDone = true; 18565 capability.resolve(); 18566 return; 18567 } 18568 18569 if (!task._textContentStream) { 18570 for (var i = 0; i < textDivsLength; i++) { 18571 task._layoutText(textDivs[i]); 18572 } 18573 } 18574 18575 task._renderingDone = true; 18576 capability.resolve(); 18577 } 18578 18579 function expand(task) { 18580 var bounds = task._bounds; 18581 var viewport = task._viewport; 18582 var expanded = expandBounds(viewport.width, viewport.height, bounds); 18583 18584 for (var i = 0; i < expanded.length; i++) { 18585 var div = bounds[i].div; 18586 18587 var divProperties = task._textDivProperties.get(div); 18588 18589 if (divProperties.angle === 0) { 18590 divProperties.paddingLeft = bounds[i].left - expanded[i].left; 18591 divProperties.paddingTop = bounds[i].top - expanded[i].top; 18592 divProperties.paddingRight = expanded[i].right - bounds[i].right; 18593 divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; 18594 18595 task._textDivProperties.set(div, divProperties); 18596 18597 continue; 18598 } 18599 18600 var e = expanded[i], 18601 b = bounds[i]; 18602 var m = b.m, 18603 c = m[0], 18604 s = m[1];
18605 var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; 18606 var ts = new Float64Array(64); 18607 points.forEach(function (p, i) { 18608 var t = _util.Util.applyTransform(p, m); 18609 18610 ts[i + 0] = c && (e.left - t[0]) / c; 18611 ts[i + 4] = s && (e.top - t[1]) / s; 18612 ts[i + 8] = c && (e.right - t[0]) / c; 18613 ts[i + 12] = s && (e.bottom - t[1]) / s; 18614 ts[i + 16] = s && (e.left - t[0]) / -s; 18615 ts[i + 20] = c && (e.top - t[1]) / c; 18616 ts[i + 24] = s && (e.right - t[0]) / -s; 18617 ts[i + 28] = c && (e.bottom - t[1]) / c; 18618 ts[i + 32] = c && (e.left - t[0]) / -c; 18619 ts[i + 36] = s && (e.top - t[1]) / -s; 18620 ts[i + 40] = c && (e.right - t[0]) / -c; 18621 ts[i + 44] = s && (e.bottom - t[1]) / -s; 18622 ts[i + 48] = s && (e.left - t[0]) / s; 18623 ts[i + 52] = c && (e.top - t[1]) / -c; 18624 ts[i + 56] = s && (e.right - t[0]) / s; 18625 ts[i + 60] = c && (e.bottom - t[1]) / -c; 18626 }); 18627 18628 var findPositiveMin = function findPositiveMin(ts, offset, count) { 18629 var result = 0; 18630 18631 for (var i = 0; i < count; i++) { 18632 var t = ts[offset++]; 18633 18634 if (t > 0) { 18635 result = result ? Math.min(t, result) : t; 18636 } 18637 } 18638 18639 return result; 18640 }; 18641 18642 var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); 18643 divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; 18644 divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; 18645 divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; 18646 divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; 18647 18648 task._textDivProperties.set(div, divProperties); 18649 } 18650 } 18651 18652 function expandBounds(width, height, boxes) { 18653 var bounds = boxes.map(function (box, i) { 18654 return { 18655 x1: box.left, 18656 y1: box.top, 18657 x2: box.right, 18658 y2: box.bottom, 18659 index: i, 18660 x1New: undefined, 18661 x2New: undefined 18662 }; 18663 }); 18664 expandBoundsLTR(width, bounds); 18665 var expanded = new Array(boxes.length); 18666 bounds.forEach(function (b) { 18667 var i = b.index; 18668 expanded[i] = { 18669 left: b.x1New, 18670 top: 0, 18671 right: b.x2New, 18672 bottom: 0 18673 }; 18674 }); 18675 boxes.map(function (box, i) { 18676 var e = expanded[i], 18677 b = bounds[i]; 18678 b.x1 = box.top; 18679 b.y1 = width - e.right; 18680 b.x2 = box.bottom; 18681 b.y2 = width - e.left; 18682 b.index = i; 18683 b.x1New = undefined; 18684 b.x2New = undefined; 18685 }); 18686 expandBoundsLTR(height, bounds); 18687 bounds.forEach(function (b) { 18688 var i = b.index; 18689 expanded[i].top = b.x1New; 18690 expanded[i].bottom = b.x2New; 18691 }); 18692 return expanded; 18693 } 18694 18695 function expandBoundsLTR(width, bounds) { 18696 bounds.sort(function (a, b) { 18697 return a.x1 - b.x1 || a.index - b.index; 18698 }); 18699 var fakeBoundary = { 18700 x1: -Infinity, 18701 y1: -Infinity, 18702 x2: 0, 18703 y2: Infinity, 18704 index: -1, 18705 x1New: 0, 18706 x2New: 0 18707 }; 18708 var horizon = [{ 18709 start: -Infinity, 18710 end: Infinity, 18711 boundary: fakeBoundary 18712 }]; 18713 bounds.forEach(function (boundary) { 18714 var i = 0; 18715 18716 while (i < horizon.length && horizon[i].end <= boundary.y1) { 18717 i++; 18718 } 18719 18720 var j = horizon.length - 1; 18721 18722 while (j >= 0 && horizon[j].start >= boundary.y2) { 18723 j--; 18724 } 18725 18726 var horizonPart, affectedBoundary; 18727 var q, 18728 k, 18729 maxXNew = -Infinity; 18730 18731 for (q = i; q <= j; q++) { 18732 horizonPart = horizon[q]; 18733 affectedBoundary = horizonPart.boundary; 18734 var xNew; 18735 18736 if (affectedBoundary.x2 > boundary.x1) { 18737 xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; 18738 } else if (affectedBoundary.x2New === undefined) { 18739 xNew = (affectedBoundary.x2 + boundary.x1) / 2; 18740 } else { 18741 xNew = affectedBoundary.x2New; 18742 } 18743 18744 if (xNew > maxXNew) { 18745 maxXNew = xNew; 18746 } 18747 } 18748 18749 boundary.x1New = maxXNew; 18750 18751 for (q = i; q <= j; q++) { 18752 horizonPart = horizon[q]; 18753 affectedBoundary = horizonPart.boundary; 18754 18755 if (affectedBoundary.x2New === undefined) { 18756 if (affectedBoundary.x2 > boundary.x1) { 18757 if (affectedBoundary.index > boundary.index) { 18758 affectedBoundary.x2New = affectedBoundary.x2; 18759 } 18760 } else { 18761 affectedBoundary.x2New = maxXNew; 18762 } 18763 } else if (affectedBoundary.x2New > maxXNew) { 18764 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); 18765 } 18766 } 18767 18768 var changedHorizon = [], 18769 lastBoundary = null; 18770 18771 for (q = i; q <= j; q++) { 18772 horizonPart = horizon[q]; 18773 affectedBoundary = horizonPart.boundary; 18774 var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; 18775 18776 if (lastBoundary === useBoundary) { 18777 changedHorizon[changedHorizon.length - 1].end = horizonPart.end; 18778 } else { 18779 changedHorizon.push({ 18780 start: horizonPart.start, 18781 end: horizonPart.end, 18782 boundary: useBoundary 18783 }); 18784 lastBoundary = useBoundary; 18785 } 18786 } 18787 18788 if (horizon[i].start < boundary.y1) { 18789 changedHorizon[0].start = boundary.y1; 18790 changedHorizon.unshift({ 18791 start: horizon[i].start, 18792 end: boundary.y1, 18793 boundary: horizon[i].boundary 18794 }); 18795 } 18796 18797 if (boundary.y2 < horizon[j].end) { 18798 changedHorizon[changedHorizon.length - 1].end = boundary.y2; 18799 changedHorizon.push({ 18800 start: boundary.y2, 18801 end: horizon[j].end, 18802 boundary: horizon[j].boundary 18803 }); 18804 } 18805 18806 for (q = i; q <= j; q++) { 18807 horizonPart = horizon[q]; 18808 affectedBoundary = horizonPart.boundary; 18809 18810 if (affectedBoundary.x2New !== undefined) { 18811 continue; 18812 } 18813 18814 var used = false; 18815 18816 for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { 18817 used = horizon[k].boundary === affectedBoundary; 18818 } 18819 18820 for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { 18821 used = horizon[k].boundary === affectedBoundary; 18822 } 18823 18824 for (k = 0; !used && k < changedHorizon.length; k++) { 18825 used = changedHorizon[k].boundary === affectedBoundary; 18826 } 18827 18828 if (!used) { 18829 affectedBoundary.x2New = maxXNew; 18830 } 18831 } 18832 18833 Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); 18834 });
18835 horizon.forEach(function (horizonPart) { 18836 var affectedBoundary = horizonPart.boundary; 18837 18838 if (affectedBoundary.x2New === undefined) { 18839 affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); 18840 } 18841 }); 18842 } 18843 18844 function TextLayerRenderTask(_ref) { 18845 var textContent = _ref.textContent, 18846 textContentStream = _ref.textContentStream, 18847 container = _ref.container, 18848 viewport = _ref.viewport, 18849 textDivs = _ref.textDivs, 18850 textContentItemsStr = _ref.textContentItemsStr, 18851 enhanceTextSelection = _ref.enhanceTextSelection; 18852 this._textContent = textContent; 18853 this._textContentStream = textContentStream; 18854 this._container = container; 18855 this._viewport = viewport; 18856 this._textDivs = textDivs || []; 18857 this._textContentItemsStr = textContentItemsStr || []; 18858 this._enhanceTextSelection = !!enhanceTextSelection; 18859 this._fontInspectorEnabled = !!(_global_scope.default.FontInspector && _global_scope.default.FontInspector.enabled); 18860 this._reader = null; 18861 this._layoutTextLastFontSize = null; 18862 this._layoutTextLastFontFamily = null; 18863 this._layoutTextCtx = null; 18864 this._textDivProperties = new WeakMap(); 18865 this._renderingDone = false; 18866 this._canceled = false; 18867 this._capability = (0, _util.createPromiseCapability)(); 18868 this._renderTimer = null; 18869 this._bounds = []; 18870 } 18871 18872 TextLayerRenderTask.prototype = { 18873 get promise() { 18874 return this._capability.promise; 18875 }, 18876 18877 cancel: function TextLayer_cancel() { 18878 if (this._reader) { 18879 this._reader.cancel(new _util.AbortException('text layer task cancelled')); 18880 18881 this._reader = null; 18882 } 18883 18884 this._canceled = true; 18885 18886 if (this._renderTimer !== null) { 18887 clearTimeout(this._renderTimer); 18888 this._renderTimer = null; 18889 } 18890 18891 this._capability.reject('canceled'); 18892 }, 18893 _processItems: function _processItems(items, styleCache) { 18894 for (var i = 0, len = items.length; i < len; i++) { 18895 this._textContentItemsStr.push(items[i].str); 18896 18897 appendText(this, items[i], styleCache); 18898 } 18899 }, 18900 _layoutText: function _layoutText(textDiv) { 18901 var textLayerFrag = this._container; 18902 18903 var textDivProperties = this._textDivProperties.get(textDiv); 18904 18905 if (textDivProperties.isWhitespace) { 18906 return; 18907 } 18908 18909 var fontSize = textDiv.style.fontSize; 18910 var fontFamily = textDiv.style.fontFamily; 18911 18912 if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { 18913 this._layoutTextCtx.font = fontSize + ' ' + fontFamily; 18914 this._layoutTextLastFontSize = fontSize; 18915 this._layoutTextLastFontFamily = fontFamily; 18916 } 18917 18918 var width = this._layoutTextCtx.measureText(textDiv.textContent).width; 18919 18920 var transform = ''; 18921 18922 if (textDivProperties.canvasWidth !== 0 && width > 0) { 18923 textDivProperties.scale = textDivProperties.canvasWidth / width; 18924 transform = "scaleX(".concat(textDivProperties.scale, ")"); 18925 } 18926 18927 if (textDivProperties.angle !== 0) { 18928 transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); 18929 } 18930 18931 if (transform.length > 0) { 18932 textDivProperties.originalTransform = transform; 18933 textDiv.style.transform = transform; 18934 } 18935 18936 this._textDivProperties.set(textDiv, textDivProperties); 18937 18938 textLayerFrag.appendChild(textDiv); 18939 }, 18940 _render: function TextLayer_render(timeout) { 18941 var _this = this; 18942 18943 var capability = (0, _util.createPromiseCapability)(); 18944 var styleCache = Object.create(null); 18945 var canvas = document.createElement('canvas'); 18946 canvas.mozOpaque = true; 18947 this._layoutTextCtx = canvas.getContext('2d', { 18948 alpha: false 18949 }); 18950 18951 if (this._textContent) { 18952 var textItems = this._textContent.items; 18953 var textStyles = this._textContent.styles; 18954 18955 this._processItems(textItems, textStyles); 18956 18957 capability.resolve(); 18958 } else if (this._textContentStream) { 18959 var pump = function pump() { 18960 _this._reader.read().then(function (_ref2) { 18961 var value = _ref2.value, 18962 done = _ref2.done; 18963 18964 if (done) { 18965 capability.resolve(); 18966 return; 18967 } 18968 18969 Object.assign(styleCache, value.styles); 18970 18971 _this._processItems(value.items, styleCache); 18972 18973 pump(); 18974 }, capability.reject); 18975 }; 18976 18977 this._reader = this._textContentStream.getReader(); 18978 pump(); 18979 } else { 18980 throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); 18981 } 18982 18983 capability.promise.then(function () { 18984 styleCache = null; 18985 18986 if (!timeout) { 18987 render(_this); 18988 } else { 18989 _this._renderTimer = setTimeout(function () { 18990 render(_this); 18991 _this._renderTimer = null; 18992 }, timeout); 18993 } 18994 }, this._capability.reject); 18995 }, 18996 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { 18997 if (!this._enhanceTextSelection || !this._renderingDone) { 18998 return; 18999 } 19000 19001 if (this._bounds !== null) { 19002 expand(this); 19003 this._bounds = null; 19004 } 19005 19006 for (var i = 0, ii = this._textDivs.length; i < ii; i++) { 19007 var div = this._textDivs[i]; 19008 19009 var divProperties = this._textDivProperties.get(div); 19010 19011 if (divProperties.isWhitespace) { 19012 continue; 19013 } 19014 19015 if (expandDivs) { 19016 var transform = '', 19017 padding = ''; 19018 19019 if (divProperties.scale !== 1) { 19020 transform = 'scaleX(' + divProperties.scale + ')'; 19021 } 19022 19023 if (divProperties.angle !== 0) { 19024 transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; 19025 } 19026 19027 if (divProperties.paddingLeft !== 0) { 19028 padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; 19029 transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; 19030 } 19031 19032 if (divProperties.paddingTop !== 0) { 19033 padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; 19034 transform += ' translateY(' + -divProperties.paddingTop + 'px)'; 19035 } 19036 19037 if (divProperties.paddingRight !== 0) { 19038 padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; 19039 } 19040 19041 if (divProperties.paddingBottom !== 0) { 19042 padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; 19043 } 19044 19045 if (padding !== '') { 19046 div.setAttribute('style', divProperties.style + padding); 19047 } 19048 19049 if (transform !== '') { 19050 div.style.transform = transform; 19051 } 19052 } else { 19053 div.style.padding = 0; 19054 div.style.transform = divProperties.originalTransform || ''; 19055 } 19056 } 19057 } 19058 }; 19059 19060 function renderTextLayer(renderParameters) { 19061 var task = new TextLayerRenderTask({ 19062 textContent: renderParameters.textContent, 19063 textContentStream: renderParameters.textContentStream, 19064 container: renderParameters.container, 19065 viewport: renderParameters.viewport, 19066 textDivs: renderParameters.textDivs, 19067 textContentItemsStr: renderParameters.textContentItemsStr, 19068 enhanceTextSelection: renderParameters.enhanceTextSelection 19069 });
19070 19071 task._render(renderParameters.timeout); 19072 19073 return task; 19074 } 19075 19076 return renderTextLayer; 19077}(); 19078 19079exports.renderTextLayer = renderTextLayer; 19080 19081/***/ }), 19082/* 163 */ 19083/***/ (function(module, exports, __w_pdfjs_require__) { 19084 19085"use strict"; 19086 19087 19088Object.defineProperty(exports, "__esModule", { 19089 value: true 19090}); 19091exports.AnnotationLayer = void 0; 19092 19093var _dom_utils = __w_pdfjs_require__(151); 19094 19095var _util = __w_pdfjs_require__(1); 19096 19097function _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); } 19098 19099function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } 19100 19101function _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); } 19102 19103function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 19104 19105function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 19106 19107function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 19108 19109function _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); } 19110 19111function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 19112 19113function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 19114 19115function _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); } } 19116 19117function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 19118 19119var AnnotationElementFactory = 19120/*#__PURE__*/ 19121function () { 19122 function AnnotationElementFactory() { 19123 _classCallCheck(this, AnnotationElementFactory); 19124 } 19125 19126 _createClass(AnnotationElementFactory, null, [{ 19127 key: "create", 19128 value: function create(parameters) { 19129 var subtype = parameters.data.annotationType; 19130 19131 switch (subtype) { 19132 case _util.AnnotationType.LINK: 19133 return new LinkAnnotationElement(parameters); 19134 19135 case _util.AnnotationType.TEXT: 19136 return new TextAnnotationElement(parameters); 19137 19138 case _util.AnnotationType.WIDGET: 19139 var fieldType = parameters.data.fieldType; 19140 19141 switch (fieldType) { 19142 case 'Tx': 19143 return new TextWidgetAnnotationElement(parameters); 19144 19145 case 'Btn': 19146 if (parameters.data.radioButton) { 19147 return new RadioButtonWidgetAnnotationElement(parameters); 19148 } else if (parameters.data.checkBox) { 19149 return new CheckboxWidgetAnnotationElement(parameters); 19150 } 19151 19152 return new PushButtonWidgetAnnotationElement(parameters); 19153 19154 case 'Ch': 19155 return new ChoiceWidgetAnnotationElement(parameters); 19156 } 19157 19158 return new WidgetAnnotationElement(parameters); 19159 19160 case _util.AnnotationType.POPUP: 19161 return new PopupAnnotationElement(parameters); 19162 19163 case _util.AnnotationType.LINE: 19164 return new LineAnnotationElement(parameters); 19165 19166 case _util.AnnotationType.SQUARE: 19167 return new SquareAnnotationElement(parameters); 19168 19169 case _util.AnnotationType.CIRCLE: 19170 return new CircleAnnotationElement(parameters); 19171 19172 case _util.AnnotationType.POLYLINE: 19173 return new PolylineAnnotationElement(parameters); 19174 19175 case _util.AnnotationType.INK: 19176 return new InkAnnotationElement(parameters); 19177 19178 case _util.AnnotationType.POLYGON: 19179 return new PolygonAnnotationElement(parameters); 19180 19181 case _util.AnnotationType.HIGHLIGHT: 19182 return new HighlightAnnotationElement(parameters); 19183 19184 case _util.AnnotationType.UNDERLINE: 19185 return new UnderlineAnnotationElement(parameters); 19186 19187 case _util.AnnotationType.SQUIGGLY: 19188 return new SquigglyAnnotationElement(parameters); 19189 19190 case _util.AnnotationType.STRIKEOUT: 19191 return new StrikeOutAnnotationElement(parameters); 19192 19193 case _util.AnnotationType.STAMP: 19194 return new StampAnnotationElement(parameters); 19195 19196 case _util.AnnotationType.FILEATTACHMENT: 19197 return new FileAttachmentAnnotationElement(parameters); 19198 19199 default: 19200 return new AnnotationElement(parameters); 19201 } 19202 } 19203 }]); 19204 19205 return AnnotationElementFactory;
19206}(); 19207 19208var AnnotationElement = 19209/*#__PURE__*/ 19210function () { 19211 function AnnotationElement(parameters) { 19212 var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 19213 var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 19214 19215 _classCallCheck(this, AnnotationElement); 19216 19217 this.isRenderable = isRenderable; 19218 this.data = parameters.data; 19219 this.layer = parameters.layer; 19220 this.page = parameters.page; 19221 this.viewport = parameters.viewport; 19222 this.linkService = parameters.linkService; 19223 this.downloadManager = parameters.downloadManager; 19224 this.imageResourcesPath = parameters.imageResourcesPath; 19225 this.renderInteractiveForms = parameters.renderInteractiveForms; 19226 this.svgFactory = parameters.svgFactory; 19227 19228 if (isRenderable) { 19229 this.container = this._createContainer(ignoreBorder); 19230 } 19231 } 19232 19233 _createClass(AnnotationElement, [{ 19234 key: "_createContainer", 19235 value: function _createContainer() { 19236 var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 19237 var data = this.data, 19238 page = this.page, 19239 viewport = this.viewport; 19240 var container = document.createElement('section'); 19241 var width = data.rect[2] - data.rect[0]; 19242 var height = data.rect[3] - data.rect[1]; 19243 container.setAttribute('data-annotation-id', data.id); 19244 19245 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]]); 19246 19247 container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; 19248 container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; 19249 19250 if (!ignoreBorder && data.borderStyle.width > 0) { 19251 container.style.borderWidth = data.borderStyle.width + 'px'; 19252 19253 if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { 19254 width = width - 2 * data.borderStyle.width; 19255 height = height - 2 * data.borderStyle.width; 19256 } 19257 19258 var horizontalRadius = data.borderStyle.horizontalCornerRadius; 19259 var verticalRadius = data.borderStyle.verticalCornerRadius; 19260 19261 if (horizontalRadius > 0 || verticalRadius > 0) { 19262 var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; 19263 container.style.borderRadius = radius; 19264 } 19265 19266 switch (data.borderStyle.style) { 19267 case _util.AnnotationBorderStyleType.SOLID: 19268 container.style.borderStyle = 'solid'; 19269 break; 19270 19271 case _util.AnnotationBorderStyleType.DASHED: 19272 container.style.borderStyle = 'dashed'; 19273 break; 19274 19275 case _util.AnnotationBorderStyleType.BEVELED: 19276 (0, _util.warn)('Unimplemented border style: beveled'); 19277 break; 19278 19279 case _util.AnnotationBorderStyleType.INSET: 19280 (0, _util.warn)('Unimplemented border style: inset'); 19281 break; 19282 19283 case _util.AnnotationBorderStyleType.UNDERLINE: 19284 container.style.borderBottomStyle = 'solid'; 19285 break; 19286 19287 default: 19288 break; 19289 } 19290 19291 if (data.color) { 19292 container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); 19293 } else { 19294 container.style.borderWidth = 0; 19295 } 19296 } 19297 19298 container.style.left = rect[0] + 'px'; 19299 container.style.top = rect[1] + 'px'; 19300 container.style.width = width + 'px'; 19301 container.style.height = height + 'px'; 19302 return container; 19303 } 19304 }, { 19305 key: "_createPopup", 19306 value: function _createPopup(container, trigger, data) { 19307 if (!trigger) { 19308 trigger = document.createElement('div'); 19309 trigger.style.height = container.style.height; 19310 trigger.style.width = container.style.width; 19311 container.appendChild(trigger); 19312 } 19313 19314 var popupElement = new PopupElement({ 19315 container: container, 19316 trigger: trigger, 19317 color: data.color, 19318 title: data.title, 19319 contents: data.contents, 19320 hideWrapper: true 19321 }); 19322 var popup = popupElement.render(); 19323 popup.style.left = container.style.width;
19324 container.appendChild(popup); 19325 } 19326 }, { 19327 key: "render", 19328 value: function render() { 19329 (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); 19330 } 19331 }]); 19332 19333 return AnnotationElement; 19334}(); 19335 19336var LinkAnnotationElement = 19337/*#__PURE__*/ 19338function (_AnnotationElement) { 19339 _inherits(LinkAnnotationElement, _AnnotationElement); 19340 19341 function LinkAnnotationElement(parameters) { 19342 _classCallCheck(this, LinkAnnotationElement); 19343 19344 var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); 19345 return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable)); 19346 } 19347 19348 _createClass(LinkAnnotationElement, [{ 19349 key: "render", 19350 value: function render() { 19351 this.container.className = 'linkAnnotation'; 19352 var data = this.data, 19353 linkService = this.linkService; 19354 var link = document.createElement('a'); 19355 (0, _dom_utils.addLinkAttributes)(link, { 19356 url: data.url, 19357 target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget, 19358 rel: linkService.externalLinkRel 19359 }); 19360 19361 if (!data.url) { 19362 if (data.action) { 19363 this._bindNamedAction(link, data.action); 19364 } else { 19365 this._bindLink(link, data.dest); 19366 } 19367 } 19368 19369 this.container.appendChild(link); 19370 return this.container; 19371 } 19372 }, { 19373 key: "_bindLink", 19374 value: function _bindLink(link, destination) { 19375 var _this = this; 19376 19377 link.href = this.linkService.getDestinationHash(destination); 19378 19379 link.onclick = function () { 19380 if (destination) { 19381 _this.linkService.navigateTo(destination); 19382 } 19383 19384 return false; 19385 }; 19386 19387 if (destination) { 19388 link.className = 'internalLink'; 19389 } 19390 } 19391 }, { 19392 key: "_bindNamedAction", 19393 value: function _bindNamedAction(link, action) { 19394 var _this2 = this; 19395 19396 link.href = this.linkService.getAnchorUrl(''); 19397 19398 link.onclick = function () { 19399 _this2.linkService.executeNamedAction(action); 19400 19401 return false; 19402 }; 19403 19404 link.className = 'internalLink'; 19405 } 19406 }]); 19407 19408 return LinkAnnotationElement; 19409}(AnnotationElement); 19410 19411var TextAnnotationElement = 19412/*#__PURE__*/ 19413function (_AnnotationElement2) { 19414 _inherits(TextAnnotationElement, _AnnotationElement2); 19415 19416 function TextAnnotationElement(parameters) { 19417 _classCallCheck(this, TextAnnotationElement); 19418 19419 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 19420 return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable)); 19421 } 19422 19423 _createClass(TextAnnotationElement, [{ 19424 key: "render", 19425 value: function render() { 19426 this.container.className = 'textAnnotation'; 19427 var image = document.createElement('img'); 19428 image.style.height = this.container.style.height; 19429 image.style.width = this.container.style.width; 19430 image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; 19431 image.alt = '[{{type}} Annotation]'; 19432 image.dataset.l10nId = 'text_annotation_type'; 19433 image.dataset.l10nArgs = JSON.stringify({ 19434 type: this.data.name 19435 }); 19436 19437 if (!this.data.hasPopup) { 19438 this._createPopup(this.container, image, this.data); 19439 } 19440 19441 this.container.appendChild(image); 19442 return this.container; 19443 } 19444 }]); 19445 19446 return TextAnnotationElement; 19447}(AnnotationElement); 19448 19449var WidgetAnnotationElement = 19450/*#__PURE__*/ 19451function (_AnnotationElement3) { 19452 _inherits(WidgetAnnotationElement, _AnnotationElement3); 19453 19454 function WidgetAnnotationElement() { 19455 _classCallCheck(this, WidgetAnnotationElement); 19456 19457 return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments)); 19458 } 19459 19460 _createClass(WidgetAnnotationElement, [{ 19461 key: "render", 19462 value: function render() { 19463 return this.container; 19464 } 19465 }]); 19466 19467 return WidgetAnnotationElement; 19468}(AnnotationElement); 19469 19470var TextWidgetAnnotationElement = 19471/*#__PURE__*/ 19472function (_WidgetAnnotationElem) { 19473 _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); 19474 19475 function TextWidgetAnnotationElement(parameters) { 19476 _classCallCheck(this, TextWidgetAnnotationElement); 19477 19478 var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; 19479 return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable)); 19480 } 19481 19482 _createClass(TextWidgetAnnotationElement, [{ 19483 key: "render", 19484 value: function render() { 19485 var TEXT_ALIGNMENT = ['left', 'center', 'right']; 19486 this.container.className = 'textWidgetAnnotation'; 19487 var element = null; 19488 19489 if (this.renderInteractiveForms) { 19490 if (this.data.multiLine) { 19491 element = document.createElement('textarea'); 19492 element.textContent = this.data.fieldValue; 19493 } else { 19494 element = document.createElement('input'); 19495 element.type = 'text'; 19496 element.setAttribute('value', this.data.fieldValue); 19497 } 19498 19499 element.disabled = this.data.readOnly; 19500 19501 if (this.data.maxLen !== null) { 19502 element.maxLength = this.data.maxLen; 19503 } 19504 19505 if (this.data.comb) { 19506 var fieldWidth = this.data.rect[2] - this.data.rect[0];
19507 var combWidth = fieldWidth / this.data.maxLen; 19508 element.classList.add('comb'); 19509 element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; 19510 } 19511 } else { 19512 element = document.createElement('div'); 19513 element.textContent = this.data.fieldValue; 19514 element.style.verticalAlign = 'middle'; 19515 element.style.display = 'table-cell'; 19516 var font = null; 19517 19518 if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) { 19519 font = this.page.commonObjs.get(this.data.fontRefName); 19520 } 19521 19522 this._setTextStyle(element, font); 19523 } 19524 19525 if (this.data.textAlignment !== null) { 19526 element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; 19527 } 19528 19529 this.container.appendChild(element); 19530 return this.container; 19531 } 19532 }, { 19533 key: "_setTextStyle", 19534 value: function _setTextStyle(element, font) { 19535 var style = element.style; 19536 style.fontSize = this.data.fontSize + 'px'; 19537 style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; 19538 19539 if (!font) { 19540 return; 19541 } 19542 19543 style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; 19544 style.fontStyle = font.italic ? 'italic' : 'normal'; 19545 var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; 19546 var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; 19547 style.fontFamily = fontFamily + fallbackName; 19548 } 19549 }]); 19550 19551 return TextWidgetAnnotationElement; 19552}(WidgetAnnotationElement); 19553 19554var CheckboxWidgetAnnotationElement = 19555/*#__PURE__*/ 19556function (_WidgetAnnotationElem2) { 19557 _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); 19558 19559 function CheckboxWidgetAnnotationElement(parameters) { 19560 _classCallCheck(this, CheckboxWidgetAnnotationElement); 19561 19562 return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); 19563 } 19564 19565 _createClass(CheckboxWidgetAnnotationElement, [{ 19566 key: "render", 19567 value: function render() { 19568 this.container.className = 'buttonWidgetAnnotation checkBox'; 19569 var element = document.createElement('input'); 19570 element.disabled = this.data.readOnly; 19571 element.type = 'checkbox'; 19572 19573 if (this.data.fieldValue && this.data.fieldValue !== 'Off') { 19574 element.setAttribute('checked', true); 19575 } 19576 19577 this.container.appendChild(element); 19578 return this.container; 19579 } 19580 }]); 19581 19582 return CheckboxWidgetAnnotationElement; 19583}(WidgetAnnotationElement); 19584 19585var RadioButtonWidgetAnnotationElement = 19586/*#__PURE__*/ 19587function (_WidgetAnnotationElem3) { 19588 _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); 19589 19590 function RadioButtonWidgetAnnotationElement(parameters) { 19591 _classCallCheck(this, RadioButtonWidgetAnnotationElement); 19592 19593 return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); 19594 } 19595 19596 _createClass(RadioButtonWidgetAnnotationElement, [{ 19597 key: "render", 19598 value: function render() { 19599 this.container.className = 'buttonWidgetAnnotation radioButton'; 19600 var element = document.createElement('input'); 19601 element.disabled = this.data.readOnly; 19602 element.type = 'radio'; 19603 element.name = this.data.fieldName; 19604 19605 if (this.data.fieldValue === this.data.buttonValue) { 19606 element.setAttribute('checked', true); 19607 } 19608 19609 this.container.appendChild(element); 19610 return this.container; 19611 } 19612 }]); 19613 19614 return RadioButtonWidgetAnnotationElement; 19615}(WidgetAnnotationElement); 19616 19617var PushButtonWidgetAnnotationElement = 19618/*#__PURE__*/ 19619function (_LinkAnnotationElemen) { 19620 _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); 19621 19622 function PushButtonWidgetAnnotationElement() { 19623 _classCallCheck(this, PushButtonWidgetAnnotationElement); 19624 19625 return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments)); 19626 } 19627 19628 _createClass(PushButtonWidgetAnnotationElement, [{ 19629 key: "render", 19630 value: function render() { 19631 var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); 19632 19633 container.className = 'buttonWidgetAnnotation pushButton'; 19634 return container; 19635 } 19636 }]); 19637 19638 return PushButtonWidgetAnnotationElement; 19639}(LinkAnnotationElement); 19640 19641var ChoiceWidgetAnnotationElement = 19642/*#__PURE__*/ 19643function (_WidgetAnnotationElem4) { 19644 _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); 19645 19646 function ChoiceWidgetAnnotationElement(parameters) { 19647 _classCallCheck(this, ChoiceWidgetAnnotationElement); 19648 19649 return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); 19650 } 19651 19652 _createClass(ChoiceWidgetAnnotationElement, [{ 19653 key: "render", 19654 value: function render() { 19655 this.container.className = 'choiceWidgetAnnotation'; 19656 var selectElement = document.createElement('select'); 19657 selectElement.disabled = this.data.readOnly; 19658 19659 if (!this.data.combo) { 19660 selectElement.size = this.data.options.length; 19661 19662 if (this.data.multiSelect) { 19663 selectElement.multiple = true; 19664 } 19665 } 19666 19667 for (var i = 0, ii = this.data.options.length; i < ii; i++) { 19668 var option = this.data.options[i]; 19669 var optionElement = document.createElement('option'); 19670 optionElement.textContent = option.displayValue; 19671 optionElement.value = option.exportValue; 19672 19673 if (this.data.fieldValue.includes(option.displayValue)) { 19674 optionElement.setAttribute('selected', true); 19675 } 19676 19677 selectElement.appendChild(optionElement); 19678 } 19679 19680 this.container.appendChild(selectElement); 19681 return this.container; 19682 } 19683 }]); 19684 19685 return ChoiceWidgetAnnotationElement; 19686}(WidgetAnnotationElement); 19687 19688var PopupAnnotationElement = 19689/*#__PURE__*/ 19690function (_AnnotationElement4) { 19691 _inherits(PopupAnnotationElement, _AnnotationElement4); 19692 19693 function PopupAnnotationElement(parameters) { 19694 _classCallCheck(this, PopupAnnotationElement); 19695 19696 var isRenderable = !!(parameters.data.title || parameters.data.contents); 19697 return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable)); 19698 } 19699 19700 _createClass(PopupAnnotationElement, [{ 19701 key: "render", 19702 value: function render() { 19703 var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; 19704 this.container.className = 'popupAnnotation'; 19705 19706 if (IGNORE_TYPES.includes(this.data.parentType)) { 19707 return this.container; 19708 } 19709 19710 var selector = '[data-annotation-id="' + this.data.parentId + '"]'; 19711 var parentElement = this.layer.querySelector(selector); 19712 19713 if (!parentElement) { 19714 return this.container; 19715 } 19716 19717 var popup = new PopupElement({ 19718 container: this.container, 19719 trigger: parentElement, 19720 color: this.data.color, 19721 title: this.data.title, 19722 contents: this.data.contents 19723 }); 19724 var parentLeft = parseFloat(parentElement.style.left); 19725 var parentWidth = parseFloat(parentElement.style.width); 19726 this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; 19727 this.container.style.left = parentLeft + parentWidth + 'px';
19728 this.container.appendChild(popup.render()); 19729 return this.container; 19730 } 19731 }]); 19732 19733 return PopupAnnotationElement; 19734}(AnnotationElement); 19735 19736var PopupElement = 19737/*#__PURE__*/ 19738function () { 19739 function PopupElement(parameters) { 19740 _classCallCheck(this, PopupElement); 19741 19742 this.container = parameters.container; 19743 this.trigger = parameters.trigger; 19744 this.color = parameters.color; 19745 this.title = parameters.title; 19746 this.contents = parameters.contents; 19747 this.hideWrapper = parameters.hideWrapper || false; 19748 this.pinned = false; 19749 } 19750 19751 _createClass(PopupElement, [{ 19752 key: "render", 19753 value: function render() { 19754 var BACKGROUND_ENLIGHT = 0.7; 19755 var wrapper = document.createElement('div'); 19756 wrapper.className = 'popupWrapper'; 19757 this.hideElement = this.hideWrapper ? wrapper : this.container; 19758 this.hideElement.setAttribute('hidden', true); 19759 var popup = document.createElement('div'); 19760 popup.className = 'popup'; 19761 var color = this.color; 19762 19763 if (color) { 19764 var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; 19765 var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; 19766 var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; 19767 popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); 19768 } 19769 19770 var contents = this._formatContents(this.contents); 19771 19772 var title = document.createElement('h1'); 19773 title.textContent = this.title; 19774 this.trigger.addEventListener('click', this._toggle.bind(this)); 19775 this.trigger.addEventListener('mouseover', this._show.bind(this, false)); 19776 this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); 19777 popup.addEventListener('click', this._hide.bind(this, true)); 19778 popup.appendChild(title); 19779 popup.appendChild(contents); 19780 wrapper.appendChild(popup); 19781 return wrapper; 19782 } 19783 }, { 19784 key: "_formatContents", 19785 value: function _formatContents(contents) { 19786 var p = document.createElement('p'); 19787 var lines = contents.split(/(?:\r\n?|\n)/); 19788 19789 for (var i = 0, ii = lines.length; i < ii; ++i) { 19790 var line = lines[i]; 19791 p.appendChild(document.createTextNode(line)); 19792 19793 if (i < ii - 1) { 19794 p.appendChild(document.createElement('br')); 19795 } 19796 } 19797 19798 return p; 19799 } 19800 }, { 19801 key: "_toggle", 19802 value: function _toggle() { 19803 if (this.pinned) { 19804 this._hide(true); 19805 } else { 19806 this._show(true); 19807 } 19808 } 19809 }, { 19810 key: "_show", 19811 value: function _show() { 19812 var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 19813 19814 if (pin) { 19815 this.pinned = true; 19816 } 19817 19818 if (this.hideElement.hasAttribute('hidden')) { 19819 this.hideElement.removeAttribute('hidden'); 19820 this.container.style.zIndex += 1;
19821 } 19822 } 19823 }, { 19824 key: "_hide", 19825 value: function _hide() { 19826 var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 19827 19828 if (unpin) { 19829 this.pinned = false; 19830 } 19831 19832 if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { 19833 this.hideElement.setAttribute('hidden', true); 19834 this.container.style.zIndex -= 1; 19835 } 19836 } 19837 }]); 19838 19839 return PopupElement; 19840}(); 19841 19842var LineAnnotationElement = 19843/*#__PURE__*/ 19844function (_AnnotationElement5) { 19845 _inherits(LineAnnotationElement, _AnnotationElement5); 19846 19847 function LineAnnotationElement(parameters) { 19848 _classCallCheck(this, LineAnnotationElement); 19849 19850 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 19851 return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true)); 19852 } 19853 19854 _createClass(LineAnnotationElement, [{ 19855 key: "render", 19856 value: function render() { 19857 this.container.className = 'lineAnnotation'; 19858 var data = this.data; 19859 var width = data.rect[2] - data.rect[0]; 19860 var height = data.rect[3] - data.rect[1]; 19861 var svg = this.svgFactory.create(width, height); 19862 var line = this.svgFactory.createElement('svg:line'); 19863 line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); 19864 line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); 19865 line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); 19866 line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); 19867 line.setAttribute('stroke-width', data.borderStyle.width); 19868 line.setAttribute('stroke', 'transparent'); 19869 svg.appendChild(line); 19870 this.container.append(svg); 19871 19872 this._createPopup(this.container, line, data); 19873 19874 return this.container; 19875 } 19876 }]); 19877 19878 return LineAnnotationElement; 19879}(AnnotationElement); 19880 19881var SquareAnnotationElement = 19882/*#__PURE__*/ 19883function (_AnnotationElement6) { 19884 _inherits(SquareAnnotationElement, _AnnotationElement6); 19885 19886 function SquareAnnotationElement(parameters) { 19887 _classCallCheck(this, SquareAnnotationElement); 19888 19889 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 19890 return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true)); 19891 } 19892 19893 _createClass(SquareAnnotationElement, [{ 19894 key: "render", 19895 value: function render() { 19896 this.container.className = 'squareAnnotation'; 19897 var data = this.data; 19898 var width = data.rect[2] - data.rect[0]; 19899 var height = data.rect[3] - data.rect[1]; 19900 var svg = this.svgFactory.create(width, height); 19901 var borderWidth = data.borderStyle.width; 19902 var square = this.svgFactory.createElement('svg:rect'); 19903 square.setAttribute('x', borderWidth / 2); 19904 square.setAttribute('y', borderWidth / 2); 19905 square.setAttribute('width', width - borderWidth); 19906 square.setAttribute('height', height - borderWidth); 19907 square.setAttribute('stroke-width', borderWidth); 19908 square.setAttribute('stroke', 'transparent'); 19909 square.setAttribute('fill', 'none'); 19910 svg.appendChild(square); 19911 this.container.append(svg); 19912 19913 this._createPopup(this.container, square, data); 19914 19915 return this.container; 19916 } 19917 }]); 19918 19919 return SquareAnnotationElement; 19920}(AnnotationElement); 19921 19922var CircleAnnotationElement = 19923/*#__PURE__*/ 19924function (_AnnotationElement7) { 19925 _inherits(CircleAnnotationElement, _AnnotationElement7); 19926 19927 function CircleAnnotationElement(parameters) { 19928 _classCallCheck(this, CircleAnnotationElement); 19929 19930 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 19931 return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true)); 19932 } 19933 19934 _createClass(CircleAnnotationElement, [{ 19935 key: "render", 19936 value: function render() { 19937 this.container.className = 'circleAnnotation'; 19938 var data = this.data; 19939 var width = data.rect[2] - data.rect[0];
19940 var height = data.rect[3] - data.rect[1]; 19941 var svg = this.svgFactory.create(width, height); 19942 var borderWidth = data.borderStyle.width; 19943 var circle = this.svgFactory.createElement('svg:ellipse'); 19944 circle.setAttribute('cx', width / 2); 19945 circle.setAttribute('cy', height / 2); 19946 circle.setAttribute('rx', width / 2 - borderWidth / 2); 19947 circle.setAttribute('ry', height / 2 - borderWidth / 2); 19948 circle.setAttribute('stroke-width', borderWidth); 19949 circle.setAttribute('stroke', 'transparent'); 19950 circle.setAttribute('fill', 'none'); 19951 svg.appendChild(circle); 19952 this.container.append(svg); 19953 19954 this._createPopup(this.container, circle, data); 19955 19956 return this.container; 19957 } 19958 }]); 19959 19960 return CircleAnnotationElement; 19961}(AnnotationElement); 19962 19963var PolylineAnnotationElement = 19964/*#__PURE__*/ 19965function (_AnnotationElement8) { 19966 _inherits(PolylineAnnotationElement, _AnnotationElement8); 19967 19968 function PolylineAnnotationElement(parameters) { 19969 var _this3; 19970 19971 _classCallCheck(this, PolylineAnnotationElement); 19972 19973 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 19974 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true)); 19975 _this3.containerClassName = 'polylineAnnotation'; 19976 _this3.svgElementName = 'svg:polyline'; 19977 return _this3; 19978 } 19979 19980 _createClass(PolylineAnnotationElement, [{ 19981 key: "render", 19982 value: function render() { 19983 this.container.className = this.containerClassName; 19984 var data = this.data; 19985 var width = data.rect[2] - data.rect[0]; 19986 var height = data.rect[3] - data.rect[1]; 19987 var svg = this.svgFactory.create(width, height); 19988 var vertices = data.vertices; 19989 var points = []; 19990 19991 for (var i = 0, ii = vertices.length; i < ii; i++) { 19992 var x = vertices[i].x - data.rect[0]; 19993 var y = data.rect[3] - vertices[i].y; 19994 points.push(x + ',' + y); 19995 } 19996 19997 points = points.join(' '); 19998 var borderWidth = data.borderStyle.width; 19999 var polyline = this.svgFactory.createElement(this.svgElementName); 20000 polyline.setAttribute('points', points); 20001 polyline.setAttribute('stroke-width', borderWidth); 20002 polyline.setAttribute('stroke', 'transparent'); 20003 polyline.setAttribute('fill', 'none'); 20004 svg.appendChild(polyline); 20005 this.container.append(svg); 20006 20007 this._createPopup(this.container, polyline, data); 20008 20009 return this.container; 20010 } 20011 }]); 20012 20013 return PolylineAnnotationElement; 20014}(AnnotationElement); 20015 20016var PolygonAnnotationElement = 20017/*#__PURE__*/ 20018function (_PolylineAnnotationEl) { 20019 _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); 20020 20021 function PolygonAnnotationElement(parameters) { 20022 var _this4; 20023 20024 _classCallCheck(this, PolygonAnnotationElement); 20025 20026 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters)); 20027 _this4.containerClassName = 'polygonAnnotation'; 20028 _this4.svgElementName = 'svg:polygon'; 20029 return _this4; 20030 } 20031 20032 return PolygonAnnotationElement; 20033}(PolylineAnnotationElement); 20034 20035var InkAnnotationElement = 20036/*#__PURE__*/ 20037function (_AnnotationElement9) { 20038 _inherits(InkAnnotationElement, _AnnotationElement9); 20039 20040 function InkAnnotationElement(parameters) { 20041 var _this5; 20042 20043 _classCallCheck(this, InkAnnotationElement); 20044 20045 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20046 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true)); 20047 _this5.containerClassName = 'inkAnnotation'; 20048 _this5.svgElementName = 'svg:polyline'; 20049 return _this5; 20050 } 20051 20052 _createClass(InkAnnotationElement, [{ 20053 key: "render", 20054 value: function render() { 20055 this.container.className = this.containerClassName; 20056 var data = this.data; 20057 var width = data.rect[2] - data.rect[0];
20058 var height = data.rect[3] - data.rect[1]; 20059 var svg = this.svgFactory.create(width, height); 20060 var inkLists = data.inkLists; 20061 20062 for (var i = 0, ii = inkLists.length; i < ii; i++) { 20063 var inkList = inkLists[i]; 20064 var points = []; 20065 20066 for (var j = 0, jj = inkList.length; j < jj; j++) { 20067 var x = inkList[j].x - data.rect[0]; 20068 var y = data.rect[3] - inkList[j].y; 20069 points.push(x + ',' + y); 20070 } 20071 20072 points = points.join(' '); 20073 var borderWidth = data.borderStyle.width; 20074 var polyline = this.svgFactory.createElement(this.svgElementName); 20075 polyline.setAttribute('points', points); 20076 polyline.setAttribute('stroke-width', borderWidth); 20077 polyline.setAttribute('stroke', 'transparent'); 20078 polyline.setAttribute('fill', 'none'); 20079 20080 this._createPopup(this.container, polyline, data); 20081 20082 svg.appendChild(polyline); 20083 } 20084 20085 this.container.append(svg); 20086 return this.container; 20087 } 20088 }]); 20089 20090 return InkAnnotationElement; 20091}(AnnotationElement); 20092 20093var HighlightAnnotationElement = 20094/*#__PURE__*/ 20095function (_AnnotationElement10) { 20096 _inherits(HighlightAnnotationElement, _AnnotationElement10); 20097 20098 function HighlightAnnotationElement(parameters) { 20099 _classCallCheck(this, HighlightAnnotationElement); 20100 20101 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20102 return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true)); 20103 } 20104 20105 _createClass(HighlightAnnotationElement, [{ 20106 key: "render", 20107 value: function render() { 20108 this.container.className = 'highlightAnnotation'; 20109 20110 if (!this.data.hasPopup) { 20111 this._createPopup(this.container, null, this.data); 20112 } 20113 20114 return this.container; 20115 } 20116 }]); 20117 20118 return HighlightAnnotationElement; 20119}(AnnotationElement); 20120 20121var UnderlineAnnotationElement = 20122/*#__PURE__*/ 20123function (_AnnotationElement11) { 20124 _inherits(UnderlineAnnotationElement, _AnnotationElement11); 20125 20126 function UnderlineAnnotationElement(parameters) { 20127 _classCallCheck(this, UnderlineAnnotationElement); 20128 20129 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20130 return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true)); 20131 } 20132 20133 _createClass(UnderlineAnnotationElement, [{ 20134 key: "render", 20135 value: function render() { 20136 this.container.className = 'underlineAnnotation'; 20137 20138 if (!this.data.hasPopup) { 20139 this._createPopup(this.container, null, this.data); 20140 } 20141 20142 return this.container; 20143 } 20144 }]); 20145 20146 return UnderlineAnnotationElement; 20147}(AnnotationElement); 20148 20149var SquigglyAnnotationElement = 20150/*#__PURE__*/ 20151function (_AnnotationElement12) { 20152 _inherits(SquigglyAnnotationElement, _AnnotationElement12); 20153 20154 function SquigglyAnnotationElement(parameters) { 20155 _classCallCheck(this, SquigglyAnnotationElement); 20156 20157 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20158 return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true)); 20159 } 20160 20161 _createClass(SquigglyAnnotationElement, [{ 20162 key: "render", 20163 value: function render() { 20164 this.container.className = 'squigglyAnnotation'; 20165 20166 if (!this.data.hasPopup) { 20167 this._createPopup(this.container, null, this.data); 20168 } 20169 20170 return this.container; 20171 } 20172 }]); 20173 20174 return SquigglyAnnotationElement; 20175}(AnnotationElement); 20176 20177var StrikeOutAnnotationElement = 20178/*#__PURE__*/ 20179function (_AnnotationElement13) { 20180 _inherits(StrikeOutAnnotationElement, _AnnotationElement13); 20181 20182 function StrikeOutAnnotationElement(parameters) { 20183 _classCallCheck(this, StrikeOutAnnotationElement); 20184 20185 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20186 return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true)); 20187 } 20188 20189 _createClass(StrikeOutAnnotationElement, [{ 20190 key: "render", 20191 value: function render() { 20192 this.container.className = 'strikeoutAnnotation'; 20193 20194 if (!this.data.hasPopup) { 20195 this._createPopup(this.container, null, this.data); 20196 } 20197 20198 return this.container; 20199 } 20200 }]); 20201 20202 return StrikeOutAnnotationElement; 20203}(AnnotationElement); 20204 20205var StampAnnotationElement = 20206/*#__PURE__*/ 20207function (_AnnotationElement14) { 20208 _inherits(StampAnnotationElement, _AnnotationElement14); 20209 20210 function StampAnnotationElement(parameters) { 20211 _classCallCheck(this, StampAnnotationElement); 20212 20213 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 20214 return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true)); 20215 } 20216 20217 _createClass(StampAnnotationElement, [{ 20218 key: "render", 20219 value: function render() { 20220 this.container.className = 'stampAnnotation'; 20221 20222 if (!this.data.hasPopup) { 20223 this._createPopup(this.container, null, this.data); 20224 } 20225 20226 return this.container; 20227 } 20228 }]); 20229 20230 return StampAnnotationElement; 20231}(AnnotationElement); 20232 20233var FileAttachmentAnnotationElement = 20234/*#__PURE__*/ 20235function (_AnnotationElement15) { 20236 _inherits(FileAttachmentAnnotationElement, _AnnotationElement15); 20237 20238 function FileAttachmentAnnotationElement(parameters) { 20239 var _this6; 20240 20241 _classCallCheck(this, FileAttachmentAnnotationElement); 20242 20243 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true)); 20244 var _this6$data$file = _this6.data.file, 20245 filename = _this6$data$file.filename, 20246 content = _this6$data$file.content; 20247 _this6.filename = (0, _dom_utils.getFilenameFromUrl)(filename); 20248 _this6.content = content; 20249 20250 if (_this6.linkService.eventBus) { 20251 _this6.linkService.eventBus.dispatch('fileattachmentannotation', { 20252 source: _assertThisInitialized(_assertThisInitialized(_this6)), 20253 id: (0, _util.stringToPDFString)(filename), 20254 filename: filename, 20255 content: content 20256 }); 20257 } 20258 20259 return _this6; 20260 } 20261 20262 _createClass(FileAttachmentAnnotationElement, [{ 20263 key: "render", 20264 value: function render() { 20265 this.container.className = 'fileAttachmentAnnotation'; 20266 var trigger = document.createElement('div'); 20267 trigger.style.height = this.container.style.height; 20268 trigger.style.width = this.container.style.width; 20269 trigger.addEventListener('dblclick', this._download.bind(this)); 20270 20271 if (!this.data.hasPopup && (this.data.title || this.data.contents)) { 20272 this._createPopup(this.container, trigger, this.data); 20273 } 20274 20275 this.container.appendChild(trigger); 20276 return this.container; 20277 } 20278 }, { 20279 key: "_download", 20280 value: function _download() { 20281 if (!this.downloadManager) { 20282 (0, _util.warn)('Download cannot be started due to unavailable download manager'); 20283 return; 20284 } 20285 20286 this.downloadManager.downloadData(this.content, this.filename, ''); 20287 } 20288 }]); 20289 20290 return FileAttachmentAnnotationElement; 20291}(AnnotationElement); 20292 20293var AnnotationLayer = 20294/*#__PURE__*/ 20295function () { 20296 function AnnotationLayer() { 20297 _classCallCheck(this, AnnotationLayer); 20298 } 20299 20300 _createClass(AnnotationLayer, null, [{ 20301 key: "render", 20302 value: function render(parameters) { 20303 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 20304 var data = parameters.annotations[i]; 20305 20306 if (!data) { 20307 continue; 20308 } 20309 20310 var element = AnnotationElementFactory.create({ 20311 data: data, 20312 layer: parameters.div, 20313 page: parameters.page, 20314 viewport: parameters.viewport, 20315 linkService: parameters.linkService, 20316 downloadManager: parameters.downloadManager, 20317 imageResourcesPath: parameters.imageResourcesPath || '', 20318 renderInteractiveForms: parameters.renderInteractiveForms || false, 20319 svgFactory: new _dom_utils.DOMSVGFactory() 20320 }); 20321 20322 if (element.isRenderable) { 20323 parameters.div.appendChild(element.render()); 20324 } 20325 } 20326 } 20327 }, { 20328 key: "update", 20329 value: function update(parameters) { 20330 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 20331 var data = parameters.annotations[i]; 20332 var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); 20333 20334 if (element) { 20335 element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; 20336 } 20337 } 20338 20339 parameters.div.removeAttribute('hidden'); 20340 } 20341 }]); 20342 20343 return AnnotationLayer; 20344}();
20345 20346exports.AnnotationLayer = AnnotationLayer; 20347 20348/***/ }), 20349/* 164 */ 20350/***/ (function(module, exports, __w_pdfjs_require__) { 20351 20352"use strict"; 20353 20354 20355Object.defineProperty(exports, "__esModule", { 20356 value: true 20357}); 20358exports.SVGGraphics = void 0; 20359 20360var _util = __w_pdfjs_require__(1); 20361 20362var _dom_utils = __w_pdfjs_require__(151); 20363 20364var _is_node = _interopRequireDefault(__w_pdfjs_require__(4)); 20365 20366function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 20367 20368var SVGGraphics = function SVGGraphics() { 20369 throw new Error('Not implemented: SVGGraphics'); 20370}; 20371 20372exports.SVGGraphics = SVGGraphics; 20373{ 20374 var SVG_DEFAULTS = { 20375 fontStyle: 'normal', 20376 fontWeight: 'normal', 20377 fillColor: '#000000' 20378 }; 20379 20380 var convertImgDataToPng = function convertImgDataToPngClosure() { 20381 var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); 20382 var CHUNK_WRAPPER_SIZE = 12; 20383 var crcTable = new Int32Array(256); 20384 20385 for (var i = 0; i < 256; i++) { 20386 var c = i; 20387 20388 for (var h = 0; h < 8; h++) { 20389 if (c & 1) { 20390 c = 0xedB88320 ^ c >> 1 & 0x7fffffff; 20391 } else { 20392 c = c >> 1 & 0x7fffffff; 20393 } 20394 } 20395 20396 crcTable[i] = c; 20397 } 20398 20399 function crc32(data, start, end) { 20400 var crc = -1; 20401 20402 for (var i = start; i < end; i++) { 20403 var a = (crc ^ data[i]) & 0xff; 20404 var b = crcTable[a]; 20405 crc = crc >>> 8 ^ b; 20406 } 20407 20408 return crc ^ -1; 20409 } 20410 20411 function writePngChunk(type, body, data, offset) { 20412 var p = offset; 20413 var len = body.length; 20414 data[p] = len >> 24 & 0xff; 20415 data[p + 1] = len >> 16 & 0xff; 20416 data[p + 2] = len >> 8 & 0xff; 20417 data[p + 3] = len & 0xff; 20418 p += 4; 20419 data[p] = type.charCodeAt(0) & 0xff; 20420 data[p + 1] = type.charCodeAt(1) & 0xff; 20421 data[p + 2] = type.charCodeAt(2) & 0xff; 20422 data[p + 3] = type.charCodeAt(3) & 0xff; 20423 p += 4; 20424 data.set(body, p); 20425 p += body.length; 20426 var crc = crc32(data, offset + 4, p); 20427 data[p] = crc >> 24 & 0xff; 20428 data[p + 1] = crc >> 16 & 0xff; 20429 data[p + 2] = crc >> 8 & 0xff; 20430 data[p + 3] = crc & 0xff; 20431 } 20432 20433 function adler32(data, start, end) { 20434 var a = 1; 20435 var b = 0; 20436 20437 for (var i = start; i < end; ++i) { 20438 a = (a + (data[i] & 0xff)) % 65521; 20439 b = (b + a) % 65521; 20440 } 20441 20442 return b << 16 | a; 20443 } 20444 20445 function deflateSync(literals) { 20446 if (!(0, _is_node.default)()) { 20447 return deflateSyncUncompressed(literals); 20448 } 20449 20450 try { 20451 var input; 20452 20453 if (parseInt(process.versions.node) >= 8) { 20454 input = literals; 20455 } else { 20456 input = new Buffer(literals); 20457 } 20458 20459 var output = require('zlib').deflateSync(input, { 20460 level: 9 20461 }); 20462 20463 return output instanceof Uint8Array ? output : new Uint8Array(output); 20464 } catch (e) { 20465 (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); 20466 } 20467 20468 return deflateSyncUncompressed(literals); 20469 } 20470 20471 function deflateSyncUncompressed(literals) { 20472 var len = literals.length; 20473 var maxBlockLength = 0xFFFF; 20474 var deflateBlocks = Math.ceil(len / maxBlockLength); 20475 var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); 20476 var pi = 0; 20477 idat[pi++] = 0x78; 20478 idat[pi++] = 0x9c; 20479 var pos = 0; 20480 20481 while (len > maxBlockLength) { 20482 idat[pi++] = 0x00; 20483 idat[pi++] = 0xff; 20484 idat[pi++] = 0xff; 20485 idat[pi++] = 0x00; 20486 idat[pi++] = 0x00; 20487 idat.set(literals.subarray(pos, pos + maxBlockLength), pi); 20488 pi += maxBlockLength; 20489 pos += maxBlockLength; 20490 len -= maxBlockLength; 20491 } 20492 20493 idat[pi++] = 0x01; 20494 idat[pi++] = len & 0xff; 20495 idat[pi++] = len >> 8 & 0xff; 20496 idat[pi++] = ~len & 0xffff & 0xff; 20497 idat[pi++] = (~len & 0xffff) >> 8 & 0xff; 20498 idat.set(literals.subarray(pos), pi); 20499 pi += literals.length - pos;
20500 var adler = adler32(literals, 0, literals.length); 20501 idat[pi++] = adler >> 24 & 0xff; 20502 idat[pi++] = adler >> 16 & 0xff; 20503 idat[pi++] = adler >> 8 & 0xff; 20504 idat[pi++] = adler & 0xff; 20505 return idat; 20506 } 20507 20508 function encode(imgData, kind, forceDataSchema, isMask) { 20509 var width = imgData.width; 20510 var height = imgData.height; 20511 var bitDepth, colorType, lineSize; 20512 var bytes = imgData.data; 20513 20514 switch (kind) { 20515 case _util.ImageKind.GRAYSCALE_1BPP: 20516 colorType = 0; 20517 bitDepth = 1; 20518 lineSize = width + 7 >> 3; 20519 break; 20520 20521 case _util.ImageKind.RGB_24BPP: 20522 colorType = 2; 20523 bitDepth = 8; 20524 lineSize = width * 3; 20525 break; 20526 20527 case _util.ImageKind.RGBA_32BPP: 20528 colorType = 6; 20529 bitDepth = 8; 20530 lineSize = width * 4; 20531 break; 20532 20533 default: 20534 throw new Error('invalid format'); 20535 } 20536 20537 var literals = new Uint8Array((1 + lineSize) * height); 20538 var offsetLiterals = 0, 20539 offsetBytes = 0; 20540 var y, i; 20541 20542 for (y = 0; y < height; ++y) { 20543 literals[offsetLiterals++] = 0; 20544 literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); 20545 offsetBytes += lineSize; 20546 offsetLiterals += lineSize; 20547 } 20548 20549 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { 20550 offsetLiterals = 0; 20551 20552 for (y = 0; y < height; y++) { 20553 offsetLiterals++; 20554 20555 for (i = 0; i < lineSize; i++) { 20556 literals[offsetLiterals++] ^= 0xFF; 20557 } 20558 } 20559 } 20560 20561 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]); 20562 var idat = deflateSync(literals); 20563 var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; 20564 var data = new Uint8Array(pngLength); 20565 var offset = 0; 20566 data.set(PNG_HEADER, offset); 20567 offset += PNG_HEADER.length; 20568 writePngChunk('IHDR', ihdr, data, offset); 20569 offset += CHUNK_WRAPPER_SIZE + ihdr.length; 20570 writePngChunk('IDATA', idat, data, offset); 20571 offset += CHUNK_WRAPPER_SIZE + idat.length; 20572 writePngChunk('IEND', new Uint8Array(0), data, offset); 20573 return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); 20574 } 20575 20576 return function convertImgDataToPng(imgData, forceDataSchema, isMask) { 20577 var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; 20578 return encode(imgData, kind, forceDataSchema, isMask); 20579 }; 20580 }(); 20581 20582 var SVGExtraState = function SVGExtraStateClosure() { 20583 function SVGExtraState() { 20584 this.fontSizeScale = 1; 20585 this.fontWeight = SVG_DEFAULTS.fontWeight; 20586 this.fontSize = 0; 20587 this.textMatrix = _util.IDENTITY_MATRIX; 20588 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 20589 this.leading = 0; 20590 this.textRenderingMode = _util.TextRenderingMode.FILL; 20591 this.x = 0; 20592 this.y = 0; 20593 this.lineX = 0; 20594 this.lineY = 0; 20595 this.charSpacing = 0; 20596 this.wordSpacing = 0; 20597 this.textHScale = 1; 20598 this.textRise = 0; 20599 this.fillColor = SVG_DEFAULTS.fillColor; 20600 this.strokeColor = '#000000'; 20601 this.fillAlpha = 1; 20602 this.strokeAlpha = 1; 20603 this.lineWidth = 1; 20604 this.lineJoin = ''; 20605 this.lineCap = ''; 20606 this.miterLimit = 0; 20607 this.dashArray = []; 20608 this.dashPhase = 0; 20609 this.dependencies = []; 20610 this.activeClipUrl = null; 20611 this.clipGroup = null; 20612 this.maskId = ''; 20613 } 20614 20615 SVGExtraState.prototype = { 20616 clone: function SVGExtraState_clone() { 20617 return Object.create(this); 20618 }, 20619 setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { 20620 this.x = x; 20621 this.y = y; 20622 } 20623 }; 20624 return SVGExtraState; 20625 }(); 20626 20627 exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() { 20628 function opListToTree(opList) { 20629 var opTree = []; 20630 var tmp = []; 20631 var opListLen = opList.length; 20632 20633 for (var x = 0; x < opListLen; x++) { 20634 if (opList[x].fn === 'save') { 20635 opTree.push({ 20636 'fnId': 92, 20637 'fn': 'group', 20638 'items': [] 20639 }); 20640 tmp.push(opTree); 20641 opTree = opTree[opTree.length - 1].items; 20642 continue; 20643 } 20644 20645 if (opList[x].fn === 'restore') { 20646 opTree = tmp.pop(); 20647 } else { 20648 opTree.push(opList[x]); 20649 } 20650 } 20651 20652 return opTree; 20653 } 20654 20655 function pf(value) { 20656 if (Number.isInteger(value)) { 20657 return value.toString(); 20658 } 20659 20660 var s = value.toFixed(10); 20661 var i = s.length - 1; 20662 20663 if (s[i] !== '0') { 20664 return s; 20665 } 20666 20667 do { 20668 i--; 20669 } while (s[i] === '0'); 20670 20671 return s.substring(0, s[i] === '.' ? i : i + 1); 20672 } 20673 20674 function pm(m) { 20675 if (m[4] === 0 && m[5] === 0) { 20676 if (m[1] === 0 && m[2] === 0) { 20677 if (m[0] === 1 && m[3] === 1) { 20678 return ''; 20679 } 20680 20681 return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; 20682 } 20683 20684 if (m[0] === m[3] && m[1] === -m[2]) { 20685 var a = Math.acos(m[0]) * 180 / Math.PI; 20686 return 'rotate(' + pf(a) + ')'; 20687 } 20688 } else { 20689 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { 20690 return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; 20691 } 20692 } 20693 20694 return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; 20695 } 20696 20697 function SVGGraphics(commonObjs, objs, forceDataSchema) { 20698 this.svgFactory = new _dom_utils.DOMSVGFactory(); 20699 this.current = new SVGExtraState(); 20700 this.transformMatrix = _util.IDENTITY_MATRIX; 20701 this.transformStack = []; 20702 this.extraStack = []; 20703 this.commonObjs = commonObjs; 20704 this.objs = objs; 20705 this.pendingClip = null; 20706 this.pendingEOFill = false; 20707 this.embedFonts = false; 20708 this.embeddedFonts = Object.create(null); 20709 this.cssStyle = null; 20710 this.forceDataSchema = !!forceDataSchema; 20711 } 20712 20713 var XML_NS = 'http://www.w3.org/XML/1998/namespace'; 20714 var XLINK_NS = 'http://www.w3.org/1999/xlink'; 20715 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 20716 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 20717 var clipCount = 0; 20718 var maskCount = 0; 20719 SVGGraphics.prototype = { 20720 save: function SVGGraphics_save() { 20721 this.transformStack.push(this.transformMatrix); 20722 var old = this.current; 20723 this.extraStack.push(old);
vendor: 11,373 bytes, lines 20724-21079
20724 this.current = old.clone(); 20725 }, 20726 restore: function SVGGraphics_restore() { 20727 this.transformMatrix = this.transformStack.pop(); 20728 this.current = this.extraStack.pop(); 20729 this.pendingClip = null; 20730 this.tgrp = null; 20731 }, 20732 group: function SVGGraphics_group(items) { 20733 this.save(); 20734 this.executeOpTree(items); 20735 this.restore(); 20736 }, 20737 loadDependencies: function SVGGraphics_loadDependencies(operatorList) { 20738 var _this = this; 20739 20740 var fnArray = operatorList.fnArray; 20741 var fnArrayLen = fnArray.length; 20742 var argsArray = operatorList.argsArray; 20743 20744 for (var i = 0; i < fnArrayLen; i++) { 20745 if (_util.OPS.dependency === fnArray[i]) { 20746 var deps = argsArray[i]; 20747 20748 for (var n = 0, nn = deps.length; n < nn; n++) { 20749 var obj = deps[n]; 20750 var common = obj.substring(0, 2) === 'g_'; 20751 var promise; 20752 20753 if (common) { 20754 promise = new Promise(function (resolve) { 20755 _this.commonObjs.get(obj, resolve); 20756 }); 20757 } else { 20758 promise = new Promise(function (resolve) { 20759 _this.objs.get(obj, resolve); 20760 }); 20761 } 20762 20763 this.current.dependencies.push(promise); 20764 } 20765 } 20766 } 20767 20768 return Promise.all(this.current.dependencies); 20769 }, 20770 transform: function SVGGraphics_transform(a, b, c, d, e, f) { 20771 var transformMatrix = [a, b, c, d, e, f]; 20772 this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); 20773 this.tgrp = null; 20774 }, 20775 getSVG: function SVGGraphics_getSVG(operatorList, viewport) { 20776 var _this2 = this; 20777 20778 this.viewport = viewport; 20779 20780 var svgElement = this._initialize(viewport); 20781 20782 return this.loadDependencies(operatorList).then(function () { 20783 _this2.transformMatrix = _util.IDENTITY_MATRIX; 20784 20785 var opTree = _this2.convertOpList(operatorList); 20786 20787 _this2.executeOpTree(opTree); 20788 20789 return svgElement; 20790 }); 20791 }, 20792 convertOpList: function SVGGraphics_convertOpList(operatorList) { 20793 var argsArray = operatorList.argsArray; 20794 var fnArray = operatorList.fnArray; 20795 var fnArrayLen = fnArray.length; 20796 var REVOPS = []; 20797 var opList = []; 20798 20799 for (var op in _util.OPS) { 20800 REVOPS[_util.OPS[op]] = op; 20801 } 20802 20803 for (var x = 0; x < fnArrayLen; x++) { 20804 var fnId = fnArray[x]; 20805 opList.push({ 20806 'fnId': fnId, 20807 'fn': REVOPS[fnId], 20808 'args': argsArray[x] 20809 }); 20810 } 20811 20812 return opListToTree(opList); 20813 }, 20814 executeOpTree: function SVGGraphics_executeOpTree(opTree) { 20815 var opTreeLen = opTree.length; 20816 20817 for (var x = 0; x < opTreeLen; x++) { 20818 var fn = opTree[x].fn; 20819 var fnId = opTree[x].fnId; 20820 var args = opTree[x].args; 20821 20822 switch (fnId | 0) { 20823 case _util.OPS.beginText: 20824 this.beginText(); 20825 break; 20826 20827 case _util.OPS.dependency: 20828 break; 20829 20830 case _util.OPS.setLeading: 20831 this.setLeading(args); 20832 break; 20833 20834 case _util.OPS.setLeadingMoveText: 20835 this.setLeadingMoveText(args[0], args[1]); 20836 break; 20837 20838 case _util.OPS.setFont: 20839 this.setFont(args); 20840 break; 20841 20842 case _util.OPS.showText: 20843 this.showText(args[0]); 20844 break; 20845 20846 case _util.OPS.showSpacedText: 20847 this.showText(args[0]); 20848 break; 20849 20850 case _util.OPS.endText: 20851 this.endText(); 20852 break; 20853 20854 case _util.OPS.moveText: 20855 this.moveText(args[0], args[1]); 20856 break; 20857 20858 case _util.OPS.setCharSpacing: 20859 this.setCharSpacing(args[0]); 20860 break; 20861 20862 case _util.OPS.setWordSpacing: 20863 this.setWordSpacing(args[0]); 20864 break; 20865 20866 case _util.OPS.setHScale: 20867 this.setHScale(args[0]); 20868 break; 20869 20870 case _util.OPS.setTextMatrix: 20871 this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); 20872 break; 20873 20874 case _util.OPS.setTextRise: 20875 this.setTextRise(args[0]); 20876 break; 20877 20878 case _util.OPS.setTextRenderingMode: 20879 this.setTextRenderingMode(args[0]); 20880 break; 20881 20882 case _util.OPS.setLineWidth: 20883 this.setLineWidth(args[0]); 20884 break; 20885 20886 case _util.OPS.setLineJoin: 20887 this.setLineJoin(args[0]); 20888 break; 20889 20890 case _util.OPS.setLineCap: 20891 this.setLineCap(args[0]); 20892 break; 20893 20894 case _util.OPS.setMiterLimit: 20895 this.setMiterLimit(args[0]); 20896 break; 20897 20898 case _util.OPS.setFillRGBColor: 20899 this.setFillRGBColor(args[0], args[1], args[2]); 20900 break; 20901 20902 case _util.OPS.setStrokeRGBColor: 20903 this.setStrokeRGBColor(args[0], args[1], args[2]); 20904 break; 20905 20906 case _util.OPS.setDash: 20907 this.setDash(args[0], args[1]); 20908 break; 20909 20910 case _util.OPS.setGState: 20911 this.setGState(args[0]); 20912 break; 20913 20914 case _util.OPS.fill: 20915 this.fill(); 20916 break; 20917 20918 case _util.OPS.eoFill: 20919 this.eoFill(); 20920 break; 20921 20922 case _util.OPS.stroke: 20923 this.stroke(); 20924 break; 20925 20926 case _util.OPS.fillStroke: 20927 this.fillStroke(); 20928 break; 20929 20930 case _util.OPS.eoFillStroke: 20931 this.eoFillStroke(); 20932 break; 20933 20934 case _util.OPS.clip: 20935 this.clip('nonzero'); 20936 break; 20937 20938 case _util.OPS.eoClip: 20939 this.clip('evenodd'); 20940 break; 20941 20942 case _util.OPS.paintSolidColorImageMask: 20943 this.paintSolidColorImageMask(); 20944 break; 20945 20946 case _util.OPS.paintJpegXObject: 20947 this.paintJpegXObject(args[0], args[1], args[2]); 20948 break; 20949 20950 case _util.OPS.paintImageXObject: 20951 this.paintImageXObject(args[0]); 20952 break; 20953 20954 case _util.OPS.paintInlineImageXObject: 20955 this.paintInlineImageXObject(args[0]); 20956 break; 20957 20958 case _util.OPS.paintImageMaskXObject: 20959 this.paintImageMaskXObject(args[0]); 20960 break; 20961 20962 case _util.OPS.paintFormXObjectBegin: 20963 this.paintFormXObjectBegin(args[0], args[1]); 20964 break; 20965 20966 case _util.OPS.paintFormXObjectEnd: 20967 this.paintFormXObjectEnd(); 20968 break; 20969 20970 case _util.OPS.closePath: 20971 this.closePath(); 20972 break; 20973 20974 case _util.OPS.closeStroke: 20975 this.closeStroke(); 20976 break; 20977 20978 case _util.OPS.closeFillStroke: 20979 this.closeFillStroke(); 20980 break; 20981 20982 case _util.OPS.closeEOFillStroke: 20983 this.closeEOFillStroke(); 20984 break; 20985 20986 case _util.OPS.nextLine: 20987 this.nextLine(); 20988 break; 20989 20990 case _util.OPS.transform: 20991 this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); 20992 break; 20993 20994 case _util.OPS.constructPath: 20995 this.constructPath(args[0], args[1]); 20996 break; 20997 20998 case _util.OPS.endPath: 20999 this.endPath(); 21000 break; 21001 21002 case 92: 21003 this.group(opTree[x].items); 21004 break; 21005 21006 default: 21007 (0, _util.warn)('Unimplemented operator ' + fn); 21008 break; 21009 } 21010 } 21011 }, 21012 setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { 21013 this.current.wordSpacing = wordSpacing; 21014 }, 21015 setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { 21016 this.current.charSpacing = charSpacing; 21017 }, 21018 nextLine: function SVGGraphics_nextLine() { 21019 this.moveText(0, this.current.leading); 21020 }, 21021 setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { 21022 var current = this.current; 21023 this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f]; 21024 this.current.x = this.current.lineX = 0; 21025 this.current.y = this.current.lineY = 0; 21026 current.xcoords = []; 21027 current.tspan = this.svgFactory.createElement('svg:tspan'); 21028 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 21029 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 21030 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21031 current.txtElement = this.svgFactory.createElement('svg:text'); 21032 current.txtElement.appendChild(current.tspan); 21033 }, 21034 beginText: function SVGGraphics_beginText() { 21035 this.current.x = this.current.lineX = 0; 21036 this.current.y = this.current.lineY = 0; 21037 this.current.textMatrix = _util.IDENTITY_MATRIX; 21038 this.current.lineMatrix = _util.IDENTITY_MATRIX; 21039 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 21040 this.current.txtElement = this.svgFactory.createElement('svg:text'); 21041 this.current.txtgrp = this.svgFactory.createElement('svg:g'); 21042 this.current.xcoords = []; 21043 }, 21044 moveText: function SVGGraphics_moveText(x, y) { 21045 var current = this.current; 21046 this.current.x = this.current.lineX += x; 21047 this.current.y = this.current.lineY += y; 21048 current.xcoords = []; 21049 current.tspan = this.svgFactory.createElement('svg:tspan'); 21050 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 21051 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 21052 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21053 }, 21054 showText: function SVGGraphics_showText(glyphs) { 21055 var current = this.current; 21056 var font = current.font; 21057 var fontSize = current.fontSize; 21058 21059 if (fontSize === 0) { 21060 return; 21061 } 21062 21063 var charSpacing = current.charSpacing; 21064 var wordSpacing = current.wordSpacing; 21065 var fontDirection = current.fontDirection; 21066 var textHScale = current.textHScale * fontDirection; 21067 var glyphsLength = glyphs.length; 21068 var vertical = font.vertical; 21069 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 21070 var x = 0, 21071 i; 21072 21073 for (i = 0; i < glyphsLength; ++i) { 21074 var glyph = glyphs[i]; 21075 21076 if (glyph === null) { 21077 x += fontDirection * wordSpacing; 21078 continue; 21079 }
21079 else if ((0, _util.isNum)(glyph)) { 21080 x += -glyph * fontSize * 0.001; 21081 continue; 21082 } 21083 21084 var width = glyph.width; 21085 var character = glyph.fontChar; 21086 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 21087 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 21088 21089 if (!glyph.isInFont && !font.missingFile) { 21090 x += charWidth; 21091 continue; 21092 } 21093 21094 current.xcoords.push(current.x + x * textHScale); 21095 current.tspan.textContent += character; 21096 x += charWidth; 21097 } 21098 21099 if (vertical) { 21100 current.y -= x * textHScale; 21101 } else { 21102 current.x += x * textHScale; 21103 } 21104 21105 current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); 21106 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21107 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 21108 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 21109 21110 if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { 21111 current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); 21112 } 21113 21114 if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { 21115 current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); 21116 } 21117 21118 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 21119 21120 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 21121 if (current.fillColor !== SVG_DEFAULTS.fillColor) { 21122 current.tspan.setAttributeNS(null, 'fill', current.fillColor); 21123 } 21124 21125 if (current.fillAlpha < 1) { 21126 current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 21127 } 21128 } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { 21129 current.tspan.setAttributeNS(null, 'fill', 'transparent'); 21130 } else { 21131 current.tspan.setAttributeNS(null, 'fill', 'none'); 21132 } 21133 21134 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 21135 this._setStrokeAttributes(current.tspan); 21136 } 21137 21138 var textMatrix = current.textMatrix; 21139 21140 if (current.textRise !== 0) { 21141 textMatrix = textMatrix.slice(); 21142 textMatrix[5] += current.textRise; 21143 } 21144 21145 current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)'); 21146 current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); 21147 current.txtElement.appendChild(current.tspan); 21148 current.txtgrp.appendChild(current.txtElement); 21149 21150 this._ensureTransformGroup().appendChild(current.txtElement); 21151 }, 21152 setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { 21153 this.setLeading(-y); 21154 this.moveText(x, y); 21155 }, 21156 addFontStyle: function SVGGraphics_addFontStyle(fontObj) { 21157 if (!this.cssStyle) { 21158 this.cssStyle = this.svgFactory.createElement('svg:style'); 21159 this.cssStyle.setAttributeNS(null, 'type', 'text/css'); 21160 this.defs.appendChild(this.cssStyle); 21161 } 21162 21163 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); 21164 this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n'; 21165 }, 21166 setFont: function SVGGraphics_setFont(details) { 21167 var current = this.current; 21168 var fontObj = this.commonObjs.get(details[0]); 21169 var size = details[1]; 21170 this.current.font = fontObj; 21171 21172 if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { 21173 this.addFontStyle(fontObj); 21174 this.embeddedFonts[fontObj.loadedName] = fontObj; 21175 } 21176 21177 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 21178 var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; 21179 var italic = fontObj.italic ? 'italic' : 'normal'; 21180 21181 if (size < 0) { 21182 size = -size; 21183 current.fontDirection = -1; 21184 } else { 21185 current.fontDirection = 1; 21186 } 21187 21188 current.fontSize = size; 21189 current.fontFamily = fontObj.loadedName; 21190 current.fontWeight = bold; 21191 current.fontStyle = italic; 21192 current.tspan = this.svgFactory.createElement('svg:tspan'); 21193 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 21194 current.xcoords = []; 21195 }, 21196 endText: function endText() { 21197 var current = this.current; 21198 21199 if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { 21200 current.element = current.txtElement; 21201 this.clip('nonzero'); 21202 this.endPath(); 21203 } 21204 }, 21205 setLineWidth: function SVGGraphics_setLineWidth(width) { 21206 if (width > 0) { 21207 this.current.lineWidth = width; 21208 } 21209 }, 21210 setLineCap: function SVGGraphics_setLineCap(style) { 21211 this.current.lineCap = LINE_CAP_STYLES[style]; 21212 }, 21213 setLineJoin: function SVGGraphics_setLineJoin(style) { 21214 this.current.lineJoin = LINE_JOIN_STYLES[style]; 21215 }, 21216 setMiterLimit: function SVGGraphics_setMiterLimit(limit) { 21217 this.current.miterLimit = limit; 21218 }, 21219 setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) { 21220 this.current.strokeAlpha = strokeAlpha; 21221 }, 21222 setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { 21223 var color = _util.Util.makeCssRgb(r, g, b); 21224 21225 this.current.strokeColor = color; 21226 }, 21227 setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) { 21228 this.current.fillAlpha = fillAlpha; 21229 }, 21230 setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { 21231 var color = _util.Util.makeCssRgb(r, g, b); 21232 21233 this.current.fillColor = color; 21234 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 21235 this.current.xcoords = []; 21236 }, 21237 setDash: function SVGGraphics_setDash(dashArray, dashPhase) { 21238 this.current.dashArray = dashArray; 21239 this.current.dashPhase = dashPhase; 21240 }, 21241 constructPath: function SVGGraphics_constructPath(ops, args) { 21242 var current = this.current; 21243 var x = current.x, 21244 y = current.y; 21245 current.path = this.svgFactory.createElement('svg:path'); 21246 var d = []; 21247 var opLength = ops.length; 21248 21249 for (var i = 0, j = 0; i < opLength; i++) { 21250 switch (ops[i] | 0) { 21251 case _util.OPS.rectangle: 21252 x = args[j++]; 21253 y = args[j++]; 21254 var width = args[j++]; 21255 var height = args[j++]; 21256 var xw = x + width; 21257 var yh = y + height; 21258 d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); 21259 break; 21260 21261 case _util.OPS.moveTo: 21262 x = args[j++]; 21263 y = args[j++]; 21264 d.push('M', pf(x), pf(y)); 21265 break; 21266 21267 case _util.OPS.lineTo: 21268 x = args[j++]; 21269 y = args[j++]; 21270 d.push('L', pf(x), pf(y)); 21271 break; 21272 21273 case _util.OPS.curveTo: 21274 x = args[j + 4]; 21275 y = args[j + 5]; 21276 d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); 21277 j += 6; 21278 break; 21279 21280 case _util.OPS.curveTo2: 21281 x = args[j + 2]; 21282 y = args[j + 3]; 21283 d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); 21284 j += 4; 21285 break; 21286 21287 case _util.OPS.curveTo3: 21288 x = args[j + 2]; 21289 y = args[j + 3]; 21290 d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); 21291 j += 4; 21292 break; 21293 21294 case _util.OPS.closePath: 21295 d.push('Z'); 21296 break; 21297 } 21298 } 21299 21300 current.path.setAttributeNS(null, 'd', d.join(' '));
21301 current.path.setAttributeNS(null, 'fill', 'none'); 21302 21303 this._ensureTransformGroup().appendChild(current.path); 21304 21305 current.element = current.path; 21306 current.setCurrentPoint(x, y); 21307 }, 21308 endPath: function SVGGraphics_endPath() { 21309 if (!this.pendingClip) { 21310 return; 21311 } 21312 21313 var current = this.current; 21314 var clipId = 'clippath' + clipCount; 21315 clipCount++; 21316 var clipPath = this.svgFactory.createElement('svg:clipPath'); 21317 clipPath.setAttributeNS(null, 'id', clipId); 21318 clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 21319 var clipElement = current.element.cloneNode(true); 21320 21321 if (this.pendingClip === 'evenodd') { 21322 clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); 21323 } else { 21324 clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); 21325 } 21326 21327 this.pendingClip = null; 21328 clipPath.appendChild(clipElement); 21329 this.defs.appendChild(clipPath); 21330 21331 if (current.activeClipUrl) { 21332 current.clipGroup = null; 21333 this.extraStack.forEach(function (prev) { 21334 prev.clipGroup = null; 21335 }); 21336 clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); 21337 } 21338 21339 current.activeClipUrl = 'url(#' + clipId + ')'; 21340 this.tgrp = null; 21341 }, 21342 clip: function SVGGraphics_clip(type) { 21343 this.pendingClip = type; 21344 }, 21345 closePath: function SVGGraphics_closePath() { 21346 var current = this.current; 21347 21348 if (current.path) { 21349 var d = current.path.getAttributeNS(null, 'd'); 21350 d += 'Z'; 21351 current.path.setAttributeNS(null, 'd', d); 21352 } 21353 }, 21354 setLeading: function SVGGraphics_setLeading(leading) { 21355 this.current.leading = -leading; 21356 }, 21357 setTextRise: function SVGGraphics_setTextRise(textRise) { 21358 this.current.textRise = textRise; 21359 }, 21360 setTextRenderingMode: function setTextRenderingMode(textRenderingMode) { 21361 this.current.textRenderingMode = textRenderingMode; 21362 }, 21363 setHScale: function SVGGraphics_setHScale(scale) { 21364 this.current.textHScale = scale / 100; 21365 }, 21366 setGState: function SVGGraphics_setGState(states) { 21367 for (var i = 0, ii = states.length; i < ii; i++) { 21368 var state = states[i]; 21369 var key = state[0]; 21370 var value = state[1]; 21371 21372 switch (key) { 21373 case 'LW': 21374 this.setLineWidth(value); 21375 break; 21376 21377 case 'LC': 21378 this.setLineCap(value); 21379 break; 21380 21381 case 'LJ': 21382 this.setLineJoin(value); 21383 break; 21384 21385 case 'ML': 21386 this.setMiterLimit(value); 21387 break; 21388 21389 case 'D': 21390 this.setDash(value[0], value[1]); 21391 break; 21392 21393 case 'Font': 21394 this.setFont(value); 21395 break; 21396 21397 case 'CA': 21398 this.setStrokeAlpha(value); 21399 break; 21400 21401 case 'ca': 21402 this.setFillAlpha(value); 21403 break; 21404 21405 default: 21406 (0, _util.warn)('Unimplemented graphic state ' + key); 21407 break; 21408 } 21409 } 21410 }, 21411 fill: function SVGGraphics_fill() { 21412 var current = this.current; 21413 21414 if (current.element) { 21415 current.element.setAttributeNS(null, 'fill', current.fillColor); 21416 current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 21417 this.endPath(); 21418 } 21419 }, 21420 stroke: function SVGGraphics_stroke() { 21421 var current = this.current; 21422 21423 if (current.element) { 21424 this._setStrokeAttributes(current.element); 21425 21426 current.element.setAttributeNS(null, 'fill', 'none'); 21427 this.endPath(); 21428 } 21429 }, 21430 _setStrokeAttributes: function _setStrokeAttributes(element) { 21431 var current = this.current; 21432 element.setAttributeNS(null, 'stroke', current.strokeColor); 21433 element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); 21434 element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); 21435 element.setAttributeNS(null, 'stroke-linecap', current.lineCap); 21436 element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); 21437 element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px'); 21438 element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' '));
21439 element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px'); 21440 }, 21441 eoFill: function SVGGraphics_eoFill() { 21442 if (this.current.element) { 21443 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 21444 } 21445 21446 this.fill(); 21447 }, 21448 fillStroke: function SVGGraphics_fillStroke() { 21449 this.stroke(); 21450 this.fill(); 21451 }, 21452 eoFillStroke: function SVGGraphics_eoFillStroke() { 21453 if (this.current.element) { 21454 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 21455 } 21456 21457 this.fillStroke(); 21458 }, 21459 closeStroke: function SVGGraphics_closeStroke() { 21460 this.closePath(); 21461 this.stroke(); 21462 }, 21463 closeFillStroke: function SVGGraphics_closeFillStroke() { 21464 this.closePath(); 21465 this.fillStroke(); 21466 }, 21467 closeEOFillStroke: function closeEOFillStroke() { 21468 this.closePath(); 21469 this.eoFillStroke(); 21470 }, 21471 paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() { 21472 var current = this.current; 21473 var rect = this.svgFactory.createElement('svg:rect'); 21474 rect.setAttributeNS(null, 'x', '0'); 21475 rect.setAttributeNS(null, 'y', '0'); 21476 rect.setAttributeNS(null, 'width', '1px'); 21477 rect.setAttributeNS(null, 'height', '1px'); 21478 rect.setAttributeNS(null, 'fill', current.fillColor); 21479 21480 this._ensureTransformGroup().appendChild(rect); 21481 }, 21482 paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { 21483 var imgObj = this.objs.get(objId); 21484 var imgEl = this.svgFactory.createElement('svg:image'); 21485 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); 21486 imgEl.setAttributeNS(null, 'width', pf(w)); 21487 imgEl.setAttributeNS(null, 'height', pf(h)); 21488 imgEl.setAttributeNS(null, 'x', '0'); 21489 imgEl.setAttributeNS(null, 'y', pf(-h)); 21490 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); 21491 21492 this._ensureTransformGroup().appendChild(imgEl); 21493 }, 21494 paintImageXObject: function SVGGraphics_paintImageXObject(objId) { 21495 var imgData = this.objs.get(objId); 21496 21497 if (!imgData) { 21498 (0, _util.warn)('Dependent image isn\'t ready yet'); 21499 return; 21500 } 21501 21502 this.paintInlineImageXObject(imgData); 21503 }, 21504 paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) { 21505 var width = imgData.width; 21506 var height = imgData.height; 21507 var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); 21508 var cliprect = this.svgFactory.createElement('svg:rect'); 21509 cliprect.setAttributeNS(null, 'x', '0'); 21510 cliprect.setAttributeNS(null, 'y', '0'); 21511 cliprect.setAttributeNS(null, 'width', pf(width)); 21512 cliprect.setAttributeNS(null, 'height', pf(height)); 21513 this.current.element = cliprect; 21514 this.clip('nonzero'); 21515 var imgEl = this.svgFactory.createElement('svg:image'); 21516 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); 21517 imgEl.setAttributeNS(null, 'x', '0'); 21518 imgEl.setAttributeNS(null, 'y', pf(-height)); 21519 imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); 21520 imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); 21521 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')'); 21522 21523 if (mask) { 21524 mask.appendChild(imgEl); 21525 } else { 21526 this._ensureTransformGroup().appendChild(imgEl); 21527 } 21528 }, 21529 paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) { 21530 var current = this.current; 21531 var width = imgData.width; 21532 var height = imgData.height; 21533 var fillColor = current.fillColor; 21534 current.maskId = 'mask' + maskCount++; 21535 var mask = this.svgFactory.createElement('svg:mask'); 21536 mask.setAttributeNS(null, 'id', current.maskId); 21537 var rect = this.svgFactory.createElement('svg:rect'); 21538 rect.setAttributeNS(null, 'x', '0'); 21539 rect.setAttributeNS(null, 'y', '0'); 21540 rect.setAttributeNS(null, 'width', pf(width)); 21541 rect.setAttributeNS(null, 'height', pf(height)); 21542 rect.setAttributeNS(null, 'fill', fillColor); 21543 rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')'); 21544 this.defs.appendChild(mask); 21545 21546 this._ensureTransformGroup().appendChild(rect); 21547 21548 this.paintInlineImageXObject(imgData, mask); 21549 }, 21550 paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { 21551 if (Array.isArray(matrix) && matrix.length === 6) {
21552 this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); 21553 } 21554 21555 if (bbox) { 21556 var width = bbox[2] - bbox[0]; 21557 var height = bbox[3] - bbox[1]; 21558 var cliprect = this.svgFactory.createElement('svg:rect'); 21559 cliprect.setAttributeNS(null, 'x', bbox[0]); 21560 cliprect.setAttributeNS(null, 'y', bbox[1]); 21561 cliprect.setAttributeNS(null, 'width', pf(width)); 21562 cliprect.setAttributeNS(null, 'height', pf(height)); 21563 this.current.element = cliprect; 21564 this.clip('nonzero'); 21565 this.endPath(); 21566 } 21567 }, 21568 paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {}, 21569 _initialize: function _initialize(viewport) { 21570 var svg = this.svgFactory.create(viewport.width, viewport.height); 21571 var definitions = this.svgFactory.createElement('svg:defs'); 21572 svg.appendChild(definitions); 21573 this.defs = definitions; 21574 var rootGroup = this.svgFactory.createElement('svg:g'); 21575 rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); 21576 svg.appendChild(rootGroup); 21577 this.svg = rootGroup; 21578 return svg; 21579 }, 21580 _ensureClipGroup: function SVGGraphics_ensureClipGroup() { 21581 if (!this.current.clipGroup) { 21582 var clipGroup = this.svgFactory.createElement('svg:g'); 21583 clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); 21584 this.svg.appendChild(clipGroup); 21585 this.current.clipGroup = clipGroup; 21586 } 21587 21588 return this.current.clipGroup; 21589 }, 21590 _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() { 21591 if (!this.tgrp) { 21592 this.tgrp = this.svgFactory.createElement('svg:g'); 21593 this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 21594 21595 if (this.current.activeClipUrl) { 21596 this._ensureClipGroup().appendChild(this.tgrp); 21597 } else { 21598 this.svg.appendChild(this.tgrp); 21599 } 21600 } 21601 21602 return this.tgrp; 21603 } 21604 }; 21605 return SVGGraphics; 21606 }(); 21607} 21608 21609/***/ }), 21610/* 165 */ 21611/***/ (function(module, exports, __w_pdfjs_require__) { 21612 21613"use strict"; 21614 21615 21616Object.defineProperty(exports, "__esModule", { 21617 value: true 21618}); 21619exports.PDFNodeStream = void 0; 21620 21621var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 21622 21623var _util = __w_pdfjs_require__(1); 21624 21625var _network_utils = __w_pdfjs_require__(166); 21626 21627function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 21628 21629function _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); } 21630 21631function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } 21632 21633function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } 21634 21635function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 21636 21637function _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); } 21638 21639function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 21640 21641function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { tr
21641y { 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); } } 21642 21643function _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); }); }; } 21644 21645function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 21646 21647function _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); } } 21648 21649function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 21650 21651var fs = require('fs'); 21652 21653var http = require('http'); 21654 21655var https = require('https'); 21656 21657var url = require('url'); 21658
21659var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; 21660 21661function parseUrl(sourceUrl) { 21662 var parsedUrl = url.parse(sourceUrl); 21663 21664 if (parsedUrl.protocol === 'file:' || parsedUrl.host) { 21665 return parsedUrl; 21666 } 21667 21668 if (/^[a-z]:[/\\]/i.test(sourceUrl)) { 21669 return url.parse("file:///".concat(sourceUrl)); 21670 } 21671 21672 if (!parsedUrl.host) { 21673 parsedUrl.protocol = 'file:'; 21674 } 21675 21676 return parsedUrl; 21677} 21678 21679var PDFNodeStream = 21680/*#__PURE__*/ 21681function () { 21682 function PDFNodeStream(source) { 21683 _classCallCheck(this, PDFNodeStream); 21684 21685 this.source = source; 21686 this.url = parseUrl(source.url); 21687 this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; 21688 this.isFsUrl = this.url.protocol === 'file:'; 21689 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 21690 this._fullRequest = null; 21691 this._rangeRequestReaders = []; 21692 } 21693 21694 _createClass(PDFNodeStream, [{ 21695 key: "getFullReader", 21696 value: function getFullReader() { 21697 (0, _util.assert)(!this._fullRequest); 21698 this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); 21699 return this._fullRequest; 21700 } 21701 }, { 21702 key: "getRangeReader", 21703 value: function getRangeReader(start, end) { 21704 var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); 21705 21706 this._rangeRequestReaders.push(rangeReader); 21707 21708 return rangeReader; 21709 } 21710 }, { 21711 key: "cancelAllRequests", 21712 value: function cancelAllRequests(reason) { 21713 if (this._fullRequest) { 21714 this._fullRequest.cancel(reason); 21715 } 21716 21717 var readers = this._rangeRequestReaders.slice(0); 21718 21719 readers.forEach(function (reader) { 21720 reader.cancel(reason); 21721 }); 21722 } 21723 }]); 21724 21725 return PDFNodeStream; 21726}(); 21727 21728exports.PDFNodeStream = PDFNodeStream; 21729 21730var BaseFullReader = 21731/*#__PURE__*/ 21732function () { 21733 function BaseFullReader(stream) { 21734 _classCallCheck(this, BaseFullReader); 21735 21736 this._url = stream.url; 21737 this._done = false; 21738 this._storedError = null; 21739 this.onProgress = null; 21740 var source = stream.source; 21741 this._contentLength = source.length; 21742 this._loaded = 0; 21743 this._filename = null; 21744 this._disableRange = source.disableRange || false; 21745 this._rangeChunkSize = source.rangeChunkSize; 21746 21747 if (!this._rangeChunkSize && !this._disableRange) { 21748 this._disableRange = true; 21749 } 21750 21751 this._isStreamingSupported = !source.disableStream; 21752 this._isRangeSupported = !source.disableRange; 21753 this._readableStream = null; 21754 this._readCapability = (0, _util.createPromiseCapability)(); 21755 this._headersCapability = (0, _util.createPromiseCapability)(); 21756 } 21757 21758 _createClass(BaseFullReader, [{ 21759 key: "read", 21760 value: function () { 21761 var _read = _asyncToGenerator( 21762 /*#__PURE__*/ 21763 _regenerator.default.mark(function _callee() { 21764 var chunk, buffer; 21765 return _regenerator.default.wrap(function _callee$(_context) { 21766 while (1) { 21767 switch (_context.prev = _context.next) { 21768 case 0: 21769 _context.next = 2; 21770 return this._readCapability.promise; 21771 21772 case 2: 21773 if (!this._done) { 21774 _context.next = 4; 21775 break; 21776 } 21777 21778 return _context.abrupt("return", { 21779 value: undefined, 21780 done: true 21781 }); 21782 21783 case 4: 21784 if (!this._storedError) { 21785 _context.next = 6; 21786 break; 21787 } 21788 21789 throw this._storedError; 21790 21791 case 6: 21792 chunk = this._readableStream.read(); 21793 21794 if (!(chunk === null)) { 21795 _context.next = 10; 21796 break; 21797 } 21798 21799 this._readCapability = (0, _util.createPromiseCapability)(); 21800 return _context.abrupt("return", this.read()); 21801 21802 case 10: 21803 this._loaded += chunk.length; 21804 21805 if (this.onProgress) { 21806 this.onProgress({ 21807 loaded: this._loaded, 21808 total: this._contentLength 21809 }); 21810 } 21811 21812 buffer = new Uint8Array(chunk).buffer; 21813 return _context.abrupt("return", { 21814 value: buffer, 21815 done: false 21816 }); 21817 21818 case 14: 21819 case "end": 21820 return _context.stop(); 21821 } 21822 } 21823 }, _callee, this); 21824 })); 21825 21826 function read() { 21827 return _read.apply(this, arguments); 21828 } 21829 21830 return read; 21831 }() 21832 }, { 21833 key: "cancel", 21834 value: function cancel(reason) { 21835 if (!this._readableStream) { 21836 this._error(reason); 21837 21838 return; 21839 } 21840 21841 this._readableStream.destroy(reason); 21842 } 21843 }, { 21844 key: "_error", 21845 value: function _error(reason) { 21846 this._storedError = reason; 21847 21848 this._readCapability.resolve(); 21849 } 21850 }, { 21851 key: "_setReadableStream", 21852 value: function _setReadableStream(readableStream) { 21853 var _this = this; 21854 21855 this._readableStream = readableStream; 21856 readableStream.on('readable', function () { 21857 _this._readCapability.resolve(); 21858 }); 21859 readableStream.on('end', function () { 21860 readableStream.destroy(); 21861 _this._done = true; 21862 21863 _this._readCapability.resolve(); 21864 }); 21865 readableStream.on('error', function (reason) { 21866 _this._error(reason); 21867 }); 21868 21869 if (!this._isStreamingSupported && this._isRangeSupported) { 21870 this._error(new _util.AbortException('streaming is disabled')); 21871 } 21872 21873 if (this._storedError) { 21874 this._readableStream.destroy(this._storedError); 21875 } 21876 } 21877 }, { 21878 key: "headersReady", 21879 get: function get() { 21880 return this._headersCapability.promise; 21881 } 21882 }, { 21883 key: "filename",
21884 get: function get() { 21885 return this._filename; 21886 } 21887 }, { 21888 key: "contentLength", 21889 get: function get() { 21890 return this._contentLength; 21891 } 21892 }, { 21893 key: "isRangeSupported", 21894 get: function get() { 21895 return this._isRangeSupported; 21896 } 21897 }, { 21898 key: "isStreamingSupported", 21899 get: function get() { 21900 return this._isStreamingSupported; 21901 } 21902 }]); 21903 21904 return BaseFullReader; 21905}(); 21906 21907var BaseRangeReader = 21908/*#__PURE__*/ 21909function () { 21910 function BaseRangeReader(stream) { 21911 _classCallCheck(this, BaseRangeReader); 21912 21913 this._url = stream.url; 21914 this._done = false; 21915 this._storedError = null; 21916 this.onProgress = null; 21917 this._loaded = 0; 21918 this._readableStream = null; 21919 this._readCapability = (0, _util.createPromiseCapability)(); 21920 var source = stream.source; 21921 this._isStreamingSupported = !source.disableStream; 21922 } 21923 21924 _createClass(BaseRangeReader, [{ 21925 key: "read", 21926 value: function () { 21927 var _read2 = _asyncToGenerator( 21928 /*#__PURE__*/ 21929 _regenerator.default.mark(function _callee2() { 21930 var chunk, buffer; 21931 return _regenerator.default.wrap(function _callee2$(_context2) { 21932 while (1) { 21933 switch (_context2.prev = _context2.next) { 21934 case 0: 21935 _context2.next = 2; 21936 return this._readCapability.promise; 21937 21938 case 2: 21939 if (!this._done) { 21940 _context2.next = 4; 21941 break; 21942 } 21943 21944 return _context2.abrupt("return", { 21945 value: undefined, 21946 done: true 21947 }); 21948 21949 case 4: 21950 if (!this._storedError) { 21951 _context2.next = 6; 21952 break; 21953 } 21954 21955 throw this._storedError; 21956 21957 case 6: 21958 chunk = this._readableStream.read(); 21959 21960 if (!(chunk === null)) { 21961 _context2.next = 10; 21962 break; 21963 } 21964 21965 this._readCapability = (0, _util.createPromiseCapability)(); 21966 return _context2.abrupt("return", this.read()); 21967 21968 case 10: 21969 this._loaded += chunk.length; 21970 21971 if (this.onProgress) { 21972 this.onProgress({ 21973 loaded: this._loaded 21974 }); 21975 } 21976 21977 buffer = new Uint8Array(chunk).buffer; 21978 return _context2.abrupt("return", { 21979 value: buffer, 21980 done: false 21981 }); 21982 21983 case 14: 21984 case "end": 21985 return _context2.stop(); 21986 } 21987 } 21988 }, _callee2, this); 21989 })); 21990 21991 function read() { 21992 return _read2.apply(this, arguments); 21993 } 21994 21995 return read; 21996 }() 21997 }, { 21998 key: "cancel", 21999 value: function cancel(reason) { 22000 if (!this._readableStream) { 22001 this._error(reason); 22002 22003 return; 22004 } 22005 22006 this._readableStream.destroy(reason); 22007 } 22008 }, { 22009 key: "_error", 22010 value: function _error(reason) { 22011 this._storedError = reason; 22012 22013 this._readCapability.resolve(); 22014 } 22015 }, { 22016 key: "_setReadableStream", 22017 value: function _setReadableStream(readableStream) { 22018 var _this2 = this; 22019 22020 this._readableStream = readableStream; 22021 readableStream.on('readable', function () { 22022 _this2._readCapability.resolve(); 22023 }); 22024 readableStream.on('end', function () { 22025 readableStream.destroy(); 22026 _this2._done = true; 22027 22028 _this2._readCapability.resolve(); 22029 }); 22030 readableStream.on('error', function (reason) { 22031 _this2._error(reason); 22032 }); 22033 22034 if (this._storedError) { 22035 this._readableStream.destroy(this._storedError); 22036 } 22037 } 22038 }, { 22039 key: "isStreamingSupported", 22040 get: function get() { 22041 return this._isStreamingSupported; 22042 } 22043 }]); 22044 22045 return BaseRangeReader; 22046}();
22047 22048function createRequestOptions(url, headers) { 22049 return { 22050 protocol: url.protocol, 22051 auth: url.auth, 22052 host: url.hostname, 22053 port: url.port, 22054 path: url.path, 22055 method: 'GET', 22056 headers: headers 22057 }; 22058} 22059 22060var PDFNodeStreamFullReader = 22061/*#__PURE__*/ 22062function (_BaseFullReader) { 22063 _inherits(PDFNodeStreamFullReader, _BaseFullReader); 22064 22065 function PDFNodeStreamFullReader(stream) { 22066 var _this3; 22067 22068 _classCallCheck(this, PDFNodeStreamFullReader); 22069 22070 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream)); 22071 22072 var handleResponse = function handleResponse(response) { 22073 if (response.statusCode === 404) { 22074 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); 22075 _this3._storedError = error; 22076 22077 _this3._headersCapability.reject(error); 22078 22079 return; 22080 } 22081 22082 _this3._headersCapability.resolve(); 22083 22084 _this3._setReadableStream(response); 22085 22086 var getResponseHeader = function getResponseHeader(name) { 22087 return _this3._readableStream.headers[name.toLowerCase()]; 22088 }; 22089 22090 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 22091 getResponseHeader: getResponseHeader, 22092 isHttp: stream.isHttp, 22093 rangeChunkSize: _this3._rangeChunkSize, 22094 disableRange: _this3._disableRange 22095 }), 22096 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 22097 suggestedLength = _validateRangeRequest.suggestedLength; 22098 22099 _this3._isRangeSupported = allowRangeRequests; 22100 _this3._contentLength = suggestedLength || _this3._contentLength; 22101 _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 22102 }; 22103 22104 _this3._request = null; 22105 22106 if (_this3._url.protocol === 'http:') { 22107 _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 22108 } else { 22109 _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 22110 } 22111 22112 _this3._request.on('error', function (reason) { 22113 _this3._storedError = reason; 22114 22115 _this3._headersCapability.reject(reason); 22116 }); 22117 22118 _this3._request.end(); 22119 22120 return _this3; 22121 } 22122 22123 return PDFNodeStreamFullReader; 22124}(BaseFullReader); 22125 22126var PDFNodeStreamRangeReader = 22127/*#__PURE__*/ 22128function (_BaseRangeReader) { 22129 _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); 22130 22131 function PDFNodeStreamRangeReader(stream, start, end) { 22132 var _this4; 22133 22134 _classCallCheck(this, PDFNodeStreamRangeReader); 22135 22136 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream)); 22137 _this4._httpHeaders = {}; 22138 22139 for (var property in stream.httpHeaders) { 22140 var value = stream.httpHeaders[property]; 22141 22142 if (typeof value === 'undefined') { 22143 continue; 22144 } 22145 22146 _this4._httpHeaders[property] = value; 22147 } 22148 22149 _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1); 22150 22151 var handleResponse = function handleResponse(response) { 22152 if (response.statusCode === 404) { 22153 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); 22154 _this4._storedError = error; 22155 return; 22156 } 22157 22158 _this4._setReadableStream(response); 22159 }; 22160 22161 _this4._request = null; 22162 22163 if (_this4._url.protocol === 'http:') { 22164 _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 22165 } else { 22166 _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 22167 } 22168 22169 _this4._request.on('error', function (reason) { 22170 _this4._storedError = reason; 22171 }); 22172 22173 _this4._request.end(); 22174 22175 return _this4; 22176 } 22177 22178 return PDFNodeStreamRangeReader; 22179}(BaseRangeReader); 22180 22181var PDFNodeStreamFsFullReader = 22182/*#__PURE__*/ 22183function (_BaseFullReader2) { 22184 _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); 22185 22186 function PDFNodeStreamFsFullReader(stream) { 22187 var _this5; 22188 22189 _classCallCheck(this, PDFNodeStreamFsFullReader); 22190 22191 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream)); 22192 var path = decodeURIComponent(_this5._url.path); 22193 22194 if (fileUriRegex.test(_this5._url.href)) { 22195 path = path.replace(/^\//, ''); 22196 } 22197 22198 fs.lstat(path, function (error, stat) { 22199 if (error) { 22200 if (error.code === 'ENOENT') { 22201 error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); 22202 } 22203 22204 _this5._storedError = error; 22205 22206 _this5._headersCapability.reject(error); 22207 22208 return; 22209 } 22210 22211 _this5._contentLength = stat.size; 22212 22213 _this5._setReadableStream(fs.createReadStream(path)); 22214 22215 _this5._headersCapability.resolve(); 22216 });
22217 return _this5; 22218 } 22219 22220 return PDFNodeStreamFsFullReader; 22221}(BaseFullReader); 22222 22223var PDFNodeStreamFsRangeReader = 22224/*#__PURE__*/ 22225function (_BaseRangeReader2) { 22226 _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); 22227 22228 function PDFNodeStreamFsRangeReader(stream, start, end) { 22229 var _this6; 22230 22231 _classCallCheck(this, PDFNodeStreamFsRangeReader); 22232 22233 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream)); 22234 var path = decodeURIComponent(_this6._url.path); 22235 22236 if (fileUriRegex.test(_this6._url.href)) { 22237 path = path.replace(/^\//, ''); 22238 } 22239 22240 _this6._setReadableStream(fs.createReadStream(path, { 22241 start: start, 22242 end: end - 1 22243 })); 22244 22245 return _this6; 22246 } 22247 22248 return PDFNodeStreamFsRangeReader; 22249}(BaseRangeReader); 22250 22251/***/ }), 22252/* 166 */ 22253/***/ (function(module, exports, __w_pdfjs_require__) { 22254 22255"use strict"; 22256 22257 22258Object.defineProperty(exports, "__esModule", { 22259 value: true 22260}); 22261exports.createResponseStatusError = createResponseStatusError; 22262exports.extractFilenameFromHeader = extractFilenameFromHeader; 22263exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; 22264exports.validateResponseStatus = validateResponseStatus; 22265 22266var _util = __w_pdfjs_require__(1); 22267 22268var _content_disposition = __w_pdfjs_require__(167); 22269 22270function validateRangeRequestCapabilities(_ref) { 22271 var getResponseHeader = _ref.getResponseHeader, 22272 isHttp = _ref.isHttp, 22273 rangeChunkSize = _ref.rangeChunkSize, 22274 disableRange = _ref.disableRange; 22275 (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); 22276 var returnValues = { 22277 allowRangeRequests: false, 22278 suggestedLength: undefined 22279 }; 22280 var length = parseInt(getResponseHeader('Content-Length'), 10); 22281 22282 if (!Number.isInteger(length)) { 22283 return returnValues; 22284 } 22285 22286 returnValues.suggestedLength = length; 22287 22288 if (length <= 2 * rangeChunkSize) { 22289 return returnValues; 22290 } 22291 22292 if (disableRange || !isHttp) { 22293 return returnValues; 22294 } 22295 22296 if (getResponseHeader('Accept-Ranges') !== 'bytes') { 22297 return returnValues; 22298 } 22299 22300 var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; 22301 22302 if (contentEncoding !== 'identity') { 22303 return returnValues; 22304 } 22305 22306 returnValues.allowRangeRequests = true; 22307 return returnValues; 22308} 22309 22310function extractFilenameFromHeader(getResponseHeader) { 22311 var contentDisposition = getResponseHeader('Content-Disposition'); 22312 22313 if (contentDisposition) { 22314 var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); 22315 22316 if (/\.pdf$/i.test(filename)) { 22317 return filename; 22318 } 22319 } 22320 22321 return null; 22322} 22323 22324function createResponseStatusError(status, url) { 22325 if (status === 404 || status === 0 && /^file:/.test(url)) { 22326 return new _util.MissingPDFException('Missing PDF "' + url + '".'); 22327 } 22328 22329 return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); 22330} 22331 22332function validateResponseStatus(status) { 22333 return status === 200 || status === 206; 22334} 22335 22336/***/ }), 22337/* 167 */ 22338/***/ (function(module, exports, __w_pdfjs_require__) { 22339 22340"use strict"; 22341 22342 22343Object.defineProperty(exports, "__esModule", { 22344 value: true 22345}); 22346exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; 22347 22348function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } 22349 22350function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } 22351 22352function _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; } 22353 22354function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } 22355 22356function getFilenameFromContentDispositionHeader(contentDisposition) { 22357 var needsEncodingFixup = true; 22358 var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); 22359 22360 if (tmp) { 22361 tmp = tmp[1]; 22362 var filename = rfc2616unquote(tmp); 22363 filename = unescape(filename); 22364 filename = rfc5987decode(filename); 22365 filename = rfc2047decode(filename); 22366 return fixupEncoding(filename); 22367 } 22368 22369 tmp = rfc2231getparam(contentDisposition); 22370 22371 if (tmp) { 22372 var _filename = rfc2047decode(tmp); 22373 22374 return fixupEncoding(_filename); 22375 } 22376 22377 tmp = toParamRegExp('filename', 'i').exec(contentDisposition); 22378 22379 if (tmp) { 22380 tmp = tmp[1]; 22381 22382 var _filename2 = rfc2616unquote(tmp); 22383 22384 _filename2 = rfc2047decode(_filename2); 22385 return fixupEncoding(_filename2); 22386 } 22387 22388 function toParamRegExp(attributePattern, flags) { 22389 return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); 22390 } 22391 22392 function textdecode(encoding, value) { 22393 if (encoding) { 22394 if (!/^[\x00-\xFF]+$/.test(value)) { 22395 return value; 22396 } 22397
22398 try { 22399 var decoder = new TextDecoder(encoding, { 22400 fatal: true 22401 }); 22402 var bytes = Array.from(value, function (ch) { 22403 return ch.charCodeAt(0) & 0xFF; 22404 }); 22405 value = decoder.decode(new Uint8Array(bytes)); 22406 needsEncodingFixup = false; 22407 } catch (e) { 22408 if (/^utf-?8$/i.test(encoding)) { 22409 try { 22410 value = decodeURIComponent(escape(value)); 22411 needsEncodingFixup = false; 22412 } catch (err) {} 22413 } 22414 } 22415 } 22416 22417 return value; 22418 } 22419 22420 function fixupEncoding(value) { 22421 if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { 22422 value = textdecode('utf-8', value); 22423 22424 if (needsEncodingFixup) { 22425 value = textdecode('iso-8859-1', value); 22426 } 22427 } 22428 22429 return value; 22430 } 22431 22432 function rfc2231getparam(contentDisposition) { 22433 var matches = [], 22434 match; 22435 var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); 22436 22437 while ((match = iter.exec(contentDisposition)) !== null) { 22438 var _match = match, 22439 _match2 = _slicedToArray(_match, 4), 22440 n = _match2[1], 22441 quot = _match2[2], 22442 part = _match2[3]; 22443 22444 n = parseInt(n, 10); 22445 22446 if (n in matches) { 22447 if (n === 0) { 22448 break; 22449 } 22450 22451 continue; 22452 } 22453 22454 matches[n] = [quot, part]; 22455 } 22456 22457 var parts = []; 22458 22459 for (var n = 0; n < matches.length; ++n) { 22460 if (!(n in matches)) { 22461 break; 22462 } 22463 22464 var _matches$n = _slicedToArray(matches[n], 2), 22465 quot = _matches$n[0], 22466 part = _matches$n[1]; 22467 22468 part = rfc2616unquote(part); 22469 22470 if (quot) { 22471 part = unescape(part); 22472 22473 if (n === 0) { 22474 part = rfc5987decode(part); 22475 } 22476 } 22477 22478 parts.push(part); 22479 } 22480 22481 return parts.join(''); 22482 } 22483 22484 function rfc2616unquote(value) { 22485 if (value.startsWith('"')) { 22486 var parts = value.slice(1).split('\\"'); 22487 22488 for (var i = 0; i < parts.length; ++i) { 22489 var quotindex = parts[i].indexOf('"'); 22490 22491 if (quotindex !== -1) { 22492 parts[i] = parts[i].slice(0, quotindex); 22493 parts.length = i + 1; 22494 } 22495 22496 parts[i] = parts[i].replace(/\\(.)/g, '$1'); 22497 } 22498 22499 value = parts.join('"'); 22500 } 22501 22502 return value; 22503 } 22504 22505 function rfc5987decode(extvalue) { 22506 var encodingend = extvalue.indexOf('\''); 22507 22508 if (encodingend === -1) { 22509 return extvalue; 22510 } 22511 22512 var encoding = extvalue.slice(0, encodingend); 22513 var langvalue = extvalue.slice(encodingend + 1); 22514 var value = langvalue.replace(/^[^']*'/, ''); 22515 return textdecode(encoding, value); 22516 } 22517 22518 function rfc2047decode(value) { 22519 if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) { 22520 return value; 22521 } 22522 22523 return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { 22524 if (encoding === 'q' || encoding === 'Q') { 22525 text = text.replace(/_/g, ' '); 22526 text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { 22527 return String.fromCharCode(parseInt(hex, 16)); 22528 }); 22529 return textdecode(charset, text); 22530 } 22531 22532 try { 22533 text = atob(text); 22534 } catch (e) {} 22535 22536 return textdecode(charset, text); 22537 }); 22538 } 22539 22540 return ''; 22541} 22542 22543/***/ }), 22544/* 168 */ 22545/***/ (function(module, exports, __w_pdfjs_require__) { 22546 22547"use strict"; 22548 22549 22550Object.defineProperty(exports, "__esModule", { 22551 value: true 22552}); 22553exports.PDFFetchStream = void 0; 22554 22555var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 22556 22557var _util = __w_pdfjs_require__(1); 22558 22559var _network_utils = __w_pdfjs_require__(166); 22560 22561function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 22562 22563function 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); } } 22564 22565function _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); }); }; } 22566 22567function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 22568 22569function _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); } } 22570 22571function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 22572 22573function createFetchOptions(headers, withCredentials, abortController) { 22574 return { 22575 method: 'GET', 22576 headers: headers, 22577 signal: abortController && abortController.signal,
22578 mode: 'cors', 22579 credentials: withCredentials ? 'include' : 'same-origin', 22580 redirect: 'follow' 22581 }; 22582} 22583 22584var PDFFetchStream = 22585/*#__PURE__*/ 22586function () { 22587 function PDFFetchStream(source) { 22588 _classCallCheck(this, PDFFetchStream); 22589 22590 this.source = source; 22591 this.isHttp = /^https?:/i.test(source.url); 22592 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 22593 this._fullRequestReader = null; 22594 this._rangeRequestReaders = []; 22595 } 22596 22597 _createClass(PDFFetchStream, [{ 22598 key: "getFullReader", 22599 value: function getFullReader() { 22600 (0, _util.assert)(!this._fullRequestReader); 22601 this._fullRequestReader = new PDFFetchStreamReader(this); 22602 return this._fullRequestReader; 22603 } 22604 }, { 22605 key: "getRangeReader", 22606 value: function getRangeReader(begin, end) { 22607 var reader = new PDFFetchStreamRangeReader(this, begin, end); 22608 22609 this._rangeRequestReaders.push(reader); 22610 22611 return reader; 22612 } 22613 }, { 22614 key: "cancelAllRequests", 22615 value: function cancelAllRequests(reason) { 22616 if (this._fullRequestReader) { 22617 this._fullRequestReader.cancel(reason); 22618 } 22619 22620 var readers = this._rangeRequestReaders.slice(0); 22621 22622 readers.forEach(function (reader) { 22623 reader.cancel(reason); 22624 }); 22625 } 22626 }]); 22627 22628 return PDFFetchStream; 22629}(); 22630 22631exports.PDFFetchStream = PDFFetchStream; 22632 22633var PDFFetchStreamReader = 22634/*#__PURE__*/ 22635function () { 22636 function PDFFetchStreamReader(stream) { 22637 var _this = this; 22638 22639 _classCallCheck(this, PDFFetchStreamReader); 22640 22641 this._stream = stream; 22642 this._reader = null; 22643 this._loaded = 0; 22644 this._filename = null; 22645 var source = stream.source; 22646 this._withCredentials = source.withCredentials; 22647 this._contentLength = source.length; 22648 this._headersCapability = (0, _util.createPromiseCapability)(); 22649 this._disableRange = source.disableRange || false; 22650 this._rangeChunkSize = source.rangeChunkSize; 22651 22652 if (!this._rangeChunkSize && !this._disableRange) { 22653 this._disableRange = true; 22654 } 22655 22656 if (typeof AbortController !== 'undefined') { 22657 this._abortController = new AbortController(); 22658 } 22659 22660 this._isStreamingSupported = !source.disableStream; 22661 this._isRangeSupported = !source.disableRange; 22662 this._headers = new Headers(); 22663 22664 for (var property in this._stream.httpHeaders) { 22665 var value = this._stream.httpHeaders[property]; 22666 22667 if (typeof value === 'undefined') { 22668 continue; 22669 } 22670 22671 this._headers.append(property, value); 22672 } 22673 22674 var url = source.url; 22675 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 22676 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 22677 throw (0, _network_utils.createResponseStatusError)(response.status, url); 22678 } 22679 22680 _this._reader = response.body.getReader(); 22681 22682 _this._headersCapability.resolve(); 22683 22684 var getResponseHeader = function getResponseHeader(name) { 22685 return response.headers.get(name); 22686 }; 22687 22688 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 22689 getResponseHeader: getResponseHeader, 22690 isHttp: _this._stream.isHttp, 22691 rangeChunkSize: _this._rangeChunkSize, 22692 disableRange: _this._disableRange 22693 }), 22694 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 22695 suggestedLength = _validateRangeRequest.suggestedLength; 22696 22697 _this._isRangeSupported = allowRangeRequests; 22698 _this._contentLength = suggestedLength || _this._contentLength; 22699 _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 22700 22701 if (!_this._isStreamingSupported && _this._isRangeSupported) { 22702 _this.cancel(new _util.AbortException('streaming is disabled')); 22703 } 22704 }).catch(this._headersCapability.reject); 22705 this.onProgress = null; 22706 } 22707 22708 _createClass(PDFFetchStreamReader, [{ 22709 key: "read", 22710 value: function () { 22711 var _read = _asyncToGenerator( 22712 /*#__PURE__*/ 22713 _regenerator.default.mark(function _callee() { 22714 var _ref, value, done, buffer; 22715 22716 return _regenerator.default.wrap(function _callee$(_context) { 22717 while (1) { 22718 switch (_context.prev = _context.next) { 22719 case 0: 22720 _context.next = 2; 22721 return this._headersCapability.promise; 22722 22723 case 2: 22724 _context.next = 4; 22725 return this._reader.read(); 22726 22727 case 4: 22728 _ref = _context.sent; 22729 value = _ref.value; 22730 done = _ref.done; 22731 22732 if (!done) { 22733 _context.next = 9; 22734 break; 22735 } 22736 22737 return _context.abrupt("return", { 22738 value: value, 22739 done: done 22740 }); 22741 22742 case 9: 22743 this._loaded += value.byteLength; 22744 22745 if (this.onProgress) { 22746 this.onProgress({ 22747 loaded: this._loaded, 22748 total: this._contentLength 22749 }); 22750 } 22751 22752 buffer = new Uint8Array(value).buffer; 22753 return _context.abrupt("return", { 22754 value: buffer, 22755 done: false 22756 }); 22757 22758 case 13: 22759 case "end": 22760 return _context.stop(); 22761 } 22762 } 22763 }, _callee, this); 22764 })); 22765 22766 function read() { 22767 return _read.apply(this, arguments); 22768 } 22769 22770 return read; 22771 }() 22772 }, { 22773 key: "cancel", 22774 value: function cancel(reason) { 22775 if (this._reader) { 22776 this._reader.cancel(reason); 22777 } 22778 22779 if (this._abortController) { 22780 this._abortController.abort(); 22781 } 22782 } 22783 }, { 22784 key: "headersReady", 22785 get: function get() { 22786 return this._headersCapability.promise; 22787 } 22788 }, { 22789 key: "filename",
22790 get: function get() { 22791 return this._filename; 22792 } 22793 }, { 22794 key: "contentLength", 22795 get: function get() { 22796 return this._contentLength; 22797 } 22798 }, { 22799 key: "isRangeSupported", 22800 get: function get() { 22801 return this._isRangeSupported; 22802 } 22803 }, { 22804 key: "isStreamingSupported", 22805 get: function get() { 22806 return this._isStreamingSupported; 22807 } 22808 }]); 22809 22810 return PDFFetchStreamReader; 22811}(); 22812 22813var PDFFetchStreamRangeReader = 22814/*#__PURE__*/ 22815function () { 22816 function PDFFetchStreamRangeReader(stream, begin, end) { 22817 var _this2 = this; 22818 22819 _classCallCheck(this, PDFFetchStreamRangeReader); 22820 22821 this._stream = stream; 22822 this._reader = null; 22823 this._loaded = 0; 22824 var source = stream.source; 22825 this._withCredentials = source.withCredentials; 22826 this._readCapability = (0, _util.createPromiseCapability)(); 22827 this._isStreamingSupported = !source.disableStream; 22828 22829 if (typeof AbortController !== 'undefined') { 22830 this._abortController = new AbortController(); 22831 } 22832 22833 this._headers = new Headers(); 22834 22835 for (var property in this._stream.httpHeaders) { 22836 var value = this._stream.httpHeaders[property]; 22837 22838 if (typeof value === 'undefined') { 22839 continue; 22840 } 22841 22842 this._headers.append(property, value); 22843 } 22844 22845 var rangeStr = begin + '-' + (end - 1); 22846 22847 this._headers.append('Range', 'bytes=' + rangeStr); 22848 22849 var url = source.url; 22850 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 22851 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 22852 throw (0, _network_utils.createResponseStatusError)(response.status, url); 22853 } 22854 22855 _this2._readCapability.resolve(); 22856 22857 _this2._reader = response.body.getReader(); 22858 }); 22859 this.onProgress = null; 22860 } 22861 22862 _createClass(PDFFetchStreamRangeReader, [{ 22863 key: "read", 22864 value: function () { 22865 var _read2 = _asyncToGenerator( 22866 /*#__PURE__*/ 22867 _regenerator.default.mark(function _callee2() { 22868 var _ref2, value, done, buffer; 22869 22870 return _regenerator.default.wrap(function _callee2$(_context2) { 22871 while (1) { 22872 switch (_context2.prev = _context2.next) { 22873 case 0: 22874 _context2.next = 2; 22875 return this._readCapability.promise; 22876 22877 case 2: 22878 _context2.next = 4; 22879 return this._reader.read(); 22880 22881 case 4: 22882 _ref2 = _context2.sent; 22883 value = _ref2.value; 22884 done = _ref2.done; 22885 22886 if (!done) { 22887 _context2.next = 9; 22888 break; 22889 } 22890 22891 return _context2.abrupt("return", { 22892 value: value, 22893 done: done 22894 }); 22895 22896 case 9: 22897 this._loaded += value.byteLength; 22898 22899 if (this.onProgress) { 22900 this.onProgress({ 22901 loaded: this._loaded 22902 }); 22903 } 22904 22905 buffer = new Uint8Array(value).buffer; 22906 return _context2.abrupt("return", { 22907 value: buffer, 22908 done: false 22909 }); 22910 22911 case 13: 22912 case "end": 22913 return _context2.stop(); 22914 } 22915 } 22916 }, _callee2, this); 22917 })); 22918 22919 function read() { 22920 return _read2.apply(this, arguments); 22921 } 22922 22923 return read; 22924 }() 22925 }, { 22926 key: "cancel", 22927 value: function cancel(reason) { 22928 if (this._reader) { 22929 this._reader.cancel(reason); 22930 } 22931 22932 if (this._abortController) { 22933 this._abortController.abort(); 22934 } 22935 } 22936 }, { 22937 key: "isStreamingSupported", 22938 get: function get() { 22939 return this._isStreamingSupported; 22940 } 22941 }]); 22942 22943 return PDFFetchStreamRangeReader; 22944}(); 22945 22946/***/ }), 22947/* 169 */ 22948/***/ (function(module, exports, __w_pdfjs_require__) { 22949 22950"use strict"; 22951 22952 22953Object.defineProperty(exports, "__esModule", { 22954 value: true 22955}); 22956exports.PDFNetworkStream = PDFNetworkStream; 22957exports.NetworkManager = NetworkManager; 22958 22959var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147)); 22960 22961var _util = __w_pdfjs_require__(1); 22962 22963var _network_utils = __w_pdfjs_require__(166); 22964 22965var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
22966 22967function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 22968 22969function 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); } } 22970 22971function _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); }); }; } 22972 22973; 22974var OK_RESPONSE = 200; 22975var PARTIAL_CONTENT_RESPONSE = 206; 22976 22977function NetworkManager(url, args) { 22978 this.url = url; 22979 args = args || {}; 22980 this.isHttp = /^https?:/i.test(url); 22981 this.httpHeaders = this.isHttp && args.httpHeaders || {}; 22982 this.withCredentials = args.withCredentials || false; 22983 22984 this.getXhr = args.getXhr || function NetworkManager_getXhr() { 22985 return new XMLHttpRequest(); 22986 }; 22987 22988 this.currXhrId = 0; 22989 this.pendingRequests = Object.create(null); 22990 this.loadedRequests = Object.create(null); 22991} 22992 22993function getArrayBuffer(xhr) { 22994 var data = xhr.response; 22995 22996 if (typeof data !== 'string') { 22997 return data; 22998 } 22999 23000 var array = (0, _util.stringToBytes)(data); 23001 return array.buffer; 23002} 23003 23004var supportsMozChunked = function supportsMozChunkedClosure() { 23005 try { 23006 var x = new XMLHttpRequest(); 23007 x.open('GET', _global_scope.default.location.href); 23008 x.responseType = 'moz-chunked-arraybuffer'; 23009 return x.responseType === 'moz-chunked-arraybuffer'; 23010 } catch (e) { 23011 return false; 23012 } 23013}(); 23014 23015NetworkManager.prototype = { 23016 requestRange: function NetworkManager_requestRange(begin, end, listeners) { 23017 var args = { 23018 begin: begin, 23019 end: end 23020 }; 23021 23022 for (var prop in listeners) { 23023 args[prop] = listeners[prop]; 23024 } 23025 23026 return this.request(args); 23027 }, 23028 requestFull: function NetworkManager_requestFull(listeners) { 23029 return this.request(listeners); 23030 }, 23031 request: function NetworkManager_request(args) { 23032 var xhr = this.getXhr(); 23033 var xhrId = this.currXhrId++; 23034 var pendingRequest = this.pendingRequests[xhrId] = { 23035 xhr: xhr 23036 }; 23037 xhr.open('GET', this.url); 23038 xhr.withCredentials = this.withCredentials; 23039 23040 for (var property in this.httpHeaders) { 23041 var value = this.httpHeaders[property]; 23042 23043 if (typeof value === 'undefined') { 23044 continue; 23045 } 23046 23047 xhr.setRequestHeader(property, value); 23048 } 23049 23050 if (this.isHttp && 'begin' in args && 'end' in args) { 23051 var rangeStr = args.begin + '-' + (args.end - 1); 23052 xhr.setRequestHeader('Range', 'bytes=' + rangeStr); 23053 pendingRequest.expectedStatus = 206; 23054 } else { 23055 pendingRequest.expectedStatus = 200; 23056 } 23057 23058 var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData; 23059 23060 if (useMozChunkedLoading) { 23061 xhr.responseType = 'moz-chunked-arraybuffer'; 23062 pendingRequest.onProgressiveData = args.onProgressiveData; 23063 pendingRequest.mozChunked = true; 23064 } else { 23065 xhr.responseType = 'arraybuffer'; 23066 } 23067 23068 if (args.onError) { 23069 xhr.onerror = function (evt) { 23070 args.onError(xhr.status); 23071 }; 23072 } 23073 23074 xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); 23075 xhr.onprogress = this.onProgress.bind(this, xhrId); 23076 pendingRequest.onHeadersReceived = args.onHeadersReceived; 23077 pendingRequest.onDone = args.onDone; 23078 pendingRequest.onError = args.onError; 23079 pendingRequest.onProgress = args.onProgress; 23080 xhr.send(null); 23081 return xhrId; 23082 }, 23083 onProgress: function NetworkManager_onProgress(xhrId, evt) { 23084 var pendingRequest = this.pendingRequests[xhrId]; 23085 23086 if (!pendingRequest) { 23087 return; 23088 } 23089 23090 if (pendingRequest.mozChunked) { 23091 var chunk = getArrayBuffer(pendingRequest.xhr); 23092 pendingRequest.onProgressiveData(chunk);
23093 } 23094 23095 var onProgress = pendingRequest.onProgress; 23096 23097 if (onProgress) { 23098 onProgress(evt); 23099 } 23100 }, 23101 onStateChange: function NetworkManager_onStateChange(xhrId, evt) { 23102 var pendingRequest = this.pendingRequests[xhrId]; 23103 23104 if (!pendingRequest) { 23105 return; 23106 } 23107 23108 var xhr = pendingRequest.xhr; 23109 23110 if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { 23111 pendingRequest.onHeadersReceived(); 23112 delete pendingRequest.onHeadersReceived; 23113 } 23114 23115 if (xhr.readyState !== 4) { 23116 return; 23117 } 23118 23119 if (!(xhrId in this.pendingRequests)) { 23120 return; 23121 } 23122 23123 delete this.pendingRequests[xhrId]; 23124 23125 if (xhr.status === 0 && this.isHttp) { 23126 if (pendingRequest.onError) { 23127 pendingRequest.onError(xhr.status); 23128 } 23129 23130 return; 23131 } 23132 23133 var xhrStatus = xhr.status || OK_RESPONSE; 23134 var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; 23135 23136 if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { 23137 if (pendingRequest.onError) { 23138 pendingRequest.onError(xhr.status); 23139 } 23140 23141 return; 23142 } 23143 23144 this.loadedRequests[xhrId] = true; 23145 var chunk = getArrayBuffer(xhr); 23146 23147 if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { 23148 var rangeHeader = xhr.getResponseHeader('Content-Range'); 23149 var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); 23150 var begin = parseInt(matches[1], 10); 23151 pendingRequest.onDone({ 23152 begin: begin, 23153 chunk: chunk 23154 }); 23155 } else if (pendingRequest.onProgressiveData) { 23156 pendingRequest.onDone(null); 23157 } else if (chunk) { 23158 pendingRequest.onDone({ 23159 begin: 0, 23160 chunk: chunk 23161 }); 23162 } else if (pendingRequest.onError) { 23163 pendingRequest.onError(xhr.status); 23164 } 23165 }, 23166 hasPendingRequests: function NetworkManager_hasPendingRequests() { 23167 for (var xhrId in this.pendingRequests) { 23168 return true; 23169 } 23170 23171 return false; 23172 }, 23173 getRequestXhr: function NetworkManager_getXhr(xhrId) { 23174 return this.pendingRequests[xhrId].xhr; 23175 }, 23176 isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) { 23177 return !!this.pendingRequests[xhrId].onProgressiveData; 23178 }, 23179 isPendingRequest: function NetworkManager_isPendingRequest(xhrId) { 23180 return xhrId in this.pendingRequests; 23181 }, 23182 isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) { 23183 return xhrId in this.loadedRequests; 23184 }, 23185 abortAllRequests: function NetworkManager_abortAllRequests() { 23186 for (var xhrId in this.pendingRequests) { 23187 this.abortRequest(xhrId | 0); 23188 } 23189 }, 23190 abortRequest: function NetworkManager_abortRequest(xhrId) { 23191 var xhr = this.pendingRequests[xhrId].xhr; 23192 delete this.pendingRequests[xhrId]; 23193 xhr.abort(); 23194 } 23195}; 23196 23197function PDFNetworkStream(source) { 23198 this._source = source; 23199 this._manager = new NetworkManager(source.url, { 23200 httpHeaders: source.httpHeaders, 23201 withCredentials: source.withCredentials 23202 }); 23203 this._rangeChunkSize = source.rangeChunkSize; 23204 this._fullRequestReader = null; 23205 this._rangeRequestReaders = []; 23206} 23207 23208PDFNetworkStream.prototype = { 23209 _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) { 23210 var i = this._rangeRequestReaders.indexOf(reader); 23211 23212 if (i >= 0) { 23213 this._rangeRequestReaders.splice(i, 1); 23214 } 23215 }, 23216 getFullReader: function PDFNetworkStream_getFullReader() { 23217 (0, _util.assert)(!this._fullRequestReader); 23218 this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); 23219 return this._fullRequestReader; 23220 }, 23221 getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) { 23222 var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); 23223 reader.onClosed = this._onRangeRequestReaderClosed.bind(this); 23224 23225 this._rangeRequestReaders.push(reader); 23226 23227 return reader; 23228 }, 23229 cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) { 23230 if (this._fullRequestReader) { 23231 this._fullRequestReader.cancel(reason); 23232 } 23233 23234 var readers = this._rangeRequestReaders.slice(0); 23235
23236 readers.forEach(function (reader) { 23237 reader.cancel(reason); 23238 }); 23239 } 23240}; 23241 23242function PDFNetworkStreamFullRequestReader(manager, source) { 23243 this._manager = manager; 23244 var args = { 23245 onHeadersReceived: this._onHeadersReceived.bind(this), 23246 onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this), 23247 onDone: this._onDone.bind(this), 23248 onError: this._onError.bind(this), 23249 onProgress: this._onProgress.bind(this) 23250 }; 23251 this._url = source.url; 23252 this._fullRequestId = manager.requestFull(args); 23253 this._headersReceivedCapability = (0, _util.createPromiseCapability)(); 23254 this._disableRange = source.disableRange || false; 23255 this._contentLength = source.length; 23256 this._rangeChunkSize = source.rangeChunkSize; 23257 23258 if (!this._rangeChunkSize && !this._disableRange) { 23259 this._disableRange = true; 23260 } 23261 23262 this._isStreamingSupported = false; 23263 this._isRangeSupported = false; 23264 this._cachedChunks = []; 23265 this._requests = []; 23266 this._done = false; 23267 this._storedError = undefined; 23268 this._filename = null; 23269 this.onProgress = null; 23270} 23271 23272PDFNetworkStreamFullRequestReader.prototype = { 23273 _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() { 23274 var fullRequestXhrId = this._fullRequestId; 23275 23276 var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); 23277 23278 var getResponseHeader = function getResponseHeader(name) { 23279 return fullRequestXhr.getResponseHeader(name); 23280 }; 23281 23282 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 23283 getResponseHeader: getResponseHeader, 23284 isHttp: this._manager.isHttp, 23285 rangeChunkSize: this._rangeChunkSize, 23286 disableRange: this._disableRange 23287 }), 23288 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 23289 suggestedLength = _validateRangeRequest.suggestedLength; 23290 23291 if (allowRangeRequests) { 23292 this._isRangeSupported = true; 23293 } 23294 23295 this._contentLength = suggestedLength || this._contentLength; 23296 this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 23297 var networkManager = this._manager; 23298 23299 if (networkManager.isStreamingRequest(fullRequestXhrId)) { 23300 this._isStreamingSupported = true; 23301 } else if (this._isRangeSupported) { 23302 networkManager.abortRequest(fullRequestXhrId); 23303 } 23304 23305 this._headersReceivedCapability.resolve(); 23306 }, 23307 _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) { 23308 if (this._requests.length > 0) { 23309 var requestCapability = this._requests.shift(); 23310 23311 requestCapability.resolve({ 23312 value: chunk, 23313 done: false 23314 }); 23315 } else { 23316 this._cachedChunks.push(chunk); 23317 } 23318 }, 23319 _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) { 23320 if (args) { 23321 this._onProgressiveData(args.chunk); 23322 } 23323 23324 this._done = true; 23325 23326 if (this._cachedChunks.length > 0) { 23327 return; 23328 } 23329 23330 this._requests.forEach(function (requestCapability) { 23331 requestCapability.resolve({ 23332 value: undefined, 23333 done: true 23334 }); 23335 }); 23336 23337 this._requests = []; 23338 }, 23339 _onError: function PDFNetworkStreamFullRequestReader_onError(status) { 23340 var url = this._url; 23341 var exception = (0, _network_utils.createResponseStatusError)(status, url); 23342 this._storedError = exception; 23343 23344 this._headersReceivedCapability.reject(exception); 23345 23346 this._requests.forEach(function (requestCapability) { 23347 requestCapability.reject(exception); 23348 }); 23349 23350 this._requests = []; 23351 this._cachedChunks = []; 23352 }, 23353 _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) { 23354 if (this.onProgress) { 23355 this.onProgress({ 23356 loaded: data.loaded, 23357 total: data.lengthComputable ? data.total : this._contentLength 23358 }); 23359 } 23360 }, 23361 23362 get filename() { 23363 return this._filename; 23364 }, 23365 23366 get isRangeSupported() { 23367 return this._isRangeSupported; 23368 }, 23369 23370 get isStreamingSupported() { 23371 return this._isStreamingSupported; 23372 }, 23373 23374 get contentLength() { 23375 return this._contentLength; 23376 }, 23377 23378 get headersReady() { 23379 return this._headersReceivedCapability.promise; 23380 }, 23381 23382 read: function () { 23383 var _read = _asyncToGenerator( 23384 /*#__PURE__*/ 23385 _regenerator.default.mark(function _callee() { 23386 var chunk, requestCapability; 23387 return _regenerator.default.wrap(function _callee$(_context) { 23388 while (1) { 23389 switch (_context.prev = _context.next) { 23390 case 0: 23391 if (!this._storedError) { 23392 _context.next = 2; 23393 break; 23394 } 23395 23396 throw this._storedError; 23397 23398 case 2: 23399 if (!(this._cachedChunks.length > 0)) { 23400 _context.next = 5; 23401 break; 23402 } 23403 23404 chunk = this._cachedChunks.shift(); 23405 return _context.abrupt("return", { 23406 value: chunk, 23407 done: false 23408 }); 23409 23410 case 5: 23411 if (!this._done) { 23412 _context.next = 7; 23413 break; 23414 } 23415 23416 return _context.abrupt("return", { 23417 value: undefined, 23418 done: true 23419 }); 23420 23421 case 7: 23422 requestCapability = (0, _util.createPromiseCapability)(); 23423 23424 this._requests.push(requestCapability); 23425 23426 return _context.abrupt("return", requestCapability.promise); 23427 23428 case 10: 23429 case "end": 23430 return _context.stop(); 23431 } 23432 } 23433 }, _callee, this); 23434 })); 23435 23436 function read() { 23437 return _read.apply(this, arguments); 23438 } 23439 23440 return read; 23441 }(), 23442 cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) { 23443 this._done = true; 23444 23445 this._headersReceivedCapability.reject(reason); 23446
23447 this._requests.forEach(function (requestCapability) { 23448 requestCapability.resolve({ 23449 value: undefined, 23450 done: true 23451 }); 23452 }); 23453 23454 this._requests = []; 23455 23456 if (this._manager.isPendingRequest(this._fullRequestId)) { 23457 this._manager.abortRequest(this._fullRequestId); 23458 } 23459 23460 this._fullRequestReader = null; 23461 } 23462}; 23463 23464function PDFNetworkStreamRangeRequestReader(manager, begin, end) { 23465 this._manager = manager; 23466 var args = { 23467 onDone: this._onDone.bind(this), 23468 onProgress: this._onProgress.bind(this) 23469 }; 23470 this._requestId = manager.requestRange(begin, end, args); 23471 this._requests = []; 23472 this._queuedChunk = null; 23473 this._done = false; 23474 this.onProgress = null; 23475 this.onClosed = null; 23476} 23477 23478PDFNetworkStreamRangeRequestReader.prototype = { 23479 _close: function PDFNetworkStreamRangeRequestReader_close() { 23480 if (this.onClosed) { 23481 this.onClosed(this); 23482 } 23483 }, 23484 _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) { 23485 var chunk = data.chunk; 23486 23487 if (this._requests.length > 0) { 23488 var requestCapability = this._requests.shift(); 23489 23490 requestCapability.resolve({ 23491 value: chunk, 23492 done: false 23493 }); 23494 } else { 23495 this._queuedChunk = chunk; 23496 } 23497 23498 this._done = true; 23499 23500 this._requests.forEach(function (requestCapability) { 23501 requestCapability.resolve({ 23502 value: undefined, 23503 done: true 23504 }); 23505 }); 23506 23507 this._requests = []; 23508 23509 this._close(); 23510 }, 23511 _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) { 23512 if (!this.isStreamingSupported && this.onProgress) { 23513 this.onProgress({ 23514 loaded: evt.loaded 23515 }); 23516 } 23517 }, 23518 23519 get isStreamingSupported() { 23520 return false; 23521 }, 23522 23523 read: function () { 23524 var _read2 = _asyncToGenerator( 23525 /*#__PURE__*/ 23526 _regenerator.default.mark(function _callee2() { 23527 var chunk, requestCapability; 23528 return _regenerator.default.wrap(function _callee2$(_context2) { 23529 while (1) { 23530 switch (_context2.prev = _context2.next) { 23531 case 0: 23532 if (!(this._queuedChunk !== null)) { 23533 _context2.next = 4; 23534 break; 23535 } 23536 23537 chunk = this._queuedChunk; 23538 this._queuedChunk = null; 23539 return _context2.abrupt("return", { 23540 value: chunk, 23541 done: false 23542 }); 23543 23544 case 4: 23545 if (!this._done) { 23546 _context2.next = 6; 23547 break; 23548 } 23549 23550 return _context2.abrupt("return", { 23551 value: undefined, 23552 done: true 23553 }); 23554 23555 case 6: 23556 requestCapability = (0, _util.createPromiseCapability)(); 23557 23558 this._requests.push(requestCapability); 23559 23560 return _context2.abrupt("return", requestCapability.promise); 23561 23562 case 9: 23563 case "end": 23564 return _context2.stop(); 23565 } 23566 } 23567 }, _callee2, this); 23568 })); 23569 23570 function read() { 23571 return _read2.apply(this, arguments); 23572 } 23573 23574 return read; 23575 }(), 23576 cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) { 23577 this._done = true; 23578 23579 this._requests.forEach(function (requestCapability) { 23580 requestCapability.resolve({ 23581 value: undefined, 23582 done: true 23583 }); 23584 }); 23585 23586 this._requests = []; 23587 23588 if (this._manager.isPendingRequest(this._requestId)) { 23589 this._manager.abortRequest(this._requestId); 23590 } 23591 23592 this._close(); 23593 } 23594}; 23595 23596/***/ }) 23597/******/ ]); 23598}); 23599//# sourceMappingURL=pdf.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.