1/** 2 3 */ 4 5(function webpackUniversalModuleDefinition(root, factory) { 6 if(typeof exports === 'object' && typeof module === 'object') 7 module.exports = factory(); 8 else if(typeof define === 'function' && define.amd) 9 define("pdfjs-dist/build/pdf", [], factory); 10 else if(typeof exports === 'object') 11 exports["pdfjs-dist/build/pdf"] = factory(); 12 else 13 root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); 14})(this, function() { 15return /******/ (function(modules) { // webpackBootstrap 16/******/ // The module cache 17/******/ var installedModules = {}; 18/******/ 19/******/ // The require function 20/******/ function __w_pdfjs_require__(moduleId) { 21/******/ 22/******/ // Check if module is in cache 23/******/ if(installedModules[moduleId]) { 24/******/ return installedModules[moduleId].exports; 25/******/ } 26/******/ // Create a new module (and put it into the cache) 27/******/ var module = installedModules[moduleId] = { 28/******/ i: moduleId, 29/******/ l: false, 30/******/ exports: {} 31/******/ }; 32/******/ 33/******/ // Execute the module function 34/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 35/******/ 36/******/ // Flag the module as loaded 37/******/ module.l = true; 38/******/ 39/******/ // Return the exports of the module 40/******/ return module.exports; 41/******/ } 42/******/ 43/******/ 44/******/ // expose the modules object (__webpack_modules__) 45/******/ __w_pdfjs_require__.m = modules; 46/******/ 47/******/ // expose the module cache 48/******/ __w_pdfjs_require__.c = installedModules; 49/******/ 50/******/ // define getter function for harmony exports 51/******/ __w_pdfjs_require__.d = function(exports, name, getter) { 52/******/ if(!__w_pdfjs_require__.o(exports, name)) { 53/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 54/******/ } 55/******/ }; 56/******/ 57/******/ // define __esModule on exports 58/******/ __w_pdfjs_require__.r = function(exports) { 59/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 60/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 61/******/ } 62/******/ Object.defineProperty(exports, '__esModule', { value: true }); 63/******/ }; 64/******/ 65/******/ // create a fake namespace object 66/******/ // mode & 1: value is a module id, require it 67/******/ // mode & 2: merge all properties of value into the ns 68/******/ // mode & 4: return value when already ns object 69/******/ // mode & 8|1: behave like require 70/******/ __w_pdfjs_require__.t = function(value, mode) { 71/******/ if(mode & 1) value = __w_pdfjs_require__(value); 72/******/ if(mode & 8) return value; 73/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 74/******/ var ns = Object.create(null); 75/******/ __w_pdfjs_require__.r(ns); 76/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 77/******/ 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)); 78/******/ return ns; 79/******/ }; 80/******/ 81/******/ // getDefaultExport function for compatibility with non-harmony modules 82/******/ __w_pdfjs_require__.n = function(module) { 83/******/ var getter = module && module.__esModule ? 84/******/ function getDefault() { return module['default']; } : 85/******/ function getModuleExports() { return module; }; 86/******/ __w_pdfjs_require__.d(getter, 'a', getter); 87/******/ return getter; 88/******/ }; 89/******/ 90/******/ // Object.prototype.hasOwnProperty.call 91/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 92/******/ 93/******/ // __webpack_public_path__ 94/******/ __w_pdfjs_require__.p = ""; 95/******/ 96/******/ 97/******/ // Load entry module and return exports 98/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0); 99/******/ }) 100/************************************************************************/ 101/******/ ([ 102/* 0 */ 103/***/ (function(module, exports, __w_pdfjs_require__) { 104 105"use strict"; 106 107 108var pdfjsVersion = '2.0.943'; 109var pdfjsBuild = 'dc98bf76'; 110var pdfjsSharedUtil = __w_pdfjs_require__(1); 111var pdfjsDisplayAPI = __w_pdfjs_require__(129); 112var pdfjsDisplayTextLayer = __w_pdfjs_require__(145); 113var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(146); 114var pdfjsDisplayDOMUtils = __w_pdfjs_require__(130); 115var pdfjsDisplaySVG = __w_pdfjs_require__(147); 116var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(135); 117var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(132); 118{ 119 var isNodeJS = __w_pdfjs_require__(4); 120 if (isNodeJS()) { 121 var PDFNodeStream = __w_pdfjs_require__(148).PDFNodeStream; 122 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 123 return new PDFNodeStream(params); 124 }); 125 } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') { 126 var PDFFetchStream = __w_pdfjs_require__(151).PDFFetchStream; 127 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 128 return new PDFFetchStream(params); 129 }); 130 } else { 131 var PDFNetworkStream = __w_pdfjs_require__(152).PDFNetworkStream; 132 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { 133 return new PDFNetworkStream(params); 134 }); 135 } 136} 137exports.build = pdfjsDisplayAPI.build; 138exports.version = pdfjsDisplayAPI.version; 139exports.getDocument = pdfjsDisplayAPI.getDocument; 140exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; 141exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; 142exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; 143exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; 144exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; 145exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; 146exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; 147exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; 148exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; 149exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; 150exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; 151exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; 152exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; 153exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; 154exports.OPS = pdfjsSharedUtil.OPS; 155exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; 156exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; 157exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; 158exports.createObjectURL = pdfjsSharedUtil.createObjectURL; 159exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; 160exports.shadow = pdfjsSharedUtil.shadow; 161exports.Util = pdfjsSharedUtil.Util; 162exports.ReadableStream = pdfjsSharedUtil.ReadableStream; 163exports.URL = pdfjsSharedUtil.URL; 164exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException; 165exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl; 166exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget; 167exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes; 168exports.loadScript = pdfjsDisplayDOMUtils.loadScript; 169exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; 170exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; 171 172/***/ }), 173/* 1 */ 174/***/ (function(module, exports, __w_pdfjs_require__) { 175 176"use strict"; 177 178 179Object.defineProperty(exports, "__esModule", { 180 value: true 181});
182exports.unreachable = exports.warn = exports.utf8StringToString = exports.stringToUTF8String = exports.stringToPDFString = exports.stringToBytes = exports.string32 = exports.shadow = exports.setVerbosityLevel = exports.URL = exports.ReadableStream = exports.removeNullCharacters = exports.readUint32 = exports.readUint16 = exports.readInt8 = exports.log2 = exports.isEvalSupported = exports.isLittleEndian = exports.createValidAbsoluteUrl = exports.isSameOrigin = exports.isSpace = exports.isString = exports.isNum = exports.isEmptyObj = exports.isBool = exports.isArrayBuffer = exports.info = exports.getVerbosityLevel = exports.getLookupTableFactory = exports.getInheritableProperty = exports.deprecated = exports.createObjectURL = exports.createPromiseCapability = exports.bytesToString = exports.assert = exports.arraysToBytes = exports.arrayByteLength = exports.FormatError = exports.XRefParseException = exports.toRomanNumerals = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = undefined; 183 184var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 185 186__w_pdfjs_require__(2); 187 188var _streams_polyfill = __w_pdfjs_require__(125); 189 190var _url_polyfill = __w_pdfjs_require__(127); 191 192var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; 193var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; 194var NativeImageDecoding = { 195 NONE: 'none', 196 DECODE: 'decode', 197 DISPLAY: 'display' 198}; 199var PermissionFlag = { 200 PRINT: 0x04, 201 MODIFY_CONTENTS: 0x08, 202 COPY: 0x10, 203 MODIFY_ANNOTATIONS: 0x20, 204 FILL_INTERACTIVE_FORMS: 0x100, 205 COPY_FOR_ACCESSIBILITY: 0x200, 206 ASSEMBLE: 0x400, 207 PRINT_HIGH_QUALITY: 0x800 208}; 209var TextRenderingMode = { 210 FILL: 0, 211 STROKE: 1, 212 FILL_STROKE: 2, 213 INVISIBLE: 3, 214 FILL_ADD_TO_PATH: 4, 215 STROKE_ADD_TO_PATH: 5, 216 FILL_STROKE_ADD_TO_PATH: 6, 217 ADD_TO_PATH: 7, 218 FILL_STROKE_MASK: 3, 219 ADD_TO_PATH_FLAG: 4 220}; 221var ImageKind = { 222 GRAYSCALE_1BPP: 1, 223 RGB_24BPP: 2, 224 RGBA_32BPP: 3 225}; 226var AnnotationType = { 227 TEXT: 1, 228 LINK: 2, 229 FREETEXT: 3, 230 LINE: 4, 231 SQUARE: 5, 232 CIRCLE: 6, 233 POLYGON: 7, 234 POLYLINE: 8, 235 HIGHLIGHT: 9, 236 UNDERLINE: 10, 237 SQUIGGLY: 11, 238 STRIKEOUT: 12, 239 STAMP: 13, 240 CARET: 14, 241 INK: 15, 242 POPUP: 16, 243 FILEATTACHMENT: 17, 244 SOUND: 18, 245 MOVIE: 19, 246 WIDGET: 20, 247 SCREEN: 21, 248 PRINTERMARK: 22, 249 TRAPNET: 23, 250 WATERMARK: 24, 251 THREED: 25, 252 REDACT: 26 253}; 254var AnnotationFlag = { 255 INVISIBLE: 0x01, 256 HIDDEN: 0x02, 257 PRINT: 0x04, 258 NOZOOM: 0x08, 259 NOROTATE: 0x10, 260 NOVIEW: 0x20, 261 READONLY: 0x40, 262 LOCKED: 0x80, 263 TOGGLENOVIEW: 0x100, 264 LOCKEDCONTENTS: 0x200 265}; 266var AnnotationFieldFlag = { 267 READONLY: 0x0000001, 268 REQUIRED: 0x0000002, 269 NOEXPORT: 0x0000004, 270 MULTILINE: 0x0001000, 271 PASSWORD: 0x0002000, 272 NOTOGGLETOOFF: 0x0004000, 273 RADIO: 0x0008000, 274 PUSHBUTTON: 0x0010000, 275 COMBO: 0x0020000, 276 EDIT: 0x0040000, 277 SORT: 0x0080000, 278 FILESELECT: 0x0100000, 279 MULTISELECT: 0x0200000, 280 DONOTSPELLCHECK: 0x0400000, 281 DONOTSCROLL: 0x0800000, 282 COMB: 0x1000000, 283 RICHTEXT: 0x2000000, 284 RADIOSINUNISON: 0x2000000, 285 COMMITONSELCHANGE: 0x4000000 286}; 287var AnnotationBorderStyleType = { 288 SOLID: 1, 289 DASHED: 2, 290 BEVELED: 3, 291 INSET: 4, 292 UNDERLINE: 5 293}; 294var StreamType = { 295 UNKNOWN: 0, 296 FLATE: 1, 297 LZW: 2, 298 DCT: 3, 299 JPX: 4, 300 JBIG: 5, 301 A85: 6, 302 AHX: 7, 303 CCF: 8, 304 RL: 9 305}; 306var FontType = { 307 UNKNOWN: 0, 308 TYPE1: 1, 309 TYPE1C: 2, 310 CIDFONTTYPE0: 3, 311 CIDFONTTYPE0C: 4, 312 TRUETYPE: 5, 313 CIDFONTTYPE2: 6, 314 TYPE3: 7, 315 OPENTYPE: 8, 316 TYPE0: 9, 317 MMTYPE1: 10 318}; 319var VerbosityLevel = { 320 ERRORS: 0, 321 WARNINGS: 1, 322 INFOS: 5 323}; 324var CMapCompressionType = { 325 NONE: 0, 326 BINARY: 1, 327 STREAM: 2 328}; 329var OPS = { 330 dependency: 1, 331 setLineWidth: 2, 332 setLineCap: 3, 333 setLineJoin: 4, 334 setMiterLimit: 5, 335 setDash: 6, 336 setRenderingIntent: 7,
337 setFlatness: 8, 338 setGState: 9, 339 save: 10, 340 restore: 11, 341 transform: 12, 342 moveTo: 13, 343 lineTo: 14, 344 curveTo: 15, 345 curveTo2: 16, 346 curveTo3: 17, 347 closePath: 18, 348 rectangle: 19, 349 stroke: 20, 350 closeStroke: 21, 351 fill: 22, 352 eoFill: 23, 353 fillStroke: 24, 354 eoFillStroke: 25, 355 closeFillStroke: 26, 356 closeEOFillStroke: 27, 357 endPath: 28, 358 clip: 29, 359 eoClip: 30, 360 beginText: 31, 361 endText: 32, 362 setCharSpacing: 33, 363 setWordSpacing: 34, 364 setHScale: 35, 365 setLeading: 36, 366 setFont: 37, 367 setTextRenderingMode: 38, 368 setTextRise: 39, 369 moveText: 40, 370 setLeadingMoveText: 41, 371 setTextMatrix: 42, 372 nextLine: 43, 373 showText: 44, 374 showSpacedText: 45, 375 nextLineShowText: 46, 376 nextLineSetSpacingShowText: 47, 377 setCharWidth: 48, 378 setCharWidthAndBounds: 49, 379 setStrokeColorSpace: 50, 380 setFillColorSpace: 51, 381 setStrokeColor: 52, 382 setStrokeColorN: 53, 383 setFillColor: 54, 384 setFillColorN: 55, 385 setStrokeGray: 56, 386 setFillGray: 57, 387 setStrokeRGBColor: 58, 388 setFillRGBColor: 59, 389 setStrokeCMYKColor: 60, 390 setFillCMYKColor: 61, 391 shadingFill: 62, 392 beginInlineImage: 63, 393 beginImageData: 64, 394 endInlineImage: 65, 395 paintXObject: 66, 396 markPoint: 67, 397 markPointProps: 68, 398 beginMarkedContent: 69, 399 beginMarkedContentProps: 70, 400 endMarkedContent: 71, 401 beginCompat: 72, 402 endCompat: 73, 403 paintFormXObjectBegin: 74, 404 paintFormXObjectEnd: 75, 405 beginGroup: 76, 406 endGroup: 77, 407 beginAnnotations: 78, 408 endAnnotations: 79, 409 beginAnnotation: 80, 410 endAnnotation: 81, 411 paintJpegXObject: 82, 412 paintImageMaskXObject: 83, 413 paintImageMaskXObjectGroup: 84, 414 paintImageXObject: 85, 415 paintInlineImageXObject: 86, 416 paintInlineImageXObjectGroup: 87, 417 paintImageXObjectRepeat: 88, 418 paintImageMaskXObjectRepeat: 89, 419 paintSolidColorImageMask: 90, 420 constructPath: 91 421}; 422var UNSUPPORTED_FEATURES = { 423 unknown: 'unknown', 424 forms: 'forms', 425 javaScript: 'javaScript', 426 smask: 'smask', 427 shadingPattern: 'shadingPattern', 428 font: 'font' 429}; 430var PasswordResponses = { 431 NEED_PASSWORD: 1, 432 INCORRECT_PASSWORD: 2 433}; 434var verbosity = VerbosityLevel.WARNINGS; 435function setVerbosityLevel(level) { 436 if (Number.isInteger(level)) { 437 verbosity = level; 438 } 439} 440function getVerbosityLevel() { 441 return verbosity; 442} 443function info(msg) { 444 if (verbosity >= VerbosityLevel.INFOS) { 445 console.log('Info: ' + msg); 446 } 447} 448function warn(msg) { 449 if (verbosity >= VerbosityLevel.WARNINGS) { 450 console.log('Warning: ' + msg); 451 } 452} 453function deprecated(details) { 454 console.log('Deprecated API usage: ' + details); 455} 456function unreachable(msg) { 457 throw new Error(msg); 458} 459function assert(cond, msg) { 460 if (!cond) { 461 unreachable(msg); 462 } 463} 464function isSameOrigin(baseUrl, otherUrl) { 465 try { 466 var base = new _url_polyfill.URL(baseUrl); 467 if (!base.origin || base.origin === 'null') { 468 return false; 469 } 470 } catch (e) { 471 return false; 472 } 473 var other = new _url_polyfill.URL(otherUrl, base); 474 return base.origin === other.origin; 475} 476function _isValidProtocol(url) { 477 if (!url) { 478 return false; 479 } 480 switch (url.protocol) { 481 case 'http:': 482 case 'https:': 483 case 'ftp:': 484 case 'mailto:': 485 case 'tel:': 486 return true; 487 default: 488 return false; 489 } 490} 491function createValidAbsoluteUrl(url, baseUrl) { 492 if (!url) { 493 return null; 494 } 495 try { 496 var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); 497 if (_isValidProtocol(absoluteUrl)) { 498 return absoluteUrl; 499 } 500 } catch (ex) {} 501 return null; 502} 503function shadow(obj, prop, value) { 504 Object.defineProperty(obj, prop, { 505 value: value, 506 enumerable: true, 507 configurable: true, 508 writable: false 509 }); 510 return value; 511} 512function getLookupTableFactory(initializer) { 513 var lookup; 514 return function () { 515 if (initializer) { 516 lookup = Object.create(null); 517 initializer(lookup); 518 initializer = null; 519 } 520 return lookup; 521 }; 522} 523var PasswordException = function PasswordExceptionClosure() { 524 function PasswordException(msg, code) { 525 this.name = 'PasswordException'; 526 this.message = msg; 527 this.code = code; 528 } 529 PasswordException.prototype = new Error(); 530 PasswordException.constructor = PasswordException; 531 return PasswordException; 532}(); 533var UnknownErrorException = function UnknownErrorExceptionClosure() { 534 function UnknownErrorException(msg, details) { 535 this.name = 'UnknownErrorException'; 536 this.message = msg; 537 this.details = details; 538 } 539 UnknownErrorException.prototype = new Error(); 540 UnknownErrorException.constructor = UnknownErrorException; 541 return UnknownErrorException; 542}(); 543var InvalidPDFException = function InvalidPDFExceptionClosure() { 544 function InvalidPDFException(msg) { 545 this.name = 'InvalidPDFException'; 546 this.message = msg; 547 } 548 InvalidPDFException.prototype = new Error(); 549 InvalidPDFException.constructor = InvalidPDFException; 550 return InvalidPDFException; 551}(); 552var MissingPDFException = function MissingPDFExceptionClosure() { 553 function MissingPDFException(msg) { 554 this.name = 'MissingPDFException'; 555 this.message = msg; 556 } 557 MissingPDFException.prototype = new Error(); 558 MissingPDFException.constructor = MissingPDFException; 559 return MissingPDFException; 560}(); 561var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { 562 function UnexpectedResponseException(msg, status) { 563 this.name = 'UnexpectedResponseException'; 564 this.message = msg; 565 this.status = status; 566 } 567 UnexpectedResponseException.prototype = new Error(); 568 UnexpectedResponseException.constructor = UnexpectedResponseException; 569 return UnexpectedResponseException; 570}(); 571var MissingDataException = function MissingDataExceptionClosure() { 572 function MissingDataException(begin, end) { 573 this.begin = begin; 574 this.end = end; 575 this.message = 'Missing data [' + begin + ', ' + end + ')'; 576 } 577 MissingDataException.prototype = new Error(); 578 MissingDataException.prototype.name = 'MissingDataException'; 579 MissingDataException.constructor = MissingDataException; 580 return MissingDataException; 581}(); 582var XRefParseException = function XRefParseExceptionClosure() { 583 function XRefParseException(msg) { 584 this.message = msg; 585 } 586 XRefParseException.prototype = new Error(); 587 XRefParseException.prototype.name = 'XRefParseException'; 588 XRefParseException.constructor = XRefParseException; 589 return XRefParseException; 590}(); 591var FormatError = function FormatErrorClosure() { 592 function FormatError(msg) { 593 this.message = msg; 594 } 595 FormatError.prototype = new Error(); 596 FormatError.prototype.name = 'FormatError'; 597 FormatError.constructor = FormatError; 598 return FormatError; 599}(); 600var AbortException = function AbortExceptionClosure() { 601 function AbortException(msg) { 602 this.name = 'AbortException'; 603 this.message = msg; 604 } 605 AbortException.prototype = new Error(); 606 AbortException.constructor = AbortException; 607 return AbortException; 608}(); 609var NullCharactersRegExp = /\x00/g; 610function removeNullCharacters(str) { 611 if (typeof str !== 'string') { 612 warn('The argument for removeNullCharacters must be a string.'); 613 return str; 614 } 615 return str.replace(NullCharactersRegExp, ''); 616} 617function bytesToString(bytes) { 618 assert(bytes !== null && (typeof bytes === 'undefined' ? 'undefined' : _typeof(bytes)) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); 619 var length = bytes.length; 620 var MAX_ARGUMENT_COUNT = 8192; 621 if (length < MAX_ARGUMENT_COUNT) { 622 return String.fromCharCode.apply(null, bytes); 623 } 624 var strBuf = []; 625 for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { 626 var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); 627 var chunk = bytes.subarray(i, chunkEnd); 628 strBuf.push(String.fromCharCode.apply(null, chunk)); 629 } 630 return strBuf.join(''); 631} 632function stringToBytes(str) { 633 assert(typeof str === 'string', 'Invalid argument for stringToBytes'); 634 var length = str.length; 635 var bytes = new Uint8Array(length); 636 for (var i = 0; i < length; ++i) { 637 bytes[i] = str.charCodeAt(i) & 0xFF; 638 } 639 return bytes; 640} 641function arrayByteLength(arr) { 642 if (arr.length !== undefined) { 643 return arr.length; 644 } 645 assert(arr.byteLength !== undefined); 646 return arr.byteLength; 647} 648function arraysToBytes(arr) { 649 if (arr.length === 1 && arr[0] instanceof Uint8Array) { 650 return arr[0]; 651 } 652 var resultLength = 0; 653 var i, 654 ii = arr.length; 655 var item, itemLength; 656 for (i = 0; i < ii; i++) { 657 item = arr[i]; 658 itemLength = arrayByteLength(item); 659 resultLength += itemLength; 660 } 661 var pos = 0; 662 var data = new Uint8Array(resultLength); 663 for (i = 0; i < ii; i++) { 664 item = arr[i]; 665 if (!(item instanceof Uint8Array)) { 666 if (typeof item === 'string') { 667 item = stringToBytes(item); 668 } else { 669 item = new Uint8Array(item); 670 } 671 } 672 itemLength = item.byteLength; 673 data.set(item, pos); 674 pos += itemLength; 675 } 676 return data; 677} 678function string32(value) { 679 return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); 680} 681function log2(x) { 682 if (x <= 0) { 683 return 0; 684 } 685 return Math.ceil(Math.log2(x)); 686} 687function readInt8(data, start) { 688 return data[start] << 24 >> 24; 689} 690function readUint16(data, offset) { 691 return data[offset] << 8 | data[offset + 1]; 692} 693function readUint32(data, offset) { 694 return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; 695} 696function isLittleEndian() { 697 var buffer8 = new Uint8Array(4); 698 buffer8[0] = 1; 699 var view32 = new Uint32Array(buffer8.buffer, 0, 1); 700 return view32[0] === 1; 701} 702function isEvalSupported() { 703 try { 704 new Function(''); 705 return true; 706 } catch (e) { 707 return false;
vendor: 3,744 bytes, lines 708-805
708 } 709} 710function getInheritableProperty(_ref) { 711 var dict = _ref.dict, 712 key = _ref.key, 713 _ref$getArray = _ref.getArray, 714 getArray = _ref$getArray === undefined ? false : _ref$getArray, 715 _ref$stopWhenFound = _ref.stopWhenFound, 716 stopWhenFound = _ref$stopWhenFound === undefined ? true : _ref$stopWhenFound; 717 718 var LOOP_LIMIT = 100; 719 var loopCount = 0; 720 var values = void 0; 721 while (dict) { 722 var value = getArray ? dict.getArray(key) : dict.get(key); 723 if (value !== undefined) { 724 if (stopWhenFound) { 725 return value; 726 } 727 if (!values) { 728 values = []; 729 } 730 values.push(value); 731 } 732 if (++loopCount > LOOP_LIMIT) { 733 warn('getInheritableProperty: maximum loop count exceeded for "' + key + '"'); 734 break; 735 } 736 dict = dict.get('Parent'); 737 } 738 return values; 739} 740var Util = function UtilClosure() { 741 function Util() {} 742 var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; 743 Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { 744 rgbBuf[1] = r; 745 rgbBuf[3] = g; 746 rgbBuf[5] = b; 747 return rgbBuf.join(''); 748 }; 749 Util.transform = function Util_transform(m1, m2) { 750 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]]; 751 }; 752 Util.applyTransform = function Util_applyTransform(p, m) { 753 var xt = p[0] * m[0] + p[1] * m[2] + m[4]; 754 var yt = p[0] * m[1] + p[1] * m[3] + m[5]; 755 return [xt, yt]; 756 }; 757 Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { 758 var d = m[0] * m[3] - m[1] * m[2]; 759 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; 760 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; 761 return [xt, yt]; 762 }; 763 Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { 764 var p1 = Util.applyTransform(r, m); 765 var p2 = Util.applyTransform(r.slice(2, 4), m); 766 var p3 = Util.applyTransform([r[0], r[3]], m); 767 var p4 = Util.applyTransform([r[2], r[1]], m); 768 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])]; 769 }; 770 Util.inverseTransform = function Util_inverseTransform(m) { 771 var d = m[0] * m[3] - m[1] * m[2]; 772 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]; 773 }; 774 Util.apply3dTransform = function Util_apply3dTransform(m, v) { 775 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]]; 776 }; 777 Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { 778 var transpose = [m[0], m[2], m[1], m[3]]; 779 var a = m[0] * transpose[0] + m[1] * transpose[2]; 780 var b = m[0] * transpose[1] + m[1] * transpose[3]; 781 var c = m[2] * transpose[0] + m[3] * transpose[2]; 782 var d = m[2] * transpose[1] + m[3] * transpose[3]; 783 var first = (a + d) / 2; 784 var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; 785 var sx = first + second || 1; 786 var sy = first - second || 1; 787 return [Math.sqrt(sx), Math.sqrt(sy)]; 788 }; 789 Util.normalizeRect = function Util_normalizeRect(rect) { 790 var r = rect.slice(0); 791 if (rect[0] > rect[2]) { 792 r[0] = rect[2]; 793 r[2] = rect[0]; 794 } 795 if (rect[1] > rect[3]) { 796 r[1] = rect[3]; 797 r[3] = rect[1]; 798 } 799 return r; 800 }; 801 Util.intersect = function Util_intersect(rect1, rect2) { 802 function compare(a, b) { 803 return a - b; 804 } 805 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
806 orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), 807 result = []; 808 rect1 = Util.normalizeRect(rect1); 809 rect2 = Util.normalizeRect(rect2); 810 if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { 811 result[0] = orderedX[1]; 812 result[2] = orderedX[2]; 813 } else { 814 return false; 815 } 816 if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { 817 result[1] = orderedY[1]; 818 result[3] = orderedY[2]; 819 } else { 820 return false; 821 } 822 return result; 823 }; 824 return Util; 825}(); 826var 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']; 827function toRomanNumerals(number) { 828 var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 829 830 assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.'); 831 var pos = void 0, 832 romanBuf = []; 833 while (number >= 1000) { 834 number -= 1000; 835 romanBuf.push('M'); 836 } 837 pos = number / 100 | 0; 838 number %= 100; 839 romanBuf.push(ROMAN_NUMBER_MAP[pos]); 840 pos = number / 10 | 0; 841 number %= 10; 842 romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]); 843 romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); 844 var romanStr = romanBuf.join(''); 845 return lowerCase ? romanStr.toLowerCase() : romanStr; 846} 847var 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]; 848function stringToPDFString(str) { 849 var i, 850 n = str.length, 851 strBuf = []; 852 if (str[0] === '\xFE' && str[1] === '\xFF') { 853 for (i = 2; i < n; i += 2) { 854 strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); 855 } 856 } else { 857 for (i = 0; i < n; ++i) { 858 var code = PDFStringTranslateTable[str.charCodeAt(i)]; 859 strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); 860 } 861 } 862 return strBuf.join(''); 863} 864function stringToUTF8String(str) { 865 return decodeURIComponent(escape(str)); 866} 867function utf8StringToString(str) { 868 return unescape(encodeURIComponent(str)); 869} 870function isEmptyObj(obj) { 871 for (var key in obj) { 872 return false; 873 } 874 return true; 875} 876function isBool(v) { 877 return typeof v === 'boolean'; 878} 879function isNum(v) { 880 return typeof v === 'number'; 881} 882function isString(v) { 883 return typeof v === 'string'; 884} 885function isArrayBuffer(v) { 886 return (typeof v === 'undefined' ? 'undefined' : _typeof(v)) === 'object' && v !== null && v.byteLength !== undefined; 887} 888function isSpace(ch) { 889 return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; 890} 891function createPromiseCapability() { 892 var capability = {}; 893 capability.promise = new Promise(function (resolve, reject) { 894 capability.resolve = resolve; 895 capability.reject = reject; 896 }); 897 return capability; 898} 899var createObjectURL = function createObjectURLClosure() { 900 var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; 901 return function createObjectURL(data, contentType) { 902 var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 903 904 if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { 905 var blob = new Blob([data], { type: contentType }); 906 return _url_polyfill.URL.createObjectURL(blob); 907 } 908 var buffer = 'data:' + contentType + ';base64,'; 909 for (var i = 0, ii = data.length; i < ii; i += 3) { 910 var b1 = data[i] & 0xFF; 911 var b2 = data[i + 1] & 0xFF; 912 var b3 = data[i + 2] & 0xFF; 913 var d1 = b1 >> 2,
914 d2 = (b1 & 3) << 4 | b2 >> 4; 915 var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; 916 var d4 = i + 2 < ii ? b3 & 0x3F : 64; 917 buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; 918 } 919 return buffer; 920 }; 921}(); 922exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; 923exports.IDENTITY_MATRIX = IDENTITY_MATRIX; 924exports.OPS = OPS; 925exports.VerbosityLevel = VerbosityLevel; 926exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; 927exports.AnnotationBorderStyleType = AnnotationBorderStyleType; 928exports.AnnotationFieldFlag = AnnotationFieldFlag; 929exports.AnnotationFlag = AnnotationFlag; 930exports.AnnotationType = AnnotationType; 931exports.FontType = FontType; 932exports.ImageKind = ImageKind; 933exports.CMapCompressionType = CMapCompressionType; 934exports.AbortException = AbortException; 935exports.InvalidPDFException = InvalidPDFException; 936exports.MissingDataException = MissingDataException; 937exports.MissingPDFException = MissingPDFException; 938exports.NativeImageDecoding = NativeImageDecoding; 939exports.PasswordException = PasswordException; 940exports.PasswordResponses = PasswordResponses; 941exports.PermissionFlag = PermissionFlag; 942exports.StreamType = StreamType; 943exports.TextRenderingMode = TextRenderingMode; 944exports.UnexpectedResponseException = UnexpectedResponseException; 945exports.UnknownErrorException = UnknownErrorException; 946exports.Util = Util; 947exports.toRomanNumerals = toRomanNumerals; 948exports.XRefParseException = XRefParseException; 949exports.FormatError = FormatError; 950exports.arrayByteLength = arrayByteLength; 951exports.arraysToBytes = arraysToBytes; 952exports.assert = assert; 953exports.bytesToString = bytesToString; 954exports.createPromiseCapability = createPromiseCapability; 955exports.createObjectURL = createObjectURL; 956exports.deprecated = deprecated; 957exports.getInheritableProperty = getInheritableProperty; 958exports.getLookupTableFactory = getLookupTableFactory; 959exports.getVerbosityLevel = getVerbosityLevel; 960exports.info = info; 961exports.isArrayBuffer = isArrayBuffer; 962exports.isBool = isBool; 963exports.isEmptyObj = isEmptyObj; 964exports.isNum = isNum; 965exports.isString = isString; 966exports.isSpace = isSpace; 967exports.isSameOrigin = isSameOrigin; 968exports.createValidAbsoluteUrl = createValidAbsoluteUrl; 969exports.isLittleEndian = isLittleEndian; 970exports.isEvalSupported = isEvalSupported; 971exports.log2 = log2; 972exports.readInt8 = readInt8; 973exports.readUint16 = readUint16; 974exports.readUint32 = readUint32; 975exports.removeNullCharacters = removeNullCharacters; 976exports.ReadableStream = _streams_polyfill.ReadableStream; 977exports.URL = _url_polyfill.URL; 978exports.setVerbosityLevel = setVerbosityLevel; 979exports.shadow = shadow; 980exports.string32 = string32; 981exports.stringToBytes = stringToBytes; 982exports.stringToPDFString = stringToPDFString; 983exports.stringToUTF8String = stringToUTF8String; 984exports.utf8StringToString = utf8StringToString; 985exports.warn = warn; 986exports.unreachable = unreachable; 987 988/***/ }), 989/* 2 */ 990/***/ (function(module, exports, __w_pdfjs_require__) { 991 992"use strict"; 993 994 995var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 996 997var globalScope = __w_pdfjs_require__(3); 998if (!globalScope._pdfjsCompatibilityChecked) { 999 globalScope._pdfjsCompatibilityChecked = true; 1000 var isNodeJS = __w_pdfjs_require__(4); 1001 var hasDOM = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && (typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object'; 1002 (function checkNodeBtoa() { 1003 if (globalScope.btoa || !isNodeJS()) { 1004 return; 1005 } 1006 globalScope.btoa = function (chars) { 1007 return Buffer.from(chars, 'binary').toString('base64'); 1008 }; 1009 })(); 1010 (function checkNodeAtob() { 1011 if (globalScope.atob || !isNodeJS()) { 1012 return; 1013 } 1014 globalScope.atob = function (input) { 1015 return Buffer.from(input, 'base64').toString('binary'); 1016 }; 1017 })(); 1018 (function checkCurrentScript() { 1019 if (!hasDOM) { 1020 return; 1021 }
1022 if ('currentScript' in document) { 1023 return; 1024 } 1025 Object.defineProperty(document, 'currentScript', { 1026 get: function get() { 1027 var scripts = document.getElementsByTagName('script'); 1028 return scripts[scripts.length - 1]; 1029 }, 1030 1031 enumerable: true, 1032 configurable: true 1033 }); 1034 })(); 1035 (function checkChildNodeRemove() { 1036 if (!hasDOM) { 1037 return; 1038 } 1039 if (typeof Element.prototype.remove !== 'undefined') { 1040 return; 1041 } 1042 Element.prototype.remove = function () { 1043 if (this.parentNode) { 1044 this.parentNode.removeChild(this); 1045 } 1046 }; 1047 })(); 1048 (function checkDOMTokenListToggle() { 1049 if (!hasDOM || isNodeJS()) { 1050 return; 1051 } 1052 var div = document.createElement('div'); 1053 if (div.classList.toggle('test', 0) === false) { 1054 return; 1055 } 1056 var originalDOMTokenListToggle = DOMTokenList.prototype.toggle; 1057 DOMTokenList.prototype.toggle = function (token) { 1058 if (arguments.length > 1) { 1059 var force = !!arguments[1]; 1060 return this[force ? 'add' : 'remove'](token), force; 1061 } 1062 return originalDOMTokenListToggle(token); 1063 }; 1064 })(); 1065 (function checkStringIncludes() { 1066 if (String.prototype.includes) { 1067 return; 1068 } 1069 __w_pdfjs_require__(5); 1070 })(); 1071 (function checkArrayIncludes() { 1072 if (Array.prototype.includes) { 1073 return; 1074 } 1075 __w_pdfjs_require__(33); 1076 })(); 1077 (function checkObjectAssign() { 1078 if (Object.assign) { 1079 return; 1080 } 1081 __w_pdfjs_require__(42); 1082 })(); 1083 (function checkMathLog2() { 1084 if (Math.log2) { 1085 return; 1086 } 1087 Math.log2 = __w_pdfjs_require__(52); 1088 })(); 1089 (function checkNumberIsNaN() { 1090 if (Number.isNaN) { 1091 return; 1092 } 1093 Number.isNaN = __w_pdfjs_require__(54); 1094 })(); 1095 (function checkNumberIsInteger() { 1096 if (Number.isInteger) { 1097 return; 1098 } 1099 Number.isInteger = __w_pdfjs_require__(56); 1100 })(); 1101 (function checkPromise() { 1102 if (globalScope.Promise) { 1103 return; 1104 } 1105 globalScope.Promise = __w_pdfjs_require__(59); 1106 })(); 1107 (function checkWeakMap() { 1108 if (globalScope.WeakMap) { 1109 return; 1110 } 1111 globalScope.WeakMap = __w_pdfjs_require__(94); 1112 })(); 1113 (function checkStringCodePointAt() { 1114 if (String.codePointAt) { 1115 return; 1116 } 1117 String.codePointAt = __w_pdfjs_require__(111); 1118 })(); 1119 (function checkStringFromCodePoint() { 1120 if (String.fromCodePoint) { 1121 return; 1122 } 1123 String.fromCodePoint = __w_pdfjs_require__(113); 1124 })(); 1125 (function checkSymbol() { 1126 if (globalScope.Symbol) { 1127 return; 1128 } 1129 __w_pdfjs_require__(115); 1130 })(); 1131 (function checkObjectValues() { 1132 if (Object.values) { 1133 return; 1134 } 1135 Object.values = __w_pdfjs_require__(122); 1136 })(); 1137} 1138 1139/***/ }), 1140/* 3 */ 1141/***/ (function(module, exports, __w_pdfjs_require__) { 1142 1143"use strict"; 1144 1145 1146module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; 1147 1148/***/ }), 1149/* 4 */ 1150/***/ (function(module, exports, __w_pdfjs_require__) { 1151 1152"use strict"; 1153 1154 1155var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 1156 1157module.exports = function isNodeJS() { 1158 return (typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process + '' === '[object process]'; 1159}; 1160 1161/***/ }), 1162/* 5 */ 1163/***/ (function(module, exports, __w_pdfjs_require__) { 1164 1165"use strict"; 1166 1167 1168__w_pdfjs_require__(6); 1169module.exports = __w_pdfjs_require__(9).String.includes; 1170 1171/***/ }), 1172/* 6 */ 1173/***/ (function(module, exports, __w_pdfjs_require__) { 1174 1175"use strict"; 1176 1177 1178var $export = __w_pdfjs_require__(7); 1179var context = __w_pdfjs_require__(25); 1180var INCLUDES = 'includes'; 1181$export($export.P + $export.F * __w_pdfjs_require__(32)(INCLUDES), 'String', { 1182 includes: function includes(searchString) { 1183 return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); 1184 } 1185}); 1186 1187/***/ }), 1188/* 7 */ 1189/***/ (function(module, exports, __w_pdfjs_require__) { 1190 1191"use strict"; 1192 1193 1194var global = __w_pdfjs_require__(8); 1195var core = __w_pdfjs_require__(9); 1196var hide = __w_pdfjs_require__(10); 1197var redefine = __w_pdfjs_require__(20); 1198var ctx = __w_pdfjs_require__(23); 1199var PROTOTYPE = 'prototype';
1200var $export = function $export(type, name, source) { 1201 var IS_FORCED = type & $export.F; 1202 var IS_GLOBAL = type & $export.G; 1203 var IS_STATIC = type & $export.S; 1204 var IS_PROTO = type & $export.P; 1205 var IS_BIND = type & $export.B; 1206 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; 1207 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 1208 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); 1209 var key, own, out, exp; 1210 if (IS_GLOBAL) source = name; 1211 for (key in source) { 1212 own = !IS_FORCED && target && target[key] !== undefined; 1213 out = (own ? target : source)[key]; 1214 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 1215 if (target) redefine(target, key, out, type & $export.U); 1216 if (exports[key] != out) hide(exports, key, exp); 1217 if (IS_PROTO && expProto[key] != out) expProto[key] = out; 1218 } 1219}; 1220global.core = core; 1221$export.F = 1; 1222$export.G = 2; 1223$export.S = 4; 1224$export.P = 8; 1225$export.B = 16; 1226$export.W = 32; 1227$export.U = 64; 1228$export.R = 128; 1229module.exports = $export; 1230 1231/***/ }), 1232/* 8 */ 1233/***/ (function(module, exports, __w_pdfjs_require__) { 1234 1235"use strict"; 1236 1237 1238var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); 1239if (typeof __g == 'number') __g = global; 1240 1241/***/ }), 1242/* 9 */ 1243/***/ (function(module, exports, __w_pdfjs_require__) { 1244 1245"use strict"; 1246 1247 1248var core = module.exports = { version: '2.5.7' }; 1249if (typeof __e == 'number') __e = core; 1250 1251/***/ }), 1252/* 10 */ 1253/***/ (function(module, exports, __w_pdfjs_require__) { 1254 1255"use strict"; 1256 1257 1258var dP = __w_pdfjs_require__(11); 1259var createDesc = __w_pdfjs_require__(19); 1260module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { 1261 return dP.f(object, key, createDesc(1, value)); 1262} : function (object, key, value) { 1263 object[key] = value; 1264 return object; 1265}; 1266 1267/***/ }), 1268/* 11 */ 1269/***/ (function(module, exports, __w_pdfjs_require__) { 1270 1271"use strict"; 1272 1273 1274var anObject = __w_pdfjs_require__(12); 1275var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 1276var toPrimitive = __w_pdfjs_require__(18); 1277var dP = Object.defineProperty; 1278exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { 1279 anObject(O); 1280 P = toPrimitive(P, true); 1281 anObject(Attributes); 1282 if (IE8_DOM_DEFINE) try { 1283 return dP(O, P, Attributes); 1284 } catch (e) {} 1285 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 1286 if ('value' in Attributes) O[P] = Attributes.value; 1287 return O; 1288}; 1289 1290/***/ }), 1291/* 12 */ 1292/***/ (function(module, exports, __w_pdfjs_require__) { 1293 1294"use strict"; 1295 1296 1297var isObject = __w_pdfjs_require__(13); 1298module.exports = function (it) { 1299 if (!isObject(it)) throw TypeError(it + ' is not an object!'); 1300 return it; 1301}; 1302 1303/***/ }), 1304/* 13 */ 1305/***/ (function(module, exports, __w_pdfjs_require__) { 1306 1307"use strict"; 1308 1309 1310var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 1311 1312module.exports = function (it) { 1313 return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function'; 1314}; 1315 1316/***/ }), 1317/* 14 */ 1318/***/ (function(module, exports, __w_pdfjs_require__) { 1319 1320"use strict"; 1321 1322 1323module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { 1324 return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { 1325 get: function get() { 1326 return 7; 1327 } 1328 }).a != 7; 1329}); 1330 1331/***/ }), 1332/* 15 */ 1333/***/ (function(module, exports, __w_pdfjs_require__) { 1334 1335"use strict"; 1336 1337 1338module.exports = !__w_pdfjs_require__(16)(function () { 1339 return Object.defineProperty({}, 'a', { 1340 get: function get() { 1341 return 7; 1342 } 1343 }).a != 7; 1344}); 1345 1346/***/ }), 1347/* 16 */ 1348/***/ (function(module, exports, __w_pdfjs_require__) { 1349 1350"use strict"; 1351 1352 1353module.exports = function (exec) { 1354 try { 1355 return !!exec(); 1356 } catch (e) { 1357 return true; 1358 } 1359}; 1360 1361/***/ }), 1362/* 17 */ 1363/***/ (function(module, exports, __w_pdfjs_require__) { 1364 1365"use strict"; 1366 1367 1368var isObject = __w_pdfjs_require__(13); 1369var document = __w_pdfjs_require__(8).document; 1370var is = isObject(document) && isObject(document.createElement); 1371module.exports = function (it) { 1372 return is ? document.createElement(it) : {}; 1373}; 1374 1375/***/ }), 1376/* 18 */ 1377/***/ (function(module, exports, __w_pdfjs_require__) { 1378 1379"use strict"; 1380 1381 1382var isObject = __w_pdfjs_require__(13); 1383module.exports = function (it, S) { 1384 if (!isObject(it)) return it; 1385 var fn, val; 1386 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1387 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 1388 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 1389 throw TypeError("Can't convert object to primitive value"); 1390}; 1391 1392/***/ }), 1393/* 19 */ 1394/***/ (function(module, exports, __w_pdfjs_require__) { 1395 1396"use strict"; 1397 1398 1399module.exports = function (bitmap, value) { 1400 return { 1401 enumerable: !(bitmap & 1), 1402 configurable: !(bitmap & 2), 1403 writable: !(bitmap & 4), 1404 value: value 1405 }; 1406}; 1407 1408/***/ }), 1409/* 20 */ 1410/***/ (function(module, exports, __w_pdfjs_require__) { 1411 1412"use strict"; 1413 1414 1415var global = __w_pdfjs_require__(8); 1416var hide = __w_pdfjs_require__(10); 1417var has = __w_pdfjs_require__(21); 1418var SRC = __w_pdfjs_require__(22)('src'); 1419var TO_STRING = 'toString'; 1420var $toString = Function[TO_STRING]; 1421var TPL = ('' + $toString).split(TO_STRING); 1422__w_pdfjs_require__(9).inspectSource = function (it) { 1423 return $toString.call(it); 1424}; 1425(module.exports = function (O, key, val, safe) { 1426 var isFunction = typeof val == 'function'; 1427 if (isFunction) has(val, 'name') || hide(val, 'name', key); 1428 if (O[key] === val) return; 1429 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); 1430 if (O === global) { 1431 O[key] = val; 1432 } else if (!safe) { 1433 delete O[key]; 1434 hide(O, key, val); 1435 } else if (O[key]) { 1436 O[key] = val; 1437 } else { 1438 hide(O, key, val); 1439 } 1440})(Function.prototype, TO_STRING, function toString() { 1441 return typeof this == 'function' && this[SRC] || $toString.call(this); 1442}); 1443 1444/***/ }), 1445/* 21 */ 1446/***/ (function(module, exports, __w_pdfjs_require__) { 1447 1448"use strict"; 1449 1450 1451var hasOwnProperty = {}.hasOwnProperty; 1452module.exports = function (it, key) { 1453 return hasOwnProperty.call(it, key); 1454}; 1455 1456/***/ }), 1457/* 22 */ 1458/***/ (function(module, exports, __w_pdfjs_require__) { 1459 1460"use strict"; 1461 1462 1463var id = 0; 1464var px = Math.random(); 1465module.exports = function (key) { 1466 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 1467}; 1468 1469/***/ }), 1470/* 23 */ 1471/***/ (function(module, exports, __w_pdfjs_require__) { 1472 1473"use strict"; 1474 1475 1476var aFunction = __w_pdfjs_require__(24); 1477module.exports = function (fn, that, length) { 1478 aFunction(fn); 1479 if (that === undefined) return fn; 1480 switch (length) { 1481 case 1: 1482 return function (a) {
1483 return fn.call(that, a); 1484 }; 1485 case 2: 1486 return function (a, b) { 1487 return fn.call(that, a, b); 1488 }; 1489 case 3: 1490 return function (a, b, c) { 1491 return fn.call(that, a, b, c); 1492 }; 1493 } 1494 return function () { 1495 return fn.apply(that, arguments); 1496 }; 1497}; 1498 1499/***/ }), 1500/* 24 */ 1501/***/ (function(module, exports, __w_pdfjs_require__) { 1502 1503"use strict"; 1504 1505 1506module.exports = function (it) { 1507 if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 1508 return it; 1509}; 1510 1511/***/ }), 1512/* 25 */ 1513/***/ (function(module, exports, __w_pdfjs_require__) { 1514 1515"use strict"; 1516 1517 1518var isRegExp = __w_pdfjs_require__(26); 1519var defined = __w_pdfjs_require__(31); 1520module.exports = function (that, searchString, NAME) { 1521 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); 1522 return String(defined(that)); 1523}; 1524 1525/***/ }), 1526/* 26 */ 1527/***/ (function(module, exports, __w_pdfjs_require__) { 1528 1529"use strict"; 1530 1531 1532var isObject = __w_pdfjs_require__(13); 1533var cof = __w_pdfjs_require__(27); 1534var MATCH = __w_pdfjs_require__(28)('match'); 1535module.exports = function (it) { 1536 var isRegExp; 1537 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); 1538}; 1539 1540/***/ }), 1541/* 27 */ 1542/***/ (function(module, exports, __w_pdfjs_require__) { 1543 1544"use strict"; 1545 1546 1547var toString = {}.toString; 1548module.exports = function (it) { 1549 return toString.call(it).slice(8, -1); 1550}; 1551 1552/***/ }), 1553/* 28 */ 1554/***/ (function(module, exports, __w_pdfjs_require__) { 1555 1556"use strict"; 1557 1558 1559var store = __w_pdfjs_require__(29)('wks'); 1560var uid = __w_pdfjs_require__(22); 1561var _Symbol = __w_pdfjs_require__(8).Symbol; 1562var USE_SYMBOL = typeof _Symbol == 'function'; 1563var $exports = module.exports = function (name) { 1564 return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); 1565}; 1566$exports.store = store; 1567 1568/***/ }), 1569/* 29 */ 1570/***/ (function(module, exports, __w_pdfjs_require__) { 1571 1572"use strict"; 1573 1574 1575var core = __w_pdfjs_require__(9); 1576var global = __w_pdfjs_require__(8); 1577var SHARED = '__core-js_shared__'; 1578var store = global[SHARED] || (global[SHARED] = {}); 1579(module.exports = function (key, value) { 1580 return store[key] || (store[key] = value !== undefined ? value : {}); 1581})('versions', []).push({ 1582 version: core.version, 1583 mode: __w_pdfjs_require__(30) ? 'pure' : 'global', 1584 copyright: '2018 Denis Pushkarev (zloirock.ru)' 1585}); 1586 1587/***/ }), 1588/* 30 */ 1589/***/ (function(module, exports, __w_pdfjs_require__) { 1590 1591"use strict"; 1592 1593 1594module.exports = false; 1595 1596/***/ }), 1597/* 31 */ 1598/***/ (function(module, exports, __w_pdfjs_require__) { 1599 1600"use strict"; 1601 1602 1603module.exports = function (it) { 1604 if (it == undefined) throw TypeError("Can't call method on " + it); 1605 return it; 1606}; 1607 1608/***/ }), 1609/* 32 */ 1610/***/ (function(module, exports, __w_pdfjs_require__) { 1611 1612"use strict"; 1613 1614 1615var MATCH = __w_pdfjs_require__(28)('match'); 1616module.exports = function (KEY) { 1617 var re = /./; 1618 try { 1619 '/./'[KEY](re); 1620 } catch (e) { 1621 try { 1622 re[MATCH] = false; 1623 return !'/./'[KEY](re); 1624 } catch (f) {} 1625 } 1626 return true; 1627}; 1628 1629/***/ }), 1630/* 33 */ 1631/***/ (function(module, exports, __w_pdfjs_require__) { 1632 1633"use strict"; 1634 1635 1636__w_pdfjs_require__(34); 1637module.exports = __w_pdfjs_require__(9).Array.includes; 1638 1639/***/ }), 1640/* 34 */ 1641/***/ (function(module, exports, __w_pdfjs_require__) { 1642 1643"use strict"; 1644 1645 1646var $export = __w_pdfjs_require__(7); 1647var $includes = __w_pdfjs_require__(35)(true); 1648$export($export.P, 'Array', { 1649 includes: function includes(el) { 1650 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 1651 } 1652}); 1653__w_pdfjs_require__(41)('includes'); 1654 1655/***/ }), 1656/* 35 */ 1657/***/ (function(module, exports, __w_pdfjs_require__) { 1658 1659"use strict"; 1660 1661 1662var toIObject = __w_pdfjs_require__(36); 1663var toLength = __w_pdfjs_require__(38); 1664var toAbsoluteIndex = __w_pdfjs_require__(40); 1665module.exports = function (IS_INCLUDES) { 1666 return function ($this, el, fromIndex) { 1667 var O = toIObject($this); 1668 var length = toLength(O.length); 1669 var index = toAbsoluteIndex(fromIndex, length); 1670 var value;
vendor: 4,534 bytes, lines 1671-1871
1671 if (IS_INCLUDES && el != el) while (length > index) { 1672 value = O[index++]; 1673 if (value != value) return true; 1674 } else for (; length > index; index++) { 1675 if (IS_INCLUDES || index in O) { 1676 if (O[index] === el) return IS_INCLUDES || index || 0; 1677 } 1678 }return !IS_INCLUDES && -1; 1679 }; 1680}; 1681 1682/***/ }), 1683/* 36 */ 1684/***/ (function(module, exports, __w_pdfjs_require__) { 1685 1686"use strict"; 1687 1688 1689var IObject = __w_pdfjs_require__(37); 1690var defined = __w_pdfjs_require__(31); 1691module.exports = function (it) { 1692 return IObject(defined(it)); 1693}; 1694 1695/***/ }), 1696/* 37 */ 1697/***/ (function(module, exports, __w_pdfjs_require__) { 1698 1699"use strict"; 1700 1701 1702var cof = __w_pdfjs_require__(27); 1703module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 1704 return cof(it) == 'String' ? it.split('') : Object(it); 1705}; 1706 1707/***/ }), 1708/* 38 */ 1709/***/ (function(module, exports, __w_pdfjs_require__) { 1710 1711"use strict"; 1712 1713 1714var toInteger = __w_pdfjs_require__(39); 1715var min = Math.min; 1716module.exports = function (it) { 1717 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; 1718}; 1719 1720/***/ }), 1721/* 39 */ 1722/***/ (function(module, exports, __w_pdfjs_require__) { 1723 1724"use strict"; 1725 1726 1727var ceil = Math.ceil; 1728var floor = Math.floor; 1729module.exports = function (it) { 1730 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 1731}; 1732 1733/***/ }), 1734/* 40 */ 1735/***/ (function(module, exports, __w_pdfjs_require__) { 1736 1737"use strict"; 1738 1739 1740var toInteger = __w_pdfjs_require__(39); 1741var max = Math.max; 1742var min = Math.min; 1743module.exports = function (index, length) { 1744 index = toInteger(index); 1745 return index < 0 ? max(index + length, 0) : min(index, length); 1746}; 1747 1748/***/ }), 1749/* 41 */ 1750/***/ (function(module, exports, __w_pdfjs_require__) { 1751 1752"use strict"; 1753 1754 1755var UNSCOPABLES = __w_pdfjs_require__(28)('unscopables'); 1756var ArrayProto = Array.prototype; 1757if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); 1758module.exports = function (key) { 1759 ArrayProto[UNSCOPABLES][key] = true; 1760}; 1761 1762/***/ }), 1763/* 42 */ 1764/***/ (function(module, exports, __w_pdfjs_require__) { 1765 1766"use strict"; 1767 1768 1769__w_pdfjs_require__(43); 1770module.exports = __w_pdfjs_require__(9).Object.assign; 1771 1772/***/ }), 1773/* 43 */ 1774/***/ (function(module, exports, __w_pdfjs_require__) { 1775 1776"use strict"; 1777 1778 1779var $export = __w_pdfjs_require__(7); 1780$export($export.S + $export.F, 'Object', { assign: __w_pdfjs_require__(44) }); 1781 1782/***/ }), 1783/* 44 */ 1784/***/ (function(module, exports, __w_pdfjs_require__) { 1785 1786"use strict"; 1787 1788 1789var getKeys = __w_pdfjs_require__(45); 1790var gOPS = __w_pdfjs_require__(49); 1791var pIE = __w_pdfjs_require__(50); 1792var toObject = __w_pdfjs_require__(51); 1793var IObject = __w_pdfjs_require__(37); 1794var $assign = Object.assign; 1795module.exports = !$assign || __w_pdfjs_require__(16)(function () { 1796 var A = {}; 1797 var B = {}; 1798 var S = Symbol(); 1799 var K = 'abcdefghijklmnopqrst'; 1800 A[S] = 7; 1801 K.split('').forEach(function (k) { 1802 B[k] = k; 1803 }); 1804 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 1805}) ? function assign(target, source) { 1806 var T = toObject(target); 1807 var aLen = arguments.length; 1808 var index = 1; 1809 var getSymbols = gOPS.f; 1810 var isEnum = pIE.f; 1811 while (aLen > index) { 1812 var S = IObject(arguments[index++]); 1813 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); 1814 var length = keys.length; 1815 var j = 0; 1816 var key; 1817 while (length > j) { 1818 if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; 1819 } 1820 } 1821 return T; 1822} : $assign; 1823 1824/***/ }), 1825/* 45 */ 1826/***/ (function(module, exports, __w_pdfjs_require__) { 1827 1828"use strict"; 1829 1830 1831var $keys = __w_pdfjs_require__(46); 1832var enumBugKeys = __w_pdfjs_require__(48); 1833module.exports = Object.keys || function keys(O) { 1834 return $keys(O, enumBugKeys); 1835}; 1836 1837/***/ }), 1838/* 46 */ 1839/***/ (function(module, exports, __w_pdfjs_require__) { 1840 1841"use strict"; 1842 1843 1844var has = __w_pdfjs_require__(21); 1845var toIObject = __w_pdfjs_require__(36); 1846var arrayIndexOf = __w_pdfjs_require__(35)(false); 1847var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO'); 1848module.exports = function (object, names) { 1849 var O = toIObject(object); 1850 var i = 0; 1851 var result = []; 1852 var key; 1853 for (key in O) { 1854 if (key != IE_PROTO) has(O, key) && result.push(key); 1855 }while (names.length > i) { 1856 if (has(O, key = names[i++])) { 1857 ~arrayIndexOf(result, key) || result.push(key); 1858 } 1859 }return result; 1860}; 1861 1862/***/ }), 1863/* 47 */ 1864/***/ (function(module, exports, __w_pdfjs_require__) { 1865 1866"use strict"; 1867 1868 1869var shared = __w_pdfjs_require__(29)('keys'); 1870var uid = __w_pdfjs_require__(22); 1871module.exports = function (key) {
1872 return shared[key] || (shared[key] = uid(key)); 1873}; 1874 1875/***/ }), 1876/* 48 */ 1877/***/ (function(module, exports, __w_pdfjs_require__) { 1878 1879"use strict"; 1880 1881 1882module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); 1883 1884/***/ }), 1885/* 49 */ 1886/***/ (function(module, exports, __w_pdfjs_require__) { 1887 1888"use strict"; 1889 1890 1891exports.f = Object.getOwnPropertySymbols; 1892 1893/***/ }), 1894/* 50 */ 1895/***/ (function(module, exports, __w_pdfjs_require__) { 1896 1897"use strict"; 1898 1899 1900exports.f = {}.propertyIsEnumerable; 1901 1902/***/ }), 1903/* 51 */ 1904/***/ (function(module, exports, __w_pdfjs_require__) { 1905 1906"use strict"; 1907 1908 1909var defined = __w_pdfjs_require__(31); 1910module.exports = function (it) { 1911 return Object(defined(it)); 1912}; 1913 1914/***/ }), 1915/* 52 */ 1916/***/ (function(module, exports, __w_pdfjs_require__) { 1917 1918"use strict"; 1919 1920 1921__w_pdfjs_require__(53); 1922module.exports = __w_pdfjs_require__(9).Math.log2; 1923 1924/***/ }), 1925/* 53 */ 1926/***/ (function(module, exports, __w_pdfjs_require__) { 1927 1928"use strict"; 1929 1930 1931var $export = __w_pdfjs_require__(7); 1932$export($export.S, 'Math', { 1933 log2: function log2(x) { 1934 return Math.log(x) / Math.LN2; 1935 } 1936}); 1937 1938/***/ }), 1939/* 54 */ 1940/***/ (function(module, exports, __w_pdfjs_require__) { 1941 1942"use strict"; 1943 1944 1945__w_pdfjs_require__(55); 1946module.exports = __w_pdfjs_require__(9).Number.isNaN; 1947 1948/***/ }), 1949/* 55 */ 1950/***/ (function(module, exports, __w_pdfjs_require__) { 1951 1952"use strict"; 1953 1954 1955var $export = __w_pdfjs_require__(7); 1956$export($export.S, 'Number', { 1957 isNaN: function isNaN(number) { 1958 return number != number; 1959 } 1960}); 1961 1962/***/ }), 1963/* 56 */ 1964/***/ (function(module, exports, __w_pdfjs_require__) { 1965 1966"use strict"; 1967 1968 1969__w_pdfjs_require__(57); 1970module.exports = __w_pdfjs_require__(9).Number.isInteger; 1971 1972/***/ }), 1973/* 57 */ 1974/***/ (function(module, exports, __w_pdfjs_require__) { 1975 1976"use strict"; 1977 1978 1979var $export = __w_pdfjs_require__(7); 1980$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(58) }); 1981 1982/***/ }), 1983/* 58 */ 1984/***/ (function(module, exports, __w_pdfjs_require__) { 1985 1986"use strict"; 1987 1988 1989var isObject = __w_pdfjs_require__(13); 1990var floor = Math.floor; 1991module.exports = function isInteger(it) { 1992 return !isObject(it) && isFinite(it) && floor(it) === it; 1993}; 1994 1995/***/ }), 1996/* 59 */ 1997/***/ (function(module, exports, __w_pdfjs_require__) { 1998 1999"use strict"; 2000 2001 2002__w_pdfjs_require__(60); 2003__w_pdfjs_require__(62); 2004__w_pdfjs_require__(72); 2005__w_pdfjs_require__(75); 2006__w_pdfjs_require__(92); 2007__w_pdfjs_require__(93); 2008module.exports = __w_pdfjs_require__(9).Promise; 2009 2010/***/ }), 2011/* 60 */ 2012/***/ (function(module, exports, __w_pdfjs_require__) { 2013 2014"use strict"; 2015 2016 2017var classof = __w_pdfjs_require__(61); 2018var test = {}; 2019test[__w_pdfjs_require__(28)('toStringTag')] = 'z'; 2020if (test + '' != '[object z]') { 2021 __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { 2022 return '[object ' + classof(this) + ']'; 2023 }, true); 2024} 2025 2026/***/ }), 2027/* 61 */ 2028/***/ (function(module, exports, __w_pdfjs_require__) { 2029 2030"use strict"; 2031 2032 2033var cof = __w_pdfjs_require__(27); 2034var TAG = __w_pdfjs_require__(28)('toStringTag'); 2035var ARG = cof(function () { 2036 return arguments; 2037}()) == 'Arguments'; 2038var tryGet = function tryGet(it, key) { 2039 try { 2040 return it[key]; 2041 } catch (e) {} 2042}; 2043module.exports = function (it) { 2044 var O, T, B; 2045 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; 2046}; 2047 2048/***/ }), 2049/* 62 */ 2050/***/ (function(module, exports, __w_pdfjs_require__) { 2051 2052"use strict"; 2053 2054 2055var $at = __w_pdfjs_require__(63)(true); 2056__w_pdfjs_require__(64)(String, 'String', function (iterated) { 2057 this._t = String(iterated); 2058 this._i = 0; 2059}, function () { 2060 var O = this._t; 2061 var index = this._i; 2062 var point; 2063 if (index >= O.length) return { 2064 value: undefined, 2065 done: true 2066 }; 2067 point = $at(O, index); 2068 this._i += point.length; 2069 return { 2070 value: point, 2071 done: false 2072 }; 2073}); 2074 2075/***/ }), 2076/* 63 */ 2077/***/ (function(module, exports, __w_pdfjs_require__) { 2078 2079"use strict"; 2080 2081 2082var toInteger = __w_pdfjs_require__(39); 2083var defined = __w_pdfjs_require__(31); 2084module.exports = function (TO_STRING) { 2085 return function (that, pos) { 2086 var s = String(defined(that)); 2087 var i = toInteger(pos); 2088 var l = s.length; 2089 var a, b; 2090 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
vendor: 6,867 bytes, lines 2091-2328
2091 a = s.charCodeAt(i); 2092 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; 2093 }; 2094}; 2095 2096/***/ }), 2097/* 64 */ 2098/***/ (function(module, exports, __w_pdfjs_require__) { 2099 2100"use strict"; 2101 2102 2103var LIBRARY = __w_pdfjs_require__(30); 2104var $export = __w_pdfjs_require__(7); 2105var redefine = __w_pdfjs_require__(20); 2106var hide = __w_pdfjs_require__(10); 2107var Iterators = __w_pdfjs_require__(65); 2108var $iterCreate = __w_pdfjs_require__(66); 2109var setToStringTag = __w_pdfjs_require__(70); 2110var getPrototypeOf = __w_pdfjs_require__(71); 2111var ITERATOR = __w_pdfjs_require__(28)('iterator'); 2112var BUGGY = !([].keys && 'next' in [].keys()); 2113var FF_ITERATOR = '@@iterator'; 2114var KEYS = 'keys'; 2115var VALUES = 'values'; 2116var returnThis = function returnThis() { 2117 return this; 2118}; 2119module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 2120 $iterCreate(Constructor, NAME, next); 2121 var getMethod = function getMethod(kind) { 2122 if (!BUGGY && kind in proto) return proto[kind]; 2123 switch (kind) { 2124 case KEYS: 2125 return function keys() { 2126 return new Constructor(this, kind); 2127 }; 2128 case VALUES: 2129 return function values() { 2130 return new Constructor(this, kind); 2131 }; 2132 } 2133 return function entries() { 2134 return new Constructor(this, kind); 2135 }; 2136 }; 2137 var TAG = NAME + ' Iterator'; 2138 var DEF_VALUES = DEFAULT == VALUES; 2139 var VALUES_BUG = false; 2140 var proto = Base.prototype; 2141 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 2142 var $default = $native || getMethod(DEFAULT); 2143 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 2144 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 2145 var methods, key, IteratorPrototype; 2146 if ($anyNative) { 2147 IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 2148 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 2149 setToStringTag(IteratorPrototype, TAG, true); 2150 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); 2151 } 2152 } 2153 if (DEF_VALUES && $native && $native.name !== VALUES) { 2154 VALUES_BUG = true; 2155 $default = function values() { 2156 return $native.call(this); 2157 }; 2158 } 2159 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 2160 hide(proto, ITERATOR, $default); 2161 } 2162 Iterators[NAME] = $default; 2163 Iterators[TAG] = returnThis; 2164 if (DEFAULT) { 2165 methods = { 2166 values: DEF_VALUES ? $default : getMethod(VALUES), 2167 keys: IS_SET ? $default : getMethod(KEYS), 2168 entries: $entries 2169 }; 2170 if (FORCED) for (key in methods) { 2171 if (!(key in proto)) redefine(proto, key, methods[key]); 2172 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 2173 } 2174 return methods; 2175}; 2176 2177/***/ }), 2178/* 65 */ 2179/***/ (function(module, exports, __w_pdfjs_require__) { 2180 2181"use strict"; 2182 2183 2184module.exports = {}; 2185 2186/***/ }), 2187/* 66 */ 2188/***/ (function(module, exports, __w_pdfjs_require__) { 2189 2190"use strict"; 2191 2192 2193var create = __w_pdfjs_require__(67); 2194var descriptor = __w_pdfjs_require__(19); 2195var setToStringTag = __w_pdfjs_require__(70); 2196var IteratorPrototype = {}; 2197__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(28)('iterator'), function () { 2198 return this; 2199}); 2200module.exports = function (Constructor, NAME, next) { 2201 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); 2202 setToStringTag(Constructor, NAME + ' Iterator'); 2203}; 2204 2205/***/ }), 2206/* 67 */ 2207/***/ (function(module, exports, __w_pdfjs_require__) { 2208 2209"use strict"; 2210 2211 2212var anObject = __w_pdfjs_require__(12); 2213var dPs = __w_pdfjs_require__(68); 2214var enumBugKeys = __w_pdfjs_require__(48); 2215var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO'); 2216var Empty = function Empty() {}; 2217var PROTOTYPE = 'prototype'; 2218var _createDict = function createDict() { 2219 var iframe = __w_pdfjs_require__(17)('iframe'); 2220 var i = enumBugKeys.length; 2221 var lt = '<'; 2222 var gt = '>'; 2223 var iframeDocument; 2224 iframe.style.display = 'none'; 2225 __w_pdfjs_require__(69).appendChild(iframe); 2226 iframe.src = 'javascript:'; 2227 iframeDocument = iframe.contentWindow.document; 2228 iframeDocument.open(); 2229 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 2230 iframeDocument.close(); 2231 _createDict = iframeDocument.F; 2232 while (i--) { 2233 delete _createDict[PROTOTYPE][enumBugKeys[i]]; 2234 }return _createDict(); 2235}; 2236module.exports = Object.create || function create(O, Properties) { 2237 var result; 2238 if (O !== null) { 2239 Empty[PROTOTYPE] = anObject(O); 2240 result = new Empty(); 2241 Empty[PROTOTYPE] = null; 2242 result[IE_PROTO] = O; 2243 } else result = _createDict(); 2244 return Properties === undefined ? result : dPs(result, Properties); 2245}; 2246 2247/***/ }), 2248/* 68 */ 2249/***/ (function(module, exports, __w_pdfjs_require__) { 2250 2251"use strict"; 2252 2253 2254var dP = __w_pdfjs_require__(11); 2255var anObject = __w_pdfjs_require__(12); 2256var getKeys = __w_pdfjs_require__(45); 2257module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { 2258 anObject(O); 2259 var keys = getKeys(Properties); 2260 var length = keys.length; 2261 var i = 0; 2262 var P; 2263 while (length > i) { 2264 dP.f(O, P = keys[i++], Properties[P]); 2265 }return O; 2266}; 2267 2268/***/ }), 2269/* 69 */ 2270/***/ (function(module, exports, __w_pdfjs_require__) { 2271 2272"use strict"; 2273 2274 2275var document = __w_pdfjs_require__(8).document; 2276module.exports = document && document.documentElement; 2277 2278/***/ }), 2279/* 70 */ 2280/***/ (function(module, exports, __w_pdfjs_require__) { 2281 2282"use strict"; 2283 2284 2285var def = __w_pdfjs_require__(11).f; 2286var has = __w_pdfjs_require__(21); 2287var TAG = __w_pdfjs_require__(28)('toStringTag'); 2288module.exports = function (it, tag, stat) { 2289 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { 2290 configurable: true, 2291 value: tag 2292 }); 2293}; 2294 2295/***/ }), 2296/* 71 */ 2297/***/ (function(module, exports, __w_pdfjs_require__) { 2298 2299"use strict"; 2300 2301 2302var has = __w_pdfjs_require__(21); 2303var toObject = __w_pdfjs_require__(51); 2304var IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO'); 2305var ObjectProto = Object.prototype; 2306module.exports = Object.getPrototypeOf || function (O) { 2307 O = toObject(O); 2308 if (has(O, IE_PROTO)) return O[IE_PROTO]; 2309 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 2310 return O.constructor.prototype; 2311 } 2312 return O instanceof Object ? ObjectProto : null; 2313}; 2314 2315/***/ }), 2316/* 72 */ 2317/***/ (function(module, exports, __w_pdfjs_require__) { 2318 2319"use strict"; 2320 2321 2322var $iterators = __w_pdfjs_require__(73); 2323var getKeys = __w_pdfjs_require__(45); 2324var redefine = __w_pdfjs_require__(20); 2325var global = __w_pdfjs_require__(8); 2326var hide = __w_pdfjs_require__(10); 2327var Iterators = __w_pdfjs_require__(65); 2328var wks = __w_pdfjs_require__(28);
2329var ITERATOR = wks('iterator'); 2330var TO_STRING_TAG = wks('toStringTag'); 2331var ArrayValues = Iterators.Array; 2332var DOMIterables = { 2333 CSSRuleList: true, 2334 CSSStyleDeclaration: false, 2335 CSSValueList: false, 2336 ClientRectList: false, 2337 DOMRectList: false, 2338 DOMStringList: false, 2339 DOMTokenList: true, 2340 DataTransferItemList: false, 2341 FileList: false, 2342 HTMLAllCollection: false, 2343 HTMLCollection: false, 2344 HTMLFormElement: false, 2345 HTMLSelectElement: false, 2346 MediaList: true, 2347 MimeTypeArray: false, 2348 NamedNodeMap: false, 2349 NodeList: true, 2350 PaintRequestList: false, 2351 Plugin: false, 2352 PluginArray: false, 2353 SVGLengthList: false, 2354 SVGNumberList: false, 2355 SVGPathSegList: false, 2356 SVGPointList: false, 2357 SVGStringList: false, 2358 SVGTransformList: false, 2359 SourceBufferList: false, 2360 StyleSheetList: true, 2361 TextTrackCueList: false, 2362 TextTrackList: false, 2363 TouchList: false 2364}; 2365for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { 2366 var NAME = collections[i]; 2367 var explicit = DOMIterables[NAME]; 2368 var Collection = global[NAME]; 2369 var proto = Collection && Collection.prototype; 2370 var key; 2371 if (proto) { 2372 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); 2373 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 2374 Iterators[NAME] = ArrayValues; 2375 if (explicit) for (key in $iterators) { 2376 if (!proto[key]) redefine(proto, key, $iterators[key], true); 2377 } 2378 } 2379} 2380 2381/***/ }), 2382/* 73 */ 2383/***/ (function(module, exports, __w_pdfjs_require__) { 2384 2385"use strict"; 2386 2387 2388var addToUnscopables = __w_pdfjs_require__(41); 2389var step = __w_pdfjs_require__(74); 2390var Iterators = __w_pdfjs_require__(65); 2391var toIObject = __w_pdfjs_require__(36); 2392module.exports = __w_pdfjs_require__(64)(Array, 'Array', function (iterated, kind) { 2393 this._t = toIObject(iterated); 2394 this._i = 0; 2395 this._k = kind; 2396}, function () { 2397 var O = this._t; 2398 var kind = this._k; 2399 var index = this._i++; 2400 if (!O || index >= O.length) { 2401 this._t = undefined; 2402 return step(1); 2403 } 2404 if (kind == 'keys') return step(0, index); 2405 if (kind == 'values') return step(0, O[index]); 2406 return step(0, [index, O[index]]); 2407}, 'values'); 2408Iterators.Arguments = Iterators.Array; 2409addToUnscopables('keys'); 2410addToUnscopables('values'); 2411addToUnscopables('entries'); 2412 2413/***/ }), 2414/* 74 */ 2415/***/ (function(module, exports, __w_pdfjs_require__) { 2416 2417"use strict"; 2418 2419 2420module.exports = function (done, value) { 2421 return { 2422 value: value, 2423 done: !!done 2424 }; 2425}; 2426 2427/***/ }), 2428/* 75 */ 2429/***/ (function(module, exports, __w_pdfjs_require__) { 2430 2431"use strict"; 2432 2433 2434var LIBRARY = __w_pdfjs_require__(30); 2435var global = __w_pdfjs_require__(8); 2436var ctx = __w_pdfjs_require__(23); 2437var classof = __w_pdfjs_require__(61); 2438var $export = __w_pdfjs_require__(7); 2439var isObject = __w_pdfjs_require__(13); 2440var aFunction = __w_pdfjs_require__(24); 2441var anInstance = __w_pdfjs_require__(76); 2442var forOf = __w_pdfjs_require__(77); 2443var speciesConstructor = __w_pdfjs_require__(81); 2444var task = __w_pdfjs_require__(82).set; 2445var microtask = __w_pdfjs_require__(84)(); 2446var newPromiseCapabilityModule = __w_pdfjs_require__(85); 2447var perform = __w_pdfjs_require__(86); 2448var userAgent = __w_pdfjs_require__(87); 2449var promiseResolve = __w_pdfjs_require__(88); 2450var PROMISE = 'Promise'; 2451var TypeError = global.TypeError; 2452var process = global.process; 2453var versions = process && process.versions; 2454var v8 = versions && versions.v8 || ''; 2455var $Promise = global[PROMISE]; 2456var isNode = classof(process) == 'process'; 2457var empty = function empty() {}; 2458var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; 2459var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; 2460var USE_NATIVE = !!function () { 2461 try { 2462 var promise = $Promise.resolve(1); 2463 var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(28)('species')] = function (exec) { 2464 exec(empty, empty); 2465 }; 2466 return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; 2467 } catch (e) {} 2468}(); 2469var isThenable = function isThenable(it) { 2470 var then; 2471 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
vendor: 4,103 bytes, lines 2472-2619
2472}; 2473var notify = function notify(promise, isReject) { 2474 if (promise._n) return; 2475 promise._n = true; 2476 var chain = promise._c; 2477 microtask(function () { 2478 var value = promise._v; 2479 var ok = promise._s == 1; 2480 var i = 0; 2481 var run = function run(reaction) { 2482 var handler = ok ? reaction.ok : reaction.fail; 2483 var resolve = reaction.resolve; 2484 var reject = reaction.reject; 2485 var domain = reaction.domain; 2486 var result, then, exited; 2487 try { 2488 if (handler) { 2489 if (!ok) { 2490 if (promise._h == 2) onHandleUnhandled(promise); 2491 promise._h = 1; 2492 } 2493 if (handler === true) result = value;else { 2494 if (domain) domain.enter(); 2495 result = handler(value); 2496 if (domain) { 2497 domain.exit(); 2498 exited = true; 2499 } 2500 } 2501 if (result === reaction.promise) { 2502 reject(TypeError('Promise-chain cycle')); 2503 } else if (then = isThenable(result)) { 2504 then.call(result, resolve, reject); 2505 } else resolve(result); 2506 } else reject(value); 2507 } catch (e) { 2508 if (domain && !exited) domain.exit(); 2509 reject(e); 2510 } 2511 }; 2512 while (chain.length > i) { 2513 run(chain[i++]); 2514 }promise._c = []; 2515 promise._n = false; 2516 if (isReject && !promise._h) onUnhandled(promise); 2517 }); 2518}; 2519var onUnhandled = function onUnhandled(promise) { 2520 task.call(global, function () { 2521 var value = promise._v; 2522 var unhandled = isUnhandled(promise); 2523 var result, handler, console; 2524 if (unhandled) { 2525 result = perform(function () { 2526 if (isNode) { 2527 process.emit('unhandledRejection', value, promise); 2528 } else if (handler = global.onunhandledrejection) { 2529 handler({ 2530 promise: promise, 2531 reason: value 2532 }); 2533 } else if ((console = global.console) && console.error) { 2534 console.error('Unhandled promise rejection', value); 2535 } 2536 }); 2537 promise._h = isNode || isUnhandled(promise) ? 2 : 1; 2538 } 2539 promise._a = undefined; 2540 if (unhandled && result.e) throw result.v; 2541 }); 2542}; 2543var isUnhandled = function isUnhandled(promise) { 2544 return promise._h !== 1 && (promise._a || promise._c).length === 0; 2545}; 2546var onHandleUnhandled = function onHandleUnhandled(promise) { 2547 task.call(global, function () { 2548 var handler; 2549 if (isNode) { 2550 process.emit('rejectionHandled', promise); 2551 } else if (handler = global.onrejectionhandled) { 2552 handler({ 2553 promise: promise, 2554 reason: promise._v 2555 }); 2556 } 2557 }); 2558}; 2559var $reject = function $reject(value) { 2560 var promise = this; 2561 if (promise._d) return; 2562 promise._d = true; 2563 promise = promise._w || promise; 2564 promise._v = value; 2565 promise._s = 2; 2566 if (!promise._a) promise._a = promise._c.slice(); 2567 notify(promise, true); 2568}; 2569var $resolve = function $resolve(value) { 2570 var promise = this; 2571 var then; 2572 if (promise._d) return; 2573 promise._d = true; 2574 promise = promise._w || promise; 2575 try { 2576 if (promise === value) throw TypeError("Promise can't be resolved itself"); 2577 if (then = isThenable(value)) { 2578 microtask(function () { 2579 var wrapper = { 2580 _w: promise, 2581 _d: false 2582 }; 2583 try { 2584 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 2585 } catch (e) { 2586 $reject.call(wrapper, e); 2587 } 2588 }); 2589 } else { 2590 promise._v = value; 2591 promise._s = 1; 2592 notify(promise, false); 2593 } 2594 } catch (e) { 2595 $reject.call({ 2596 _w: promise, 2597 _d: false 2598 }, e); 2599 } 2600}; 2601if (!USE_NATIVE) { 2602 $Promise = function Promise(executor) { 2603 anInstance(this, $Promise, PROMISE, '_h'); 2604 aFunction(executor); 2605 Internal.call(this); 2606 try { 2607 executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 2608 } catch (err) { 2609 $reject.call(this, err); 2610 } 2611 }; 2612 Internal = function Promise(executor) { 2613 this._c = []; 2614 this._a = undefined; 2615 this._s = 0; 2616 this._d = false; 2617 this._v = undefined; 2618 this._h = 0; 2619 this._n = false;
vendor: 5,089 bytes, lines 2620-2779
2620 }; 2621 Internal.prototype = __w_pdfjs_require__(89)($Promise.prototype, { 2622 then: function then(onFulfilled, onRejected) { 2623 var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 2624 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 2625 reaction.fail = typeof onRejected == 'function' && onRejected; 2626 reaction.domain = isNode ? process.domain : undefined; 2627 this._c.push(reaction); 2628 if (this._a) this._a.push(reaction); 2629 if (this._s) notify(this, false); 2630 return reaction.promise; 2631 }, 2632 'catch': function _catch(onRejected) { 2633 return this.then(undefined, onRejected); 2634 } 2635 }); 2636 OwnPromiseCapability = function OwnPromiseCapability() { 2637 var promise = new Internal(); 2638 this.promise = promise; 2639 this.resolve = ctx($resolve, promise, 1); 2640 this.reject = ctx($reject, promise, 1); 2641 }; 2642 newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { 2643 return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); 2644 }; 2645} 2646$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); 2647__w_pdfjs_require__(70)($Promise, PROMISE); 2648__w_pdfjs_require__(90)(PROMISE); 2649Wrapper = __w_pdfjs_require__(9)[PROMISE]; 2650$export($export.S + $export.F * !USE_NATIVE, PROMISE, { 2651 reject: function reject(r) { 2652 var capability = newPromiseCapability(this); 2653 var $$reject = capability.reject; 2654 $$reject(r); 2655 return capability.promise; 2656 } 2657}); 2658$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 2659 resolve: function resolve(x) { 2660 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); 2661 } 2662}); 2663$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(91)(function (iter) { 2664 $Promise.all(iter)['catch'](empty); 2665})), PROMISE, { 2666 all: function all(iterable) { 2667 var C = this; 2668 var capability = newPromiseCapability(C); 2669 var resolve = capability.resolve; 2670 var reject = capability.reject; 2671 var result = perform(function () { 2672 var values = []; 2673 var index = 0; 2674 var remaining = 1; 2675 forOf(iterable, false, function (promise) { 2676 var $index = index++; 2677 var alreadyCalled = false; 2678 values.push(undefined); 2679 remaining++; 2680 C.resolve(promise).then(function (value) { 2681 if (alreadyCalled) return; 2682 alreadyCalled = true; 2683 values[$index] = value; 2684 --remaining || resolve(values); 2685 }, reject); 2686 }); 2687 --remaining || resolve(values); 2688 }); 2689 if (result.e) reject(result.v); 2690 return capability.promise; 2691 }, 2692 race: function race(iterable) { 2693 var C = this; 2694 var capability = newPromiseCapability(C); 2695 var reject = capability.reject; 2696 var result = perform(function () { 2697 forOf(iterable, false, function (promise) { 2698 C.resolve(promise).then(capability.resolve, reject); 2699 }); 2700 }); 2701 if (result.e) reject(result.v); 2702 return capability.promise; 2703 } 2704}); 2705 2706/***/ }), 2707/* 76 */ 2708/***/ (function(module, exports, __w_pdfjs_require__) { 2709 2710"use strict"; 2711 2712 2713module.exports = function (it, Constructor, name, forbiddenField) { 2714 if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { 2715 throw TypeError(name + ': incorrect invocation!'); 2716 } 2717 return it; 2718}; 2719 2720/***/ }), 2721/* 77 */ 2722/***/ (function(module, exports, __w_pdfjs_require__) { 2723 2724"use strict"; 2725 2726 2727var ctx = __w_pdfjs_require__(23); 2728var call = __w_pdfjs_require__(78); 2729var isArrayIter = __w_pdfjs_require__(79); 2730var anObject = __w_pdfjs_require__(12); 2731var toLength = __w_pdfjs_require__(38); 2732var getIterFn = __w_pdfjs_require__(80); 2733var BREAK = {}; 2734var RETURN = {}; 2735var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { 2736 var iterFn = ITERATOR ? function () { 2737 return iterable; 2738 } : getIterFn(iterable); 2739 var f = ctx(fn, that, entries ? 2 : 1); 2740 var index = 0; 2741 var length, step, iterator, result; 2742 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); 2743 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { 2744 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 2745 if (result === BREAK || result === RETURN) return result; 2746 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { 2747 result = call(iterator, f, step.value, entries); 2748 if (result === BREAK || result === RETURN) return result; 2749 } 2750}; 2751_exports.BREAK = BREAK; 2752_exports.RETURN = RETURN; 2753 2754/***/ }), 2755/* 78 */ 2756/***/ (function(module, exports, __w_pdfjs_require__) { 2757 2758"use strict"; 2759 2760 2761var anObject = __w_pdfjs_require__(12); 2762module.exports = function (iterator, fn, value, entries) { 2763 try { 2764 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 2765 } catch (e) { 2766 var ret = iterator['return']; 2767 if (ret !== undefined) anObject(ret.call(iterator)); 2768 throw e; 2769 } 2770}; 2771 2772/***/ }), 2773/* 79 */ 2774/***/ (function(module, exports, __w_pdfjs_require__) { 2775 2776"use strict"; 2777 2778 2779var Iterators = __w_pdfjs_require__(65);
vendor: 4,480 bytes, lines 2780-2943
2780var ITERATOR = __w_pdfjs_require__(28)('iterator'); 2781var ArrayProto = Array.prototype; 2782module.exports = function (it) { 2783 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 2784}; 2785 2786/***/ }), 2787/* 80 */ 2788/***/ (function(module, exports, __w_pdfjs_require__) { 2789 2790"use strict"; 2791 2792 2793var classof = __w_pdfjs_require__(61); 2794var ITERATOR = __w_pdfjs_require__(28)('iterator'); 2795var Iterators = __w_pdfjs_require__(65); 2796module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { 2797 if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; 2798}; 2799 2800/***/ }), 2801/* 81 */ 2802/***/ (function(module, exports, __w_pdfjs_require__) { 2803 2804"use strict"; 2805 2806 2807var anObject = __w_pdfjs_require__(12); 2808var aFunction = __w_pdfjs_require__(24); 2809var SPECIES = __w_pdfjs_require__(28)('species'); 2810module.exports = function (O, D) { 2811 var C = anObject(O).constructor; 2812 var S; 2813 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 2814}; 2815 2816/***/ }), 2817/* 82 */ 2818/***/ (function(module, exports, __w_pdfjs_require__) { 2819 2820"use strict"; 2821 2822 2823var ctx = __w_pdfjs_require__(23); 2824var invoke = __w_pdfjs_require__(83); 2825var html = __w_pdfjs_require__(69); 2826var cel = __w_pdfjs_require__(17); 2827var global = __w_pdfjs_require__(8); 2828var process = global.process; 2829var setTask = global.setImmediate; 2830var clearTask = global.clearImmediate; 2831var MessageChannel = global.MessageChannel; 2832var Dispatch = global.Dispatch; 2833var counter = 0; 2834var queue = {}; 2835var ONREADYSTATECHANGE = 'onreadystatechange'; 2836var defer, channel, port; 2837var run = function run() { 2838 var id = +this; 2839 if (queue.hasOwnProperty(id)) { 2840 var fn = queue[id]; 2841 delete queue[id]; 2842 fn(); 2843 } 2844}; 2845var listener = function listener(event) { 2846 run.call(event.data); 2847}; 2848if (!setTask || !clearTask) { 2849 setTask = function setImmediate(fn) { 2850 var args = []; 2851 var i = 1; 2852 while (arguments.length > i) { 2853 args.push(arguments[i++]); 2854 }queue[++counter] = function () { 2855 invoke(typeof fn == 'function' ? fn : Function(fn), args); 2856 }; 2857 defer(counter); 2858 return counter; 2859 }; 2860 clearTask = function clearImmediate(id) { 2861 delete queue[id]; 2862 }; 2863 if (__w_pdfjs_require__(27)(process) == 'process') { 2864 defer = function defer(id) { 2865 process.nextTick(ctx(run, id, 1)); 2866 }; 2867 } else if (Dispatch && Dispatch.now) { 2868 defer = function defer(id) { 2869 Dispatch.now(ctx(run, id, 1)); 2870 }; 2871 } else if (MessageChannel) { 2872 channel = new MessageChannel(); 2873 port = channel.port2; 2874 channel.port1.onmessage = listener; 2875 defer = ctx(port.postMessage, port, 1); 2876 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { 2877 defer = function defer(id) { 2878 global.postMessage(id + '', '*'); 2879 }; 2880 global.addEventListener('message', listener, false); 2881 } else if (ONREADYSTATECHANGE in cel('script')) { 2882 defer = function defer(id) { 2883 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { 2884 html.removeChild(this); 2885 run.call(id); 2886 }; 2887 }; 2888 } else { 2889 defer = function defer(id) { 2890 setTimeout(ctx(run, id, 1), 0); 2891 }; 2892 } 2893} 2894module.exports = { 2895 set: setTask, 2896 clear: clearTask 2897}; 2898 2899/***/ }), 2900/* 83 */ 2901/***/ (function(module, exports, __w_pdfjs_require__) { 2902 2903"use strict"; 2904 2905 2906module.exports = function (fn, args, that) { 2907 var un = that === undefined; 2908 switch (args.length) { 2909 case 0: 2910 return un ? fn() : fn.call(that); 2911 case 1: 2912 return un ? fn(args[0]) : fn.call(that, args[0]); 2913 case 2: 2914 return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); 2915 case 3: 2916 return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); 2917 case 4: 2918 return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); 2919 } 2920 return fn.apply(that, args); 2921}; 2922 2923/***/ }), 2924/* 84 */ 2925/***/ (function(module, exports, __w_pdfjs_require__) { 2926 2927"use strict"; 2928 2929 2930var global = __w_pdfjs_require__(8); 2931var macrotask = __w_pdfjs_require__(82).set; 2932var Observer = global.MutationObserver || global.WebKitMutationObserver; 2933var process = global.process; 2934var Promise = global.Promise; 2935var isNode = __w_pdfjs_require__(27)(process) == 'process'; 2936module.exports = function () { 2937 var head, last, notify; 2938 var flush = function flush() { 2939 var parent, fn; 2940 if (isNode && (parent = process.domain)) parent.exit(); 2941 while (head) { 2942 fn = head.fn; 2943 head = head.next;
vendor: 4,840 bytes, lines 2944-3166
2944 try { 2945 fn(); 2946 } catch (e) { 2947 if (head) notify();else last = undefined; 2948 throw e; 2949 } 2950 } 2951 last = undefined; 2952 if (parent) parent.enter(); 2953 }; 2954 if (isNode) { 2955 notify = function notify() { 2956 process.nextTick(flush); 2957 }; 2958 } else if (Observer && !(global.navigator && global.navigator.standalone)) { 2959 var toggle = true; 2960 var node = document.createTextNode(''); 2961 new Observer(flush).observe(node, { characterData: true }); 2962 notify = function notify() { 2963 node.data = toggle = !toggle; 2964 }; 2965 } else if (Promise && Promise.resolve) { 2966 var promise = Promise.resolve(undefined); 2967 notify = function notify() { 2968 promise.then(flush); 2969 }; 2970 } else { 2971 notify = function notify() { 2972 macrotask.call(global, flush); 2973 }; 2974 } 2975 return function (fn) { 2976 var task = { 2977 fn: fn, 2978 next: undefined 2979 }; 2980 if (last) last.next = task; 2981 if (!head) { 2982 head = task; 2983 notify(); 2984 } 2985 last = task; 2986 }; 2987}; 2988 2989/***/ }), 2990/* 85 */ 2991/***/ (function(module, exports, __w_pdfjs_require__) { 2992 2993"use strict"; 2994 2995 2996var aFunction = __w_pdfjs_require__(24); 2997function PromiseCapability(C) { 2998 var resolve, reject; 2999 this.promise = new C(function ($$resolve, $$reject) { 3000 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 3001 resolve = $$resolve; 3002 reject = $$reject; 3003 }); 3004 this.resolve = aFunction(resolve); 3005 this.reject = aFunction(reject); 3006} 3007module.exports.f = function (C) { 3008 return new PromiseCapability(C); 3009}; 3010 3011/***/ }), 3012/* 86 */ 3013/***/ (function(module, exports, __w_pdfjs_require__) { 3014 3015"use strict"; 3016 3017 3018module.exports = function (exec) { 3019 try { 3020 return { 3021 e: false, 3022 v: exec() 3023 }; 3024 } catch (e) { 3025 return { 3026 e: true, 3027 v: e 3028 }; 3029 } 3030}; 3031 3032/***/ }), 3033/* 87 */ 3034/***/ (function(module, exports, __w_pdfjs_require__) { 3035 3036"use strict"; 3037 3038 3039var global = __w_pdfjs_require__(8); 3040var navigator = global.navigator; 3041module.exports = navigator && navigator.userAgent || ''; 3042 3043/***/ }), 3044/* 88 */ 3045/***/ (function(module, exports, __w_pdfjs_require__) { 3046 3047"use strict"; 3048 3049 3050var anObject = __w_pdfjs_require__(12); 3051var isObject = __w_pdfjs_require__(13); 3052var newPromiseCapability = __w_pdfjs_require__(85); 3053module.exports = function (C, x) { 3054 anObject(C); 3055 if (isObject(x) && x.constructor === C) return x; 3056 var promiseCapability = newPromiseCapability.f(C); 3057 var resolve = promiseCapability.resolve; 3058 resolve(x); 3059 return promiseCapability.promise; 3060}; 3061 3062/***/ }), 3063/* 89 */ 3064/***/ (function(module, exports, __w_pdfjs_require__) { 3065 3066"use strict"; 3067 3068 3069var redefine = __w_pdfjs_require__(20); 3070module.exports = function (target, src, safe) { 3071 for (var key in src) { 3072 redefine(target, key, src[key], safe); 3073 }return target; 3074}; 3075 3076/***/ }), 3077/* 90 */ 3078/***/ (function(module, exports, __w_pdfjs_require__) { 3079 3080"use strict"; 3081 3082 3083var global = __w_pdfjs_require__(8); 3084var dP = __w_pdfjs_require__(11); 3085var DESCRIPTORS = __w_pdfjs_require__(15); 3086var SPECIES = __w_pdfjs_require__(28)('species'); 3087module.exports = function (KEY) { 3088 var C = global[KEY]; 3089 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { 3090 configurable: true, 3091 get: function get() { 3092 return this; 3093 } 3094 }); 3095}; 3096 3097/***/ }), 3098/* 91 */ 3099/***/ (function(module, exports, __w_pdfjs_require__) { 3100 3101"use strict"; 3102 3103 3104var ITERATOR = __w_pdfjs_require__(28)('iterator'); 3105var SAFE_CLOSING = false; 3106try { 3107 var riter = [7][ITERATOR](); 3108 riter['return'] = function () { 3109 SAFE_CLOSING = true; 3110 }; 3111 Array.from(riter, function () { 3112 throw 2; 3113 }); 3114} catch (e) {} 3115module.exports = function (exec, skipClosing) { 3116 if (!skipClosing && !SAFE_CLOSING) return false; 3117 var safe = false; 3118 try { 3119 var arr = [7]; 3120 var iter = arr[ITERATOR](); 3121 iter.next = function () { 3122 return { done: safe = true }; 3123 }; 3124 arr[ITERATOR] = function () { 3125 return iter; 3126 }; 3127 exec(arr); 3128 } catch (e) {} 3129 return safe; 3130}; 3131 3132/***/ }), 3133/* 92 */ 3134/***/ (function(module, exports, __w_pdfjs_require__) { 3135 3136"use strict"; 3137 3138 3139var $export = __w_pdfjs_require__(7); 3140var core = __w_pdfjs_require__(9); 3141var global = __w_pdfjs_require__(8); 3142var speciesConstructor = __w_pdfjs_require__(81); 3143var promiseResolve = __w_pdfjs_require__(88); 3144$export($export.P + $export.R, 'Promise', { 3145 'finally': function _finally(onFinally) { 3146 var C = speciesConstructor(this, core.Promise || global.Promise); 3147 var isFunction = typeof onFinally == 'function'; 3148 return this.then(isFunction ? function (x) { 3149 return promiseResolve(C, onFinally()).then(function () { 3150 return x; 3151 }); 3152 } : onFinally, isFunction ? function (e) { 3153 return promiseResolve(C, onFinally()).then(function () { 3154 throw e; 3155 }); 3156 } : onFinally); 3157 } 3158}); 3159 3160/***/ }), 3161/* 93 */ 3162/***/ (function(module, exports, __w_pdfjs_require__) { 3163 3164"use strict"; 3165 3166
vendor: 10,612 bytes, lines 3167-3532
3167var $export = __w_pdfjs_require__(7); 3168var newPromiseCapability = __w_pdfjs_require__(85); 3169var perform = __w_pdfjs_require__(86); 3170$export($export.S, 'Promise', { 3171 'try': function _try(callbackfn) { 3172 var promiseCapability = newPromiseCapability.f(this); 3173 var result = perform(callbackfn); 3174 (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); 3175 return promiseCapability.promise; 3176 } 3177}); 3178 3179/***/ }), 3180/* 94 */ 3181/***/ (function(module, exports, __w_pdfjs_require__) { 3182 3183"use strict"; 3184 3185 3186__w_pdfjs_require__(60); 3187__w_pdfjs_require__(72); 3188__w_pdfjs_require__(95); 3189__w_pdfjs_require__(107); 3190__w_pdfjs_require__(109); 3191module.exports = __w_pdfjs_require__(9).WeakMap; 3192 3193/***/ }), 3194/* 95 */ 3195/***/ (function(module, exports, __w_pdfjs_require__) { 3196 3197"use strict"; 3198 3199 3200var each = __w_pdfjs_require__(96)(0); 3201var redefine = __w_pdfjs_require__(20); 3202var meta = __w_pdfjs_require__(100); 3203var assign = __w_pdfjs_require__(44); 3204var weak = __w_pdfjs_require__(101); 3205var isObject = __w_pdfjs_require__(13); 3206var fails = __w_pdfjs_require__(16); 3207var validate = __w_pdfjs_require__(102); 3208var WEAK_MAP = 'WeakMap'; 3209var getWeak = meta.getWeak; 3210var isExtensible = Object.isExtensible; 3211var uncaughtFrozenStore = weak.ufstore; 3212var tmp = {}; 3213var InternalMap; 3214var wrapper = function wrapper(get) { 3215 return function WeakMap() { 3216 return get(this, arguments.length > 0 ? arguments[0] : undefined); 3217 }; 3218}; 3219var methods = { 3220 get: function get(key) { 3221 if (isObject(key)) { 3222 var data = getWeak(key); 3223 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); 3224 return data ? data[this._i] : undefined; 3225 } 3226 }, 3227 set: function set(key, value) { 3228 return weak.def(validate(this, WEAK_MAP), key, value); 3229 } 3230}; 3231var $WeakMap = module.exports = __w_pdfjs_require__(103)(WEAK_MAP, wrapper, methods, weak, true, true); 3232if (fails(function () { 3233 return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; 3234})) { 3235 InternalMap = weak.getConstructor(wrapper, WEAK_MAP); 3236 assign(InternalMap.prototype, methods); 3237 meta.NEED = true; 3238 each(['delete', 'has', 'get', 'set'], function (key) { 3239 var proto = $WeakMap.prototype; 3240 var method = proto[key]; 3241 redefine(proto, key, function (a, b) { 3242 if (isObject(a) && !isExtensible(a)) { 3243 if (!this._f) this._f = new InternalMap(); 3244 var result = this._f[key](a, b); 3245 return key == 'set' ? this : result; 3246 } 3247 return method.call(this, a, b); 3248 }); 3249 }); 3250} 3251 3252/***/ }), 3253/* 96 */ 3254/***/ (function(module, exports, __w_pdfjs_require__) { 3255 3256"use strict"; 3257 3258 3259var ctx = __w_pdfjs_require__(23); 3260var IObject = __w_pdfjs_require__(37); 3261var toObject = __w_pdfjs_require__(51); 3262var toLength = __w_pdfjs_require__(38); 3263var asc = __w_pdfjs_require__(97); 3264module.exports = function (TYPE, $create) { 3265 var IS_MAP = TYPE == 1; 3266 var IS_FILTER = TYPE == 2; 3267 var IS_SOME = TYPE == 3; 3268 var IS_EVERY = TYPE == 4; 3269 var IS_FIND_INDEX = TYPE == 6; 3270 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 3271 var create = $create || asc; 3272 return function ($this, callbackfn, that) { 3273 var O = toObject($this); 3274 var self = IObject(O); 3275 var f = ctx(callbackfn, that, 3); 3276 var length = toLength(self.length); 3277 var index = 0; 3278 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; 3279 var val, res; 3280 for (; length > index; index++) { 3281 if (NO_HOLES || index in self) { 3282 val = self[index]; 3283 res = f(val, index, O); 3284 if (TYPE) { 3285 if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { 3286 case 3: 3287 return true; 3288 case 5: 3289 return val; 3290 case 6: 3291 return index; 3292 case 2: 3293 result.push(val); 3294 } else if (IS_EVERY) return false; 3295 } 3296 } 3297 }return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; 3298 }; 3299}; 3300 3301/***/ }), 3302/* 97 */ 3303/***/ (function(module, exports, __w_pdfjs_require__) { 3304 3305"use strict"; 3306 3307 3308var speciesConstructor = __w_pdfjs_require__(98); 3309module.exports = function (original, length) { 3310 return new (speciesConstructor(original))(length); 3311}; 3312 3313/***/ }), 3314/* 98 */ 3315/***/ (function(module, exports, __w_pdfjs_require__) { 3316 3317"use strict"; 3318 3319 3320var isObject = __w_pdfjs_require__(13); 3321var isArray = __w_pdfjs_require__(99); 3322var SPECIES = __w_pdfjs_require__(28)('species'); 3323module.exports = function (original) { 3324 var C; 3325 if (isArray(original)) { 3326 C = original.constructor; 3327 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 3328 if (isObject(C)) { 3329 C = C[SPECIES]; 3330 if (C === null) C = undefined; 3331 } 3332 } 3333 return C === undefined ? Array : C; 3334}; 3335 3336/***/ }), 3337/* 99 */ 3338/***/ (function(module, exports, __w_pdfjs_require__) { 3339 3340"use strict"; 3341 3342 3343var cof = __w_pdfjs_require__(27); 3344module.exports = Array.isArray || function isArray(arg) { 3345 return cof(arg) == 'Array'; 3346}; 3347 3348/***/ }), 3349/* 100 */ 3350/***/ (function(module, exports, __w_pdfjs_require__) { 3351 3352"use strict"; 3353 3354 3355var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 3356 3357var META = __w_pdfjs_require__(22)('meta'); 3358var isObject = __w_pdfjs_require__(13); 3359var has = __w_pdfjs_require__(21); 3360var setDesc = __w_pdfjs_require__(11).f; 3361var id = 0; 3362var isExtensible = Object.isExtensible || function () { 3363 return true; 3364}; 3365var FREEZE = !__w_pdfjs_require__(16)(function () { 3366 return isExtensible(Object.preventExtensions({})); 3367}); 3368var setMeta = function setMeta(it) { 3369 setDesc(it, META, { 3370 value: { 3371 i: 'O' + ++id, 3372 w: {} 3373 } 3374 }); 3375}; 3376var fastKey = function fastKey(it, create) { 3377 if (!isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 3378 if (!has(it, META)) { 3379 if (!isExtensible(it)) return 'F'; 3380 if (!create) return 'E'; 3381 setMeta(it); 3382 } 3383 return it[META].i; 3384}; 3385var getWeak = function getWeak(it, create) { 3386 if (!has(it, META)) { 3387 if (!isExtensible(it)) return true; 3388 if (!create) return false; 3389 setMeta(it); 3390 } 3391 return it[META].w; 3392}; 3393var onFreeze = function onFreeze(it) { 3394 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 3395 return it; 3396}; 3397var meta = module.exports = { 3398 KEY: META, 3399 NEED: false, 3400 fastKey: fastKey, 3401 getWeak: getWeak, 3402 onFreeze: onFreeze 3403}; 3404 3405/***/ }), 3406/* 101 */ 3407/***/ (function(module, exports, __w_pdfjs_require__) { 3408 3409"use strict"; 3410 3411 3412var redefineAll = __w_pdfjs_require__(89); 3413var getWeak = __w_pdfjs_require__(100).getWeak; 3414var anObject = __w_pdfjs_require__(12); 3415var isObject = __w_pdfjs_require__(13); 3416var anInstance = __w_pdfjs_require__(76); 3417var forOf = __w_pdfjs_require__(77); 3418var createArrayMethod = __w_pdfjs_require__(96); 3419var $has = __w_pdfjs_require__(21); 3420var validate = __w_pdfjs_require__(102); 3421var arrayFind = createArrayMethod(5); 3422var arrayFindIndex = createArrayMethod(6); 3423var id = 0; 3424var uncaughtFrozenStore = function uncaughtFrozenStore(that) { 3425 return that._l || (that._l = new UncaughtFrozenStore()); 3426}; 3427var UncaughtFrozenStore = function UncaughtFrozenStore() { 3428 this.a = []; 3429}; 3430var findUncaughtFrozen = function findUncaughtFrozen(store, key) { 3431 return arrayFind(store.a, function (it) { 3432 return it[0] === key; 3433 }); 3434}; 3435UncaughtFrozenStore.prototype = { 3436 get: function get(key) { 3437 var entry = findUncaughtFrozen(this, key); 3438 if (entry) return entry[1]; 3439 }, 3440 has: function has(key) { 3441 return !!findUncaughtFrozen(this, key); 3442 }, 3443 set: function set(key, value) { 3444 var entry = findUncaughtFrozen(this, key); 3445 if (entry) entry[1] = value;else this.a.push([key, value]); 3446 }, 3447 'delete': function _delete(key) { 3448 var index = arrayFindIndex(this.a, function (it) { 3449 return it[0] === key; 3450 }); 3451 if (~index) this.a.splice(index, 1); 3452 return !!~index; 3453 } 3454}; 3455module.exports = { 3456 getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { 3457 var C = wrapper(function (that, iterable) { 3458 anInstance(that, C, NAME, '_i'); 3459 that._t = NAME; 3460 that._i = id++; 3461 that._l = undefined; 3462 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 3463 }); 3464 redefineAll(C.prototype, { 3465 'delete': function _delete(key) { 3466 if (!isObject(key)) return false; 3467 var data = getWeak(key); 3468 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); 3469 return data && $has(data, this._i) && delete data[this._i]; 3470 }, 3471 has: function has(key) { 3472 if (!isObject(key)) return false; 3473 var data = getWeak(key); 3474 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); 3475 return data && $has(data, this._i); 3476 } 3477 }); 3478 return C; 3479 }, 3480 def: function def(that, key, value) { 3481 var data = getWeak(anObject(key), true); 3482 if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; 3483 return that; 3484 }, 3485 ufstore: uncaughtFrozenStore 3486}; 3487 3488/***/ }), 3489/* 102 */ 3490/***/ (function(module, exports, __w_pdfjs_require__) { 3491 3492"use strict"; 3493 3494 3495var isObject = __w_pdfjs_require__(13); 3496module.exports = function (it, TYPE) { 3497 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); 3498 return it; 3499}; 3500 3501/***/ }), 3502/* 103 */ 3503/***/ (function(module, exports, __w_pdfjs_require__) { 3504 3505"use strict"; 3506 3507 3508var global = __w_pdfjs_require__(8); 3509var $export = __w_pdfjs_require__(7); 3510var redefine = __w_pdfjs_require__(20); 3511var redefineAll = __w_pdfjs_require__(89); 3512var meta = __w_pdfjs_require__(100); 3513var forOf = __w_pdfjs_require__(77); 3514var anInstance = __w_pdfjs_require__(76); 3515var isObject = __w_pdfjs_require__(13); 3516var fails = __w_pdfjs_require__(16); 3517var $iterDetect = __w_pdfjs_require__(91); 3518var setToStringTag = __w_pdfjs_require__(70); 3519var inheritIfRequired = __w_pdfjs_require__(104); 3520module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { 3521 var Base = global[NAME]; 3522 var C = Base; 3523 var ADDER = IS_MAP ? 'set' : 'add'; 3524 var proto = C && C.prototype; 3525 var O = {}; 3526 var fixMethod = function fixMethod(KEY) { 3527 var fn = proto[KEY]; 3528 redefine(proto, KEY, KEY == 'delete' ? function (a) { 3529 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 3530 } : KEY == 'has' ? function has(a) { 3531 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 3532 } : KEY == 'get' ? function get(a) {
vendor: 4,490 bytes, lines 3533-3705
3533 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); 3534 } : KEY == 'add' ? function add(a) { 3535 fn.call(this, a === 0 ? 0 : a); 3536 return this; 3537 } : function set(a, b) { 3538 fn.call(this, a === 0 ? 0 : a, b); 3539 return this; 3540 }); 3541 }; 3542 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { 3543 new C().entries().next(); 3544 }))) { 3545 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); 3546 redefineAll(C.prototype, methods); 3547 meta.NEED = true; 3548 } else { 3549 var instance = new C(); 3550 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; 3551 var THROWS_ON_PRIMITIVES = fails(function () { 3552 instance.has(1); 3553 }); 3554 var ACCEPT_ITERABLES = $iterDetect(function (iter) { 3555 new C(iter); 3556 }); 3557 var BUGGY_ZERO = !IS_WEAK && fails(function () { 3558 var $instance = new C(); 3559 var index = 5; 3560 while (index--) { 3561 $instance[ADDER](index, index); 3562 }return !$instance.has(-0); 3563 }); 3564 if (!ACCEPT_ITERABLES) { 3565 C = wrapper(function (target, iterable) { 3566 anInstance(target, C, NAME); 3567 var that = inheritIfRequired(new Base(), target, C); 3568 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 3569 return that; 3570 }); 3571 C.prototype = proto; 3572 proto.constructor = C; 3573 } 3574 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { 3575 fixMethod('delete'); 3576 fixMethod('has'); 3577 IS_MAP && fixMethod('get'); 3578 } 3579 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); 3580 if (IS_WEAK && proto.clear) delete proto.clear; 3581 } 3582 setToStringTag(C, NAME); 3583 O[NAME] = C; 3584 $export($export.G + $export.W + $export.F * (C != Base), O); 3585 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); 3586 return C; 3587}; 3588 3589/***/ }), 3590/* 104 */ 3591/***/ (function(module, exports, __w_pdfjs_require__) { 3592 3593"use strict"; 3594 3595 3596var isObject = __w_pdfjs_require__(13); 3597var setPrototypeOf = __w_pdfjs_require__(105).set; 3598module.exports = function (that, target, C) { 3599 var S = target.constructor; 3600 var P; 3601 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { 3602 setPrototypeOf(that, P); 3603 } 3604 return that; 3605}; 3606 3607/***/ }), 3608/* 105 */ 3609/***/ (function(module, exports, __w_pdfjs_require__) { 3610 3611"use strict"; 3612 3613 3614var isObject = __w_pdfjs_require__(13); 3615var anObject = __w_pdfjs_require__(12); 3616var check = function check(O, proto) { 3617 anObject(O); 3618 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 3619}; 3620module.exports = { 3621 set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { 3622 try { 3623 set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(106).f(Object.prototype, '__proto__').set, 2); 3624 set(test, []); 3625 buggy = !(test instanceof Array); 3626 } catch (e) { 3627 buggy = true; 3628 } 3629 return function setPrototypeOf(O, proto) { 3630 check(O, proto); 3631 if (buggy) O.__proto__ = proto;else set(O, proto); 3632 return O; 3633 }; 3634 }({}, false) : undefined), 3635 check: check 3636}; 3637 3638/***/ }), 3639/* 106 */ 3640/***/ (function(module, exports, __w_pdfjs_require__) { 3641 3642"use strict"; 3643 3644 3645var pIE = __w_pdfjs_require__(50); 3646var createDesc = __w_pdfjs_require__(19); 3647var toIObject = __w_pdfjs_require__(36); 3648var toPrimitive = __w_pdfjs_require__(18); 3649var has = __w_pdfjs_require__(21); 3650var IE8_DOM_DEFINE = __w_pdfjs_require__(14); 3651var gOPD = Object.getOwnPropertyDescriptor; 3652exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { 3653 O = toIObject(O); 3654 P = toPrimitive(P, true); 3655 if (IE8_DOM_DEFINE) try { 3656 return gOPD(O, P); 3657 } catch (e) {} 3658 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 3659}; 3660 3661/***/ }), 3662/* 107 */ 3663/***/ (function(module, exports, __w_pdfjs_require__) { 3664 3665"use strict"; 3666 3667 3668__w_pdfjs_require__(108)('WeakMap'); 3669 3670/***/ }), 3671/* 108 */ 3672/***/ (function(module, exports, __w_pdfjs_require__) { 3673 3674"use strict"; 3675 3676 3677var $export = __w_pdfjs_require__(7); 3678module.exports = function (COLLECTION) { 3679 $export($export.S, COLLECTION, { 3680 of: function of() { 3681 var length = arguments.length; 3682 var A = new Array(length); 3683 while (length--) { 3684 A[length] = arguments[length]; 3685 }return new this(A); 3686 } 3687 }); 3688}; 3689 3690/***/ }), 3691/* 109 */ 3692/***/ (function(module, exports, __w_pdfjs_require__) { 3693 3694"use strict"; 3695 3696 3697__w_pdfjs_require__(110)('WeakMap'); 3698 3699/***/ }), 3700/* 110 */ 3701/***/ (function(module, exports, __w_pdfjs_require__) { 3702 3703"use strict"; 3704 3705
3706var $export = __w_pdfjs_require__(7); 3707var aFunction = __w_pdfjs_require__(24); 3708var ctx = __w_pdfjs_require__(23); 3709var forOf = __w_pdfjs_require__(77); 3710module.exports = function (COLLECTION) { 3711 $export($export.S, COLLECTION, { 3712 from: function from(source) { 3713 var mapFn = arguments[1]; 3714 var mapping, A, n, cb; 3715 aFunction(this); 3716 mapping = mapFn !== undefined; 3717 if (mapping) aFunction(mapFn); 3718 if (source == undefined) return new this(); 3719 A = []; 3720 if (mapping) { 3721 n = 0; 3722 cb = ctx(mapFn, arguments[2], 2); 3723 forOf(source, false, function (nextItem) { 3724 A.push(cb(nextItem, n++)); 3725 }); 3726 } else { 3727 forOf(source, false, A.push, A); 3728 } 3729 return new this(A); 3730 } 3731 }); 3732}; 3733 3734/***/ }), 3735/* 111 */ 3736/***/ (function(module, exports, __w_pdfjs_require__) { 3737 3738"use strict"; 3739 3740 3741__w_pdfjs_require__(112); 3742module.exports = __w_pdfjs_require__(9).String.codePointAt; 3743 3744/***/ }), 3745/* 112 */ 3746/***/ (function(module, exports, __w_pdfjs_require__) { 3747 3748"use strict"; 3749 3750 3751var $export = __w_pdfjs_require__(7); 3752var $at = __w_pdfjs_require__(63)(false); 3753$export($export.P, 'String', { 3754 codePointAt: function codePointAt(pos) { 3755 return $at(this, pos); 3756 } 3757}); 3758 3759/***/ }), 3760/* 113 */ 3761/***/ (function(module, exports, __w_pdfjs_require__) { 3762 3763"use strict"; 3764 3765 3766__w_pdfjs_require__(114); 3767module.exports = __w_pdfjs_require__(9).String.fromCodePoint; 3768 3769/***/ }), 3770/* 114 */ 3771/***/ (function(module, exports, __w_pdfjs_require__) { 3772 3773"use strict"; 3774 3775 3776var $export = __w_pdfjs_require__(7); 3777var toAbsoluteIndex = __w_pdfjs_require__(40); 3778var fromCharCode = String.fromCharCode; 3779var $fromCodePoint = String.fromCodePoint; 3780$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { 3781 fromCodePoint: function fromCodePoint(x) { 3782 var res = []; 3783 var aLen = arguments.length; 3784 var i = 0; 3785 var code; 3786 while (aLen > i) { 3787 code = +arguments[i++]; 3788 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); 3789 res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); 3790 } 3791 return res.join(''); 3792 } 3793}); 3794 3795/***/ }), 3796/* 115 */ 3797/***/ (function(module, exports, __w_pdfjs_require__) { 3798 3799"use strict"; 3800 3801 3802__w_pdfjs_require__(116); 3803__w_pdfjs_require__(60); 3804module.exports = __w_pdfjs_require__(9).Symbol; 3805 3806/***/ }), 3807/* 116 */ 3808/***/ (function(module, exports, __w_pdfjs_require__) { 3809 3810"use strict"; 3811 3812 3813var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 3814 3815var global = __w_pdfjs_require__(8); 3816var has = __w_pdfjs_require__(21); 3817var DESCRIPTORS = __w_pdfjs_require__(15); 3818var $export = __w_pdfjs_require__(7); 3819var redefine = __w_pdfjs_require__(20); 3820var META = __w_pdfjs_require__(100).KEY; 3821var $fails = __w_pdfjs_require__(16); 3822var shared = __w_pdfjs_require__(29); 3823var setToStringTag = __w_pdfjs_require__(70); 3824var uid = __w_pdfjs_require__(22); 3825var wks = __w_pdfjs_require__(28); 3826var wksExt = __w_pdfjs_require__(117); 3827var wksDefine = __w_pdfjs_require__(118); 3828var enumKeys = __w_pdfjs_require__(119); 3829var isArray = __w_pdfjs_require__(99); 3830var anObject = __w_pdfjs_require__(12); 3831var isObject = __w_pdfjs_require__(13); 3832var toIObject = __w_pdfjs_require__(36); 3833var toPrimitive = __w_pdfjs_require__(18); 3834var createDesc = __w_pdfjs_require__(19); 3835var _create = __w_pdfjs_require__(67); 3836var gOPNExt = __w_pdfjs_require__(120); 3837var $GOPD = __w_pdfjs_require__(106); 3838var $DP = __w_pdfjs_require__(11); 3839var $keys = __w_pdfjs_require__(45); 3840var gOPD = $GOPD.f; 3841var dP = $DP.f; 3842var gOPN = gOPNExt.f; 3843var $Symbol = global.Symbol; 3844var $JSON = global.JSON; 3845var _stringify = $JSON && $JSON.stringify; 3846var PROTOTYPE = 'prototype'; 3847var HIDDEN = wks('_hidden'); 3848var TO_PRIMITIVE = wks('toPrimitive'); 3849var isEnum = {}.propertyIsEnumerable; 3850var SymbolRegistry = shared('symbol-registry'); 3851var AllSymbols = shared('symbols');
vendor: 9,271 bytes, lines 3852-4132
3852var OPSymbols = shared('op-symbols'); 3853var ObjectProto = Object[PROTOTYPE]; 3854var USE_NATIVE = typeof $Symbol == 'function'; 3855var QObject = global.QObject; 3856var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 3857var setSymbolDesc = DESCRIPTORS && $fails(function () { 3858 return _create(dP({}, 'a', { 3859 get: function get() { 3860 return dP(this, 'a', { value: 7 }).a; 3861 } 3862 })).a != 7; 3863}) ? function (it, key, D) { 3864 var protoDesc = gOPD(ObjectProto, key); 3865 if (protoDesc) delete ObjectProto[key]; 3866 dP(it, key, D); 3867 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 3868} : dP; 3869var wrap = function wrap(tag) { 3870 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 3871 sym._k = tag; 3872 return sym; 3873}; 3874var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { 3875 return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol'; 3876} : function (it) { 3877 return it instanceof $Symbol; 3878}; 3879var $defineProperty = function defineProperty(it, key, D) { 3880 if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 3881 anObject(it); 3882 key = toPrimitive(key, true); 3883 anObject(D); 3884 if (has(AllSymbols, key)) { 3885 if (!D.enumerable) { 3886 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 3887 it[HIDDEN][key] = true; 3888 } else { 3889 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 3890 D = _create(D, { enumerable: createDesc(0, false) }); 3891 } 3892 return setSymbolDesc(it, key, D); 3893 } 3894 return dP(it, key, D); 3895}; 3896var $defineProperties = function defineProperties(it, P) { 3897 anObject(it); 3898 var keys = enumKeys(P = toIObject(P)); 3899 var i = 0; 3900 var l = keys.length; 3901 var key; 3902 while (l > i) { 3903 $defineProperty(it, key = keys[i++], P[key]); 3904 }return it; 3905}; 3906var $create = function create(it, P) { 3907 return P === undefined ? _create(it) : $defineProperties(_create(it), P); 3908}; 3909var $propertyIsEnumerable = function propertyIsEnumerable(key) { 3910 var E = isEnum.call(this, key = toPrimitive(key, true)); 3911 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 3912 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 3913}; 3914var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 3915 it = toIObject(it); 3916 key = toPrimitive(key, true); 3917 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 3918 var D = gOPD(it, key); 3919 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 3920 return D; 3921}; 3922var $getOwnPropertyNames = function getOwnPropertyNames(it) { 3923 var names = gOPN(toIObject(it)); 3924 var result = []; 3925 var i = 0; 3926 var key; 3927 while (names.length > i) { 3928 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 3929 } 3930 return result; 3931}; 3932var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 3933 var IS_OP = it === ObjectProto; 3934 var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 3935 var result = []; 3936 var i = 0; 3937 var key; 3938 while (names.length > i) { 3939 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 3940 } 3941 return result; 3942}; 3943if (!USE_NATIVE) { 3944 $Symbol = function _Symbol() { 3945 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 3946 var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 3947 var $set = function $set(value) { 3948 if (this === ObjectProto) $set.call(OPSymbols, value); 3949 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 3950 setSymbolDesc(this, tag, createDesc(1, value)); 3951 }; 3952 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { 3953 configurable: true, 3954 set: $set 3955 }); 3956 return wrap(tag); 3957 }; 3958 redefine($Symbol[PROTOTYPE], 'toString', function toString() { 3959 return this._k; 3960 }); 3961 $GOPD.f = $getOwnPropertyDescriptor; 3962 $DP.f = $defineProperty; 3963 __w_pdfjs_require__(121).f = gOPNExt.f = $getOwnPropertyNames; 3964 __w_pdfjs_require__(50).f = $propertyIsEnumerable; 3965 __w_pdfjs_require__(49).f = $getOwnPropertySymbols; 3966 if (DESCRIPTORS && !__w_pdfjs_require__(30)) { 3967 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 3968 } 3969 wksExt.f = function (name) { 3970 return wrap(wks(name)); 3971 }; 3972} 3973$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); 3974for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { 3975 wks(es6Symbols[j++]); 3976}for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { 3977 wksDefine(wellKnownSymbols[k++]); 3978}$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 3979 'for': function _for(key) { 3980 return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); 3981 }, 3982 keyFor: function keyFor(sym) { 3983 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 3984 for (var key in SymbolRegistry) { 3985 if (SymbolRegistry[key] === sym) return key; 3986 } 3987 }, 3988 useSetter: function useSetter() { 3989 setter = true; 3990 }, 3991 useSimple: function useSimple() { 3992 setter = false; 3993 } 3994}); 3995$export($export.S + $export.F * !USE_NATIVE, 'Object', { 3996 create: $create, 3997 defineProperty: $defineProperty, 3998 defineProperties: $defineProperties, 3999 getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 4000 getOwnPropertyNames: $getOwnPropertyNames, 4001 getOwnPropertySymbols: $getOwnPropertySymbols 4002}); 4003$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 4004 var S = $Symbol(); 4005 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; 4006})), 'JSON', { 4007 stringify: function stringify(it) { 4008 var args = [it]; 4009 var i = 1; 4010 var replacer, $replacer; 4011 while (arguments.length > i) { 4012 args.push(arguments[i++]); 4013 }$replacer = replacer = args[1]; 4014 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; 4015 if (!isArray(replacer)) replacer = function replacer(key, value) { 4016 if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 4017 if (!isSymbol(value)) return value; 4018 }; 4019 args[1] = replacer; 4020 return _stringify.apply($JSON, args); 4021 } 4022}); 4023$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 4024setToStringTag($Symbol, 'Symbol'); 4025setToStringTag(Math, 'Math', true); 4026setToStringTag(global.JSON, 'JSON', true); 4027 4028/***/ }), 4029/* 117 */ 4030/***/ (function(module, exports, __w_pdfjs_require__) { 4031 4032"use strict"; 4033 4034 4035exports.f = __w_pdfjs_require__(28); 4036 4037/***/ }), 4038/* 118 */ 4039/***/ (function(module, exports, __w_pdfjs_require__) { 4040 4041"use strict"; 4042 4043 4044var global = __w_pdfjs_require__(8); 4045var core = __w_pdfjs_require__(9); 4046var LIBRARY = __w_pdfjs_require__(30); 4047var wksExt = __w_pdfjs_require__(117); 4048var defineProperty = __w_pdfjs_require__(11).f; 4049module.exports = function (name) { 4050 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 4051 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); 4052}; 4053 4054/***/ }), 4055/* 119 */ 4056/***/ (function(module, exports, __w_pdfjs_require__) { 4057 4058"use strict"; 4059 4060 4061var getKeys = __w_pdfjs_require__(45); 4062var gOPS = __w_pdfjs_require__(49); 4063var pIE = __w_pdfjs_require__(50); 4064module.exports = function (it) { 4065 var result = getKeys(it); 4066 var getSymbols = gOPS.f; 4067 if (getSymbols) { 4068 var symbols = getSymbols(it); 4069 var isEnum = pIE.f; 4070 var i = 0; 4071 var key; 4072 while (symbols.length > i) { 4073 if (isEnum.call(it, key = symbols[i++])) result.push(key); 4074 } 4075 } 4076 return result; 4077}; 4078 4079/***/ }), 4080/* 120 */ 4081/***/ (function(module, exports, __w_pdfjs_require__) { 4082 4083"use strict"; 4084 4085 4086var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 4087 4088var toIObject = __w_pdfjs_require__(36); 4089var gOPN = __w_pdfjs_require__(121).f; 4090var toString = {}.toString; 4091var windowNames = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; 4092var getWindowNames = function getWindowNames(it) { 4093 try { 4094 return gOPN(it); 4095 } catch (e) { 4096 return windowNames.slice(); 4097 } 4098}; 4099module.exports.f = function getOwnPropertyNames(it) { 4100 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 4101}; 4102 4103/***/ }), 4104/* 121 */ 4105/***/ (function(module, exports, __w_pdfjs_require__) { 4106 4107"use strict"; 4108 4109 4110var $keys = __w_pdfjs_require__(46); 4111var hiddenKeys = __w_pdfjs_require__(48).concat('length', 'prototype'); 4112exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 4113 return $keys(O, hiddenKeys); 4114}; 4115 4116/***/ }), 4117/* 122 */ 4118/***/ (function(module, exports, __w_pdfjs_require__) { 4119 4120"use strict"; 4121 4122 4123__w_pdfjs_require__(123); 4124module.exports = __w_pdfjs_require__(9).Object.values; 4125 4126/***/ }), 4127/* 123 */ 4128/***/ (function(module, exports, __w_pdfjs_require__) { 4129 4130"use strict"; 4131 4132
4133var $export = __w_pdfjs_require__(7); 4134var $values = __w_pdfjs_require__(124)(false); 4135$export($export.S, 'Object', { 4136 values: function values(it) { 4137 return $values(it); 4138 } 4139}); 4140 4141/***/ }), 4142/* 124 */ 4143/***/ (function(module, exports, __w_pdfjs_require__) { 4144 4145"use strict"; 4146 4147 4148var getKeys = __w_pdfjs_require__(45); 4149var toIObject = __w_pdfjs_require__(36); 4150var isEnum = __w_pdfjs_require__(50).f; 4151module.exports = function (isEntries) { 4152 return function (it) { 4153 var O = toIObject(it); 4154 var keys = getKeys(O); 4155 var length = keys.length; 4156 var i = 0; 4157 var result = []; 4158 var key; 4159 while (length > i) { 4160 if (isEnum.call(O, key = keys[i++])) { 4161 result.push(isEntries ? [key, O[key]] : O[key]); 4162 } 4163 }return result; 4164 }; 4165}; 4166 4167/***/ }), 4168/* 125 */ 4169/***/ (function(module, exports, __w_pdfjs_require__) { 4170 4171"use strict"; 4172 4173 4174var isReadableStreamSupported = false; 4175if (typeof ReadableStream !== 'undefined') { 4176 try { 4177 new ReadableStream({ 4178 start: function start(controller) { 4179 controller.close(); 4180 } 4181 }); 4182 isReadableStreamSupported = true; 4183 } catch (e) {} 4184} 4185if (isReadableStreamSupported) { 4186 exports.ReadableStream = ReadableStream; 4187} else { 4188 exports.ReadableStream = __w_pdfjs_require__(126).ReadableStream; 4189} 4190 4191/***/ }), 4192/* 126 */ 4193/***/ (function(module, exports, __w_pdfjs_require__) { 4194 4195"use strict"; 4196 4197 4198var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 4199 4200(function (e, a) { 4201 for (var i in a) { 4202 e[i] = a[i]; 4203 } 4204})(exports, function (modules) { 4205 var installedModules = {}; 4206 function __w_pdfjs_require__(moduleId) { 4207 if (installedModules[moduleId]) return installedModules[moduleId].exports; 4208 var module = installedModules[moduleId] = { 4209 i: moduleId, 4210 l: false, 4211 exports: {} 4212 }; 4213 modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); 4214 module.l = true; 4215 return module.exports; 4216 } 4217 __w_pdfjs_require__.m = modules; 4218 __w_pdfjs_require__.c = installedModules; 4219 __w_pdfjs_require__.i = function (value) { 4220 return value; 4221 }; 4222 __w_pdfjs_require__.d = function (exports, name, getter) { 4223 if (!__w_pdfjs_require__.o(exports, name)) { 4224 Object.defineProperty(exports, name, { 4225 configurable: false, 4226 enumerable: true, 4227 get: getter 4228 }); 4229 } 4230 }; 4231 __w_pdfjs_require__.n = function (module) { 4232 var getter = module && module.__esModule ? function getDefault() { 4233 return module['default']; 4234 } : function getModuleExports() { 4235 return module; 4236 }; 4237 __w_pdfjs_require__.d(getter, 'a', getter); 4238 return getter; 4239 }; 4240 __w_pdfjs_require__.o = function (object, property) { 4241 return Object.prototype.hasOwnProperty.call(object, property); 4242 }; 4243 __w_pdfjs_require__.p = ""; 4244 return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); 4245}([function (module, exports, __w_pdfjs_require__) { 4246 "use strict"; 4247 4248 var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { 4249 return typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); 4250 } : function (obj) { 4251 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === 'undefined' ? 'undefined' : _typeof2(obj); 4252 }; 4253 var _require = __w_pdfjs_require__(1), 4254 assert = _require.assert; 4255 function IsPropertyKey(argument) { 4256 return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; 4257 } 4258 exports.typeIsObject = function (x) { 4259 return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; 4260 }; 4261 exports.createDataProperty = function (o, p, v) { 4262 assert(exports.typeIsObject(o)); 4263 Object.defineProperty(o, p, { 4264 value: v, 4265 writable: true, 4266 enumerable: true, 4267 configurable: true 4268 }); 4269 }; 4270 exports.createArrayFromList = function (elements) { 4271 return elements.slice(); 4272 };
4273 exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { 4274 new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); 4275 }; 4276 exports.CreateIterResultObject = function (value, done) { 4277 assert(typeof done === 'boolean'); 4278 var obj = {}; 4279 Object.defineProperty(obj, 'value', { 4280 value: value, 4281 enumerable: true, 4282 writable: true, 4283 configurable: true 4284 }); 4285 Object.defineProperty(obj, 'done', { 4286 value: done, 4287 enumerable: true, 4288 writable: true, 4289 configurable: true 4290 }); 4291 return obj; 4292 }; 4293 exports.IsFiniteNonNegativeNumber = function (v) { 4294 if (Number.isNaN(v)) { 4295 return false; 4296 } 4297 if (v === Infinity) { 4298 return false; 4299 } 4300 if (v < 0) { 4301 return false; 4302 } 4303 return true; 4304 }; 4305 function Call(F, V, args) { 4306 if (typeof F !== 'function') { 4307 throw new TypeError('Argument is not a function'); 4308 } 4309 return Function.prototype.apply.call(F, V, args); 4310 } 4311 exports.InvokeOrNoop = function (O, P, args) { 4312 assert(O !== undefined); 4313 assert(IsPropertyKey(P)); 4314 assert(Array.isArray(args)); 4315 var method = O[P]; 4316 if (method === undefined) { 4317 return undefined; 4318 } 4319 return Call(method, O, args); 4320 }; 4321 exports.PromiseInvokeOrNoop = function (O, P, args) { 4322 assert(O !== undefined); 4323 assert(IsPropertyKey(P)); 4324 assert(Array.isArray(args)); 4325 try { 4326 return Promise.resolve(exports.InvokeOrNoop(O, P, args)); 4327 } catch (returnValueE) { 4328 return Promise.reject(returnValueE); 4329 } 4330 }; 4331 exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { 4332 assert(O !== undefined); 4333 assert(IsPropertyKey(P)); 4334 assert(Array.isArray(args)); 4335 assert(Array.isArray(argsF)); 4336 var method = void 0; 4337 try { 4338 method = O[P]; 4339 } catch (methodE) { 4340 return Promise.reject(methodE); 4341 } 4342 if (method === undefined) { 4343 return F.apply(null, argsF); 4344 } 4345 try { 4346 return Promise.resolve(Call(method, O, args)); 4347 } catch (e) { 4348 return Promise.reject(e); 4349 } 4350 }; 4351 exports.TransferArrayBuffer = function (O) { 4352 return O.slice(); 4353 }; 4354 exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { 4355 highWaterMark = Number(highWaterMark); 4356 if (Number.isNaN(highWaterMark) || highWaterMark < 0) { 4357 throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); 4358 } 4359 return highWaterMark; 4360 }; 4361 exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { 4362 if (size !== undefined && typeof size !== 'function') { 4363 throw new TypeError('size property of a queuing strategy must be a function'); 4364 } 4365 highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); 4366 return { 4367 size: size, 4368 highWaterMark: highWaterMark 4369 }; 4370 }; 4371}, function (module, exports, __w_pdfjs_require__) { 4372 "use strict"; 4373 4374 function rethrowAssertionErrorRejection(e) { 4375 if (e && e.constructor === AssertionError) { 4376 setTimeout(function () { 4377 throw e; 4378 }, 0); 4379 } 4380 } 4381 function AssertionError(message) { 4382 this.name = 'AssertionError'; 4383 this.message = message || ''; 4384 this.stack = new Error().stack; 4385 } 4386 AssertionError.prototype = Object.create(Error.prototype); 4387 AssertionError.prototype.constructor = AssertionError; 4388 function assert(value, message) { 4389 if (!value) { 4390 throw new AssertionError(message); 4391 } 4392 } 4393 module.exports = { 4394 rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, 4395 AssertionError: AssertionError, 4396 assert: assert 4397 }; 4398}, function (module, exports, __w_pdfjs_require__) { 4399 "use strict"; 4400 4401 var _createClass = function () { 4402 function defineProperties(target, props) { 4403 for (var i = 0; i < props.length; i++) { 4404 var descriptor = props[i]; 4405 descriptor.enumerable = descriptor.enumerable || false; 4406 descriptor.configurable = true; 4407 if ("value" in descriptor) descriptor.writable = true; 4408 Object.defineProperty(target, descriptor.key, descriptor); 4409 } 4410 } 4411 return function (Constructor, protoProps, staticProps) { 4412 if (protoProps) defineProperties(Constructor.prototype, protoProps); 4413 if (staticProps) defineProperties(Constructor, staticProps); 4414 return Constructor; 4415 }; 4416 }(); 4417 function _classCallCheck(instance, Constructor) { 4418 if (!(instance instanceof Constructor)) { 4419 throw new TypeError("Cannot call a class as a function"); 4420 } 4421 } 4422 var _require = __w_pdfjs_require__(0), 4423 InvokeOrNoop = _require.InvokeOrNoop, 4424 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 4425 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 4426 typeIsObject = _require.typeIsObject; 4427 var _require2 = __w_pdfjs_require__(1), 4428 assert = _require2.assert, 4429 rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; 4430 var _require3 = __w_pdfjs_require__(3), 4431 DequeueValue = _require3.DequeueValue, 4432 EnqueueValueWithSize = _require3.EnqueueValueWithSize, 4433 PeekQueueValue = _require3.PeekQueueValue, 4434 ResetQueue = _require3.ResetQueue; 4435 var WritableStream = function () { 4436 function WritableStream() { 4437 var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 4438 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 4439 size = _ref.size, 4440 _ref$highWaterMark = _ref.highWaterMark, 4441 highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; 4442 _classCallCheck(this, WritableStream); 4443 this._state = 'writable'; 4444 this._storedError = undefined; 4445 this._writer = undefined; 4446 this._writableStreamController = undefined; 4447 this._writeRequests = []; 4448 this._inFlightWriteRequest = undefined; 4449 this._closeRequest = undefined; 4450 this._inFlightCloseRequest = undefined; 4451 this._pendingAbortRequest = undefined; 4452 this._backpressure = false;
4453 var type = underlyingSink.type; 4454 if (type !== undefined) { 4455 throw new RangeError('Invalid type is specified'); 4456 } 4457 this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); 4458 this._writableStreamController.__startSteps(); 4459 } 4460 _createClass(WritableStream, [{ 4461 key: 'abort', 4462 value: function abort(reason) { 4463 if (IsWritableStream(this) === false) { 4464 return Promise.reject(streamBrandCheckException('abort')); 4465 } 4466 if (IsWritableStreamLocked(this) === true) { 4467 return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); 4468 } 4469 return WritableStreamAbort(this, reason); 4470 } 4471 }, { 4472 key: 'getWriter', 4473 value: function getWriter() { 4474 if (IsWritableStream(this) === false) { 4475 throw streamBrandCheckException('getWriter'); 4476 } 4477 return AcquireWritableStreamDefaultWriter(this); 4478 } 4479 }, { 4480 key: 'locked', 4481 get: function get() { 4482 if (IsWritableStream(this) === false) { 4483 throw streamBrandCheckException('locked'); 4484 } 4485 return IsWritableStreamLocked(this); 4486 } 4487 }]); 4488 return WritableStream; 4489 }(); 4490 module.exports = { 4491 AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, 4492 IsWritableStream: IsWritableStream, 4493 IsWritableStreamLocked: IsWritableStreamLocked, 4494 WritableStream: WritableStream, 4495 WritableStreamAbort: WritableStreamAbort, 4496 WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, 4497 WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, 4498 WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, 4499 WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, 4500 WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight 4501 }; 4502 function AcquireWritableStreamDefaultWriter(stream) { 4503 return new WritableStreamDefaultWriter(stream); 4504 } 4505 function IsWritableStream(x) { 4506 if (!typeIsObject(x)) { 4507 return false; 4508 } 4509 if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { 4510 return false; 4511 } 4512 return true; 4513 } 4514 function IsWritableStreamLocked(stream) { 4515 assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); 4516 if (stream._writer === undefined) { 4517 return false; 4518 } 4519 return true; 4520 } 4521 function WritableStreamAbort(stream, reason) { 4522 var state = stream._state; 4523 if (state === 'closed') { 4524 return Promise.resolve(undefined); 4525 } 4526 if (state === 'errored') { 4527 return Promise.reject(stream._storedError); 4528 } 4529 var error = new TypeError('Requested to abort'); 4530 if (stream._pendingAbortRequest !== undefined) { 4531 return Promise.reject(error); 4532 } 4533 assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); 4534 var wasAlreadyErroring = false; 4535 if (state === 'erroring') { 4536 wasAlreadyErroring = true; 4537 reason = undefined; 4538 } 4539 var promise = new Promise(function (resolve, reject) { 4540 stream._pendingAbortRequest = { 4541 _resolve: resolve, 4542 _reject: reject, 4543 _reason: reason, 4544 _wasAlreadyErroring: wasAlreadyErroring 4545 }; 4546 }); 4547 if (wasAlreadyErroring === false) { 4548 WritableStreamStartErroring(stream, error); 4549 } 4550 return promise; 4551 } 4552 function WritableStreamAddWriteRequest(stream) { 4553 assert(IsWritableStreamLocked(stream) === true); 4554 assert(stream._state === 'writable'); 4555 var promise = new Promise(function (resolve, reject) { 4556 var writeRequest = { 4557 _resolve: resolve, 4558 _reject: reject 4559 }; 4560 stream._writeRequests.push(writeRequest); 4561 }); 4562 return promise; 4563 } 4564 function WritableStreamDealWithRejection(stream, error) { 4565 var state = stream._state; 4566 if (state === 'writable') { 4567 WritableStreamStartErroring(stream, error); 4568 return; 4569 } 4570 assert(state === 'erroring'); 4571 WritableStreamFinishErroring(stream); 4572 } 4573 function WritableStreamStartErroring(stream, reason) { 4574 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 4575 assert(stream._state === 'writable', 'state must be writable'); 4576 var controller = stream._writableStreamController; 4577 assert(controller !== undefined, 'controller must not be undefined'); 4578 stream._state = 'erroring';
4579 stream._storedError = reason; 4580 var writer = stream._writer; 4581 if (writer !== undefined) { 4582 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); 4583 } 4584 if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { 4585 WritableStreamFinishErroring(stream); 4586 } 4587 } 4588 function WritableStreamFinishErroring(stream) { 4589 assert(stream._state === 'erroring', 'stream._state === erroring'); 4590 assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); 4591 stream._state = 'errored'; 4592 stream._writableStreamController.__errorSteps(); 4593 var storedError = stream._storedError; 4594 for (var i = 0; i < stream._writeRequests.length; i++) { 4595 var writeRequest = stream._writeRequests[i]; 4596 writeRequest._reject(storedError); 4597 } 4598 stream._writeRequests = []; 4599 if (stream._pendingAbortRequest === undefined) { 4600 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4601 return; 4602 } 4603 var abortRequest = stream._pendingAbortRequest; 4604 stream._pendingAbortRequest = undefined; 4605 if (abortRequest._wasAlreadyErroring === true) { 4606 abortRequest._reject(storedError); 4607 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4608 return; 4609 } 4610 var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); 4611 promise.then(function () { 4612 abortRequest._resolve(); 4613 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4614 }, function (reason) { 4615 abortRequest._reject(reason); 4616 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); 4617 }); 4618 } 4619 function WritableStreamFinishInFlightWrite(stream) { 4620 assert(stream._inFlightWriteRequest !== undefined); 4621 stream._inFlightWriteRequest._resolve(undefined); 4622 stream._inFlightWriteRequest = undefined; 4623 } 4624 function WritableStreamFinishInFlightWriteWithError(stream, error) { 4625 assert(stream._inFlightWriteRequest !== undefined); 4626 stream._inFlightWriteRequest._reject(error); 4627 stream._inFlightWriteRequest = undefined; 4628 assert(stream._state === 'writable' || stream._state === 'erroring'); 4629 WritableStreamDealWithRejection(stream, error); 4630 } 4631 function WritableStreamFinishInFlightClose(stream) { 4632 assert(stream._inFlightCloseRequest !== undefined); 4633 stream._inFlightCloseRequest._resolve(undefined); 4634 stream._inFlightCloseRequest = undefined; 4635 var state = stream._state; 4636 assert(state === 'writable' || state === 'erroring'); 4637 if (state === 'erroring') { 4638 stream._storedError = undefined; 4639 if (stream._pendingAbortRequest !== undefined) { 4640 stream._pendingAbortRequest._resolve(); 4641 stream._pendingAbortRequest = undefined; 4642 } 4643 } 4644 stream._state = 'closed'; 4645 var writer = stream._writer; 4646 if (writer !== undefined) { 4647 defaultWriterClosedPromiseResolve(writer); 4648 } 4649 assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); 4650 assert(stream._storedError === undefined, 'stream._storedError === undefined'); 4651 } 4652 function WritableStreamFinishInFlightCloseWithError(stream, error) { 4653 assert(stream._inFlightCloseRequest !== undefined); 4654 stream._inFlightCloseRequest._reject(error); 4655 stream._inFlightCloseRequest = undefined; 4656 assert(stream._state === 'writable' || stream._state === 'erroring'); 4657 if (stream._pendingAbortRequest !== undefined) { 4658 stream._pendingAbortRequest._reject(error); 4659 stream._pendingAbortRequest = undefined; 4660 } 4661 WritableStreamDealWithRejection(stream, error); 4662 } 4663 function WritableStreamCloseQueuedOrInFlight(stream) { 4664 if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { 4665 return false; 4666 } 4667 return true; 4668 } 4669 function WritableStreamHasOperationMarkedInFlight(stream) { 4670 if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { 4671 return false; 4672 } 4673 return true; 4674 } 4675 function WritableStreamMarkCloseRequestInFlight(stream) { 4676 assert(stream._inFlightCloseRequest === undefined); 4677 assert(stream._closeRequest !== undefined); 4678 stream._inFlightCloseRequest = stream._closeRequest; 4679 stream._closeRequest = undefined; 4680 } 4681 function WritableStreamMarkFirstWriteRequestInFlight(stream) { 4682 assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); 4683 assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); 4684 stream._inFlightWriteRequest = stream._writeRequests.shift(); 4685 } 4686 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { 4687 assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); 4688 if (stream._closeRequest !== undefined) { 4689 assert(stream._inFlightCloseRequest === undefined); 4690 stream._closeRequest._reject(stream._storedError); 4691 stream._closeRequest = undefined; 4692 } 4693 var writer = stream._writer; 4694 if (writer !== undefined) { 4695 defaultWriterClosedPromiseReject(writer, stream._storedError); 4696 writer._closedPromise.catch(function () {}); 4697 } 4698 } 4699 function WritableStreamUpdateBackpressure(stream, backpressure) { 4700 assert(stream._state === 'writable');
4701 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 4702 var writer = stream._writer; 4703 if (writer !== undefined && backpressure !== stream._backpressure) { 4704 if (backpressure === true) { 4705 defaultWriterReadyPromiseReset(writer); 4706 } else { 4707 assert(backpressure === false); 4708 defaultWriterReadyPromiseResolve(writer); 4709 } 4710 } 4711 stream._backpressure = backpressure; 4712 } 4713 var WritableStreamDefaultWriter = function () { 4714 function WritableStreamDefaultWriter(stream) { 4715 _classCallCheck(this, WritableStreamDefaultWriter); 4716 if (IsWritableStream(stream) === false) { 4717 throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); 4718 } 4719 if (IsWritableStreamLocked(stream) === true) { 4720 throw new TypeError('This stream has already been locked for exclusive writing by another writer'); 4721 } 4722 this._ownerWritableStream = stream; 4723 stream._writer = this; 4724 var state = stream._state; 4725 if (state === 'writable') { 4726 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { 4727 defaultWriterReadyPromiseInitialize(this); 4728 } else { 4729 defaultWriterReadyPromiseInitializeAsResolved(this); 4730 } 4731 defaultWriterClosedPromiseInitialize(this); 4732 } else if (state === 'erroring') { 4733 defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); 4734 this._readyPromise.catch(function () {}); 4735 defaultWriterClosedPromiseInitialize(this); 4736 } else if (state === 'closed') { 4737 defaultWriterReadyPromiseInitializeAsResolved(this); 4738 defaultWriterClosedPromiseInitializeAsResolved(this); 4739 } else { 4740 assert(state === 'errored', 'state must be errored'); 4741 var storedError = stream._storedError; 4742 defaultWriterReadyPromiseInitializeAsRejected(this, storedError); 4743 this._readyPromise.catch(function () {}); 4744 defaultWriterClosedPromiseInitializeAsRejected(this, storedError); 4745 this._closedPromise.catch(function () {}); 4746 } 4747 } 4748 _createClass(WritableStreamDefaultWriter, [{ 4749 key: 'abort', 4750 value: function abort(reason) { 4751 if (IsWritableStreamDefaultWriter(this) === false) { 4752 return Promise.reject(defaultWriterBrandCheckException('abort')); 4753 } 4754 if (this._ownerWritableStream === undefined) { 4755 return Promise.reject(defaultWriterLockException('abort')); 4756 } 4757 return WritableStreamDefaultWriterAbort(this, reason); 4758 } 4759 }, { 4760 key: 'close', 4761 value: function close() { 4762 if (IsWritableStreamDefaultWriter(this) === false) { 4763 return Promise.reject(defaultWriterBrandCheckException('close')); 4764 } 4765 var stream = this._ownerWritableStream; 4766 if (stream === undefined) { 4767 return Promise.reject(defaultWriterLockException('close')); 4768 } 4769 if (WritableStreamCloseQueuedOrInFlight(stream) === true) { 4770 return Promise.reject(new TypeError('cannot close an already-closing stream')); 4771 } 4772 return WritableStreamDefaultWriterClose(this); 4773 } 4774 }, { 4775 key: 'releaseLock', 4776 value: function releaseLock() { 4777 if (IsWritableStreamDefaultWriter(this) === false) { 4778 throw defaultWriterBrandCheckException('releaseLock'); 4779 } 4780 var stream = this._ownerWritableStream; 4781 if (stream === undefined) { 4782 return; 4783 } 4784 assert(stream._writer !== undefined); 4785 WritableStreamDefaultWriterRelease(this); 4786 } 4787 }, { 4788 key: 'write', 4789 value: function write(chunk) { 4790 if (IsWritableStreamDefaultWriter(this) === false) { 4791 return Promise.reject(defaultWriterBrandCheckException('write')); 4792 } 4793 if (this._ownerWritableStream === undefined) { 4794 return Promise.reject(defaultWriterLockException('write to')); 4795 } 4796 return WritableStreamDefaultWriterWrite(this, chunk); 4797 } 4798 }, { 4799 key: 'closed', 4800 get: function get() { 4801 if (IsWritableStreamDefaultWriter(this) === false) { 4802 return Promise.reject(defaultWriterBrandCheckException('closed')); 4803 } 4804 return this._closedPromise; 4805 } 4806 }, {
4807 key: 'desiredSize', 4808 get: function get() { 4809 if (IsWritableStreamDefaultWriter(this) === false) { 4810 throw defaultWriterBrandCheckException('desiredSize'); 4811 } 4812 if (this._ownerWritableStream === undefined) { 4813 throw defaultWriterLockException('desiredSize'); 4814 } 4815 return WritableStreamDefaultWriterGetDesiredSize(this); 4816 } 4817 }, { 4818 key: 'ready', 4819 get: function get() { 4820 if (IsWritableStreamDefaultWriter(this) === false) { 4821 return Promise.reject(defaultWriterBrandCheckException('ready')); 4822 } 4823 return this._readyPromise; 4824 } 4825 }]); 4826 return WritableStreamDefaultWriter; 4827 }(); 4828 function IsWritableStreamDefaultWriter(x) { 4829 if (!typeIsObject(x)) { 4830 return false; 4831 } 4832 if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { 4833 return false; 4834 } 4835 return true; 4836 } 4837 function WritableStreamDefaultWriterAbort(writer, reason) { 4838 var stream = writer._ownerWritableStream; 4839 assert(stream !== undefined); 4840 return WritableStreamAbort(stream, reason); 4841 } 4842 function WritableStreamDefaultWriterClose(writer) { 4843 var stream = writer._ownerWritableStream; 4844 assert(stream !== undefined); 4845 var state = stream._state; 4846 if (state === 'closed' || state === 'errored') { 4847 return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); 4848 } 4849 assert(state === 'writable' || state === 'erroring'); 4850 assert(WritableStreamCloseQueuedOrInFlight(stream) === false); 4851 var promise = new Promise(function (resolve, reject) { 4852 var closeRequest = { 4853 _resolve: resolve, 4854 _reject: reject 4855 }; 4856 stream._closeRequest = closeRequest; 4857 }); 4858 if (stream._backpressure === true && state === 'writable') { 4859 defaultWriterReadyPromiseResolve(writer); 4860 } 4861 WritableStreamDefaultControllerClose(stream._writableStreamController); 4862 return promise; 4863 } 4864 function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { 4865 var stream = writer._ownerWritableStream; 4866 assert(stream !== undefined); 4867 var state = stream._state; 4868 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 4869 return Promise.resolve(); 4870 } 4871 if (state === 'errored') { 4872 return Promise.reject(stream._storedError); 4873 } 4874 assert(state === 'writable' || state === 'erroring'); 4875 return WritableStreamDefaultWriterClose(writer); 4876 } 4877 function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { 4878 if (writer._closedPromiseState === 'pending') { 4879 defaultWriterClosedPromiseReject(writer, error); 4880 } else { 4881 defaultWriterClosedPromiseResetToRejected(writer, error); 4882 } 4883 writer._closedPromise.catch(function () {}); 4884 } 4885 function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { 4886 if (writer._readyPromiseState === 'pending') { 4887 defaultWriterReadyPromiseReject(writer, error); 4888 } else { 4889 defaultWriterReadyPromiseResetToRejected(writer, error); 4890 } 4891 writer._readyPromise.catch(function () {}); 4892 } 4893 function WritableStreamDefaultWriterGetDesiredSize(writer) { 4894 var stream = writer._ownerWritableStream; 4895 var state = stream._state; 4896 if (state === 'errored' || state === 'erroring') { 4897 return null; 4898 } 4899 if (state === 'closed') { 4900 return 0; 4901 } 4902 return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); 4903 } 4904 function WritableStreamDefaultWriterRelease(writer) { 4905 var stream = writer._ownerWritableStream; 4906 assert(stream !== undefined); 4907 assert(stream._writer === writer); 4908 var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); 4909 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); 4910 WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); 4911 stream._writer = undefined; 4912 writer._ownerWritableStream = undefined; 4913 } 4914 function WritableStreamDefaultWriterWrite(writer, chunk) { 4915 var stream = writer._ownerWritableStream; 4916 assert(stream !== undefined); 4917 var controller = stream._writableStreamController; 4918 var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); 4919 if (stream !== writer._ownerWritableStream) { 4920 return Promise.reject(defaultWriterLockException('write to')); 4921 } 4922 var state = stream._state; 4923 if (state === 'errored') { 4924 return Promise.reject(stream._storedError); 4925 }
4926 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { 4927 return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); 4928 } 4929 if (state === 'erroring') { 4930 return Promise.reject(stream._storedError); 4931 } 4932 assert(state === 'writable'); 4933 var promise = WritableStreamAddWriteRequest(stream); 4934 WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); 4935 return promise; 4936 } 4937 var WritableStreamDefaultController = function () { 4938 function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { 4939 _classCallCheck(this, WritableStreamDefaultController); 4940 if (IsWritableStream(stream) === false) { 4941 throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); 4942 } 4943 if (stream._writableStreamController !== undefined) { 4944 throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); 4945 } 4946 this._controlledWritableStream = stream; 4947 this._underlyingSink = underlyingSink; 4948 this._queue = undefined; 4949 this._queueTotalSize = undefined; 4950 ResetQueue(this); 4951 this._started = false; 4952 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 4953 this._strategySize = normalizedStrategy.size; 4954 this._strategyHWM = normalizedStrategy.highWaterMark; 4955 var backpressure = WritableStreamDefaultControllerGetBackpressure(this); 4956 WritableStreamUpdateBackpressure(stream, backpressure); 4957 } 4958 _createClass(WritableStreamDefaultController, [{ 4959 key: 'error', 4960 value: function error(e) { 4961 if (IsWritableStreamDefaultController(this) === false) { 4962 throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); 4963 } 4964 var state = this._controlledWritableStream._state; 4965 if (state !== 'writable') { 4966 return; 4967 } 4968 WritableStreamDefaultControllerError(this, e); 4969 } 4970 }, { 4971 key: '__abortSteps', 4972 value: function __abortSteps(reason) { 4973 return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); 4974 } 4975 }, { 4976 key: '__errorSteps', 4977 value: function __errorSteps() { 4978 ResetQueue(this); 4979 } 4980 }, { 4981 key: '__startSteps', 4982 value: function __startSteps() { 4983 var _this = this; 4984 var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); 4985 var stream = this._controlledWritableStream; 4986 Promise.resolve(startResult).then(function () { 4987 assert(stream._state === 'writable' || stream._state === 'erroring'); 4988 _this._started = true; 4989 WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); 4990 }, function (r) { 4991 assert(stream._state === 'writable' || stream._state === 'erroring'); 4992 _this._started = true; 4993 WritableStreamDealWithRejection(stream, r); 4994 }).catch(rethrowAssertionErrorRejection); 4995 } 4996 }]); 4997 return WritableStreamDefaultController; 4998 }(); 4999 function WritableStreamDefaultControllerClose(controller) { 5000 EnqueueValueWithSize(controller, 'close', 0); 5001 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 5002 } 5003 function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { 5004 var strategySize = controller._strategySize; 5005 if (strategySize === undefined) { 5006 return 1; 5007 } 5008 try { 5009 return strategySize(chunk); 5010 } catch (chunkSizeE) { 5011 WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 5012 return 1; 5013 } 5014 } 5015 function WritableStreamDefaultControllerGetDesiredSize(controller) { 5016 return controller._strategyHWM - controller._queueTotalSize; 5017 } 5018 function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { 5019 var writeRecord = { chunk: chunk }; 5020 try { 5021 EnqueueValueWithSize(controller, writeRecord, chunkSize); 5022 } catch (enqueueE) { 5023 WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 5024 return; 5025 } 5026 var stream = controller._controlledWritableStream;
5027 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { 5028 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 5029 WritableStreamUpdateBackpressure(stream, backpressure); 5030 } 5031 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 5032 } 5033 function IsWritableStreamDefaultController(x) { 5034 if (!typeIsObject(x)) { 5035 return false; 5036 } 5037 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { 5038 return false; 5039 } 5040 return true; 5041 } 5042 function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { 5043 var stream = controller._controlledWritableStream; 5044 if (controller._started === false) { 5045 return; 5046 } 5047 if (stream._inFlightWriteRequest !== undefined) { 5048 return; 5049 } 5050 var state = stream._state; 5051 if (state === 'closed' || state === 'errored') { 5052 return; 5053 } 5054 if (state === 'erroring') { 5055 WritableStreamFinishErroring(stream); 5056 return; 5057 } 5058 if (controller._queue.length === 0) { 5059 return; 5060 } 5061 var writeRecord = PeekQueueValue(controller); 5062 if (writeRecord === 'close') { 5063 WritableStreamDefaultControllerProcessClose(controller); 5064 } else { 5065 WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); 5066 } 5067 } 5068 function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { 5069 if (controller._controlledWritableStream._state === 'writable') { 5070 WritableStreamDefaultControllerError(controller, error); 5071 } 5072 } 5073 function WritableStreamDefaultControllerProcessClose(controller) { 5074 var stream = controller._controlledWritableStream; 5075 WritableStreamMarkCloseRequestInFlight(stream); 5076 DequeueValue(controller); 5077 assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); 5078 var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); 5079 sinkClosePromise.then(function () { 5080 WritableStreamFinishInFlightClose(stream); 5081 }, function (reason) { 5082 WritableStreamFinishInFlightCloseWithError(stream, reason); 5083 }).catch(rethrowAssertionErrorRejection); 5084 } 5085 function WritableStreamDefaultControllerProcessWrite(controller, chunk) { 5086 var stream = controller._controlledWritableStream; 5087 WritableStreamMarkFirstWriteRequestInFlight(stream); 5088 var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); 5089 sinkWritePromise.then(function () { 5090 WritableStreamFinishInFlightWrite(stream); 5091 var state = stream._state; 5092 assert(state === 'writable' || state === 'erroring'); 5093 DequeueValue(controller); 5094 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { 5095 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); 5096 WritableStreamUpdateBackpressure(stream, backpressure); 5097 } 5098 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); 5099 }, function (reason) { 5100 WritableStreamFinishInFlightWriteWithError(stream, reason); 5101 }).catch(rethrowAssertionErrorRejection); 5102 } 5103 function WritableStreamDefaultControllerGetBackpressure(controller) { 5104 var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); 5105 return desiredSize <= 0; 5106 } 5107 function WritableStreamDefaultControllerError(controller, error) { 5108 var stream = controller._controlledWritableStream; 5109 assert(stream._state === 'writable'); 5110 WritableStreamStartErroring(stream, error); 5111 } 5112 function streamBrandCheckException(name) { 5113 return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); 5114 } 5115 function defaultWriterBrandCheckException(name) { 5116 return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); 5117 } 5118 function defaultWriterLockException(name) { 5119 return new TypeError('Cannot ' + name + ' a stream using a released writer'); 5120 } 5121 function defaultWriterClosedPromiseInitialize(writer) { 5122 writer._closedPromise = new Promise(function (resolve, reject) { 5123 writer._closedPromise_resolve = resolve; 5124 writer._closedPromise_reject = reject;
5125 writer._closedPromiseState = 'pending'; 5126 }); 5127 } 5128 function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { 5129 writer._closedPromise = Promise.reject(reason); 5130 writer._closedPromise_resolve = undefined; 5131 writer._closedPromise_reject = undefined; 5132 writer._closedPromiseState = 'rejected'; 5133 } 5134 function defaultWriterClosedPromiseInitializeAsResolved(writer) { 5135 writer._closedPromise = Promise.resolve(undefined); 5136 writer._closedPromise_resolve = undefined; 5137 writer._closedPromise_reject = undefined; 5138 writer._closedPromiseState = 'resolved'; 5139 } 5140 function defaultWriterClosedPromiseReject(writer, reason) { 5141 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 5142 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 5143 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 5144 writer._closedPromise_reject(reason); 5145 writer._closedPromise_resolve = undefined; 5146 writer._closedPromise_reject = undefined; 5147 writer._closedPromiseState = 'rejected'; 5148 } 5149 function defaultWriterClosedPromiseResetToRejected(writer, reason) { 5150 assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); 5151 assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); 5152 assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); 5153 writer._closedPromise = Promise.reject(reason); 5154 writer._closedPromiseState = 'rejected'; 5155 } 5156 function defaultWriterClosedPromiseResolve(writer) { 5157 assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); 5158 assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); 5159 assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); 5160 writer._closedPromise_resolve(undefined); 5161 writer._closedPromise_resolve = undefined; 5162 writer._closedPromise_reject = undefined; 5163 writer._closedPromiseState = 'resolved'; 5164 } 5165 function defaultWriterReadyPromiseInitialize(writer) { 5166 writer._readyPromise = new Promise(function (resolve, reject) { 5167 writer._readyPromise_resolve = resolve; 5168 writer._readyPromise_reject = reject; 5169 }); 5170 writer._readyPromiseState = 'pending'; 5171 } 5172 function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { 5173 writer._readyPromise = Promise.reject(reason); 5174 writer._readyPromise_resolve = undefined; 5175 writer._readyPromise_reject = undefined; 5176 writer._readyPromiseState = 'rejected'; 5177 } 5178 function defaultWriterReadyPromiseInitializeAsResolved(writer) { 5179 writer._readyPromise = Promise.resolve(undefined); 5180 writer._readyPromise_resolve = undefined; 5181 writer._readyPromise_reject = undefined; 5182 writer._readyPromiseState = 'fulfilled'; 5183 } 5184 function defaultWriterReadyPromiseReject(writer, reason) { 5185 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 5186 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 5187 writer._readyPromise_reject(reason); 5188 writer._readyPromise_resolve = undefined; 5189 writer._readyPromise_reject = undefined; 5190 writer._readyPromiseState = 'rejected'; 5191 } 5192 function defaultWriterReadyPromiseReset(writer) { 5193 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 5194 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 5195 writer._readyPromise = new Promise(function (resolve, reject) { 5196 writer._readyPromise_resolve = resolve; 5197 writer._readyPromise_reject = reject; 5198 }); 5199 writer._readyPromiseState = 'pending'; 5200 } 5201 function defaultWriterReadyPromiseResetToRejected(writer, reason) { 5202 assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); 5203 assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); 5204 writer._readyPromise = Promise.reject(reason); 5205 writer._readyPromiseState = 'rejected'; 5206 } 5207 function defaultWriterReadyPromiseResolve(writer) { 5208 assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); 5209 assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); 5210 writer._readyPromise_resolve(undefined); 5211 writer._readyPromise_resolve = undefined; 5212 writer._readyPromise_reject = undefined; 5213 writer._readyPromiseState = 'fulfilled'; 5214 } 5215}, function (module, exports, __w_pdfjs_require__) { 5216 "use strict"; 5217 5218 var _require = __w_pdfjs_require__(0), 5219 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; 5220 var _require2 = __w_pdfjs_require__(1), 5221 assert = _require2.assert; 5222 exports.DequeueValue = function (container) { 5223 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 5224 assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); 5225 var pair = container._queue.shift(); 5226 container._queueTotalSize -= pair.size; 5227 if (container._queueTotalSize < 0) { 5228 container._queueTotalSize = 0; 5229 } 5230 return pair.value; 5231 }; 5232 exports.EnqueueValueWithSize = function (container, value, size) { 5233 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); 5234 size = Number(size); 5235 if (!IsFiniteNonNegativeNumber(size)) { 5236 throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); 5237 } 5238 container._queue.push({ 5239 value: value, 5240 size: size 5241 }); 5242 container._queueTotalSize += size; 5243 }; 5244 exports.PeekQueueValue = function (container) { 5245 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 5246 assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); 5247 var pair = container._queue[0]; 5248 return pair.value; 5249 }; 5250 exports.ResetQueue = function (container) { 5251 assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); 5252 container._queue = []; 5253 container._queueTotalSize = 0; 5254 }; 5255}, function (module, exports, __w_pdfjs_require__) { 5256 "use strict"; 5257 5258 var _createClass = function () { 5259 function defineProperties(target, props) { 5260 for (var i = 0; i < props.length; i++) { 5261 var descriptor = props[i]; 5262 descriptor.enumerable = descriptor.enumerable || false; 5263 descriptor.configurable = true; 5264 if ("value" in descriptor) descriptor.writable = true; 5265 Object.defineProperty(target, descriptor.key, descriptor); 5266 } 5267 } 5268 return function (Constructor, protoProps, staticProps) { 5269 if (protoProps) defineProperties(Constructor.prototype, protoProps); 5270 if (staticProps) defineProperties(Constructor, staticProps); 5271 return Constructor; 5272 }; 5273 }(); 5274 function _classCallCheck(instance, Constructor) { 5275 if (!(instance instanceof Constructor)) { 5276 throw new TypeError("Cannot call a class as a function"); 5277 } 5278 } 5279 var _require = __w_pdfjs_require__(0), 5280 ArrayBufferCopy = _require.ArrayBufferCopy, 5281 CreateIterResultObject = _require.CreateIterResultObject, 5282 IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, 5283 InvokeOrNoop = _require.InvokeOrNoop, 5284 PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, 5285 TransferArrayBuffer = _require.TransferArrayBuffer, 5286 ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, 5287 ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; 5288 var _require2 = __w_pdfjs_require__(0), 5289 createArrayFromList = _require2.createArrayFromList, 5290 createDataProperty = _require2.createDataProperty, 5291 typeIsObject = _require2.typeIsObject; 5292 var _require3 = __w_pdfjs_require__(1), 5293 assert = _require3.assert, 5294 rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; 5295 var _require4 = __w_pdfjs_require__(3), 5296 DequeueValue = _require4.DequeueValue, 5297 EnqueueValueWithSize = _require4.EnqueueValueWithSize, 5298 ResetQueue = _require4.ResetQueue; 5299 var _require5 = __w_pdfjs_require__(2), 5300 AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, 5301 IsWritableStream = _require5.IsWritableStream, 5302 IsWritableStreamLocked = _require5.IsWritableStreamLocked, 5303 WritableStreamAbort = _require5.WritableStreamAbort, 5304 WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, 5305 WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, 5306 WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, 5307 WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; 5308 var ReadableStream = function () { 5309 function ReadableStream() { 5310 var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 5311 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 5312 size = _ref.size, 5313 highWaterMark = _ref.highWaterMark; 5314 _classCallCheck(this, ReadableStream); 5315 this._state = 'readable'; 5316 this._reader = undefined; 5317 this._storedError = undefined; 5318 this._disturbed = false;
5319 this._readableStreamController = undefined; 5320 var type = underlyingSource.type; 5321 var typeString = String(type); 5322 if (typeString === 'bytes') { 5323 if (highWaterMark === undefined) { 5324 highWaterMark = 0; 5325 } 5326 this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); 5327 } else if (type === undefined) { 5328 if (highWaterMark === undefined) { 5329 highWaterMark = 1; 5330 } 5331 this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); 5332 } else { 5333 throw new RangeError('Invalid type is specified'); 5334 } 5335 } 5336 _createClass(ReadableStream, [{ 5337 key: 'cancel', 5338 value: function cancel(reason) { 5339 if (IsReadableStream(this) === false) { 5340 return Promise.reject(streamBrandCheckException('cancel')); 5341 } 5342 if (IsReadableStreamLocked(this) === true) { 5343 return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); 5344 } 5345 return ReadableStreamCancel(this, reason); 5346 } 5347 }, { 5348 key: 'getReader', 5349 value: function getReader() { 5350 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 5351 mode = _ref2.mode; 5352 if (IsReadableStream(this) === false) { 5353 throw streamBrandCheckException('getReader'); 5354 } 5355 if (mode === undefined) { 5356 return AcquireReadableStreamDefaultReader(this); 5357 } 5358 mode = String(mode); 5359 if (mode === 'byob') { 5360 return AcquireReadableStreamBYOBReader(this); 5361 } 5362 throw new RangeError('Invalid mode is specified'); 5363 } 5364 }, { 5365 key: 'pipeThrough', 5366 value: function pipeThrough(_ref3, options) { 5367 var writable = _ref3.writable, 5368 readable = _ref3.readable; 5369 var promise = this.pipeTo(writable, options); 5370 ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); 5371 return readable; 5372 } 5373 }, { 5374 key: 'pipeTo', 5375 value: function pipeTo(dest) { 5376 var _this = this; 5377 var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 5378 preventClose = _ref4.preventClose, 5379 preventAbort = _ref4.preventAbort, 5380 preventCancel = _ref4.preventCancel; 5381 if (IsReadableStream(this) === false) { 5382 return Promise.reject(streamBrandCheckException('pipeTo')); 5383 } 5384 if (IsWritableStream(dest) === false) { 5385 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); 5386 } 5387 preventClose = Boolean(preventClose); 5388 preventAbort = Boolean(preventAbort); 5389 preventCancel = Boolean(preventCancel); 5390 if (IsReadableStreamLocked(this) === true) { 5391 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); 5392 } 5393 if (IsWritableStreamLocked(dest) === true) { 5394 return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); 5395 } 5396 var reader = AcquireReadableStreamDefaultReader(this); 5397 var writer = AcquireWritableStreamDefaultWriter(dest); 5398 var shuttingDown = false; 5399 var currentWrite = Promise.resolve(); 5400 return new Promise(function (resolve, reject) { 5401 function pipeLoop() { 5402 currentWrite = Promise.resolve(); 5403 if (shuttingDown === true) { 5404 return Promise.resolve(); 5405 } 5406 return writer._readyPromise.then(function () { 5407 return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { 5408 var value = _ref5.value, 5409 done = _ref5.done; 5410 if (done === true) { 5411 return; 5412 } 5413 currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {}); 5414 }); 5415 }).then(pipeLoop); 5416 } 5417 isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { 5418 if (preventAbort === false) { 5419 shutdownWithAction(function () { 5420 return WritableStreamAbort(dest, storedError); 5421 }, true, storedError); 5422 } else { 5423 shutdown(true, storedError); 5424 } 5425 }); 5426 isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { 5427 if (preventCancel === false) { 5428 shutdownWithAction(function () { 5429 return ReadableStreamCancel(_this, storedError); 5430 }, true, storedError); 5431 } else { 5432 shutdown(true, storedError); 5433 } 5434 }); 5435 isOrBecomesClosed(_this, reader._closedPromise, function () { 5436 if (preventClose === false) { 5437 shutdownWithAction(function () { 5438 return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); 5439 }); 5440 } else { 5441 shutdown(); 5442 } 5443 }); 5444 if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { 5445 var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); 5446 if (preventCancel === false) { 5447 shutdownWithAction(function () { 5448 return ReadableStreamCancel(_this, destClosed); 5449 }, true, destClosed); 5450 } else { 5451 shutdown(true, destClosed); 5452 } 5453 } 5454 pipeLoop().catch(function (err) { 5455 currentWrite = Promise.resolve(); 5456 rethrowAssertionErrorRejection(err); 5457 }); 5458 function waitForWritesToFinish() { 5459 var oldCurrentWrite = currentWrite; 5460 return currentWrite.then(function () { 5461 return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; 5462 }); 5463 } 5464 function isOrBecomesErrored(stream, promise, action) { 5465 if (stream._state === 'errored') { 5466 action(stream._storedError); 5467 } else { 5468 promise.catch(action).catch(rethrowAssertionErrorRejection); 5469 } 5470 } 5471 function isOrBecomesClosed(stream, promise, action) { 5472 if (stream._state === 'closed') { 5473 action(); 5474 } else { 5475 promise.then(action).catch(rethrowAssertionErrorRejection); 5476 } 5477 } 5478 function shutdownWithAction(action, originalIsError, originalError) { 5479 if (shuttingDown === true) { 5480 return; 5481 } 5482 shuttingDown = true; 5483 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 5484 waitForWritesToFinish().then(doTheRest); 5485 } else { 5486 doTheRest(); 5487 } 5488 function doTheRest() { 5489 action().then(function () { 5490 return finalize(originalIsError, originalError); 5491 }, function (newError) { 5492 return finalize(true, newError); 5493 }).catch(rethrowAssertionErrorRejection); 5494 } 5495 } 5496 function shutdown(isError, error) { 5497 if (shuttingDown === true) { 5498 return; 5499 } 5500 shuttingDown = true; 5501 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { 5502 waitForWritesToFinish().then(function () { 5503 return finalize(isError, error); 5504 }).catch(rethrowAssertionErrorRejection); 5505 } else { 5506 finalize(isError, error); 5507 } 5508 } 5509 function finalize(isError, error) { 5510 WritableStreamDefaultWriterRelease(writer); 5511 ReadableStreamReaderGenericRelease(reader); 5512 if (isError) { 5513 reject(error); 5514 } else { 5515 resolve(undefined); 5516 } 5517 } 5518 }); 5519 } 5520 }, {
5521 key: 'tee', 5522 value: function tee() { 5523 if (IsReadableStream(this) === false) { 5524 throw streamBrandCheckException('tee'); 5525 } 5526 var branches = ReadableStreamTee(this, false); 5527 return createArrayFromList(branches); 5528 } 5529 }, { 5530 key: 'locked', 5531 get: function get() { 5532 if (IsReadableStream(this) === false) { 5533 throw streamBrandCheckException('locked'); 5534 } 5535 return IsReadableStreamLocked(this); 5536 } 5537 }]); 5538 return ReadableStream; 5539 }(); 5540 module.exports = { 5541 ReadableStream: ReadableStream, 5542 IsReadableStreamDisturbed: IsReadableStreamDisturbed, 5543 ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, 5544 ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, 5545 ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, 5546 ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize 5547 }; 5548 function AcquireReadableStreamBYOBReader(stream) { 5549 return new ReadableStreamBYOBReader(stream); 5550 } 5551 function AcquireReadableStreamDefaultReader(stream) { 5552 return new ReadableStreamDefaultReader(stream); 5553 } 5554 function IsReadableStream(x) { 5555 if (!typeIsObject(x)) { 5556 return false; 5557 } 5558 if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { 5559 return false; 5560 } 5561 return true; 5562 } 5563 function IsReadableStreamDisturbed(stream) { 5564 assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); 5565 return stream._disturbed; 5566 } 5567 function IsReadableStreamLocked(stream) { 5568 assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); 5569 if (stream._reader === undefined) { 5570 return false; 5571 } 5572 return true; 5573 } 5574 function ReadableStreamTee(stream, cloneForBranch2) { 5575 assert(IsReadableStream(stream) === true); 5576 assert(typeof cloneForBranch2 === 'boolean'); 5577 var reader = AcquireReadableStreamDefaultReader(stream); 5578 var teeState = { 5579 closedOrErrored: false, 5580 canceled1: false, 5581 canceled2: false, 5582 reason1: undefined, 5583 reason2: undefined 5584 }; 5585 teeState.promise = new Promise(function (resolve) { 5586 teeState._resolve = resolve; 5587 }); 5588 var pull = create_ReadableStreamTeePullFunction(); 5589 pull._reader = reader; 5590 pull._teeState = teeState; 5591 pull._cloneForBranch2 = cloneForBranch2; 5592 var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); 5593 cancel1._stream = stream; 5594 cancel1._teeState = teeState; 5595 var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); 5596 cancel2._stream = stream; 5597 cancel2._teeState = teeState; 5598 var underlyingSource1 = Object.create(Object.prototype);
5599 createDataProperty(underlyingSource1, 'pull', pull); 5600 createDataProperty(underlyingSource1, 'cancel', cancel1); 5601 var branch1Stream = new ReadableStream(underlyingSource1); 5602 var underlyingSource2 = Object.create(Object.prototype); 5603 createDataProperty(underlyingSource2, 'pull', pull); 5604 createDataProperty(underlyingSource2, 'cancel', cancel2); 5605 var branch2Stream = new ReadableStream(underlyingSource2); 5606 pull._branch1 = branch1Stream._readableStreamController; 5607 pull._branch2 = branch2Stream._readableStreamController; 5608 reader._closedPromise.catch(function (r) { 5609 if (teeState.closedOrErrored === true) { 5610 return; 5611 } 5612 ReadableStreamDefaultControllerError(pull._branch1, r); 5613 ReadableStreamDefaultControllerError(pull._branch2, r); 5614 teeState.closedOrErrored = true; 5615 }); 5616 return [branch1Stream, branch2Stream]; 5617 } 5618 function create_ReadableStreamTeePullFunction() { 5619 function f() { 5620 var reader = f._reader, 5621 branch1 = f._branch1, 5622 branch2 = f._branch2, 5623 teeState = f._teeState; 5624 return ReadableStreamDefaultReaderRead(reader).then(function (result) { 5625 assert(typeIsObject(result)); 5626 var value = result.value; 5627 var done = result.done; 5628 assert(typeof done === 'boolean'); 5629 if (done === true && teeState.closedOrErrored === false) { 5630 if (teeState.canceled1 === false) { 5631 ReadableStreamDefaultControllerClose(branch1); 5632 } 5633 if (teeState.canceled2 === false) { 5634 ReadableStreamDefaultControllerClose(branch2); 5635 } 5636 teeState.closedOrErrored = true; 5637 } 5638 if (teeState.closedOrErrored === true) { 5639 return; 5640 } 5641 var value1 = value; 5642 var value2 = value; 5643 if (teeState.canceled1 === false) { 5644 ReadableStreamDefaultControllerEnqueue(branch1, value1); 5645 } 5646 if (teeState.canceled2 === false) { 5647 ReadableStreamDefaultControllerEnqueue(branch2, value2); 5648 } 5649 }); 5650 } 5651 return f; 5652 } 5653 function create_ReadableStreamTeeBranch1CancelFunction() { 5654 function f(reason) { 5655 var stream = f._stream, 5656 teeState = f._teeState; 5657 teeState.canceled1 = true; 5658 teeState.reason1 = reason; 5659 if (teeState.canceled2 === true) { 5660 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 5661 var cancelResult = ReadableStreamCancel(stream, compositeReason); 5662 teeState._resolve(cancelResult); 5663 } 5664 return teeState.promise; 5665 } 5666 return f; 5667 } 5668 function create_ReadableStreamTeeBranch2CancelFunction() { 5669 function f(reason) { 5670 var stream = f._stream, 5671 teeState = f._teeState; 5672 teeState.canceled2 = true; 5673 teeState.reason2 = reason; 5674 if (teeState.canceled1 === true) { 5675 var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); 5676 var cancelResult = ReadableStreamCancel(stream, compositeReason); 5677 teeState._resolve(cancelResult); 5678 } 5679 return teeState.promise; 5680 } 5681 return f; 5682 } 5683 function ReadableStreamAddReadIntoRequest(stream) { 5684 assert(IsReadableStreamBYOBReader(stream._reader) === true); 5685 assert(stream._state === 'readable' || stream._state === 'closed'); 5686 var promise = new Promise(function (resolve, reject) { 5687 var readIntoRequest = { 5688 _resolve: resolve, 5689 _reject: reject 5690 }; 5691 stream._reader._readIntoRequests.push(readIntoRequest); 5692 }); 5693 return promise; 5694 } 5695 function ReadableStreamAddReadRequest(stream) { 5696 assert(IsReadableStreamDefaultReader(stream._reader) === true); 5697 assert(stream._state === 'readable'); 5698 var promise = new Promise(function (resolve, reject) { 5699 var readRequest = { 5700 _resolve: resolve, 5701 _reject: reject 5702 }; 5703 stream._reader._readRequests.push(readRequest); 5704 }); 5705 return promise; 5706 } 5707 function ReadableStreamCancel(stream, reason) { 5708 stream._disturbed = true; 5709 if (stream._state === 'closed') { 5710 return Promise.resolve(undefined); 5711 } 5712 if (stream._state === 'errored') { 5713 return Promise.reject(stream._storedError); 5714 } 5715 ReadableStreamClose(stream); 5716 var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); 5717 return sourceCancelPromise.then(function () { 5718 return undefined; 5719 }); 5720 } 5721 function ReadableStreamClose(stream) { 5722 assert(stream._state === 'readable'); 5723 stream._state = 'closed'; 5724 var reader = stream._reader; 5725 if (reader === undefined) { 5726 return undefined; 5727 } 5728 if (IsReadableStreamDefaultReader(reader) === true) { 5729 for (var i = 0; i < reader._readRequests.length; i++) { 5730 var _resolve = reader._readRequests[i]._resolve; 5731 _resolve(CreateIterResultObject(undefined, true)); 5732 } 5733 reader._readRequests = []; 5734 } 5735 defaultReaderClosedPromiseResolve(reader); 5736 return undefined; 5737 } 5738 function ReadableStreamError(stream, e) {
5739 assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); 5740 assert(stream._state === 'readable', 'state must be readable'); 5741 stream._state = 'errored'; 5742 stream._storedError = e; 5743 var reader = stream._reader; 5744 if (reader === undefined) { 5745 return undefined; 5746 } 5747 if (IsReadableStreamDefaultReader(reader) === true) { 5748 for (var i = 0; i < reader._readRequests.length; i++) { 5749 var readRequest = reader._readRequests[i]; 5750 readRequest._reject(e); 5751 } 5752 reader._readRequests = []; 5753 } else { 5754 assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); 5755 for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { 5756 var readIntoRequest = reader._readIntoRequests[_i]; 5757 readIntoRequest._reject(e); 5758 } 5759 reader._readIntoRequests = []; 5760 } 5761 defaultReaderClosedPromiseReject(reader, e); 5762 reader._closedPromise.catch(function () {}); 5763 } 5764 function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { 5765 var reader = stream._reader; 5766 assert(reader._readIntoRequests.length > 0); 5767 var readIntoRequest = reader._readIntoRequests.shift(); 5768 readIntoRequest._resolve(CreateIterResultObject(chunk, done)); 5769 } 5770 function ReadableStreamFulfillReadRequest(stream, chunk, done) { 5771 var reader = stream._reader; 5772 assert(reader._readRequests.length > 0); 5773 var readRequest = reader._readRequests.shift(); 5774 readRequest._resolve(CreateIterResultObject(chunk, done)); 5775 } 5776 function ReadableStreamGetNumReadIntoRequests(stream) { 5777 return stream._reader._readIntoRequests.length; 5778 } 5779 function ReadableStreamGetNumReadRequests(stream) { 5780 return stream._reader._readRequests.length; 5781 } 5782 function ReadableStreamHasBYOBReader(stream) { 5783 var reader = stream._reader; 5784 if (reader === undefined) { 5785 return false; 5786 } 5787 if (IsReadableStreamBYOBReader(reader) === false) { 5788 return false; 5789 } 5790 return true; 5791 } 5792 function ReadableStreamHasDefaultReader(stream) { 5793 var reader = stream._reader; 5794 if (reader === undefined) { 5795 return false; 5796 } 5797 if (IsReadableStreamDefaultReader(reader) === false) { 5798 return false; 5799 } 5800 return true; 5801 } 5802 var ReadableStreamDefaultReader = function () { 5803 function ReadableStreamDefaultReader(stream) { 5804 _classCallCheck(this, ReadableStreamDefaultReader); 5805 if (IsReadableStream(stream) === false) { 5806 throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); 5807 } 5808 if (IsReadableStreamLocked(stream) === true) { 5809 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 5810 } 5811 ReadableStreamReaderGenericInitialize(this, stream); 5812 this._readRequests = []; 5813 } 5814 _createClass(ReadableStreamDefaultReader, [{ 5815 key: 'cancel', 5816 value: function cancel(reason) { 5817 if (IsReadableStreamDefaultReader(this) === false) { 5818 return Promise.reject(defaultReaderBrandCheckException('cancel')); 5819 } 5820 if (this._ownerReadableStream === undefined) { 5821 return Promise.reject(readerLockException('cancel')); 5822 } 5823 return ReadableStreamReaderGenericCancel(this, reason); 5824 } 5825 }, { 5826 key: 'read', 5827 value: function read() { 5828 if (IsReadableStreamDefaultReader(this) === false) { 5829 return Promise.reject(defaultReaderBrandCheckException('read')); 5830 } 5831 if (this._ownerReadableStream === undefined) { 5832 return Promise.reject(readerLockException('read from')); 5833 } 5834 return ReadableStreamDefaultReaderRead(this); 5835 } 5836 }, { 5837 key: 'releaseLock', 5838 value: function releaseLock() { 5839 if (IsReadableStreamDefaultReader(this) === false) { 5840 throw defaultReaderBrandCheckException('releaseLock'); 5841 } 5842 if (this._ownerReadableStream === undefined) { 5843 return; 5844 } 5845 if (this._readRequests.length > 0) { 5846 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 5847 } 5848 ReadableStreamReaderGenericRelease(this); 5849 } 5850 }, {
5851 key: 'closed', 5852 get: function get() { 5853 if (IsReadableStreamDefaultReader(this) === false) { 5854 return Promise.reject(defaultReaderBrandCheckException('closed')); 5855 } 5856 return this._closedPromise; 5857 } 5858 }]); 5859 return ReadableStreamDefaultReader; 5860 }(); 5861 var ReadableStreamBYOBReader = function () { 5862 function ReadableStreamBYOBReader(stream) { 5863 _classCallCheck(this, ReadableStreamBYOBReader); 5864 if (!IsReadableStream(stream)) { 5865 throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); 5866 } 5867 if (IsReadableByteStreamController(stream._readableStreamController) === false) { 5868 throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); 5869 } 5870 if (IsReadableStreamLocked(stream)) { 5871 throw new TypeError('This stream has already been locked for exclusive reading by another reader'); 5872 } 5873 ReadableStreamReaderGenericInitialize(this, stream); 5874 this._readIntoRequests = []; 5875 } 5876 _createClass(ReadableStreamBYOBReader, [{ 5877 key: 'cancel', 5878 value: function cancel(reason) { 5879 if (!IsReadableStreamBYOBReader(this)) { 5880 return Promise.reject(byobReaderBrandCheckException('cancel')); 5881 } 5882 if (this._ownerReadableStream === undefined) { 5883 return Promise.reject(readerLockException('cancel')); 5884 } 5885 return ReadableStreamReaderGenericCancel(this, reason); 5886 } 5887 }, { 5888 key: 'read', 5889 value: function read(view) { 5890 if (!IsReadableStreamBYOBReader(this)) { 5891 return Promise.reject(byobReaderBrandCheckException('read')); 5892 } 5893 if (this._ownerReadableStream === undefined) { 5894 return Promise.reject(readerLockException('read from')); 5895 } 5896 if (!ArrayBuffer.isView(view)) { 5897 return Promise.reject(new TypeError('view must be an array buffer view')); 5898 } 5899 if (view.byteLength === 0) { 5900 return Promise.reject(new TypeError('view must have non-zero byteLength')); 5901 } 5902 return ReadableStreamBYOBReaderRead(this, view); 5903 } 5904 }, { 5905 key: 'releaseLock', 5906 value: function releaseLock() { 5907 if (!IsReadableStreamBYOBReader(this)) { 5908 throw byobReaderBrandCheckException('releaseLock'); 5909 } 5910 if (this._ownerReadableStream === undefined) { 5911 return; 5912 } 5913 if (this._readIntoRequests.length > 0) { 5914 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); 5915 } 5916 ReadableStreamReaderGenericRelease(this); 5917 } 5918 }, { 5919 key: 'closed', 5920 get: function get() { 5921 if (!IsReadableStreamBYOBReader(this)) { 5922 return Promise.reject(byobReaderBrandCheckException('closed')); 5923 } 5924 return this._closedPromise; 5925 } 5926 }]); 5927 return ReadableStreamBYOBReader; 5928 }(); 5929 function IsReadableStreamBYOBReader(x) { 5930 if (!typeIsObject(x)) { 5931 return false; 5932 } 5933 if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { 5934 return false; 5935 } 5936 return true; 5937 } 5938 function IsReadableStreamDefaultReader(x) { 5939 if (!typeIsObject(x)) { 5940 return false; 5941 } 5942 if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { 5943 return false; 5944 } 5945 return true; 5946 } 5947 function ReadableStreamReaderGenericInitialize(reader, stream) { 5948 reader._ownerReadableStream = stream; 5949 stream._reader = reader; 5950 if (stream._state === 'readable') { 5951 defaultReaderClosedPromiseInitialize(reader); 5952 } else if (stream._state === 'closed') { 5953 defaultReaderClosedPromiseInitializeAsResolved(reader); 5954 } else { 5955 assert(stream._state === 'errored', 'state must be errored'); 5956 defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); 5957 reader._closedPromise.catch(function () {}); 5958 } 5959 } 5960 function ReadableStreamReaderGenericCancel(reader, reason) { 5961 var stream = reader._ownerReadableStream; 5962 assert(stream !== undefined); 5963 return ReadableStreamCancel(stream, reason); 5964 } 5965 function ReadableStreamReaderGenericRelease(reader) { 5966 assert(reader._ownerReadableStream !== undefined); 5967 assert(reader._ownerReadableStream._reader === reader); 5968 if (reader._ownerReadableStream._state === 'readable') { 5969 defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 5970 } else { 5971 defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); 5972 } 5973 reader._closedPromise.catch(function () {}); 5974 reader._ownerReadableStream._reader = undefined; 5975 reader._ownerReadableStream = undefined; 5976 } 5977 function ReadableStreamBYOBReaderRead(reader, view) { 5978 var stream = reader._ownerReadableStream; 5979 assert(stream !== undefined); 5980 stream._disturbed = true; 5981 if (stream._state === 'errored') { 5982 return Promise.reject(stream._storedError); 5983 } 5984 return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); 5985 } 5986 function ReadableStreamDefaultReaderRead(reader) { 5987 var stream = reader._ownerReadableStream; 5988 assert(stream !== undefined); 5989 stream._disturbed = true; 5990 if (stream._state === 'closed') { 5991 return Promise.resolve(CreateIterResultObject(undefined, true)); 5992 } 5993 if (stream._state === 'errored') { 5994 return Promise.reject(stream._storedError); 5995 } 5996 assert(stream._state === 'readable'); 5997 return stream._readableStreamController.__pullSteps(); 5998 } 5999 var ReadableStreamDefaultController = function () { 6000 function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { 6001 _classCallCheck(this, ReadableStreamDefaultController);
6002 if (IsReadableStream(stream) === false) { 6003 throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); 6004 } 6005 if (stream._readableStreamController !== undefined) { 6006 throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); 6007 } 6008 this._controlledReadableStream = stream; 6009 this._underlyingSource = underlyingSource; 6010 this._queue = undefined; 6011 this._queueTotalSize = undefined; 6012 ResetQueue(this); 6013 this._started = false; 6014 this._closeRequested = false; 6015 this._pullAgain = false; 6016 this._pulling = false; 6017 var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); 6018 this._strategySize = normalizedStrategy.size; 6019 this._strategyHWM = normalizedStrategy.highWaterMark; 6020 var controller = this; 6021 var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); 6022 Promise.resolve(startResult).then(function () { 6023 controller._started = true; 6024 assert(controller._pulling === false); 6025 assert(controller._pullAgain === false); 6026 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 6027 }, function (r) { 6028 ReadableStreamDefaultControllerErrorIfNeeded(controller, r); 6029 }).catch(rethrowAssertionErrorRejection); 6030 } 6031 _createClass(ReadableStreamDefaultController, [{ 6032 key: 'close', 6033 value: function close() { 6034 if (IsReadableStreamDefaultController(this) === false) { 6035 throw defaultControllerBrandCheckException('close'); 6036 } 6037 if (this._closeRequested === true) { 6038 throw new TypeError('The stream has already been closed; do not close it again!'); 6039 } 6040 var state = this._controlledReadableStream._state; 6041 if (state !== 'readable') { 6042 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 6043 } 6044 ReadableStreamDefaultControllerClose(this); 6045 } 6046 }, { 6047 key: 'enqueue', 6048 value: function enqueue(chunk) { 6049 if (IsReadableStreamDefaultController(this) === false) { 6050 throw defaultControllerBrandCheckException('enqueue'); 6051 } 6052 if (this._closeRequested === true) { 6053 throw new TypeError('stream is closed or draining'); 6054 } 6055 var state = this._controlledReadableStream._state; 6056 if (state !== 'readable') { 6057 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 6058 } 6059 return ReadableStreamDefaultControllerEnqueue(this, chunk); 6060 } 6061 }, { 6062 key: 'error', 6063 value: function error(e) { 6064 if (IsReadableStreamDefaultController(this) === false) { 6065 throw defaultControllerBrandCheckException('error'); 6066 } 6067 var stream = this._controlledReadableStream; 6068 if (stream._state !== 'readable') { 6069 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 6070 } 6071 ReadableStreamDefaultControllerError(this, e); 6072 } 6073 }, { 6074 key: '__cancelSteps', 6075 value: function __cancelSteps(reason) { 6076 ResetQueue(this); 6077 return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); 6078 } 6079 }, { 6080 key: '__pullSteps', 6081 value: function __pullSteps() { 6082 var stream = this._controlledReadableStream; 6083 if (this._queue.length > 0) { 6084 var chunk = DequeueValue(this); 6085 if (this._closeRequested === true && this._queue.length === 0) { 6086 ReadableStreamClose(stream); 6087 } else { 6088 ReadableStreamDefaultControllerCallPullIfNeeded(this); 6089 } 6090 return Promise.resolve(CreateIterResultObject(chunk, false)); 6091 } 6092 var pendingPromise = ReadableStreamAddReadRequest(stream); 6093 ReadableStreamDefaultControllerCallPullIfNeeded(this); 6094 return pendingPromise; 6095 } 6096 }, { 6097 key: 'desiredSize', 6098 get: function get() { 6099 if (IsReadableStreamDefaultController(this) === false) { 6100 throw defaultControllerBrandCheckException('desiredSize'); 6101 } 6102 return ReadableStreamDefaultControllerGetDesiredSize(this); 6103 } 6104 }]); 6105 return ReadableStreamDefaultController; 6106 }(); 6107 function IsReadableStreamDefaultController(x) { 6108 if (!typeIsObject(x)) { 6109 return false;
6110 } 6111 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { 6112 return false; 6113 } 6114 return true; 6115 } 6116 function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { 6117 var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); 6118 if (shouldPull === false) { 6119 return undefined; 6120 } 6121 if (controller._pulling === true) { 6122 controller._pullAgain = true; 6123 return undefined; 6124 } 6125 assert(controller._pullAgain === false); 6126 controller._pulling = true; 6127 var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); 6128 pullPromise.then(function () { 6129 controller._pulling = false; 6130 if (controller._pullAgain === true) { 6131 controller._pullAgain = false; 6132 return ReadableStreamDefaultControllerCallPullIfNeeded(controller); 6133 } 6134 return undefined; 6135 }, function (e) { 6136 ReadableStreamDefaultControllerErrorIfNeeded(controller, e); 6137 }).catch(rethrowAssertionErrorRejection); 6138 return undefined; 6139 } 6140 function ReadableStreamDefaultControllerShouldCallPull(controller) { 6141 var stream = controller._controlledReadableStream; 6142 if (stream._state === 'closed' || stream._state === 'errored') { 6143 return false; 6144 } 6145 if (controller._closeRequested === true) { 6146 return false; 6147 } 6148 if (controller._started === false) { 6149 return false; 6150 } 6151 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 6152 return true; 6153 } 6154 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 6155 if (desiredSize > 0) { 6156 return true; 6157 } 6158 return false; 6159 } 6160 function ReadableStreamDefaultControllerClose(controller) { 6161 var stream = controller._controlledReadableStream; 6162 assert(controller._closeRequested === false); 6163 assert(stream._state === 'readable'); 6164 controller._closeRequested = true; 6165 if (controller._queue.length === 0) { 6166 ReadableStreamClose(stream); 6167 } 6168 } 6169 function ReadableStreamDefaultControllerEnqueue(controller, chunk) { 6170 var stream = controller._controlledReadableStream; 6171 assert(controller._closeRequested === false); 6172 assert(stream._state === 'readable'); 6173 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 6174 ReadableStreamFulfillReadRequest(stream, chunk, false); 6175 } else { 6176 var chunkSize = 1; 6177 if (controller._strategySize !== undefined) { 6178 var strategySize = controller._strategySize; 6179 try { 6180 chunkSize = strategySize(chunk); 6181 } catch (chunkSizeE) { 6182 ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); 6183 throw chunkSizeE; 6184 } 6185 } 6186 try { 6187 EnqueueValueWithSize(controller, chunk, chunkSize); 6188 } catch (enqueueE) { 6189 ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); 6190 throw enqueueE; 6191 } 6192 } 6193 ReadableStreamDefaultControllerCallPullIfNeeded(controller); 6194 return undefined; 6195 } 6196 function ReadableStreamDefaultControllerError(controller, e) { 6197 var stream = controller._controlledReadableStream; 6198 assert(stream._state === 'readable'); 6199 ResetQueue(controller); 6200 ReadableStreamError(stream, e); 6201 } 6202 function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { 6203 if (controller._controlledReadableStream._state === 'readable') { 6204 ReadableStreamDefaultControllerError(controller, e); 6205 } 6206 } 6207 function ReadableStreamDefaultControllerGetDesiredSize(controller) { 6208 var stream = controller._controlledReadableStream; 6209 var state = stream._state; 6210 if (state === 'errored') { 6211 return null; 6212 } 6213 if (state === 'closed') { 6214 return 0; 6215 } 6216 return controller._strategyHWM - controller._queueTotalSize; 6217 } 6218 var ReadableStreamBYOBRequest = function () { 6219 function ReadableStreamBYOBRequest(controller, view) { 6220 _classCallCheck(this, ReadableStreamBYOBRequest); 6221 this._associatedReadableByteStreamController = controller; 6222 this._view = view; 6223 } 6224 _createClass(ReadableStreamBYOBRequest, [{ 6225 key: 'respond', 6226 value: function respond(bytesWritten) { 6227 if (IsReadableStreamBYOBRequest(this) === false) { 6228 throw byobRequestBrandCheckException('respond'); 6229 } 6230 if (this._associatedReadableByteStreamController === undefined) { 6231 throw new TypeError('This BYOB request has been invalidated'); 6232 } 6233 ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); 6234 } 6235 }, {
6236 key: 'respondWithNewView', 6237 value: function respondWithNewView(view) { 6238 if (IsReadableStreamBYOBRequest(this) === false) { 6239 throw byobRequestBrandCheckException('respond'); 6240 } 6241 if (this._associatedReadableByteStreamController === undefined) { 6242 throw new TypeError('This BYOB request has been invalidated'); 6243 } 6244 if (!ArrayBuffer.isView(view)) { 6245 throw new TypeError('You can only respond with array buffer views'); 6246 } 6247 ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); 6248 } 6249 }, { 6250 key: 'view', 6251 get: function get() { 6252 return this._view; 6253 } 6254 }]); 6255 return ReadableStreamBYOBRequest; 6256 }(); 6257 var ReadableByteStreamController = function () { 6258 function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { 6259 _classCallCheck(this, ReadableByteStreamController); 6260 if (IsReadableStream(stream) === false) { 6261 throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); 6262 } 6263 if (stream._readableStreamController !== undefined) { 6264 throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); 6265 } 6266 this._controlledReadableStream = stream; 6267 this._underlyingByteSource = underlyingByteSource; 6268 this._pullAgain = false; 6269 this._pulling = false; 6270 ReadableByteStreamControllerClearPendingPullIntos(this); 6271 this._queue = this._queueTotalSize = undefined; 6272 ResetQueue(this); 6273 this._closeRequested = false; 6274 this._started = false; 6275 this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); 6276 var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; 6277 if (autoAllocateChunkSize !== undefined) { 6278 if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { 6279 throw new RangeError('autoAllocateChunkSize must be a positive integer'); 6280 } 6281 } 6282 this._autoAllocateChunkSize = autoAllocateChunkSize; 6283 this._pendingPullIntos = []; 6284 var controller = this; 6285 var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); 6286 Promise.resolve(startResult).then(function () { 6287 controller._started = true; 6288 assert(controller._pulling === false); 6289 assert(controller._pullAgain === false); 6290 ReadableByteStreamControllerCallPullIfNeeded(controller); 6291 }, function (r) { 6292 if (stream._state === 'readable') { 6293 ReadableByteStreamControllerError(controller, r); 6294 } 6295 }).catch(rethrowAssertionErrorRejection); 6296 } 6297 _createClass(ReadableByteStreamController, [{ 6298 key: 'close', 6299 value: function close() { 6300 if (IsReadableByteStreamController(this) === false) { 6301 throw byteStreamControllerBrandCheckException('close'); 6302 } 6303 if (this._closeRequested === true) { 6304 throw new TypeError('The stream has already been closed; do not close it again!'); 6305 } 6306 var state = this._controlledReadableStream._state; 6307 if (state !== 'readable') { 6308 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); 6309 } 6310 ReadableByteStreamControllerClose(this); 6311 } 6312 }, { 6313 key: 'enqueue', 6314 value: function enqueue(chunk) { 6315 if (IsReadableByteStreamController(this) === false) { 6316 throw byteStreamControllerBrandCheckException('enqueue'); 6317 } 6318 if (this._closeRequested === true) { 6319 throw new TypeError('stream is closed or draining'); 6320 } 6321 var state = this._controlledReadableStream._state; 6322 if (state !== 'readable') { 6323 throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); 6324 } 6325 if (!ArrayBuffer.isView(chunk)) { 6326 throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); 6327 } 6328 ReadableByteStreamControllerEnqueue(this, chunk); 6329 } 6330 }, {
6331 key: 'error', 6332 value: function error(e) { 6333 if (IsReadableByteStreamController(this) === false) { 6334 throw byteStreamControllerBrandCheckException('error'); 6335 } 6336 var stream = this._controlledReadableStream; 6337 if (stream._state !== 'readable') { 6338 throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); 6339 } 6340 ReadableByteStreamControllerError(this, e); 6341 } 6342 }, { 6343 key: '__cancelSteps', 6344 value: function __cancelSteps(reason) { 6345 if (this._pendingPullIntos.length > 0) { 6346 var firstDescriptor = this._pendingPullIntos[0]; 6347 firstDescriptor.bytesFilled = 0; 6348 } 6349 ResetQueue(this); 6350 return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); 6351 } 6352 }, { 6353 key: '__pullSteps', 6354 value: function __pullSteps() { 6355 var stream = this._controlledReadableStream; 6356 assert(ReadableStreamHasDefaultReader(stream) === true); 6357 if (this._queueTotalSize > 0) { 6358 assert(ReadableStreamGetNumReadRequests(stream) === 0); 6359 var entry = this._queue.shift(); 6360 this._queueTotalSize -= entry.byteLength; 6361 ReadableByteStreamControllerHandleQueueDrain(this); 6362 var view = void 0; 6363 try { 6364 view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); 6365 } catch (viewE) { 6366 return Promise.reject(viewE); 6367 } 6368 return Promise.resolve(CreateIterResultObject(view, false)); 6369 } 6370 var autoAllocateChunkSize = this._autoAllocateChunkSize; 6371 if (autoAllocateChunkSize !== undefined) { 6372 var buffer = void 0; 6373 try { 6374 buffer = new ArrayBuffer(autoAllocateChunkSize); 6375 } catch (bufferE) { 6376 return Promise.reject(bufferE); 6377 } 6378 var pullIntoDescriptor = { 6379 buffer: buffer, 6380 byteOffset: 0, 6381 byteLength: autoAllocateChunkSize, 6382 bytesFilled: 0, 6383 elementSize: 1, 6384 ctor: Uint8Array, 6385 readerType: 'default' 6386 }; 6387 this._pendingPullIntos.push(pullIntoDescriptor); 6388 } 6389 var promise = ReadableStreamAddReadRequest(stream); 6390 ReadableByteStreamControllerCallPullIfNeeded(this); 6391 return promise; 6392 } 6393 }, { 6394 key: 'byobRequest', 6395 get: function get() { 6396 if (IsReadableByteStreamController(this) === false) { 6397 throw byteStreamControllerBrandCheckException('byobRequest'); 6398 } 6399 if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { 6400 var firstDescriptor = this._pendingPullIntos[0]; 6401 var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); 6402 this._byobRequest = new ReadableStreamBYOBRequest(this, view); 6403 } 6404 return this._byobRequest; 6405 } 6406 }, { 6407 key: 'desiredSize', 6408 get: function get() { 6409 if (IsReadableByteStreamController(this) === false) { 6410 throw byteStreamControllerBrandCheckException('desiredSize'); 6411 } 6412 return ReadableByteStreamControllerGetDesiredSize(this); 6413 } 6414 }]); 6415 return ReadableByteStreamController; 6416 }(); 6417 function IsReadableByteStreamController(x) { 6418 if (!typeIsObject(x)) { 6419 return false; 6420 } 6421 if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { 6422 return false; 6423 } 6424 return true; 6425 } 6426 function IsReadableStreamBYOBRequest(x) { 6427 if (!typeIsObject(x)) { 6428 return false; 6429 } 6430 if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { 6431 return false; 6432 } 6433 return true; 6434 } 6435 function ReadableByteStreamControllerCallPullIfNeeded(controller) { 6436 var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); 6437 if (shouldPull === false) { 6438 return undefined; 6439 } 6440 if (controller._pulling === true) { 6441 controller._pullAgain = true; 6442 return undefined; 6443 } 6444 assert(controller._pullAgain === false); 6445 controller._pulling = true; 6446 var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); 6447 pullPromise.then(function () { 6448 controller._pulling = false;
6449 if (controller._pullAgain === true) { 6450 controller._pullAgain = false; 6451 ReadableByteStreamControllerCallPullIfNeeded(controller); 6452 } 6453 }, function (e) { 6454 if (controller._controlledReadableStream._state === 'readable') { 6455 ReadableByteStreamControllerError(controller, e); 6456 } 6457 }).catch(rethrowAssertionErrorRejection); 6458 return undefined; 6459 } 6460 function ReadableByteStreamControllerClearPendingPullIntos(controller) { 6461 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 6462 controller._pendingPullIntos = []; 6463 } 6464 function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { 6465 assert(stream._state !== 'errored', 'state must not be errored'); 6466 var done = false; 6467 if (stream._state === 'closed') { 6468 assert(pullIntoDescriptor.bytesFilled === 0); 6469 done = true; 6470 } 6471 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 6472 if (pullIntoDescriptor.readerType === 'default') { 6473 ReadableStreamFulfillReadRequest(stream, filledView, done); 6474 } else { 6475 assert(pullIntoDescriptor.readerType === 'byob'); 6476 ReadableStreamFulfillReadIntoRequest(stream, filledView, done); 6477 } 6478 } 6479 function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { 6480 var bytesFilled = pullIntoDescriptor.bytesFilled; 6481 var elementSize = pullIntoDescriptor.elementSize; 6482 assert(bytesFilled <= pullIntoDescriptor.byteLength); 6483 assert(bytesFilled % elementSize === 0); 6484 return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); 6485 } 6486 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { 6487 controller._queue.push({ 6488 buffer: buffer, 6489 byteOffset: byteOffset, 6490 byteLength: byteLength 6491 }); 6492 controller._queueTotalSize += byteLength; 6493 } 6494 function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { 6495 var elementSize = pullIntoDescriptor.elementSize; 6496 var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; 6497 var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); 6498 var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; 6499 var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; 6500 var totalBytesToCopyRemaining = maxBytesToCopy; 6501 var ready = false; 6502 if (maxAlignedBytes > currentAlignedBytes) { 6503 totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; 6504 ready = true; 6505 } 6506 var queue = controller._queue; 6507 while (totalBytesToCopyRemaining > 0) { 6508 var headOfQueue = queue[0]; 6509 var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); 6510 var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 6511 ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); 6512 if (headOfQueue.byteLength === bytesToCopy) { 6513 queue.shift(); 6514 } else { 6515 headOfQueue.byteOffset += bytesToCopy; 6516 headOfQueue.byteLength -= bytesToCopy; 6517 } 6518 controller._queueTotalSize -= bytesToCopy; 6519 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); 6520 totalBytesToCopyRemaining -= bytesToCopy; 6521 } 6522 if (ready === false) { 6523 assert(controller._queueTotalSize === 0, 'queue must be empty'); 6524 assert(pullIntoDescriptor.bytesFilled > 0); 6525 assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); 6526 } 6527 return ready; 6528 } 6529 function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { 6530 assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); 6531 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 6532 pullIntoDescriptor.bytesFilled += size; 6533 } 6534 function ReadableByteStreamControllerHandleQueueDrain(controller) { 6535 assert(controller._controlledReadableStream._state === 'readable'); 6536 if (controller._queueTotalSize === 0 && controller._closeRequested === true) { 6537 ReadableStreamClose(controller._controlledReadableStream); 6538 } else { 6539 ReadableByteStreamControllerCallPullIfNeeded(controller); 6540 } 6541 } 6542 function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { 6543 if (controller._byobRequest === undefined) { 6544 return; 6545 } 6546 controller._byobRequest._associatedReadableByteStreamController = undefined; 6547 controller._byobRequest._view = undefined; 6548 controller._byobRequest = undefined; 6549 } 6550 function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { 6551 assert(controller._closeRequested === false); 6552 while (controller._pendingPullIntos.length > 0) { 6553 if (controller._queueTotalSize === 0) { 6554 return; 6555 } 6556 var pullIntoDescriptor = controller._pendingPullIntos[0]; 6557 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 6558 ReadableByteStreamControllerShiftPendingPullInto(controller); 6559 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 6560 } 6561 } 6562 } 6563 function ReadableByteStreamControllerPullInto(controller, view) { 6564 var stream = controller._controlledReadableStream; 6565 var elementSize = 1; 6566 if (view.constructor !== DataView) { 6567 elementSize = view.constructor.BYTES_PER_ELEMENT; 6568 } 6569 var ctor = view.constructor; 6570 var pullIntoDescriptor = { 6571 buffer: view.buffer, 6572 byteOffset: view.byteOffset, 6573 byteLength: view.byteLength, 6574 bytesFilled: 0, 6575 elementSize: elementSize, 6576 ctor: ctor, 6577 readerType: 'byob' 6578 }; 6579 if (controller._pendingPullIntos.length > 0) { 6580 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 6581 controller._pendingPullIntos.push(pullIntoDescriptor); 6582 return ReadableStreamAddReadIntoRequest(stream); 6583 } 6584 if (stream._state === 'closed') { 6585 var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); 6586 return Promise.resolve(CreateIterResultObject(emptyView, true)); 6587 } 6588 if (controller._queueTotalSize > 0) { 6589 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { 6590 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); 6591 ReadableByteStreamControllerHandleQueueDrain(controller); 6592 return Promise.resolve(CreateIterResultObject(filledView, false)); 6593 } 6594 if (controller._closeRequested === true) { 6595 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 6596 ReadableByteStreamControllerError(controller, e); 6597 return Promise.reject(e); 6598 } 6599 } 6600 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 6601 controller._pendingPullIntos.push(pullIntoDescriptor); 6602 var promise = ReadableStreamAddReadIntoRequest(stream); 6603 ReadableByteStreamControllerCallPullIfNeeded(controller); 6604 return promise; 6605 } 6606 function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { 6607 firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); 6608 assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); 6609 var stream = controller._controlledReadableStream;
6610 if (ReadableStreamHasBYOBReader(stream) === true) { 6611 while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { 6612 var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); 6613 ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); 6614 } 6615 } 6616 } 6617 function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { 6618 if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { 6619 throw new RangeError('bytesWritten out of range'); 6620 } 6621 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); 6622 if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { 6623 return; 6624 } 6625 ReadableByteStreamControllerShiftPendingPullInto(controller); 6626 var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; 6627 if (remainderSize > 0) { 6628 var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; 6629 var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); 6630 ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); 6631 } 6632 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); 6633 pullIntoDescriptor.bytesFilled -= remainderSize; 6634 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); 6635 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 6636 } 6637 function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { 6638 var firstDescriptor = controller._pendingPullIntos[0]; 6639 var stream = controller._controlledReadableStream; 6640 if (stream._state === 'closed') { 6641 if (bytesWritten !== 0) { 6642 throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); 6643 } 6644 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); 6645 } else { 6646 assert(stream._state === 'readable'); 6647 ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); 6648 } 6649 } 6650 function ReadableByteStreamControllerShiftPendingPullInto(controller) { 6651 var descriptor = controller._pendingPullIntos.shift(); 6652 ReadableByteStreamControllerInvalidateBYOBRequest(controller); 6653 return descriptor; 6654 } 6655 function ReadableByteStreamControllerShouldCallPull(controller) { 6656 var stream = controller._controlledReadableStream; 6657 if (stream._state !== 'readable') { 6658 return false; 6659 } 6660 if (controller._closeRequested === true) { 6661 return false; 6662 } 6663 if (controller._started === false) { 6664 return false; 6665 } 6666 if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { 6667 return true; 6668 } 6669 if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { 6670 return true; 6671 } 6672 if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { 6673 return true; 6674 } 6675 return false; 6676 } 6677 function ReadableByteStreamControllerClose(controller) { 6678 var stream = controller._controlledReadableStream; 6679 assert(controller._closeRequested === false); 6680 assert(stream._state === 'readable'); 6681 if (controller._queueTotalSize > 0) { 6682 controller._closeRequested = true; 6683 return; 6684 } 6685 if (controller._pendingPullIntos.length > 0) { 6686 var firstPendingPullInto = controller._pendingPullIntos[0]; 6687 if (firstPendingPullInto.bytesFilled > 0) { 6688 var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); 6689 ReadableByteStreamControllerError(controller, e); 6690 throw e; 6691 } 6692 } 6693 ReadableStreamClose(stream); 6694 } 6695 function ReadableByteStreamControllerEnqueue(controller, chunk) { 6696 var stream = controller._controlledReadableStream; 6697 assert(controller._closeRequested === false); 6698 assert(stream._state === 'readable'); 6699 var buffer = chunk.buffer; 6700 var byteOffset = chunk.byteOffset; 6701 var byteLength = chunk.byteLength; 6702 var transferredBuffer = TransferArrayBuffer(buffer);
6703 if (ReadableStreamHasDefaultReader(stream) === true) { 6704 if (ReadableStreamGetNumReadRequests(stream) === 0) { 6705 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 6706 } else { 6707 assert(controller._queue.length === 0); 6708 var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); 6709 ReadableStreamFulfillReadRequest(stream, transferredView, false); 6710 } 6711 } else if (ReadableStreamHasBYOBReader(stream) === true) { 6712 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 6713 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); 6714 } else { 6715 assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); 6716 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); 6717 } 6718 } 6719 function ReadableByteStreamControllerError(controller, e) { 6720 var stream = controller._controlledReadableStream; 6721 assert(stream._state === 'readable'); 6722 ReadableByteStreamControllerClearPendingPullIntos(controller); 6723 ResetQueue(controller); 6724 ReadableStreamError(stream, e); 6725 } 6726 function ReadableByteStreamControllerGetDesiredSize(controller) { 6727 var stream = controller._controlledReadableStream; 6728 var state = stream._state; 6729 if (state === 'errored') { 6730 return null; 6731 } 6732 if (state === 'closed') { 6733 return 0; 6734 } 6735 return controller._strategyHWM - controller._queueTotalSize; 6736 } 6737 function ReadableByteStreamControllerRespond(controller, bytesWritten) { 6738 bytesWritten = Number(bytesWritten); 6739 if (IsFiniteNonNegativeNumber(bytesWritten) === false) { 6740 throw new RangeError('bytesWritten must be a finite'); 6741 } 6742 assert(controller._pendingPullIntos.length > 0); 6743 ReadableByteStreamControllerRespondInternal(controller, bytesWritten); 6744 } 6745 function ReadableByteStreamControllerRespondWithNewView(controller, view) { 6746 assert(controller._pendingPullIntos.length > 0); 6747 var firstDescriptor = controller._pendingPullIntos[0]; 6748 if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { 6749 throw new RangeError('The region specified by view does not match byobRequest'); 6750 } 6751 if (firstDescriptor.byteLength !== view.byteLength) { 6752 throw new RangeError('The buffer of view has different capacity than byobRequest'); 6753 } 6754 firstDescriptor.buffer = view.buffer; 6755 ReadableByteStreamControllerRespondInternal(controller, view.byteLength); 6756 } 6757 function streamBrandCheckException(name) { 6758 return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); 6759 } 6760 function readerLockException(name) { 6761 return new TypeError('Cannot ' + name + ' a stream using a released reader'); 6762 } 6763 function defaultReaderBrandCheckException(name) { 6764 return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); 6765 } 6766 function defaultReaderClosedPromiseInitialize(reader) { 6767 reader._closedPromise = new Promise(function (resolve, reject) { 6768 reader._closedPromise_resolve = resolve; 6769 reader._closedPromise_reject = reject; 6770 }); 6771 } 6772 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { 6773 reader._closedPromise = Promise.reject(reason); 6774 reader._closedPromise_resolve = undefined; 6775 reader._closedPromise_reject = undefined; 6776 } 6777 function defaultReaderClosedPromiseInitializeAsResolved(reader) { 6778 reader._closedPromise = Promise.resolve(undefined); 6779 reader._closedPromise_resolve = undefined; 6780 reader._closedPromise_reject = undefined; 6781 } 6782 function defaultReaderClosedPromiseReject(reader, reason) { 6783 assert(reader._closedPromise_resolve !== undefined); 6784 assert(reader._closedPromise_reject !== undefined); 6785 reader._closedPromise_reject(reason); 6786 reader._closedPromise_resolve = undefined; 6787 reader._closedPromise_reject = undefined; 6788 } 6789 function defaultReaderClosedPromiseResetToRejected(reader, reason) { 6790 assert(reader._closedPromise_resolve === undefined); 6791 assert(reader._closedPromise_reject === undefined); 6792 reader._closedPromise = Promise.reject(reason); 6793 } 6794 function defaultReaderClosedPromiseResolve(reader) { 6795 assert(reader._closedPromise_resolve !== undefined); 6796 assert(reader._closedPromise_reject !== undefined); 6797 reader._closedPromise_resolve(undefined); 6798 reader._closedPromise_resolve = undefined; 6799 reader._closedPromise_reject = undefined; 6800 } 6801 function byobReaderBrandCheckException(name) { 6802 return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); 6803 } 6804 function defaultControllerBrandCheckException(name) { 6805 return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); 6806 } 6807 function byobRequestBrandCheckException(name) { 6808 return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); 6809 } 6810 function byteStreamControllerBrandCheckException(name) { 6811 return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); 6812 } 6813 function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { 6814 try { 6815 Promise.prototype.then.call(promise, undefined, function () {}); 6816 } catch (e) {} 6817 } 6818}, function (module, exports, __w_pdfjs_require__) { 6819 "use strict"; 6820 6821 var transformStream = __w_pdfjs_require__(6); 6822 var readableStream = __w_pdfjs_require__(4); 6823 var writableStream = __w_pdfjs_require__(2); 6824 exports.TransformStream = transformStream.TransformStream; 6825 exports.ReadableStream = readableStream.ReadableStream; 6826 exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; 6827 exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; 6828 exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; 6829 exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; 6830 exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; 6831 exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; 6832 exports.IsWritableStream = writableStream.IsWritableStream; 6833 exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; 6834 exports.WritableStream = writableStream.WritableStream; 6835 exports.WritableStreamAbort = writableStream.WritableStreamAbort; 6836 exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; 6837 exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; 6838 exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; 6839 exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; 6840}, function (module, exports, __w_pdfjs_require__) { 6841 "use strict"; 6842 6843 var _createClass = function () { 6844 function defineProperties(target, props) { 6845 for (var i = 0; i < props.length; i++) { 6846 var descriptor = props[i]; 6847 descriptor.enumerable = descriptor.enumerable || false; 6848 descriptor.configurable = true; 6849 if ("value" in descriptor) descriptor.writable = true; 6850 Object.defineProperty(target, descriptor.key, descriptor); 6851 } 6852 } 6853 return function (Constructor, protoProps, staticProps) { 6854 if (protoProps) defineProperties(Constructor.prototype, protoProps); 6855 if (staticProps) defineProperties(Constructor, staticProps); 6856 return Constructor; 6857 }; 6858 }(); 6859 function _classCallCheck(instance, Constructor) { 6860 if (!(instance instanceof Constructor)) { 6861 throw new TypeError("Cannot call a class as a function"); 6862 } 6863 } 6864 var _require = __w_pdfjs_require__(1), 6865 assert = _require.assert; 6866 var _require2 = __w_pdfjs_require__(0), 6867 InvokeOrNoop = _require2.InvokeOrNoop, 6868 PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, 6869 PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, 6870 typeIsObject = _require2.typeIsObject; 6871 var _require3 = __w_pdfjs_require__(4), 6872 ReadableStream = _require3.ReadableStream, 6873 ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, 6874 ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, 6875 ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, 6876 ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; 6877 var _require4 = __w_pdfjs_require__(2), 6878 WritableStream = _require4.WritableStream, 6879 WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; 6880 function TransformStreamCloseReadable(transformStream) { 6881 if (transformStream._errored === true) { 6882 throw new TypeError('TransformStream is already errored'); 6883 } 6884 if (transformStream._readableClosed === true) { 6885 throw new TypeError('Readable side is already closed'); 6886 } 6887 TransformStreamCloseReadableInternal(transformStream); 6888 } 6889 function TransformStreamEnqueueToReadable(transformStream, chunk) { 6890 if (transformStream._errored === true) { 6891 throw new TypeError('TransformStream is already errored'); 6892 } 6893 if (transformStream._readableClosed === true) { 6894 throw new TypeError('Readable side is already closed'); 6895 } 6896 var controller = transformStream._readableController; 6897 try { 6898 ReadableStreamDefaultControllerEnqueue(controller, chunk); 6899 } catch (e) { 6900 transformStream._readableClosed = true; 6901 TransformStreamErrorIfNeeded(transformStream, e); 6902 throw transformStream._storedError; 6903 } 6904 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); 6905 var maybeBackpressure = desiredSize <= 0; 6906 if (maybeBackpressure === true && transformStream._backpressure === false) { 6907 TransformStreamSetBackpressure(transformStream, true); 6908 } 6909 } 6910 function TransformStreamError(transformStream, e) { 6911 if (transformStream._errored === true) { 6912 throw new TypeError('TransformStream is already errored'); 6913 } 6914 TransformStreamErrorInternal(transformStream, e); 6915 } 6916 function TransformStreamCloseReadableInternal(transformStream) { 6917 assert(transformStream._errored === false); 6918 assert(transformStream._readableClosed === false); 6919 try { 6920 ReadableStreamDefaultControllerClose(transformStream._readableController); 6921 } catch (e) { 6922 assert(false); 6923 } 6924 transformStream._readableClosed = true; 6925 } 6926 function TransformStreamErrorIfNeeded(transformStream, e) { 6927 if (transformStream._errored === false) { 6928 TransformStreamErrorInternal(transformStream, e); 6929 } 6930 } 6931 function TransformStreamErrorInternal(transformStream, e) { 6932 assert(transformStream._errored === false); 6933 transformStream._errored = true; 6934 transformStream._storedError = e; 6935 if (transformStream._writableDone === false) { 6936 WritableStreamDefaultControllerError(transformStream._writableController, e); 6937 } 6938 if (transformStream._readableClosed === false) { 6939 ReadableStreamDefaultControllerError(transformStream._readableController, e); 6940 } 6941 } 6942 function TransformStreamReadableReadyPromise(transformStream) { 6943 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 6944 if (transformStream._backpressure === false) { 6945 return Promise.resolve(); 6946 } 6947 assert(transformStream._backpressure === true, '_backpressure should have been initialized'); 6948 return transformStream._backpressureChangePromise; 6949 } 6950 function TransformStreamSetBackpressure(transformStream, backpressure) { 6951 assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); 6952 if (transformStream._backpressureChangePromise !== undefined) { 6953 transformStream._backpressureChangePromise_resolve(backpressure); 6954 } 6955 transformStream._backpressureChangePromise = new Promise(function (resolve) { 6956 transformStream._backpressureChangePromise_resolve = resolve; 6957 }); 6958 transformStream._backpressureChangePromise.then(function (resolution) { 6959 assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); 6960 }); 6961 transformStream._backpressure = backpressure; 6962 } 6963 function TransformStreamDefaultTransform(chunk, transformStreamController) { 6964 var transformStream = transformStreamController._controlledTransformStream; 6965 TransformStreamEnqueueToReadable(transformStream, chunk); 6966 return Promise.resolve(); 6967 } 6968 function TransformStreamTransform(transformStream, chunk) { 6969 assert(transformStream._errored === false); 6970 assert(transformStream._transforming === false); 6971 assert(transformStream._backpressure === false); 6972 transformStream._transforming = true; 6973 var transformer = transformStream._transformer; 6974 var controller = transformStream._transformStreamController; 6975 var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); 6976 return transformPromise.then(function () { 6977 transformStream._transforming = false;
6978 return TransformStreamReadableReadyPromise(transformStream); 6979 }, function (e) { 6980 TransformStreamErrorIfNeeded(transformStream, e); 6981 return Promise.reject(e); 6982 }); 6983 } 6984 function IsTransformStreamDefaultController(x) { 6985 if (!typeIsObject(x)) { 6986 return false; 6987 } 6988 if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { 6989 return false; 6990 } 6991 return true; 6992 } 6993 function IsTransformStream(x) { 6994 if (!typeIsObject(x)) { 6995 return false; 6996 } 6997 if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { 6998 return false; 6999 } 7000 return true; 7001 } 7002 var TransformStreamSink = function () { 7003 function TransformStreamSink(transformStream, startPromise) { 7004 _classCallCheck(this, TransformStreamSink); 7005 this._transformStream = transformStream; 7006 this._startPromise = startPromise; 7007 } 7008 _createClass(TransformStreamSink, [{ 7009 key: 'start', 7010 value: function start(c) { 7011 var transformStream = this._transformStream; 7012 transformStream._writableController = c; 7013 return this._startPromise.then(function () { 7014 return TransformStreamReadableReadyPromise(transformStream); 7015 }); 7016 } 7017 }, { 7018 key: 'write', 7019 value: function write(chunk) { 7020 var transformStream = this._transformStream; 7021 return TransformStreamTransform(transformStream, chunk); 7022 } 7023 }, { 7024 key: 'abort', 7025 value: function abort() { 7026 var transformStream = this._transformStream; 7027 transformStream._writableDone = true; 7028 TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); 7029 } 7030 }, { 7031 key: 'close', 7032 value: function close() { 7033 var transformStream = this._transformStream; 7034 assert(transformStream._transforming === false); 7035 transformStream._writableDone = true; 7036 var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); 7037 return flushPromise.then(function () { 7038 if (transformStream._errored === true) { 7039 return Promise.reject(transformStream._storedError); 7040 } 7041 if (transformStream._readableClosed === false) { 7042 TransformStreamCloseReadableInternal(transformStream); 7043 } 7044 return Promise.resolve(); 7045 }).catch(function (r) { 7046 TransformStreamErrorIfNeeded(transformStream, r); 7047 return Promise.reject(transformStream._storedError); 7048 }); 7049 } 7050 }]); 7051 return TransformStreamSink; 7052 }(); 7053 var TransformStreamSource = function () { 7054 function TransformStreamSource(transformStream, startPromise) { 7055 _classCallCheck(this, TransformStreamSource); 7056 this._transformStream = transformStream; 7057 this._startPromise = startPromise; 7058 } 7059 _createClass(TransformStreamSource, [{ 7060 key: 'start', 7061 value: function start(c) { 7062 var transformStream = this._transformStream; 7063 transformStream._readableController = c; 7064 return this._startPromise.then(function () { 7065 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 7066 if (transformStream._backpressure === true) { 7067 return Promise.resolve(); 7068 } 7069 assert(transformStream._backpressure === false, '_backpressure should have been initialized'); 7070 return transformStream._backpressureChangePromise; 7071 }); 7072 } 7073 }, { 7074 key: 'pull', 7075 value: function pull() { 7076 var transformStream = this._transformStream; 7077 assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); 7078 assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); 7079 TransformStreamSetBackpressure(transformStream, false); 7080 return transformStream._backpressureChangePromise; 7081 } 7082 }, { 7083 key: 'cancel', 7084 value: function cancel() { 7085 var transformStream = this._transformStream; 7086 transformStream._readableClosed = true; 7087 TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); 7088 } 7089 }]); 7090 return TransformStreamSource; 7091 }(); 7092 var TransformStreamDefaultController = function () { 7093 function TransformStreamDefaultController(transformStream) { 7094 _classCallCheck(this, TransformStreamDefaultController); 7095 if (IsTransformStream(transformStream) === false) { 7096 throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); 7097 } 7098 if (transformStream._transformStreamController !== undefined) { 7099 throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); 7100 } 7101 this._controlledTransformStream = transformStream; 7102 } 7103 _createClass(TransformStreamDefaultController, [{ 7104 key: 'enqueue', 7105 value: function enqueue(chunk) { 7106 if (IsTransformStreamDefaultController(this) === false) { 7107 throw defaultControllerBrandCheckException('enqueue'); 7108 } 7109 TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); 7110 } 7111 }, {
7112 key: 'close', 7113 value: function close() { 7114 if (IsTransformStreamDefaultController(this) === false) { 7115 throw defaultControllerBrandCheckException('close'); 7116 } 7117 TransformStreamCloseReadable(this._controlledTransformStream); 7118 } 7119 }, { 7120 key: 'error', 7121 value: function error(reason) { 7122 if (IsTransformStreamDefaultController(this) === false) { 7123 throw defaultControllerBrandCheckException('error'); 7124 } 7125 TransformStreamError(this._controlledTransformStream, reason); 7126 } 7127 }, { 7128 key: 'desiredSize', 7129 get: function get() { 7130 if (IsTransformStreamDefaultController(this) === false) { 7131 throw defaultControllerBrandCheckException('desiredSize'); 7132 } 7133 var transformStream = this._controlledTransformStream; 7134 var readableController = transformStream._readableController; 7135 return ReadableStreamDefaultControllerGetDesiredSize(readableController); 7136 } 7137 }]); 7138 return TransformStreamDefaultController; 7139 }(); 7140 var TransformStream = function () { 7141 function TransformStream() { 7142 var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 7143 _classCallCheck(this, TransformStream); 7144 this._transformer = transformer; 7145 var readableStrategy = transformer.readableStrategy, 7146 writableStrategy = transformer.writableStrategy; 7147 this._transforming = false; 7148 this._errored = false; 7149 this._storedError = undefined; 7150 this._writableController = undefined; 7151 this._readableController = undefined; 7152 this._transformStreamController = undefined; 7153 this._writableDone = false; 7154 this._readableClosed = false; 7155 this._backpressure = undefined; 7156 this._backpressureChangePromise = undefined; 7157 this._backpressureChangePromise_resolve = undefined; 7158 this._transformStreamController = new TransformStreamDefaultController(this); 7159 var startPromise_resolve = void 0; 7160 var startPromise = new Promise(function (resolve) { 7161 startPromise_resolve = resolve; 7162 }); 7163 var source = new TransformStreamSource(this, startPromise); 7164 this._readable = new ReadableStream(source, readableStrategy); 7165 var sink = new TransformStreamSink(this, startPromise); 7166 this._writable = new WritableStream(sink, writableStrategy); 7167 assert(this._writableController !== undefined); 7168 assert(this._readableController !== undefined); 7169 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); 7170 TransformStreamSetBackpressure(this, desiredSize <= 0); 7171 var transformStream = this; 7172 var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); 7173 startPromise_resolve(startResult); 7174 startPromise.catch(function (e) { 7175 if (transformStream._errored === false) { 7176 transformStream._errored = true; 7177 transformStream._storedError = e; 7178 } 7179 }); 7180 } 7181 _createClass(TransformStream, [{ 7182 key: 'readable', 7183 get: function get() { 7184 if (IsTransformStream(this) === false) { 7185 throw streamBrandCheckException('readable'); 7186 } 7187 return this._readable; 7188 } 7189 }, { 7190 key: 'writable', 7191 get: function get() { 7192 if (IsTransformStream(this) === false) { 7193 throw streamBrandCheckException('writable'); 7194 } 7195 return this._writable; 7196 } 7197 }]); 7198 return TransformStream; 7199 }(); 7200 module.exports = { TransformStream: TransformStream }; 7201 function defaultControllerBrandCheckException(name) { 7202 return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); 7203 } 7204 function streamBrandCheckException(name) { 7205 return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); 7206 } 7207}, function (module, exports, __w_pdfjs_require__) { 7208 module.exports = __w_pdfjs_require__(5); 7209}])); 7210 7211/***/ }), 7212/* 127 */ 7213/***/ (function(module, exports, __w_pdfjs_require__) { 7214 7215"use strict"; 7216 7217 7218var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 7219 7220{ 7221 var isURLSupported = false;
7222 try { 7223 if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { 7224 var u = new URL('b', 'http://a'); 7225 u.pathname = 'c%20d'; 7226 isURLSupported = u.href === 'http://a/c%20d'; 7227 } 7228 } catch (ex) {} 7229 if (isURLSupported) { 7230 exports.URL = URL; 7231 } else { 7232 var PolyfillURL = __w_pdfjs_require__(128).URL; 7233 var OriginalURL = __w_pdfjs_require__(3).URL; 7234 if (OriginalURL) { 7235 PolyfillURL.createObjectURL = function (blob) { 7236 return OriginalURL.createObjectURL.apply(OriginalURL, arguments); 7237 }; 7238 PolyfillURL.revokeObjectURL = function (url) { 7239 OriginalURL.revokeObjectURL(url); 7240 }; 7241 } 7242 exports.URL = PolyfillURL; 7243 } 7244} 7245 7246/***/ }), 7247/* 128 */ 7248/***/ (function(module, exports, __w_pdfjs_require__) { 7249 7250"use strict"; 7251 7252 7253(function URLConstructorClosure() { 7254 'use strict'; 7255 7256 var relative = Object.create(null); 7257 relative['ftp'] = 21; 7258 relative['file'] = 0; 7259 relative['gopher'] = 70; 7260 relative['http'] = 80; 7261 relative['https'] = 443; 7262 relative['ws'] = 80; 7263 relative['wss'] = 443; 7264 var relativePathDotMapping = Object.create(null); 7265 relativePathDotMapping['%2e'] = '.'; 7266 relativePathDotMapping['.%2e'] = '..'; 7267 relativePathDotMapping['%2e.'] = '..'; 7268 relativePathDotMapping['%2e%2e'] = '..'; 7269 function isRelativeScheme(scheme) { 7270 return relative[scheme] !== undefined; 7271 }
7272 function invalid() { 7273 clear.call(this); 7274 this._isInvalid = true; 7275 } 7276 function IDNAToASCII(h) { 7277 if (h === '') { 7278 invalid.call(this); 7279 } 7280 return h.toLowerCase(); 7281 } 7282 function percentEscape(c) { 7283 var unicode = c.charCodeAt(0); 7284 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { 7285 return c; 7286 } 7287 return encodeURIComponent(c); 7288 } 7289 function percentEscapeQuery(c) { 7290 var unicode = c.charCodeAt(0); 7291 if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { 7292 return c; 7293 } 7294 return encodeURIComponent(c); 7295 } 7296 var EOF, 7297 ALPHA = /[a-zA-Z]/, 7298 ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; 7299 function parse(input, stateOverride, base) { 7300 function err(message) { 7301 errors.push(message); 7302 } 7303 var state = stateOverride || 'scheme start', 7304 cursor = 0, 7305 buffer = '', 7306 seenAt = false, 7307 seenBracket = false, 7308 errors = []; 7309 loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { 7310 var c = input[cursor]; 7311 switch (state) { 7312 case 'scheme start': 7313 if (c && ALPHA.test(c)) { 7314 buffer += c.toLowerCase(); 7315 state = 'scheme'; 7316 } else if (!stateOverride) { 7317 buffer = ''; 7318 state = 'no scheme'; 7319 continue; 7320 } else { 7321 err('Invalid scheme.'); 7322 break loop; 7323 } 7324 break; 7325 case 'scheme': 7326 if (c && ALPHANUMERIC.test(c)) { 7327 buffer += c.toLowerCase(); 7328 } else if (c === ':') { 7329 this._scheme = buffer; 7330 buffer = ''; 7331 if (stateOverride) { 7332 break loop; 7333 } 7334 if (isRelativeScheme(this._scheme)) { 7335 this._isRelative = true; 7336 } 7337 if (this._scheme === 'file') { 7338 state = 'relative'; 7339 } else if (this._isRelative && base && base._scheme === this._scheme) { 7340 state = 'relative or authority'; 7341 } else if (this._isRelative) { 7342 state = 'authority first slash'; 7343 } else { 7344 state = 'scheme data'; 7345 } 7346 } else if (!stateOverride) { 7347 buffer = ''; 7348 cursor = 0; 7349 state = 'no scheme'; 7350 continue; 7351 } else if (c === EOF) { 7352 break loop; 7353 } else { 7354 err('Code point not allowed in scheme: ' + c); 7355 break loop; 7356 } 7357 break; 7358 case 'scheme data': 7359 if (c === '?') { 7360 this._query = '?'; 7361 state = 'query'; 7362 } else if (c === '#') { 7363 this._fragment = '#'; 7364 state = 'fragment'; 7365 } else { 7366 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 7367 this._schemeData += percentEscape(c); 7368 } 7369 } 7370 break; 7371 case 'no scheme': 7372 if (!base || !isRelativeScheme(base._scheme)) { 7373 err('Missing scheme.'); 7374 invalid.call(this); 7375 } else { 7376 state = 'relative'; 7377 continue; 7378 } 7379 break; 7380 case 'relative or authority': 7381 if (c === '/' && input[cursor + 1] === '/') { 7382 state = 'authority ignore slashes'; 7383 } else { 7384 err('Expected /, got: ' + c); 7385 state = 'relative'; 7386 continue; 7387 } 7388 break; 7389 case 'relative': 7390 this._isRelative = true; 7391 if (this._scheme !== 'file') { 7392 this._scheme = base._scheme; 7393 } 7394 if (c === EOF) { 7395 this._host = base._host; 7396 this._port = base._port; 7397 this._path = base._path.slice(); 7398 this._query = base._query; 7399 this._username = base._username; 7400 this._password = base._password; 7401 break loop; 7402 } else if (c === '/' || c === '\\') { 7403 if (c === '\\') { 7404 err('\\ is an invalid code point.'); 7405 } 7406 state = 'relative slash'; 7407 } else if (c === '?') { 7408 this._host = base._host; 7409 this._port = base._port; 7410 this._path = base._path.slice(); 7411 this._query = '?'; 7412 this._username = base._username; 7413 this._password = base._password; 7414 state = 'query'; 7415 } else if (c === '#') { 7416 this._host = base._host; 7417 this._port = base._port; 7418 this._path = base._path.slice(); 7419 this._query = base._query; 7420 this._fragment = '#'; 7421 this._username = base._username; 7422 this._password = base._password; 7423 state = 'fragment'; 7424 } else { 7425 var nextC = input[cursor + 1]; 7426 var nextNextC = input[cursor + 2]; 7427 if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { 7428 this._host = base._host; 7429 this._port = base._port; 7430 this._username = base._username; 7431 this._password = base._password; 7432 this._path = base._path.slice(); 7433 this._path.pop(); 7434 } 7435 state = 'relative path'; 7436 continue; 7437 } 7438 break; 7439 case 'relative slash': 7440 if (c === '/' || c === '\\') { 7441 if (c === '\\') {
7442 err('\\ is an invalid code point.'); 7443 } 7444 if (this._scheme === 'file') { 7445 state = 'file host'; 7446 } else { 7447 state = 'authority ignore slashes'; 7448 } 7449 } else { 7450 if (this._scheme !== 'file') { 7451 this._host = base._host; 7452 this._port = base._port; 7453 this._username = base._username; 7454 this._password = base._password; 7455 } 7456 state = 'relative path'; 7457 continue; 7458 } 7459 break; 7460 case 'authority first slash': 7461 if (c === '/') { 7462 state = 'authority second slash'; 7463 } else { 7464 err('Expected \'/\', got: ' + c); 7465 state = 'authority ignore slashes'; 7466 continue; 7467 } 7468 break; 7469 case 'authority second slash': 7470 state = 'authority ignore slashes'; 7471 if (c !== '/') { 7472 err('Expected \'/\', got: ' + c); 7473 continue; 7474 } 7475 break; 7476 case 'authority ignore slashes': 7477 if (c !== '/' && c !== '\\') { 7478 state = 'authority'; 7479 continue; 7480 } else { 7481 err('Expected authority, got: ' + c); 7482 } 7483 break; 7484 case 'authority': 7485 if (c === '@') { 7486 if (seenAt) { 7487 err('@ already seen.'); 7488 buffer += '%40'; 7489 } 7490 seenAt = true; 7491 for (var i = 0; i < buffer.length; i++) { 7492 var cp = buffer[i]; 7493 if (cp === '\t' || cp === '\n' || cp === '\r') { 7494 err('Invalid whitespace in authority.'); 7495 continue; 7496 } 7497 if (cp === ':' && this._password === null) { 7498 this._password = ''; 7499 continue; 7500 } 7501 var tempC = percentEscape(cp); 7502 if (this._password !== null) { 7503 this._password += tempC; 7504 } else { 7505 this._username += tempC; 7506 } 7507 } 7508 buffer = ''; 7509 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 7510 cursor -= buffer.length; 7511 buffer = ''; 7512 state = 'host'; 7513 continue; 7514 } else { 7515 buffer += c; 7516 } 7517 break; 7518 case 'file host': 7519 if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 7520 if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { 7521 state = 'relative path'; 7522 } else if (buffer.length === 0) { 7523 state = 'relative path start'; 7524 } else { 7525 this._host = IDNAToASCII.call(this, buffer); 7526 buffer = ''; 7527 state = 'relative path start'; 7528 } 7529 continue; 7530 } else if (c === '\t' || c === '\n' || c === '\r') { 7531 err('Invalid whitespace in file host.'); 7532 } else { 7533 buffer += c; 7534 } 7535 break; 7536 case 'host': 7537 case 'hostname': 7538 if (c === ':' && !seenBracket) { 7539 this._host = IDNAToASCII.call(this, buffer); 7540 buffer = ''; 7541 state = 'port'; 7542 if (stateOverride === 'hostname') { 7543 break loop; 7544 } 7545 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { 7546 this._host = IDNAToASCII.call(this, buffer); 7547 buffer = ''; 7548 state = 'relative path start'; 7549 if (stateOverride) { 7550 break loop; 7551 } 7552 continue; 7553 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 7554 if (c === '[') { 7555 seenBracket = true; 7556 } else if (c === ']') { 7557 seenBracket = false; 7558 } 7559 buffer += c; 7560 } else { 7561 err('Invalid code point in host/hostname: ' + c); 7562 } 7563 break; 7564 case 'port': 7565 if (/[0-9]/.test(c)) { 7566 buffer += c; 7567 } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { 7568 if (buffer !== '') { 7569 var temp = parseInt(buffer, 10); 7570 if (temp !== relative[this._scheme]) { 7571 this._port = temp + ''; 7572 } 7573 buffer = ''; 7574 } 7575 if (stateOverride) { 7576 break loop; 7577 } 7578 state = 'relative path start'; 7579 continue; 7580 } else if (c === '\t' || c === '\n' || c === '\r') { 7581 err('Invalid code point in port: ' + c); 7582 } else { 7583 invalid.call(this); 7584 } 7585 break; 7586 case 'relative path start': 7587 if (c === '\\') { 7588 err('\'\\\' not allowed in path.'); 7589 } 7590 state = 'relative path'; 7591 if (c !== '/' && c !== '\\') { 7592 continue; 7593 } 7594 break; 7595 case 'relative path': 7596 if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { 7597 if (c === '\\') { 7598 err('\\ not allowed in relative path.'); 7599 } 7600 var tmp; 7601 if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { 7602 buffer = tmp; 7603 } 7604 if (buffer === '..') { 7605 this._path.pop(); 7606 if (c !== '/' && c !== '\\') { 7607 this._path.push(''); 7608 } 7609 } else if (buffer === '.' && c !== '/' && c !== '\\') { 7610 this._path.push(''); 7611 } else if (buffer !== '.') { 7612 if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { 7613 buffer = buffer[0] + ':'; 7614 } 7615 this._path.push(buffer); 7616 } 7617 buffer = ''; 7618 if (c === '?') { 7619 this._query = '?'; 7620 state = 'query'; 7621 } else if (c === '#') { 7622 this._fragment = '#'; 7623 state = 'fragment'; 7624 } 7625 } else if (c !== '\t' && c !== '\n' && c !== '\r') { 7626 buffer += percentEscape(c); 7627 } 7628 break; 7629 case 'query': 7630 if (!stateOverride && c === '#') { 7631 this._fragment = '#'; 7632 state = 'fragment'; 7633 } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 7634 this._query += percentEscapeQuery(c); 7635 } 7636 break; 7637 case 'fragment': 7638 if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { 7639 this._fragment += c; 7640 } 7641 break; 7642 } 7643 cursor++; 7644 } 7645 } 7646 function clear() { 7647 this._scheme = ''; 7648 this._schemeData = ''; 7649 this._username = ''; 7650 this._password = null; 7651 this._host = ''; 7652 this._port = ''; 7653 this._path = []; 7654 this._query = ''; 7655 this._fragment = ''; 7656 this._isInvalid = false;
7657 this._isRelative = false; 7658 } 7659 function JURL(url, base) { 7660 if (base !== undefined && !(base instanceof JURL)) { 7661 base = new JURL(String(base)); 7662 } 7663 this._url = url; 7664 clear.call(this); 7665 var input = url.replace(/^[ \t\n\f]+|[ \t\n\f]+$/g, ''); 7666 parse.call(this, input, null, base); 7667 } 7668 JURL.prototype = { 7669 toString: function toString() { 7670 return this.href; 7671 }, 7672 7673 get href() { 7674 if (this._isInvalid) { 7675 return this._url; 7676 } 7677 var authority = ''; 7678 if (this._username !== '' || this._password !== null) { 7679 authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; 7680 } 7681 return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; 7682 }, 7683 set href(value) { 7684 clear.call(this); 7685 parse.call(this, value); 7686 }, 7687 get protocol() { 7688 return this._scheme + ':'; 7689 }, 7690 set protocol(value) { 7691 if (this._isInvalid) { 7692 return; 7693 } 7694 parse.call(this, value + ':', 'scheme start'); 7695 }, 7696 get host() { 7697 return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; 7698 }, 7699 set host(value) { 7700 if (this._isInvalid || !this._isRelative) { 7701 return; 7702 } 7703 parse.call(this, value, 'host'); 7704 }, 7705 get hostname() { 7706 return this._host; 7707 }, 7708 set hostname(value) { 7709 if (this._isInvalid || !this._isRelative) { 7710 return; 7711 } 7712 parse.call(this, value, 'hostname'); 7713 }, 7714 get port() { 7715 return this._port; 7716 }, 7717 set port(value) { 7718 if (this._isInvalid || !this._isRelative) { 7719 return; 7720 } 7721 parse.call(this, value, 'port'); 7722 }, 7723 get pathname() { 7724 return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; 7725 }, 7726 set pathname(value) { 7727 if (this._isInvalid || !this._isRelative) { 7728 return; 7729 } 7730 this._path = []; 7731 parse.call(this, value, 'relative path start'); 7732 }, 7733 get search() { 7734 return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; 7735 }, 7736 set search(value) { 7737 if (this._isInvalid || !this._isRelative) { 7738 return; 7739 } 7740 this._query = '?'; 7741 if (value[0] === '?') { 7742 value = value.slice(1); 7743 } 7744 parse.call(this, value, 'query'); 7745 }, 7746 get hash() { 7747 return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; 7748 }, 7749 set hash(value) { 7750 if (this._isInvalid) { 7751 return; 7752 } 7753 this._fragment = '#'; 7754 if (value[0] === '#') { 7755 value = value.slice(1); 7756 } 7757 parse.call(this, value, 'fragment'); 7758 }, 7759 get origin() { 7760 var host; 7761 if (this._isInvalid || !this._scheme) { 7762 return ''; 7763 } 7764 switch (this._scheme) { 7765 case 'data': 7766 case 'file': 7767 case 'javascript': 7768 case 'mailto': 7769 return 'null'; 7770 case 'blob': 7771 try { 7772 return new JURL(this._schemeData).origin || 'null'; 7773 } catch (_) {} 7774 return 'null'; 7775 } 7776 host = this.host; 7777 if (!host) { 7778 return ''; 7779 } 7780 return this._scheme + '://' + host; 7781 } 7782 }; 7783 exports.URL = JURL; 7784})(); 7785 7786/***/ }), 7787/* 129 */ 7788/***/ (function(module, exports, __w_pdfjs_require__) { 7789 7790"use strict"; 7791 7792 7793Object.defineProperty(exports, "__esModule", { 7794 value: true 7795}); 7796exports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = undefined; 7797 7798var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); }
7798 else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 7799 7800var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 7801 7802var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 7803 7804var _util = __w_pdfjs_require__(1); 7805 7806var _dom_utils = __w_pdfjs_require__(130); 7807 7808var _font_loader = __w_pdfjs_require__(131); 7809 7810var _api_compatibility = __w_pdfjs_require__(132); 7811 7812var _canvas = __w_pdfjs_require__(133); 7813 7814var _global_scope = __w_pdfjs_require__(3); 7815 7816var _global_scope2 = _interopRequireDefault(_global_scope); 7817 7818var _worker_options = __w_pdfjs_require__(135); 7819 7820var _message_handler = __w_pdfjs_require__(136); 7821 7822var _metadata = __w_pdfjs_require__(141); 7823 7824var _transport_stream = __w_pdfjs_require__(143); 7825 7826var _webgl = __w_pdfjs_require__(144); 7827 7828function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 7829 7830function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } 7831 7832function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7833 7834var DEFAULT_RANGE_CHUNK_SIZE = 65536; 7835var isWorkerDisabled = false; 7836var fallbackWorkerSrc = void 0; 7837var fakeWorkerFilesLoader = null; 7838{ 7839 var useRequireEnsure = false; 7840 if (typeof window === 'undefined') { 7841 isWorkerDisabled = true; 7842 if (typeof require.ensure === 'undefined') { 7843 require.ensure = require('node-ensure'); 7844 } 7845 useRequireEnsure = true; 7846 } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { 7847 useRequireEnsure = true; 7848 } 7849 if (typeof requirejs !== 'undefined' && requirejs.toUrl) { 7850 fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); 7851 } 7852 var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; 7853 fakeWorkerFilesLoader = useRequireEnsure ? function () { 7854 return new Promise(function (resolve, reject) { 7855 require.ensure([], function () { 7856 try { 7857 var worker = void 0; 7858 worker = require('./pdf.worker.js'); 7859 resolve(worker.WorkerMessageHandler); 7860 } catch (ex) { 7861 reject(ex); 7862 } 7863 }, reject, 'pdfjsWorker'); 7864 }); 7865 } : dynamicLoaderSupported ? function () { 7866 return new Promise(function (resolve, reject) { 7867 requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { 7868 try { 7869 resolve(worker.WorkerMessageHandler); 7870 } catch (ex) { 7871 reject(ex); 7872 } 7873 }, reject); 7874 }); 7875 } : null; 7876 if (!fallbackWorkerSrc && typeof document !== 'undefined') { 7877 var pdfjsFilePath = document.currentScript && document.currentScript.src; 7878 if (pdfjsFilePath) { 7879 fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); 7880 } 7881 } 7882} 7883var createPDFNetworkStream; 7884function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { 7885 createPDFNetworkStream = pdfNetworkStreamFactory; 7886} 7887function getDocument(src) { 7888 var task = new PDFDocumentLoadingTask(); 7889 var source; 7890 if (typeof src === 'string') { 7891 source = { url: src }; 7892 } else if ((0, _util.isArrayBuffer)(src)) { 7893 source = { data: src }; 7894 } else if (src instanceof PDFDataRangeTransport) { 7895 source = { range: src }; 7896 } else { 7897 if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') { 7898 throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); 7899 } 7900 if (!src.url && !src.data && !src.range) { 7901 throw new Error('Invalid parameter object: need either .data, .range or .url'); 7902 } 7903 source = src; 7904 } 7905 var params = Object.create(null); 7906 var rangeTransport = null; 7907 var worker = null; 7908 for (var key in source) { 7909 if (key === 'url' && typeof window !== 'undefined') { 7910 params[key] = new _util.URL(source[key], window.location).href; 7911 continue; 7912 } else if (key === 'range') { 7913 rangeTransport = source[key]; 7914 continue; 7915 } else if (key === 'worker') { 7916 worker = source[key]; 7917 continue; 7918 } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { 7919 var pdfBytes = source[key]; 7920 if (typeof pdfBytes === 'string') { 7921 params[key] = (0, _util.stringToBytes)(pdfBytes); 7922 } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _typeof(pdfBytes)) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { 7923 params[key] = new Uint8Array(pdfBytes); 7924 } else if ((0, _util.isArrayBuffer)(pdfBytes)) { 7925 params[key] = new Uint8Array(pdfBytes); 7926 } else { 7927 throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); 7928 } 7929 continue; 7930 } 7931 params[key] = source[key]; 7932 } 7933 params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; 7934 params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory; 7935 params.ignoreErrors = params.stopAtErrors !== true; 7936 params.pdfBug = params.pdfBug === true; 7937 var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); 7938 if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { 7939 params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; 7940 } 7941 if (!Number.isInteger(params.maxImageSize)) { 7942 params.maxImageSize = -1; 7943 } 7944 if (typeof params.isEvalSupported !== 'boolean') { 7945 params.isEvalSupported = true; 7946 } 7947 if (typeof params.disableFontFace !== 'boolean') { 7948 params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; 7949 } 7950 if (typeof params.disableRange !== 'boolean') { 7951 params.disableRange = false;
7952 } 7953 if (typeof params.disableStream !== 'boolean') { 7954 params.disableStream = false; 7955 } 7956 if (typeof params.disableAutoFetch !== 'boolean') { 7957 params.disableAutoFetch = false; 7958 } 7959 if (typeof params.disableCreateObjectURL !== 'boolean') { 7960 params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; 7961 } 7962 (0, _util.setVerbosityLevel)(params.verbosity); 7963 if (!worker) { 7964 var workerParams = { 7965 postMessageTransfers: params.postMessageTransfers, 7966 verbosity: params.verbosity 7967 }; 7968 var workerPort = _worker_options.GlobalWorkerOptions.workerPort; 7969 if (workerPort) { 7970 workerParams.port = workerPort; 7971 worker = PDFWorker.fromPort(workerParams); 7972 } else { 7973 worker = new PDFWorker(workerParams); 7974 } 7975 task._worker = worker; 7976 } 7977 var docId = task.docId; 7978 worker.promise.then(function () { 7979 if (task.destroyed) { 7980 throw new Error('Loading aborted'); 7981 } 7982 return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { 7983 if (task.destroyed) { 7984 throw new Error('Loading aborted'); 7985 } 7986 var networkStream = void 0; 7987 if (rangeTransport) { 7988 networkStream = new _transport_stream.PDFDataTransportStream({ 7989 length: params.length, 7990 initialData: params.initialData, 7991 disableRange: params.disableRange, 7992 disableStream: params.disableStream 7993 }, rangeTransport); 7994 } else if (!params.data) { 7995 networkStream = createPDFNetworkStream({ 7996 url: params.url, 7997 length: params.length, 7998 httpHeaders: params.httpHeaders, 7999 withCredentials: params.withCredentials, 8000 rangeChunkSize: params.rangeChunkSize, 8001 disableRange: params.disableRange, 8002 disableStream: params.disableStream 8003 }); 8004 } 8005 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); 8006 messageHandler.postMessageTransfers = worker.postMessageTransfers; 8007 var transport = new WorkerTransport(messageHandler, task, networkStream, params); 8008 task._transport = transport; 8009 messageHandler.send('Ready', null); 8010 }); 8011 }).catch(task._capability.reject); 8012 return task; 8013} 8014function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { 8015 if (worker.destroyed) { 8016 return Promise.reject(new Error('Worker was destroyed')); 8017 } 8018 if (pdfDataRangeTransport) { 8019 source.length = pdfDataRangeTransport.length; 8020 source.initialData = pdfDataRangeTransport.initialData; 8021 } 8022 return worker.messageHandler.sendWithPromise('GetDocRequest', { 8023 docId: docId, 8024 apiVersion: '2.0.943', 8025 source: { 8026 data: source.data, 8027 url: source.url, 8028 password: source.password, 8029 disableAutoFetch: source.disableAutoFetch, 8030 rangeChunkSize: source.rangeChunkSize, 8031 length: source.length 8032 }, 8033 maxImageSize: source.maxImageSize, 8034 disableFontFace: source.disableFontFace, 8035 disableCreateObjectURL: source.disableCreateObjectURL, 8036 postMessageTransfers: worker.postMessageTransfers, 8037 docBaseUrl: source.docBaseUrl, 8038 nativeImageDecoderSupport: source.nativeImageDecoderSupport, 8039 ignoreErrors: source.ignoreErrors, 8040 isEvalSupported: source.isEvalSupported 8041 }).then(function (workerId) { 8042 if (worker.destroyed) { 8043 throw new Error('Worker was destroyed'); 8044 } 8045 return workerId; 8046 }); 8047} 8048var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { 8049 var nextDocumentId = 0; 8050 function PDFDocumentLoadingTask() { 8051 this._capability = (0, _util.createPromiseCapability)(); 8052 this._transport = null; 8053 this._worker = null; 8054 this.docId = 'd' + nextDocumentId++; 8055 this.destroyed = false; 8056 this.onPassword = null; 8057 this.onProgress = null; 8058 this.onUnsupportedFeature = null; 8059 } 8060 PDFDocumentLoadingTask.prototype = { 8061 get promise() { 8062 return this._capability.promise; 8063 }, 8064 destroy: function destroy() { 8065 var _this = this; 8066 8067 this.destroyed = true; 8068 var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); 8069 return transportDestroyed.then(function () { 8070 _this._transport = null; 8071 if (_this._worker) { 8072 _this._worker.destroy(); 8073 _this._worker = null; 8074 } 8075 }); 8076 }, 8077 8078 then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) { 8079 return this.promise.then.apply(this.promise, arguments); 8080 } 8081 }; 8082 return PDFDocumentLoadingTask; 8083}(); 8084 8085var PDFDataRangeTransport = function () { 8086 function PDFDataRangeTransport(length, initialData) { 8087 _classCallCheck(this, PDFDataRangeTransport); 8088 8089 this.length = length; 8090 this.initialData = initialData; 8091 this._rangeListeners = []; 8092 this._progressListeners = []; 8093 this._progressiveReadListeners = []; 8094 this._readyCapability = (0, _util.createPromiseCapability)(); 8095 } 8096 8097 _createClass(PDFDataRangeTransport, [{ 8098 key: 'addRangeListener', 8099 value: function addRangeListener(listener) { 8100 this._rangeListeners.push(listener); 8101 } 8102 }, { 8103 key: 'addProgressListener', 8104 value: function addProgressListener(listener) { 8105 this._progressListeners.push(listener); 8106 } 8107 }, { 8108 key: 'addProgressiveReadListener', 8109 value: function addProgressiveReadListener(listener) { 8110 this._progressiveReadListeners.push(listener); 8111 } 8112 }, { 8113 key: 'onDataRange', 8114 value: function onDataRange(begin, chunk) { 8115 var _iteratorNormalCompletion = true; 8116 var _didIteratorError = false;
8117 var _iteratorError = undefined; 8118 8119 try { 8120 for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 8121 var listener = _step.value; 8122 8123 listener(begin, chunk); 8124 } 8125 } catch (err) { 8126 _didIteratorError = true; 8127 _iteratorError = err; 8128 } finally { 8129 try { 8130 if (!_iteratorNormalCompletion && _iterator.return) { 8131 _iterator.return(); 8132 } 8133 } finally { 8134 if (_didIteratorError) { 8135 throw _iteratorError; 8136 } 8137 } 8138 } 8139 } 8140 }, { 8141 key: 'onDataProgress', 8142 value: function onDataProgress(loaded) { 8143 var _this2 = this; 8144 8145 this._readyCapability.promise.then(function () { 8146 var _iteratorNormalCompletion2 = true; 8147 var _didIteratorError2 = false; 8148 var _iteratorError2 = undefined; 8149 8150 try { 8151 for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 8152 var listener = _step2.value; 8153 8154 listener(loaded); 8155 } 8156 } catch (err) { 8157 _didIteratorError2 = true; 8158 _iteratorError2 = err; 8159 } finally { 8160 try { 8161 if (!_iteratorNormalCompletion2 && _iterator2.return) { 8162 _iterator2.return(); 8163 } 8164 } finally { 8165 if (_didIteratorError2) { 8166 throw _iteratorError2; 8167 } 8168 } 8169 } 8170 }); 8171 } 8172 }, { 8173 key: 'onDataProgressiveRead', 8174 value: function onDataProgressiveRead(chunk) { 8175 var _this3 = this; 8176 8177 this._readyCapability.promise.then(function () { 8178 var _iteratorNormalCompletion3 = true; 8179 var _didIteratorError3 = false; 8180 var _iteratorError3 = undefined; 8181 8182 try { 8183 for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { 8184 var listener = _step3.value; 8185 8186 listener(chunk); 8187 } 8188 } catch (err) { 8189 _didIteratorError3 = true; 8190 _iteratorError3 = err; 8191 } finally { 8192 try { 8193 if (!_iteratorNormalCompletion3 && _iterator3.return) { 8194 _iterator3.return(); 8195 } 8196 } finally { 8197 if (_didIteratorError3) { 8198 throw _iteratorError3; 8199 } 8200 } 8201 } 8202 }); 8203 } 8204 }, { 8205 key: 'transportReady', 8206 value: function transportReady() { 8207 this._readyCapability.resolve(); 8208 } 8209 }, { 8210 key: 'requestDataRange', 8211 value: function requestDataRange(begin, end) { 8212 (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); 8213 } 8214 }, { 8215 key: 'abort', 8216 value: function abort() {} 8217 }]); 8218 8219 return PDFDataRangeTransport; 8220}(); 8221 8222var PDFDocumentProxy = function () { 8223 function PDFDocumentProxy(pdfInfo, transport, loadingTask) { 8224 _classCallCheck(this, PDFDocumentProxy); 8225 8226 this.loadingTask = loadingTask; 8227 this._pdfInfo = pdfInfo; 8228 this._transport = transport; 8229 } 8230 8231 _createClass(PDFDocumentProxy, [{ 8232 key: 'getPage', 8233 value: function getPage(pageNumber) { 8234 return this._transport.getPage(pageNumber); 8235 } 8236 }, { 8237 key: 'getPageIndex', 8238 value: function getPageIndex(ref) { 8239 return this._transport.getPageIndex(ref); 8240 } 8241 }, { 8242 key: 'getDestinations', 8243 value: function getDestinations() { 8244 return this._transport.getDestinations(); 8245 } 8246 }, { 8247 key: 'getDestination', 8248 value: function getDestination(id) { 8249 return this._transport.getDestination(id); 8250 } 8251 }, { 8252 key: 'getPageLabels', 8253 value: function getPageLabels() { 8254 return this._transport.getPageLabels(); 8255 } 8256 }, { 8257 key: 'getPageMode', 8258 value: function getPageMode() { 8259 return this._transport.getPageMode(); 8260 } 8261 }, { 8262 key: 'getAttachments', 8263 value: function getAttachments() { 8264 return this._transport.getAttachments(); 8265 } 8266 }, { 8267 key: 'getJavaScript', 8268 value: function getJavaScript() { 8269 return this._transport.getJavaScript(); 8270 } 8271 }, { 8272 key: 'getOutline', 8273 value: function getOutline() { 8274 return this._transport.getOutline(); 8275 } 8276 }, { 8277 key: 'getPermissions', 8278 value: function getPermissions() { 8279 return this._transport.getPermissions(); 8280 } 8281 }, { 8282 key: 'getMetadata', 8283 value: function getMetadata() { 8284 return this._transport.getMetadata(); 8285 } 8286 }, { 8287 key: 'getData', 8288 value: function getData() { 8289 return this._transport.getData(); 8290 } 8291 }, { 8292 key: 'getDownloadInfo', 8293 value: function getDownloadInfo() { 8294 return this._transport.downloadInfoCapability.promise; 8295 } 8296 }, { 8297 key: 'getStats', 8298 value: function getStats() { 8299 return this._transport.getStats(); 8300 } 8301 }, { 8302 key: 'cleanup', 8303 value: function cleanup() { 8304 this._transport.startCleanup(); 8305 } 8306 }, { 8307 key: 'destroy', 8308 value: function destroy() { 8309 return this.loadingTask.destroy(); 8310 } 8311 }, { 8312 key: 'numPages', 8313 get: function get() { 8314 return this._pdfInfo.numPages; 8315 } 8316 }, { 8317 key: 'fingerprint', 8318 get: function get() { 8319 return this._pdfInfo.fingerprint; 8320 } 8321 }, { 8322 key: 'loadingParams', 8323 get: function get() { 8324 return this._transport.loadingParams; 8325 } 8326 }]); 8327 8328 return PDFDocumentProxy; 8329}(); 8330 8331var PDFPageProxy = function PDFPageProxyClosure() { 8332 function PDFPageProxy(pageIndex, pageInfo, transport) { 8333 var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8334 8335 this.pageIndex = pageIndex; 8336 this._pageInfo = pageInfo; 8337 this.transport = transport; 8338 this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer; 8339 this._pdfBug = pdfBug; 8340 this.commonObjs = transport.commonObjs; 8341 this.objs = new PDFObjects(); 8342 this.cleanupAfterRender = false; 8343 this.pendingCleanup = false; 8344 this.intentStates = Object.create(null); 8345 this.destroyed = false; 8346 } 8347 PDFPageProxy.prototype = { 8348 get pageNumber() { 8349 return this.pageIndex + 1; 8350 }, 8351 get rotate() { 8352 return this._pageInfo.rotate; 8353 }, 8354 get ref() { 8355 return this._pageInfo.ref; 8356 }, 8357 get userUnit() { 8358 return this._pageInfo.userUnit; 8359 }, 8360 get view() { 8361 return this._pageInfo.view; 8362 }, 8363 getViewport: function getViewport(scale) { 8364 var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate; 8365 var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 8366 8367 return new _dom_utils.PageViewport({
8368 viewBox: this.view, 8369 scale: scale, 8370 rotation: rotate, 8371 dontFlip: dontFlip 8372 }); 8373 }, 8374 8375 getAnnotations: function PDFPageProxy_getAnnotations(params) { 8376 var intent = params && params.intent || null; 8377 if (!this.annotationsPromise || this.annotationsIntent !== intent) { 8378 this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent); 8379 this.annotationsIntent = intent; 8380 } 8381 return this.annotationsPromise; 8382 }, 8383 render: function PDFPageProxy_render(params) { 8384 var _this4 = this; 8385 8386 var stats = this._stats; 8387 stats.time('Overall'); 8388 this.pendingCleanup = false; 8389 var renderingIntent = params.intent === 'print' ? 'print' : 'display'; 8390 var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory(); 8391 var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL }); 8392 if (!this.intentStates[renderingIntent]) { 8393 this.intentStates[renderingIntent] = Object.create(null); 8394 } 8395 var intentState = this.intentStates[renderingIntent]; 8396 if (!intentState.displayReadyCapability) { 8397 intentState.receivingOperatorList = true; 8398 intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); 8399 intentState.operatorList = { 8400 fnArray: [], 8401 argsArray: [], 8402 lastChunk: false 8403 }; 8404 stats.time('Page Request'); 8405 this.transport.messageHandler.send('RenderPageRequest', { 8406 pageIndex: this.pageNumber - 1, 8407 intent: renderingIntent, 8408 renderInteractiveForms: params.renderInteractiveForms === true 8409 }); 8410 } 8411 var complete = function complete(error) { 8412 var i = intentState.renderTasks.indexOf(internalRenderTask); 8413 if (i >= 0) { 8414 intentState.renderTasks.splice(i, 1); 8415 } 8416 if (_this4.cleanupAfterRender) { 8417 _this4.pendingCleanup = true; 8418 } 8419 _this4._tryCleanup(); 8420 if (error) { 8421 internalRenderTask.capability.reject(error); 8422 } else { 8423 internalRenderTask.capability.resolve(); 8424 } 8425 stats.timeEnd('Rendering'); 8426 stats.timeEnd('Overall'); 8427 }; 8428 var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext, this._pdfBug); 8429 internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print'; 8430 if (!intentState.renderTasks) { 8431 intentState.renderTasks = []; 8432 } 8433 intentState.renderTasks.push(internalRenderTask); 8434 var renderTask = internalRenderTask.task; 8435 intentState.displayReadyCapability.promise.then(function (transparency) { 8436 if (_this4.pendingCleanup) { 8437 complete(); 8438 return; 8439 } 8440 stats.time('Rendering');
8441 internalRenderTask.initializeGraphics(transparency); 8442 internalRenderTask.operatorListChanged(); 8443 }).catch(complete); 8444 return renderTask; 8445 }, 8446 getOperatorList: function PDFPageProxy_getOperatorList() { 8447 function operatorListChanged() { 8448 if (intentState.operatorList.lastChunk) { 8449 intentState.opListReadCapability.resolve(intentState.operatorList); 8450 var i = intentState.renderTasks.indexOf(opListTask); 8451 if (i >= 0) { 8452 intentState.renderTasks.splice(i, 1); 8453 } 8454 } 8455 } 8456 var renderingIntent = 'oplist'; 8457 if (!this.intentStates[renderingIntent]) { 8458 this.intentStates[renderingIntent] = Object.create(null); 8459 } 8460 var intentState = this.intentStates[renderingIntent]; 8461 var opListTask; 8462 if (!intentState.opListReadCapability) { 8463 opListTask = {}; 8464 opListTask.operatorListChanged = operatorListChanged; 8465 intentState.receivingOperatorList = true; 8466 intentState.opListReadCapability = (0, _util.createPromiseCapability)(); 8467 intentState.renderTasks = []; 8468 intentState.renderTasks.push(opListTask); 8469 intentState.operatorList = { 8470 fnArray: [], 8471 argsArray: [], 8472 lastChunk: false 8473 }; 8474 this._stats.time('Page Request'); 8475 this.transport.messageHandler.send('RenderPageRequest', { 8476 pageIndex: this.pageIndex, 8477 intent: renderingIntent 8478 }); 8479 } 8480 return intentState.opListReadCapability.promise; 8481 }, 8482 streamTextContent: function streamTextContent() { 8483 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 8484 8485 var TEXT_CONTENT_CHUNK_SIZE = 100; 8486 return this.transport.messageHandler.sendWithStream('GetTextContent', { 8487 pageIndex: this.pageNumber - 1, 8488 normalizeWhitespace: params.normalizeWhitespace === true, 8489 combineTextItems: params.disableCombineTextItems !== true 8490 }, { 8491 highWaterMark: TEXT_CONTENT_CHUNK_SIZE, 8492 size: function size(textContent) { 8493 return textContent.items.length; 8494 } 8495 }); 8496 }, 8497 8498 getTextContent: function PDFPageProxy_getTextContent(params) { 8499 params = params || {}; 8500 var readableStream = this.streamTextContent(params); 8501 return new Promise(function (resolve, reject) { 8502 function pump() { 8503 reader.read().then(function (_ref) { 8504 var _textContent$items; 8505 8506 var value = _ref.value, 8507 done = _ref.done; 8508 8509 if (done) { 8510 resolve(textContent); 8511 return; 8512 } 8513 Object.assign(textContent.styles, value.styles); 8514 (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); 8515 pump(); 8516 }, reject); 8517 } 8518 var reader = readableStream.getReader(); 8519 var textContent = { 8520 items: [], 8521 styles: Object.create(null) 8522 }; 8523 pump(); 8524 }); 8525 }, 8526 _destroy: function PDFPageProxy_destroy() { 8527 this.destroyed = true; 8528 this.transport.pageCache[this.pageIndex] = null; 8529 var waitOn = []; 8530 Object.keys(this.intentStates).forEach(function (intent) { 8531 if (intent === 'oplist') { 8532 return; 8533 } 8534 var intentState = this.intentStates[intent]; 8535 intentState.renderTasks.forEach(function (renderTask) { 8536 var renderCompleted = renderTask.capability.promise.catch(function () {}); 8537 waitOn.push(renderCompleted); 8538 renderTask.cancel(); 8539 }); 8540 }, this); 8541 this.objs.clear(); 8542 this.annotationsPromise = null; 8543 this.pendingCleanup = false; 8544 return Promise.all(waitOn); 8545 }, 8546 cleanup: function cleanup() { 8547 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 8548 8549 this.pendingCleanup = true; 8550 this._tryCleanup(resetStats); 8551 }, 8552 _tryCleanup: function _tryCleanup() { 8553 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
8554 8555 if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { 8556 var intentState = this.intentStates[intent]; 8557 return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; 8558 }, this)) { 8559 return; 8560 } 8561 Object.keys(this.intentStates).forEach(function (intent) { 8562 delete this.intentStates[intent]; 8563 }, this); 8564 this.objs.clear(); 8565 this.annotationsPromise = null; 8566 if (resetStats && this._stats instanceof _dom_utils.StatTimer) { 8567 this._stats = new _dom_utils.StatTimer(); 8568 } 8569 this.pendingCleanup = false; 8570 }, 8571 8572 _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) { 8573 var intentState = this.intentStates[intent]; 8574 if (intentState.displayReadyCapability) { 8575 intentState.displayReadyCapability.resolve(transparency); 8576 } 8577 }, 8578 _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) { 8579 var intentState = this.intentStates[intent]; 8580 var i, ii; 8581 for (i = 0, ii = operatorListChunk.length; i < ii; i++) { 8582 intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); 8583 intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); 8584 } 8585 intentState.operatorList.lastChunk = operatorListChunk.lastChunk; 8586 for (i = 0; i < intentState.renderTasks.length; i++) { 8587 intentState.renderTasks[i].operatorListChanged(); 8588 } 8589 if (operatorListChunk.lastChunk) { 8590 intentState.receivingOperatorList = false; 8591 this._tryCleanup(); 8592 } 8593 }, 8594 get stats() { 8595 return this._stats instanceof _dom_utils.StatTimer ? this._stats : null; 8596 } 8597 }; 8598 return PDFPageProxy; 8599}(); 8600 8601var LoopbackPort = function () { 8602 function LoopbackPort() { 8603 var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 8604 8605 _classCallCheck(this, LoopbackPort); 8606 8607 this._listeners = []; 8608 this._defer = defer; 8609 this._deferred = Promise.resolve(undefined); 8610 } 8611 8612 _createClass(LoopbackPort, [{ 8613 key: 'postMessage', 8614 value: function postMessage(obj, transfers) { 8615 var _this5 = this; 8616 8617 function cloneValue(value) { 8618 if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) { 8619 return value; 8620 } 8621 if (cloned.has(value)) { 8622 return cloned.get(value); 8623 } 8624 var result; 8625 var buffer; 8626 if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { 8627 var transferable = transfers && transfers.includes(buffer); 8628 if (value === buffer) { 8629 result = value; 8630 } else if (transferable) { 8631 result = new value.constructor(buffer, value.byteOffset, value.byteLength); 8632 } else { 8633 result = new value.constructor(value); 8634 } 8635 cloned.set(value, result); 8636 return result; 8637 } 8638 result = Array.isArray(value) ? [] : {}; 8639 cloned.set(value, result); 8640 for (var i in value) { 8641 var desc, 8642 p = value; 8643 while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { 8644 p = Object.getPrototypeOf(p); 8645 } 8646 if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { 8647 continue; 8648 } 8649 result[i] = cloneValue(desc.value); 8650 } 8651 return result; 8652 } 8653 if (!this._defer) { 8654 this._listeners.forEach(function (listener) { 8655 listener.call(this, { data: obj }); 8656 }, this); 8657 return; 8658 } 8659 var cloned = new WeakMap(); 8660 var e = { data: cloneValue(obj) }; 8661 this._deferred.then(function () { 8662 _this5._listeners.forEach(function (listener) { 8663 listener.call(this, e); 8664 }, _this5); 8665 }); 8666 } 8667 }, { 8668 key: 'addEventListener', 8669 value: function addEventListener(name, listener) { 8670 this._listeners.push(listener); 8671 } 8672 }, { 8673 key: 'removeEventListener', 8674 value: function removeEventListener(name, listener) { 8675 var i = this._listeners.indexOf(listener); 8676 this._listeners.splice(i, 1); 8677 } 8678 }, { 8679 key: 'terminate', 8680 value: function terminate() { 8681 this._listeners = []; 8682 } 8683 }]); 8684 8685 return LoopbackPort; 8686}(); 8687 8688var PDFWorker = function PDFWorkerClosure() { 8689 var nextFakeWorkerId = 0; 8690 function getWorkerSrc() { 8691 if (_worker_options.GlobalWorkerOptions.workerSrc) { 8692 return _worker_options.GlobalWorkerOptions.workerSrc; 8693 } 8694 if (typeof fallbackWorkerSrc !== 'undefined') { 8695 return fallbackWorkerSrc; 8696 } 8697 throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); 8698 } 8699 function getMainThreadWorkerMessageHandler() { 8700 try { 8701 if (typeof window !== 'undefined') { 8702 return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; 8703 } 8704 } catch (ex) {} 8705 return null; 8706 } 8707 var fakeWorkerFilesLoadedCapability = void 0; 8708 function setupFakeWorkerGlobal() { 8709 if (fakeWorkerFilesLoadedCapability) { 8710 return fakeWorkerFilesLoadedCapability.promise; 8711 } 8712 fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); 8713 var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); 8714 if (mainWorkerMessageHandler) { 8715 fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); 8716 return fakeWorkerFilesLoadedCapability.promise; 8717 } 8718 var loader = fakeWorkerFilesLoader || function () { 8719 return (0, _dom_utils.loadScript)(getWorkerSrc()).then(function () { 8720 return window.pdfjsWorker.WorkerMessageHandler; 8721 }); 8722 }; 8723 loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); 8724 return fakeWorkerFilesLoadedCapability.promise; 8725 } 8726 function createCDNWrapper(url) { 8727 var wrapper = 'importScripts(\'' + url + '\');'; 8728 return _util.URL.createObjectURL(new Blob([wrapper])); 8729 } 8730 var pdfWorkerPorts = new WeakMap(); 8731 function PDFWorker() { 8732 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 8733 _ref2$name = _ref2.name, 8734 name = _ref2$name === undefined ? null : _ref2$name, 8735 _ref2$port = _ref2.port, 8736 port = _ref2$port === undefined ? null : _ref2$port, 8737 _ref2$postMessageTran = _ref2.postMessageTransfers, 8738 postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran, 8739 _ref2$verbosity = _ref2.verbosity, 8740 verbosity = _ref2$verbosity === undefined ? (0, _util.getVerbosityLevel)() : _ref2$verbosity; 8741 8742 if (port && pdfWorkerPorts.has(port)) { 8743 throw new Error('Cannot use more than one PDFWorker per port'); 8744 } 8745 this.name = name; 8746 this.destroyed = false;
8747 this.postMessageTransfers = postMessageTransfers !== false; 8748 this.verbosity = verbosity; 8749 this._readyCapability = (0, _util.createPromiseCapability)(); 8750 this._port = null; 8751 this._webWorker = null; 8752 this._messageHandler = null; 8753 if (port) { 8754 pdfWorkerPorts.set(port, this); 8755 this._initializeFromPort(port); 8756 return; 8757 } 8758 this._initialize(); 8759 } 8760 PDFWorker.prototype = { 8761 get promise() { 8762 return this._readyCapability.promise; 8763 }, 8764 get port() { 8765 return this._port; 8766 }, 8767 get messageHandler() { 8768 return this._messageHandler; 8769 }, 8770 _initializeFromPort: function PDFWorker_initializeFromPort(port) { 8771 this._port = port; 8772 this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); 8773 this._messageHandler.on('ready', function () {}); 8774 this._readyCapability.resolve(); 8775 }, 8776 _initialize: function PDFWorker_initialize() { 8777 var _this6 = this; 8778 8779 if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { 8780 var workerSrc = getWorkerSrc(); 8781 try { 8782 if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { 8783 workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); 8784 } 8785 var worker = new Worker(workerSrc); 8786 var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); 8787 var terminateEarly = function terminateEarly() { 8788 worker.removeEventListener('error', onWorkerError); 8789 messageHandler.destroy(); 8790 worker.terminate(); 8791 if (_this6.destroyed) { 8792 _this6._readyCapability.reject(new Error('Worker was destroyed')); 8793 } else { 8794 _this6._setupFakeWorker(); 8795 } 8796 }; 8797 var onWorkerError = function onWorkerError() { 8798 if (!_this6._webWorker) { 8799 terminateEarly(); 8800 } 8801 }; 8802 worker.addEventListener('error', onWorkerError); 8803 messageHandler.on('test', function (data) { 8804 worker.removeEventListener('error', onWorkerError); 8805 if (_this6.destroyed) { 8806 terminateEarly(); 8807 return; 8808 } 8809 if (data && data.supportTypedArray) { 8810 _this6._messageHandler = messageHandler; 8811 _this6._port = worker; 8812 _this6._webWorker = worker; 8813 if (!data.supportTransfers) { 8814 _this6.postMessageTransfers = false; 8815 } 8816 _this6._readyCapability.resolve(); 8817 messageHandler.send('configure', { verbosity: _this6.verbosity }); 8818 } else { 8819 _this6._setupFakeWorker(); 8820 messageHandler.destroy(); 8821 worker.terminate(); 8822 } 8823 }); 8824 messageHandler.on('ready', function (data) { 8825 worker.removeEventListener('error', onWorkerError); 8826 if (_this6.destroyed) { 8827 terminateEarly(); 8828 return; 8829 } 8830 try { 8831 sendTest(); 8832 } catch (e) { 8833 _this6._setupFakeWorker(); 8834 } 8835 }); 8836 var sendTest = function sendTest() { 8837 var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]); 8838 try { 8839 messageHandler.send('test', testObj, [testObj.buffer]); 8840 } catch (ex) { 8841 (0, _util.info)('Cannot use postMessage transfers'); 8842 testObj[0] = 0; 8843 messageHandler.send('test', testObj); 8844 } 8845 }; 8846 sendTest(); 8847 return; 8848 } catch (e) { 8849 (0, _util.info)('The worker has been disabled.'); 8850 } 8851 } 8852 this._setupFakeWorker(); 8853 }, 8854 _setupFakeWorker: function PDFWorker_setupFakeWorker() { 8855 var _this7 = this; 8856 8857 if (!isWorkerDisabled) { 8858 (0, _util.warn)('Setting up fake worker.'); 8859 isWorkerDisabled = true; 8860 } 8861 setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { 8862 if (_this7.destroyed) { 8863 _this7._readyCapability.reject(new Error('Worker was destroyed')); 8864 return; 8865 } 8866 var port = new LoopbackPort(); 8867 _this7._port = port;
8868 var id = 'fake' + nextFakeWorkerId++; 8869 var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); 8870 WorkerMessageHandler.setup(workerHandler, port); 8871 var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); 8872 _this7._messageHandler = messageHandler; 8873 _this7._readyCapability.resolve(); 8874 }).catch(function (reason) { 8875 _this7._readyCapability.reject(new Error('Setting up fake worker failed: "' + reason.message + '".')); 8876 }); 8877 }, 8878 destroy: function PDFWorker_destroy() { 8879 this.destroyed = true; 8880 if (this._webWorker) { 8881 this._webWorker.terminate(); 8882 this._webWorker = null; 8883 } 8884 pdfWorkerPorts.delete(this._port); 8885 this._port = null; 8886 if (this._messageHandler) { 8887 this._messageHandler.destroy(); 8888 this._messageHandler = null; 8889 } 8890 } 8891 }; 8892 PDFWorker.fromPort = function (params) { 8893 if (!params || !params.port) { 8894 throw new Error('PDFWorker.fromPort - invalid method signature.'); 8895 } 8896 if (pdfWorkerPorts.has(params.port)) { 8897 return pdfWorkerPorts.get(params.port); 8898 } 8899 return new PDFWorker(params); 8900 }; 8901 PDFWorker.getWorkerSrc = function () { 8902 return getWorkerSrc(); 8903 }; 8904 return PDFWorker; 8905}(); 8906 8907var WorkerTransport = function () { 8908 function WorkerTransport(messageHandler, loadingTask, networkStream, params) { 8909 _classCallCheck(this, WorkerTransport); 8910 8911 this.messageHandler = messageHandler; 8912 this.loadingTask = loadingTask; 8913 this.commonObjs = new PDFObjects(); 8914 this.fontLoader = new _font_loader.FontLoader(loadingTask.docId); 8915 this._params = params; 8916 this.CMapReaderFactory = new params.CMapReaderFactory({ 8917 baseUrl: params.cMapUrl, 8918 isCompressed: params.cMapPacked 8919 }); 8920 this.destroyed = false; 8921 this.destroyCapability = null; 8922 this._passwordCapability = null; 8923 this._networkStream = networkStream; 8924 this._fullReader = null; 8925 this._lastProgress = null; 8926 this.pageCache = []; 8927 this.pagePromises = []; 8928 this.downloadInfoCapability = (0, _util.createPromiseCapability)(); 8929 this.setupMessageHandler(); 8930 } 8931 8932 _createClass(WorkerTransport, [{ 8933 key: 'destroy', 8934 value: function destroy() { 8935 var _this8 = this; 8936 8937 if (this.destroyCapability) { 8938 return this.destroyCapability.promise; 8939 } 8940 this.destroyed = true; 8941 this.destroyCapability = (0, _util.createPromiseCapability)(); 8942 if (this._passwordCapability) { 8943 this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); 8944 } 8945 var waitOn = []; 8946 this.pageCache.forEach(function (page) { 8947 if (page) { 8948 waitOn.push(page._destroy()); 8949 } 8950 }); 8951 this.pageCache = []; 8952 this.pagePromises = []; 8953 var terminated = this.messageHandler.sendWithPromise('Terminate', null); 8954 waitOn.push(terminated); 8955 Promise.all(waitOn).then(function () { 8956 _this8.fontLoader.clear(); 8957 if (_this8._networkStream) { 8958 _this8._networkStream.cancelAllRequests(); 8959 } 8960 if (_this8.messageHandler) { 8961 _this8.messageHandler.destroy(); 8962 _this8.messageHandler = null; 8963 } 8964 _this8.destroyCapability.resolve(); 8965 }, this.destroyCapability.reject); 8966 return this.destroyCapability.promise; 8967 } 8968 }, { 8969 key: 'setupMessageHandler', 8970 value: function setupMessageHandler() { 8971 var messageHandler = this.messageHandler, 8972 loadingTask = this.loadingTask; 8973 8974 messageHandler.on('GetReader', function (data, sink) { 8975 var _this9 = this; 8976 8977 (0, _util.assert)(this._networkStream); 8978 this._fullReader = this._networkStream.getFullReader(); 8979 this._fullReader.onProgress = function (evt) { 8980 _this9._lastProgress = { 8981 loaded: evt.loaded, 8982 total: evt.total 8983 }; 8984 }; 8985 sink.onPull = function () { 8986 _this9._fullReader.read().then(function (_ref3) { 8987 var value = _ref3.value, 8988 done = _ref3.done; 8989 8990 if (done) { 8991 sink.close(); 8992 return; 8993 } 8994 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 8995 sink.enqueue(new Uint8Array(value), 1, [value]); 8996 }).catch(function (reason) { 8997 sink.error(reason); 8998 }); 8999 }; 9000 sink.onCancel = function (reason) { 9001 _this9._fullReader.cancel(reason); 9002 }; 9003 }, this); 9004 messageHandler.on('ReaderHeadersReady', function (data) { 9005 var _this10 = this; 9006 9007 var headersCapability = (0, _util.createPromiseCapability)(); 9008 var fullReader = this._fullReader; 9009 fullReader.headersReady.then(function () { 9010 if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { 9011 if (_this10._lastProgress && loadingTask.onProgress) { 9012 loadingTask.onProgress(_this10._lastProgress); 9013 } 9014 fullReader.onProgress = function (evt) { 9015 if (loadingTask.onProgress) { 9016 loadingTask.onProgress({ 9017 loaded: evt.loaded, 9018 total: evt.total 9019 }); 9020 } 9021 }; 9022 } 9023 headersCapability.resolve({ 9024 isStreamingSupported: fullReader.isStreamingSupported, 9025 isRangeSupported: fullReader.isRangeSupported, 9026 contentLength: fullReader.contentLength 9027 }); 9028 }, headersCapability.reject); 9029 return headersCapability.promise; 9030 }, this); 9031 messageHandler.on('GetRangeReader', function (data, sink) { 9032 (0, _util.assert)(this._networkStream); 9033 var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); 9034 sink.onPull = function () { 9035 rangeReader.read().then(function (_ref4) { 9036 var value = _ref4.value, 9037 done = _ref4.done; 9038 9039 if (done) { 9040 sink.close(); 9041 return; 9042 } 9043 (0, _util.assert)((0, _util.isArrayBuffer)(value)); 9044 sink.enqueue(new Uint8Array(value), 1, [value]); 9045 }).catch(function (reason) { 9046 sink.error(reason); 9047 }); 9048 }; 9049 sink.onCancel = function (reason) { 9050 rangeReader.cancel(reason); 9051 }; 9052 }, this); 9053 messageHandler.on('GetDoc', function (_ref5) { 9054 var pdfInfo = _ref5.pdfInfo; 9055 9056 this.numPages = pdfInfo.numPages; 9057 this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask); 9058 loadingTask._capability.resolve(this.pdfDocument); 9059 }, this); 9060 messageHandler.on('PasswordRequest', function (exception) { 9061 var _this11 = this; 9062 9063 this._passwordCapability = (0, _util.createPromiseCapability)(); 9064 if (loadingTask.onPassword) { 9065 var updatePassword = function updatePassword(password) { 9066 _this11._passwordCapability.resolve({ password: password }); 9067 }; 9068 try { 9069 loadingTask.onPassword(updatePassword, exception.code); 9070 } catch (ex) { 9071 this._passwordCapability.reject(ex); 9072 } 9073 } else { 9074 this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); 9075 } 9076 return this._passwordCapability.promise; 9077 }, this); 9078 messageHandler.on('PasswordException', function (exception) { 9079 loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); 9080 }, this); 9081 messageHandler.on('InvalidPDF', function (exception) { 9082 loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); 9083 }, this); 9084 messageHandler.on('MissingPDF', function (exception) { 9085 loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); 9086 }, this); 9087 messageHandler.on('UnexpectedResponse', function (exception) { 9088 loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); 9089 }, this); 9090 messageHandler.on('UnknownError', function (exception) { 9091 loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); 9092 }, this); 9093 messageHandler.on('DataLoaded', function (data) { 9094 if (loadingTask.onProgress) { 9095 loadingTask.onProgress({ 9096 loaded: data.length, 9097 total: data.length 9098 }); 9099 } 9100 this.downloadInfoCapability.resolve(data); 9101 }, this); 9102 messageHandler.on('StartRenderPage', function (data) { 9103 if (this.destroyed) { 9104 return; 9105 } 9106 var page = this.pageCache[data.pageIndex]; 9107 page._stats.timeEnd('Page Request'); 9108 page._startRenderPage(data.transparency, data.intent); 9109 }, this); 9110 messageHandler.on('RenderPageChunk', function (data) { 9111 if (this.destroyed) { 9112 return; 9113 } 9114 var page = this.pageCache[data.pageIndex]; 9115 page._renderPageChunk(data.operatorList, data.intent); 9116 }, this); 9117 messageHandler.on('commonobj', function (data) { 9118 var _this12 = this; 9119 9120 if (this.destroyed) { 9121 return; 9122 } 9123 9124 var _data = _slicedToArray(data, 3), 9125 id = _data[0], 9126 type = _data[1], 9127 exportedData = _data[2]; 9128 9129 if (this.commonObjs.hasData(id)) { 9130 return; 9131 } 9132 switch (type) { 9133 case 'Font': 9134 var params = this._params; 9135 if ('error' in exportedData) { 9136 var exportedError = exportedData.error; 9137 (0, _util.warn)('Error during font loading: ' + exportedError); 9138 this.commonObjs.resolve(id, exportedError); 9139 break; 9140 } 9141 var fontRegistry = null; 9142 if (params.pdfBug && _global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled) { 9143 fontRegistry = { 9144 registerFont: function registerFont(font, url) { 9145 _global_scope2.default['FontInspector'].fontAdded(font, url); 9146 } 9147 }; 9148 } 9149 var font = new _font_loader.FontFaceObject(exportedData, { 9150 isEvalSupported: params.isEvalSupported, 9151 disableFontFace: params.disableFontFace, 9152 ignoreErrors: params.ignoreErrors, 9153 onUnsupportedFeature: this._onUnsupportedFeature.bind(this), 9154 fontRegistry: fontRegistry 9155 }); 9156 var fontReady = function fontReady(fontObjs) { 9157 _this12.commonObjs.resolve(id, font); 9158 }; 9159 this.fontLoader.bind([font], fontReady); 9160 break; 9161 case 'FontPath': 9162 this.commonObjs.resolve(id, exportedData); 9163 break; 9164 default: 9165 throw new Error('Got unknown common object type ' + type); 9166 } 9167 }, this); 9168 messageHandler.on('obj', function (data) { 9169 if (this.destroyed) { 9170 return; 9171 } 9172 9173 var _data2 = _slicedToArray(data, 4), 9174 id = _data2[0], 9175 pageIndex = _data2[1], 9176 type = _data2[2], 9177 imageData = _data2[3]; 9178 9179 var pageProxy = this.pageCache[pageIndex]; 9180 if (pageProxy.objs.hasData(id)) { 9181 return; 9182 } 9183 switch (type) { 9184 case 'JpegStream': 9185 return new Promise(function (resolve, reject) { 9186 var img = new Image(); 9187 img.onload = function () { 9188 resolve(img); 9189 }; 9190 img.onerror = function () { 9191 reject(new Error('Error during JPEG image loading')); 9192 }; 9193 img.src = imageData; 9194 }).then(function (img) { 9195 pageProxy.objs.resolve(id, img); 9196 }); 9197 case 'Image': 9198 pageProxy.objs.resolve(id, imageData); 9199 var MAX_IMAGE_SIZE_TO_STORE = 8000000; 9200 if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { 9201 pageProxy.cleanupAfterRender = true; 9202 } 9203 break; 9204 default: 9205 throw new Error('Got unknown object type ' + type); 9206 } 9207 }, this); 9208 messageHandler.on('DocProgress', function (data) { 9209 if (this.destroyed) { 9210 return; 9211 } 9212 if (loadingTask.onProgress) { 9213 loadingTask.onProgress({ 9214 loaded: data.loaded, 9215 total: data.total 9216 }); 9217 } 9218 }, this); 9219 messageHandler.on('PageError', function (data) { 9220 if (this.destroyed) { 9221 return; 9222 } 9223 var page = this.pageCache[data.pageNum - 1]; 9224 var intentState = page.intentStates[data.intent]; 9225 if (intentState.displayReadyCapability) { 9226 intentState.displayReadyCapability.reject(data.error); 9227 } else { 9228 throw new Error(data.error); 9229 } 9230 if (intentState.operatorList) { 9231 intentState.operatorList.lastChunk = true; 9232 for (var i = 0; i < intentState.renderTasks.length; i++) { 9233 intentState.renderTasks[i].operatorListChanged(); 9234 } 9235 } 9236 }, this); 9237 messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this); 9238 messageHandler.on('JpegDecode', function (data) { 9239 if (this.destroyed) { 9240 return Promise.reject(new Error('Worker was destroyed')); 9241 } 9242 if (typeof document === 'undefined') { 9243 return Promise.reject(new Error('"document" is not defined.')); 9244 } 9245 9246 var _data3 = _slicedToArray(data, 2), 9247 imageUrl = _data3[0], 9248 components = _data3[1]; 9249 9250 if (components !== 3 && components !== 1) { 9251 return Promise.reject(new Error('Only 3 components or 1 component can be returned')); 9252 } 9253 return new Promise(function (resolve, reject) { 9254 var img = new Image(); 9255 img.onload = function () { 9256 var width = img.width;
9257 var height = img.height; 9258 var size = width * height; 9259 var rgbaLength = size * 4; 9260 var buf = new Uint8ClampedArray(size * components); 9261 var tmpCanvas = document.createElement('canvas'); 9262 tmpCanvas.width = width; 9263 tmpCanvas.height = height; 9264 var tmpCtx = tmpCanvas.getContext('2d'); 9265 tmpCtx.drawImage(img, 0, 0); 9266 var data = tmpCtx.getImageData(0, 0, width, height).data; 9267 if (components === 3) { 9268 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { 9269 buf[j] = data[i]; 9270 buf[j + 1] = data[i + 1]; 9271 buf[j + 2] = data[i + 2]; 9272 } 9273 } else if (components === 1) { 9274 for (var _i = 0, _j = 0; _i < rgbaLength; _i += 4, _j++) { 9275 buf[_j] = data[_i]; 9276 } 9277 } 9278 resolve({ 9279 data: buf, 9280 width: width, 9281 height: height 9282 }); 9283 }; 9284 img.onerror = function () { 9285 reject(new Error('JpegDecode failed to load image')); 9286 }; 9287 img.src = imageUrl; 9288 }); 9289 }, this); 9290 messageHandler.on('FetchBuiltInCMap', function (data) { 9291 if (this.destroyed) { 9292 return Promise.reject(new Error('Worker was destroyed')); 9293 } 9294 return this.CMapReaderFactory.fetch({ name: data.name }); 9295 }, this); 9296 } 9297 }, { 9298 key: '_onUnsupportedFeature', 9299 value: function _onUnsupportedFeature(_ref6) { 9300 var featureId = _ref6.featureId; 9301 9302 if (this.destroyed) { 9303 return; 9304 } 9305 if (this.loadingTask.onUnsupportedFeature) { 9306 this.loadingTask.onUnsupportedFeature(featureId); 9307 } 9308 } 9309 }, { 9310 key: 'getData', 9311 value: function getData() { 9312 return this.messageHandler.sendWithPromise('GetData', null); 9313 } 9314 }, { 9315 key: 'getPage', 9316 value: function getPage(pageNumber) { 9317 var _this13 = this; 9318 9319 if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) { 9320 return Promise.reject(new Error('Invalid page request')); 9321 } 9322 var pageIndex = pageNumber - 1; 9323 if (pageIndex in this.pagePromises) { 9324 return this.pagePromises[pageIndex]; 9325 } 9326 var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) { 9327 if (_this13.destroyed) { 9328 throw new Error('Transport destroyed'); 9329 } 9330 var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug); 9331 _this13.pageCache[pageIndex] = page; 9332 return page; 9333 }); 9334 this.pagePromises[pageIndex] = promise; 9335 return promise; 9336 } 9337 }, { 9338 key: 'getPageIndex', 9339 value: function getPageIndex(ref) { 9340 return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }).catch(function (reason) { 9341 return Promise.reject(new Error(reason)); 9342 }); 9343 } 9344 }, { 9345 key: 'getAnnotations', 9346 value: function getAnnotations(pageIndex, intent) { 9347 return this.messageHandler.sendWithPromise('GetAnnotations', { 9348 pageIndex: pageIndex, 9349 intent: intent 9350 }); 9351 } 9352 }, { 9353 key: 'getDestinations', 9354 value: function getDestinations() { 9355 return this.messageHandler.sendWithPromise('GetDestinations', null); 9356 } 9357 }, { 9358 key: 'getDestination', 9359 value: function getDestination(id) { 9360 if (typeof id !== 'string') { 9361 return Promise.reject(new Error('Invalid destination request.')); 9362 } 9363 return this.messageHandler.sendWithPromise('GetDestination', { id: id }); 9364 } 9365 }, { 9366 key: 'getPageLabels', 9367 value: function getPageLabels() { 9368 return this.messageHandler.sendWithPromise('GetPageLabels', null); 9369 } 9370 }, { 9371 key: 'getPageMode', 9372 value: function getPageMode() { 9373 return this.messageHandler.sendWithPromise('GetPageMode', null); 9374 } 9375 }, { 9376 key: 'getAttachments', 9377 value: function getAttachments() { 9378 return this.messageHandler.sendWithPromise('GetAttachments', null); 9379 } 9380 }, { 9381 key: 'getJavaScript', 9382 value: function getJavaScript() {
9383 return this.messageHandler.sendWithPromise('GetJavaScript', null); 9384 } 9385 }, { 9386 key: 'getOutline', 9387 value: function getOutline() { 9388 return this.messageHandler.sendWithPromise('GetOutline', null); 9389 } 9390 }, { 9391 key: 'getPermissions', 9392 value: function getPermissions() { 9393 return this.messageHandler.sendWithPromise('GetPermissions', null); 9394 } 9395 }, { 9396 key: 'getMetadata', 9397 value: function getMetadata() { 9398 var _this14 = this; 9399 9400 return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { 9401 return { 9402 info: results[0], 9403 metadata: results[1] ? new _metadata.Metadata(results[1]) : null, 9404 contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null 9405 }; 9406 }); 9407 } 9408 }, { 9409 key: 'getStats', 9410 value: function getStats() { 9411 return this.messageHandler.sendWithPromise('GetStats', null); 9412 } 9413 }, { 9414 key: 'startCleanup', 9415 value: function startCleanup() { 9416 var _this15 = this; 9417 9418 this.messageHandler.sendWithPromise('Cleanup', null).then(function () { 9419 for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) { 9420 var page = _this15.pageCache[i]; 9421 if (page) { 9422 page.cleanup(); 9423 } 9424 } 9425 _this15.commonObjs.clear(); 9426 _this15.fontLoader.clear(); 9427 }); 9428 } 9429 }, { 9430 key: 'loadingParams', 9431 get: function get() { 9432 var params = this._params; 9433 return (0, _util.shadow)(this, 'loadingParams', { 9434 disableAutoFetch: params.disableAutoFetch, 9435 disableCreateObjectURL: params.disableCreateObjectURL, 9436 disableFontFace: params.disableFontFace, 9437 nativeImageDecoderSupport: params.nativeImageDecoderSupport 9438 }); 9439 } 9440 }]); 9441 9442 return WorkerTransport; 9443}(); 9444 9445var PDFObjects = function PDFObjectsClosure() { 9446 function PDFObjects() { 9447 this.objs = Object.create(null); 9448 } 9449 PDFObjects.prototype = { 9450 ensureObj: function PDFObjects_ensureObj(objId) { 9451 if (this.objs[objId]) { 9452 return this.objs[objId]; 9453 } 9454 var obj = { 9455 capability: (0, _util.createPromiseCapability)(), 9456 data: null, 9457 resolved: false 9458 }; 9459 this.objs[objId] = obj; 9460 return obj; 9461 }, 9462 get: function PDFObjects_get(objId, callback) { 9463 if (callback) { 9464 this.ensureObj(objId).capability.promise.then(callback); 9465 return null; 9466 } 9467 var obj = this.objs[objId]; 9468 if (!obj || !obj.resolved) { 9469 throw new Error('Requesting object that isn\'t resolved yet ' + objId); 9470 } 9471 return obj.data; 9472 }, 9473 resolve: function PDFObjects_resolve(objId, data) { 9474 var obj = this.ensureObj(objId); 9475 obj.resolved = true; 9476 obj.data = data; 9477 obj.capability.resolve(data); 9478 },
9479 isResolved: function PDFObjects_isResolved(objId) { 9480 var objs = this.objs; 9481 if (!objs[objId]) { 9482 return false; 9483 } 9484 return objs[objId].resolved; 9485 }, 9486 hasData: function PDFObjects_hasData(objId) { 9487 return this.isResolved(objId); 9488 }, 9489 getData: function PDFObjects_getData(objId) { 9490 var objs = this.objs; 9491 if (!objs[objId] || !objs[objId].resolved) { 9492 return null; 9493 } 9494 return objs[objId].data; 9495 }, 9496 clear: function PDFObjects_clear() { 9497 this.objs = Object.create(null); 9498 } 9499 }; 9500 return PDFObjects; 9501}(); 9502var RenderTask = function RenderTaskClosure() { 9503 function RenderTask(internalRenderTask) { 9504 this._internalRenderTask = internalRenderTask; 9505 this.onContinue = null; 9506 } 9507 RenderTask.prototype = { 9508 get promise() { 9509 return this._internalRenderTask.capability.promise; 9510 }, 9511 cancel: function RenderTask_cancel() { 9512 this._internalRenderTask.cancel(); 9513 }, 9514 then: function RenderTask_then(onFulfilled, onRejected) { 9515 return this.promise.then.apply(this.promise, arguments); 9516 } 9517 }; 9518 return RenderTask; 9519}(); 9520var InternalRenderTask = function InternalRenderTaskClosure() { 9521 var canvasInRendering = new WeakMap(); 9522 function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) { 9523 var pdfBug = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false; 9524 9525 this.callback = callback; 9526 this.params = params; 9527 this.objs = objs; 9528 this.commonObjs = commonObjs; 9529 this.operatorListIdx = null; 9530 this.operatorList = operatorList; 9531 this.pageNumber = pageNumber; 9532 this.canvasFactory = canvasFactory; 9533 this.webGLContext = webGLContext; 9534 this._pdfBug = pdfBug; 9535 this.running = false; 9536 this.graphicsReadyCallback = null; 9537 this.graphicsReady = false; 9538 this.useRequestAnimationFrame = false; 9539 this.cancelled = false; 9540 this.capability = (0, _util.createPromiseCapability)(); 9541 this.task = new RenderTask(this); 9542 this._continueBound = this._continue.bind(this); 9543 this._scheduleNextBound = this._scheduleNext.bind(this); 9544 this._nextBound = this._next.bind(this); 9545 this._canvas = params.canvasContext.canvas; 9546 } 9547 InternalRenderTask.prototype = {
9548 initializeGraphics: function initializeGraphics(transparency) { 9549 if (this.cancelled) { 9550 return; 9551 } 9552 if (this._canvas) { 9553 if (canvasInRendering.has(this._canvas)) { 9554 throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); 9555 } 9556 canvasInRendering.set(this._canvas, this); 9557 } 9558 if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) { 9559 this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1); 9560 this.stepper.init(this.operatorList); 9561 this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); 9562 } 9563 var params = this.params; 9564 this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer); 9565 this.gfx.beginDrawing({ 9566 transform: params.transform, 9567 viewport: params.viewport, 9568 transparency: transparency, 9569 background: params.background 9570 }); 9571 this.operatorListIdx = 0; 9572 this.graphicsReady = true; 9573 if (this.graphicsReadyCallback) { 9574 this.graphicsReadyCallback(); 9575 } 9576 }, 9577 9578 cancel: function InternalRenderTask_cancel() { 9579 this.running = false; 9580 this.cancelled = true; 9581 if (this._canvas) { 9582 canvasInRendering.delete(this._canvas); 9583 } 9584 this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas')); 9585 }, 9586 operatorListChanged: function InternalRenderTask_operatorListChanged() { 9587 if (!this.graphicsReady) { 9588 if (!this.graphicsReadyCallback) { 9589 this.graphicsReadyCallback = this._continueBound; 9590 } 9591 return; 9592 } 9593 if (this.stepper) { 9594 this.stepper.updateOperatorList(this.operatorList); 9595 } 9596 if (this.running) { 9597 return; 9598 } 9599 this._continue(); 9600 }, 9601 _continue: function InternalRenderTask__continue() { 9602 this.running = true; 9603 if (this.cancelled) { 9604 return; 9605 } 9606 if (this.task.onContinue) { 9607 this.task.onContinue(this._scheduleNextBound); 9608 } else { 9609 this._scheduleNext(); 9610 } 9611 }, 9612 _scheduleNext: function InternalRenderTask__scheduleNext() { 9613 var _this16 = this; 9614 9615 if (this.useRequestAnimationFrame && typeof window !== 'undefined') { 9616 window.requestAnimationFrame(function () { 9617 _this16._nextBound().catch(_this16.callback); 9618 }); 9619 } else { 9620 Promise.resolve().then(this._nextBound).catch(this.callback); 9621 } 9622 }, 9623 _next: function InternalRenderTask__next() { 9624 var _this17 = this; 9625 9626 return new Promise(function () { 9627 if (_this17.cancelled) { 9628 return; 9629 } 9630 _this17.operatorListIdx = _this17.gfx.executeOperatorList(_this17.operatorList, _this17.operatorListIdx, _this17._continueBound, _this17.stepper); 9631 if (_this17.operatorListIdx === _this17.operatorList.argsArray.length) { 9632 _this17.running = false; 9633 if (_this17.operatorList.lastChunk) { 9634 _this17.gfx.endDrawing(); 9635 if (_this17._canvas) { 9636 canvasInRendering.delete(_this17._canvas); 9637 } 9638 _this17.callback(); 9639 } 9640 } 9641 }); 9642 } 9643 }; 9644 return InternalRenderTask; 9645}(); 9646var version, build; 9647{ 9648 exports.version = version = '2.0.943'; 9649 exports.build = build = 'dc98bf76'; 9650} 9651exports.getDocument = getDocument; 9652exports.LoopbackPort = LoopbackPort; 9653exports.PDFDataRangeTransport = PDFDataRangeTransport; 9654exports.PDFWorker = PDFWorker; 9655exports.PDFDocumentProxy = PDFDocumentProxy; 9656exports.PDFPageProxy = PDFPageProxy; 9657exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; 9658exports.version = version; 9659exports.build = build; 9660 9661/***/ }), 9662/* 130 */ 9663/***/ (function(module, exports, __w_pdfjs_require__) { 9664 9665"use strict"; 9666 9667 9668Object.defineProperty(exports, "__esModule", { 9669 value: true 9670}); 9671exports.loadScript = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exp
9671orts.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = exports.PageViewport = undefined; 9672 9673var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 9674 9675var _util = __w_pdfjs_require__(1); 9676 9677function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 9678 9679var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; 9680var SVG_NS = 'http://www.w3.org/2000/svg'; 9681 9682var DOMCanvasFactory = function () { 9683 function DOMCanvasFactory() { 9684 _classCallCheck(this, DOMCanvasFactory); 9685 } 9686 9687 _createClass(DOMCanvasFactory, [{ 9688 key: 'create', 9689 value: function create(width, height) { 9690 if (width <= 0 || height <= 0) { 9691 throw new Error('invalid canvas size'); 9692 } 9693 var canvas = document.createElement('canvas'); 9694 var context = canvas.getContext('2d'); 9695 canvas.width = width; 9696 canvas.height = height; 9697 return { 9698 canvas: canvas, 9699 context: context 9700 }; 9701 } 9702 }, { 9703 key: 'reset', 9704 value: function reset(canvasAndContext, width, height) { 9705 if (!canvasAndContext.canvas) { 9706 throw new Error('canvas is not specified'); 9707 } 9708 if (width <= 0 || height <= 0) { 9709 throw new Error('invalid canvas size'); 9710 } 9711 canvasAndContext.canvas.width = width; 9712 canvasAndContext.canvas.height = height; 9713 } 9714 }, { 9715 key: 'destroy', 9716 value: function destroy(canvasAndContext) { 9717 if (!canvasAndContext.canvas) { 9718 throw new Error('canvas is not specified'); 9719 } 9720 canvasAndContext.canvas.width = 0; 9721 canvasAndContext.canvas.height = 0; 9722 canvasAndContext.canvas = null; 9723 canvasAndContext.context = null; 9724 } 9725 }]); 9726 9727 return DOMCanvasFactory; 9728}(); 9729 9730var DOMCMapReaderFactory = function () { 9731 function DOMCMapReaderFactory(_ref) { 9732 var _ref$baseUrl = _ref.baseUrl, 9733 baseUrl = _ref$baseUrl === undefined ? null : _ref$baseUrl, 9734 _ref$isCompressed = _ref.isCompressed, 9735 isCompressed = _ref$isCompressed === undefined ? false : _ref$isCompressed; 9736 9737 _classCallCheck(this, DOMCMapReaderFactory); 9738 9739 this.baseUrl = baseUrl; 9740 this.isCompressed = isCompressed; 9741 } 9742 9743 _createClass(DOMCMapReaderFactory, [{ 9744 key: 'fetch', 9745 value: function fetch(_ref2) { 9746 var _this = this; 9747 9748 var name = _ref2.name; 9749 9750 if (!this.baseUrl) { 9751 return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.')); 9752 } 9753 if (!name) { 9754 return Promise.reject(new Error('CMap name must be specified.')); 9755 } 9756 return new Promise(function (resolve, reject) { 9757 var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : ''); 9758 var request = new XMLHttpRequest(); 9759 request.open('GET', url, true); 9760 if (_this.isCompressed) { 9761 request.responseType = 'arraybuffer'; 9762 } 9763 request.onreadystatechange = function () { 9764 if (request.readyState !== XMLHttpRequest.DONE) { 9765 return; 9766 } 9767 if (request.status === 200 || request.status === 0) { 9768 var data = void 0; 9769 if (_this.isCompressed && request.response) { 9770 data = new Uint8Array(request.response); 9771 } else if (!_this.isCompressed && request.responseText) { 9772 data = (0, _util.stringToBytes)(request.responseText); 9773 } 9774 if (data) { 9775 resolve({ 9776 cMapData: data, 9777 compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE 9778 }); 9779 return; 9780 } 9781 } 9782 reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url)); 9783 }; 9784 request.send(null); 9785 }); 9786 } 9787 }]); 9788 9789 return DOMCMapReaderFactory; 9790}(); 9791 9792var DOMSVGFactory = function () { 9793 function DOMSVGFactory() { 9794 _classCallCheck(this, DOMSVGFactory); 9795 } 9796 9797 _createClass(DOMSVGFactory, [{ 9798 key: 'create', 9799 value: function create(width, height) { 9800 (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); 9801 var svg = document.createElementNS(SVG_NS, 'svg:svg'); 9802 svg.setAttribute('version', '1.1'); 9803 svg.setAttribute('width', width + 'px'); 9804 svg.setAttribute('height', height + 'px'); 9805 svg.setAttribute('preserveAspectRatio', 'none'); 9806 svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); 9807 return svg; 9808 } 9809 }, { 9810 key: 'createElement', 9811 value: function createElement(type) { 9812 (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); 9813 return document.createElementNS(SVG_NS, type); 9814 } 9815 }]); 9816 9817 return DOMSVGFactory; 9818}(); 9819 9820var PageViewport = function () { 9821 function PageViewport(_ref3) { 9822 var viewBox = _ref3.viewBox, 9823 scale = _ref3.scale, 9824 rotation = _ref3.rotation, 9825 _ref3$offsetX = _ref3.offsetX, 9826 offsetX = _ref3$offsetX === undefined ? 0 : _ref3$offsetX, 9827 _ref3$offsetY = _ref3.offsetY, 9828 offsetY = _ref3$offsetY === undefined ? 0 : _ref3$offsetY, 9829 _ref3$dontFlip = _ref3.dontFlip, 9830 dontFlip = _ref3$dontFlip === undefined ? false : _ref3$dontFlip; 9831 9832 _classCallCheck(this, PageViewport); 9833 9834 this.viewBox = viewBox; 9835 this.scale = scale; 9836 this.rotation = rotation; 9837 this.offsetX = offsetX; 9838 this.offsetY = offsetY; 9839 var centerX = (viewBox[2] + viewBox[0]) / 2; 9840 var centerY = (viewBox[3] + viewBox[1]) / 2; 9841 var rotateA = void 0, 9842 rotateB = void 0, 9843 rotateC = void 0, 9844 rotateD = void 0; 9845 rotation = rotation % 360; 9846 rotation = rotation < 0 ? rotation + 360 : rotation; 9847 switch (rotation) { 9848 case 180: 9849 rotateA = -1; 9850 rotateB = 0; 9851 rotateC = 0; 9852 rotateD = 1; 9853 break; 9854 case 90: 9855 rotateA = 0; 9856 rotateB = 1; 9857 rotateC = 1; 9858 rotateD = 0; 9859 break; 9860 case 270: 9861 rotateA = 0; 9862 rotateB = -1; 9863 rotateC = -1; 9864 rotateD = 0; 9865 break; 9866 default: 9867 rotateA = 1; 9868 rotateB = 0; 9869 rotateC = 0; 9870 rotateD = -1; 9871 break; 9872 } 9873 if (dontFlip) { 9874 rotateC = -rotateC; 9875 rotateD = -rotateD; 9876 } 9877 var offsetCanvasX = void 0, 9878 offsetCanvasY = void 0; 9879 var width = void 0, 9880 height = void 0; 9881 if (rotateA === 0) { 9882 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; 9883 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; 9884 width = Math.abs(viewBox[3] - viewBox[1]) * scale; 9885 height = Math.abs(viewBox[2] - viewBox[0]) * scale; 9886 } else { 9887 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; 9888 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; 9889 width = Math.abs(viewBox[2] - viewBox[0]) * scale; 9890 height = Math.abs(viewBox[3] - viewBox[1]) * scale; 9891 } 9892 this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; 9893 this.width = width; 9894 this.height = height; 9895 } 9896 9897 _createClass(PageViewport, [{ 9898 key: 'clone', 9899 value: function clone() { 9900 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 9901 _ref4$scale = _ref4.scale, 9902 scale = _ref4$scale === undefined ? this.scale : _ref4$scale, 9903 _ref4$rotation = _ref4.rotation, 9904 rotation = _ref4$rotation === undefined ? this.rotation : _ref4$rotation, 9905 _ref4$dontFlip = _ref4.dontFlip, 9906 dontFlip = _ref4$dontFlip === undefined ? false : _ref4$dontFlip; 9907 9908 return new PageViewport({
9909 viewBox: this.viewBox.slice(), 9910 scale: scale, 9911 rotation: rotation, 9912 offsetX: this.offsetX, 9913 offsetY: this.offsetY, 9914 dontFlip: dontFlip 9915 }); 9916 } 9917 }, { 9918 key: 'convertToViewportPoint', 9919 value: function convertToViewportPoint(x, y) { 9920 return _util.Util.applyTransform([x, y], this.transform); 9921 } 9922 }, { 9923 key: 'convertToViewportRectangle', 9924 value: function convertToViewportRectangle(rect) { 9925 var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform); 9926 var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform); 9927 return [tl[0], tl[1], br[0], br[1]]; 9928 } 9929 }, { 9930 key: 'convertToPdfPoint', 9931 value: function convertToPdfPoint(x, y) { 9932 return _util.Util.applyInverseTransform([x, y], this.transform); 9933 } 9934 }]); 9935 9936 return PageViewport; 9937}(); 9938 9939var RenderingCancelledException = function RenderingCancelledException() { 9940 function RenderingCancelledException(msg, type) { 9941 this.message = msg; 9942 this.type = type; 9943 } 9944 RenderingCancelledException.prototype = new Error(); 9945 RenderingCancelledException.prototype.name = 'RenderingCancelledException'; 9946 RenderingCancelledException.constructor = RenderingCancelledException; 9947 return RenderingCancelledException; 9948}(); 9949var LinkTarget = { 9950 NONE: 0, 9951 SELF: 1, 9952 BLANK: 2, 9953 PARENT: 3, 9954 TOP: 4 9955}; 9956var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; 9957function addLinkAttributes(link) { 9958 var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 9959 url = _ref5.url, 9960 target = _ref5.target, 9961 rel = _ref5.rel; 9962 9963 link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; 9964 if (url) { 9965 var LinkTargetValues = Object.values(LinkTarget); 9966 var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; 9967 link.target = LinkTargetStringMap[targetIndex]; 9968 link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL; 9969 } 9970} 9971function getFilenameFromUrl(url) { 9972 var anchor = url.indexOf('#'); 9973 var query = url.indexOf('?'); 9974 var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); 9975 return url.substring(url.lastIndexOf('/', end) + 1, end); 9976} 9977 9978var StatTimer = function () { 9979 function StatTimer() { 9980 var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 9981 9982 _classCallCheck(this, StatTimer); 9983 9984 this.enabled = !!enable; 9985 this.started = Object.create(null); 9986 this.times = []; 9987 } 9988 9989 _createClass(StatTimer, [{ 9990 key: 'time', 9991 value: function time(name) { 9992 if (!this.enabled) { 9993 return; 9994 } 9995 if (name in this.started) { 9996 (0, _util.warn)('Timer is already running for ' + name); 9997 } 9998 this.started[name] = Date.now(); 9999 } 10000 }, { 10001 key: 'timeEnd', 10002 value: function timeEnd(name) { 10003 if (!this.enabled) { 10004 return; 10005 } 10006 if (!(name in this.started)) { 10007 (0, _util.warn)('Timer has not been started for ' + name); 10008 } 10009 this.times.push({ 10010 'name': name, 10011 'start': this.started[name], 10012 'end': Date.now() 10013 }); 10014 delete this.started[name]; 10015 } 10016 }, { 10017 key: 'toString', 10018 value: function toString() { 10019 var times = this.times; 10020 var out = '', 10021 longest = 0; 10022 for (var i = 0, ii = times.length; i < ii; ++i) { 10023 var name = times[i]['name']; 10024 if (name.length > longest) { 10025 longest = name.length; 10026 } 10027 } 10028 for (var _i = 0, _ii = times.length; _i < _ii; ++_i) { 10029 var span = times[_i]; 10030 var duration = span.end - span.start; 10031 out += span['name'].padEnd(longest) + ' ' + duration + 'ms\n'; 10032 } 10033 return out; 10034 } 10035 }]); 10036 10037 return StatTimer; 10038}(); 10039 10040var DummyStatTimer = function () { 10041 function DummyStatTimer() { 10042 _classCallCheck(this, DummyStatTimer); 10043 10044 (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); 10045 } 10046 10047 _createClass(DummyStatTimer, null, [{ 10048 key: 'time', 10049 value: function time(name) {} 10050 }, { 10051 key: 'timeEnd', 10052 value: function timeEnd(name) {} 10053 }, { 10054 key: 'toString', 10055 value: function toString() { 10056 return ''; 10057 } 10058 }]); 10059 10060 return DummyStatTimer; 10061}(); 10062 10063function loadScript(src) { 10064 return new Promise(function (resolve, reject) { 10065 var script = document.createElement('script'); 10066 script.src = src; 10067 script.onload = resolve; 10068 script.onerror = function () { 10069 reject(new Error('Cannot load script at: ' + script.src)); 10070 }; 10071 (document.head || document.documentElement).appendChild(script); 10072 }); 10073} 10074exports.PageViewport = PageViewport; 10075exports.RenderingCancelledException = RenderingCancelledException; 10076exports.addLinkAttributes = addLinkAttributes; 10077exports.getFilenameFromUrl = getFilenameFromUrl; 10078exports.LinkTarget = LinkTarget; 10079exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
10080exports.DOMCanvasFactory = DOMCanvasFactory; 10081exports.DOMCMapReaderFactory = DOMCMapReaderFactory; 10082exports.DOMSVGFactory = DOMSVGFactory; 10083exports.StatTimer = StatTimer; 10084exports.DummyStatTimer = DummyStatTimer; 10085exports.loadScript = loadScript; 10086 10087/***/ }), 10088/* 131 */ 10089/***/ (function(module, exports, __w_pdfjs_require__) { 10090 10091"use strict"; 10092 10093 10094Object.defineProperty(exports, "__esModule", { 10095 value: true 10096}); 10097exports.FontLoader = exports.FontFaceObject = undefined; 10098 10099var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 10100 10101var _util = __w_pdfjs_require__(1); 10102 10103function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 10104 10105function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 10106 10107function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 10108 10109var BaseFontLoader = function () { 10110 function BaseFontLoader(docId) { 10111 _classCallCheck(this, BaseFontLoader); 10112 10113 if (this.constructor === BaseFontLoader) { 10114 (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); 10115 } 10116 this.docId = docId; 10117 this.nativeFontFaces = []; 10118 this.styleElement = null; 10119 this.loadingContext = { 10120 requests: [], 10121 nextRequestId: 0 10122 }; 10123 } 10124 10125 _createClass(BaseFontLoader, [{ 10126 key: 'addNativeFontFace', 10127 value: function addNativeFontFace(nativeFontFace) { 10128 this.nativeFontFaces.push(nativeFontFace); 10129 document.fonts.add(nativeFontFace); 10130 } 10131 }, { 10132 key: 'insertRule', 10133 value: function insertRule(rule) { 10134 var styleElement = this.styleElement; 10135 if (!styleElement) { 10136 styleElement = this.styleElement = document.createElement('style'); 10137 styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId; 10138 document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); 10139 } 10140 var styleSheet = styleElement.sheet; 10141 styleSheet.insertRule(rule, styleSheet.cssRules.length); 10142 } 10143 }, { 10144 key: 'clear', 10145 value: function clear() { 10146 this.nativeFontFaces.forEach(function (nativeFontFace) { 10147 document.fonts.delete(nativeFontFace); 10148 }); 10149 this.nativeFontFaces.length = 0; 10150 if (this.styleElement) { 10151 this.styleElement.remove(); 10152 this.styleElement = null; 10153 } 10154 } 10155 }, { 10156 key: 'bind', 10157 value: function bind(fonts, callback) { 10158 var rules = []; 10159 var fontsToLoad = []; 10160 var fontLoadPromises = []; 10161 var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) { 10162 return nativeFontFace.loaded.catch(function (reason) { 10163 (0, _util.warn)('Failed to load font "' + nativeFontFace.family + '": ' + reason); 10164 }); 10165 }; 10166 var _iteratorNormalCompletion = true; 10167 var _didIteratorError = false; 10168 var _iteratorError = undefined; 10169 10170 try { 10171 for (var _iterator = fonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 10172 var font = _step.value; 10173 10174 if (font.attached || font.missingFile) { 10175 continue; 10176 } 10177 font.attached = true; 10178 if (this.isFontLoadingAPISupported) { 10179 var nativeFontFace = font.createNativeFontFace(); 10180 if (nativeFontFace) { 10181 this.addNativeFontFace(nativeFontFace);
10182 fontLoadPromises.push(getNativeFontPromise(nativeFontFace)); 10183 } 10184 } else { 10185 var rule = font.createFontFaceRule(); 10186 if (rule) { 10187 this.insertRule(rule); 10188 rules.push(rule); 10189 fontsToLoad.push(font); 10190 } 10191 } 10192 } 10193 } catch (err) { 10194 _didIteratorError = true; 10195 _iteratorError = err; 10196 } finally { 10197 try { 10198 if (!_iteratorNormalCompletion && _iterator.return) { 10199 _iterator.return(); 10200 } 10201 } finally { 10202 if (_didIteratorError) { 10203 throw _iteratorError; 10204 } 10205 } 10206 } 10207 10208 var request = this._queueLoadingCallback(callback); 10209 if (this.isFontLoadingAPISupported) { 10210 Promise.all(fontLoadPromises).then(request.complete); 10211 } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) { 10212 this._prepareFontLoadEvent(rules, fontsToLoad, request); 10213 } else { 10214 request.complete(); 10215 } 10216 } 10217 }, { 10218 key: '_queueLoadingCallback', 10219 value: function _queueLoadingCallback(callback) { 10220 function completeRequest() { 10221 (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); 10222 request.done = true; 10223 while (context.requests.length > 0 && context.requests[0].done) { 10224 var otherRequest = context.requests.shift(); 10225 setTimeout(otherRequest.callback, 0); 10226 } 10227 } 10228 var context = this.loadingContext; 10229 var request = { 10230 id: 'pdfjs-font-loading-' + context.nextRequestId++, 10231 done: false, 10232 complete: completeRequest, 10233 callback: callback 10234 }; 10235 context.requests.push(request); 10236 return request; 10237 } 10238 }, { 10239 key: '_prepareFontLoadEvent', 10240 value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { 10241 (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); 10242 } 10243 }, { 10244 key: 'isFontLoadingAPISupported', 10245 get: function get() { 10246 (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); 10247 } 10248 }, { 10249 key: 'isSyncFontLoadingSupported', 10250 get: function get() { 10251 (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); 10252 } 10253 }, { 10254 key: '_loadTestFont', 10255 get: function get() { 10256 (0, _util.unreachable)('Abstract method `_loadTestFont`.'); 10257 } 10258 }]); 10259 10260 return BaseFontLoader; 10261}(); 10262 10263var FontLoader = void 0; 10264{ 10265 exports.FontLoader = FontLoader = function (_BaseFontLoader) { 10266 _inherits(GenericFontLoader, _BaseFontLoader); 10267 10268 function GenericFontLoader(docId) { 10269 _classCallCheck(this, GenericFontLoader); 10270 10271 var _this = _possibleConstructorReturn(this, (GenericFontLoader.__proto__ || Object.getPrototypeOf(GenericFontLoader)).call(this, docId)); 10272 10273 _this.loadTestFontId = 0; 10274 return _this; 10275 } 10276 10277 _createClass(GenericFontLoader, [{ 10278 key: '_prepareFontLoadEvent', 10279 value: function _prepareFontLoadEvent(rules, fonts, request) { 10280 function int32(data, offset) { 10281 return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; 10282 } 10283 function spliceString(s, offset, remove, insert) { 10284 var chunk1 = s.substring(0, offset); 10285 var chunk2 = s.substring(offset + remove); 10286 return chunk1 + insert + chunk2; 10287 } 10288 var i = void 0, 10289 ii = void 0; 10290 var canvas = document.createElement('canvas'); 10291 canvas.width = 1; 10292 canvas.height = 1; 10293 var ctx = canvas.getContext('2d'); 10294 var called = 0; 10295 function isFontReady(name, callback) { 10296 called++; 10297 if (called > 30) { 10298 (0, _util.warn)('Load test font never loaded.'); 10299 callback(); 10300 return; 10301 } 10302 ctx.font = '30px ' + name; 10303 ctx.fillText('.', 0, 20); 10304 var imageData = ctx.getImageData(0, 0, 1, 1); 10305 if (imageData.data[3] > 0) { 10306 callback(); 10307 return; 10308 } 10309 setTimeout(isFontReady.bind(null, name, callback)); 10310 } 10311 var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++; 10312 var data = this._loadTestFont; 10313 var COMMENT_OFFSET = 976;
10314 data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); 10315 var CFF_CHECKSUM_OFFSET = 16; 10316 var XXXX_VALUE = 0x58585858; 10317 var checksum = int32(data, CFF_CHECKSUM_OFFSET); 10318 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { 10319 checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; 10320 } 10321 if (i < loadTestFontId.length) { 10322 checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; 10323 } 10324 data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); 10325 var url = 'url(data:font/opentype;base64,' + btoa(data) + ');'; 10326 var rule = '@font-face {font-family:"' + loadTestFontId + '";src:' + url + '}'; 10327 this.insertRule(rule); 10328 var names = []; 10329 for (i = 0, ii = fonts.length; i < ii; i++) { 10330 names.push(fonts[i].loadedName); 10331 } 10332 names.push(loadTestFontId); 10333 var div = document.createElement('div'); 10334 div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); 10335 for (i = 0, ii = names.length; i < ii; ++i) { 10336 var span = document.createElement('span'); 10337 span.textContent = 'Hi'; 10338 span.style.fontFamily = names[i]; 10339 div.appendChild(span); 10340 } 10341 document.body.appendChild(div); 10342 isFontReady(loadTestFontId, function () { 10343 document.body.removeChild(div); 10344 request.complete(); 10345 }); 10346 } 10347 }, { 10348 key: 'isFontLoadingAPISupported', 10349 get: function get() { 10350 var supported = typeof document !== 'undefined' && !!document.fonts; 10351 if (supported && typeof navigator !== 'undefined') { 10352 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 10353 if (m && m[1] < 63) { 10354 supported = false; 10355 } 10356 } 10357 return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); 10358 } 10359 }, { 10360 key: 'isSyncFontLoadingSupported', 10361 get: function get() { 10362 var supported = false; 10363 if (typeof navigator === 'undefined') { 10364 supported = true; 10365 } else { 10366 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); 10367 if (m && m[1] >= 14) { 10368 supported = true; 10369 } 10370 } 10371 return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); 10372 } 10373 }, { 10374 key: '_loadTestFont', 10375 get: function get() { 10376 var getLoadTestFont = function getLoadTestFont() { 10377 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=='); 10378 }; 10379 return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); 10380 } 10381 }]); 10382 10383 return GenericFontLoader; 10384 }(BaseFontLoader); 10385} 10386var IsEvalSupportedCached = { 10387 get value() { 10388 return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); 10389 } 10390}; 10391 10392var FontFaceObject = function () { 10393 function FontFaceObject(translatedData, _ref) { 10394 var _ref$isEvalSupported = _ref.isEvalSupported, 10395 isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported, 10396 _ref$disableFontFace = _ref.disableFontFace, 10397 disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace, 10398 _ref$ignoreErrors = _ref.ignoreErrors, 10399 ignoreErrors = _ref$ignoreErrors === undefined ? false : _ref$ignoreErrors, 10400 _ref$onUnsupportedFea = _ref.onUnsupportedFeature, 10401 onUnsupportedFeature = _ref$onUnsupportedFea === undefined ? null : _ref$onUnsupportedFea, 10402 _ref$fontRegistry = _ref.fontRegistry, 10403 fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry; 10404 10405 _classCallCheck(this, FontFaceObject); 10406 10407 this.compiledGlyphs = Object.create(null); 10408 for (var i in translatedData) { 10409 this[i] = translatedData[i]; 10410 } 10411 this.isEvalSupported = isEvalSupported !== false; 10412 this.disableFontFace = disableFontFace === true; 10413 this.ignoreErrors = ignoreErrors === true; 10414 this._onUnsupportedFeature = onUnsupportedFeature; 10415 this.fontRegistry = fontRegistry; 10416 } 10417 10418 _createClass(FontFaceObject, [{ 10419 key: 'createNativeFontFace', 10420 value: function createNativeFontFace() { 10421 if (!this.data || this.disableFontFace) { 10422 return null; 10423 } 10424 var nativeFontFace = new FontFace(this.loadedName, this.data, {}); 10425 if (this.fontRegistry) { 10426 this.fontRegistry.registerFont(this); 10427 } 10428 return nativeFontFace; 10429 } 10430 }, { 10431 key: 'createFontFaceRule', 10432 value: function createFontFaceRule() { 10433 if (!this.data || this.disableFontFace) { 10434 return null; 10435 } 10436 var data = (0, _util.bytesToString)(new Uint8Array(this.data)); 10437 var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');'; 10438 var rule = '@font-face {font-family:"' + this.loadedName + '";src:' + url + '}'; 10439 if (this.fontRegistry) { 10440 this.fontRegistry.registerFont(this, url); 10441 } 10442 return rule; 10443 } 10444 }, { 10445 key: 'getPathGenerator', 10446 value: function getPathGenerator(objs, character) { 10447 if (this.compiledGlyphs[character] !== undefined) { 10448 return this.compiledGlyphs[character]; 10449 } 10450 var cmds = void 0, 10451 current = void 0;
10452 try { 10453 cmds = objs.get(this.loadedName + '_path_' + character); 10454 } catch (ex) { 10455 if (!this.ignoreErrors) { 10456 throw ex; 10457 } 10458 if (this._onUnsupportedFeature) { 10459 this._onUnsupportedFeature({ featureId: _util.UNSUPPORTED_FEATURES.font }); 10460 } 10461 (0, _util.warn)('getPathGenerator - ignoring character: "' + ex + '".'); 10462 return this.compiledGlyphs[character] = function (c, size) {}; 10463 } 10464 if (this.isEvalSupported && IsEvalSupportedCached.value) { 10465 var args = void 0, 10466 js = ''; 10467 for (var i = 0, ii = cmds.length; i < ii; i++) { 10468 current = cmds[i]; 10469 if (current.args !== undefined) { 10470 args = current.args.join(','); 10471 } else { 10472 args = ''; 10473 } 10474 js += 'c.' + current.cmd + '(' + args + ');\n'; 10475 } 10476 return this.compiledGlyphs[character] = new Function('c', 'size', js); 10477 } 10478 return this.compiledGlyphs[character] = function (c, size) { 10479 for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { 10480 current = cmds[_i]; 10481 if (current.cmd === 'scale') { 10482 current.args = [size, -size]; 10483 } 10484 c[current.cmd].apply(c, current.args); 10485 } 10486 }; 10487 } 10488 }]); 10489 10490 return FontFaceObject; 10491}(); 10492 10493exports.FontFaceObject = FontFaceObject; 10494exports.FontLoader = FontLoader; 10495 10496/***/ }), 10497/* 132 */ 10498/***/ (function(module, exports, __w_pdfjs_require__) { 10499 10500"use strict"; 10501 10502 10503var compatibilityParams = Object.create(null); 10504{ 10505 var isNodeJS = __w_pdfjs_require__(4); 10506 var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; 10507 var isIE = /Trident/.test(userAgent); 10508 var isIOSChrome = /CriOS/.test(userAgent); 10509 (function checkOnBlobSupport() { 10510 if (isIE || isIOSChrome) { 10511 compatibilityParams.disableCreateObjectURL = true; 10512 } 10513 })(); 10514 (function checkFontFaceAndImage() { 10515 if (isNodeJS()) { 10516 compatibilityParams.disableFontFace = true; 10517 compatibilityParams.nativeImageDecoderSupport = 'none'; 10518 } 10519 })(); 10520} 10521exports.apiCompatibilityParams = Object.freeze(compatibilityParams); 10522 10523/***/ }), 10524/* 133 */ 10525/***/ (function(module, exports, __w_pdfjs_require__) { 10526 10527"use strict"; 10528 10529 10530Object.defineProperty(exports, "__esModule", { 10531 value: true 10532}); 10533exports.CanvasGraphics = undefined; 10534 10535var _util = __w_pdfjs_require__(1); 10536 10537var _pattern_helper = __w_pdfjs_require__(134); 10538 10539var MIN_FONT_SIZE = 16; 10540var MAX_FONT_SIZE = 100; 10541var MAX_GROUP_SIZE = 4096; 10542var MIN_WIDTH_FACTOR = 0.65; 10543var COMPILE_TYPE3_GLYPHS = true; 10544var MAX_SIZE_TO_COMPILE = 1000; 10545var FULL_CHUNK_HEIGHT = 16; 10546var IsLittleEndianCached = { 10547 get value() { 10548 return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); 10549 } 10550}; 10551function addContextCurrentTransform(ctx) { 10552 if (!ctx.mozCurrentTransform) { 10553 ctx._originalSave = ctx.save; 10554 ctx._originalRestore = ctx.restore; 10555 ctx._originalRotate = ctx.rotate; 10556 ctx._originalScale = ctx.scale; 10557 ctx._originalTranslate = ctx.translate; 10558 ctx._originalTransform = ctx.transform; 10559 ctx._originalSetTransform = ctx.setTransform; 10560 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; 10561 ctx._transformStack = []; 10562 Object.defineProperty(ctx, 'mozCurrentTransform', { 10563 get: function getCurrentTransform() { 10564 return this._transformMatrix; 10565 } 10566 }); 10567 Object.defineProperty(ctx, 'mozCurrentTransformInverse', { 10568 get: function getCurrentTransformInverse() { 10569 var m = this._transformMatrix; 10570 var a = m[0], 10571 b = m[1], 10572 c = m[2], 10573 d = m[3], 10574 e = m[4], 10575 f = m[5]; 10576 var ad_bc = a * d - b * c; 10577 var bc_ad = b * c - a * d; 10578 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]; 10579 } 10580 }); 10581 ctx.save = function ctxSave() { 10582 var old = this._transformMatrix; 10583 this._transformStack.push(old); 10584 this._transformMatrix = old.slice(0, 6); 10585 this._originalSave(); 10586 }; 10587 ctx.restore = function ctxRestore() { 10588 var prev = this._transformStack.pop(); 10589 if (prev) { 10590 this._transformMatrix = prev; 10591 this._originalRestore(); 10592 } 10593 }; 10594 ctx.translate = function ctxTranslate(x, y) { 10595 var m = this._transformMatrix; 10596 m[4] = m[0] * x + m[2] * y + m[4]; 10597 m[5] = m[1] * x + m[3] * y + m[5]; 10598 this._originalTranslate(x, y); 10599 }; 10600 ctx.scale = function ctxScale(x, y) { 10601 var m = this._transformMatrix; 10602 m[0] = m[0] * x; 10603 m[1] = m[1] * x; 10604 m[2] = m[2] * y; 10605 m[3] = m[3] * y; 10606 this._originalScale(x, y); 10607 }; 10608 ctx.transform = function ctxTransform(a, b, c, d, e, f) { 10609 var m = this._transformMatrix; 10610 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]]; 10611 ctx._originalTransform(a, b, c, d, e, f); 10612 }; 10613 ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { 10614 this._transformMatrix = [a, b, c, d, e, f]; 10615 ctx._originalSetTransform(a, b, c, d, e, f); 10616 }; 10617 ctx.rotate = function ctxRotate(angle) {
10618 var cosValue = Math.cos(angle); 10619 var sinValue = Math.sin(angle); 10620 var m = this._transformMatrix; 10621 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]]; 10622 this._originalRotate(angle); 10623 }; 10624 } 10625} 10626var CachedCanvases = function CachedCanvasesClosure() { 10627 function CachedCanvases(canvasFactory) { 10628 this.canvasFactory = canvasFactory; 10629 this.cache = Object.create(null); 10630 } 10631 CachedCanvases.prototype = { 10632 getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { 10633 var canvasEntry; 10634 if (this.cache[id] !== undefined) { 10635 canvasEntry = this.cache[id]; 10636 this.canvasFactory.reset(canvasEntry, width, height); 10637 canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); 10638 } else { 10639 canvasEntry = this.canvasFactory.create(width, height); 10640 this.cache[id] = canvasEntry; 10641 } 10642 if (trackTransform) { 10643 addContextCurrentTransform(canvasEntry.context); 10644 } 10645 return canvasEntry; 10646 }, 10647 clear: function clear() { 10648 for (var id in this.cache) { 10649 var canvasEntry = this.cache[id]; 10650 this.canvasFactory.destroy(canvasEntry); 10651 delete this.cache[id]; 10652 } 10653 } 10654 }; 10655 return CachedCanvases; 10656}(); 10657function compileType3Glyph(imgData) { 10658 var POINT_TO_PROCESS_LIMIT = 1000; 10659 var width = imgData.width, 10660 height = imgData.height; 10661 var i, 10662 j, 10663 j0, 10664 width1 = width + 1; 10665 var points = new Uint8Array(width1 * (height + 1)); 10666 var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); 10667 var lineSize = width + 7 & ~7, 10668 data0 = imgData.data; 10669 var data = new Uint8Array(lineSize * height), 10670 pos = 0, 10671 ii; 10672 for (i = 0, ii = data0.length; i < ii; i++) { 10673 var mask = 128, 10674 elem = data0[i]; 10675 while (mask > 0) { 10676 data[pos++] = elem & mask ? 0 : 255; 10677 mask >>= 1; 10678 } 10679 } 10680 var count = 0; 10681 pos = 0; 10682 if (data[pos] !== 0) { 10683 points[0] = 1; 10684 ++count; 10685 } 10686 for (j = 1; j < width; j++) { 10687 if (data[pos] !== data[pos + 1]) { 10688 points[j] = data[pos] ? 2 : 1; 10689 ++count; 10690 } 10691 pos++; 10692 } 10693 if (data[pos] !== 0) { 10694 points[j] = 2; 10695 ++count; 10696 } 10697 for (i = 1; i < height; i++) { 10698 pos = i * lineSize; 10699 j0 = i * width1; 10700 if (data[pos - lineSize] !== data[pos]) { 10701 points[j0] = data[pos] ? 1 : 8; 10702 ++count; 10703 } 10704 var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); 10705 for (j = 1; j < width; j++) { 10706 sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); 10707 if (POINT_TYPES[sum]) { 10708 points[j0 + j] = POINT_TYPES[sum]; 10709 ++count; 10710 } 10711 pos++; 10712 } 10713 if (data[pos - lineSize] !== data[pos]) { 10714 points[j0 + j] = data[pos] ? 2 : 4; 10715 ++count; 10716 } 10717 if (count > POINT_TO_PROCESS_LIMIT) { 10718 return null; 10719 } 10720 } 10721 pos = lineSize * (height - 1); 10722 j0 = i * width1; 10723 if (data[pos] !== 0) { 10724 points[j0] = 8; 10725 ++count; 10726 } 10727 for (j = 1; j < width; j++) { 10728 if (data[pos] !== data[pos + 1]) { 10729 points[j0 + j] = data[pos] ? 4 : 8; 10730 ++count; 10731 } 10732 pos++; 10733 } 10734 if (data[pos] !== 0) { 10735 points[j0 + j] = 4; 10736 ++count; 10737 } 10738 if (count > POINT_TO_PROCESS_LIMIT) { 10739 return null; 10740 } 10741 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); 10742 var outlines = []; 10743 for (i = 0; count && i <= height; i++) { 10744 var p = i * width1; 10745 var end = p + width; 10746 while (p < end && !points[p]) { 10747 p++; 10748 } 10749 if (p === end) { 10750 continue; 10751 } 10752 var coords = [p % width1, i]; 10753 var type = points[p], 10754 p0 = p, 10755 pp; 10756 do { 10757 var step = steps[type]; 10758 do { 10759 p += step; 10760 } while (!points[p]); 10761 pp = points[p]; 10762 if (pp !== 5 && pp !== 10) { 10763 type = pp; 10764 points[p] = 0; 10765 } else { 10766 type = pp & 0x33 * type >> 4; 10767 points[p] &= type >> 2 | type << 2; 10768 } 10769 coords.push(p % width1); 10770 coords.push(p / width1 | 0); 10771 --count; 10772 } while (p0 !== p); 10773 outlines.push(coords); 10774 --i; 10775 } 10776 var drawOutline = function drawOutline(c) { 10777 c.save(); 10778 c.scale(1 / width, -1 / height); 10779 c.translate(0, -height); 10780 c.beginPath(); 10781 for (var i = 0, ii = outlines.length; i < ii; i++) { 10782 var o = outlines[i]; 10783 c.moveTo(o[0], o[1]); 10784 for (var j = 2, jj = o.length; j < jj; j += 2) { 10785 c.lineTo(o[j], o[j + 1]); 10786 } 10787 } 10788 c.fill(); 10789 c.beginPath();
10790 c.restore(); 10791 }; 10792 return drawOutline; 10793} 10794var CanvasExtraState = function CanvasExtraStateClosure() { 10795 function CanvasExtraState() { 10796 this.alphaIsShape = false; 10797 this.fontSize = 0; 10798 this.fontSizeScale = 1; 10799 this.textMatrix = _util.IDENTITY_MATRIX; 10800 this.textMatrixScale = 1; 10801 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 10802 this.leading = 0; 10803 this.x = 0; 10804 this.y = 0; 10805 this.lineX = 0; 10806 this.lineY = 0; 10807 this.charSpacing = 0; 10808 this.wordSpacing = 0; 10809 this.textHScale = 1; 10810 this.textRenderingMode = _util.TextRenderingMode.FILL; 10811 this.textRise = 0; 10812 this.fillColor = '#000000'; 10813 this.strokeColor = '#000000'; 10814 this.patternFill = false; 10815 this.fillAlpha = 1; 10816 this.strokeAlpha = 1; 10817 this.lineWidth = 1; 10818 this.activeSMask = null; 10819 this.resumeSMaskCtx = null; 10820 } 10821 CanvasExtraState.prototype = { 10822 clone: function CanvasExtraState_clone() { 10823 return Object.create(this); 10824 }, 10825 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { 10826 this.x = x; 10827 this.y = y; 10828 } 10829 }; 10830 return CanvasExtraState; 10831}(); 10832var CanvasGraphics = function CanvasGraphicsClosure() { 10833 var EXECUTION_TIME = 15; 10834 var EXECUTION_STEPS = 10; 10835 function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { 10836 this.ctx = canvasCtx; 10837 this.current = new CanvasExtraState(); 10838 this.stateStack = []; 10839 this.pendingClip = null; 10840 this.pendingEOFill = false; 10841 this.res = null; 10842 this.xobjs = null; 10843 this.commonObjs = commonObjs; 10844 this.objs = objs; 10845 this.canvasFactory = canvasFactory; 10846 this.webGLContext = webGLContext; 10847 this.imageLayer = imageLayer; 10848 this.groupStack = []; 10849 this.processingType3 = null; 10850 this.baseTransform = null; 10851 this.baseTransformStack = []; 10852 this.groupLevel = 0; 10853 this.smaskStack = []; 10854 this.smaskCounter = 0; 10855 this.tempSMask = null; 10856 this.cachedCanvases = new CachedCanvases(this.canvasFactory); 10857 if (canvasCtx) { 10858 addContextCurrentTransform(canvasCtx); 10859 } 10860 this._cachedGetSinglePixelWidth = null; 10861 } 10862 function putBinaryImageData(ctx, imgData) { 10863 if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { 10864 ctx.putImageData(imgData, 0, 0); 10865 return; 10866 } 10867 var height = imgData.height, 10868 width = imgData.width; 10869 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 10870 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 10871 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 10872 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 10873 var srcPos = 0, 10874 destPos; 10875 var src = imgData.data; 10876 var dest = chunkImgData.data; 10877 var i, j, thisChunkHeight, elemsInThisChunk; 10878 if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { 10879 var srcLength = src.byteLength; 10880 var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); 10881 var dest32DataLength = dest32.length; 10882 var fullSrcDiff = width + 7 >> 3; 10883 var white = 0xFFFFFFFF; 10884 var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; 10885 for (i = 0; i < totalChunks; i++) { 10886 thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 10887 destPos = 0; 10888 for (j = 0; j < thisChunkHeight; j++) { 10889 var srcDiff = srcLength - srcPos; 10890 var k = 0; 10891 var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; 10892 var kEndUnrolled = kEnd & ~7; 10893 var mask = 0; 10894 var srcByte = 0; 10895 for (; k < kEndUnrolled; k += 8) { 10896 srcByte = src[srcPos++]; 10897 dest32[destPos++] = srcByte & 128 ? white : black; 10898 dest32[destPos++] = srcByte & 64 ? white : black; 10899 dest32[destPos++] = srcByte & 32 ? white : black; 10900 dest32[destPos++] = srcByte & 16 ? white : black; 10901 dest32[destPos++] = srcByte & 8 ? white : black; 10902 dest32[destPos++] = srcByte & 4 ? white : black; 10903 dest32[destPos++] = srcByte & 2 ? white : black; 10904 dest32[destPos++] = srcByte & 1 ? white : black; 10905 } 10906 for (; k < kEnd; k++) { 10907 if (mask === 0) { 10908 srcByte = src[srcPos++]; 10909 mask = 128; 10910 } 10911 dest32[destPos++] = srcByte & mask ? white : black; 10912 mask >>= 1; 10913 } 10914 } 10915 while (destPos < dest32DataLength) { 10916 dest32[destPos++] = 0; 10917 } 10918 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 10919 } 10920 } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { 10921 j = 0; 10922 elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; 10923 for (i = 0; i < fullChunks; i++) { 10924 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 10925 srcPos += elemsInThisChunk; 10926 ctx.putImageData(chunkImgData, 0, j); 10927 j += FULL_CHUNK_HEIGHT; 10928 } 10929 if (i < totalChunks) { 10930 elemsInThisChunk = width * partialChunkHeight * 4; 10931 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); 10932 ctx.putImageData(chunkImgData, 0, j); 10933 } 10934 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { 10935 thisChunkHeight = FULL_CHUNK_HEIGHT; 10936 elemsInThisChunk = width * thisChunkHeight; 10937 for (i = 0; i < totalChunks; i++) { 10938 if (i >= fullChunks) { 10939 thisChunkHeight = partialChunkHeight; 10940 elemsInThisChunk = width * thisChunkHeight; 10941 } 10942 destPos = 0;
10943 for (j = elemsInThisChunk; j--;) { 10944 dest[destPos++] = src[srcPos++]; 10945 dest[destPos++] = src[srcPos++]; 10946 dest[destPos++] = src[srcPos++]; 10947 dest[destPos++] = 255; 10948 } 10949 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 10950 } 10951 } else { 10952 throw new Error('bad image kind: ' + imgData.kind); 10953 } 10954 } 10955 function putBinaryImageMask(ctx, imgData) { 10956 var height = imgData.height, 10957 width = imgData.width; 10958 var partialChunkHeight = height % FULL_CHUNK_HEIGHT; 10959 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; 10960 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; 10961 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); 10962 var srcPos = 0; 10963 var src = imgData.data; 10964 var dest = chunkImgData.data; 10965 for (var i = 0; i < totalChunks; i++) { 10966 var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; 10967 var destPos = 3; 10968 for (var j = 0; j < thisChunkHeight; j++) { 10969 var mask = 0; 10970 for (var k = 0; k < width; k++) { 10971 if (!mask) { 10972 var elem = src[srcPos++]; 10973 mask = 128; 10974 } 10975 dest[destPos] = elem & mask ? 0 : 255; 10976 destPos += 4; 10977 mask >>= 1; 10978 } 10979 } 10980 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); 10981 } 10982 } 10983 function copyCtxState(sourceCtx, destCtx) { 10984 var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; 10985 for (var i = 0, ii = properties.length; i < ii; i++) { 10986 var property = properties[i]; 10987 if (sourceCtx[property] !== undefined) { 10988 destCtx[property] = sourceCtx[property]; 10989 } 10990 } 10991 if (sourceCtx.setLineDash !== undefined) { 10992 destCtx.setLineDash(sourceCtx.getLineDash()); 10993 destCtx.lineDashOffset = sourceCtx.lineDashOffset; 10994 } 10995 } 10996 function resetCtxToDefault(ctx) { 10997 ctx.strokeStyle = '#000000'; 10998 ctx.fillStyle = '#000000'; 10999 ctx.fillRule = 'nonzero'; 11000 ctx.globalAlpha = 1; 11001 ctx.lineWidth = 1; 11002 ctx.lineCap = 'butt'; 11003 ctx.lineJoin = 'miter'; 11004 ctx.miterLimit = 10; 11005 ctx.globalCompositeOperation = 'source-over'; 11006 ctx.font = '10px sans-serif'; 11007 if (ctx.setLineDash !== undefined) { 11008 ctx.setLineDash([]); 11009 ctx.lineDashOffset = 0; 11010 } 11011 } 11012 function composeSMaskBackdrop(bytes, r0, g0, b0) { 11013 var length = bytes.length; 11014 for (var i = 3; i < length; i += 4) { 11015 var alpha = bytes[i]; 11016 if (alpha === 0) { 11017 bytes[i - 3] = r0; 11018 bytes[i - 2] = g0; 11019 bytes[i - 1] = b0; 11020 } else if (alpha < 255) { 11021 var alpha_ = 255 - alpha; 11022 bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; 11023 bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; 11024 bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; 11025 } 11026 } 11027 } 11028 function composeSMaskAlpha(maskData, layerData, transferMap) { 11029 var length = maskData.length; 11030 var scale = 1 / 255; 11031 for (var i = 3; i < length; i += 4) { 11032 var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; 11033 layerData[i] = layerData[i] * alpha * scale | 0; 11034 } 11035 } 11036 function composeSMaskLuminosity(maskData, layerData, transferMap) { 11037 var length = maskData.length; 11038 for (var i = 3; i < length; i += 4) { 11039 var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; 11040 layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; 11041 } 11042 } 11043 function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { 11044 var hasBackdrop = !!backdrop; 11045 var r0 = hasBackdrop ? backdrop[0] : 0; 11046 var g0 = hasBackdrop ? backdrop[1] : 0; 11047 var b0 = hasBackdrop ? backdrop[2] : 0; 11048 var composeFn; 11049 if (subtype === 'Luminosity') { 11050 composeFn = composeSMaskLuminosity; 11051 } else { 11052 composeFn = composeSMaskAlpha; 11053 } 11054 var PIXELS_TO_PROCESS = 1048576; 11055 var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); 11056 for (var row = 0; row < height; row += chunkSize) { 11057 var chunkHeight = Math.min(chunkSize, height - row); 11058 var maskData = maskCtx.getImageData(0, row, width, chunkHeight); 11059 var layerData = layerCtx.getImageData(0, row, width, chunkHeight); 11060 if (hasBackdrop) { 11061 composeSMaskBackdrop(maskData.data, r0, g0, b0); 11062 } 11063 composeFn(maskData.data, layerData.data, transferMap); 11064 maskCtx.putImageData(layerData, 0, row); 11065 } 11066 } 11067 function composeSMask(ctx, smask, layerCtx, webGLContext) { 11068 var mask = smask.canvas; 11069 var maskCtx = smask.context; 11070 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); 11071 var backdrop = smask.backdrop || null; 11072 if (!smask.transferMap && webGLContext.isEnabled) { 11073 var composed = webGLContext.composeSMask({ 11074 layer: layerCtx.canvas, 11075 mask: mask, 11076 properties: { 11077 subtype: smask.subtype, 11078 backdrop: backdrop 11079 } 11080 }); 11081 ctx.setTransform(1, 0, 0, 1, 0, 0); 11082 ctx.drawImage(composed, smask.offsetX, smask.offsetY); 11083 return; 11084 } 11085 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); 11086 ctx.drawImage(mask, 0, 0); 11087 }
11088 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 11089 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 11090 var NORMAL_CLIP = {}; 11091 var EO_CLIP = {}; 11092 CanvasGraphics.prototype = { 11093 beginDrawing: function beginDrawing(_ref) { 11094 var transform = _ref.transform, 11095 viewport = _ref.viewport, 11096 transparency = _ref.transparency, 11097 _ref$background = _ref.background, 11098 background = _ref$background === undefined ? null : _ref$background; 11099 11100 var width = this.ctx.canvas.width; 11101 var height = this.ctx.canvas.height; 11102 this.ctx.save(); 11103 this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; 11104 this.ctx.fillRect(0, 0, width, height); 11105 this.ctx.restore(); 11106 if (transparency) { 11107 var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); 11108 this.compositeCtx = this.ctx; 11109 this.transparentCanvas = transparentCanvas.canvas; 11110 this.ctx = transparentCanvas.context; 11111 this.ctx.save(); 11112 this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); 11113 } 11114 this.ctx.save(); 11115 resetCtxToDefault(this.ctx); 11116 if (transform) { 11117 this.ctx.transform.apply(this.ctx, transform); 11118 } 11119 this.ctx.transform.apply(this.ctx, viewport.transform); 11120 this.baseTransform = this.ctx.mozCurrentTransform.slice(); 11121 if (this.imageLayer) { 11122 this.imageLayer.beginLayout(); 11123 } 11124 }, 11125 11126 executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { 11127 var argsArray = operatorList.argsArray; 11128 var fnArray = operatorList.fnArray; 11129 var i = executionStartIdx || 0; 11130 var argsArrayLen = argsArray.length; 11131 if (argsArrayLen === i) { 11132 return i; 11133 } 11134 var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; 11135 var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; 11136 var steps = 0; 11137 var commonObjs = this.commonObjs; 11138 var objs = this.objs; 11139 var fnId; 11140 while (true) { 11141 if (stepper !== undefined && i === stepper.nextBreakPoint) { 11142 stepper.breakIt(i, continueCallback); 11143 return i; 11144 } 11145 fnId = fnArray[i]; 11146 if (fnId !== _util.OPS.dependency) { 11147 this[fnId].apply(this, argsArray[i]); 11148 } else { 11149 var deps = argsArray[i]; 11150 for (var n = 0, nn = deps.length; n < nn; n++) { 11151 var depObjId = deps[n]; 11152 var common = depObjId[0] === 'g' && depObjId[1] === '_'; 11153 var objsPool = common ? commonObjs : objs; 11154 if (!objsPool.isResolved(depObjId)) { 11155 objsPool.get(depObjId, continueCallback); 11156 return i; 11157 } 11158 } 11159 } 11160 i++; 11161 if (i === argsArrayLen) { 11162 return i; 11163 } 11164 if (chunkOperations && ++steps > EXECUTION_STEPS) { 11165 if (Date.now() > endTime) { 11166 continueCallback(); 11167 return i; 11168 } 11169 steps = 0; 11170 } 11171 } 11172 }, 11173 endDrawing: function CanvasGraphics_endDrawing() { 11174 if (this.current.activeSMask !== null) { 11175 this.endSMaskGroup(); 11176 } 11177 this.ctx.restore(); 11178 if (this.transparentCanvas) { 11179 this.ctx = this.compositeCtx; 11180 this.ctx.save(); 11181 this.ctx.setTransform(1, 0, 0, 1, 0, 0); 11182 this.ctx.drawImage(this.transparentCanvas, 0, 0); 11183 this.ctx.restore(); 11184 this.transparentCanvas = null; 11185 } 11186 this.cachedCanvases.clear(); 11187 this.webGLContext.clear(); 11188 if (this.imageLayer) { 11189 this.imageLayer.endLayout(); 11190 } 11191 }, 11192 setLineWidth: function CanvasGraphics_setLineWidth(width) { 11193 this.current.lineWidth = width; 11194 this.ctx.lineWidth = width; 11195 }, 11196 setLineCap: function CanvasGraphics_setLineCap(style) { 11197 this.ctx.lineCap = LINE_CAP_STYLES[style]; 11198 }, 11199 setLineJoin: function CanvasGraphics_setLineJoin(style) { 11200 this.ctx.lineJoin = LINE_JOIN_STYLES[style]; 11201 }, 11202 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { 11203 this.ctx.miterLimit = limit; 11204 }, 11205 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { 11206 var ctx = this.ctx; 11207 if (ctx.setLineDash !== undefined) { 11208 ctx.setLineDash(dashArray); 11209 ctx.lineDashOffset = dashPhase; 11210 } 11211 }, 11212 setRenderingIntent: function CanvasGraphics_setRenderingIntent
vendor: 4,102 bytes, lines 11212-11318
11212(intent) {}, 11213 setFlatness: function CanvasGraphics_setFlatness(flatness) {}, 11214 setGState: function CanvasGraphics_setGState(states) { 11215 for (var i = 0, ii = states.length; i < ii; i++) { 11216 var state = states[i]; 11217 var key = state[0]; 11218 var value = state[1]; 11219 switch (key) { 11220 case 'LW': 11221 this.setLineWidth(value); 11222 break; 11223 case 'LC': 11224 this.setLineCap(value); 11225 break; 11226 case 'LJ': 11227 this.setLineJoin(value); 11228 break; 11229 case 'ML': 11230 this.setMiterLimit(value); 11231 break; 11232 case 'D': 11233 this.setDash(value[0], value[1]); 11234 break; 11235 case 'RI': 11236 this.setRenderingIntent(value); 11237 break; 11238 case 'FL': 11239 this.setFlatness(value); 11240 break; 11241 case 'Font': 11242 this.setFont(value[0], value[1]); 11243 break; 11244 case 'CA': 11245 this.current.strokeAlpha = state[1]; 11246 break; 11247 case 'ca': 11248 this.current.fillAlpha = state[1]; 11249 this.ctx.globalAlpha = state[1]; 11250 break; 11251 case 'BM': 11252 this.ctx.globalCompositeOperation = value; 11253 break; 11254 case 'SMask': 11255 if (this.current.activeSMask) { 11256 if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { 11257 this.suspendSMaskGroup(); 11258 } else { 11259 this.endSMaskGroup(); 11260 } 11261 } 11262 this.current.activeSMask = value ? this.tempSMask : null; 11263 if (this.current.activeSMask) { 11264 this.beginSMaskGroup(); 11265 } 11266 this.tempSMask = null; 11267 break; 11268 } 11269 } 11270 }, 11271 beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { 11272 var activeSMask = this.current.activeSMask; 11273 var drawnWidth = activeSMask.canvas.width; 11274 var drawnHeight = activeSMask.canvas.height; 11275 var cacheId = 'smaskGroupAt' + this.groupLevel; 11276 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 11277 var currentCtx = this.ctx; 11278 var currentTransform = currentCtx.mozCurrentTransform; 11279 this.ctx.save(); 11280 var groupCtx = scratchCanvas.context; 11281 groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); 11282 groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); 11283 groupCtx.transform.apply(groupCtx, currentTransform); 11284 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; 11285 copyCtxState(currentCtx, groupCtx); 11286 this.ctx = groupCtx; 11287 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 11288 this.groupStack.push(currentCtx); 11289 this.groupLevel++; 11290 }, 11291 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { 11292 var groupCtx = this.ctx; 11293 this.groupLevel--; 11294 this.ctx = this.groupStack.pop(); 11295 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); 11296 this.ctx.restore(); 11297 this.ctx.save(); 11298 copyCtxState(groupCtx, this.ctx); 11299 this.current.resumeSMaskCtx = groupCtx; 11300 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 11301 this.ctx.transform.apply(this.ctx, deltaTransform); 11302 groupCtx.save(); 11303 groupCtx.setTransform(1, 0, 0, 1, 0, 0); 11304 groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); 11305 groupCtx.restore(); 11306 }, 11307 resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { 11308 var groupCtx = this.current.resumeSMaskCtx; 11309 var currentCtx = this.ctx; 11310 this.ctx = groupCtx; 11311 this.groupStack.push(currentCtx); 11312 this.groupLevel++; 11313 }, 11314 endSMaskGroup: function CanvasGraphics_endSMaskGroup() { 11315 var groupCtx = this.ctx; 11316 this.groupLevel--; 11317 this.ctx = this.groupStack.pop(); 11318 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
11319 this.ctx.restore(); 11320 copyCtxState(groupCtx, this.ctx); 11321 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); 11322 this.ctx.transform.apply(this.ctx, deltaTransform); 11323 }, 11324 save: function CanvasGraphics_save() { 11325 this.ctx.save(); 11326 var old = this.current; 11327 this.stateStack.push(old); 11328 this.current = old.clone(); 11329 this.current.resumeSMaskCtx = null; 11330 }, 11331 restore: function CanvasGraphics_restore() { 11332 if (this.current.resumeSMaskCtx) { 11333 this.resumeSMaskGroup(); 11334 } 11335 if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) { 11336 this.endSMaskGroup(); 11337 } 11338 if (this.stateStack.length !== 0) { 11339 this.current = this.stateStack.pop(); 11340 this.ctx.restore(); 11341 this.pendingClip = null; 11342 this._cachedGetSinglePixelWidth = null; 11343 } 11344 }, 11345 transform: function CanvasGraphics_transform(a, b, c, d, e, f) { 11346 this.ctx.transform(a, b, c, d, e, f); 11347 this._cachedGetSinglePixelWidth = null; 11348 }, 11349 constructPath: function CanvasGraphics_constructPath(ops, args) { 11350 var ctx = this.ctx; 11351 var current = this.current; 11352 var x = current.x, 11353 y = current.y; 11354 for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { 11355 switch (ops[i] | 0) { 11356 case _util.OPS.rectangle: 11357 x = args[j++]; 11358 y = args[j++]; 11359 var width = args[j++]; 11360 var height = args[j++]; 11361 if (width === 0) { 11362 width = this.getSinglePixelWidth(); 11363 } 11364 if (height === 0) { 11365 height = this.getSinglePixelWidth(); 11366 } 11367 var xw = x + width; 11368 var yh = y + height; 11369 this.ctx.moveTo(x, y); 11370 this.ctx.lineTo(xw, y); 11371 this.ctx.lineTo(xw, yh); 11372 this.ctx.lineTo(x, yh); 11373 this.ctx.lineTo(x, y); 11374 this.ctx.closePath(); 11375 break; 11376 case _util.OPS.moveTo: 11377 x = args[j++]; 11378 y = args[j++]; 11379 ctx.moveTo(x, y); 11380 break; 11381 case _util.OPS.lineTo: 11382 x = args[j++]; 11383 y = args[j++]; 11384 ctx.lineTo(x, y); 11385 break; 11386 case _util.OPS.curveTo: 11387 x = args[j + 4]; 11388 y = args[j + 5]; 11389 ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); 11390 j += 6; 11391 break; 11392 case _util.OPS.curveTo2: 11393 ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); 11394 x = args[j + 2]; 11395 y = args[j + 3]; 11396 j += 4; 11397 break; 11398 case _util.OPS.curveTo3: 11399 x = args[j + 2]; 11400 y = args[j + 3]; 11401 ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); 11402 j += 4; 11403 break; 11404 case _util.OPS.closePath: 11405 ctx.closePath(); 11406 break; 11407 } 11408 } 11409 current.setCurrentPoint(x, y); 11410 }, 11411 closePath: function CanvasGraphics_closePath() { 11412 this.ctx.closePath(); 11413 }, 11414 stroke: function CanvasGraphics_stroke(consumePath) { 11415 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 11416 var ctx = this.ctx; 11417 var strokeColor = this.current.strokeColor; 11418 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); 11419 ctx.globalAlpha = this.current.strokeAlpha; 11420 if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { 11421 ctx.save(); 11422 ctx.strokeStyle = strokeColor.getPattern(ctx, this); 11423 ctx.stroke(); 11424 ctx.restore(); 11425 } else { 11426 ctx.stroke(); 11427 } 11428 if (consumePath) { 11429 this.consumePath(); 11430 } 11431 ctx.globalAlpha = this.current.fillAlpha; 11432 }, 11433 closeStroke: function CanvasGraphics_closeStroke() { 11434 this.closePath(); 11435 this.stroke(); 11436 }, 11437 fill: function CanvasGraphics_fill(consumePath) {
11438 consumePath = typeof consumePath !== 'undefined' ? consumePath : true; 11439 var ctx = this.ctx; 11440 var fillColor = this.current.fillColor; 11441 var isPatternFill = this.current.patternFill; 11442 var needRestore = false; 11443 if (isPatternFill) { 11444 ctx.save(); 11445 if (this.baseTransform) { 11446 ctx.setTransform.apply(ctx, this.baseTransform); 11447 } 11448 ctx.fillStyle = fillColor.getPattern(ctx, this); 11449 needRestore = true; 11450 } 11451 if (this.pendingEOFill) { 11452 ctx.fill('evenodd'); 11453 this.pendingEOFill = false; 11454 } else { 11455 ctx.fill(); 11456 } 11457 if (needRestore) { 11458 ctx.restore(); 11459 } 11460 if (consumePath) { 11461 this.consumePath(); 11462 } 11463 }, 11464 eoFill: function CanvasGraphics_eoFill() { 11465 this.pendingEOFill = true; 11466 this.fill(); 11467 }, 11468 fillStroke: function CanvasGraphics_fillStroke() { 11469 this.fill(false); 11470 this.stroke(false); 11471 this.consumePath(); 11472 }, 11473 eoFillStroke: function CanvasGraphics_eoFillStroke() { 11474 this.pendingEOFill = true; 11475 this.fillStroke(); 11476 }, 11477 closeFillStroke: function CanvasGraphics_closeFillStroke() { 11478 this.closePath(); 11479 this.fillStroke(); 11480 }, 11481 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { 11482 this.pendingEOFill = true; 11483 this.closePath(); 11484 this.fillStroke(); 11485 }, 11486 endPath: function CanvasGraphics_endPath() { 11487 this.consumePath(); 11488 }, 11489 clip: function CanvasGraphics_clip() { 11490 this.pendingClip = NORMAL_CLIP; 11491 }, 11492 eoClip: function CanvasGraphics_eoClip() { 11493 this.pendingClip = EO_CLIP; 11494 }, 11495 beginText: function CanvasGraphics_beginText() { 11496 this.current.textMatrix = _util.IDENTITY_MATRIX; 11497 this.current.textMatrixScale = 1; 11498 this.current.x = this.current.lineX = 0; 11499 this.current.y = this.current.lineY = 0; 11500 }, 11501 endText: function CanvasGraphics_endText() { 11502 var paths = this.pendingTextPaths; 11503 var ctx = this.ctx; 11504 if (paths === undefined) { 11505 ctx.beginPath(); 11506 return; 11507 } 11508 ctx.save(); 11509 ctx.beginPath(); 11510 for (var i = 0; i < paths.length; i++) { 11511 var path = paths[i]; 11512 ctx.setTransform.apply(ctx, path.transform); 11513 ctx.translate(path.x, path.y); 11514 path.addToPath(ctx, path.fontSize); 11515 } 11516 ctx.restore(); 11517 ctx.clip(); 11518 ctx.beginPath(); 11519 delete this.pendingTextPaths; 11520 }, 11521 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { 11522 this.current.charSpacing = spacing; 11523 }, 11524 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { 11525 this.current.wordSpacing = spacing; 11526 }, 11527 setHScale: function CanvasGraphics_setHScale(scale) { 11528 this.current.textHScale = scale / 100; 11529 }, 11530 setLeading: function CanvasGraphics_setLeading(leading) { 11531 this.current.leading = -leading; 11532 }, 11533 setFont: function CanvasGraphics_setFont(fontRefName, size) { 11534 var fontObj = this.commonObjs.get(fontRefName); 11535 var current = this.current; 11536 if (!fontObj) { 11537 throw new Error('Can\'t find font for ' + fontRefName); 11538 } 11539 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 11540 if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { 11541 (0, _util.warn)('Invalid font matrix for font ' + fontRefName); 11542 } 11543 if (size < 0) { 11544 size = -size; 11545 current.fontDirection = -1; 11546 } else { 11547 current.fontDirection = 1; 11548 } 11549 this.current.font = fontObj; 11550 this.current.fontSize = size; 11551 if (fontObj.isType3Font) { 11552 return; 11553 } 11554 var name = fontObj.loadedName || 'sans-serif'; 11555 var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; 11556 var italic = fontObj.italic ? 'italic' : 'normal'; 11557 var typeface = '"' + name + '", ' + fontObj.fallbackName; 11558 var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; 11559 this.current.fontSizeScale = size / browserFontSize; 11560 var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface; 11561 this.ctx.font = rule; 11562 }, 11563 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { 11564 this.current.textRenderingMode = mode; 11565 }, 11566 setTextRise: function CanvasGraphics_setTextRise(rise) { 11567 this.current.textRise = rise; 11568 }, 11569 moveText: function CanvasGraphics_moveText(x, y) { 11570 this.current.x = this.current.lineX += x; 11571 this.current.y = this.current.lineY += y; 11572 },
11573 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { 11574 this.setLeading(-y); 11575 this.moveText(x, y); 11576 }, 11577 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { 11578 this.current.textMatrix = [a, b, c, d, e, f]; 11579 this.current.textMatrixScale = Math.sqrt(a * a + b * b); 11580 this.current.x = this.current.lineX = 0; 11581 this.current.y = this.current.lineY = 0; 11582 }, 11583 nextLine: function CanvasGraphics_nextLine() { 11584 this.moveText(0, this.current.leading); 11585 }, 11586 paintChar: function paintChar(character, x, y, patternTransform) { 11587 var ctx = this.ctx; 11588 var current = this.current; 11589 var font = current.font; 11590 var textRenderingMode = current.textRenderingMode; 11591 var fontSize = current.fontSize / current.fontSizeScale; 11592 var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 11593 var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); 11594 var patternFill = current.patternFill && font.data; 11595 var addToPath; 11596 if (font.disableFontFace || isAddToPathSet || patternFill) { 11597 addToPath = font.getPathGenerator(this.commonObjs, character); 11598 } 11599 if (font.disableFontFace || patternFill) { 11600 ctx.save(); 11601 ctx.translate(x, y); 11602 ctx.beginPath(); 11603 addToPath(ctx, fontSize); 11604 if (patternTransform) { 11605 ctx.setTransform.apply(ctx, patternTransform); 11606 } 11607 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11608 ctx.fill(); 11609 } 11610 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11611 ctx.stroke(); 11612 } 11613 ctx.restore(); 11614 } else { 11615 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11616 ctx.fillText(character, x, y); 11617 } 11618 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11619 ctx.strokeText(character, x, y); 11620 } 11621 } 11622 if (isAddToPathSet) { 11623 var paths = this.pendingTextPaths || (this.pendingTextPaths = []); 11624 paths.push({ 11625 transform: ctx.mozCurrentTransform, 11626 x: x, 11627 y: y, 11628 fontSize: fontSize, 11629 addToPath: addToPath 11630 }); 11631 } 11632 }, 11633 11634 get isFontSubpixelAAEnabled() { 11635 var ctx = this.canvasFactory.create(10, 10).context; 11636 ctx.scale(1.5, 1); 11637 ctx.fillText('I', 0, 10); 11638 var data = ctx.getImageData(0, 0, 10, 10).data; 11639 var enabled = false; 11640 for (var i = 3; i < data.length; i += 4) { 11641 if (data[i] > 0 && data[i] < 255) { 11642 enabled = true; 11643 break; 11644 } 11645 } 11646 return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); 11647 }, 11648 showText: function CanvasGraphics_showText(glyphs) { 11649 var current = this.current; 11650 var font = current.font; 11651 if (font.isType3Font) { 11652 return this.showType3Text(glyphs); 11653 } 11654 var fontSize = current.fontSize; 11655 if (fontSize === 0) { 11656 return; 11657 } 11658 var ctx = this.ctx; 11659 var fontSizeScale = current.fontSizeScale; 11660 var charSpacing = current.charSpacing; 11661 var wordSpacing = current.wordSpacing; 11662 var fontDirection = current.fontDirection; 11663 var textHScale = current.textHScale * fontDirection; 11664 var glyphsLength = glyphs.length; 11665 var vertical = font.vertical; 11666 var spacingDir = vertical ? 1 : -1; 11667 var defaultVMetrics = font.defaultVMetrics; 11668 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 11669 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; 11670 ctx.save(); 11671 var patternTransform = void 0; 11672 if (current.patternFill) { 11673 ctx.save(); 11674 var pattern = current.fillColor.getPattern(ctx, this); 11675 patternTransform = ctx.mozCurrentTransform;
11676 ctx.restore(); 11677 ctx.fillStyle = pattern; 11678 } 11679 ctx.transform.apply(ctx, current.textMatrix); 11680 ctx.translate(current.x, current.y + current.textRise); 11681 if (fontDirection > 0) { 11682 ctx.scale(textHScale, -1); 11683 } else { 11684 ctx.scale(textHScale, 1); 11685 } 11686 var lineWidth = current.lineWidth; 11687 var scale = current.textMatrixScale; 11688 if (scale === 0 || lineWidth === 0) { 11689 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 11690 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 11691 this._cachedGetSinglePixelWidth = null; 11692 lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; 11693 } 11694 } else { 11695 lineWidth /= scale; 11696 } 11697 if (fontSizeScale !== 1.0) { 11698 ctx.scale(fontSizeScale, fontSizeScale); 11699 lineWidth /= fontSizeScale; 11700 } 11701 ctx.lineWidth = lineWidth; 11702 var x = 0, 11703 i; 11704 for (i = 0; i < glyphsLength; ++i) { 11705 var glyph = glyphs[i]; 11706 if ((0, _util.isNum)(glyph)) { 11707 x += spacingDir * glyph * fontSize / 1000; 11708 continue; 11709 } 11710 var restoreNeeded = false; 11711 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 11712 var character = glyph.fontChar; 11713 var accent = glyph.accent; 11714 var scaledX, scaledY, scaledAccentX, scaledAccentY; 11715 var width = glyph.width; 11716 if (vertical) { 11717 var vmetric, vx, vy; 11718 vmetric = glyph.vmetric || defaultVMetrics; 11719 vx = glyph.vmetric ? vmetric[1] : width * 0.5; 11720 vx = -vx * widthAdvanceScale; 11721 vy = vmetric[2] * widthAdvanceScale; 11722 width = vmetric ? -vmetric[0] : width; 11723 scaledX = vx / fontSizeScale; 11724 scaledY = (x + vy) / fontSizeScale; 11725 } else { 11726 scaledX = x / fontSizeScale; 11727 scaledY = 0; 11728 } 11729 if (font.remeasure && width > 0) { 11730 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; 11731 if (width < measuredWidth && this.isFontSubpixelAAEnabled) { 11732 var characterScaleX = width / measuredWidth; 11733 restoreNeeded = true; 11734 ctx.save(); 11735 ctx.scale(characterScaleX, 1); 11736 scaledX /= characterScaleX; 11737 } else if (width !== measuredWidth) { 11738 scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; 11739 } 11740 } 11741 if (glyph.isInFont || font.missingFile) { 11742 if (simpleFillText && !accent) { 11743 ctx.fillText(character, scaledX, scaledY); 11744 } else { 11745 this.paintChar(character, scaledX, scaledY, patternTransform); 11746 if (accent) { 11747 scaledAccentX = scaledX + accent.offset.x / fontSizeScale; 11748 scaledAccentY = scaledY - accent.offset.y / fontSizeScale; 11749 this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); 11750 } 11751 } 11752 } 11753 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 11754 x += charWidth; 11755 if (restoreNeeded) { 11756 ctx.restore(); 11757 } 11758 } 11759 if (vertical) { 11760 current.y -= x * textHScale; 11761 } else { 11762 current.x += x * textHScale; 11763 } 11764 ctx.restore(); 11765 }, 11766 showType3Text: function CanvasGraphics_showType3Text(glyphs) { 11767 var ctx = this.ctx; 11768 var current = this.current; 11769 var font = current.font; 11770 var fontSize = current.fontSize; 11771 var fontDirection = current.fontDirection; 11772 var spacingDir = font.vertical ? 1 : -1; 11773 var charSpacing = current.charSpacing; 11774 var wordSpacing = current.wordSpacing; 11775 var textHScale = current.textHScale * fontDirection; 11776 var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; 11777 var glyphsLength = glyphs.length; 11778 var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; 11779 var i, glyph, width, spacingLength; 11780 if (isTextInvisible || fontSize === 0) { 11781 return; 11782 } 11783 this._cachedGetSinglePixelWidth = null; 11784 ctx.save(); 11785 ctx.transform.apply(ctx, current.textMatrix); 11786 ctx.translate(current.x, current.y); 11787 ctx.scale(textHScale, fontDirection); 11788 for (i = 0; i < glyphsLength; ++i) { 11789 glyph = glyphs[i];
11790 if ((0, _util.isNum)(glyph)) { 11791 spacingLength = spacingDir * glyph * fontSize / 1000; 11792 this.ctx.translate(spacingLength, 0); 11793 current.x += spacingLength * textHScale; 11794 continue; 11795 } 11796 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 11797 var operatorList = font.charProcOperatorList[glyph.operatorListId]; 11798 if (!operatorList) { 11799 (0, _util.warn)('Type3 character "' + glyph.operatorListId + '" is not available.'); 11800 continue; 11801 } 11802 this.processingType3 = glyph; 11803 this.save(); 11804 ctx.scale(fontSize, fontSize); 11805 ctx.transform.apply(ctx, fontMatrix); 11806 this.executeOperatorList(operatorList); 11807 this.restore(); 11808 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); 11809 width = transformed[0] * fontSize + spacing; 11810 ctx.translate(width, 0); 11811 current.x += width * textHScale; 11812 } 11813 ctx.restore(); 11814 this.processingType3 = null; 11815 }, 11816 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, 11817 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { 11818 this.ctx.rect(llx, lly, urx - llx, ury - lly); 11819 this.clip(); 11820 this.endPath(); 11821 }, 11822 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { 11823 var _this = this; 11824 11825 var pattern; 11826 if (IR[0] === 'TilingPattern') { 11827 var color = IR[1]; 11828 var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); 11829 var canvasGraphicsFactory = { 11830 createCanvasGraphics: function createCanvasGraphics(ctx) { 11831 return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); 11832 } 11833 }; 11834 pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); 11835 } else { 11836 pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); 11837 } 11838 return pattern; 11839 }, 11840 setStrokeColorN: function CanvasGraphics_setStrokeColorN() { 11841 this.current.strokeColor = this.getColorN_Pattern(arguments); 11842 }, 11843 setFillColorN: function CanvasGraphics_setFillColorN() { 11844 this.current.fillColor = this.getColorN_Pattern(arguments); 11845 this.current.patternFill = true; 11846 }, 11847 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { 11848 var color = _util.Util.makeCssRgb(r, g, b); 11849 this.ctx.strokeStyle = color; 11850 this.current.strokeColor = color; 11851 }, 11852 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { 11853 var color = _util.Util.makeCssRgb(r, g, b); 11854 this.ctx.fillStyle = color; 11855 this.current.fillColor = color; 11856 this.current.patternFill = false; 11857 }, 11858 shadingFill: function CanvasGraphics_shadingFill(patternIR) { 11859 var ctx = this.ctx; 11860 this.save(); 11861 var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); 11862 ctx.fillStyle = pattern.getPattern(ctx, this, true); 11863 var inv = ctx.mozCurrentTransformInverse; 11864 if (inv) { 11865 var canvas = ctx.canvas; 11866 var width = canvas.width; 11867 var height = canvas.height; 11868 var bl = _util.Util.applyTransform([0, 0], inv); 11869 var br = _util.Util.applyTransform([0, height], inv); 11870 var ul = _util.Util.applyTransform([width, 0], inv); 11871 var ur = _util.Util.applyTransform([width, height], inv); 11872 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); 11873 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); 11874 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); 11875 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); 11876 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); 11877 } else { 11878 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); 11879 } 11880 this.restore(); 11881 }, 11882 beginInlineImage: function CanvasGraphics_beginInlineImage() { 11883 (0, _util.unreachable)('Should not call beginInlineImage'); 11884 }, 11885 beginImageData: function CanvasGraphics_beginImageData() { 11886 (0, _util.unreachable)('Should not call beginImageData'); 11887 }, 11888 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { 11889 this.save(); 11890 this.baseTransformStack.push(this.baseTransform); 11891 if (Array.isArray(matrix) && matrix.length === 6) { 11892 this.transform.apply(this, matrix); 11893 } 11894 this.baseTransform = this.ctx.mozCurrentTransform; 11895 if (Array.isArray(bbox) && bbox.length === 4) { 11896 var width = bbox[2] - bbox[0]; 11897 var height = bbox[3] - bbox[1]; 11898 this.ctx.rect(bbox[0], bbox[1], width, height); 11899 this.clip(); 11900 this.endPath(); 11901 } 11902 }, 11903 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
11904 this.restore(); 11905 this.baseTransform = this.baseTransformStack.pop(); 11906 }, 11907 beginGroup: function CanvasGraphics_beginGroup(group) { 11908 this.save(); 11909 var currentCtx = this.ctx; 11910 if (!group.isolated) { 11911 (0, _util.info)('TODO: Support non-isolated groups.'); 11912 } 11913 if (group.knockout) { 11914 (0, _util.warn)('Knockout groups not supported.'); 11915 } 11916 var currentTransform = currentCtx.mozCurrentTransform; 11917 if (group.matrix) { 11918 currentCtx.transform.apply(currentCtx, group.matrix); 11919 } 11920 if (!group.bbox) { 11921 throw new Error('Bounding box is required.'); 11922 } 11923 var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); 11924 var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; 11925 bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; 11926 var offsetX = Math.floor(bounds[0]); 11927 var offsetY = Math.floor(bounds[1]); 11928 var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); 11929 var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); 11930 var scaleX = 1, 11931 scaleY = 1; 11932 if (drawnWidth > MAX_GROUP_SIZE) { 11933 scaleX = drawnWidth / MAX_GROUP_SIZE; 11934 drawnWidth = MAX_GROUP_SIZE; 11935 } 11936 if (drawnHeight > MAX_GROUP_SIZE) { 11937 scaleY = drawnHeight / MAX_GROUP_SIZE; 11938 drawnHeight = MAX_GROUP_SIZE; 11939 } 11940 var cacheId = 'groupAt' + this.groupLevel; 11941 if (group.smask) { 11942 cacheId += '_smask_' + this.smaskCounter++ % 2; 11943 } 11944 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); 11945 var groupCtx = scratchCanvas.context; 11946 groupCtx.scale(1 / scaleX, 1 / scaleY); 11947 groupCtx.translate(-offsetX, -offsetY); 11948 groupCtx.transform.apply(groupCtx, currentTransform); 11949 if (group.smask) { 11950 this.smaskStack.push({ 11951 canvas: scratchCanvas.canvas, 11952 context: groupCtx, 11953 offsetX: offsetX, 11954 offsetY: offsetY, 11955 scaleX: scaleX, 11956 scaleY: scaleY, 11957 subtype: group.smask.subtype, 11958 backdrop: group.smask.backdrop, 11959 transferMap: group.smask.transferMap || null, 11960 startTransformInverse: null 11961 }); 11962 } else { 11963 currentCtx.setTransform(1, 0, 0, 1, 0, 0); 11964 currentCtx.translate(offsetX, offsetY); 11965 currentCtx.scale(scaleX, scaleY); 11966 } 11967 copyCtxState(currentCtx, groupCtx); 11968 this.ctx = groupCtx; 11969 this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); 11970 this.groupStack.push(currentCtx); 11971 this.groupLevel++; 11972 this.current.activeSMask = null; 11973 }, 11974 endGroup: function CanvasGraphics_endGroup(group) { 11975 this.groupLevel--; 11976 var groupCtx = this.ctx; 11977 this.ctx = this.groupStack.pop(); 11978 if (this.ctx.imageSmoothingEnabled !== undefined) { 11979 this.ctx.imageSmoothingEnabled = false; 11980 } else { 11981 this.ctx.mozImageSmoothingEnabled = false; 11982 } 11983 if (group.smask) { 11984 this.tempSMask = this.smaskStack.pop(); 11985 } else { 11986 this.ctx.drawImage(groupCtx.canvas, 0, 0); 11987 } 11988 this.restore(); 11989 }, 11990 beginAnnotations: function CanvasGraphics_beginAnnotations() { 11991 this.save(); 11992 if (this.baseTransform) { 11993 this.ctx.setTransform.apply(this.ctx, this.baseTransform); 11994 } 11995 }, 11996 endAnnotations: function CanvasGraphics_endAnnotations() { 11997 this.restore(); 11998 }, 11999 beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { 12000 this.save(); 12001 resetCtxToDefault(this.ctx); 12002 this.current = new CanvasExtraState(); 12003 if (Array.isArray(rect) && rect.length === 4) { 12004 var width = rect[2] - rect[0]; 12005 var height = rect[3] - rect[1]; 12006 this.ctx.rect(rect[0], rect[1], width, height); 12007 this.clip(); 12008 this.endPath(); 12009 } 12010 this.transform.apply(this, transform); 12011 this.transform.apply(this, matrix); 12012 }, 12013 endAnnotation: function CanvasGraphics_endAnnotation() {
vendor: 6,303 bytes, lines 12014-12173
12014 this.restore(); 12015 }, 12016 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { 12017 var domImage = this.objs.get(objId); 12018 if (!domImage) { 12019 (0, _util.warn)('Dependent image isn\'t ready yet'); 12020 return; 12021 } 12022 this.save(); 12023 var ctx = this.ctx; 12024 ctx.scale(1 / w, -1 / h); 12025 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); 12026 if (this.imageLayer) { 12027 var currentTransform = ctx.mozCurrentTransformInverse; 12028 var position = this.getCanvasPosition(0, 0); 12029 this.imageLayer.appendImage({ 12030 objId: objId, 12031 left: position[0], 12032 top: position[1], 12033 width: w / currentTransform[0], 12034 height: h / currentTransform[3] 12035 }); 12036 } 12037 this.restore(); 12038 }, 12039 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { 12040 var ctx = this.ctx; 12041 var width = img.width, 12042 height = img.height; 12043 var fillColor = this.current.fillColor; 12044 var isPatternFill = this.current.patternFill; 12045 var glyph = this.processingType3; 12046 if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { 12047 if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { 12048 glyph.compiled = compileType3Glyph({ 12049 data: img.data, 12050 width: width, 12051 height: height 12052 }); 12053 } else { 12054 glyph.compiled = null; 12055 } 12056 } 12057 if (glyph && glyph.compiled) { 12058 glyph.compiled(ctx); 12059 return; 12060 } 12061 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 12062 var maskCtx = maskCanvas.context; 12063 maskCtx.save(); 12064 putBinaryImageMask(maskCtx, img); 12065 maskCtx.globalCompositeOperation = 'source-in'; 12066 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 12067 maskCtx.fillRect(0, 0, width, height); 12068 maskCtx.restore(); 12069 this.paintInlineImageXObject(maskCanvas.canvas); 12070 }, 12071 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { 12072 var width = imgData.width; 12073 var height = imgData.height; 12074 var fillColor = this.current.fillColor; 12075 var isPatternFill = this.current.patternFill; 12076 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 12077 var maskCtx = maskCanvas.context; 12078 maskCtx.save(); 12079 putBinaryImageMask(maskCtx, imgData); 12080 maskCtx.globalCompositeOperation = 'source-in'; 12081 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 12082 maskCtx.fillRect(0, 0, width, height); 12083 maskCtx.restore(); 12084 var ctx = this.ctx; 12085 for (var i = 0, ii = positions.length; i < ii; i += 2) { 12086 ctx.save(); 12087 ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); 12088 ctx.scale(1, -1); 12089 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 12090 ctx.restore(); 12091 } 12092 }, 12093 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { 12094 var ctx = this.ctx; 12095 var fillColor = this.current.fillColor; 12096 var isPatternFill = this.current.patternFill; 12097 for (var i = 0, ii = images.length; i < ii; i++) { 12098 var image = images[i]; 12099 var width = image.width, 12100 height = image.height; 12101 var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); 12102 var maskCtx = maskCanvas.context; 12103 maskCtx.save(); 12104 putBinaryImageMask(maskCtx, image); 12105 maskCtx.globalCompositeOperation = 'source-in'; 12106 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; 12107 maskCtx.fillRect(0, 0, width, height); 12108 maskCtx.restore(); 12109 ctx.save(); 12110 ctx.transform.apply(ctx, image.transform); 12111 ctx.scale(1, -1); 12112 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); 12113 ctx.restore(); 12114 } 12115 }, 12116 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { 12117 var imgData = this.objs.get(objId); 12118 if (!imgData) { 12119 (0, _util.warn)('Dependent image isn\'t ready yet'); 12120 return; 12121 } 12122 this.paintInlineImageXObject(imgData); 12123 }, 12124 paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { 12125 var imgData = this.objs.get(objId); 12126 if (!imgData) { 12127 (0, _util.warn)('Dependent image isn\'t ready yet'); 12128 return; 12129 } 12130 var width = imgData.width; 12131 var height = imgData.height; 12132 var map = []; 12133 for (var i = 0, ii = positions.length; i < ii; i += 2) { 12134 map.push({ 12135 transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], 12136 x: 0, 12137 y: 0, 12138 w: width, 12139 h: height 12140 }); 12141 } 12142 this.paintInlineImageXObjectGroup(imgData, map); 12143 }, 12144 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { 12145 var width = imgData.width; 12146 var height = imgData.height; 12147 var ctx = this.ctx; 12148 this.save(); 12149 ctx.scale(1 / width, -1 / height); 12150 var currentTransform = ctx.mozCurrentTransformInverse; 12151 var a = currentTransform[0], 12152 b = currentTransform[1]; 12153 var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); 12154 var c = currentTransform[2], 12155 d = currentTransform[3]; 12156 var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); 12157 var imgToPaint, tmpCanvas; 12158 if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { 12159 imgToPaint = imgData; 12160 } else { 12161 tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); 12162 var tmpCtx = tmpCanvas.context; 12163 putBinaryImageData(tmpCtx, imgData); 12164 imgToPaint = tmpCanvas.canvas; 12165 } 12166 var paintWidth = width, 12167 paintHeight = height; 12168 var tmpCanvasId = 'prescale1'; 12169 while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { 12170 var newWidth = paintWidth, 12171 newHeight = paintHeight; 12172 if (widthScale > 2 && paintWidth > 1) { 12173 newWidth = Math.ceil(paintWidth / 2);
12174 widthScale /= paintWidth / newWidth; 12175 } 12176 if (heightScale > 2 && paintHeight > 1) { 12177 newHeight = Math.ceil(paintHeight / 2); 12178 heightScale /= paintHeight / newHeight; 12179 } 12180 tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); 12181 tmpCtx = tmpCanvas.context; 12182 tmpCtx.clearRect(0, 0, newWidth, newHeight); 12183 tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); 12184 imgToPaint = tmpCanvas.canvas; 12185 paintWidth = newWidth; 12186 paintHeight = newHeight; 12187 tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; 12188 } 12189 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); 12190 if (this.imageLayer) { 12191 var position = this.getCanvasPosition(0, -height); 12192 this.imageLayer.appendImage({ 12193 imgData: imgData, 12194 left: position[0], 12195 top: position[1], 12196 width: width / currentTransform[0], 12197 height: height / currentTransform[3] 12198 }); 12199 } 12200 this.restore(); 12201 }, 12202 paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { 12203 var ctx = this.ctx; 12204 var w = imgData.width; 12205 var h = imgData.height; 12206 var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); 12207 var tmpCtx = tmpCanvas.context; 12208 putBinaryImageData(tmpCtx, imgData); 12209 for (var i = 0, ii = map.length; i < ii; i++) { 12210 var entry = map[i]; 12211 ctx.save(); 12212 ctx.transform.apply(ctx, entry.transform); 12213 ctx.scale(1, -1); 12214 ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); 12215 if (this.imageLayer) { 12216 var position = this.getCanvasPosition(entry.x, entry.y); 12217 this.imageLayer.appendImage({ 12218 imgData: imgData, 12219 left: position[0], 12220 top: position[1], 12221 width: w, 12222 height: h 12223 }); 12224 } 12225 ctx.restore(); 12226 } 12227 }, 12228 paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { 12229 this.ctx.fillRect(0, 0, 1, 1); 12230 }, 12231 paintXObject: function CanvasGraphics_paintXObject() { 12232 (0, _util.warn)('Unsupported \'paintXObject\' command.'); 12233 }, 12234 markPoint: function CanvasGraphics_markPoint(tag) {}, 12235 markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, 12236 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, 12237 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, 12238 endMarkedContent: function CanvasGraphics_endMarkedContent() {}, 12239 beginCompat: function CanvasGraphics_beginCompat() {}, 12240 endCompat: function CanvasGraphics_endCompat() {}, 12241 consumePath: function CanvasGraphics_consumePath() { 12242 var ctx = this.ctx; 12243 if (this.pendingClip) { 12244 if (this.pendingClip === EO_CLIP) { 12245 ctx.clip('evenodd'); 12246 } else { 12247 ctx.clip(); 12248 } 12249 this.pendingClip = null; 12250 } 12251 ctx.beginPath(); 12252 }, 12253 getSinglePixelWidth: function getSinglePixelWidth(scale) { 12254 if (this._cachedGetSinglePixelWidth === null) { 12255 var inverse = this.ctx.mozCurrentTransformInverse; 12256 this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); 12257 } 12258 return this._cachedGetSinglePixelWidth; 12259 }, 12260 12261 getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { 12262 var transform = this.ctx.mozCurrentTransform; 12263 return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; 12264 } 12265 }; 12266 for (var op in _util.OPS) { 12267 CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; 12268 } 12269 return CanvasGraphics; 12270}(); 12271exports.CanvasGraphics = CanvasGraphics; 12272 12273/***/ }), 12274/* 134 */ 12275/***/ (function(module, exports, __w_pdfjs_require__) { 12276 12277"use strict"; 12278 12279 12280Object.defineProperty(exports, "__esModule", { 12281 value: true 12282}); 12283exports.TilingPattern = exports.getShadingPatternFromIR = undefined; 12284 12285var _util = __w_pdfjs_require__(1); 12286 12287var ShadingIRs = {}; 12288ShadingIRs.RadialAxial = { 12289 fromIR: function RadialAxial_fromIR(raw) { 12290 var type = raw[1]; 12291 var colorStops = raw[2]; 12292 var p0 = raw[3]; 12293 var p1 = raw[4]; 12294 var r0 = raw[5]; 12295 var r1 = raw[6]; 12296 return { 12297 type: 'Pattern', 12298 getPattern: function RadialAxial_getPattern(ctx) { 12299 var grad; 12300 if (type === 'axial') { 12301 grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); 12302 } else if (type === 'radial') { 12303 grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); 12304 } 12305 for (var i = 0, ii = colorStops.length; i < ii; ++i) { 12306 var c = colorStops[i];
vendor: 4,110 bytes, lines 12307-12432
12307 grad.addColorStop(c[0], c[1]); 12308 } 12309 return grad; 12310 } 12311 }; 12312 } 12313}; 12314var createMeshCanvas = function createMeshCanvasClosure() { 12315 function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { 12316 var coords = context.coords, 12317 colors = context.colors; 12318 var bytes = data.data, 12319 rowSize = data.width * 4; 12320 var tmp; 12321 if (coords[p1 + 1] > coords[p2 + 1]) { 12322 tmp = p1; 12323 p1 = p2; 12324 p2 = tmp; 12325 tmp = c1; 12326 c1 = c2; 12327 c2 = tmp; 12328 } 12329 if (coords[p2 + 1] > coords[p3 + 1]) { 12330 tmp = p2; 12331 p2 = p3; 12332 p3 = tmp; 12333 tmp = c2; 12334 c2 = c3; 12335 c3 = tmp; 12336 } 12337 if (coords[p1 + 1] > coords[p2 + 1]) { 12338 tmp = p1; 12339 p1 = p2; 12340 p2 = tmp; 12341 tmp = c1; 12342 c1 = c2; 12343 c2 = tmp; 12344 } 12345 var x1 = (coords[p1] + context.offsetX) * context.scaleX; 12346 var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; 12347 var x2 = (coords[p2] + context.offsetX) * context.scaleX; 12348 var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; 12349 var x3 = (coords[p3] + context.offsetX) * context.scaleX; 12350 var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; 12351 if (y1 >= y3) { 12352 return; 12353 } 12354 var c1r = colors[c1], 12355 c1g = colors[c1 + 1], 12356 c1b = colors[c1 + 2]; 12357 var c2r = colors[c2], 12358 c2g = colors[c2 + 1], 12359 c2b = colors[c2 + 2]; 12360 var c3r = colors[c3], 12361 c3g = colors[c3 + 1], 12362 c3b = colors[c3 + 2]; 12363 var minY = Math.round(y1), 12364 maxY = Math.round(y3); 12365 var xa, car, cag, cab; 12366 var xb, cbr, cbg, cbb; 12367 var k; 12368 for (var y = minY; y <= maxY; y++) { 12369 if (y < y2) { 12370 k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); 12371 xa = x1 - (x1 - x2) * k; 12372 car = c1r - (c1r - c2r) * k; 12373 cag = c1g - (c1g - c2g) * k; 12374 cab = c1b - (c1b - c2b) * k; 12375 } else { 12376 k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); 12377 xa = x2 - (x2 - x3) * k; 12378 car = c2r - (c2r - c3r) * k; 12379 cag = c2g - (c2g - c3g) * k; 12380 cab = c2b - (c2b - c3b) * k; 12381 } 12382 k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); 12383 xb = x1 - (x1 - x3) * k; 12384 cbr = c1r - (c1r - c3r) * k; 12385 cbg = c1g - (c1g - c3g) * k; 12386 cbb = c1b - (c1b - c3b) * k; 12387 var x1_ = Math.round(Math.min(xa, xb)); 12388 var x2_ = Math.round(Math.max(xa, xb)); 12389 var j = rowSize * y + x1_ * 4; 12390 for (var x = x1_; x <= x2_; x++) { 12391 k = (xa - x) / (xa - xb); 12392 k = k < 0 ? 0 : k > 1 ? 1 : k; 12393 bytes[j++] = car - (car - cbr) * k | 0; 12394 bytes[j++] = cag - (cag - cbg) * k | 0; 12395 bytes[j++] = cab - (cab - cbb) * k | 0; 12396 bytes[j++] = 255; 12397 } 12398 } 12399 } 12400 function drawFigure(data, figure, context) { 12401 var ps = figure.coords; 12402 var cs = figure.colors; 12403 var i, ii; 12404 switch (figure.type) { 12405 case 'lattice': 12406 var verticesPerRow = figure.verticesPerRow; 12407 var rows = Math.floor(ps.length / verticesPerRow) - 1; 12408 var cols = verticesPerRow - 1; 12409 for (i = 0; i < rows; i++) { 12410 var q = i * verticesPerRow; 12411 for (var j = 0; j < cols; j++, q++) { 12412 drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); 12413 drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); 12414 } 12415 } 12416 break; 12417 case 'triangles': 12418 for (i = 0, ii = ps.length; i < ii; i += 3) { 12419 drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); 12420 } 12421 break; 12422 default: 12423 throw new Error('illegal figure'); 12424 } 12425 } 12426 function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { 12427 var EXPECTED_SCALE = 1.1; 12428 var MAX_PATTERN_SIZE = 3000; 12429 var BORDER_SIZE = 2; 12430 var offsetX = Math.floor(bounds[0]); 12431 var offsetY = Math.floor(bounds[1]); 12432 var boundsWidth = Math.ceil(bounds[2]) - offsetX;
12433 var boundsHeight = Math.ceil(bounds[3]) - offsetY; 12434 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 12435 var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); 12436 var scaleX = boundsWidth / width; 12437 var scaleY = boundsHeight / height; 12438 var context = { 12439 coords: coords, 12440 colors: colors, 12441 offsetX: -offsetX, 12442 offsetY: -offsetY, 12443 scaleX: 1 / scaleX, 12444 scaleY: 1 / scaleY 12445 }; 12446 var paddedWidth = width + BORDER_SIZE * 2; 12447 var paddedHeight = height + BORDER_SIZE * 2; 12448 var canvas, tmpCanvas, i, ii; 12449 if (webGLContext.isEnabled) { 12450 canvas = webGLContext.drawFigures({ 12451 width: width, 12452 height: height, 12453 backgroundColor: backgroundColor, 12454 figures: figures, 12455 context: context 12456 }); 12457 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 12458 tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); 12459 canvas = tmpCanvas.canvas; 12460 } else { 12461 tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); 12462 var tmpCtx = tmpCanvas.context; 12463 var data = tmpCtx.createImageData(width, height); 12464 if (backgroundColor) { 12465 var bytes = data.data; 12466 for (i = 0, ii = bytes.length; i < ii; i += 4) { 12467 bytes[i] = backgroundColor[0]; 12468 bytes[i + 1] = backgroundColor[1]; 12469 bytes[i + 2] = backgroundColor[2]; 12470 bytes[i + 3] = 255; 12471 } 12472 } 12473 for (i = 0; i < figures.length; i++) { 12474 drawFigure(data, figures[i], context); 12475 } 12476 tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); 12477 canvas = tmpCanvas.canvas; 12478 } 12479 return { 12480 canvas: canvas, 12481 offsetX: offsetX - BORDER_SIZE * scaleX, 12482 offsetY: offsetY - BORDER_SIZE * scaleY, 12483 scaleX: scaleX, 12484 scaleY: scaleY 12485 }; 12486 } 12487 return createMeshCanvas; 12488}(); 12489ShadingIRs.Mesh = { 12490 fromIR: function Mesh_fromIR(raw) { 12491 var coords = raw[2]; 12492 var colors = raw[3]; 12493 var figures = raw[4]; 12494 var bounds = raw[5]; 12495 var matrix = raw[6]; 12496 var background = raw[8]; 12497 return { 12498 type: 'Pattern', 12499 getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { 12500 var scale; 12501 if (shadingFill) { 12502 scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); 12503 } else { 12504 scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); 12505 if (matrix) { 12506 var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); 12507 scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; 12508 } 12509 } 12510 var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); 12511 if (!shadingFill) { 12512 ctx.setTransform.apply(ctx, owner.baseTransform); 12513 if (matrix) { 12514 ctx.transform.apply(ctx, matrix); 12515 } 12516 } 12517 ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); 12518 ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); 12519 return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); 12520 } 12521 }; 12522 } 12523}; 12524ShadingIRs.Dummy = { 12525 fromIR: function Dummy_fromIR() { 12526 return { 12527 type: 'Pattern', 12528 getPattern: function Dummy_fromIR_getPattern() { 12529 return 'hotpink'; 12530 } 12531 }; 12532 } 12533}; 12534function getShadingPatternFromIR(raw) { 12535 var shadingIR = ShadingIRs[raw[0]]; 12536 if (!shadingIR) { 12537 throw new Error('Unknown IR type: ' + raw[0]); 12538 } 12539 return shadingIR.fromIR(raw); 12540} 12541var TilingPattern = function TilingPatternClosure() { 12542 var PaintType = { 12543 COLORED: 1, 12544 UNCOLORED: 2 12545 }; 12546 var MAX_PATTERN_SIZE = 3000; 12547 function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { 12548 this.operatorList = IR[2]; 12549 this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; 12550 this.bbox = IR[4]; 12551 this.xstep = IR[5]; 12552 this.ystep = IR[6]; 12553 this.paintType = IR[7]; 12554 this.tilingType = IR[8]; 12555 this.color = color; 12556 this.canvasGraphicsFactory = canvasGraphicsFactory; 12557 this.baseTransform = baseTransform; 12558 this.type = 'Pattern'; 12559 this.ctx = ctx; 12560 } 12561 TilingPattern.prototype = { 12562 createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { 12563 var operatorList = this.operatorList; 12564 var bbox = this.bbox; 12565 var xstep = this.xstep; 12566 var ystep = this.ystep; 12567 var paintType = this.paintType; 12568 var tilingType = this.tilingType; 12569 var color = this.color; 12570 var canvasGraphicsFactory = this.canvasGraphicsFactory; 12571 (0, _util.info)('TilingType: ' + tilingType); 12572 var x0 = bbox[0], 12573 y0 = bbox[1], 12574 x1 = bbox[2], 12575 y1 = bbox[3]; 12576 var topLeft = [x0, y0]; 12577 var botRight = [x0 + xstep, y0 + ystep]; 12578 var width = botRight[0] - topLeft[0]; 12579 var height = botRight[1] - topLeft[1]; 12580 var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix
12580); 12581 var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); 12582 var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; 12583 width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE); 12584 height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE); 12585 var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true); 12586 var tmpCtx = tmpCanvas.context; 12587 var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); 12588 graphics.groupLevel = owner.groupLevel; 12589 this.setFillAndStrokeStyleToContext(graphics, paintType, color); 12590 this.setScale(width, height, xstep, ystep); 12591 this.transformToScale(graphics); 12592 var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]]; 12593 graphics.transform.apply(graphics, tmpTranslate); 12594 this.clipBbox(graphics, bbox, x0, y0, x1, y1); 12595 graphics.executeOperatorList(operatorList); 12596 return tmpCanvas.canvas; 12597 }, 12598 setScale: function TilingPattern_setScale(width, height, xstep, ystep) { 12599 this.scale = [width / xstep, height / ystep]; 12600 }, 12601 transformToScale: function TilingPattern_transformToScale(graphics) { 12602 var scale = this.scale; 12603 var tmpScale = [scale[0], 0, 0, scale[1], 0, 0]; 12604 graphics.transform.apply(graphics, tmpScale); 12605 }, 12606 scaleToContext: function TilingPattern_scaleToContext() { 12607 var scale = this.scale; 12608 this.ctx.scale(1 / scale[0], 1 / scale[1]); 12609 }, 12610 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { 12611 if (Array.isArray(bbox) && bbox.length === 4) { 12612 var bboxWidth = x1 - x0; 12613 var bboxHeight = y1 - y0; 12614 graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); 12615 graphics.clip(); 12616 graphics.endPath(); 12617 } 12618 }, 12619 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { 12620 var context = graphics.ctx, 12621 current = graphics.current; 12622 switch (paintType) { 12623 case PaintType.COLORED: 12624 var ctx = this.ctx; 12625 context.fillStyle = ctx.fillStyle; 12626 context.strokeStyle = ctx.strokeStyle; 12627 current.fillColor = ctx.fillStyle; 12628 current.strokeColor = ctx.strokeStyle; 12629 break; 12630 case PaintType.UNCOLORED: 12631 var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); 12632 context.fillStyle = cssColor; 12633 context.strokeStyle = cssColor; 12634 current.fillColor = cssColor; 12635 current.strokeColor = cssColor; 12636 break; 12637 default: 12638 throw new _util.FormatError('Unsupported paint type: ' + paintType); 12639 } 12640 }, 12641 getPattern: function TilingPattern_getPattern(ctx, owner) { 12642 var temporaryPatternCanvas = this.createPatternCanvas(owner); 12643 ctx = this.ctx; 12644 ctx.setTransform.apply(ctx, this.baseTransform); 12645 ctx.transform.apply(ctx, this.matrix); 12646 this.scaleToContext(); 12647 return ctx.createPattern(temporaryPatternCanvas, 'repeat'); 12648 } 12649 }; 12650 return TilingPattern; 12651}(); 12652exports.getShadingPatternFromIR = getShadingPatternFromIR; 12653exports.TilingPattern = TilingPattern; 12654 12655/***/ }), 12656/* 135 */ 12657/***/ (function(module, exports, __w_pdfjs_require__) { 12658 12659"use strict"; 12660 12661 12662Object.defineProperty(exports, "__esModule", { 12663 value: true 12664}); 12665var GlobalWorkerOptions = Object.create(null); 12666GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; 12667GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; 12668exports.GlobalWorkerOptions = GlobalWorkerOptions; 12669 12670/***/ }), 12671/* 136 */ 12672/***/ (function(module, exports, __w_pdfjs_require__) { 12673 12674"use strict"; 12675 12676 12677Object.defineProperty(exports, "__esModule", { 12678 value: true 12679}); 12680exports.MessageHandler = undefined; 12681 12682var _regenerator = __w_pdfjs_require__(137); 12683 12684var _regenerator2 = _interopRequireDefault(_regenerator); 12685 12686var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 12687 12688var resolveCall = function () { 12689 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(fn, args) { 12690 var thisArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; 12691 return _regenerator2.default.wrap(function _callee$(_context) { 12692 while (1) { 12693 switch (_context.prev = _context.next) { 12694 case 0: 12695 if (fn) { 12696 _context.next = 2; 12697 break; 12698 } 12699 12700 return _context.abrupt('return'); 12701 12702 case 2: 12703 return _context.abrupt('return', fn.apply(thisArg, args)); 12704 12705 case 3: 12706 case 'end': 12707 return _context.stop(); 12708 } 12709 } 12710 }, _callee, this); 12711 })); 12712
12713 return function resolveCall(_x2, _x3) { 12714 return _ref.apply(this, arguments); 12715 }; 12716}(); 12717 12718var _util = __w_pdfjs_require__(1); 12719 12720function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 12721 12722function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 12723 12724function wrapReason(reason) { 12725 if ((typeof reason === 'undefined' ? 'undefined' : _typeof(reason)) !== 'object') { 12726 return reason; 12727 } 12728 switch (reason.name) { 12729 case 'AbortException': 12730 return new _util.AbortException(reason.message); 12731 case 'MissingPDFException': 12732 return new _util.MissingPDFException(reason.message); 12733 case 'UnexpectedResponseException': 12734 return new _util.UnexpectedResponseException(reason.message, reason.status); 12735 default: 12736 return new _util.UnknownErrorException(reason.message, reason.details); 12737 } 12738} 12739function makeReasonSerializable(reason) { 12740 if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { 12741 return reason; 12742 } 12743 return new _util.UnknownErrorException(reason.message, reason.toString()); 12744} 12745function resolveOrReject(capability, success, reason) { 12746 if (success) { 12747 capability.resolve(); 12748 } else { 12749 capability.reject(reason); 12750 } 12751} 12752function finalize(promise) { 12753 return Promise.resolve(promise).catch(function () {}); 12754} 12755function MessageHandler(sourceName, targetName, comObj) { 12756 var _this = this; 12757 12758 this.sourceName = sourceName; 12759 this.targetName = targetName; 12760 this.comObj = comObj; 12761 this.callbackId = 1; 12762 this.streamId = 1; 12763 this.postMessageTransfers = true; 12764 this.streamSinks = Object.create(null); 12765 this.streamControllers = Object.create(null); 12766 var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); 12767 var ah = this.actionHandler = Object.create(null); 12768 this._onComObjOnMessage = function (event) { 12769 var data = event.data; 12770 if (data.targetName !== _this.sourceName) { 12771 return; 12772 } 12773 if (data.stream) { 12774 _this._processStreamMessage(data); 12775 } else if (data.isReply) { 12776 var callbackId = data.callbackId; 12777 if (data.callbackId in callbacksCapabilities) { 12778 var callback = callbacksCapabilities[callbackId]; 12779 delete callbacksCapabilities[callbackId]; 12780 if ('error' in data) { 12781 callback.reject(wrapReason(data.error)); 12782 } else { 12783 callback.resolve(data.data); 12784 } 12785 } else { 12786 throw new Error('Cannot resolve callback ' + callbackId); 12787 } 12788 } else if (data.action in ah) { 12789 var action = ah[data.action]; 12790 if (data.callbackId) { 12791 var _sourceName = _this.sourceName; 12792 var _targetName = data.sourceName; 12793 Promise.resolve().then(function () { 12794 return action[0].call(action[1], data.data); 12795 }).then(function (result) { 12796 comObj.postMessage({ 12797 sourceName: _sourceName, 12798 targetName: _targetName, 12799 isReply: true, 12800 callbackId: data.callbackId, 12801 data: result 12802 }); 12803 }, function (reason) { 12804 comObj.postMessage({ 12805 sourceName: _sourceName, 12806 targetName: _targetName, 12807 isReply: true, 12808 callbackId: data.callbackId, 12809 error: makeReasonSerializable(reason) 12810 }); 12811 }); 12812 } else if (data.streamId) { 12813 _this._createStreamSink(data); 12814 } else { 12815 action[0].call(action[1], data.data); 12816 } 12817 } else { 12818 throw new Error('Unknown action from worker: ' + data.action); 12819 } 12820 }; 12821 comObj.addEventListener('message', this._onComObjOnMessage); 12822} 12823MessageHandler.prototype = { 12824 on: function on(actionName, handler, scope) { 12825 var ah = this.actionHandler; 12826 if (ah[actionName]) { 12827 throw new Error('There is already an actionName called "' + actionName + '"'); 12828 } 12829 ah[actionName] = [handler, scope]; 12830 }, 12831 send: function send(actionName, data, transfers) { 12832 var message = { 12833 sourceName: this.sourceName, 12834 targetName: this.targetName, 12835 action: actionName, 12836 data: data 12837 }; 12838 this.postMessage(message, transfers); 12839 },
12840 sendWithPromise: function sendWithPromise(actionName, data, transfers) { 12841 var callbackId = this.callbackId++; 12842 var message = { 12843 sourceName: this.sourceName, 12844 targetName: this.targetName, 12845 action: actionName, 12846 data: data, 12847 callbackId: callbackId 12848 }; 12849 var capability = (0, _util.createPromiseCapability)(); 12850 this.callbacksCapabilities[callbackId] = capability; 12851 try { 12852 this.postMessage(message, transfers); 12853 } catch (e) { 12854 capability.reject(e); 12855 } 12856 return capability.promise; 12857 }, 12858 sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { 12859 var _this2 = this; 12860 12861 var streamId = this.streamId++; 12862 var sourceName = this.sourceName; 12863 var targetName = this.targetName; 12864 return new _util.ReadableStream({ 12865 start: function start(controller) { 12866 var startCapability = (0, _util.createPromiseCapability)(); 12867 _this2.streamControllers[streamId] = { 12868 controller: controller, 12869 startCall: startCapability, 12870 isClosed: false 12871 }; 12872 _this2.postMessage({ 12873 sourceName: sourceName, 12874 targetName: targetName, 12875 action: actionName, 12876 streamId: streamId, 12877 data: data, 12878 desiredSize: controller.desiredSize 12879 }); 12880 return startCapability.promise; 12881 }, 12882 pull: function pull(controller) { 12883 var pullCapability = (0, _util.createPromiseCapability)(); 12884 _this2.streamControllers[streamId].pullCall = pullCapability; 12885 _this2.postMessage({ 12886 sourceName: sourceName, 12887 targetName: targetName, 12888 stream: 'pull', 12889 streamId: streamId, 12890 desiredSize: controller.desiredSize 12891 }); 12892 return pullCapability.promise; 12893 }, 12894 cancel: function cancel(reason) { 12895 var cancelCapability = (0, _util.createPromiseCapability)(); 12896 _this2.streamControllers[streamId].cancelCall = cancelCapability; 12897 _this2.streamControllers[streamId].isClosed = true; 12898 _this2.postMessage({ 12899 sourceName: sourceName, 12900 targetName: targetName, 12901 stream: 'cancel', 12902 reason: reason, 12903 streamId: streamId 12904 }); 12905 return cancelCapability.promise; 12906 } 12907 }, queueingStrategy); 12908 }, 12909 _createStreamSink: function _createStreamSink(data) { 12910 var _this3 = this; 12911 12912 var self = this; 12913 var action = this.actionHandler[data.action]; 12914 var streamId = data.streamId; 12915 var desiredSize = data.desiredSize; 12916 var sourceName = this.sourceName; 12917 var targetName = data.sourceName; 12918 var capability = (0, _util.createPromiseCapability)(); 12919 var sendStreamRequest = function sendStreamRequest(_ref2) { 12920 var stream = _ref2.stream, 12921 chunk = _ref2.chunk, 12922 transfers = _ref2.transfers, 12923 success = _ref2.success, 12924 reason = _ref2.reason; 12925 12926 _this3.postMessage({ 12927 sourceName: sourceName, 12928 targetName: targetName, 12929 stream: stream, 12930 streamId: streamId, 12931 chunk: chunk, 12932 success: success, 12933 reason: reason 12934 }, transfers); 12935 }; 12936 var streamSink = { 12937 enqueue: function enqueue(chunk) { 12938 var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; 12939 var transfers = arguments[2]; 12940 12941 if (this.isCancelled) { 12942 return; 12943 } 12944 var lastDesiredSize = this.desiredSize; 12945 this.desiredSize -= size; 12946 if (lastDesiredSize > 0 && this.desiredSize <= 0) { 12947 this.sinkCapability = (0, _util.createPromiseCapability)(); 12948 this.ready = this.sinkCapability.promise; 12949 } 12950 sendStreamRequest({ 12951 stream: 'enqueue', 12952 chunk: chunk, 12953 transfers: transfers 12954 }); 12955 }, 12956 close: function close() { 12957 if (this.isCancelled) { 12958 return; 12959 } 12960 this.isCancelled = true; 12961 sendStreamRequest({ stream: 'close' }); 12962 delete self.streamSinks[streamId]; 12963 }, 12964 error: function error(reason) { 12965 if (this.isCancelled) { 12966 return; 12967 } 12968 this.isCancelled = true;
12969 sendStreamRequest({ 12970 stream: 'error', 12971 reason: reason 12972 }); 12973 }, 12974 12975 sinkCapability: capability, 12976 onPull: null, 12977 onCancel: null, 12978 isCancelled: false, 12979 desiredSize: desiredSize, 12980 ready: null 12981 }; 12982 streamSink.sinkCapability.resolve(); 12983 streamSink.ready = streamSink.sinkCapability.promise; 12984 this.streamSinks[streamId] = streamSink; 12985 resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { 12986 sendStreamRequest({ 12987 stream: 'start_complete', 12988 success: true 12989 }); 12990 }, function (reason) { 12991 sendStreamRequest({ 12992 stream: 'start_complete', 12993 success: false, 12994 reason: reason 12995 }); 12996 }); 12997 }, 12998 _processStreamMessage: function _processStreamMessage(data) { 12999 var _this4 = this; 13000 13001 var sourceName = this.sourceName; 13002 var targetName = data.sourceName; 13003 var streamId = data.streamId; 13004 var sendStreamResponse = function sendStreamResponse(_ref3) { 13005 var stream = _ref3.stream, 13006 success = _ref3.success, 13007 reason = _ref3.reason; 13008 13009 _this4.comObj.postMessage({ 13010 sourceName: sourceName, 13011 targetName: targetName, 13012 stream: stream, 13013 success: success, 13014 streamId: streamId, 13015 reason: reason 13016 }); 13017 }; 13018 var deleteStreamController = function deleteStreamController() { 13019 Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { 13020 return capability && finalize(capability.promise); 13021 })).then(function () { 13022 delete _this4.streamControllers[data.streamId]; 13023 }); 13024 }; 13025 switch (data.stream) { 13026 case 'start_complete': 13027 resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); 13028 break; 13029 case 'pull_complete': 13030 resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); 13031 break; 13032 case 'pull': 13033 if (!this.streamSinks[data.streamId]) { 13034 sendStreamResponse({ 13035 stream: 'pull_complete', 13036 success: true 13037 }); 13038 break; 13039 } 13040 if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { 13041 this.streamSinks[data.streamId].sinkCapability.resolve(); 13042 } 13043 this.streamSinks[data.streamId].desiredSize = data.desiredSize; 13044 resolveCall(this.streamSinks[data.streamId].onPull).then(function () { 13045 sendStreamResponse({ 13046 stream: 'pull_complete', 13047 success: true 13048 }); 13049 }, function (reason) { 13050 sendStreamResponse({ 13051 stream: 'pull_complete', 13052 success: false, 13053 reason: reason 13054 }); 13055 }); 13056 break; 13057 case 'enqueue': 13058 (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); 13059 if (!this.streamControllers[data.streamId].isClosed) { 13060 this.streamControllers[data.streamId].controller.enqueue(data.chunk); 13061 } 13062 break; 13063 case 'close': 13064 (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); 13065 if (this.streamControllers[data.streamId].isClosed) { 13066 break; 13067 } 13068 this.streamControllers[data.streamId].isClosed = true; 13069 this.streamControllers[data.streamId].controller.close(); 13070 deleteStreamController(); 13071 break; 13072 case 'error': 13073 (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); 13074 this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); 13075 deleteStreamController(); 13076 break; 13077 case 'cancel_complete': 13078 resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); 13079 deleteStreamController(); 13080 break; 13081 case 'cancel': 13082 if (!this.streamSinks[data.streamId]) { 13083 break; 13084 } 13085 resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { 13086 sendStreamResponse({ 13087 stream: 'cancel_complete', 13088 success: true 13089 }); 13090 }, function (reason) { 13091 sendStreamResponse({ 13092 stream: 'cancel_complete', 13093 success: false, 13094 reason: reason 13095 }); 13096 }); 13097 this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); 13098 this.streamSinks[data.streamId].isCancelled = true; 13099 delete this.streamSinks[data.streamId]; 13100 break; 13101 default: 13102 throw new Error('Unexpected stream case'); 13103 } 13104 }, 13105 postMessage: function postMessage(message, transfers) { 13106 if (transfers && this.postMessageTransfers) { 13107 this.comObj.postMessage(message, transfers); 13108 } else { 13109 this.comObj.postMessage(message); 13110 } 13111 }, 13112 destroy: function destroy() { 13113 this.comObj.removeEventListener('message', this._onComObjOnMessage); 13114 } 13115}; 13116exports.MessageHandler = MessageHandler; 13117 13118/***/ }), 13119/* 137 */ 13120/***/ (function(module, exports, __w_pdfjs_require__) { 13121 13122"use strict"; 13123 13124 13125module.exports = __w_pdfjs_require__(138); 13126 13127/***/ }), 13128/* 138 */ 13129/***/ (function(module, exports, __w_pdfjs_require__) { 13130 13131"use strict"; 13132 13133 13134var g = function () { 13135 return this; 13136}() || Function("return this")();
vendor: 9,980 bytes, lines 13137-13429
13137var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; 13138var oldRuntime = hadRuntime && g.regeneratorRuntime; 13139g.regeneratorRuntime = undefined; 13140module.exports = __w_pdfjs_require__(139); 13141if (hadRuntime) { 13142 g.regeneratorRuntime = oldRuntime; 13143} else { 13144 try { 13145 delete g.regeneratorRuntime; 13146 } catch (e) { 13147 g.regeneratorRuntime = undefined; 13148 } 13149} 13150 13151/***/ }), 13152/* 139 */ 13153/***/ (function(module, exports, __w_pdfjs_require__) { 13154 13155"use strict"; 13156/* WEBPACK VAR INJECTION */(function(module) { 13157 13158var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 13159 13160!function (global) { 13161 "use strict"; 13162 13163 var Op = Object.prototype; 13164 var hasOwn = Op.hasOwnProperty; 13165 var undefined; 13166 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 13167 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 13168 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 13169 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 13170 var inModule = ( false ? undefined : _typeof(module)) === "object"; 13171 var runtime = global.regeneratorRuntime; 13172 if (runtime) { 13173 if (inModule) { 13174 module.exports = runtime; 13175 } 13176 return; 13177 } 13178 runtime = global.regeneratorRuntime = inModule ? module.exports : {}; 13179 function wrap(innerFn, outerFn, self, tryLocsList) { 13180 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 13181 var generator = Object.create(protoGenerator.prototype); 13182 var context = new Context(tryLocsList || []); 13183 generator._invoke = makeInvokeMethod(innerFn, self, context); 13184 return generator; 13185 } 13186 runtime.wrap = wrap; 13187 function tryCatch(fn, obj, arg) { 13188 try { 13189 return { 13190 type: "normal", 13191 arg: fn.call(obj, arg) 13192 }; 13193 } catch (err) { 13194 return { 13195 type: "throw", 13196 arg: err 13197 }; 13198 } 13199 } 13200 var GenStateSuspendedStart = "suspendedStart"; 13201 var GenStateSuspendedYield = "suspendedYield"; 13202 var GenStateExecuting = "executing"; 13203 var GenStateCompleted = "completed"; 13204 var ContinueSentinel = {}; 13205 function Generator() {} 13206 function GeneratorFunction() {} 13207 function GeneratorFunctionPrototype() {} 13208 var IteratorPrototype = {}; 13209 IteratorPrototype[iteratorSymbol] = function () { 13210 return this; 13211 }; 13212 var getProto = Object.getPrototypeOf; 13213 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 13214 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 13215 IteratorPrototype = NativeIteratorPrototype; 13216 } 13217 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); 13218 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 13219 GeneratorFunctionPrototype.constructor = GeneratorFunction; 13220 GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; 13221 function defineIteratorMethods(prototype) { 13222 ["next", "throw", "return"].forEach(function (method) { 13223 prototype[method] = function (arg) { 13224 return this._invoke(method, arg); 13225 }; 13226 }); 13227 } 13228 runtime.isGeneratorFunction = function (genFun) { 13229 var ctor = typeof genFun === "function" && genFun.constructor; 13230 return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; 13231 }; 13232 runtime.mark = function (genFun) { 13233 if (Object.setPrototypeOf) { 13234 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 13235 } else { 13236 genFun.__proto__ = GeneratorFunctionPrototype; 13237 if (!(toStringTagSymbol in genFun)) { 13238 genFun[toStringTagSymbol] = "GeneratorFunction"; 13239 } 13240 } 13241 genFun.prototype = Object.create(Gp); 13242 return genFun; 13243 }; 13244 runtime.awrap = function (arg) { 13245 return { __await: arg }; 13246 }; 13247 function AsyncIterator(generator) { 13248 function invoke(method, arg, resolve, reject) { 13249 var record = tryCatch(generator[method], generator, arg); 13250 if (record.type === "throw") { 13251 reject(record.arg); 13252 } else { 13253 var result = record.arg; 13254 var value = result.value; 13255 if (value && (typeof value === "undefined" ? "undefined" : _typeof(value)) === "object" && hasOwn.call(value, "__await")) { 13256 return Promise.resolve(value.__await).then(function (value) { 13257 invoke("next", value, resolve, reject); 13258 }, function (err) { 13259 invoke("throw", err, resolve, reject); 13260 }); 13261 } 13262 return Promise.resolve(value).then(function (unwrapped) { 13263 result.value = unwrapped; 13264 resolve(result); 13265 }, reject); 13266 } 13267 } 13268 var previousPromise; 13269 function enqueue(method, arg) { 13270 function callInvokeWithMethodAndArg() { 13271 return new Promise(function (resolve, reject) { 13272 invoke(method, arg, resolve, reject); 13273 }); 13274 } 13275 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); 13276 } 13277 this._invoke = enqueue; 13278 } 13279 defineIteratorMethods(AsyncIterator.prototype); 13280 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 13281 return this; 13282 }; 13283 runtime.AsyncIterator = AsyncIterator; 13284 runtime.async = function (innerFn, outerFn, self, tryLocsList) { 13285 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); 13286 return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { 13287 return result.done ? result.value : iter.next(); 13288 }); 13289 }; 13290 function makeInvokeMethod(innerFn, self, context) { 13291 var state = GenStateSuspendedStart; 13292 return function invoke(method, arg) { 13293 if (state === GenStateExecuting) { 13294 throw new Error("Generator is already running"); 13295 } 13296 if (state === GenStateCompleted) { 13297 if (method === "throw") { 13298 throw arg; 13299 } 13300 return doneResult(); 13301 } 13302 context.method = method; 13303 context.arg = arg; 13304 while (true) { 13305 var delegate = context.delegate; 13306 if (delegate) { 13307 var delegateResult = maybeInvokeDelegate(delegate, context); 13308 if (delegateResult) { 13309 if (delegateResult === ContinueSentinel) continue; 13310 return delegateResult; 13311 } 13312 } 13313 if (context.method === "next") { 13314 context.sent = context._sent = context.arg; 13315 } else if (context.method === "throw") { 13316 if (state === GenStateSuspendedStart) { 13317 state = GenStateCompleted; 13318 throw context.arg; 13319 } 13320 context.dispatchException(context.arg); 13321 } else if (context.method === "return") { 13322 context.abrupt("return", context.arg); 13323 } 13324 state = GenStateExecuting; 13325 var record = tryCatch(innerFn, self, context); 13326 if (record.type === "normal") { 13327 state = context.done ? GenStateCompleted : GenStateSuspendedYield; 13328 if (record.arg === ContinueSentinel) { 13329 continue; 13330 } 13331 return { 13332 value: record.arg, 13333 done: context.done 13334 }; 13335 } else if (record.type === "throw") { 13336 state = GenStateCompleted; 13337 context.method = "throw"; 13338 context.arg = record.arg; 13339 } 13340 } 13341 }; 13342 } 13343 function maybeInvokeDelegate(delegate, context) { 13344 var method = delegate.iterator[context.method]; 13345 if (method === undefined) { 13346 context.delegate = null; 13347 if (context.method === "throw") { 13348 if (delegate.iterator.return) { 13349 context.method = "return"; 13350 context.arg = undefined; 13351 maybeInvokeDelegate(delegate, context); 13352 if (context.method === "throw") { 13353 return ContinueSentinel; 13354 } 13355 } 13356 context.method = "throw"; 13357 context.arg = new TypeError("The iterator does not provide a 'throw' method"); 13358 } 13359 return ContinueSentinel; 13360 } 13361 var record = tryCatch(method, delegate.iterator, context.arg); 13362 if (record.type === "throw") { 13363 context.method = "throw"; 13364 context.arg = record.arg; 13365 context.delegate = null; 13366 return ContinueSentinel; 13367 } 13368 var info = record.arg; 13369 if (!info) { 13370 context.method = "throw"; 13371 context.arg = new TypeError("iterator result is not an object"); 13372 context.delegate = null; 13373 return ContinueSentinel; 13374 } 13375 if (info.done) { 13376 context[delegate.resultName] = info.value; 13377 context.next = delegate.nextLoc; 13378 if (context.method !== "return") { 13379 context.method = "next"; 13380 context.arg = undefined; 13381 } 13382 } else { 13383 return info; 13384 } 13385 context.delegate = null; 13386 return ContinueSentinel; 13387 } 13388 defineIteratorMethods(Gp); 13389 Gp[toStringTagSymbol] = "Generator"; 13390 Gp[iteratorSymbol] = function () { 13391 return this; 13392 }; 13393 Gp.toString = function () { 13394 return "[object Generator]"; 13395 }; 13396 function pushTryEntry(locs) { 13397 var entry = { tryLoc: locs[0] }; 13398 if (1 in locs) { 13399 entry.catchLoc = locs[1]; 13400 } 13401 if (2 in locs) { 13402 entry.finallyLoc = locs[2]; 13403 entry.afterLoc = locs[3]; 13404 } 13405 this.tryEntries.push(entry); 13406 } 13407 function resetTryEntry(entry) { 13408 var record = entry.completion || {}; 13409 record.type = "normal"; 13410 delete record.arg; 13411 entry.completion = record; 13412 } 13413 function Context(tryLocsList) { 13414 this.tryEntries = [{ tryLoc: "root" }]; 13415 tryLocsList.forEach(pushTryEntry, this); 13416 this.reset(true); 13417 } 13418 runtime.keys = function (object) { 13419 var keys = []; 13420 for (var key in object) { 13421 keys.push(key); 13422 } 13423 keys.reverse(); 13424 return function next() { 13425 while (keys.length) { 13426 var key = keys.pop(); 13427 if (key in object) { 13428 next.value = key; 13429 next.done = false;
vendor: 4,115 bytes, lines 13430-13566
13430 return next; 13431 } 13432 } 13433 next.done = true; 13434 return next; 13435 }; 13436 }; 13437 function values(iterable) { 13438 if (iterable) { 13439 var iteratorMethod = iterable[iteratorSymbol]; 13440 if (iteratorMethod) { 13441 return iteratorMethod.call(iterable); 13442 } 13443 if (typeof iterable.next === "function") { 13444 return iterable; 13445 } 13446 if (!isNaN(iterable.length)) { 13447 var i = -1, 13448 next = function next() { 13449 while (++i < iterable.length) { 13450 if (hasOwn.call(iterable, i)) { 13451 next.value = iterable[i]; 13452 next.done = false; 13453 return next; 13454 } 13455 } 13456 next.value = undefined; 13457 next.done = true; 13458 return next; 13459 }; 13460 return next.next = next; 13461 } 13462 } 13463 return { next: doneResult }; 13464 } 13465 runtime.values = values; 13466 function doneResult() { 13467 return { 13468 value: undefined, 13469 done: true 13470 }; 13471 } 13472 Context.prototype = { 13473 constructor: Context, 13474 reset: function reset(skipTempReset) { 13475 this.prev = 0; 13476 this.next = 0; 13477 this.sent = this._sent = undefined; 13478 this.done = false; 13479 this.delegate = null; 13480 this.method = "next"; 13481 this.arg = undefined; 13482 this.tryEntries.forEach(resetTryEntry); 13483 if (!skipTempReset) { 13484 for (var name in this) { 13485 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { 13486 this[name] = undefined; 13487 } 13488 } 13489 } 13490 }, 13491 stop: function stop() { 13492 this.done = true; 13493 var rootEntry = this.tryEntries[0]; 13494 var rootRecord = rootEntry.completion; 13495 if (rootRecord.type === "throw") { 13496 throw rootRecord.arg; 13497 } 13498 return this.rval; 13499 }, 13500 dispatchException: function dispatchException(exception) { 13501 if (this.done) { 13502 throw exception; 13503 } 13504 var context = this; 13505 function handle(loc, caught) { 13506 record.type = "throw"; 13507 record.arg = exception; 13508 context.next = loc; 13509 if (caught) { 13510 context.method = "next"; 13511 context.arg = undefined; 13512 } 13513 return !!caught; 13514 } 13515 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13516 var entry = this.tryEntries[i]; 13517 var record = entry.completion; 13518 if (entry.tryLoc === "root") { 13519 return handle("end"); 13520 } 13521 if (entry.tryLoc <= this.prev) { 13522 var hasCatch = hasOwn.call(entry, "catchLoc"); 13523 var hasFinally = hasOwn.call(entry, "finallyLoc"); 13524 if (hasCatch && hasFinally) { 13525 if (this.prev < entry.catchLoc) { 13526 return handle(entry.catchLoc, true); 13527 } else if (this.prev < entry.finallyLoc) { 13528 return handle(entry.finallyLoc); 13529 } 13530 } else if (hasCatch) { 13531 if (this.prev < entry.catchLoc) { 13532 return handle(entry.catchLoc, true); 13533 } 13534 } else if (hasFinally) { 13535 if (this.prev < entry.finallyLoc) { 13536 return handle(entry.finallyLoc); 13537 } 13538 } else { 13539 throw new Error("try statement without catch or finally"); 13540 } 13541 } 13542 } 13543 }, 13544 abrupt: function abrupt(type, arg) { 13545 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13546 var entry = this.tryEntries[i]; 13547 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { 13548 var finallyEntry = entry; 13549 break; 13550 } 13551 } 13552 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { 13553 finallyEntry = null; 13554 } 13555 var record = finallyEntry ? finallyEntry.completion : {}; 13556 record.type = type; 13557 record.arg = arg; 13558 if (finallyEntry) { 13559 this.method = "next"; 13560 this.next = finallyEntry.finallyLoc; 13561 return ContinueSentinel; 13562 } 13563 return this.complete(record); 13564 }, 13565 complete: function complete(record, afterLoc) { 13566 if (record.type === "throw") {
13567 throw record.arg; 13568 } 13569 if (record.type === "break" || record.type === "continue") { 13570 this.next = record.arg; 13571 } else if (record.type === "return") { 13572 this.rval = this.arg = record.arg; 13573 this.method = "return"; 13574 this.next = "end"; 13575 } else if (record.type === "normal" && afterLoc) { 13576 this.next = afterLoc; 13577 } 13578 return ContinueSentinel; 13579 }, 13580 finish: function finish(finallyLoc) { 13581 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13582 var entry = this.tryEntries[i]; 13583 if (entry.finallyLoc === finallyLoc) { 13584 this.complete(entry.completion, entry.afterLoc); 13585 resetTryEntry(entry); 13586 return ContinueSentinel; 13587 } 13588 } 13589 }, 13590 "catch": function _catch(tryLoc) { 13591 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 13592 var entry = this.tryEntries[i]; 13593 if (entry.tryLoc === tryLoc) { 13594 var record = entry.completion; 13595 if (record.type === "throw") { 13596 var thrown = record.arg; 13597 resetTryEntry(entry); 13598 } 13599 return thrown; 13600 } 13601 } 13602 throw new Error("illegal catch attempt"); 13603 }, 13604 delegateYield: function delegateYield(iterable, resultName, nextLoc) { 13605 this.delegate = { 13606 iterator: values(iterable), 13607 resultName: resultName, 13608 nextLoc: nextLoc 13609 }; 13610 if (this.method === "next") { 13611 this.arg = undefined; 13612 } 13613 return ContinueSentinel; 13614 } 13615 }; 13616}(function () { 13617 return this; 13618}() || Function("return this")()); 13619/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(140)(module))) 13620 13621/***/ }), 13622/* 140 */ 13623/***/ (function(module, exports, __w_pdfjs_require__) { 13624 13625"use strict"; 13626 13627 13628module.exports = function (module) { 13629 if (!module.webpackPolyfill) { 13630 module.deprecate = function () {}; 13631 module.paths = []; 13632 if (!module.children) module.children = []; 13633 Object.defineProperty(module, "loaded", { 13634 enumerable: true, 13635 get: function get() { 13636 return module.l; 13637 } 13638 }); 13639 Object.defineProperty(module, "id", { 13640 enumerable: true, 13641 get: function get() { 13642 return module.i; 13643 } 13644 }); 13645 module.webpackPolyfill = 1; 13646 } 13647 return module; 13648}; 13649 13650/***/ }), 13651/* 141 */ 13652/***/ (function(module, exports, __w_pdfjs_require__) { 13653 13654"use strict"; 13655 13656 13657Object.defineProperty(exports, "__esModule", { 13658 value: true 13659}); 13660exports.Metadata = undefined; 13661 13662var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 13663 13664var _util = __w_pdfjs_require__(1); 13665 13666var _xml_parser = __w_pdfjs_require__(142); 13667 13668function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 13669 13670var Metadata = function () { 13671 function Metadata(data) { 13672 _classCallCheck(this, Metadata); 13673 13674 (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); 13675 data = this._repair(data); 13676 var parser = new _xml_parser.SimpleXMLParser(); 13677 var xmlDocument = parser.parseFromString(data); 13678 this._metadata = Object.create(null); 13679 if (xmlDocument) { 13680 this._parse(xmlDocument); 13681 } 13682 } 13683 13684 _createClass(Metadata, [{ 13685 key: '_repair', 13686 value: function _repair(data) { 13687 return data.replace(/>\\376\\377([^<]+)/g, function (all, codes) { 13688 var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { 13689 return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); 13690 }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { 13691 switch (name) { 13692 case 'amp': 13693 return '&'; 13694 case 'apos': 13695 return '\''; 13696 case 'gt': 13697 return '>'; 13698 case 'lt': 13699 return '<'; 13700 case 'quot': 13701 return '\"'; 13702 } 13703 throw new Error('_repair: ' + name + ' isn\'t defined.'); 13704 }); 13705 var chars = ''; 13706 for (var i = 0, ii = bytes.length; i < ii; i += 2) {
13707 var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); 13708 if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { 13709 chars += String.fromCharCode(code); 13710 } else { 13711 chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; 13712 } 13713 } 13714 return '>' + chars; 13715 }); 13716 } 13717 }, { 13718 key: '_parse', 13719 value: function _parse(xmlDocument) { 13720 var rdf = xmlDocument.documentElement; 13721 if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 13722 rdf = rdf.firstChild; 13723 while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { 13724 rdf = rdf.nextSibling; 13725 } 13726 } 13727 var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; 13728 if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { 13729 return; 13730 } 13731 var children = rdf.childNodes; 13732 for (var i = 0, ii = children.length; i < ii; i++) { 13733 var desc = children[i]; 13734 if (desc.nodeName.toLowerCase() !== 'rdf:description') { 13735 continue; 13736 } 13737 for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { 13738 if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { 13739 var entry = desc.childNodes[j]; 13740 var name = entry.nodeName.toLowerCase(); 13741 this._metadata[name] = entry.textContent.trim(); 13742 } 13743 } 13744 } 13745 } 13746 }, { 13747 key: 'get', 13748 value: function get(name) { 13749 return this._metadata[name] || null; 13750 } 13751 }, { 13752 key: 'getAll', 13753 value: function getAll() { 13754 return this._metadata; 13755 } 13756 }, { 13757 key: 'has', 13758 value: function has(name) { 13759 return typeof this._metadata[name] !== 'undefined'; 13760 } 13761 }]); 13762 13763 return Metadata; 13764}(); 13765 13766exports.Metadata = Metadata; 13767 13768/***/ }), 13769/* 142 */ 13770/***/ (function(module, exports, __w_pdfjs_require__) { 13771 13772"use strict"; 13773 13774 13775Object.defineProperty(exports, "__esModule", { 13776 value: true 13777}); 13778 13779var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 13780 13781var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; 13782 13783var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 13784 13785function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 13786 13787function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
13787onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 13788 13789function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 13790 13791var XMLParserErrorCode = { 13792 NoError: 0, 13793 EndOfDocument: -1, 13794 UnterminatedCdat: -2, 13795 UnterminatedXmlDeclaration: -3, 13796 UnterminatedDoctypeDeclaration: -4, 13797 UnterminatedComment: -5, 13798 MalformedElement: -6, 13799 OutOfMemory: -7, 13800 UnterminatedAttributeValue: -8, 13801 UnterminatedElement: -9, 13802 ElementNeverBegun: -10 13803}; 13804function isWhitespace(s, index) { 13805 var ch = s[index]; 13806 return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; 13807} 13808function isWhitespaceString(s) { 13809 for (var i = 0, ii = s.length; i < ii; i++) { 13810 if (!isWhitespace(s, i)) { 13811 return false; 13812 } 13813 } 13814 return true; 13815} 13816 13817var XMLParserBase = function () { 13818 function XMLParserBase() { 13819 _classCallCheck(this, XMLParserBase); 13820 } 13821 13822 _createClass(XMLParserBase, [{ 13823 key: '_resolveEntities', 13824 value: function _resolveEntities(s) { 13825 return s.replace(/&([^;]+);/g, function (all, entity) { 13826 if (entity.substring(0, 2) === '#x') { 13827 return String.fromCharCode(parseInt(entity.substring(2), 16)); 13828 } else if (entity.substring(0, 1) === '#') { 13829 return String.fromCharCode(parseInt(entity.substring(1), 10)); 13830 } 13831 switch (entity) { 13832 case 'lt': 13833 return '<'; 13834 case 'gt': 13835 return '>'; 13836 case 'amp': 13837 return '&'; 13838 case 'quot': 13839 return '\"'; 13840 } 13841 return this.onResolveEntity(entity); 13842 }); 13843 } 13844 }, { 13845 key: '_parseContent', 13846 value: function _parseContent(s, start) { 13847 var pos = start, 13848 name = void 0, 13849 attributes = []; 13850 function skipWs() { 13851 while (pos < s.length && isWhitespace(s, pos)) { 13852 ++pos; 13853 } 13854 } 13855 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 13856 ++pos; 13857 } 13858 name = s.substring(start, pos); 13859 skipWs(); 13860 while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { 13861 skipWs(); 13862 var attrName = '', 13863 attrValue = ''; 13864 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { 13865 attrName += s[pos]; 13866 ++pos; 13867 } 13868 skipWs(); 13869 if (s[pos] !== '=') { 13870 return null; 13871 } 13872 ++pos; 13873 skipWs(); 13874 var attrEndChar = s[pos]; 13875 if (attrEndChar !== '\"' && attrEndChar !== '\'') { 13876 return null; 13877 } 13878 var attrEndIndex = s.indexOf(attrEndChar, ++pos); 13879 if (attrEndIndex < 0) { 13880 return null; 13881 } 13882 attrValue = s.substring(pos, attrEndIndex); 13883 attributes.push({ 13884 name: attrName, 13885 value: this._resolveEntities(attrValue) 13886 }); 13887 pos = attrEndIndex + 1; 13888 skipWs(); 13889 } 13890 return { 13891 name: name, 13892 attributes: attributes, 13893 parsed: pos - start 13894 }; 13895 } 13896 }, { 13897 key: '_parseProcessingInstruction', 13898 value: function _parseProcessingInstruction(s, start) { 13899 var pos = start, 13900 name = void 0, 13901 value = void 0; 13902 function skipWs() { 13903 while (pos < s.length && isWhitespace(s, pos)) { 13904 ++pos; 13905 } 13906 } 13907 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { 13908 ++pos; 13909 } 13910 name = s.substring(start, pos); 13911 skipWs(); 13912 var attrStart = pos; 13913 while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { 13914 ++pos; 13915 } 13916 value = s.substring(attrStart, pos); 13917 return { 13918 name: name, 13919 value: value, 13920 parsed: pos - start 13921 }; 13922 } 13923 }, { 13924 key: 'parseXml', 13925 value: function parseXml(s) { 13926 var i = 0; 13927 while (i < s.length) { 13928 var ch = s[i]; 13929 var j = i; 13930 if (ch === '<') { 13931 ++j; 13932 var ch2 = s[j]; 13933 var q = void 0; 13934 switch (ch2) { 13935 case '/': 13936 ++j; 13937 q = s.indexOf('>', j); 13938 if (q < 0) { 13939 this.onError(XMLParserErrorCode.UnterminatedElement); 13940 return; 13941 } 13942 this.onEndElement(s.substring(j, q)); 13943 j = q + 1; 13944 break; 13945 case '?': 13946 ++j; 13947 var pi = this._parseProcessingInstruction(s, j); 13948 if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { 13949 this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); 13950 return; 13951 } 13952 this.onPi(pi.name, pi.value); 13953 j += pi.parsed + 2; 13954 break; 13955 case '!': 13956 if (s.substring(j + 1, j + 3) === '--') { 13957 q = s.indexOf('-->', j + 3); 13958 if (q < 0) { 13959 this.onError(XMLParserErrorCode.UnterminatedComment); 13960 return; 13961 } 13962 this.onComment(s.substring(j + 3, q)); 13963 j = q + 3; 13964 } else if (s.substring(j + 1, j + 8) === '[CDATA[') { 13965 q = s.indexOf(']]>', j + 8); 13966 if (q < 0) { 13967 this.onError(XMLParserErrorCode.UnterminatedCdat); 13968 return; 13969 } 13970 this.onCdata(s.substring(j + 8, q)); 13971 j = q + 3; 13972 } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { 13973 var q2 = s.indexOf('[', j + 8); 13974 var complexDoctype = false;
13975 q = s.indexOf('>', j + 8); 13976 if (q < 0) { 13977 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 13978 return; 13979 } 13980 if (q2 > 0 && q > q2) { 13981 q = s.indexOf(']>', j + 8); 13982 if (q < 0) { 13983 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); 13984 return; 13985 } 13986 complexDoctype = true; 13987 } 13988 var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); 13989 this.onDoctype(doctypeContent); 13990 j = q + (complexDoctype ? 2 : 1); 13991 } else { 13992 this.onError(XMLParserErrorCode.MalformedElement); 13993 return; 13994 } 13995 break; 13996 default: 13997 var content = this._parseContent(s, j); 13998 if (content === null) { 13999 this.onError(XMLParserErrorCode.MalformedElement); 14000 return; 14001 } 14002 var isClosed = false; 14003 if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { 14004 isClosed = true; 14005 } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { 14006 this.onError(XMLParserErrorCode.UnterminatedElement); 14007 return; 14008 } 14009 this.onBeginElement(content.name, content.attributes, isClosed); 14010 j += content.parsed + (isClosed ? 2 : 1); 14011 break; 14012 } 14013 } else { 14014 while (j < s.length && s[j] !== '<') { 14015 j++; 14016 } 14017 var text = s.substring(i, j); 14018 this.onText(this._resolveEntities(text)); 14019 } 14020 i = j; 14021 } 14022 } 14023 }, { 14024 key: 'onResolveEntity', 14025 value: function onResolveEntity(name) { 14026 return '&' + name + ';'; 14027 } 14028 }, { 14029 key: 'onPi', 14030 value: function onPi(name, value) {} 14031 }, { 14032 key: 'onComment', 14033 value: function onComment(text) {} 14034 }, { 14035 key: 'onCdata', 14036 value: function onCdata(text) {} 14037 }, { 14038 key: 'onDoctype', 14039 value: function onDoctype(doctypeContent) {} 14040 }, { 14041 key: 'onText', 14042 value: function onText(text) {} 14043 }, { 14044 key: 'onBeginElement', 14045 value: function onBeginElement(name, attributes, isEmpty) {} 14046 }, { 14047 key: 'onEndElement', 14048 value: function onEndElement(name) {} 14049 }, { 14050 key: 'onError', 14051 value: function onError(code) {} 14052 }]); 14053 14054 return XMLParserBase; 14055}(); 14056 14057var SimpleDOMNode = function () { 14058 function SimpleDOMNode(nodeName, nodeValue) { 14059 _classCallCheck(this, SimpleDOMNode); 14060 14061 this.nodeName = nodeName; 14062 this.nodeValue = nodeValue; 14063 Object.defineProperty(this, 'parentNode', { 14064 value: null, 14065 writable: true 14066 }); 14067 } 14068 14069 _createClass(SimpleDOMNode, [{ 14070 key: 'hasChildNodes', 14071 value: function hasChildNodes() { 14072 return this.childNodes && this.childNodes.length > 0; 14073 } 14074 }, { 14075 key: 'firstChild', 14076 get: function get() { 14077 return this.childNodes[0]; 14078 } 14079 }, { 14080 key: 'nextSibling', 14081 get: function get() { 14082 var index = this.parentNode.childNodes.indexOf(this); 14083 return this.parentNode.childNodes[index + 1]; 14084 } 14085 }, { 14086 key: 'textContent', 14087 get: function get() { 14088 if (!this.childNodes) { 14089 return this.nodeValue || ''; 14090 } 14091 return this.childNodes.map(function (child) { 14092 return child.textContent; 14093 }).join(''); 14094 } 14095 }]); 14096 14097 return SimpleDOMNode; 14098}(); 14099 14100var SimpleXMLParser = function (_XMLParserBase) { 14101 _inherits(SimpleXMLParser, _XMLParserBase); 14102 14103 function SimpleXMLParser() { 14104 _classCallCheck(this, SimpleXMLParser); 14105 14106 var _this = _possibleConstructorReturn(this, (SimpleXMLParser.__proto__ || Object.getPrototypeOf(SimpleXMLParser)).call(this)); 14107 14108 _this._currentFragment = null; 14109 _this._stack = null; 14110 _this._errorCode = XMLParserErrorCode.NoError; 14111 return _this; 14112 } 14113 14114 _createClass(SimpleXMLParser, [{ 14115 key: 'parseFromString', 14116 value: function parseFromString(data) { 14117 this._currentFragment = []; 14118 this._stack = []; 14119 this._errorCode = XMLParserErrorCode.NoError; 14120 this.parseXml(data); 14121 if (this._errorCode !== XMLParserErrorCode.NoError) { 14122 return undefined; 14123 } 14124 14125 var _currentFragment = _slicedToArray(this._currentFragment, 1), 14126 documentElement = _currentFragment[0]; 14127 14128 if (!documentElement) { 14129 return undefined; 14130 } 14131 return { documentElement: documentElement }; 14132 } 14133 }, { 14134 key: 'onResolveEntity', 14135 value: function onResolveEntity(name) { 14136 switch (name) { 14137 case 'apos': 14138 return '\''; 14139 } 14140 return _get(SimpleXMLParser.prototype.__proto__ || Object.getPrototypeOf(SimpleXMLParser.prototype), 'onResolveEntity', this).call(this, name); 14141 } 14142 }, { 14143 key: 'onText', 14144 value: function onText(text) { 14145 if (isWhitespaceString(text)) { 14146 return; 14147 } 14148 var node = new SimpleDOMNode('#text', text); 14149 this._currentFragment.push(node); 14150 } 14151 }, { 14152 key: 'onCdata', 14153 value: function onCdata(text) { 14154 var node = new SimpleDOMNode('#text', text); 14155 this._currentFragment.push(node); 14156 } 14157 }, { 14158 key: 'onBeginElement', 14159 value: function onBeginElement(name, attributes, isEmpty) { 14160 var node = new SimpleDOMNode(name); 14161 node.childNodes = []; 14162 this._currentFragment.push(node); 14163 if (isEmpty) { 14164 return; 14165 } 14166 this._stack.push(this._currentFragment); 14167 this._currentFragment = node.childNodes; 14168 } 14169 }, { 14170 key: 'onEndElement', 14171 value: function onEndElement(name) { 14172 this._currentFragment = this._stack.pop(); 14173 var lastElement = this._currentFragment[this._currentFragment.length - 1]; 14174 for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { 14175 lastElement.childNodes[i].parentNode = lastElement; 14176 } 14177 } 14178 }, { 14179 key: 'onError', 14180 value: function onError(code) { 14181 this._errorCode = code; 14182 } 14183 }]); 14184 14185 return SimpleXMLParser; 14186}(XMLParserBase); 14187 14188exports.SimpleXMLParser = SimpleXMLParser; 14189 14190/***/ }), 14191/* 143 */ 14192/***/ (function(module, exports, __w_pdfjs_require__) { 14193 14194"use strict"; 14195 14196 14197Object.defineProperty(exports, "__esModule", { 14198 value: true 14199}); 14200exports.PDFDataTransportStream = undefined; 14201 14202var _regenerator = __w_pdfjs_require__(137); 14203 14204var _regenerator2 = _interopRequireDefault(_regenerator); 14205 14206var _util = __w_pdfjs_require__(1); 14207 14208function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 14209 14210function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
14210y { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 14211 14212var PDFDataTransportStream = function PDFDataTransportStreamClosure() { 14213 function PDFDataTransportStream(params, pdfDataRangeTransport) { 14214 var _this = this; 14215 14216 (0, _util.assert)(pdfDataRangeTransport); 14217 this._queuedChunks = []; 14218 var initialData = params.initialData; 14219 if (initialData && initialData.length > 0) { 14220 var buffer = new Uint8Array(initialData).buffer; 14221 this._queuedChunks.push(buffer); 14222 } 14223 this._pdfDataRangeTransport = pdfDataRangeTransport; 14224 this._isStreamingSupported = !params.disableStream; 14225 this._isRangeSupported = !params.disableRange; 14226 this._contentLength = params.length; 14227 this._fullRequestReader = null; 14228 this._rangeReaders = []; 14229 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { 14230 _this._onReceiveData({ 14231 begin: begin, 14232 chunk: chunk 14233 }); 14234 }); 14235 this._pdfDataRangeTransport.addProgressListener(function (loaded) { 14236 _this._onProgress({ loaded: loaded }); 14237 }); 14238 this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { 14239 _this._onReceiveData({ chunk: chunk }); 14240 }); 14241 this._pdfDataRangeTransport.transportReady(); 14242 } 14243 PDFDataTransportStream.prototype = { 14244 _onReceiveData: function PDFDataTransportStream_onReceiveData(args) { 14245 var buffer = new Uint8Array(args.chunk).buffer; 14246 if (args.begin === undefined) { 14247 if (this._fullRequestReader) { 14248 this._fullRequestReader._enqueue(buffer); 14249 } else { 14250 this._queuedChunks.push(buffer); 14251 } 14252 } else { 14253 var found = this._rangeReaders.some(function (rangeReader) { 14254 if (rangeReader._begin !== args.begin) { 14255 return false; 14256 } 14257 rangeReader._enqueue(buffer); 14258 return true; 14259 }); 14260 (0, _util.assert)(found); 14261 } 14262 }, 14263 _onProgress: function PDFDataTransportStream_onDataProgress(evt) { 14264 if (this._rangeReaders.length > 0) { 14265 var firstReader = this._rangeReaders[0]; 14266 if (firstReader.onProgress) { 14267 firstReader.onProgress({ loaded: evt.loaded }); 14268 } 14269 } 14270 }, 14271 _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) { 14272 var i = this._rangeReaders.indexOf(reader); 14273 if (i >= 0) { 14274 this._rangeReaders.splice(i, 1); 14275 } 14276 }, 14277 getFullReader: function PDFDataTransportStream_getFullReader() { 14278 (0, _util.assert)(!this._fullRequestReader); 14279 var queuedChunks = this._queuedChunks; 14280 this._queuedChunks = null; 14281 return new PDFDataTransportStreamReader(this, queuedChunks); 14282 }, 14283 getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) { 14284 var reader = new PDFDataTransportStreamRangeReader(this, begin, end); 14285 this._pdfDataRangeTransport.requestDataRange(begin, end); 14286 this._rangeReaders.push(reader); 14287 return reader; 14288 }, 14289 cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) { 14290 if (this._fullRequestReader) { 14291 this._fullRequestReader.cancel(reason); 14292 } 14293 var readers = this._rangeReaders.slice(0); 14294 readers.forEach(function (rangeReader) { 14295 rangeReader.cancel(reason); 14296 }); 14297 this._pdfDataRangeTransport.abort(); 14298 } 14299 }; 14300 function PDFDataTransportStreamReader(stream, queuedChunks) { 14301 this._stream = stream; 14302 this._done = false; 14303 this._filename = null; 14304 this._queuedChunks = queuedChunks || []; 14305 this._requests = []; 14306 this._headersReady = Promise.resolve(); 14307 stream._fullRequestReader = this; 14308 this.onProgress = null; 14309 } 14310 PDFDataTransportStreamReader.prototype = { 14311 _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) { 14312 if (this._done) { 14313 return; 14314 } 14315 if (this._requests.length > 0) { 14316 var requestCapability = this._requests.shift(); 14317 requestCapability.resolve({ 14318 value: chunk, 14319 done: false 14320 }); 14321 return; 14322 } 14323 this._queuedChunks.push(chunk); 14324 }, 14325 get headersReady() { 14326 return this._headersReady; 14327 }, 14328 get filename() { 14329 return this._filename; 14330 }, 14331 get isRangeSupported() { 14332 return this._stream._isRangeSupported; 14333 }, 14334 get isStreamingSupported() { 14335 return this._stream._isStreamingSupported; 14336 }, 14337 get contentLength() { 14338 return this._stream._contentLength; 14339 }, 14340 read: function () { 14341 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 14342 var chunk, requestCapability; 14343 return _regenerator2.default.wrap(function _callee$(_context) { 14344 while (1) { 14345 switch (_context.prev = _context.next) { 14346 case 0: 14347 if (!(this._queuedChunks.length > 0)) { 14348 _context.next = 3; 14349 break; 14350 } 14351 14352 chunk = this._queuedChunks.shift(); 14353 return _context.abrupt('return', { 14354 value: chunk, 14355 done: false 14356 }); 14357 14358 case 3: 14359 if (!this._done) { 14360 _context.next = 5; 14361 break; 14362 } 14363 14364 return _context.abrupt('return', { 14365 value: undefined, 14366 done: true 14367 }); 14368 14369 case 5: 14370 requestCapability = (0, _util.createPromiseCapability)(); 14371 14372 this._requests.push(requestCapability); 14373 return _context.abrupt('return', requestCapability.promise); 14374 14375 case 8: 14376 case 'end': 14377 return _context.stop(); 14378 } 14379 } 14380 }, _callee, this); 14381 })); 14382 14383 function read() { 14384 return _ref.apply(this, arguments); 14385 } 14386 14387 return read; 14388 }(), 14389 14390 cancel: function PDFDataTransportStreamReader_cancel(reason) { 14391 this._done = true;
14392 this._requests.forEach(function (requestCapability) { 14393 requestCapability.resolve({ 14394 value: undefined, 14395 done: true 14396 }); 14397 }); 14398 this._requests = []; 14399 } 14400 }; 14401 function PDFDataTransportStreamRangeReader(stream, begin, end) { 14402 this._stream = stream; 14403 this._begin = begin; 14404 this._end = end; 14405 this._queuedChunk = null; 14406 this._requests = []; 14407 this._done = false; 14408 this.onProgress = null; 14409 } 14410 PDFDataTransportStreamRangeReader.prototype = { 14411 _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) { 14412 if (this._done) { 14413 return; 14414 } 14415 if (this._requests.length === 0) { 14416 this._queuedChunk = chunk; 14417 } else { 14418 var requestsCapability = this._requests.shift(); 14419 requestsCapability.resolve({ 14420 value: chunk, 14421 done: false 14422 }); 14423 this._requests.forEach(function (requestCapability) { 14424 requestCapability.resolve({ 14425 value: undefined, 14426 done: true 14427 }); 14428 }); 14429 this._requests = []; 14430 } 14431 this._done = true; 14432 this._stream._removeRangeReader(this); 14433 }, 14434 get isStreamingSupported() { 14435 return false; 14436 }, 14437 read: function () { 14438 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 14439 var chunk, requestCapability; 14440 return _regenerator2.default.wrap(function _callee2$(_context2) { 14441 while (1) { 14442 switch (_context2.prev = _context2.next) { 14443 case 0: 14444 if (!this._queuedChunk) { 14445 _context2.next = 4; 14446 break; 14447 } 14448 14449 chunk = this._queuedChunk; 14450 14451 this._queuedChunk = null; 14452 return _context2.abrupt('return', { 14453 value: chunk, 14454 done: false 14455 }); 14456 14457 case 4: 14458 if (!this._done) { 14459 _context2.next = 6; 14460 break; 14461 } 14462 14463 return _context2.abrupt('return', { 14464 value: undefined, 14465 done: true 14466 }); 14467 14468 case 6: 14469 requestCapability = (0, _util.createPromiseCapability)(); 14470 14471 this._requests.push(requestCapability); 14472 return _context2.abrupt('return', requestCapability.promise); 14473 14474 case 9: 14475 case 'end': 14476 return _context2.stop(); 14477 } 14478 } 14479 }, _callee2, this); 14480 })); 14481 14482 function read() { 14483 return _ref2.apply(this, arguments); 14484 } 14485 14486 return read; 14487 }(), 14488 14489 cancel: function PDFDataTransportStreamRangeReader_cancel(reason) { 14490 this._done = true; 14491 this._requests.forEach(function (requestCapability) { 14492 requestCapability.resolve({ 14493 value: undefined, 14494 done: true 14495 }); 14496 }); 14497 this._requests = []; 14498 this._stream._removeRangeReader(this); 14499 } 14500 }; 14501 return PDFDataTransportStream; 14502}(); 14503exports.PDFDataTransportStream = PDFDataTransportStream; 14504 14505/***/ }), 14506/* 144 */ 14507/***/ (function(module, exports, __w_pdfjs_require__) { 14508 14509"use strict"; 14510 14511 14512Object.defineProperty(exports, "__esModule", { 14513 value: true 14514}); 14515exports.WebGLContext = undefined; 14516 14517var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 14518 14519var _util = __w_pdfjs_require__(1); 14520 14521function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 14522 14523var WebGLContext = function () { 14524 function WebGLContext(_ref) { 14525 var _ref$enable = _ref.enable, 14526 enable = _ref$enable === undefined ? false : _ref$enable; 14527 14528 _classCallCheck(this, WebGLContext); 14529 14530 this._enabled = enable === true; 14531 } 14532 14533 _createClass(WebGLContext, [{ 14534 key: 'composeSMask', 14535 value: function composeSMask(_ref2) { 14536 var layer = _ref2.layer, 14537 mask = _ref2.mask, 14538 properties = _ref2.properties; 14539 14540 return WebGLUtils.composeSMask(layer, mask, properties); 14541 } 14542 }, { 14543 key: 'drawFigures', 14544 value: function drawFigures(_ref3) { 14545 var width = _ref3.width, 14546 height = _ref3.height, 14547 backgroundColor = _ref3.backgroundColor, 14548 figures = _ref3.figures, 14549 context = _ref3.context; 14550 14551 return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); 14552 } 14553 }, { 14554 key: 'clear', 14555 value: function clear() { 14556 WebGLUtils.cleanup(); 14557 } 14558 }, { 14559 key: 'isEnabled', 14560 get: function get() { 14561 var enabled = this._enabled; 14562 if (enabled) { 14563 enabled = WebGLUtils.tryInitGL(); 14564 } 14565 return (0, _util.shadow)(this, 'isEnabled', enabled); 14566 } 14567 }]); 14568 14569 return WebGLContext; 14570}(); 14571 14572var WebGLUtils = function WebGLUtilsClosure() { 14573 function loadShader(gl, code, shaderType) { 14574 var shader = gl.createShader(shaderType);
vendor: 11,433 bytes, lines 14575-14820
14575 gl.shaderSource(shader, code); 14576 gl.compileShader(shader); 14577 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); 14578 if (!compiled) { 14579 var errorMsg = gl.getShaderInfoLog(shader); 14580 throw new Error('Error during shader compilation: ' + errorMsg); 14581 } 14582 return shader; 14583 } 14584 function createVertexShader(gl, code) { 14585 return loadShader(gl, code, gl.VERTEX_SHADER); 14586 } 14587 function createFragmentShader(gl, code) { 14588 return loadShader(gl, code, gl.FRAGMENT_SHADER); 14589 } 14590 function createProgram(gl, shaders) { 14591 var program = gl.createProgram(); 14592 for (var i = 0, ii = shaders.length; i < ii; ++i) { 14593 gl.attachShader(program, shaders[i]); 14594 } 14595 gl.linkProgram(program); 14596 var linked = gl.getProgramParameter(program, gl.LINK_STATUS); 14597 if (!linked) { 14598 var errorMsg = gl.getProgramInfoLog(program); 14599 throw new Error('Error during program linking: ' + errorMsg); 14600 } 14601 return program; 14602 } 14603 function createTexture(gl, image, textureId) { 14604 gl.activeTexture(textureId); 14605 var texture = gl.createTexture(); 14606 gl.bindTexture(gl.TEXTURE_2D, texture); 14607 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); 14608 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); 14609 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); 14610 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); 14611 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); 14612 return texture; 14613 } 14614 var currentGL, currentCanvas; 14615 function generateGL() { 14616 if (currentGL) { 14617 return; 14618 } 14619 currentCanvas = document.createElement('canvas'); 14620 currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false }); 14621 } 14622 var smaskVertexShaderCode = '\ 14623 attribute vec2 a_position; \ 14624 attribute vec2 a_texCoord; \ 14625 \ 14626 uniform vec2 u_resolution; \ 14627 \ 14628 varying vec2 v_texCoord; \ 14629 \ 14630 void main() { \ 14631 vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ 14632 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 14633 \ 14634 v_texCoord = a_texCoord; \ 14635 } '; 14636 var smaskFragmentShaderCode = '\ 14637 precision mediump float; \ 14638 \ 14639 uniform vec4 u_backdrop; \ 14640 uniform int u_subtype; \ 14641 uniform sampler2D u_image; \ 14642 uniform sampler2D u_mask; \ 14643 \ 14644 varying vec2 v_texCoord; \ 14645 \ 14646 void main() { \ 14647 vec4 imageColor = texture2D(u_image, v_texCoord); \ 14648 vec4 maskColor = texture2D(u_mask, v_texCoord); \ 14649 if (u_backdrop.a > 0.0) { \ 14650 maskColor.rgb = maskColor.rgb * maskColor.a + \ 14651 u_backdrop.rgb * (1.0 - maskColor.a); \ 14652 } \ 14653 float lum; \ 14654 if (u_subtype == 0) { \ 14655 lum = maskColor.a; \ 14656 } else { \ 14657 lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ 14658 maskColor.b * 0.11; \ 14659 } \ 14660 imageColor.a *= lum; \ 14661 imageColor.rgb *= imageColor.a; \ 14662 gl_FragColor = imageColor; \ 14663 } '; 14664 var smaskCache = null; 14665 function initSmaskGL() { 14666 var canvas, gl; 14667 generateGL(); 14668 canvas = currentCanvas; 14669 currentCanvas = null; 14670 gl = currentGL; 14671 currentGL = null; 14672 var vertexShader = createVertexShader(gl, smaskVertexShaderCode); 14673 var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); 14674 var program = createProgram(gl, [vertexShader, fragmentShader]); 14675 gl.useProgram(program); 14676 var cache = {}; 14677 cache.gl = gl; 14678 cache.canvas = canvas; 14679 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 14680 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 14681 cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); 14682 cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); 14683 var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); 14684 var texLayerLocation = gl.getUniformLocation(program, 'u_image'); 14685 var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); 14686 var texCoordBuffer = gl.createBuffer(); 14687 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); 14688 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); 14689 gl.enableVertexAttribArray(texCoordLocation); 14690 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); 14691 gl.uniform1i(texLayerLocation, 0); 14692 gl.uniform1i(texMaskLocation, 1); 14693 smaskCache = cache; 14694 } 14695 function composeSMask(layer, mask, properties) { 14696 var width = layer.width, 14697 height = layer.height; 14698 if (!smaskCache) { 14699 initSmaskGL(); 14700 } 14701 var cache = smaskCache, 14702 canvas = cache.canvas, 14703 gl = cache.gl; 14704 canvas.width = width; 14705 canvas.height = height; 14706 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 14707 gl.uniform2f(cache.resolutionLocation, width, height); 14708 if (properties.backdrop) { 14709 gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); 14710 } else { 14711 gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); 14712 } 14713 gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); 14714 var texture = createTexture(gl, layer, gl.TEXTURE0); 14715 var maskTexture = createTexture(gl, mask, gl.TEXTURE1); 14716 var buffer = gl.createBuffer(); 14717 gl.bindBuffer(gl.ARRAY_BUFFER, buffer); 14718 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); 14719 gl.enableVertexAttribArray(cache.positionLocation); 14720 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 14721 gl.clearColor(0, 0, 0, 0); 14722 gl.enable(gl.BLEND); 14723 gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); 14724 gl.clear(gl.COLOR_BUFFER_BIT); 14725 gl.drawArrays(gl.TRIANGLES, 0, 6); 14726 gl.flush(); 14727 gl.deleteTexture(texture); 14728 gl.deleteTexture(maskTexture); 14729 gl.deleteBuffer(buffer); 14730 return canvas; 14731 } 14732 var figuresVertexShaderCode = '\ 14733 attribute vec2 a_position; \ 14734 attribute vec3 a_color; \ 14735 \ 14736 uniform vec2 u_resolution; \ 14737 uniform vec2 u_scale; \ 14738 uniform vec2 u_offset; \ 14739 \ 14740 varying vec4 v_color; \ 14741 \ 14742 void main() { \ 14743 vec2 position = (a_position + u_offset) * u_scale; \ 14744 vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ 14745 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ 14746 \ 14747 v_color = vec4(a_color / 255.0, 1.0); \ 14748 } '; 14749 var figuresFragmentShaderCode = '\ 14750 precision mediump float; \ 14751 \ 14752 varying vec4 v_color; \ 14753 \ 14754 void main() { \ 14755 gl_FragColor = v_color; \ 14756 } '; 14757 var figuresCache = null; 14758 function initFiguresGL() { 14759 var canvas, gl; 14760 generateGL(); 14761 canvas = currentCanvas; 14762 currentCanvas = null; 14763 gl = currentGL; 14764 currentGL = null; 14765 var vertexShader = createVertexShader(gl, figuresVertexShaderCode); 14766 var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); 14767 var program = createProgram(gl, [vertexShader, fragmentShader]); 14768 gl.useProgram(program); 14769 var cache = {}; 14770 cache.gl = gl; 14771 cache.canvas = canvas; 14772 cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); 14773 cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); 14774 cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); 14775 cache.positionLocation = gl.getAttribLocation(program, 'a_position'); 14776 cache.colorLocation = gl.getAttribLocation(program, 'a_color'); 14777 figuresCache = cache; 14778 } 14779 function drawFigures(width, height, backgroundColor, figures, context) { 14780 if (!figuresCache) { 14781 initFiguresGL(); 14782 } 14783 var cache = figuresCache, 14784 canvas = cache.canvas, 14785 gl = cache.gl; 14786 canvas.width = width; 14787 canvas.height = height; 14788 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); 14789 gl.uniform2f(cache.resolutionLocation, width, height); 14790 var count = 0; 14791 var i, ii, rows; 14792 for (i = 0, ii = figures.length; i < ii; i++) { 14793 switch (figures[i].type) { 14794 case 'lattice': 14795 rows = figures[i].coords.length / figures[i].verticesPerRow | 0; 14796 count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; 14797 break; 14798 case 'triangles': 14799 count += figures[i].coords.length; 14800 break; 14801 } 14802 } 14803 var coords = new Float32Array(count * 2); 14804 var colors = new Uint8Array(count * 3); 14805 var coordsMap = context.coords, 14806 colorsMap = context.colors; 14807 var pIndex = 0, 14808 cIndex = 0; 14809 for (i = 0, ii = figures.length; i < ii; i++) { 14810 var figure = figures[i], 14811 ps = figure.coords, 14812 cs = figure.colors; 14813 switch (figure.type) { 14814 case 'lattice': 14815 var cols = figure.verticesPerRow; 14816 rows = ps.length / cols | 0; 14817 for (var row = 1; row < rows; row++) { 14818 var offset = row * cols + 1; 14819 for (var col = 1; col < cols; col++, offset++) { 14820 coords[pIndex] = coordsMap[ps[offset - cols - 1]];
14821 coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; 14822 coords[pIndex + 2] = coordsMap[ps[offset - cols]]; 14823 coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; 14824 coords[pIndex + 4] = coordsMap[ps[offset - 1]]; 14825 coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; 14826 colors[cIndex] = colorsMap[cs[offset - cols - 1]]; 14827 colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; 14828 colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; 14829 colors[cIndex + 3] = colorsMap[cs[offset - cols]]; 14830 colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; 14831 colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; 14832 colors[cIndex + 6] = colorsMap[cs[offset - 1]]; 14833 colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; 14834 colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; 14835 coords[pIndex + 6] = coords[pIndex + 2]; 14836 coords[pIndex + 7] = coords[pIndex + 3]; 14837 coords[pIndex + 8] = coords[pIndex + 4]; 14838 coords[pIndex + 9] = coords[pIndex + 5]; 14839 coords[pIndex + 10] = coordsMap[ps[offset]]; 14840 coords[pIndex + 11] = coordsMap[ps[offset] + 1]; 14841 colors[cIndex + 9] = colors[cIndex + 3]; 14842 colors[cIndex + 10] = colors[cIndex + 4]; 14843 colors[cIndex + 11] = colors[cIndex + 5]; 14844 colors[cIndex + 12] = colors[cIndex + 6]; 14845 colors[cIndex + 13] = colors[cIndex + 7]; 14846 colors[cIndex + 14] = colors[cIndex + 8]; 14847 colors[cIndex + 15] = colorsMap[cs[offset]]; 14848 colors[cIndex + 16] = colorsMap[cs[offset] + 1]; 14849 colors[cIndex + 17] = colorsMap[cs[offset] + 2]; 14850 pIndex += 12; 14851 cIndex += 18; 14852 } 14853 } 14854 break; 14855 case 'triangles': 14856 for (var j = 0, jj = ps.length; j < jj; j++) { 14857 coords[pIndex] = coordsMap[ps[j]]; 14858 coords[pIndex + 1] = coordsMap[ps[j] + 1]; 14859 colors[cIndex] = colorsMap[cs[j]]; 14860 colors[cIndex + 1] = colorsMap[cs[j] + 1]; 14861 colors[cIndex + 2] = colorsMap[cs[j] + 2]; 14862 pIndex += 2; 14863 cIndex += 3; 14864 } 14865 break; 14866 } 14867 } 14868 if (backgroundColor) { 14869 gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); 14870 } else { 14871 gl.clearColor(0, 0, 0, 0); 14872 } 14873 gl.clear(gl.COLOR_BUFFER_BIT); 14874 var coordsBuffer = gl.createBuffer(); 14875 gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); 14876 gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); 14877 gl.enableVertexAttribArray(cache.positionLocation); 14878 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); 14879 var colorsBuffer = gl.createBuffer(); 14880 gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); 14881 gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); 14882 gl.enableVertexAttribArray(cache.colorLocation); 14883 gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); 14884 gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); 14885 gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); 14886 gl.drawArrays(gl.TRIANGLES, 0, count); 14887 gl.flush(); 14888 gl.deleteBuffer(coordsBuffer); 14889 gl.deleteBuffer(colorsBuffer); 14890 return canvas; 14891 } 14892 return { 14893 tryInitGL: function tryInitGL() { 14894 try { 14895 generateGL(); 14896 return !!currentGL; 14897 } catch (ex) {} 14898 return false; 14899 }, 14900 14901 composeSMask: composeSMask, 14902 drawFigures: drawFigures, 14903 cleanup: function cleanup() { 14904 if (smaskCache && smaskCache.canvas) { 14905 smaskCache.canvas.width = 0; 14906 smaskCache.canvas.height = 0; 14907 } 14908 if (figuresCache && figuresCache.canvas) { 14909 figuresCache.canvas.width = 0; 14910 figuresCache.canvas.height = 0; 14911 } 14912 smaskCache = null; 14913 figuresCache = null; 14914 } 14915 }; 14916}(); 14917exports.WebGLContext = WebGLContext; 14918 14919/***/ }), 14920/* 145 */ 14921/***/ (function(module, exports, __w_pdfjs_require__) { 14922 14923"use strict"; 14924 14925 14926Object.defineProperty(exports, "__esModule", { 14927 value: true 14928}); 14929exports.renderTextLayer = undefined; 14930 14931var _util = __w_pdfjs_require__(1); 14932 14933var _global_scope = __w_pdfjs_require__(3); 14934 14935var _global_scope2 = _interopRequireDefault(_global_scope); 14936 14937function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 14938 14939var renderTextLayer = function renderTextLayerClosure() { 14940 var MAX_TEXT_DIVS_TO_RENDER = 100000; 14941 var NonWhitespaceRegexp = /\S/; 14942 function isAllWhitespace(str) { 14943 return !NonWhitespaceRegexp.test(str); 14944 } 14945 var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; 14946 function appendText(task, geom, styles) { 14947 var textDiv = document.createElement('div'); 14948 var textDivProperties = { 14949 style: null, 14950 angle: 0, 14951 canvasWidth: 0, 14952 isWhitespace: false, 14953 originalTransform: null, 14954 paddingBottom: 0, 14955 paddingLeft: 0, 14956 paddingRight: 0, 14957 paddingTop: 0, 14958 scale: 1 14959 }; 14960 task._textDivs.push(textDiv); 14961 if (isAllWhitespace(geom.str)) { 14962 textDivProperties.isWhitespace = true; 14963 task._textDivProperties.set(textDiv, textDivProperties); 14964 return; 14965 } 14966 var tx = _util.Util.transform(task._viewport.transform, geom.transform); 14967 var angle = Math.atan2(tx[1], tx[0]); 14968 var style = styles[geom.fontName]; 14969 if (style.vertical) { 14970 angle += Math.PI / 2; 14971 } 14972 var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); 14973 var fontAscent = fontHeight; 14974 if (style.ascent) { 14975 fontAscent = style.ascent * fontAscent; 14976 }
14976 else if (style.descent) { 14977 fontAscent = (1 + style.descent) * fontAscent; 14978 } 14979 var left; 14980 var top; 14981 if (angle === 0) { 14982 left = tx[4]; 14983 top = tx[5] - fontAscent; 14984 } else { 14985 left = tx[4] + fontAscent * Math.sin(angle); 14986 top = tx[5] - fontAscent * Math.cos(angle); 14987 } 14988 styleBuf[1] = left; 14989 styleBuf[3] = top; 14990 styleBuf[5] = fontHeight; 14991 styleBuf[7] = style.fontFamily; 14992 textDivProperties.style = styleBuf.join(''); 14993 textDiv.setAttribute('style', textDivProperties.style); 14994 textDiv.textContent = geom.str; 14995 if (task._fontInspectorEnabled) { 14996 textDiv.dataset.fontName = geom.fontName; 14997 } 14998 if (angle !== 0) { 14999 textDivProperties.angle = angle * (180 / Math.PI); 15000 } 15001 if (geom.str.length > 1) { 15002 if (style.vertical) { 15003 textDivProperties.canvasWidth = geom.height * task._viewport.scale; 15004 } else { 15005 textDivProperties.canvasWidth = geom.width * task._viewport.scale; 15006 } 15007 } 15008 task._textDivProperties.set(textDiv, textDivProperties); 15009 if (task._textContentStream) { 15010 task._layoutText(textDiv); 15011 } 15012 if (task._enhanceTextSelection) { 15013 var angleCos = 1, 15014 angleSin = 0; 15015 if (angle !== 0) { 15016 angleCos = Math.cos(angle); 15017 angleSin = Math.sin(angle); 15018 } 15019 var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; 15020 var divHeight = fontHeight; 15021 var m, b; 15022 if (angle !== 0) { 15023 m = [angleCos, angleSin, -angleSin, angleCos, left, top]; 15024 b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); 15025 } else { 15026 b = [left, top, left + divWidth, top + divHeight]; 15027 } 15028 task._bounds.push({ 15029 left: b[0], 15030 top: b[1], 15031 right: b[2], 15032 bottom: b[3], 15033 div: textDiv, 15034 size: [divWidth, divHeight], 15035 m: m 15036 }); 15037 } 15038 } 15039 function render(task) { 15040 if (task._canceled) { 15041 return; 15042 } 15043 var textDivs = task._textDivs; 15044 var capability = task._capability; 15045 var textDivsLength = textDivs.length; 15046 if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { 15047 task._renderingDone = true; 15048 capability.resolve(); 15049 return; 15050 } 15051 if (!task._textContentStream) { 15052 for (var i = 0; i < textDivsLength; i++) { 15053 task._layoutText(textDivs[i]); 15054 } 15055 } 15056 task._renderingDone = true; 15057 capability.resolve(); 15058 } 15059 function expand(task) { 15060 var bounds = task._bounds; 15061 var viewport = task._viewport; 15062 var expanded = expandBounds(viewport.width, viewport.height, bounds); 15063 for (var i = 0; i < expanded.length; i++) { 15064 var div = bounds[i].div; 15065 var divProperties = task._textDivProperties.get(div); 15066 if (divProperties.angle === 0) { 15067 divProperties.paddingLeft = bounds[i].left - expanded[i].left; 15068 divProperties.paddingTop = bounds[i].top - expanded[i].top; 15069 divProperties.paddingRight = expanded[i].right - bounds[i].right; 15070 divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; 15071 task._textDivProperties.set(div, divProperties); 15072 continue; 15073 } 15074 var e = expanded[i], 15075 b = bounds[i]; 15076 var m = b.m, 15077 c = m[0], 15078 s = m[1]; 15079 var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; 15080 var ts = new Float64Array(64); 15081 points.forEach(function (p, i) { 15082 var t = _util.Util.applyTransform(p, m); 15083 ts[i + 0] = c && (e.left - t[0]) / c; 15084 ts[i + 4] = s && (e.top - t[1]) / s; 15085 ts[i + 8] = c && (e.right - t[0]) / c; 15086 ts[i + 12] = s && (e.bottom - t[1]) / s; 15087 ts[i + 16] = s && (e.left - t[0]) / -s; 15088 ts[i + 20] = c && (e.top - t[1]) / c; 15089 ts[i + 24] = s && (e.right - t[0]) / -s; 15090 ts[i + 28] = c && (e.bottom - t[1]) / c; 15091 ts[i + 32] = c && (e.left - t[0]) / -c; 15092 ts[i + 36] = s && (e.top - t[1]) / -s; 15093 ts[i + 40] = c && (e.right - t[0]) / -c; 15094 ts[i + 44] = s && (e.bottom - t[1]) / -s; 15095 ts[i + 48] = s && (e.left - t[0]) / s; 15096 ts[i + 52] = c && (e.top - t[1]) / -c; 15097 ts[i + 56] = s && (e.right - t[0]) / s; 15098 ts[i + 60] = c && (e.bottom - t[1]) / -c; 15099 }); 15100 var findPositiveMin = function findPositiveMin(ts, offset, count) { 15101 var result = 0; 15102 for (var i = 0; i < count; i++) { 15103 var t = ts[offset++]; 15104 if (t > 0) { 15105 result = result ? Math.min(t, result) : t; 15106 } 15107 } 15108 return result; 15109 }; 15110 var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
15111 divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; 15112 divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; 15113 divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; 15114 divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; 15115 task._textDivProperties.set(div, divProperties); 15116 } 15117 } 15118 function expandBounds(width, height, boxes) { 15119 var bounds = boxes.map(function (box, i) { 15120 return { 15121 x1: box.left, 15122 y1: box.top, 15123 x2: box.right, 15124 y2: box.bottom, 15125 index: i, 15126 x1New: undefined, 15127 x2New: undefined 15128 }; 15129 }); 15130 expandBoundsLTR(width, bounds); 15131 var expanded = new Array(boxes.length); 15132 bounds.forEach(function (b) { 15133 var i = b.index; 15134 expanded[i] = { 15135 left: b.x1New, 15136 top: 0, 15137 right: b.x2New, 15138 bottom: 0 15139 }; 15140 }); 15141 boxes.map(function (box, i) { 15142 var e = expanded[i], 15143 b = bounds[i]; 15144 b.x1 = box.top; 15145 b.y1 = width - e.right; 15146 b.x2 = box.bottom; 15147 b.y2 = width - e.left; 15148 b.index = i; 15149 b.x1New = undefined; 15150 b.x2New = undefined; 15151 }); 15152 expandBoundsLTR(height, bounds); 15153 bounds.forEach(function (b) { 15154 var i = b.index; 15155 expanded[i].top = b.x1New; 15156 expanded[i].bottom = b.x2New; 15157 }); 15158 return expanded; 15159 } 15160 function expandBoundsLTR(width, bounds) { 15161 bounds.sort(function (a, b) { 15162 return a.x1 - b.x1 || a.index - b.index; 15163 }); 15164 var fakeBoundary = { 15165 x1: -Infinity, 15166 y1: -Infinity, 15167 x2: 0, 15168 y2: Infinity, 15169 index: -1, 15170 x1New: 0, 15171 x2New: 0 15172 }; 15173 var horizon = [{ 15174 start: -Infinity, 15175 end: Infinity, 15176 boundary: fakeBoundary 15177 }]; 15178 bounds.forEach(function (boundary) { 15179 var i = 0; 15180 while (i < horizon.length && horizon[i].end <= boundary.y1) { 15181 i++; 15182 } 15183 var j = horizon.length - 1; 15184 while (j >= 0 && horizon[j].start >= boundary.y2) { 15185 j--; 15186 } 15187 var horizonPart, affectedBoundary; 15188 var q, 15189 k, 15190 maxXNew = -Infinity; 15191 for (q = i; q <= j; q++) { 15192 horizonPart = horizon[q]; 15193 affectedBoundary = horizonPart.boundary; 15194 var xNew; 15195 if (affectedBoundary.x2 > boundary.x1) { 15196 xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; 15197 } else if (affectedBoundary.x2New === undefined) { 15198 xNew = (affectedBoundary.x2 + boundary.x1) / 2; 15199 } else { 15200 xNew = affectedBoundary.x2New; 15201 } 15202 if (xNew > maxXNew) { 15203 maxXNew = xNew; 15204 } 15205 } 15206 boundary.x1New = maxXNew; 15207 for (q = i; q <= j; q++) { 15208 horizonPart = horizon[q]; 15209 affectedBoundary = horizonPart.boundary; 15210 if (affectedBoundary.x2New === undefined) { 15211 if (affectedBoundary.x2 > boundary.x1) { 15212 if (affectedBoundary.index > boundary.index) { 15213 affectedBoundary.x2New = affectedBoundary.x2; 15214 } 15215 } else { 15216 affectedBoundary.x2New = maxXNew; 15217 } 15218 } else if (affectedBoundary.x2New > maxXNew) { 15219 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); 15220 } 15221 } 15222 var changedHorizon = [], 15223 lastBoundary = null; 15224 for (q = i; q <= j; q++) { 15225 horizonPart = horizon[q]; 15226 affectedBoundary = horizonPart.boundary; 15227 var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; 15228 if (lastBoundary === useBoundary) { 15229 changedHorizon[changedHorizon.length - 1].end = horizonPart.end; 15230 } else { 15231 changedHorizon.push({ 15232 start: horizonPart.start, 15233 end: horizonPart.end, 15234 boundary: useBoundary 15235 }); 15236 lastBoundary = useBoundary; 15237 } 15238 } 15239 if (horizon[i].start < boundary.y1) { 15240 changedHorizon[0].start = boundary.y1; 15241 changedHorizon.unshift({ 15242 start: horizon[i].start, 15243 end: boundary.y1, 15244 boundary: horizon[i].boundary 15245 }); 15246 } 15247 if (boundary.y2 < horizon[j].end) { 15248 changedHorizon[changedHorizon.length - 1].end = boundary.y2; 15249 changedHorizon.push({ 15250 start: boundary.y2, 15251 end: horizon[j].end, 15252 boundary: horizon[j].boundary 15253 }); 15254 } 15255 for (q = i; q <= j; q++) { 15256 horizonPart = horizon[q]; 15257 affectedBoundary = horizonPart.boundary; 15258 if (affectedBoundary.x2New !== undefined) { 15259 continue; 15260 } 15261 var used = false;
15262 for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { 15263 used = horizon[k].boundary === affectedBoundary; 15264 } 15265 for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { 15266 used = horizon[k].boundary === affectedBoundary; 15267 } 15268 for (k = 0; !used && k < changedHorizon.length; k++) { 15269 used = changedHorizon[k].boundary === affectedBoundary; 15270 } 15271 if (!used) { 15272 affectedBoundary.x2New = maxXNew; 15273 } 15274 } 15275 Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); 15276 }); 15277 horizon.forEach(function (horizonPart) { 15278 var affectedBoundary = horizonPart.boundary; 15279 if (affectedBoundary.x2New === undefined) { 15280 affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); 15281 } 15282 }); 15283 } 15284 function TextLayerRenderTask(_ref) { 15285 var textContent = _ref.textContent, 15286 textContentStream = _ref.textContentStream, 15287 container = _ref.container, 15288 viewport = _ref.viewport, 15289 textDivs = _ref.textDivs, 15290 textContentItemsStr = _ref.textContentItemsStr, 15291 enhanceTextSelection = _ref.enhanceTextSelection; 15292 15293 this._textContent = textContent; 15294 this._textContentStream = textContentStream; 15295 this._container = container; 15296 this._viewport = viewport; 15297 this._textDivs = textDivs || []; 15298 this._textContentItemsStr = textContentItemsStr || []; 15299 this._enhanceTextSelection = !!enhanceTextSelection; 15300 this._fontInspectorEnabled = !!(_global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled); 15301 this._reader = null; 15302 this._layoutTextLastFontSize = null; 15303 this._layoutTextLastFontFamily = null; 15304 this._layoutTextCtx = null; 15305 this._textDivProperties = new WeakMap(); 15306 this._renderingDone = false; 15307 this._canceled = false; 15308 this._capability = (0, _util.createPromiseCapability)(); 15309 this._renderTimer = null; 15310 this._bounds = []; 15311 } 15312 TextLayerRenderTask.prototype = { 15313 get promise() { 15314 return this._capability.promise; 15315 }, 15316 cancel: function TextLayer_cancel() { 15317 if (this._reader) { 15318 this._reader.cancel(new _util.AbortException('text layer task cancelled')); 15319 this._reader = null; 15320 } 15321 this._canceled = true; 15322 if (this._renderTimer !== null) { 15323 clearTimeout(this._renderTimer); 15324 this._renderTimer = null; 15325 } 15326 this._capability.reject('canceled'); 15327 }, 15328 _processItems: function _processItems(items, styleCache) { 15329 for (var i = 0, len = items.length; i < len; i++) { 15330 this._textContentItemsStr.push(items[i].str); 15331 appendText(this, items[i], styleCache); 15332 } 15333 }, 15334 _layoutText: function _layoutText(textDiv) { 15335 var textLayerFrag = this._container; 15336 var textDivProperties = this._textDivProperties.get(textDiv); 15337 if (textDivProperties.isWhitespace) { 15338 return; 15339 } 15340 var fontSize = textDiv.style.fontSize; 15341 var fontFamily = textDiv.style.fontFamily; 15342 if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { 15343 this._layoutTextCtx.font = fontSize + ' ' + fontFamily; 15344 this._layoutTextLastFontSize = fontSize; 15345 this._layoutTextLastFontFamily = fontFamily; 15346 } 15347 var width = this._layoutTextCtx.measureText(textDiv.textContent).width; 15348 var transform = ''; 15349 if (textDivProperties.canvasWidth !== 0 && width > 0) { 15350 textDivProperties.scale = textDivProperties.canvasWidth / width; 15351 transform = 'scaleX(' + textDivProperties.scale + ')'; 15352 } 15353 if (textDivProperties.angle !== 0) { 15354 transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform; 15355 } 15356 if (transform !== '') { 15357 textDivProperties.originalTransform = transform; 15358 textDiv.style.transform = transform; 15359 } 15360 this._textDivProperties.set(textDiv, textDivProperties); 15361 textLayerFrag.appendChild(textDiv); 15362 }, 15363 15364 _render: function TextLayer_render(timeout) { 15365 var _this = this; 15366 15367 var capability = (0, _util.createPromiseCapability)(); 15368 var styleCache = Object.create(null); 15369 var canvas = document.createElement('canvas'); 15370 canvas.mozOpaque = true; 15371 this._layoutTextCtx = canvas.getContext('2d', { alpha: false }); 15372 if (this._textContent) { 15373 var textItems = this._textContent.items; 15374 var textStyles = this._textContent.styles; 15375 this._processItems(textItems, textStyles); 15376 capability.resolve(); 15377 } else if (this._textContentStream) { 15378 var pump = function pump() { 15379 _this._reader.read().then(function (_ref2) { 15380 var value = _ref2.value, 15381 done = _ref2.done; 15382 15383 if (done) { 15384 capability.resolve(); 15385 return; 15386 } 15387 Object.assign(styleCache, value.styles); 15388 _this._processItems(value.items, styleCache); 15389 pump(); 15390 }, capability.reject); 15391 }; 15392 this._reader = this._textContentStream.getReader(); 15393 pump(); 15394 } else { 15395 throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); 15396 } 15397 capability.promise.then(function () { 15398 styleCache = null; 15399 if (!timeout) { 15400 render(_this); 15401 } else { 15402 _this._renderTimer = setTimeout(function () { 15403 render(_this); 15404 _this._renderTimer = null; 15405 }, timeout); 15406 } 15407 }, this._capability.reject); 15408 }, 15409 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { 15410 if (!this._enhanceTextSelection || !this._renderingDone) { 15411 return; 15412 } 15413 if (this._bounds !== null) { 15414 expand(this); 15415 this._bounds = null; 15416 } 15417 for (var i = 0, ii = this._textDivs.length; i < ii; i++) { 15418 var div = this._textDivs[i]; 15419 var divProperties = this._textDivProperties.get(div); 15420 if (divProperties.isWhitespace) { 15421 continue; 15422 } 15423 if (expandDivs) { 15424 var transform = '', 15425 padding = ''; 15426 if (divProperties.scale !== 1) { 15427 transform = 'scaleX(' + divProperties.scale + ')'; 15428 } 15429 if (divProperties.angle !== 0) { 15430 transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; 15431 } 15432 if (divProperties.paddingLeft !== 0) { 15433 padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; 15434 transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; 15435 } 15436 if (divProperties.paddingTop !== 0) { 15437 padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; 15438 transform += ' translateY(' + -divProperties.paddingTop + 'px)'; 15439 } 15440 if (divProperties.paddingRight !== 0) { 15441 padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; 15442 } 15443 if (divProperties.paddingBottom !== 0) { 15444 padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; 15445 } 15446 if (padding !== '') { 15447 div.setAttribute('style', divProperties.style + padding); 15448 } 15449 if (transform !== '') { 15450 div.style.transform = transform; 15451 } 15452 } else { 15453 div.style.padding = 0; 15454 div.style.transform = divProperties.originalTransform || ''; 15455 } 15456 } 15457 } 15458 }; 15459 function renderTextLayer(renderParameters) { 15460 var task = new TextLayerRenderTask({ 15461 textContent: renderParameters.textContent, 15462 textContentStream: renderParameters.textContentStream, 15463 container: renderParameters.container, 15464 viewport: renderParameters.viewport, 15465 textDivs: renderParameters.textDivs, 15466 textContentItemsStr: renderParameters.textContentItemsStr, 15467 enhanceTextSelection: renderParameters.enhanceTextSelection 15468 }); 15469 task._render(renderParameters.timeout); 15470 return task; 15471 } 15472 return renderTextLayer; 15473}(); 15474exports.renderTextLayer = renderTextLayer; 15475 15476/***/ }), 15477/* 146 */ 15478/***/ (function(module, exports, __w_pdfjs_require__) { 15479 15480"use strict"; 15481 15482 15483Object.defineProperty(exports, "__esModule", { 15484 value: true 15485}); 15486exports.AnnotationLayer = undefined; 15487 15488var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; 15489 15490var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 15491 15492var _dom_utils = __w_pdfjs_require__(130); 15493 15494var _util = __w_pdfjs_require__(1); 15495 15496function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 15497 15498function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
15498onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 15499 15500function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 15501 15502var AnnotationElementFactory = function () { 15503 function AnnotationElementFactory() { 15504 _classCallCheck(this, AnnotationElementFactory); 15505 } 15506 15507 _createClass(AnnotationElementFactory, null, [{ 15508 key: 'create', 15509 value: function create(parameters) { 15510 var subtype = parameters.data.annotationType; 15511 switch (subtype) { 15512 case _util.AnnotationType.LINK: 15513 return new LinkAnnotationElement(parameters); 15514 case _util.AnnotationType.TEXT: 15515 return new TextAnnotationElement(parameters); 15516 case _util.AnnotationType.WIDGET: 15517 var fieldType = parameters.data.fieldType; 15518 switch (fieldType) { 15519 case 'Tx': 15520 return new TextWidgetAnnotationElement(parameters); 15521 case 'Btn': 15522 if (parameters.data.radioButton) { 15523 return new RadioButtonWidgetAnnotationElement(parameters); 15524 } else if (parameters.data.checkBox) { 15525 return new CheckboxWidgetAnnotationElement(parameters); 15526 } 15527 return new PushButtonWidgetAnnotationElement(parameters); 15528 case 'Ch': 15529 return new ChoiceWidgetAnnotationElement(parameters); 15530 } 15531 return new WidgetAnnotationElement(parameters); 15532 case _util.AnnotationType.POPUP: 15533 return new PopupAnnotationElement(parameters); 15534 case _util.AnnotationType.LINE: 15535 return new LineAnnotationElement(parameters); 15536 case _util.AnnotationType.SQUARE: 15537 return new SquareAnnotationElement(parameters); 15538 case _util.AnnotationType.CIRCLE: 15539 return new CircleAnnotationElement(parameters); 15540 case _util.AnnotationType.POLYLINE: 15541 return new PolylineAnnotationElement(parameters); 15542 case _util.AnnotationType.INK: 15543 return new InkAnnotationElement(parameters); 15544 case _util.AnnotationType.POLYGON: 15545 return new PolygonAnnotationElement(parameters); 15546 case _util.AnnotationType.HIGHLIGHT: 15547 return new HighlightAnnotationElement(parameters); 15548 case _util.AnnotationType.UNDERLINE: 15549 return new UnderlineAnnotationElement(parameters); 15550 case _util.AnnotationType.SQUIGGLY: 15551 return new SquigglyAnnotationElement(parameters); 15552 case _util.AnnotationType.STRIKEOUT: 15553 return new StrikeOutAnnotationElement(parameters); 15554 case _util.AnnotationType.STAMP: 15555 return new StampAnnotationElement(parameters); 15556 case _util.AnnotationType.FILEATTACHMENT: 15557 return new FileAttachmentAnnotationElement(parameters); 15558 default: 15559 return new AnnotationElement(parameters); 15560 } 15561 } 15562 }]); 15563 15564 return AnnotationElementFactory; 15565}(); 15566 15567var AnnotationElement = function () { 15568 function AnnotationElement(parameters) { 15569 var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 15570 var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; 15571 15572 _classCallCheck(this, AnnotationElement); 15573 15574 this.isRenderable = isRenderable; 15575 this.data = parameters.data; 15576 this.layer = parameters.layer; 15577 this.page = parameters.page; 15578 this.viewport = parameters.viewport; 15579 this.linkService = parameters.linkService; 15580 this.downloadManager = parameters.downloadManager; 15581 this.imageResourcesPath = parameters.imageResourcesPath; 15582 this.renderInteractiveForms = parameters.renderInteractiveForms; 15583 this.svgFactory = parameters.svgFactory; 15584 if (isRenderable) { 15585 this.container = this._createContainer(ignoreBorder); 15586 } 15587 } 15588 15589 _createClass(AnnotationElement, [{ 15590 key: '_createContainer', 15591 value: function _createContainer() { 15592 var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
15593 15594 var data = this.data, 15595 page = this.page, 15596 viewport = this.viewport; 15597 var container = document.createElement('section'); 15598 var width = data.rect[2] - data.rect[0]; 15599 var height = data.rect[3] - data.rect[1]; 15600 container.setAttribute('data-annotation-id', data.id); 15601 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]]); 15602 container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; 15603 container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; 15604 if (!ignoreBorder && data.borderStyle.width > 0) { 15605 container.style.borderWidth = data.borderStyle.width + 'px'; 15606 if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { 15607 width = width - 2 * data.borderStyle.width; 15608 height = height - 2 * data.borderStyle.width; 15609 } 15610 var horizontalRadius = data.borderStyle.horizontalCornerRadius; 15611 var verticalRadius = data.borderStyle.verticalCornerRadius; 15612 if (horizontalRadius > 0 || verticalRadius > 0) { 15613 var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; 15614 container.style.borderRadius = radius; 15615 } 15616 switch (data.borderStyle.style) { 15617 case _util.AnnotationBorderStyleType.SOLID: 15618 container.style.borderStyle = 'solid'; 15619 break; 15620 case _util.AnnotationBorderStyleType.DASHED: 15621 container.style.borderStyle = 'dashed'; 15622 break; 15623 case _util.AnnotationBorderStyleType.BEVELED: 15624 (0, _util.warn)('Unimplemented border style: beveled'); 15625 break; 15626 case _util.AnnotationBorderStyleType.INSET: 15627 (0, _util.warn)('Unimplemented border style: inset'); 15628 break; 15629 case _util.AnnotationBorderStyleType.UNDERLINE: 15630 container.style.borderBottomStyle = 'solid'; 15631 break; 15632 default: 15633 break; 15634 } 15635 if (data.color) { 15636 container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); 15637 } else { 15638 container.style.borderWidth = 0; 15639 } 15640 } 15641 container.style.left = rect[0] + 'px'; 15642 container.style.top = rect[1] + 'px'; 15643 container.style.width = width + 'px'; 15644 container.style.height = height + 'px'; 15645 return container; 15646 } 15647 }, { 15648 key: '_createPopup', 15649 value: function _createPopup(container, trigger, data) { 15650 if (!trigger) { 15651 trigger = document.createElement('div'); 15652 trigger.style.height = container.style.height; 15653 trigger.style.width = container.style.width; 15654 container.appendChild(trigger); 15655 } 15656 var popupElement = new PopupElement({ 15657 container: container, 15658 trigger: trigger, 15659 color: data.color, 15660 title: data.title, 15661 contents: data.contents, 15662 hideWrapper: true 15663 }); 15664 var popup = popupElement.render(); 15665 popup.style.left = container.style.width; 15666 container.appendChild(popup); 15667 } 15668 }, { 15669 key: 'render', 15670 value: function render() { 15671 (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); 15672 } 15673 }]); 15674 15675 return AnnotationElement; 15676}(); 15677 15678var LinkAnnotationElement = function (_AnnotationElement) { 15679 _inherits(LinkAnnotationElement, _AnnotationElement); 15680 15681 function LinkAnnotationElement(parameters) { 15682 _classCallCheck(this, LinkAnnotationElement); 15683 15684 var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); 15685 return _possibleConstructorReturn(this, (LinkAnnotationElement.__proto__ || Object.getPrototypeOf(LinkAnnotationElement)).call(this, parameters, isRenderable)); 15686 } 15687 15688 _createClass(LinkAnnotationElement, [{ 15689 key: 'render', 15690 value: function render() { 15691 this.container.className = 'linkAnnotation'; 15692 var data = this.data, 15693 linkService = this.linkService; 15694 15695 var link = document.createElement('a'); 15696 (0, _dom_utils.addLinkAttributes)(link, { 15697 url: data.url, 15698 target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget, 15699 rel: linkService.externalLinkRel 15700 }); 15701 if (!data.url) { 15702 if (data.action) { 15703 this._bindNamedAction(link, data.action); 15704 } else { 15705 this._bindLink(link, data.dest); 15706 } 15707 } 15708 this.container.appendChild(link); 15709 return this.container; 15710 } 15711 }, { 15712 key: '_bindLink', 15713 value: function _bindLink(link, destination) { 15714 var _this2 = this; 15715 15716 link.href = this.linkService.getDestinationHash(destination); 15717 link.onclick = function () { 15718 if (destination) { 15719 _this2.linkService.navigateTo(destination); 15720 } 15721 return false;
15722 }; 15723 if (destination) { 15724 link.className = 'internalLink'; 15725 } 15726 } 15727 }, { 15728 key: '_bindNamedAction', 15729 value: function _bindNamedAction(link, action) { 15730 var _this3 = this; 15731 15732 link.href = this.linkService.getAnchorUrl(''); 15733 link.onclick = function () { 15734 _this3.linkService.executeNamedAction(action); 15735 return false; 15736 }; 15737 link.className = 'internalLink'; 15738 } 15739 }]); 15740 15741 return LinkAnnotationElement; 15742}(AnnotationElement); 15743 15744var TextAnnotationElement = function (_AnnotationElement2) { 15745 _inherits(TextAnnotationElement, _AnnotationElement2); 15746 15747 function TextAnnotationElement(parameters) { 15748 _classCallCheck(this, TextAnnotationElement); 15749 15750 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 15751 return _possibleConstructorReturn(this, (TextAnnotationElement.__proto__ || Object.getPrototypeOf(TextAnnotationElement)).call(this, parameters, isRenderable)); 15752 } 15753 15754 _createClass(TextAnnotationElement, [{ 15755 key: 'render', 15756 value: function render() { 15757 this.container.className = 'textAnnotation'; 15758 var image = document.createElement('img'); 15759 image.style.height = this.container.style.height; 15760 image.style.width = this.container.style.width; 15761 image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; 15762 image.alt = '[{{type}} Annotation]'; 15763 image.dataset.l10nId = 'text_annotation_type'; 15764 image.dataset.l10nArgs = JSON.stringify({ type: this.data.name }); 15765 if (!this.data.hasPopup) { 15766 this._createPopup(this.container, image, this.data); 15767 } 15768 this.container.appendChild(image); 15769 return this.container; 15770 } 15771 }]); 15772 15773 return TextAnnotationElement; 15774}(AnnotationElement); 15775 15776var WidgetAnnotationElement = function (_AnnotationElement3) { 15777 _inherits(WidgetAnnotationElement, _AnnotationElement3); 15778 15779 function WidgetAnnotationElement() { 15780 _classCallCheck(this, WidgetAnnotationElement); 15781 15782 return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.getPrototypeOf(WidgetAnnotationElement)).apply(this, arguments)); 15783 } 15784 15785 _createClass(WidgetAnnotationElement, [{ 15786 key: 'render', 15787 value: function render() { 15788 return this.container; 15789 } 15790 }]); 15791 15792 return WidgetAnnotationElement; 15793}(AnnotationElement); 15794 15795var TextWidgetAnnotationElement = function (_WidgetAnnotationElem) { 15796 _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); 15797 15798 function TextWidgetAnnotationElement(parameters) { 15799 _classCallCheck(this, TextWidgetAnnotationElement); 15800 15801 var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; 15802 return _possibleConstructorReturn(this, (TextWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(TextWidgetAnnotationElement)).call(this, parameters, isRenderable)); 15803 } 15804 15805 _createClass(TextWidgetAnnotationElement, [{ 15806 key: 'render', 15807 value: function render() { 15808 var TEXT_ALIGNMENT = ['left', 'center', 'right']; 15809 this.container.className = 'textWidgetAnnotation'; 15810 var element = null; 15811 if (this.renderInteractiveForms) { 15812 if (this.data.multiLine) { 15813 element = document.createElement('textarea'); 15814 element.textContent = this.data.fieldValue; 15815 } else { 15816 element = document.createElement('input'); 15817 element.type = 'text'; 15818 element.setAttribute('value', this.data.fieldValue); 15819 } 15820 element.disabled = this.data.readOnly; 15821 if (this.data.maxLen !== null) { 15822 element.maxLength = this.data.maxLen; 15823 } 15824 if (this.data.comb) { 15825 var fieldWidth = this.data.rect[2] - this.data.rect[0]; 15826 var combWidth = fieldWidth / this.data.maxLen; 15827 element.classList.add('comb'); 15828 element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; 15829 } 15830 } else { 15831 element = document.createElement('div'); 15832 element.textContent = this.data.fieldValue; 15833 element.style.verticalAlign = 'middle'; 15834 element.style.display = 'table-cell'; 15835 var font = null; 15836 if (this.data.fontRefName) { 15837 font = this.page.commonObjs.getData(this.data.fontRefName); 15838 } 15839 this._setTextStyle(element, font); 15840 } 15841 if (this.data.textAlignment !== null) { 15842 element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; 15843 } 15844 this.container.appendChild(element); 15845 return this.container; 15846 } 15847 }, { 15848 key: '_setTextStyle', 15849 value: function _setTextStyle(element, font) { 15850 var style = element.style; 15851 style.fontSize = this.data.fontSize + 'px'; 15852 style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; 15853 if (!font) { 15854 return; 15855 } 15856 style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; 15857 style.fontStyle = font.italic ? 'italic' : 'normal'; 15858 var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; 15859 var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; 15860 style.fontFamily = fontFamily + fallbackName; 15861 } 15862 }]); 15863 15864 return TextWidgetAnnotationElement; 15865}(WidgetAnnotationElement); 15866 15867var CheckboxWidgetAnnotationElement = function (_WidgetAnnotationElem2) { 15868 _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); 15869 15870 function CheckboxWidgetAnnotationElement(parameters) { 15871 _classCallCheck(this, CheckboxWidgetAnnotationElement); 15872 15873 return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(CheckboxWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); 15874 } 15875 15876 _createClass(CheckboxWidgetAnnotationElement, [{ 15877 key: 'render', 15878 value: function render() { 15879 this.container.className = 'buttonWidgetAnnotation checkBox'; 15880 var element = document.createElement('input'); 15881 element.disabled = this.data.readOnly; 15882 element.type = 'checkbox'; 15883 if (this.data.fieldValue && this.data.fieldValue !== 'Off') { 15884 element.setAttribute('checked', true); 15885 } 15886 this.container.appendChild(element); 15887 return this.container; 15888 } 15889 }]); 15890 15891 return CheckboxWidgetAnnotationElement; 15892}(WidgetAnnotationElement); 15893 15894var RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) { 15895 _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); 15896 15897 function RadioButtonWidgetAnnotationElement(parameters) { 15898 _classCallCheck(this, RadioButtonWidgetAnnotationElement); 15899 15900 return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(RadioButtonWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); 15901 } 15902 15903 _createClass(RadioButtonWidgetAnnotationElement, [{ 15904 key: 'render', 15905 value: function render() { 15906 this.container.className = 'buttonWidgetAnnotation radioButton'; 15907 var element = document.createElement('input'); 15908 element.disabled = this.data.readOnly; 15909 element.type = 'radio'; 15910 element.name = this.data.fieldName; 15911 if (this.data.fieldValue === this.data.buttonValue) { 15912 element.setAttribute('checked', true); 15913 } 15914 this.container.appendChild(element); 15915 return this.container; 15916 } 15917 }]); 15918 15919 return RadioButtonWidgetAnnotationElement; 15920}(WidgetAnnotationElement); 15921 15922var PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) { 15923 _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); 15924 15925 function PushButtonWidgetAnnotationElement() { 15926 _classCallCheck(this, PushButtonWidgetAnnotationElement); 15927 15928 return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments)); 15929 } 15930 15931 _createClass(PushButtonWidgetAnnotationElement, [{ 15932 key: 'render', 15933 value: function render() { 15934 var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this); 15935 container.className = 'buttonWidgetAnnotation pushButton'; 15936 return container; 15937 } 15938 }]); 15939 15940 return PushButtonWidgetAnnotationElement; 15941}(LinkAnnotationElement); 15942 15943var ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) { 15944 _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); 15945 15946 function ChoiceWidgetAnnotationElement(parameters) { 15947 _classCallCheck(this, ChoiceWidgetAnnotationElement); 15948 15949 return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms)); 15950 } 15951 15952 _createClass(ChoiceWidgetAnnotationElement, [{ 15953 key: 'render', 15954 value: function render() { 15955 this.container.className = 'choiceWidgetAnnotation'; 15956 var selectElement = document.createElement('select'); 15957 selectElement.disabled = this.data.readOnly; 15958 if (!this.data.combo) { 15959 selectElement.size = this.data.options.length; 15960 if (this.data.multiSelect) { 15961 selectElement.multiple = true; 15962 } 15963 } 15964 for (var i = 0, ii = this.data.options.length; i < ii; i++) { 15965 var option = this.data.options[i]; 15966 var optionElement = document.createElement('option'); 15967 optionElement.textContent = option.displayValue; 15968 optionElement.value = option.exportValue; 15969 if (this.data.fieldValue.includes(option.displayValue)) { 15970 optionElement.setAttribute('selected', true); 15971 } 15972 selectElement.appendChild(optionElement); 15973 } 15974 this.container.appendChild(selectElement); 15975 return this.container; 15976 } 15977 }]); 15978 15979 return ChoiceWidgetAnnotationElement; 15980}(WidgetAnnotationElement); 15981 15982var PopupAnnotationElement = function (_AnnotationElement4) { 15983 _inherits(PopupAnnotationElement, _AnnotationElement4); 15984 15985 function PopupAnnotationElement(parameters) { 15986 _classCallCheck(this, PopupAnnotationElement); 15987 15988 var isRenderable = !!(parameters.data.title || parameters.data.contents); 15989 return _possibleConstructorReturn(this, (PopupAnnotationElement.__proto__ || Object.getPrototypeOf(PopupAnnotationElement)).call(this, parameters, isRenderable)); 15990 } 15991 15992 _createClass(PopupAnnotationElement, [{ 15993 key: 'render', 15994 value: function render() { 15995 var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; 15996 this.container.className = 'popupAnnotation'; 15997 if (IGNORE_TYPES.includes(this.data.parentType)) { 15998 return this.container; 15999 } 16000 var selector = '[data-annotation-id="' + this.data.parentId + '"]'; 16001 var parentElement = this.layer.querySelector(selector); 16002 if (!parentElement) { 16003 return this.container; 16004 } 16005 var popup = new PopupElement({ 16006 container: this.container, 16007 trigger: parentElement, 16008 color: this.data.color, 16009 title: this.data.title, 16010 contents: this.data.contents 16011 }); 16012 var parentLeft = parseFloat(parentElement.style.left); 16013 var parentWidth = parseFloat(parentElement.style.width); 16014 this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; 16015 this.container.style.left = parentLeft + parentWidth + 'px';
16016 this.container.appendChild(popup.render()); 16017 return this.container; 16018 } 16019 }]); 16020 16021 return PopupAnnotationElement; 16022}(AnnotationElement); 16023 16024var PopupElement = function () { 16025 function PopupElement(parameters) { 16026 _classCallCheck(this, PopupElement); 16027 16028 this.container = parameters.container; 16029 this.trigger = parameters.trigger; 16030 this.color = parameters.color; 16031 this.title = parameters.title; 16032 this.contents = parameters.contents; 16033 this.hideWrapper = parameters.hideWrapper || false; 16034 this.pinned = false; 16035 } 16036 16037 _createClass(PopupElement, [{ 16038 key: 'render', 16039 value: function render() { 16040 var BACKGROUND_ENLIGHT = 0.7; 16041 var wrapper = document.createElement('div'); 16042 wrapper.className = 'popupWrapper'; 16043 this.hideElement = this.hideWrapper ? wrapper : this.container; 16044 this.hideElement.setAttribute('hidden', true); 16045 var popup = document.createElement('div'); 16046 popup.className = 'popup'; 16047 var color = this.color; 16048 if (color) { 16049 var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; 16050 var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; 16051 var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; 16052 popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); 16053 } 16054 var contents = this._formatContents(this.contents); 16055 var title = document.createElement('h1'); 16056 title.textContent = this.title; 16057 this.trigger.addEventListener('click', this._toggle.bind(this)); 16058 this.trigger.addEventListener('mouseover', this._show.bind(this, false)); 16059 this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); 16060 popup.addEventListener('click', this._hide.bind(this, true)); 16061 popup.appendChild(title); 16062 popup.appendChild(contents); 16063 wrapper.appendChild(popup); 16064 return wrapper; 16065 } 16066 }, { 16067 key: '_formatContents', 16068 value: function _formatContents(contents) { 16069 var p = document.createElement('p'); 16070 var lines = contents.split(/(?:\n?|\n)/); 16071 for (var i = 0, ii = lines.length; i < ii; ++i) { 16072 var line = lines[i]; 16073 p.appendChild(document.createTextNode(line)); 16074 if (i < ii - 1) { 16075 p.appendChild(document.createElement('br')); 16076 } 16077 } 16078 return p; 16079 } 16080 }, { 16081 key: '_toggle', 16082 value: function _toggle() { 16083 if (this.pinned) { 16084 this._hide(true); 16085 } else { 16086 this._show(true); 16087 } 16088 } 16089 }, { 16090 key: '_show', 16091 value: function _show() { 16092 var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; 16093 16094 if (pin) { 16095 this.pinned = true; 16096 } 16097 if (this.hideElement.hasAttribute('hidden')) { 16098 this.hideElement.removeAttribute('hidden'); 16099 this.container.style.zIndex += 1; 16100 } 16101 } 16102 }, { 16103 key: '_hide', 16104 value: function _hide() { 16105 var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16106 16107 if (unpin) { 16108 this.pinned = false; 16109 } 16110 if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { 16111 this.hideElement.setAttribute('hidden', true); 16112 this.container.style.zIndex -= 1; 16113 } 16114 } 16115 }]); 16116 16117 return PopupElement; 16118}(); 16119 16120var LineAnnotationElement = function (_AnnotationElement5) { 16121 _inherits(LineAnnotationElement, _AnnotationElement5); 16122 16123 function LineAnnotationElement(parameters) { 16124 _classCallCheck(this, LineAnnotationElement); 16125 16126 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16127 return _possibleConstructorReturn(this, (LineAnnotationElement.__proto__ || Object.getPrototypeOf(LineAnnotationElement)).call(this, parameters, isRenderable, true)); 16128 } 16129 16130 _createClass(LineAnnotationElement, [{ 16131 key: 'render', 16132 value: function render() { 16133 this.container.className = 'lineAnnotation'; 16134 var data = this.data; 16135 var width = data.rect[2] - data.rect[0]; 16136 var height = data.rect[3] - data.rect[1]; 16137 var svg = this.svgFactory.create(width, height); 16138 var line = this.svgFactory.createElement('svg:line'); 16139 line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); 16140 line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); 16141 line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); 16142 line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); 16143 line.setAttribute('stroke-width', data.borderStyle.width); 16144 line.setAttribute('stroke', 'transparent'); 16145 svg.appendChild(line); 16146 this.container.append(svg); 16147 this._createPopup(this.container, line, data); 16148 return this.container; 16149 } 16150 }]); 16151 16152 return LineAnnotationElement; 16153}(AnnotationElement); 16154 16155var SquareAnnotationElement = function (_AnnotationElement6) { 16156 _inherits(SquareAnnotationElement, _AnnotationElement6); 16157 16158 function SquareAnnotationElement(parameters) { 16159 _classCallCheck(this, SquareAnnotationElement); 16160 16161 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16162 return _possibleConstructorReturn(this, (SquareAnnotationElement.__proto__ || Object.getPrototypeOf(SquareAnnotationElement)).call(this, parameters, isRenderable, true)); 16163 } 16164 16165 _createClass(SquareAnnotationElement, [{ 16166 key: 'render', 16167 value: function render() { 16168 this.container.className = 'squareAnnotation'; 16169 var data = this.data; 16170 var width = data.rect[2] - data.rect[0]; 16171 var height = data.rect[3] - data.rect[1]; 16172 var svg = this.svgFactory.create(width, height); 16173 var borderWidth = data.borderStyle.width; 16174 var square = this.svgFactory.createElement('svg:rect'); 16175 square.setAttribute('x', borderWidth / 2); 16176 square.setAttribute('y', borderWidth / 2); 16177 square.setAttribute('width', width - borderWidth); 16178 square.setAttribute('height', height - borderWidth); 16179 square.setAttribute('stroke-width', borderWidth); 16180 square.setAttribute('stroke', 'transparent'); 16181 square.setAttribute('fill', 'none'); 16182 svg.appendChild(square); 16183 this.container.append(svg); 16184 this._createPopup(this.container, square, data); 16185 return this.container; 16186 } 16187 }]); 16188 16189 return SquareAnnotationElement; 16190}(AnnotationElement); 16191 16192var CircleAnnotationElement = function (_AnnotationElement7) { 16193 _inherits(CircleAnnotationElement, _AnnotationElement7); 16194 16195 function CircleAnnotationElement(parameters) { 16196 _classCallCheck(this, CircleAnnotationElement); 16197 16198 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16199 return _possibleConstructorReturn(this, (CircleAnnotationElement.__proto__ || Object.getPrototypeOf(CircleAnnotationElement)).call(this, parameters, isRenderable, true)); 16200 } 16201 16202 _createClass(CircleAnnotationElement, [{ 16203 key: 'render', 16204 value: function render() { 16205 this.container.className = 'circleAnnotation'; 16206 var data = this.data; 16207 var width = data.rect[2] - data.rect[0]; 16208 var height = data.rect[3] - data.rect[1]; 16209 var svg = this.svgFactory.create(width, height); 16210 var borderWidth = data.borderStyle.width; 16211 var circle = this.svgFactory.createElement('svg:ellipse'); 16212 circle.setAttribute('cx', width / 2); 16213 circle.setAttribute('cy', height / 2); 16214 circle.setAttribute('rx', width / 2 - borderWidth / 2); 16215 circle.setAttribute('ry', height / 2 - borderWidth / 2); 16216 circle.setAttribute('stroke-width', borderWidth); 16217 circle.setAttribute('stroke', 'transparent'); 16218 circle.setAttribute('fill', 'none'); 16219 svg.appendChild(circle); 16220 this.container.append(svg); 16221 this._createPopup(this.container, circle, data); 16222 return this.container; 16223 } 16224 }]); 16225 16226 return CircleAnnotationElement; 16227}(AnnotationElement); 16228 16229var PolylineAnnotationElement = function (_AnnotationElement8) { 16230 _inherits(PolylineAnnotationElement, _AnnotationElement8); 16231 16232 function PolylineAnnotationElement(parameters) { 16233 _classCallCheck(this, PolylineAnnotationElement); 16234 16235 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16236 16237 var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true)); 16238 16239 _this15.containerClassName = 'polylineAnnotation'; 16240 _this15.svgElementName = 'svg:polyline'; 16241 return _this15; 16242 } 16243 16244 _createClass(PolylineAnnotationElement, [{ 16245 key: 'render', 16246 value: function render() { 16247 this.container.className = this.containerClassName; 16248 var data = this.data; 16249 var width = data.rect[2] - data.rect[0]; 16250 var height = data.rect[3] - data.rect[1]; 16251 var svg = this.svgFactory.create(width, height); 16252 var vertices = data.vertices; 16253 var points = []; 16254 for (var i = 0, ii = vertices.length; i < ii; i++) { 16255 var x = vertices[i].x - data.rect[0]; 16256 var y = data.rect[3] - vertices[i].y; 16257 points.push(x + ',' + y); 16258 } 16259 points = points.join(' '); 16260 var borderWidth = data.borderStyle.width; 16261 var polyline = this.svgFactory.createElement(this.svgElementName); 16262 polyline.setAttribute('points', points); 16263 polyline.setAttribute('stroke-width', borderWidth); 16264 polyline.setAttribute('stroke', 'transparent'); 16265 polyline.setAttribute('fill', 'none');
16266 svg.appendChild(polyline); 16267 this.container.append(svg); 16268 this._createPopup(this.container, polyline, data); 16269 return this.container; 16270 } 16271 }]); 16272 16273 return PolylineAnnotationElement; 16274}(AnnotationElement); 16275 16276var PolygonAnnotationElement = function (_PolylineAnnotationEl) { 16277 _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); 16278 16279 function PolygonAnnotationElement(parameters) { 16280 _classCallCheck(this, PolygonAnnotationElement); 16281 16282 var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters)); 16283 16284 _this16.containerClassName = 'polygonAnnotation'; 16285 _this16.svgElementName = 'svg:polygon'; 16286 return _this16; 16287 } 16288 16289 return PolygonAnnotationElement; 16290}(PolylineAnnotationElement); 16291 16292var InkAnnotationElement = function (_AnnotationElement9) { 16293 _inherits(InkAnnotationElement, _AnnotationElement9); 16294 16295 function InkAnnotationElement(parameters) { 16296 _classCallCheck(this, InkAnnotationElement); 16297 16298 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16299 16300 var _this17 = _possibleConstructorReturn(this, (InkAnnotationElement.__proto__ || Object.getPrototypeOf(InkAnnotationElement)).call(this, parameters, isRenderable, true)); 16301 16302 _this17.containerClassName = 'inkAnnotation'; 16303 _this17.svgElementName = 'svg:polyline'; 16304 return _this17; 16305 } 16306 16307 _createClass(InkAnnotationElement, [{ 16308 key: 'render', 16309 value: function render() { 16310 this.container.className = this.containerClassName; 16311 var data = this.data; 16312 var width = data.rect[2] - data.rect[0]; 16313 var height = data.rect[3] - data.rect[1]; 16314 var svg = this.svgFactory.create(width, height); 16315 var inkLists = data.inkLists; 16316 for (var i = 0, ii = inkLists.length; i < ii; i++) { 16317 var inkList = inkLists[i]; 16318 var points = []; 16319 for (var j = 0, jj = inkList.length; j < jj; j++) { 16320 var x = inkList[j].x - data.rect[0]; 16321 var y = data.rect[3] - inkList[j].y; 16322 points.push(x + ',' + y); 16323 } 16324 points = points.join(' '); 16325 var borderWidth = data.borderStyle.width; 16326 var polyline = this.svgFactory.createElement(this.svgElementName); 16327 polyline.setAttribute('points', points); 16328 polyline.setAttribute('stroke-width', borderWidth); 16329 polyline.setAttribute('stroke', 'transparent'); 16330 polyline.setAttribute('fill', 'none'); 16331 this._createPopup(this.container, polyline, data); 16332 svg.appendChild(polyline); 16333 } 16334 this.container.append(svg); 16335 return this.container; 16336 } 16337 }]); 16338 16339 return InkAnnotationElement; 16340}(AnnotationElement); 16341 16342var HighlightAnnotationElement = function (_AnnotationElement10) { 16343 _inherits(HighlightAnnotationElement, _AnnotationElement10); 16344 16345 function HighlightAnnotationElement(parameters) { 16346 _classCallCheck(this, HighlightAnnotationElement); 16347 16348 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16349 return _possibleConstructorReturn(this, (HighlightAnnotationElement.__proto__ || Object.getPrototypeOf(HighlightAnnotationElement)).call(this, parameters, isRenderable, true)); 16350 } 16351 16352 _createClass(HighlightAnnotationElement, [{ 16353 key: 'render', 16354 value: function render() { 16355 this.container.className = 'highlightAnnotation'; 16356 if (!this.data.hasPopup) { 16357 this._createPopup(this.container, null, this.data); 16358 } 16359 return this.container; 16360 } 16361 }]); 16362 16363 return HighlightAnnotationElement; 16364}(AnnotationElement); 16365 16366var UnderlineAnnotationElement = function (_AnnotationElement11) { 16367 _inherits(UnderlineAnnotationElement, _AnnotationElement11); 16368 16369 function UnderlineAnnotationElement(parameters) { 16370 _classCallCheck(this, UnderlineAnnotationElement); 16371 16372 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16373 return _possibleConstructorReturn(this, (UnderlineAnnotationElement.__proto__ || Object.getPrototypeOf(UnderlineAnnotationElement)).call(this, parameters, isRenderable, true)); 16374 } 16375 16376 _createClass(UnderlineAnnotationElement, [{ 16377 key: 'render', 16378 value: function render() { 16379 this.container.className = 'underlineAnnotation'; 16380 if (!this.data.hasPopup) { 16381 this._createPopup(this.container, null, this.data); 16382 } 16383 return this.container; 16384 } 16385 }]); 16386 16387 return UnderlineAnnotationElement; 16388}(AnnotationElement); 16389 16390var SquigglyAnnotationElement = function (_AnnotationElement12) { 16391 _inherits(SquigglyAnnotationElement, _AnnotationElement12); 16392 16393 function SquigglyAnnotationElement(parameters) { 16394 _classCallCheck(this, SquigglyAnnotationElement); 16395 16396 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16397 return _possibleConstructorReturn(this, (SquigglyAnnotationElement.__proto__ || Object.getPrototypeOf(SquigglyAnnotationElement)).call(this, parameters, isRenderable, true)); 16398 } 16399 16400 _createClass(SquigglyAnnotationElement, [{ 16401 key: 'render', 16402 value: function render() { 16403 this.container.className = 'squigglyAnnotation'; 16404 if (!this.data.hasPopup) { 16405 this._createPopup(this.container, null, this.data); 16406 } 16407 return this.container; 16408 } 16409 }]); 16410 16411 return SquigglyAnnotationElement; 16412}(AnnotationElement); 16413 16414var StrikeOutAnnotationElement = function (_AnnotationElement13) { 16415 _inherits(StrikeOutAnnotationElement, _AnnotationElement13); 16416 16417 function StrikeOutAnnotationElement(parameters) { 16418 _classCallCheck(this, StrikeOutAnnotationElement); 16419 16420 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16421 return _possibleConstructorReturn(this, (StrikeOutAnnotationElement.__proto__ || Object.getPrototypeOf(StrikeOutAnnotationElement)).call(this, parameters, isRenderable, true)); 16422 } 16423 16424 _createClass(StrikeOutAnnotationElement, [{ 16425 key: 'render', 16426 value: function render() { 16427 this.container.className = 'strikeoutAnnotation'; 16428 if (!this.data.hasPopup) { 16429 this._createPopup(this.container, null, this.data); 16430 } 16431 return this.container; 16432 } 16433 }]); 16434 16435 return StrikeOutAnnotationElement; 16436}(AnnotationElement); 16437 16438var StampAnnotationElement = function (_AnnotationElement14) { 16439 _inherits(StampAnnotationElement, _AnnotationElement14); 16440 16441 function StampAnnotationElement(parameters) { 16442 _classCallCheck(this, StampAnnotationElement); 16443 16444 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); 16445 return _possibleConstructorReturn(this, (StampAnnotationElement.__proto__ || Object.getPrototypeOf(StampAnnotationElement)).call(this, parameters, isRenderable, true)); 16446 } 16447 16448 _createClass(StampAnnotationElement, [{ 16449 key: 'render', 16450 value: function render() { 16451 this.container.className = 'stampAnnotation'; 16452 if (!this.data.hasPopup) { 16453 this._createPopup(this.container, null, this.data); 16454 } 16455 return this.container; 16456 } 16457 }]); 16458 16459 return StampAnnotationElement; 16460}(AnnotationElement); 16461 16462var FileAttachmentAnnotationElement = function (_AnnotationElement15) { 16463 _inherits(FileAttachmentAnnotationElement, _AnnotationElement15); 16464 16465 function FileAttachmentAnnotationElement(parameters) { 16466 _classCallCheck(this, FileAttachmentAnnotationElement); 16467 16468 var _this23 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true)); 16469 16470 var _this23$data$file = _this23.data.file, 16471 filename = _this23$data$file.filename, 16472 content = _this23$data$file.content; 16473 16474 _this23.filename = (0, _dom_utils.getFilenameFromUrl)(filename); 16475 _this23.content = content; 16476 if (_this23.linkService.eventBus) { 16477 _this23.linkService.eventBus.dispatch('fileattachmentannotation', { 16478 source: _this23, 16479 id: (0, _util.stringToPDFString)(filename), 16480 filename: filename, 16481 content: content 16482 }); 16483 } 16484 return _this23; 16485 } 16486 16487 _createClass(FileAttachmentAnnotationElement, [{ 16488 key: 'render', 16489 value: function render() { 16490 this.container.className = 'fileAttachmentAnnotation'; 16491 var trigger = document.createElement('div'); 16492 trigger.style.height = this.container.style.height; 16493 trigger.style.width = this.container.style.width; 16494 trigger.addEventListener('dblclick', this._download.bind(this)); 16495 if (!this.data.hasPopup && (this.data.title || this.data.contents)) { 16496 this._createPopup(this.container, trigger, this.data); 16497 } 16498 this.container.appendChild(trigger); 16499 return this.container; 16500 } 16501 }, { 16502 key: '_download', 16503 value: function _download() { 16504 if (!this.downloadManager) { 16505 (0, _util.warn)('Download cannot be started due to unavailable download manager'); 16506 return; 16507 } 16508 this.downloadManager.downloadData(this.content, this.filename, ''); 16509 } 16510 }]); 16511 16512 return FileAttachmentAnnotationElement; 16513}(AnnotationElement); 16514 16515var AnnotationLayer = function () { 16516 function AnnotationLayer() { 16517 _classCallCheck(this, AnnotationLayer); 16518 } 16519 16520 _createClass(AnnotationLayer, null, [{ 16521 key: 'render', 16522 value: function render(parameters) { 16523 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 16524 var data = parameters.annotations[i]; 16525 if (!data) { 16526 continue; 16527 } 16528 var element = AnnotationElementFactory.create({ 16529 data: data, 16530 layer: parameters.div, 16531 page: parameters.page, 16532 viewport: parameters.viewport, 16533 linkService: parameters.linkService, 16534 downloadManager: parameters.downloadManager, 16535 imageResourcesPath: parameters.imageResourcesPath || '', 16536 renderInteractiveForms: parameters.renderInteractiveForms || false, 16537 svgFactory: new _dom_utils.DOMSVGFactory() 16538 }); 16539 if (element.isRenderable) { 16540 parameters.div.appendChild(element.render()); 16541 } 16542 } 16543 } 16544 }, { 16545 key: 'update', 16546 value: function update(parameters) { 16547 for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { 16548 var data = parameters.annotations[i]; 16549 var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); 16550 if (element) { 16551 element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; 16552 } 16553 } 16554 parameters.div.removeAttribute('hidden'); 16555 } 16556 }]); 16557 16558 return AnnotationLayer; 16559}(); 16560 16561exports.AnnotationLayer = AnnotationLayer; 16562 16563/***/ }), 16564/* 147 */ 16565/***/ (function(module, exports, __w_pdfjs_require__) { 16566 16567"use strict"; 16568 16569 16570Object.defineProperty(exports, "__esModule", { 16571 value: true 16572}); 16573exports.SVGGraphics = undefined; 16574 16575var _util = __w_pdfjs_require__(1); 16576 16577var _dom_utils = __w_pdfjs_require__(130); 16578 16579var _is_node = __w_pdfjs_require__(4); 16580 16581var _is_node2 = _interopRequireDefault(_is_node); 16582 16583function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 16584 16585var SVGGraphics = function SVGGraphics() { 16586 throw new Error('Not implemented: SVGGraphics'); 16587}; 16588{ 16589 var SVG_DEFAULTS = { 16590 fontStyle: 'normal', 16591 fontWeight: 'normal', 16592 fillColor: '#000000' 16593 }; 16594 var convertImgDataToPng = function convertImgDataToPngClosure() { 16595 var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); 16596 var CHUNK_WRAPPER_SIZE = 12; 16597 var crcTable = new Int32Array(256); 16598 for (var i = 0; i < 256; i++) { 16599 var c = i; 16600 for (var h = 0; h < 8; h++) { 16601 if (c & 1) { 16602 c = 0xedB88320 ^ c >> 1 & 0x7fffffff; 16603 } else { 16604 c = c >> 1 & 0x7fffffff; 16605 } 16606 } 16607 crcTable[i] = c; 16608 } 16609 function crc32(data, start, end) { 16610 var crc = -1; 16611 for (var i = start; i < end; i++) { 16612 var a = (crc ^ data[i]) & 0xff;
16613 var b = crcTable[a]; 16614 crc = crc >>> 8 ^ b; 16615 } 16616 return crc ^ -1; 16617 } 16618 function writePngChunk(type, body, data, offset) { 16619 var p = offset; 16620 var len = body.length; 16621 data[p] = len >> 24 & 0xff; 16622 data[p + 1] = len >> 16 & 0xff; 16623 data[p + 2] = len >> 8 & 0xff; 16624 data[p + 3] = len & 0xff; 16625 p += 4; 16626 data[p] = type.charCodeAt(0) & 0xff; 16627 data[p + 1] = type.charCodeAt(1) & 0xff; 16628 data[p + 2] = type.charCodeAt(2) & 0xff; 16629 data[p + 3] = type.charCodeAt(3) & 0xff; 16630 p += 4; 16631 data.set(body, p); 16632 p += body.length; 16633 var crc = crc32(data, offset + 4, p); 16634 data[p] = crc >> 24 & 0xff; 16635 data[p + 1] = crc >> 16 & 0xff; 16636 data[p + 2] = crc >> 8 & 0xff; 16637 data[p + 3] = crc & 0xff; 16638 } 16639 function adler32(data, start, end) { 16640 var a = 1; 16641 var b = 0; 16642 for (var i = start; i < end; ++i) { 16643 a = (a + (data[i] & 0xff)) % 65521; 16644 b = (b + a) % 65521; 16645 } 16646 return b << 16 | a; 16647 } 16648 function deflateSync(literals) { 16649 if (!(0, _is_node2.default)()) { 16650 return deflateSyncUncompressed(literals); 16651 } 16652 try { 16653 var input; 16654 if (parseInt(process.versions.node) >= 8) { 16655 input = literals; 16656 } else { 16657 input = new Buffer(literals); 16658 } 16659 var output = require('zlib').deflateSync(input, { level: 9 }); 16660 return output instanceof Uint8Array ? output : new Uint8Array(output); 16661 } catch (e) { 16662 (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); 16663 } 16664 return deflateSyncUncompressed(literals); 16665 } 16666 function deflateSyncUncompressed(literals) { 16667 var len = literals.length; 16668 var maxBlockLength = 0xFFFF; 16669 var deflateBlocks = Math.ceil(len / maxBlockLength); 16670 var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); 16671 var pi = 0; 16672 idat[pi++] = 0x78; 16673 idat[pi++] = 0x9c; 16674 var pos = 0; 16675 while (len > maxBlockLength) { 16676 idat[pi++] = 0x00; 16677 idat[pi++] = 0xff; 16678 idat[pi++] = 0xff; 16679 idat[pi++] = 0x00; 16680 idat[pi++] = 0x00; 16681 idat.set(literals.subarray(pos, pos + maxBlockLength), pi); 16682 pi += maxBlockLength; 16683 pos += maxBlockLength; 16684 len -= maxBlockLength; 16685 } 16686 idat[pi++] = 0x01; 16687 idat[pi++] = len & 0xff; 16688 idat[pi++] = len >> 8 & 0xff; 16689 idat[pi++] = ~len & 0xffff & 0xff; 16690 idat[pi++] = (~len & 0xffff) >> 8 & 0xff; 16691 idat.set(literals.subarray(pos), pi); 16692 pi += literals.length - pos; 16693 var adler = adler32(literals, 0, literals.length); 16694 idat[pi++] = adler >> 24 & 0xff; 16695 idat[pi++] = adler >> 16 & 0xff; 16696 idat[pi++] = adler >> 8 & 0xff; 16697 idat[pi++] = adler & 0xff; 16698 return idat; 16699 } 16700 function encode(imgData, kind, forceDataSchema, isMask) { 16701 var width = imgData.width; 16702 var height = imgData.height; 16703 var bitDepth, colorType, lineSize; 16704 var bytes = imgData.data; 16705 switch (kind) { 16706 case _util.ImageKind.GRAYSCALE_1BPP: 16707 colorType = 0; 16708 bitDepth = 1; 16709 lineSize = width + 7 >> 3; 16710 break; 16711 case _util.ImageKind.RGB_24BPP: 16712 colorType = 2; 16713 bitDepth = 8; 16714 lineSize = width * 3; 16715 break; 16716 case _util.ImageKind.RGBA_32BPP: 16717 colorType = 6; 16718 bitDepth = 8; 16719 lineSize = width * 4; 16720 break; 16721 default: 16722 throw new Error('invalid format'); 16723 } 16724 var literals = new Uint8Array((1 + lineSize) * height); 16725 var offsetLiterals = 0, 16726 offsetBytes = 0; 16727 var y, i; 16728 for (y = 0; y < height; ++y) { 16729 literals[offsetLiterals++] = 0; 16730 literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); 16731 offsetBytes += lineSize; 16732 offsetLiterals += lineSize; 16733 } 16734 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { 16735 offsetLiterals = 0; 16736 for (y = 0; y < height; y++) { 16737 offsetLiterals++; 16738 for (i = 0; i < lineSize; i++) { 16739 literals[offsetLiterals++] ^= 0xFF; 16740 } 16741 } 16742 } 16743 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]); 16744 var idat = deflateSync(literals); 16745 var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; 16746 var data = new Uint8Array(pngLength); 16747 var offset = 0; 16748 data.set(PNG_HEADER, offset); 16749 offset += PNG_HEADER.length; 16750 writePngChunk('IHDR', ihdr, data, offset); 16751 offset += CHUNK_WRAPPER_SIZE + ihdr.length; 16752 writePngChunk('IDATA', idat, data, offset); 16753 offset += CHUNK_WRAPPER_SIZE + idat.length; 16754 writePngChunk('IEND', new Uint8Array(0), data, offset); 16755 return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); 16756 } 16757 return function convertImgDataToPng(imgData, forceDataSchema, isMask) { 16758 var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; 16759 return encode(imgData, kind, forceDataSchema, isMask); 16760 }; 16761 }(); 16762 var SVGExtraState = function SVGExtraStateClosure() { 16763 function SVGExtraState() { 16764 this.fontSizeScale = 1;
vendor: 14,800 bytes, lines 16765-17178
16765 this.fontWeight = SVG_DEFAULTS.fontWeight; 16766 this.fontSize = 0; 16767 this.textMatrix = _util.IDENTITY_MATRIX; 16768 this.fontMatrix = _util.FONT_IDENTITY_MATRIX; 16769 this.leading = 0; 16770 this.textRenderingMode = _util.TextRenderingMode.FILL; 16771 this.x = 0; 16772 this.y = 0; 16773 this.lineX = 0; 16774 this.lineY = 0; 16775 this.charSpacing = 0; 16776 this.wordSpacing = 0; 16777 this.textHScale = 1; 16778 this.textRise = 0; 16779 this.fillColor = SVG_DEFAULTS.fillColor; 16780 this.strokeColor = '#000000'; 16781 this.fillAlpha = 1; 16782 this.strokeAlpha = 1; 16783 this.lineWidth = 1; 16784 this.lineJoin = ''; 16785 this.lineCap = ''; 16786 this.miterLimit = 0; 16787 this.dashArray = []; 16788 this.dashPhase = 0; 16789 this.dependencies = []; 16790 this.activeClipUrl = null; 16791 this.clipGroup = null; 16792 this.maskId = ''; 16793 } 16794 SVGExtraState.prototype = { 16795 clone: function SVGExtraState_clone() { 16796 return Object.create(this); 16797 }, 16798 setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) { 16799 this.x = x; 16800 this.y = y; 16801 } 16802 }; 16803 return SVGExtraState; 16804 }(); 16805 exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() { 16806 function opListToTree(opList) { 16807 var opTree = []; 16808 var tmp = []; 16809 var opListLen = opList.length; 16810 for (var x = 0; x < opListLen; x++) { 16811 if (opList[x].fn === 'save') { 16812 opTree.push({ 16813 'fnId': 92, 16814 'fn': 'group', 16815 'items': [] 16816 }); 16817 tmp.push(opTree); 16818 opTree = opTree[opTree.length - 1].items; 16819 continue; 16820 } 16821 if (opList[x].fn === 'restore') { 16822 opTree = tmp.pop(); 16823 } else { 16824 opTree.push(opList[x]); 16825 } 16826 } 16827 return opTree; 16828 } 16829 function pf(value) { 16830 if (Number.isInteger(value)) { 16831 return value.toString(); 16832 } 16833 var s = value.toFixed(10); 16834 var i = s.length - 1; 16835 if (s[i] !== '0') { 16836 return s; 16837 } 16838 do { 16839 i--; 16840 } while (s[i] === '0'); 16841 return s.substring(0, s[i] === '.' ? i : i + 1); 16842 } 16843 function pm(m) { 16844 if (m[4] === 0 && m[5] === 0) { 16845 if (m[1] === 0 && m[2] === 0) { 16846 if (m[0] === 1 && m[3] === 1) { 16847 return ''; 16848 } 16849 return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')'; 16850 } 16851 if (m[0] === m[3] && m[1] === -m[2]) { 16852 var a = Math.acos(m[0]) * 180 / Math.PI; 16853 return 'rotate(' + pf(a) + ')'; 16854 } 16855 } else { 16856 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { 16857 return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')'; 16858 } 16859 } 16860 return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')'; 16861 } 16862 function SVGGraphics(commonObjs, objs, forceDataSchema) { 16863 this.svgFactory = new _dom_utils.DOMSVGFactory(); 16864 this.current = new SVGExtraState(); 16865 this.transformMatrix = _util.IDENTITY_MATRIX; 16866 this.transformStack = []; 16867 this.extraStack = []; 16868 this.commonObjs = commonObjs; 16869 this.objs = objs; 16870 this.pendingClip = null; 16871 this.pendingEOFill = false; 16872 this.embedFonts = false; 16873 this.embeddedFonts = Object.create(null); 16874 this.cssStyle = null; 16875 this.forceDataSchema = !!forceDataSchema; 16876 } 16877 var XML_NS = 'http://www.w3.org/XML/1998/namespace'; 16878 var XLINK_NS = 'http://www.w3.org/1999/xlink'; 16879 var LINE_CAP_STYLES = ['butt', 'round', 'square']; 16880 var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; 16881 var clipCount = 0; 16882 var maskCount = 0; 16883 SVGGraphics.prototype = { 16884 save: function SVGGraphics_save() { 16885 this.transformStack.push(this.transformMatrix); 16886 var old = this.current; 16887 this.extraStack.push(old); 16888 this.current = old.clone(); 16889 }, 16890 restore: function SVGGraphics_restore() { 16891 this.transformMatrix = this.transformStack.pop(); 16892 this.current = this.extraStack.pop(); 16893 this.pendingClip = null; 16894 this.tgrp = null; 16895 }, 16896 group: function SVGGraphics_group(items) { 16897 this.save(); 16898 this.executeOpTree(items); 16899 this.restore(); 16900 }, 16901 loadDependencies: function SVGGraphics_loadDependencies(operatorList) { 16902 var _this = this; 16903 16904 var fnArray = operatorList.fnArray; 16905 var fnArrayLen = fnArray.length; 16906 var argsArray = operatorList.argsArray; 16907 for (var i = 0; i < fnArrayLen; i++) { 16908 if (_util.OPS.dependency === fnArray[i]) { 16909 var deps = argsArray[i]; 16910 for (var n = 0, nn = deps.length; n < nn; n++) { 16911 var obj = deps[n]; 16912 var common = obj.substring(0, 2) === 'g_'; 16913 var promise; 16914 if (common) { 16915 promise = new Promise(function (resolve) { 16916 _this.commonObjs.get(obj, resolve); 16917 }); 16918 } else { 16919 promise = new Promise(function (resolve) { 16920 _this.objs.get(obj, resolve); 16921 }); 16922 } 16923 this.current.dependencies.push(promise); 16924 } 16925 } 16926 } 16927 return Promise.all(this.current.dependencies); 16928 }, 16929 transform: function SVGGraphics_transform(a, b, c, d, e, f) { 16930 var transformMatrix = [a, b, c, d, e, f]; 16931 this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); 16932 this.tgrp = null; 16933 }, 16934 getSVG: function SVGGraphics_getSVG(operatorList, viewport) { 16935 var _this2 = this; 16936 16937 this.viewport = viewport; 16938 var svgElement = this._initialize(viewport); 16939 return this.loadDependencies(operatorList).then(function () { 16940 _this2.transformMatrix = _util.IDENTITY_MATRIX; 16941 var opTree = _this2.convertOpList(operatorList); 16942 _this2.executeOpTree(opTree); 16943 return svgElement; 16944 }); 16945 }, 16946 convertOpList: function SVGGraphics_convertOpList(operatorList) { 16947 var argsArray = operatorList.argsArray; 16948 var fnArray = operatorList.fnArray; 16949 var fnArrayLen = fnArray.length; 16950 var REVOPS = []; 16951 var opList = []; 16952 for (var op in _util.OPS) { 16953 REVOPS[_util.OPS[op]] = op; 16954 } 16955 for (var x = 0; x < fnArrayLen; x++) { 16956 var fnId = fnArray[x]; 16957 opList.push({ 16958 'fnId': fnId, 16959 'fn': REVOPS[fnId], 16960 'args': argsArray[x] 16961 }); 16962 } 16963 return opListToTree(opList); 16964 }, 16965 executeOpTree: function SVGGraphics_executeOpTree(opTree) { 16966 var opTreeLen = opTree.length; 16967 for (var x = 0; x < opTreeLen; x++) { 16968 var fn = opTree[x].fn; 16969 var fnId = opTree[x].fnId; 16970 var args = opTree[x].args; 16971 switch (fnId | 0) { 16972 case _util.OPS.beginText: 16973 this.beginText(); 16974 break; 16975 case _util.OPS.dependency: 16976 break; 16977 case _util.OPS.setLeading: 16978 this.setLeading(args); 16979 break; 16980 case _util.OPS.setLeadingMoveText: 16981 this.setLeadingMoveText(args[0], args[1]); 16982 break; 16983 case _util.OPS.setFont: 16984 this.setFont(args); 16985 break; 16986 case _util.OPS.showText: 16987 this.showText(args[0]); 16988 break; 16989 case _util.OPS.showSpacedText: 16990 this.showText(args[0]); 16991 break; 16992 case _util.OPS.endText: 16993 this.endText(); 16994 break; 16995 case _util.OPS.moveText: 16996 this.moveText(args[0], args[1]); 16997 break; 16998 case _util.OPS.setCharSpacing: 16999 this.setCharSpacing(args[0]); 17000 break; 17001 case _util.OPS.setWordSpacing: 17002 this.setWordSpacing(args[0]); 17003 break; 17004 case _util.OPS.setHScale: 17005 this.setHScale(args[0]); 17006 break; 17007 case _util.OPS.setTextMatrix: 17008 this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); 17009 break; 17010 case _util.OPS.setTextRise: 17011 this.setTextRise(args[0]); 17012 break; 17013 case _util.OPS.setTextRenderingMode: 17014 this.setTextRenderingMode(args[0]); 17015 break; 17016 case _util.OPS.setLineWidth: 17017 this.setLineWidth(args[0]); 17018 break; 17019 case _util.OPS.setLineJoin: 17020 this.setLineJoin(args[0]); 17021 break; 17022 case _util.OPS.setLineCap: 17023 this.setLineCap(args[0]); 17024 break; 17025 case _util.OPS.setMiterLimit: 17026 this.setMiterLimit(args[0]); 17027 break; 17028 case _util.OPS.setFillRGBColor: 17029 this.setFillRGBColor(args[0], args[1], args[2]); 17030 break; 17031 case _util.OPS.setStrokeRGBColor: 17032 this.setStrokeRGBColor(args[0], args[1], args[2]); 17033 break; 17034 case _util.OPS.setDash: 17035 this.setDash(args[0], args[1]); 17036 break; 17037 case _util.OPS.setGState: 17038 this.setGState(args[0]); 17039 break; 17040 case _util.OPS.fill: 17041 this.fill(); 17042 break; 17043 case _util.OPS.eoFill: 17044 this.eoFill(); 17045 break; 17046 case _util.OPS.stroke: 17047 this.stroke(); 17048 break; 17049 case _util.OPS.fillStroke: 17050 this.fillStroke(); 17051 break; 17052 case _util.OPS.eoFillStroke: 17053 this.eoFillStroke(); 17054 break; 17055 case _util.OPS.clip: 17056 this.clip('nonzero'); 17057 break; 17058 case _util.OPS.eoClip: 17059 this.clip('evenodd'); 17060 break; 17061 case _util.OPS.paintSolidColorImageMask: 17062 this.paintSolidColorImageMask(); 17063 break; 17064 case _util.OPS.paintJpegXObject: 17065 this.paintJpegXObject(args[0], args[1], args[2]); 17066 break; 17067 case _util.OPS.paintImageXObject: 17068 this.paintImageXObject(args[0]); 17069 break; 17070 case _util.OPS.paintInlineImageXObject: 17071 this.paintInlineImageXObject(args[0]); 17072 break; 17073 case _util.OPS.paintImageMaskXObject: 17074 this.paintImageMaskXObject(args[0]); 17075 break; 17076 case _util.OPS.paintFormXObjectBegin: 17077 this.paintFormXObjectBegin(args[0], args[1]); 17078 break; 17079 case _util.OPS.paintFormXObjectEnd: 17080 this.paintFormXObjectEnd(); 17081 break; 17082 case _util.OPS.closePath: 17083 this.closePath(); 17084 break; 17085 case _util.OPS.closeStroke: 17086 this.closeStroke(); 17087 break; 17088 case _util.OPS.closeFillStroke: 17089 this.closeFillStroke(); 17090 break; 17091 case _util.OPS.closeEOFillStroke: 17092 this.closeEOFillStroke(); 17093 break; 17094 case _util.OPS.nextLine: 17095 this.nextLine(); 17096 break; 17097 case _util.OPS.transform: 17098 this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); 17099 break; 17100 case _util.OPS.constructPath: 17101 this.constructPath(args[0], args[1]); 17102 break; 17103 case _util.OPS.endPath: 17104 this.endPath(); 17105 break; 17106 case 92: 17107 this.group(opTree[x].items); 17108 break; 17109 default: 17110 (0, _util.warn)('Unimplemented operator ' + fn); 17111 break; 17112 } 17113 } 17114 }, 17115 setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) { 17116 this.current.wordSpacing = wordSpacing; 17117 }, 17118 setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) { 17119 this.current.charSpacing = charSpacing; 17120 }, 17121 nextLine: function SVGGraphics_nextLine() { 17122 this.moveText(0, this.current.leading); 17123 }, 17124 setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) { 17125 var current = this.current; 17126 this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f]; 17127 this.current.x = this.current.lineX = 0; 17128 this.current.y = this.current.lineY = 0; 17129 current.xcoords = []; 17130 current.tspan = this.svgFactory.createElement('svg:tspan'); 17131 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 17132 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 17133 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17134 current.txtElement = this.svgFactory.createElement('svg:text'); 17135 current.txtElement.appendChild(current.tspan); 17136 }, 17137 beginText: function SVGGraphics_beginText() { 17138 this.current.x = this.current.lineX = 0; 17139 this.current.y = this.current.lineY = 0; 17140 this.current.textMatrix = _util.IDENTITY_MATRIX; 17141 this.current.lineMatrix = _util.IDENTITY_MATRIX; 17142 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 17143 this.current.txtElement = this.svgFactory.createElement('svg:text'); 17144 this.current.txtgrp = this.svgFactory.createElement('svg:g'); 17145 this.current.xcoords = []; 17146 }, 17147 moveText: function SVGGraphics_moveText(x, y) { 17148 var current = this.current; 17149 this.current.x = this.current.lineX += x; 17150 this.current.y = this.current.lineY += y; 17151 current.xcoords = []; 17152 current.tspan = this.svgFactory.createElement('svg:tspan'); 17153 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 17154 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 17155 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17156 }, 17157 showText: function SVGGraphics_showText(glyphs) { 17158 var current = this.current; 17159 var font = current.font; 17160 var fontSize = current.fontSize; 17161 if (fontSize === 0) { 17162 return; 17163 } 17164 var charSpacing = current.charSpacing; 17165 var wordSpacing = current.wordSpacing; 17166 var fontDirection = current.fontDirection; 17167 var textHScale = current.textHScale * fontDirection; 17168 var glyphsLength = glyphs.length; 17169 var vertical = font.vertical; 17170 var widthAdvanceScale = fontSize * current.fontMatrix[0]; 17171 var x = 0, 17172 i; 17173 for (i = 0; i < glyphsLength; ++i) { 17174 var glyph = glyphs[i]; 17175 if (glyph === null) { 17176 x += fontDirection * wordSpacing; 17177 continue; 17178 }
17178 else if ((0, _util.isNum)(glyph)) { 17179 x += -glyph * fontSize * 0.001; 17180 continue; 17181 } 17182 var width = glyph.width; 17183 var character = glyph.fontChar; 17184 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; 17185 var charWidth = width * widthAdvanceScale + spacing * fontDirection; 17186 if (!glyph.isInFont && !font.missingFile) { 17187 x += charWidth; 17188 continue; 17189 } 17190 current.xcoords.push(current.x + x * textHScale); 17191 current.tspan.textContent += character; 17192 x += charWidth; 17193 } 17194 if (vertical) { 17195 current.y -= x * textHScale; 17196 } else { 17197 current.x += x * textHScale; 17198 } 17199 current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); 17200 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17201 current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); 17202 current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px'); 17203 if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { 17204 current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); 17205 } 17206 if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { 17207 current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); 17208 } 17209 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; 17210 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 17211 if (current.fillColor !== SVG_DEFAULTS.fillColor) { 17212 current.tspan.setAttributeNS(null, 'fill', current.fillColor); 17213 } 17214 if (current.fillAlpha < 1) { 17215 current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 17216 } 17217 } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { 17218 current.tspan.setAttributeNS(null, 'fill', 'transparent'); 17219 } else { 17220 current.tspan.setAttributeNS(null, 'fill', 'none'); 17221 } 17222 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { 17223 this._setStrokeAttributes(current.tspan); 17224 } 17225 var textMatrix = current.textMatrix; 17226 if (current.textRise !== 0) { 17227 textMatrix = textMatrix.slice(); 17228 textMatrix[5] += current.textRise; 17229 } 17230 current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)'); 17231 current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); 17232 current.txtElement.appendChild(current.tspan); 17233 current.txtgrp.appendChild(current.txtElement); 17234 this._ensureTransformGroup().appendChild(current.txtElement); 17235 }, 17236 setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) { 17237 this.setLeading(-y); 17238 this.moveText(x, y); 17239 }, 17240 addFontStyle: function SVGGraphics_addFontStyle(fontObj) { 17241 if (!this.cssStyle) { 17242 this.cssStyle = this.svgFactory.createElement('svg:style'); 17243 this.cssStyle.setAttributeNS(null, 'type', 'text/css'); 17244 this.defs.appendChild(this.cssStyle); 17245 } 17246 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); 17247 this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n'; 17248 }, 17249 setFont: function SVGGraphics_setFont(details) { 17250 var current = this.current; 17251 var fontObj = this.commonObjs.get(details[0]); 17252 var size = details[1]; 17253 this.current.font = fontObj; 17254 if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { 17255 this.addFontStyle(fontObj); 17256 this.embeddedFonts[fontObj.loadedName] = fontObj; 17257 } 17258 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; 17259 var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; 17260 var italic = fontObj.italic ? 'italic' : 'normal'; 17261 if (size < 0) { 17262 size = -size; 17263 current.fontDirection = -1; 17264 } else { 17265 current.fontDirection = 1; 17266 } 17267 current.fontSize = size; 17268 current.fontFamily = fontObj.loadedName; 17269 current.fontWeight = bold; 17270 current.fontStyle = italic; 17271 current.tspan = this.svgFactory.createElement('svg:tspan'); 17272 current.tspan.setAttributeNS(null, 'y', pf(-current.y)); 17273 current.xcoords = []; 17274 }, 17275 endText: function endText() { 17276 var current = this.current; 17277 if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { 17278 current.element = current.txtElement; 17279 this.clip('nonzero'); 17280 this.endPath(); 17281 } 17282 }, 17283 17284 setLineWidth: function SVGGraphics_setLineWidth(width) { 17285 this.current.lineWidth = width; 17286 }, 17287 setLineCap: function SVGGraphics_setLineCap(style) { 17288 this.current.lineCap = LINE_CAP_STYLES[style]; 17289 }, 17290 setLineJoin: function SVGGraphics_setLineJoin(style) { 17291 this.current.lineJoin = LINE_JOIN_STYLES[style]; 17292 }, 17293 setMiterLimit: function SVGGraphics_setMiterLimit(limit) { 17294 this.current.miterLimit = limit; 17295 }, 17296 setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) { 17297 this.current.strokeAlpha = strokeAlpha; 17298 }, 17299 setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) { 17300 var color = _util.Util.makeCssRgb(r, g, b); 17301 this.current.strokeColor = color; 17302 }, 17303 setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) { 17304 this.current.fillAlpha = fillAlpha; 17305 }, 17306 setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) { 17307 var color = _util.Util.makeCssRgb(r, g, b); 17308 this.current.fillColor = color; 17309 this.current.tspan = this.svgFactory.createElement('svg:tspan'); 17310 this.current.xcoords = []; 17311 }, 17312 setDash: function SVGGraphics_setDash(dashArray, dashPhase) { 17313 this.current.dashArray = dashArray; 17314 this.current.dashPhase = dashPhase; 17315 }, 17316 constructPath: function SVGGraphics_constructPath(ops, args) { 17317 var current = this.current; 17318 var x = current.x, 17319 y = current.y; 17320 current.path = this.svgFactory.createElement('svg:path'); 17321 var d = []; 17322 var opLength = ops.length; 17323 for (var i = 0, j = 0; i < opLength; i++) { 17324 switch (ops[i] | 0) { 17325 case _util.OPS.rectangle: 17326 x = args[j++]; 17327 y = args[j++]; 17328 var width = args[j++]; 17329 var height = args[j++]; 17330 var xw = x + width; 17331 var yh = y + height; 17332 d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); 17333 break; 17334 case _util.OPS.moveTo: 17335 x = args[j++]; 17336 y = args[j++]; 17337 d.push('M', pf(x), pf(y)); 17338 break; 17339 case _util.OPS.lineTo: 17340 x = args[j++]; 17341 y = args[j++]; 17342 d.push('L', pf(x), pf(y)); 17343 break; 17344 case _util.OPS.curveTo: 17345 x = args[j + 4]; 17346 y = args[j + 5]; 17347 d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); 17348 j += 6; 17349 break; 17350 case _util.OPS.curveTo2: 17351 x = args[j + 2]; 17352 y = args[j + 3]; 17353 d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); 17354 j += 4; 17355 break; 17356 case _util.OPS.curveTo3: 17357 x = args[j + 2]; 17358 y = args[j + 3]; 17359 d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); 17360 j += 4; 17361 break; 17362 case _util.OPS.closePath: 17363 d.push('Z'); 17364 break; 17365 } 17366 } 17367 current.path.setAttributeNS(null, 'd', d.join(' ')); 17368 current.path.setAttributeNS(null, 'fill', 'none'); 17369 this._ensureTransformGroup().appendChild(current.path); 17370 current.element = current.path; 17371 current.setCurrentPoint(x, y); 17372 }, 17373 endPath: function SVGGraphics_endPath() { 17374 if (!this.pendingClip) { 17375 return; 17376 } 17377 var current = this.current; 17378 var clipId = 'clippath' + clipCount; 17379 clipCount++; 17380 var clipPath = this.svgFactory.createElement('svg:clipPath'); 17381 clipPath.setAttributeNS(null, 'id', clipId); 17382 clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 17383 var clipElement = current.element.cloneNode(true); 17384 if (this.pendingClip === 'evenodd') { 17385 clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); 17386 } else { 17387 clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); 17388 } 17389 this.pendingClip = null; 17390 clipPath.appendChild(clipElement); 17391 this.defs.appendChild(clipPath); 17392 if (current.activeClipUrl) { 17393 current.clipGroup = null; 17394 this.extraStack.forEach(function (prev) { 17395 prev.clipGroup = null; 17396 }); 17397 clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); 17398 } 17399 current.activeClipUrl = 'url(#' + clipId + ')'; 17400 this.tgrp = null; 17401 }, 17402 clip: function SVGGraphics_clip(type) { 17403 this.pendingClip = type; 17404 }, 17405 closePath: function SVGGraphics_closePath() { 17406 var current = this.current; 17407 if (current.path) { 17408 var d = current.path.getAttributeNS(null, 'd'); 17409 d += 'Z'; 17410 current.path.setAttributeNS(null, 'd', d); 17411 } 17412 }, 17413 setLeading: function SVGGraphics_setLeading(leading) { 17414 this.current.leading = -leading; 17415 }, 17416 setTextRise: function SVGGraphics_setTextRise(textRise) { 17417 this.current.textRise = textRise; 17418 }, 17419 setTextRenderingMode: function setTextRenderingMode(textRenderingMode) { 17420 this.current.textRenderingMode = textRenderingMode; 17421 }, 17422 17423 setHScale: function SVGGraphics_setHScale(scale) { 17424 this.current.textHScale = scale / 100; 17425 }, 17426 setGState: function SVGGraphics_setGState(states) { 17427 for (var i = 0, ii = states.length; i < ii; i++) { 17428 var state = states[i]; 17429 var key = state[0]; 17430 var value = state[1]; 17431 switch (key) { 17432 case 'LW': 17433 this.setLineWidth(value); 17434 break; 17435 case 'LC': 17436 this.setLineCap(value); 17437 break; 17438 case 'LJ': 17439 this.setLineJoin(value); 17440 break; 17441 case 'ML': 17442 this.setMiterLimit(value); 17443 break; 17444 case 'D': 17445 this.setDash(value[0], value[1]); 17446 break; 17447 case 'Font': 17448 this.setFont(value); 17449 break; 17450 case 'CA': 17451 this.setStrokeAlpha(value); 17452 break; 17453 case 'ca': 17454 this.setFillAlpha(value); 17455 break; 17456 default: 17457 (0, _util.warn)('Unimplemented graphic state ' + key); 17458 break; 17459 } 17460 } 17461 }, 17462 fill: function SVGGraphics_fill() { 17463 var current = this.current; 17464 if (current.element) { 17465 current.element.setAttributeNS(null, 'fill', current.fillColor); 17466 current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); 17467 this.endPath(); 17468 } 17469 }, 17470 stroke: function SVGGraphics_stroke() { 17471 var current = this.current; 17472 if (current.element) { 17473 this._setStrokeAttributes(current.element); 17474 current.element.setAttributeNS(null, 'fill', 'none'); 17475 this.endPath(); 17476 } 17477 }, 17478 _setStrokeAttributes: function _setStrokeAttributes(element) { 17479 var current = this.current; 17480 element.setAttributeNS(null, 'stroke', current.strokeColor); 17481 element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); 17482 element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); 17483 element.setAttributeNS(null, 'stroke-linecap', current.lineCap); 17484 element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); 17485 element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px'); 17486 element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' ')); 17487 element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px'); 17488 }, 17489 17490 eoFill: function SVGGraphics_eoFill() { 17491 if (this.current.element) { 17492 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 17493 } 17494 this.fill(); 17495 }, 17496 fillStroke: function SVGGraphics_fillStroke() { 17497 this.stroke(); 17498 this.fill(); 17499 }, 17500 eoFillStroke: function SVGGraphics_eoFillStroke() { 17501 if (this.current.element) { 17502 this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); 17503 } 17504 this.fillStroke(); 17505 }, 17506 closeStroke: function SVGGraphics_closeStroke() { 17507 this.closePath(); 17508 this.stroke(); 17509 }, 17510 closeFillStroke: function SVGGraphics_closeFillStroke() { 17511 this.closePath(); 17512 this.fillStroke(); 17513 }, 17514 closeEOFillStroke: function closeEOFillStroke() { 17515 this.closePath(); 17516 this.eoFillStroke(); 17517 }, 17518 17519 paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() { 17520 var current = this.current; 17521 var rect = this.svgFactory.createElement('svg:rect'); 17522 rect.setAttributeNS(null, 'x', '0'); 17523 rect.setAttributeNS(null, 'y', '0'); 17524 rect.setAttributeNS(null, 'width', '1px'); 17525 rect.setAttributeNS(null, 'height', '1px'); 17526 rect.setAttributeNS(null, 'fill', current.fillColor); 17527 this._ensureTransformGroup().appendChild(rect); 17528 }, 17529 paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) { 17530 var imgObj = this.objs.get(objId); 17531 var imgEl = this.svgFactory.createElement('svg:image'); 17532 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); 17533 imgEl.setAttributeNS(null, 'width', pf(w)); 17534 imgEl.setAttributeNS(null, 'height', pf(h)); 17535 imgEl.setAttributeNS(null, 'x', '0'); 17536 imgEl.setAttributeNS(null, 'y', pf(-h)); 17537 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')'); 17538 this._ensureTransformGroup().appendChild(imgEl); 17539 }, 17540 paintImageXObject: function SVGGraphics_paintImageXObject(objId) { 17541 var imgData = this.objs.get(objId); 17542 if (!imgData) { 17543 (0, _util.warn)('Dependent image isn\'t ready yet'); 17544 return; 17545 } 17546 this.paintInlineImageXObject(imgData); 17547 }, 17548 paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) { 17549 var width = imgData.width; 17550 var height = imgData.height; 17551 var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); 17552 var cliprect = this.svgFactory.createElement('svg:rect'); 17553 cliprect.setAttributeNS(null, 'x', '0'); 17554 cliprect.setAttributeNS(null, 'y', '0'); 17555 cliprect.setAttributeNS(null, 'width', pf(width)); 17556 cliprect.setAttributeNS(null, 'height', pf(height)); 17557 this.current.element = cliprect; 17558 this.clip('nonzero'); 17559 var imgEl = this.svgFactory.createElement('svg:image'); 17560 imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); 17561 imgEl.setAttributeNS(null, 'x', '0'); 17562 imgEl.setAttributeNS(null, 'y', pf(-height)); 17563 imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); 17564 imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); 17565 imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')'); 17566 if (mask) { 17567 mask.appendChild(imgEl); 17568 } else { 17569 this._ensureTransformGroup().appendChild(imgEl); 17570 } 17571 }, 17572 paintImageMa
17572skXObject: function SVGGraphics_paintImageMaskXObject(imgData) { 17573 var current = this.current; 17574 var width = imgData.width; 17575 var height = imgData.height; 17576 var fillColor = current.fillColor; 17577 current.maskId = 'mask' + maskCount++; 17578 var mask = this.svgFactory.createElement('svg:mask'); 17579 mask.setAttributeNS(null, 'id', current.maskId); 17580 var rect = this.svgFactory.createElement('svg:rect'); 17581 rect.setAttributeNS(null, 'x', '0'); 17582 rect.setAttributeNS(null, 'y', '0'); 17583 rect.setAttributeNS(null, 'width', pf(width)); 17584 rect.setAttributeNS(null, 'height', pf(height)); 17585 rect.setAttributeNS(null, 'fill', fillColor); 17586 rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')'); 17587 this.defs.appendChild(mask); 17588 this._ensureTransformGroup().appendChild(rect); 17589 this.paintInlineImageXObject(imgData, mask); 17590 }, 17591 paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) { 17592 if (Array.isArray(matrix) && matrix.length === 6) { 17593 this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); 17594 } 17595 if (Array.isArray(bbox) && bbox.length === 4) { 17596 var width = bbox[2] - bbox[0]; 17597 var height = bbox[3] - bbox[1]; 17598 var cliprect = this.svgFactory.createElement('svg:rect'); 17599 cliprect.setAttributeNS(null, 'x', bbox[0]); 17600 cliprect.setAttributeNS(null, 'y', bbox[1]); 17601 cliprect.setAttributeNS(null, 'width', pf(width)); 17602 cliprect.setAttributeNS(null, 'height', pf(height)); 17603 this.current.element = cliprect; 17604 this.clip('nonzero'); 17605 this.endPath(); 17606 } 17607 }, 17608 paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {}, 17609 _initialize: function _initialize(viewport) { 17610 var svg = this.svgFactory.create(viewport.width, viewport.height); 17611 var definitions = this.svgFactory.createElement('svg:defs'); 17612 svg.appendChild(definitions); 17613 this.defs = definitions; 17614 var rootGroup = this.svgFactory.createElement('svg:g'); 17615 rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); 17616 svg.appendChild(rootGroup); 17617 this.svg = rootGroup; 17618 return svg; 17619 }, 17620 17621 _ensureClipGroup: function SVGGraphics_ensureClipGroup() { 17622 if (!this.current.clipGroup) { 17623 var clipGroup = this.svgFactory.createElement('svg:g'); 17624 clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); 17625 this.svg.appendChild(clipGroup); 17626 this.current.clipGroup = clipGroup; 17627 } 17628 return this.current.clipGroup; 17629 }, 17630 _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() { 17631 if (!this.tgrp) { 17632 this.tgrp = this.svgFactory.createElement('svg:g'); 17633 this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); 17634 if (this.current.activeClipUrl) { 17635 this._ensureClipGroup().appendChild(this.tgrp); 17636 } else { 17637 this.svg.appendChild(this.tgrp); 17638 } 17639 } 17640 return this.tgrp; 17641 } 17642 }; 17643 return SVGGraphics; 17644 }(); 17645} 17646exports.SVGGraphics = SVGGraphics; 17647 17648/***/ }), 17649/* 148 */ 17650/***/ (function(module, exports, __w_pdfjs_require__) { 17651 17652"use strict"; 17653 17654 17655Object.defineProperty(exports, "__esModule", { 17656 value: true 17657}); 17658exports.PDFNodeStream = undefined; 17659 17660var _regenerator = __w_pdfjs_require__(137); 17661 17662var _regenerator2 = _interopRequireDefault(_regenerator); 17663 17664var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 17665 17666var _util = __w_pdfjs_require__(1); 17667 17668var _network_utils = __w_pdfjs_require__(149); 17669 17670function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 17671 17672function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 17673 17674function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
17674onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 17675 17676function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 17677 17678function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 17679 17680var fs = require('fs'); 17681var http = require('http'); 17682var https = require('https'); 17683var url = require('url'); 17684 17685var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; 17686function parseUrl(sourceUrl) { 17687 var parsedUrl = url.parse(sourceUrl); 17688 if (parsedUrl.protocol === 'file:' || parsedUrl.host) { 17689 return parsedUrl; 17690 } 17691 if (/^[a-z]:[/\\]/i.test(sourceUrl)) { 17692 return url.parse('file:///' + sourceUrl); 17693 } 17694 if (!parsedUrl.host) { 17695 parsedUrl.protocol = 'file:'; 17696 } 17697 return parsedUrl; 17698} 17699 17700var PDFNodeStream = function () { 17701 function PDFNodeStream(source) { 17702 _classCallCheck(this, PDFNodeStream); 17703 17704 this.source = source; 17705 this.url = parseUrl(source.url); 17706 this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; 17707 this.isFsUrl = this.url.protocol === 'file:'; 17708 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 17709 this._fullRequest = null; 17710 this._rangeRequestReaders = []; 17711 } 17712 17713 _createClass(PDFNodeStream, [{ 17714 key: 'getFullReader', 17715 value: function getFullReader() { 17716 (0, _util.assert)(!this._fullRequest); 17717 this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); 17718 return this._fullRequest; 17719 } 17720 }, { 17721 key: 'getRangeReader', 17722 value: function getRangeReader(start, end) { 17723 var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); 17724 this._rangeRequestReaders.push(rangeReader); 17725 return rangeReader; 17726 } 17727 }, { 17728 key: 'cancelAllRequests', 17729 value: function cancelAllRequests(reason) { 17730 if (this._fullRequest) { 17731 this._fullRequest.cancel(reason); 17732 } 17733 var readers = this._rangeRequestReaders.slice(0); 17734 readers.forEach(function (reader) { 17735 reader.cancel(reason); 17736 }); 17737 } 17738 }]); 17739 17740 return PDFNodeStream; 17741}(); 17742 17743var BaseFullReader = function () { 17744 function BaseFullReader(stream) { 17745 _classCallCheck(this, BaseFullReader); 17746 17747 this._url = stream.url; 17748 this._done = false; 17749 this._storedError = null; 17750 this.onProgress = null; 17751 var source = stream.source; 17752 this._contentLength = source.length; 17753 this._loaded = 0; 17754 this._filename = null; 17755 this._disableRange = source.disableRange || false; 17756 this._rangeChunkSize = source.rangeChunkSize; 17757 if (!this._rangeChunkSize && !this._disableRange) { 17758 this._disableRange = true; 17759 } 17760 this._isStreamingSupported = !source.disableStream; 17761 this._isRangeSupported = !source.disableRange; 17762 this._readableStream = null; 17763 this._readCapability = (0, _util.createPromiseCapability)(); 17764 this._headersCapability = (0, _util.createPromiseCapability)(); 17765 } 17766 17767 _createClass(BaseFullReader, [{ 17768 key: 'read', 17769 value: function () { 17770 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 17771 var chunk, buffer; 17772 return _regenerator2.default.wrap(function _callee$(_context) { 17773 while (1) { 17774 switch (_context.prev = _context.next) { 17775 case 0: 17776 _context.next = 2; 17777 return this._readCapability.promise; 17778 17779 case 2: 17780 if (!this._done) { 17781 _context.next = 4; 17782 break; 17783 } 17784 17785 return _context.abrupt('return', { 17786 value: undefined, 17787 done: true 17788 }); 17789 17790 case 4: 17791 if (!this._storedError) { 17792 _context.next = 6; 17793 break; 17794 } 17795 17796 throw this._storedError; 17797 17798 case 6: 17799 chunk = this._readableStream.read(); 17800 17801 if (!(chunk === null)) { 17802 _context.next = 10; 17803 break; 17804 } 17805 17806 this._readCapability = (0, _util.createPromiseCapability)(); 17807 return _context.abrupt('return', this.read()); 17808 17809 case 10: 17810 this._loaded += chunk.length; 17811 if (this.onProgress) { 17812 this.onProgress({ 17813 loaded: this._loaded, 17814 total: this._contentLength 17815 }); 17816 } 17817 buffer = new Uint8Array(chunk).buffer; 17818 return _context.abrupt('return', { 17819 value: buffer, 17820 done: false 17821 }); 17822 17823 case 14: 17824 case 'end': 17825 return _context.stop(); 17826 } 17827 } 17828 }, _callee, this); 17829 })); 17830 17831 function read() { 17832 return _ref.apply(this, arguments); 17833 } 17834 17835 return read; 17836 }() 17837 }, { 17838 key: 'cancel', 17839 value: function cancel(reason) { 17840 if (!this._readableStream) { 17841 this._error(reason); 17842 return; 17843 } 17844 this._readableStream.destroy(reason); 17845 } 17846 }, { 17847 key: '_error', 17848 value: function _error(reason) { 17849 this._storedError = reason; 17850 this._readCapability.resolve(); 17851 } 17852 }, { 17853 key: '_setReadableStream', 17854 value: function _setReadableStream(readableStream) { 17855 var _this = this; 17856 17857 this._readableStream = readableStream; 17858 readableStream.on('readable', function () { 17859 _this._readCapability.resolve(); 17860 }); 17861 readableStream.on('end', function () { 17862 readableStream.destroy(); 17863 _this._done = true; 17864 _this._readCapability.resolve(); 17865 }); 17866 readableStream.on('error', function (reason) { 17867 _this._error(reason); 17868 }); 17869 if (!this._isStreamingSupported && this._isRangeSupported) { 17870 this._error(new _util.AbortException('streaming is disabled')); 17871 } 17872 if (this._storedError) { 17873 this._readableStream.destroy(this._storedError); 17874 } 17875 } 17876 }, { 17877 key: 'headersReady', 17878 get: function get() { 17879 return this._headersCapability.promise; 17880 } 17881 }, { 17882 key: 'filename', 17883 get: function get() { 17884 return this._filename; 17885 } 17886 }, { 17887 key: 'contentLength', 17888 get: function get() { 17889 return this._contentLength; 17890 } 17891 }, { 17892 key: 'isRangeSupported', 17893 get: function get() { 17894 return this._isRangeSupported; 17895 } 17896 }, { 17897 key: 'isStreamingSupported', 17898 get: function get() { 17899 return this._isStreamingSupported; 17900 } 17901 }]); 17902 17903 return BaseFullReader; 17904}(); 17905 17906var BaseRangeReader = function () { 17907 function BaseRangeReader(stream) { 17908 _classCallCheck(this, BaseRangeReader); 17909 17910 this._url = stream.url; 17911 this._done = false;
17912 this._storedError = null; 17913 this.onProgress = null; 17914 this._loaded = 0; 17915 this._readableStream = null; 17916 this._readCapability = (0, _util.createPromiseCapability)(); 17917 var source = stream.source; 17918 this._isStreamingSupported = !source.disableStream; 17919 } 17920 17921 _createClass(BaseRangeReader, [{ 17922 key: 'read', 17923 value: function () { 17924 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 17925 var chunk, buffer; 17926 return _regenerator2.default.wrap(function _callee2$(_context2) { 17927 while (1) { 17928 switch (_context2.prev = _context2.next) { 17929 case 0: 17930 _context2.next = 2; 17931 return this._readCapability.promise; 17932 17933 case 2: 17934 if (!this._done) { 17935 _context2.next = 4; 17936 break; 17937 } 17938 17939 return _context2.abrupt('return', { 17940 value: undefined, 17941 done: true 17942 }); 17943 17944 case 4: 17945 if (!this._storedError) { 17946 _context2.next = 6; 17947 break; 17948 } 17949 17950 throw this._storedError; 17951 17952 case 6: 17953 chunk = this._readableStream.read(); 17954 17955 if (!(chunk === null)) { 17956 _context2.next = 10; 17957 break; 17958 } 17959 17960 this._readCapability = (0, _util.createPromiseCapability)(); 17961 return _context2.abrupt('return', this.read()); 17962 17963 case 10: 17964 this._loaded += chunk.length; 17965 if (this.onProgress) { 17966 this.onProgress({ loaded: this._loaded }); 17967 } 17968 buffer = new Uint8Array(chunk).buffer; 17969 return _context2.abrupt('return', { 17970 value: buffer, 17971 done: false 17972 }); 17973 17974 case 14: 17975 case 'end': 17976 return _context2.stop(); 17977 } 17978 } 17979 }, _callee2, this); 17980 })); 17981 17982 function read() { 17983 return _ref2.apply(this, arguments); 17984 } 17985 17986 return read; 17987 }() 17988 }, { 17989 key: 'cancel', 17990 value: function cancel(reason) { 17991 if (!this._readableStream) { 17992 this._error(reason); 17993 return; 17994 } 17995 this._readableStream.destroy(reason); 17996 } 17997 }, { 17998 key: '_error', 17999 value: function _error(reason) { 18000 this._storedError = reason; 18001 this._readCapability.resolve(); 18002 } 18003 }, { 18004 key: '_setReadableStream', 18005 value: function _setReadableStream(readableStream) { 18006 var _this2 = this; 18007 18008 this._readableStream = readableStream; 18009 readableStream.on('readable', function () { 18010 _this2._readCapability.resolve(); 18011 }); 18012 readableStream.on('end', function () { 18013 readableStream.destroy(); 18014 _this2._done = true; 18015 _this2._readCapability.resolve(); 18016 }); 18017 readableStream.on('error', function (reason) { 18018 _this2._error(reason); 18019 }); 18020 if (this._storedError) { 18021 this._readableStream.destroy(this._storedError); 18022 } 18023 } 18024 }, { 18025 key: 'isStreamingSupported', 18026 get: function get() { 18027 return this._isStreamingSupported; 18028 } 18029 }]); 18030 18031 return BaseRangeReader; 18032}(); 18033 18034function createRequestOptions(url, headers) { 18035 return { 18036 protocol: url.protocol, 18037 auth: url.auth, 18038 host: url.hostname, 18039 port: url.port, 18040 path: url.path, 18041 method: 'GET', 18042 headers: headers 18043 }; 18044} 18045 18046var PDFNodeStreamFullReader = function (_BaseFullReader) { 18047 _inherits(PDFNodeStreamFullReader, _BaseFullReader); 18048 18049 function PDFNodeStreamFullReader(stream) { 18050 _classCallCheck(this, PDFNodeStreamFullReader); 18051 18052 var _this3 = _possibleConstructorReturn(this, (PDFNodeStreamFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFullReader)).call(this, stream)); 18053 18054 var handleResponse = function handleResponse(response) { 18055 if (response.statusCode === 404) { 18056 var error = new _util.MissingPDFException('Missing PDF "' + _this3._url + '".'); 18057 _this3._storedError = error; 18058 _this3._headersCapability.reject(error); 18059 return; 18060 } 18061 _this3._headersCapability.resolve(); 18062 _this3._setReadableStream(response); 18063 var getResponseHeader = function getResponseHeader(name) { 18064 return _this3._readableStream.headers[name.toLowerCase()]; 18065 }; 18066 18067 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 18068 getResponseHeader: getResponseHeader, 18069 isHttp: stream.isHttp, 18070 rangeChunkSize: _this3._rangeChunkSize, 18071 disableRange: _this3._disableRange 18072 }), 18073 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 18074 suggestedLength = _validateRangeRequest.suggestedLength; 18075 18076 _this3._isRangeSupported = allowRangeRequests; 18077 _this3._contentLength = suggestedLength || _this3._contentLength; 18078 _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 18079 }; 18080 _this3._request = null; 18081 if (_this3._url.protocol === 'http:') { 18082 _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 18083 } else { 18084 _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); 18085 } 18086 _this3._request.on('error', function (reason) { 18087 _this3._storedError = reason; 18088 _this3._headersCapability.reject(reason); 18089 }); 18090 _this3._request.end(); 18091 return _this3; 18092 } 18093 18094 return PDFNodeStreamFullReader; 18095}(BaseFullReader); 18096 18097var PDFNodeStreamRangeReader = function (_BaseRangeReader) { 18098 _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); 18099 18100 function PDFNodeStreamRangeReader(stream, start, end) { 18101 _classCallCheck(this, PDFNodeStreamRangeReader); 18102 18103 var _this4 = _possibleConstructorReturn(this, (PDFNodeStreamRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamRangeReader)).call(this, stream)); 18104 18105 _this4._httpHeaders = {}; 18106 for (var property in stream.httpHeaders) { 18107 var value = stream.httpHeaders[property]; 18108 if (typeof value === 'undefined') { 18109 continue; 18110 } 18111 _this4._httpHeaders[property] = value; 18112 } 18113 _this4._httpHeaders['Range'] = 'bytes=' + start + '-' + (end - 1); 18114 var handleResponse = function handleResponse(response) { 18115 if (response.statusCode === 404) { 18116 var error = new _util.MissingPDFException('Missing PDF "' + _this4._url + '".'); 18117 _this4._storedError = error; 18118 return; 18119 } 18120 _this4._setReadableStream(response); 18121 }; 18122 _this4._request = null; 18123 if (_this4._url.protocol === 'http:') { 18124 _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 18125 } else { 18126 _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); 18127 } 18128 _this4._request.on('error', function (reason) { 18129 _this4._storedError = reason; 18130 }); 18131 _this4._request.end(); 18132 return _this4; 18133 } 18134 18135 return PDFNodeStreamRangeReader; 18136}(BaseRangeReader); 18137 18138var PDFNodeStreamFsFullReader = function (_BaseFullReader2) { 18139 _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); 18140 18141 function PDFNodeStreamFsFullReader(stream) { 18142 _classCallCheck(this, PDFNodeStreamFsFullReader); 18143 18144 var _this5 = _possibleConstructorReturn(this, (PDFNodeStreamFsFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsFullReader)).call(this, stream)); 18145 18146 var path = decodeURIComponent(_this5._url.path); 18147 if (fileUriRegex.test(_this5._url.href)) { 18148 path = path.replace(/^\//, ''); 18149 } 18150 fs.lstat(path, function (error, stat) { 18151 if (error) { 18152 if (error.code === 'ENOENT') { 18153 error = new _util.MissingPDFException('Missing PDF "' + path + '".'); 18154 } 18155 _this5._storedError = error; 18156 _this5._headersCapability.reject(error); 18157 return; 18158 } 18159 _this5._contentLength = stat.size; 18160 _this5._setReadableStream(fs.createReadStream(path)); 18161 _this5._headersCapability.resolve(); 18162 }); 18163 return _this5; 18164 } 18165 18166 return PDFNodeStreamFsFullReader; 18167}(BaseFullReader); 18168 18169var PDFNodeStreamFsRangeReader = function (_BaseRangeReader2) { 18170 _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); 18171 18172 function PDFNodeStreamFsRangeReader(stream, start, end) { 18173 _classCallCheck(this, PDFNodeStreamFsRangeReader); 18174 18175 var _this6 = _possibleConstructorReturn(this, (PDFNodeStreamFsRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsRangeReader)).call(this, stream)); 18176 18177 var path = decodeURIComponent(_this6._url.path); 18178 if (fileUriRegex.test(_this6._url.href)) { 18179 path = path.replace(/^\//, ''); 18180 } 18181 _this6._setReadableStream(fs.createReadStream(path, { 18182 start: start, 18183 end: end - 1 18184 })); 18185 return _this6; 18186 } 18187 18188 return PDFNodeStreamFsRangeReader; 18189}(BaseRangeReader); 18190 18191exports.PDFNodeStream = PDFNodeStream; 18192 18193/***/ }), 18194/* 149 */ 18195/***/ (function(module, exports, __w_pdfjs_require__) { 18196 18197"use strict"; 18198 18199 18200Object.defineProperty(exports, "__esModule", { 18201 value: true 18202});
18203exports.validateResponseStatus = exports.validateRangeRequestCapabilities = exports.extractFilenameFromHeader = exports.createResponseStatusError = undefined; 18204 18205var _util = __w_pdfjs_require__(1); 18206 18207var _content_disposition = __w_pdfjs_require__(150); 18208 18209function validateRangeRequestCapabilities(_ref) { 18210 var getResponseHeader = _ref.getResponseHeader, 18211 isHttp = _ref.isHttp, 18212 rangeChunkSize = _ref.rangeChunkSize, 18213 disableRange = _ref.disableRange; 18214 18215 (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); 18216 var returnValues = { 18217 allowRangeRequests: false, 18218 suggestedLength: undefined 18219 }; 18220 var length = parseInt(getResponseHeader('Content-Length'), 10); 18221 if (!Number.isInteger(length)) { 18222 return returnValues; 18223 } 18224 returnValues.suggestedLength = length; 18225 if (length <= 2 * rangeChunkSize) { 18226 return returnValues; 18227 } 18228 if (disableRange || !isHttp) { 18229 return returnValues; 18230 } 18231 if (getResponseHeader('Accept-Ranges') !== 'bytes') { 18232 return returnValues; 18233 } 18234 var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; 18235 if (contentEncoding !== 'identity') { 18236 return returnValues; 18237 } 18238 returnValues.allowRangeRequests = true; 18239 return returnValues; 18240} 18241function extractFilenameFromHeader(getResponseHeader) { 18242 var contentDisposition = getResponseHeader('Content-Disposition'); 18243 if (contentDisposition) { 18244 var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); 18245 if (/\.pdf$/i.test(filename)) { 18246 return filename; 18247 } 18248 } 18249 return null; 18250} 18251function createResponseStatusError(status, url) { 18252 if (status === 404 || status === 0 && /^file:/.test(url)) { 18253 return new _util.MissingPDFException('Missing PDF "' + url + '".'); 18254 } 18255 return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); 18256} 18257function validateResponseStatus(status) { 18258 return status === 200 || status === 206; 18259} 18260exports.createResponseStatusError = createResponseStatusError; 18261exports.extractFilenameFromHeader = extractFilenameFromHeader; 18262exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; 18263exports.validateResponseStatus = validateResponseStatus; 18264 18265/***/ }), 18266/* 150 */ 18267/***/ (function(module, exports, __w_pdfjs_require__) { 18268 18269"use strict"; 18270 18271 18272Object.defineProperty(exports, "__esModule", { 18273 value: true 18274}); 18275 18276var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 18277 18278function getFilenameFromContentDispositionHeader(contentDisposition) { 18279 var needsEncodingFixup = true; 18280 var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); 18281 if (tmp) { 18282 tmp = tmp[1]; 18283 var filename = rfc2616unquote(tmp); 18284 filename = unescape(filename); 18285 filename = rfc5987decode(filename); 18286 filename = rfc2047decode(filename); 18287 return fixupEncoding(filename); 18288 } 18289 tmp = rfc2231getparam(contentDisposition); 18290 if (tmp) { 18291 var _filename = rfc2047decode(tmp); 18292 return fixupEncoding(_filename); 18293 } 18294 tmp = toParamRegExp('filename', 'i').exec(contentDisposition); 18295 if (tmp) { 18296 tmp = tmp[1]; 18297 var _filename2 = rfc2616unquote(tmp); 18298 _filename2 = rfc2047decode(_filename2); 18299 return fixupEncoding(_filename2); 18300 } 18301 function toParamRegExp(attributePattern, flags) { 18302 return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); 18303 } 18304 function textdecode(encoding, value) { 18305 if (encoding) { 18306 if (!/^[\x00-\xFF]+$/.test(value)) { 18307 return value; 18308 }
18309 try { 18310 var decoder = new TextDecoder(encoding, { fatal: true }); 18311 var bytes = new Array(value.length); 18312 for (var i = 0; i < value.length; ++i) { 18313 bytes[i] = value.charCodeAt(i); 18314 } 18315 value = decoder.decode(new Uint8Array(bytes)); 18316 needsEncodingFixup = false; 18317 } catch (e) { 18318 if (/^utf-?8$/i.test(encoding)) { 18319 try { 18320 value = decodeURIComponent(escape(value)); 18321 needsEncodingFixup = false; 18322 } catch (err) {} 18323 } 18324 } 18325 } 18326 return value; 18327 } 18328 function fixupEncoding(value) { 18329 if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { 18330 value = textdecode('utf-8', value); 18331 if (needsEncodingFixup) { 18332 value = textdecode('iso-8859-1', value); 18333 } 18334 } 18335 return value; 18336 } 18337 function rfc2231getparam(contentDisposition) { 18338 var matches = [], 18339 match = void 0; 18340 var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); 18341 while ((match = iter.exec(contentDisposition)) !== null) { 18342 var _match = match, 18343 _match2 = _slicedToArray(_match, 4), 18344 n = _match2[1], 18345 quot = _match2[2], 18346 part = _match2[3]; 18347 18348 n = parseInt(n, 10); 18349 if (n in matches) { 18350 if (n === 0) { 18351 break; 18352 } 18353 continue; 18354 } 18355 matches[n] = [quot, part]; 18356 } 18357 var parts = []; 18358 for (var _n = 0; _n < matches.length; ++_n) { 18359 if (!(_n in matches)) { 18360 break; 18361 } 18362 18363 var _matches$_n = _slicedToArray(matches[_n], 2), 18364 _quot = _matches$_n[0], 18365 _part = _matches$_n[1]; 18366 18367 _part = rfc2616unquote(_part); 18368 if (_quot) { 18369 _part = unescape(_part); 18370 if (_n === 0) { 18371 _part = rfc5987decode(_part); 18372 } 18373 } 18374 parts.push(_part); 18375 } 18376 return parts.join(''); 18377 } 18378 function rfc2616unquote(value) { 18379 if (value.charAt(0) === '"') { 18380 var parts = value.slice(1).split('\\"'); 18381 for (var i = 0; i < parts.length; ++i) { 18382 var quotindex = parts[i].indexOf('"'); 18383 if (quotindex !== -1) { 18384 parts[i] = parts[i].slice(0, quotindex); 18385 parts.length = i + 1; 18386 } 18387 parts[i] = parts[i].replace(/\\(.)/g, '$1'); 18388 } 18389 value = parts.join('"'); 18390 } 18391 return value; 18392 } 18393 function rfc5987decode(extvalue) { 18394 var encodingend = extvalue.indexOf('\''); 18395 if (encodingend === -1) { 18396 return extvalue; 18397 } 18398 var encoding = extvalue.slice(0, encodingend); 18399 var langvalue = extvalue.slice(encodingend + 1); 18400 var value = langvalue.replace(/^[^']*'/, ''); 18401 return textdecode(encoding, value); 18402 } 18403 function rfc2047decode(value) { 18404 if (value.slice(0, 2) !== '=?' || /[\x00-\x19\x80-\xff]/.test(value)) { 18405 return value; 18406 } 18407 return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { 18408 if (encoding === 'q' || encoding === 'Q') { 18409 text = text.replace(/_/g, ' '); 18410 text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { 18411 return String.fromCharCode(parseInt(hex, 16)); 18412 }); 18413 return textdecode(charset, text); 18414 } 18415 try { 18416 text = atob(text); 18417 } catch (e) {} 18418 return textdecode(charset, text); 18419 }); 18420 } 18421 return ''; 18422} 18423exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; 18424 18425/***/ }), 18426/* 151 */ 18427/***/ (function(module, exports, __w_pdfjs_require__) { 18428 18429"use strict"; 18430 18431 18432Object.defineProperty(exports, "__esModule", { 18433 value: true 18434}); 18435exports.PDFFetchStream = undefined; 18436 18437var _regenerator = __w_pdfjs_require__(137); 18438 18439var _regenerator2 = _interopRequireDefault(_regenerator); 18440 18441var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 18442 18443var _util = __w_pdfjs_require__(1); 18444 18445var _network_utils = __w_pdfjs_require__(149); 18446 18447function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 18448 18449function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
18449y { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 18450 18451function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 18452 18453function createFetchOptions(headers, withCredentials, abortController) { 18454 return { 18455 method: 'GET', 18456 headers: headers, 18457 signal: abortController && abortController.signal, 18458 mode: 'cors', 18459 credentials: withCredentials ? 'include' : 'same-origin', 18460 redirect: 'follow' 18461 }; 18462} 18463 18464var PDFFetchStream = function () { 18465 function PDFFetchStream(source) { 18466 _classCallCheck(this, PDFFetchStream); 18467 18468 this.source = source; 18469 this.isHttp = /^https?:/i.test(source.url); 18470 this.httpHeaders = this.isHttp && source.httpHeaders || {}; 18471 this._fullRequestReader = null; 18472 this._rangeRequestReaders = []; 18473 } 18474 18475 _createClass(PDFFetchStream, [{ 18476 key: 'getFullReader', 18477 value: function getFullReader() { 18478 (0, _util.assert)(!this._fullRequestReader); 18479 this._fullRequestReader = new PDFFetchStreamReader(this); 18480 return this._fullRequestReader; 18481 } 18482 }, { 18483 key: 'getRangeReader', 18484 value: function getRangeReader(begin, end) { 18485 var reader = new PDFFetchStreamRangeReader(this, begin, end); 18486 this._rangeRequestReaders.push(reader); 18487 return reader; 18488 } 18489 }, { 18490 key: 'cancelAllRequests', 18491 value: function cancelAllRequests(reason) { 18492 if (this._fullRequestReader) { 18493 this._fullRequestReader.cancel(reason); 18494 } 18495 var readers = this._rangeRequestReaders.slice(0); 18496 readers.forEach(function (reader) { 18497 reader.cancel(reason); 18498 }); 18499 } 18500 }]); 18501 18502 return PDFFetchStream; 18503}(); 18504 18505var PDFFetchStreamReader = function () { 18506 function PDFFetchStreamReader(stream) { 18507 var _this = this; 18508 18509 _classCallCheck(this, PDFFetchStreamReader); 18510 18511 this._stream = stream; 18512 this._reader = null; 18513 this._loaded = 0; 18514 this._filename = null; 18515 var source = stream.source; 18516 this._withCredentials = source.withCredentials; 18517 this._contentLength = source.length; 18518 this._headersCapability = (0, _util.createPromiseCapability)(); 18519 this._disableRange = source.disableRange || false; 18520 this._rangeChunkSize = source.rangeChunkSize; 18521 if (!this._rangeChunkSize && !this._disableRange) { 18522 this._disableRange = true; 18523 } 18524 if (typeof AbortController !== 'undefined') { 18525 this._abortController = new AbortController(); 18526 } 18527 this._isStreamingSupported = !source.disableStream; 18528 this._isRangeSupported = !source.disableRange; 18529 this._headers = new Headers(); 18530 for (var property in this._stream.httpHeaders) { 18531 var value = this._stream.httpHeaders[property]; 18532 if (typeof value === 'undefined') { 18533 continue; 18534 } 18535 this._headers.append(property, value); 18536 } 18537 var url = source.url; 18538 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 18539 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 18540 throw (0, _network_utils.createResponseStatusError)(response.status, url); 18541 } 18542 _this._reader = response.body.getReader(); 18543 _this._headersCapability.resolve(); 18544 var getResponseHeader = function getResponseHeader(name) { 18545 return response.headers.get(name); 18546 }; 18547 18548 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 18549 getResponseHeader: getResponseHeader, 18550 isHttp: _this._stream.isHttp, 18551 rangeChunkSize: _this._rangeChunkSize, 18552 disableRange: _this._disableRange 18553 }), 18554 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 18555 suggestedLength = _validateRangeRequest.suggestedLength; 18556 18557 _this._isRangeSupported = allowRangeRequests; 18558 _this._contentLength = suggestedLength || _this._contentLength; 18559 _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 18560 if (!_this._isStreamingSupported && _this._isRangeSupported) { 18561 _this.cancel(new _util.AbortException('streaming is disabled')); 18562 } 18563 }).catch(this._headersCapability.reject); 18564 this.onProgress = null; 18565 } 18566 18567 _createClass(PDFFetchStreamReader, [{ 18568 key: 'read', 18569 value: function () { 18570 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 18571 var _ref2, value, done, buffer; 18572 18573 return _regenerator2.default.wrap(function _callee$(_context) { 18574 while (1) { 18575 switch (_context.prev = _context.next) { 18576 case 0: 18577 _context.next = 2; 18578 return this._headersCapability.promise; 18579 18580 case 2: 18581 _context.next = 4; 18582 return this._reader.read(); 18583 18584 case 4: 18585 _ref2 = _context.sent; 18586 value = _ref2.value; 18587 done = _ref2.done; 18588 18589 if (!done) { 18590 _context.next = 9; 18591 break; 18592 } 18593 18594 return _context.abrupt('return', { 18595 value: value, 18596 done: done 18597 }); 18598 18599 case 9: 18600 this._loaded += value.byteLength; 18601 if (this.onProgress) { 18602 this.onProgress({ 18603 loaded: this._loaded, 18604 total: this._contentLength 18605 }); 18606 } 18607 buffer = new Uint8Array(value).buffer; 18608 return _context.abrupt('return', { 18609 value: buffer, 18610 done: false 18611 }); 18612 18613 case 13: 18614 case 'end': 18615 return _context.stop(); 18616 } 18617 } 18618 }, _callee, this); 18619 })); 18620 18621 function read() { 18622 return _ref.apply(this, arguments); 18623 } 18624 18625 return read; 18626 }() 18627 }, { 18628 key: 'cancel', 18629 value: function cancel(reason) { 18630 if (this._reader) { 18631 this._reader.cancel(reason); 18632 } 18633 if (this._abortController) { 18634 this._abortController.abort(); 18635 } 18636 } 18637 }, { 18638 key: 'headersReady', 18639 get: function get() { 18640 return this._headersCapability.promise; 18641 } 18642 }, { 18643 key: 'filename', 18644 get: function get() { 18645 return this._filename; 18646 } 18647 }, { 18648 key: 'contentLength', 18649 get: function get() { 18650 return this._contentLength; 18651 } 18652 }, { 18653 key: 'isRangeSupported', 18654 get: function get() { 18655 return this._isRangeSupported; 18656 } 18657 }, { 18658 key: 'isStreamingSupported', 18659 get: function get() { 18660 return this._isStreamingSupported; 18661 } 18662 }]); 18663 18664 return PDFFetchStreamReader; 18665}(); 18666 18667var PDFFetchStreamRangeReader = function () { 18668 function PDFFetchStreamRangeReader(stream, begin, end) { 18669 var _this2 = this; 18670 18671 _classCallCheck(this, PDFFetchStreamRangeReader); 18672 18673 this._stream = stream; 18674 this._reader = null; 18675 this._loaded = 0; 18676 var source = stream.source; 18677 this._withCredentials = source.withCredentials; 18678 this._readCapability = (0, _util.createPromiseCapability)(); 18679 this._isStreamingSupported = !source.disableStream; 18680 if (typeof AbortController !== 'undefined') { 18681 this._abortController = new AbortController(); 18682 } 18683 this._headers = new Headers(); 18684 for (var property in this._stream.httpHeaders) { 18685 var value = this._stream.httpHeaders[property]; 18686 if (typeof value === 'undefined') { 18687 continue; 18688 } 18689 this._headers.append(property, value); 18690 } 18691 var rangeStr = begin + '-' + (end - 1); 18692 this._headers.append('Range', 'bytes=' + rangeStr); 18693 var url = source.url; 18694 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { 18695 if (!(0, _network_utils.validateResponseStatus)(response.status)) { 18696 throw (0, _network_utils.createResponseStatusError)(response.status, url); 18697 } 18698 _this2._readCapability.resolve(); 18699 _this2._reader = response.body.getReader(); 18700 }); 18701 this.onProgress = null; 18702 } 18703 18704 _createClass(PDFFetchStreamRangeReader, [{ 18705 key: 'read', 18706 value: function () { 18707 var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 18708 var _ref4, value, done, buffer; 18709 18710 return _regenerator2.default.wrap(function _callee2$(_context2) { 18711 while (1) { 18712 switch (_context2.prev = _context2.next) { 18713 case 0: 18714 _context2.next = 2; 18715 return this._readCapability.promise; 18716 18717 case 2: 18718 _context2.next = 4; 18719 return this._reader.read(); 18720 18721 case 4: 18722 _ref4 = _context2.sent; 18723 value = _ref4.value; 18724 done = _ref4.done; 18725 18726 if (!done) { 18727 _context2.next = 9; 18728 break; 18729 } 18730 18731 return _context2.abrupt('return', { 18732 value: value, 18733 done: done 18734 }); 18735 18736 case 9: 18737 this._loaded += value.byteLength; 18738 if (this.onProgress) { 18739 this.onProgress({ loaded: this._loaded }); 18740 } 18741 buffer = new Uint8Array(value).buffer; 18742 return _context2.abrupt('return', { 18743 value: buffer, 18744 done: false 18745 }); 18746 18747 case 13: 18748 case 'end': 18749 return _context2.stop(); 18750 } 18751 } 18752 }, _callee2, this); 18753 })); 18754 18755 function read() { 18756 return _ref3.apply(this, arguments); 18757 } 18758 18759 return read; 18760 }() 18761 }, { 18762 key: 'cancel', 18763 value: function cancel(reason) { 18764 if (this._reader) { 18765 this._reader.cancel(reason); 18766 } 18767 if (this._abortController) { 18768 this._abortController.abort(); 18769 } 18770 } 18771 }, { 18772 key: 'isStreamingSupported', 18773 get: function get() { 18774 return this._isStreamingSupported; 18775 } 18776 }]); 18777 18778 return PDFFetchStreamRangeReader; 18779}(); 18780 18781exports.PDFFetchStream = PDFFetchStream; 18782 18783/***/ }), 18784/* 152 */ 18785/***/ (function(module, exports, __w_pdfjs_require__) { 18786 18787"use strict"; 18788 18789 18790Object.defineProperty(exports, "__esModule", { 18791 value: true 18792}); 18793exports.NetworkManager = exports.PDFNetworkStream = undefined; 18794 18795var _regenerator = __w_pdfjs_require__(137); 18796 18797var _regenerator2 = _interopRequireDefault(_regenerator); 18798 18799var _util = __w_pdfjs_require__(1); 18800 18801var _network_utils = __w_pdfjs_require__(149); 18802 18803var _global_scope = __w_pdfjs_require__(3); 18804 18805var _global_scope2 = _interopRequireDefault(_global_scope); 18806 18807function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 18808 18809function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
18809y { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } 18810 18811; 18812var OK_RESPONSE = 200; 18813var PARTIAL_CONTENT_RESPONSE = 206; 18814function NetworkManager(url, args) { 18815 this.url = url; 18816 args = args || {}; 18817 this.isHttp = /^https?:/i.test(url); 18818 this.httpHeaders = this.isHttp && args.httpHeaders || {}; 18819 this.withCredentials = args.withCredentials || false; 18820 this.getXhr = args.getXhr || function NetworkManager_getXhr() { 18821 return new XMLHttpRequest(); 18822 }; 18823 this.currXhrId = 0; 18824 this.pendingRequests = Object.create(null); 18825 this.loadedRequests = Object.create(null); 18826} 18827function getArrayBuffer(xhr) { 18828 var data = xhr.response; 18829 if (typeof data !== 'string') { 18830 return data; 18831 } 18832 var array = (0, _util.stringToBytes)(data); 18833 return array.buffer; 18834} 18835var supportsMozChunked = function supportsMozChunkedClosure() { 18836 try { 18837 var x = new XMLHttpRequest(); 18838 x.open('GET', _global_scope2.default.location.href); 18839 x.responseType = 'moz-chunked-arraybuffer'; 18840 return x.responseType === 'moz-chunked-arraybuffer'; 18841 } catch (e) { 18842 return false; 18843 } 18844}(); 18845NetworkManager.prototype = { 18846 requestRange: function NetworkManager_requestRange(begin, end, listeners) { 18847 var args = { 18848 begin: begin, 18849 end: end 18850 }; 18851 for (var prop in listeners) { 18852 args[prop] = listeners[prop]; 18853 } 18854 return this.request(args); 18855 }, 18856 requestFull: function NetworkManager_requestFull(listeners) { 18857 return this.request(listeners); 18858 }, 18859 request: function NetworkManager_request(args) { 18860 var xhr = this.getXhr(); 18861 var xhrId = this.currXhrId++; 18862 var pendingRequest = this.pendingRequests[xhrId] = { xhr: xhr }; 18863 xhr.open('GET', this.url); 18864 xhr.withCredentials = this.withCredentials; 18865 for (var property in this.httpHeaders) { 18866 var value = this.httpHeaders[property]; 18867 if (typeof value === 'undefined') { 18868 continue; 18869 } 18870 xhr.setRequestHeader(property, value); 18871 } 18872 if (this.isHttp && 'begin' in args && 'end' in args) { 18873 var rangeStr = args.begin + '-' + (args.end - 1); 18874 xhr.setRequestHeader('Range', 'bytes=' + rangeStr); 18875 pendingRequest.expectedStatus = 206; 18876 } else { 18877 pendingRequest.expectedStatus = 200; 18878 } 18879 var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData; 18880 if (useMozChunkedLoading) { 18881 xhr.responseType = 'moz-chunked-arraybuffer'; 18882 pendingRequest.onProgressiveData = args.onProgressiveData; 18883 pendingRequest.mozChunked = true; 18884 } else { 18885 xhr.responseType = 'arraybuffer'; 18886 } 18887 if (args.onError) { 18888 xhr.onerror = function (evt) { 18889 args.onError(xhr.status); 18890 }; 18891 } 18892 xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); 18893 xhr.onprogress = this.onProgress.bind(this, xhrId); 18894 pendingRequest.onHeadersReceived = args.onHeadersReceived; 18895 pendingRequest.onDone = args.onDone; 18896 pendingRequest.onError = args.onError; 18897 pendingRequest.onProgress = args.onProgress; 18898 xhr.send(null); 18899 return xhrId; 18900 }, 18901 onProgress: function NetworkManager_onProgress(xhrId, evt) { 18902 var pendingRequest = this.pendingRequests[xhrId]; 18903 if (!pendingRequest) { 18904 return; 18905 } 18906 if (pendingRequest.mozChunked) { 18907 var chunk = getArrayBuffer(pendingRequest.xhr); 18908 pendingRequest.onProgressiveData(chunk); 18909 } 18910 var onProgress = pendingRequest.onProgress; 18911 if (onProgress) { 18912 onProgress(evt); 18913 } 18914 }, 18915 onStateChange: function NetworkManager_onStateChange(xhrId, evt) { 18916 var pendingRequest = this.pendingRequests[xhrId]; 18917 if (!pendingRequest) { 18918 return; 18919 } 18920 var xhr = pendingRequest.xhr; 18921 if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { 18922 pendingRequest.onHeadersReceived(); 18923 delete pendingRequest.onHeadersReceived; 18924 } 18925 if (xhr.readyState !== 4) { 18926 return; 18927 } 18928 if (!(xhrId in this.pendingRequests)) { 18929 return; 18930 } 18931 delete this.pendingRequests[xhrId]; 18932 if (xhr.status === 0 && this.isHttp) { 18933 if (pendingRequest.onError) { 18934 pendingRequest.onError(xhr.status); 18935 } 18936 return; 18937 } 18938 var xhrStatus = xhr.status || OK_RESPONSE; 18939 var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
18940 if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { 18941 if (pendingRequest.onError) { 18942 pendingRequest.onError(xhr.status); 18943 } 18944 return; 18945 } 18946 this.loadedRequests[xhrId] = true; 18947 var chunk = getArrayBuffer(xhr); 18948 if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { 18949 var rangeHeader = xhr.getResponseHeader('Content-Range'); 18950 var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); 18951 var begin = parseInt(matches[1], 10); 18952 pendingRequest.onDone({ 18953 begin: begin, 18954 chunk: chunk 18955 }); 18956 } else if (pendingRequest.onProgressiveData) { 18957 pendingRequest.onDone(null); 18958 } else if (chunk) { 18959 pendingRequest.onDone({ 18960 begin: 0, 18961 chunk: chunk 18962 }); 18963 } else if (pendingRequest.onError) { 18964 pendingRequest.onError(xhr.status); 18965 } 18966 }, 18967 hasPendingRequests: function NetworkManager_hasPendingRequests() { 18968 for (var xhrId in this.pendingRequests) { 18969 return true; 18970 } 18971 return false; 18972 }, 18973 getRequestXhr: function NetworkManager_getXhr(xhrId) { 18974 return this.pendingRequests[xhrId].xhr; 18975 }, 18976 isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) { 18977 return !!this.pendingRequests[xhrId].onProgressiveData; 18978 }, 18979 isPendingRequest: function NetworkManager_isPendingRequest(xhrId) { 18980 return xhrId in this.pendingRequests; 18981 }, 18982 isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) { 18983 return xhrId in this.loadedRequests; 18984 }, 18985 abortAllRequests: function NetworkManager_abortAllRequests() { 18986 for (var xhrId in this.pendingRequests) { 18987 this.abortRequest(xhrId | 0); 18988 } 18989 }, 18990 abortRequest: function NetworkManager_abortRequest(xhrId) { 18991 var xhr = this.pendingRequests[xhrId].xhr; 18992 delete this.pendingRequests[xhrId]; 18993 xhr.abort(); 18994 } 18995}; 18996function PDFNetworkStream(source) { 18997 this._source = source; 18998 this._manager = new NetworkManager(source.url, { 18999 httpHeaders: source.httpHeaders, 19000 withCredentials: source.withCredentials 19001 }); 19002 this._rangeChunkSize = source.rangeChunkSize; 19003 this._fullRequestReader = null; 19004 this._rangeRequestReaders = []; 19005} 19006PDFNetworkStream.prototype = { 19007 _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) { 19008 var i = this._rangeRequestReaders.indexOf(reader); 19009 if (i >= 0) { 19010 this._rangeRequestReaders.splice(i, 1); 19011 } 19012 }, 19013 getFullReader: function PDFNetworkStream_getFullReader() { 19014 (0, _util.assert)(!this._fullRequestReader); 19015 this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); 19016 return this._fullRequestReader; 19017 }, 19018 getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) { 19019 var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); 19020 reader.onClosed = this._onRangeRequestReaderClosed.bind(this); 19021 this._rangeRequestReaders.push(reader); 19022 return reader; 19023 }, 19024 cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) { 19025 if (this._fullRequestReader) { 19026 this._fullRequestReader.cancel(reason); 19027 } 19028 var readers = this._rangeRequestReaders.slice(0); 19029 readers.forEach(function (reader) { 19030 reader.cancel(reason); 19031 }); 19032 } 19033}; 19034function PDFNetworkStreamFullRequestReader(manager, source) { 19035 this._manager = manager; 19036 var args = { 19037 onHeadersReceived: this._onHeadersReceived.bind(this), 19038 onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this), 19039 onDone: this._onDone.bind(this), 19040 onError: this._onError.bind(this), 19041 onProgress: this._onProgress.bind(this) 19042 }; 19043 this._url = source.url; 19044 this._fullRequestId = manager.requestFull(args); 19045 this._headersReceivedCapability = (0, _util.createPromiseCapability)(); 19046 this._disableRange = source.disableRange || false; 19047 this._contentLength = source.length; 19048 this._rangeChunkSize = source.rangeChunkSize; 19049 if (!this._rangeChunkSize && !this._disableRange) { 19050 this._disableRange = true; 19051 } 19052 this._isStreamingSupported = false; 19053 this._isRangeSupported = false; 19054 this._cachedChunks = []; 19055 this._requests = []; 19056 this._done = false;
19057 this._storedError = undefined; 19058 this._filename = null; 19059 this.onProgress = null; 19060} 19061PDFNetworkStreamFullRequestReader.prototype = { 19062 _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() { 19063 var fullRequestXhrId = this._fullRequestId; 19064 var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); 19065 var getResponseHeader = function getResponseHeader(name) { 19066 return fullRequestXhr.getResponseHeader(name); 19067 }; 19068 19069 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ 19070 getResponseHeader: getResponseHeader, 19071 isHttp: this._manager.isHttp, 19072 rangeChunkSize: this._rangeChunkSize, 19073 disableRange: this._disableRange 19074 }), 19075 allowRangeRequests = _validateRangeRequest.allowRangeRequests, 19076 suggestedLength = _validateRangeRequest.suggestedLength; 19077 19078 if (allowRangeRequests) { 19079 this._isRangeSupported = true; 19080 } 19081 this._contentLength = suggestedLength || this._contentLength; 19082 this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); 19083 var networkManager = this._manager; 19084 if (networkManager.isStreamingRequest(fullRequestXhrId)) { 19085 this._isStreamingSupported = true; 19086 } else if (this._isRangeSupported) { 19087 networkManager.abortRequest(fullRequestXhrId); 19088 } 19089 this._headersReceivedCapability.resolve(); 19090 }, 19091 _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) { 19092 if (this._requests.length > 0) { 19093 var requestCapability = this._requests.shift(); 19094 requestCapability.resolve({ 19095 value: chunk, 19096 done: false 19097 }); 19098 } else { 19099 this._cachedChunks.push(chunk); 19100 } 19101 }, 19102 _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) { 19103 if (args) { 19104 this._onProgressiveData(args.chunk); 19105 } 19106 this._done = true; 19107 if (this._cachedChunks.length > 0) { 19108 return; 19109 } 19110 this._requests.forEach(function (requestCapability) { 19111 requestCapability.resolve({ 19112 value: undefined, 19113 done: true 19114 }); 19115 }); 19116 this._requests = []; 19117 }, 19118 _onError: function PDFNetworkStreamFullRequestReader_onError(status) { 19119 var url = this._url; 19120 var exception = (0, _network_utils.createResponseStatusError)(status, url); 19121 this._storedError = exception; 19122 this._headersReceivedCapability.reject(exception); 19123 this._requests.forEach(function (requestCapability) { 19124 requestCapability.reject(exception); 19125 }); 19126 this._requests = []; 19127 this._cachedChunks = []; 19128 }, 19129 _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) { 19130 if (this.onProgress) { 19131 this.onProgress({ 19132 loaded: data.loaded, 19133 total: data.lengthComputable ? data.total : this._contentLength 19134 }); 19135 } 19136 }, 19137 get filename() { 19138 return this._filename; 19139 }, 19140 get isRangeSupported() { 19141 return this._isRangeSupported; 19142 }, 19143 get isStreamingSupported() { 19144 return this._isStreamingSupported; 19145 }, 19146 get contentLength() { 19147 return this._contentLength; 19148 }, 19149 get headersReady() { 19150 return this._headersReceivedCapability.promise; 19151 }, 19152 read: function () { 19153 var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() { 19154 var chunk, requestCapability; 19155 return _regenerator2.default.wrap(function _callee$(_context) { 19156 while (1) { 19157 switch (_context.prev = _context.next) { 19158 case 0: 19159 if (!this._storedError) { 19160 _context.next = 2; 19161 break; 19162 } 19163 19164 throw this._storedError; 19165 19166 case 2: 19167 if (!(this._cachedChunks.length > 0)) { 19168 _context.next = 5; 19169 break; 19170 } 19171 19172 chunk = this._cachedChunks.shift(); 19173 return _context.abrupt('return', { 19174 value: chunk, 19175 done: false 19176 }); 19177 19178 case 5: 19179 if (!this._done) { 19180 _context.next = 7; 19181 break; 19182 } 19183 19184 return _context.abrupt('return', { 19185 value: undefined, 19186 done: true 19187 }); 19188 19189 case 7: 19190 requestCapability = (0, _util.createPromiseCapability)(); 19191 19192 this._requests.push(requestCapability); 19193 return _context.abrupt('return', requestCapability.promise); 19194 19195 case 10: 19196 case 'end': 19197 return _context.stop(); 19198 } 19199 } 19200 }, _callee, this); 19201 })); 19202 19203 function read() { 19204 return _ref.apply(this, arguments); 19205 } 19206 19207 return read; 19208 }(), 19209 19210 cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) { 19211 this._done = true; 19212 this._headersReceivedCapability.reject(reason);
19213 this._requests.forEach(function (requestCapability) { 19214 requestCapability.resolve({ 19215 value: undefined, 19216 done: true 19217 }); 19218 }); 19219 this._requests = []; 19220 if (this._manager.isPendingRequest(this._fullRequestId)) { 19221 this._manager.abortRequest(this._fullRequestId); 19222 } 19223 this._fullRequestReader = null; 19224 } 19225}; 19226function PDFNetworkStreamRangeRequestReader(manager, begin, end) { 19227 this._manager = manager; 19228 var args = { 19229 onDone: this._onDone.bind(this), 19230 onProgress: this._onProgress.bind(this) 19231 }; 19232 this._requestId = manager.requestRange(begin, end, args); 19233 this._requests = []; 19234 this._queuedChunk = null; 19235 this._done = false; 19236 this.onProgress = null; 19237 this.onClosed = null; 19238} 19239PDFNetworkStreamRangeRequestReader.prototype = { 19240 _close: function PDFNetworkStreamRangeRequestReader_close() { 19241 if (this.onClosed) { 19242 this.onClosed(this); 19243 } 19244 }, 19245 _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) { 19246 var chunk = data.chunk; 19247 if (this._requests.length > 0) { 19248 var requestCapability = this._requests.shift(); 19249 requestCapability.resolve({ 19250 value: chunk, 19251 done: false 19252 }); 19253 } else { 19254 this._queuedChunk = chunk; 19255 } 19256 this._done = true; 19257 this._requests.forEach(function (requestCapability) { 19258 requestCapability.resolve({ 19259 value: undefined, 19260 done: true 19261 }); 19262 }); 19263 this._requests = []; 19264 this._close(); 19265 }, 19266 _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) { 19267 if (!this.isStreamingSupported && this.onProgress) { 19268 this.onProgress({ loaded: evt.loaded }); 19269 } 19270 }, 19271 get isStreamingSupported() { 19272 return false; 19273 }, 19274 read: function () { 19275 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { 19276 var chunk, requestCapability; 19277 return _regenerator2.default.wrap(function _callee2$(_context2) { 19278 while (1) { 19279 switch (_context2.prev = _context2.next) { 19280 case 0: 19281 if (!(this._queuedChunk !== null)) { 19282 _context2.next = 4; 19283 break; 19284 } 19285 19286 chunk = this._queuedChunk; 19287 19288 this._queuedChunk = null; 19289 return _context2.abrupt('return', { 19290 value: chunk, 19291 done: false 19292 }); 19293 19294 case 4: 19295 if (!this._done) { 19296 _context2.next = 6; 19297 break; 19298 } 19299 19300 return _context2.abrupt('return', { 19301 value: undefined, 19302 done: true 19303 }); 19304 19305 case 6: 19306 requestCapability = (0, _util.createPromiseCapability)(); 19307 19308 this._requests.push(requestCapability); 19309 return _context2.abrupt('return', requestCapability.promise); 19310 19311 case 9: 19312 case 'end': 19313 return _context2.stop(); 19314 } 19315 } 19316 }, _callee2, this); 19317 })); 19318 19319 function read() { 19320 return _ref2.apply(this, arguments); 19321 } 19322 19323 return read; 19324 }(), 19325 19326 cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) { 19327 this._done = true; 19328 this._requests.forEach(function (requestCapability) { 19329 requestCapability.resolve({ 19330 value: undefined, 19331 done: true 19332 }); 19333 }); 19334 this._requests = []; 19335 if (this._manager.isPendingRequest(this._requestId)) { 19336 this._manager.abortRequest(this._requestId); 19337 } 19338 this._close(); 19339 } 19340}; 19341exports.PDFNetworkStream = PDFNetworkStream; 19342exports.NetworkManager = NetworkManager; 19343 19344/***/ }) 19345/******/ ]); 19346}); 19347//# 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.