commit 3f7688932edcd470e03e43381741ce02f6bf319e Author: yellowmonarch <75360541+yellowmonarch@users.noreply.github.com> Date: Fri Nov 18 21:05:41 2022 +0200 Initial commit Related changes: - Added pdf.js v3.0.219 legacy prebuild. - Created `README.md` file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f433b1a --- /dev/null +++ b/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md new file mode 100644 index 0000000..cba02c0 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# PDF.js + +> This is a modified version of the pdf.js v3.0.219 legacy prebuild. + +PDF.js is a Portable Document Format (PDF) viewer that is built with HTML5. + +PDF.js is community-driven and supported by Mozilla. Our goal is to create a general-purpose, web standards-based platform for parsing and rendering PDFs. \ No newline at end of file diff --git a/build/pdf.js b/build/pdf.js new file mode 100644 index 0000000..473b64c --- /dev/null +++ b/build/pdf.js @@ -0,0 +1,19745 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2022 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("pdfjs-dist/build/pdf", [], factory); + else if(typeof exports === 'object') + exports["pdfjs-dist/build/pdf"] = factory(); + else + root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); +})(globalThis, () => { +return /******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; +exports.arrayByteLength = arrayByteLength; +exports.arraysToBytes = arraysToBytes; +exports.assert = assert; +exports.bytesToString = bytesToString; +exports.createPromiseCapability = createPromiseCapability; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.escapeString = escapeString; +exports.getModificationDate = getModificationDate; +exports.getVerbosityLevel = getVerbosityLevel; +exports.info = info; +exports.isArrayBuffer = isArrayBuffer; +exports.isArrayEqual = isArrayEqual; +exports.isAscii = isAscii; +exports.objectFromMap = objectFromMap; +exports.objectSize = objectSize; +exports.setVerbosityLevel = setVerbosityLevel; +exports.shadow = shadow; +exports.string32 = string32; +exports.stringToBytes = stringToBytes; +exports.stringToPDFString = stringToPDFString; +exports.stringToUTF16BEString = stringToUTF16BEString; +exports.stringToUTF8String = stringToUTF8String; +exports.unreachable = unreachable; +exports.utf8StringToString = utf8StringToString; +exports.warn = warn; +if (!globalThis._pdfjsCompatibilityChecked) { + globalThis._pdfjsCompatibilityChecked = true; + __w_pdfjs_require__(2); +} +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +exports.IDENTITY_MATRIX = IDENTITY_MATRIX; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; +const LINE_FACTOR = 1.35; +exports.LINE_FACTOR = LINE_FACTOR; +const LINE_DESCENT_FACTOR = 0.35; +exports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR; +const RenderingIntentFlag = { + ANY: 0x01, + DISPLAY: 0x02, + PRINT: 0x04, + ANNOTATIONS_FORMS: 0x10, + ANNOTATIONS_STORAGE: 0x20, + ANNOTATIONS_DISABLE: 0x40, + OPLIST: 0x100 +}; +exports.RenderingIntentFlag = RenderingIntentFlag; +const AnnotationMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_FORMS: 2, + ENABLE_STORAGE: 3 +}; +exports.AnnotationMode = AnnotationMode; +const AnnotationEditorPrefix = "pdfjs_internal_editor_"; +exports.AnnotationEditorPrefix = AnnotationEditorPrefix; +const AnnotationEditorType = { + DISABLE: -1, + NONE: 0, + FREETEXT: 3, + INK: 15 +}; +exports.AnnotationEditorType = AnnotationEditorType; +const AnnotationEditorParamsType = { + FREETEXT_SIZE: 1, + FREETEXT_COLOR: 2, + FREETEXT_OPACITY: 3, + INK_COLOR: 11, + INK_THICKNESS: 12, + INK_OPACITY: 13 +}; +exports.AnnotationEditorParamsType = AnnotationEditorParamsType; +const PermissionFlag = { + PRINT: 0x04, + MODIFY_CONTENTS: 0x08, + COPY: 0x10, + MODIFY_ANNOTATIONS: 0x20, + FILL_INTERACTIVE_FORMS: 0x100, + COPY_FOR_ACCESSIBILITY: 0x200, + ASSEMBLE: 0x400, + PRINT_HIGH_QUALITY: 0x800 +}; +exports.PermissionFlag = PermissionFlag; +const TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +exports.TextRenderingMode = TextRenderingMode; +const ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +exports.ImageKind = ImageKind; +const AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +exports.AnnotationType = AnnotationType; +const AnnotationStateModelType = { + MARKED: "Marked", + REVIEW: "Review" +}; +exports.AnnotationStateModelType = AnnotationStateModelType; +const AnnotationMarkedState = { + MARKED: "Marked", + UNMARKED: "Unmarked" +}; +exports.AnnotationMarkedState = AnnotationMarkedState; +const AnnotationReviewState = { + ACCEPTED: "Accepted", + REJECTED: "Rejected", + CANCELLED: "Cancelled", + COMPLETED: "Completed", + NONE: "None" +}; +exports.AnnotationReviewState = AnnotationReviewState; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +exports.AnnotationReplyType = AnnotationReplyType; +const AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +exports.AnnotationFlag = AnnotationFlag; +const AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +exports.AnnotationFieldFlag = AnnotationFieldFlag; +const AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +exports.AnnotationBorderStyleType = AnnotationBorderStyleType; +const AnnotationActionEventType = { + E: "Mouse Enter", + X: "Mouse Exit", + D: "Mouse Down", + U: "Mouse Up", + Fo: "Focus", + Bl: "Blur", + PO: "PageOpen", + PC: "PageClose", + PV: "PageVisible", + PI: "PageInvisible", + K: "Keystroke", + F: "Format", + V: "Validate", + C: "Calculate" +}; +exports.AnnotationActionEventType = AnnotationActionEventType; +const DocumentActionEventType = { + WC: "WillClose", + WS: "WillSave", + DS: "DidSave", + WP: "WillPrint", + DP: "DidPrint" +}; +exports.DocumentActionEventType = DocumentActionEventType; +const PageActionEventType = { + O: "PageOpen", + C: "PageClose" +}; +exports.PageActionEventType = PageActionEventType; +const StreamType = { + UNKNOWN: "UNKNOWN", + FLATE: "FLATE", + LZW: "LZW", + DCT: "DCT", + JPX: "JPX", + JBIG: "JBIG", + A85: "A85", + AHX: "AHX", + CCF: "CCF", + RLX: "RLX" +}; +exports.StreamType = StreamType; +const FontType = { + UNKNOWN: "UNKNOWN", + TYPE1: "TYPE1", + TYPE1STANDARD: "TYPE1STANDARD", + TYPE1C: "TYPE1C", + CIDFONTTYPE0: "CIDFONTTYPE0", + CIDFONTTYPE0C: "CIDFONTTYPE0C", + TRUETYPE: "TRUETYPE", + CIDFONTTYPE2: "CIDFONTTYPE2", + TYPE3: "TYPE3", + OPENTYPE: "OPENTYPE", + TYPE0: "TYPE0", + MMTYPE1: "MMTYPE1" +}; +exports.FontType = FontType; +const VerbosityLevel = { + ERRORS: 0, + WARNINGS: 1, + INFOS: 5 +}; +exports.VerbosityLevel = VerbosityLevel; +const CMapCompressionType = { + NONE: 0, + BINARY: 1 +}; +exports.CMapCompressionType = CMapCompressionType; +const OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotation: 80, + endAnnotation: 81, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 +}; +exports.OPS = OPS; +const UNSUPPORTED_FEATURES = { + forms: "forms", + javaScript: "javaScript", + signatures: "signatures", + smask: "smask", + shadingPattern: "shadingPattern", + errorTilingPattern: "errorTilingPattern", + errorExtGState: "errorExtGState", + errorXObject: "errorXObject", + errorFontLoadType3: "errorFontLoadType3", + errorFontState: "errorFontState", + errorFontMissing: "errorFontMissing", + errorFontTranslate: "errorFontTranslate", + errorColorSpace: "errorColorSpace", + errorOperatorList: "errorOperatorList", + errorFontToUnicode: "errorFontToUnicode", + errorFontLoadNative: "errorFontLoadNative", + errorFontBuildPath: "errorFontBuildPath", + errorFontGetPath: "errorFontGetPath", + errorMarkedContent: "errorMarkedContent", + errorContentSubStream: "errorContentSubStream" +}; +exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; +const PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +exports.PasswordResponses = PasswordResponses; +let verbosity = VerbosityLevel.WARNINGS; +function setVerbosityLevel(level) { + if (Number.isInteger(level)) { + verbosity = level; + } +} +function getVerbosityLevel() { + return verbosity; +} +function info(msg) { + if (verbosity >= VerbosityLevel.INFOS) { + console.log(`Info: ${msg}`); + } +} +function warn(msg) { + if (verbosity >= VerbosityLevel.WARNINGS) { + console.log(`Warning: ${msg}`); + } +} +function unreachable(msg) { + throw new Error(msg); +} +function assert(cond, msg) { + if (!cond) { + unreachable(msg); + } +} +function _isValidProtocol(url) { + if (!url) { + return false; + } + switch (url.protocol) { + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": + return true; + default: + return false; + } +} +function createValidAbsoluteUrl(url) { + let baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + if (!url) { + return null; + } + try { + if (options && typeof url === "string") { + if (options.addDefaultProtocol && url.startsWith("www.")) { + const dots = url.match(/\./g); + if (dots && dots.length >= 2) { + url = `http://${url}`; + } + } + if (options.tryConvertEncoding) { + try { + url = stringToUTF8String(url); + } catch (ex) {} + } + } + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); + if (_isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch (ex) {} + return null; +} +function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value, + enumerable: true, + configurable: true, + writable: false + }); + return value; +} +const BaseException = function BaseExceptionClosure() { + function BaseException(message, name) { + if (this.constructor === BaseException) { + unreachable("Cannot initialize BaseException."); + } + this.message = message; + this.name = name; + } + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); +exports.BaseException = BaseException; +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg, "PasswordException"); + this.code = code; + } +} +exports.PasswordException = PasswordException; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg, "UnknownErrorException"); + this.details = details; + } +} +exports.UnknownErrorException = UnknownErrorException; +class InvalidPDFException extends BaseException { + constructor(msg) { + super(msg, "InvalidPDFException"); + } +} +exports.InvalidPDFException = InvalidPDFException; +class MissingPDFException extends BaseException { + constructor(msg) { + super(msg, "MissingPDFException"); + } +} +exports.MissingPDFException = MissingPDFException; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg, "UnexpectedResponseException"); + this.status = status; + } +} +exports.UnexpectedResponseException = UnexpectedResponseException; +class FormatError extends BaseException { + constructor(msg) { + super(msg, "FormatError"); + } +} +exports.FormatError = FormatError; +class AbortException extends BaseException { + constructor(msg) { + super(msg, "AbortException"); + } +} +exports.AbortException = AbortException; +function bytesToString(bytes) { + if (typeof bytes !== "object" || bytes === null || bytes.length === undefined) { + unreachable("Invalid argument for bytesToString"); + } + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + const strBuf = []; + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); + strBuf.push(String.fromCharCode.apply(null, chunk)); + } + return strBuf.join(""); +} +function stringToBytes(str) { + if (typeof str !== "string") { + unreachable("Invalid argument for stringToBytes"); + } + const length = str.length; + const bytes = new Uint8Array(length); + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; + } + return bytes; +} +function arrayByteLength(arr) { + if (arr.length !== undefined) { + return arr.length; + } + if (arr.byteLength !== undefined) { + return arr.byteLength; + } + unreachable("Invalid argument for arrayByteLength"); +} +function arraysToBytes(arr) { + const length = arr.length; + if (length === 1 && arr[0] instanceof Uint8Array) { + return arr[0]; + } + let resultLength = 0; + for (let i = 0; i < length; i++) { + resultLength += arrayByteLength(arr[i]); + } + let pos = 0; + const data = new Uint8Array(resultLength); + for (let i = 0; i < length; i++) { + let item = arr[i]; + if (!(item instanceof Uint8Array)) { + if (typeof item === "string") { + item = stringToBytes(item); + } else { + item = new Uint8Array(item); + } + } + const itemLength = item.byteLength; + data.set(item, pos); + pos += itemLength; + } + return data; +} +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} +function objectSize(obj) { + return Object.keys(obj).length; +} +function objectFromMap(map) { + const obj = Object.create(null); + for (const [key, value] of map) { + obj[key] = value; + } + return obj; +} +function isLittleEndian() { + const buffer8 = new Uint8Array(4); + buffer8[0] = 1; + const view32 = new Uint32Array(buffer8.buffer, 0, 1); + return view32[0] === 1; +} +function isEvalSupported() { + try { + new Function(""); + return true; + } catch (e) { + return false; + } +} +class FeatureTest { + static get isLittleEndian() { + return shadow(this, "isLittleEndian", isLittleEndian()); + } + static get isEvalSupported() { + return shadow(this, "isEvalSupported", isEvalSupported()); + } + static get isOffscreenCanvasSupported() { + return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); + } +} +exports.FeatureTest = FeatureTest; +const hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, "0")); +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; + } + static scaleMinMax(transform, minMax) { + let temp; + if (transform[0]) { + if (transform[0] < 0) { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + } + minMax[0] *= transform[0]; + minMax[1] *= transform[0]; + if (transform[3] < 0) { + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + } + minMax[2] *= transform[3]; + minMax[3] *= transform[3]; + } else { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + if (transform[1] < 0) { + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + } + minMax[2] *= transform[1]; + minMax[3] *= transform[1]; + if (transform[2] < 0) { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + } + minMax[0] *= transform[2]; + minMax[1] *= transform[2]; + } + minMax[0] += transform[4]; + minMax[1] += transform[4]; + minMax[2] += transform[5]; + minMax[3] += transform[5]; + } + static transform(m1, m2) { + 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]]; + } + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + } + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + } + static getAxialAlignedBoundingBox(r, m) { + const p1 = Util.applyTransform(r, m); + const p2 = Util.applyTransform(r.slice(2, 4), m); + const p3 = Util.applyTransform([r[0], r[3]], m); + const p4 = Util.applyTransform([r[2], r[1]], m); + 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])]; + } + static inverseTransform(m) { + const d = m[0] * m[3] - m[1] * m[2]; + 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]; + } + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + } + static normalizeRect(rect) { + const r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + } + static intersect(rect1, rect2) { + const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); + const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); + if (xLow > xHigh) { + return null; + } + const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); + const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); + if (yLow > yHigh) { + return null; + } + return [xLow, yLow, xHigh, yHigh]; + } + static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) { + const tvalues = [], + bounds = [[], []]; + let a, b, c, t, t1, t2, b2ac, sqrtb2ac; + for (let i = 0; i < 2; ++i) { + if (i === 0) { + b = 6 * x0 - 12 * x1 + 6 * x2; + a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; + c = 3 * x1 - 3 * x0; + } else { + b = 6 * y0 - 12 * y1 + 6 * y2; + a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; + c = 3 * y1 - 3 * y0; + } + if (Math.abs(a) < 1e-12) { + if (Math.abs(b) < 1e-12) { + continue; + } + t = -c / b; + if (0 < t && t < 1) { + tvalues.push(t); + } + continue; + } + b2ac = b * b - 4 * c * a; + sqrtb2ac = Math.sqrt(b2ac); + if (b2ac < 0) { + continue; + } + t1 = (-b + sqrtb2ac) / (2 * a); + if (0 < t1 && t1 < 1) { + tvalues.push(t1); + } + t2 = (-b - sqrtb2ac) / (2 * a); + if (0 < t2 && t2 < 1) { + tvalues.push(t2); + } + } + let j = tvalues.length, + mt; + const jlen = j; + while (j--) { + t = tvalues[j]; + mt = 1 - t; + bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3; + bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3; + } + bounds[0][jlen] = x0; + bounds[1][jlen] = y0; + bounds[0][jlen + 1] = x3; + bounds[1][jlen + 1] = y3; + bounds[0].length = bounds[1].length = jlen + 2; + return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])]; + } +} +exports.Util = Util; +const 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]; +function stringToPDFString(str) { + if (str[0] >= "\xEF") { + let encoding; + if (str[0] === "\xFE" && str[1] === "\xFF") { + encoding = "utf-16be"; + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + encoding = "utf-16le"; + } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { + encoding = "utf-8"; + } + if (encoding) { + try { + const decoder = new TextDecoder(encoding, { + fatal: true + }); + const buffer = stringToBytes(str); + return decoder.decode(buffer); + } catch (ex) { + warn(`stringToPDFString: "${ex}".`); + } + } + } + const strBuf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + return strBuf.join(""); +} +function escapeString(str) { + return str.replace(/([()\\\n\r])/g, match => { + if (match === "\n") { + return "\\n"; + } else if (match === "\r") { + return "\\r"; + } + return `\\${match}`; + }); +} +function isAscii(str) { + return /^[\x00-\x7F]*$/.test(str); +} +function stringToUTF16BEString(str) { + const buf = ["\xFE\xFF"]; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff)); + } + return buf.join(""); +} +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} +function isArrayBuffer(v) { + return typeof v === "object" && v !== null && v.byteLength !== undefined; +} +function isArrayEqual(arr1, arr2) { + if (arr1.length !== arr2.length) { + return false; + } + for (let i = 0, ii = arr1.length; i < ii; i++) { + if (arr1[i] !== arr2[i]) { + return false; + } + } + return true; +} +function getModificationDate() { + let date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); +} +function createPromiseCapability() { + const capability = Object.create(null); + let isSettled = false; + Object.defineProperty(capability, "settled", { + get() { + return isSettled; + } + }); + capability.promise = new Promise(function (resolve, reject) { + capability.resolve = function (data) { + isSettled = true; + resolve(data); + }; + capability.reject = function (reason) { + isSettled = true; + reject(reason); + }; + }); + return capability; +} + +/***/ }), +/* 2 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + + +var _is_node = __w_pdfjs_require__(3); +(function checkNodeBtoa() { + if (globalThis.btoa || !_is_node.isNodeJS) { + return; + } + globalThis.btoa = function (chars) { + return Buffer.from(chars, "binary").toString("base64"); + }; +})(); +(function checkNodeAtob() { + if (globalThis.atob || !_is_node.isNodeJS) { + return; + } + globalThis.atob = function (input) { + return Buffer.from(input, "base64").toString("binary"); + }; +})(); +(function checkDOMMatrix() { + if (globalThis.DOMMatrix || !_is_node.isNodeJS) { + return; + } + globalThis.DOMMatrix = require("canvas").DOMMatrix; +})(); +(function checkReadableStream() { + if (globalThis.ReadableStream || !_is_node.isNodeJS) { + return; + } + globalThis.ReadableStream = require("web-streams-polyfill/dist/ponyfill.js").ReadableStream; +})(); +(function checkArrayAt() { + if (Array.prototype.at) { + return; + } + __w_pdfjs_require__(4); +})(); +(function checkTypedArrayAt() { + if (Uint8Array.prototype.at) { + return; + } + __w_pdfjs_require__(79); +})(); +(function checkStructuredClone() { + if (globalThis.structuredClone) { + return; + } + __w_pdfjs_require__(89); +})(); + +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isNodeJS = void 0; +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +exports.isNodeJS = isNodeJS; + +/***/ }), +/* 4 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +__w_pdfjs_require__(5); +var entryUnbind = __w_pdfjs_require__(78); +module.exports = entryUnbind('Array', 'at'); + +/***/ }), +/* 5 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var $ = __w_pdfjs_require__(6); +var toObject = __w_pdfjs_require__(44); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var toIntegerOrInfinity = __w_pdfjs_require__(66); +var addToUnscopables = __w_pdfjs_require__(73); +$({ + target: 'Array', + proto: true +}, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return k < 0 || k >= len ? undefined : O[k]; + } +}); +addToUnscopables('at'); + +/***/ }), +/* 6 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var getOwnPropertyDescriptor = (__w_pdfjs_require__(8).f); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var defineBuiltIn = __w_pdfjs_require__(52); +var defineGlobalProperty = __w_pdfjs_require__(42); +var copyConstructorProperties = __w_pdfjs_require__(60); +var isForced = __w_pdfjs_require__(72); +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = (global[TARGET] || {}).prototype; + } + if (target) + for (key in source) { + sourceProperty = source[key]; + if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else + targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty == typeof targetProperty) + continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + defineBuiltIn(target, key, sourceProperty, options); + } +}; + +/***/ }), +/* 7 */ +/***/ ((module) => { + +var check = function (it) { + return it && it.Math == Math && it; +}; +module.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || (function () { + return this; +}()) || Function('return this')(); + +/***/ }), +/* 8 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var call = __w_pdfjs_require__(11); +var propertyIsEnumerableModule = __w_pdfjs_require__(13); +var createPropertyDescriptor = __w_pdfjs_require__(14); +var toIndexedObject = __w_pdfjs_require__(15); +var toPropertyKey = __w_pdfjs_require__(22); +var hasOwn = __w_pdfjs_require__(43); +var IE8_DOM_DEFINE = __w_pdfjs_require__(46); +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPropertyKey(P); + if (IE8_DOM_DEFINE) + try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (hasOwn(O, P)) + return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); +}; + +/***/ }), +/* 9 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +module.exports = !fails(function () { + return Object.defineProperty({}, 1, { + get: function () { + return 7; + } + })[1] != 7; +}); + +/***/ }), +/* 10 */ +/***/ ((module) => { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + +/***/ }), +/* 11 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var NATIVE_BIND = __w_pdfjs_require__(12); +var call = Function.prototype.call; +module.exports = NATIVE_BIND ? call.bind(call) : function () { + return call.apply(call, arguments); +}; + +/***/ }), +/* 12 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +module.exports = !fails(function () { + var test = function () { + }.bind(); + return typeof test != 'function' || test.hasOwnProperty('prototype'); +}); + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +var $propertyIsEnumerable = {}.propertyIsEnumerable; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : $propertyIsEnumerable; + +/***/ }), +/* 14 */ +/***/ ((module) => { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +/***/ }), +/* 15 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var IndexedObject = __w_pdfjs_require__(16); +var requireObjectCoercible = __w_pdfjs_require__(20); +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; + +/***/ }), +/* 16 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var fails = __w_pdfjs_require__(10); +var classof = __w_pdfjs_require__(18); +var $Object = Object; +var split = uncurryThis(''.split); +module.exports = fails(function () { + return !$Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split(it, '') : $Object(it); +} : $Object; + +/***/ }), +/* 17 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var classofRaw = __w_pdfjs_require__(18); +var uncurryThisRaw = __w_pdfjs_require__(19); +module.exports = function (fn) { + if (classofRaw(fn) === 'Function') + return uncurryThisRaw(fn); +}; + +/***/ }), +/* 18 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThisRaw = __w_pdfjs_require__(19); +var toString = uncurryThisRaw({}.toString); +var stringSlice = uncurryThisRaw(''.slice); +module.exports = function (it) { + return stringSlice(toString(it), 8, -1); +}; + +/***/ }), +/* 19 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var NATIVE_BIND = __w_pdfjs_require__(12); +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + +/***/ }), +/* 20 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isNullOrUndefined = __w_pdfjs_require__(21); +var $TypeError = TypeError; +module.exports = function (it) { + if (isNullOrUndefined(it)) + throw $TypeError("Can't call method on " + it); + return it; +}; + +/***/ }), +/* 21 */ +/***/ ((module) => { + +module.exports = function (it) { + return it === null || it === undefined; +}; + +/***/ }), +/* 22 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var toPrimitive = __w_pdfjs_require__(23); +var isSymbol = __w_pdfjs_require__(27); +module.exports = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; +}; + +/***/ }), +/* 23 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var call = __w_pdfjs_require__(11); +var isObject = __w_pdfjs_require__(24); +var isSymbol = __w_pdfjs_require__(27); +var getMethod = __w_pdfjs_require__(34); +var ordinaryToPrimitive = __w_pdfjs_require__(37); +var wellKnownSymbol = __w_pdfjs_require__(38); +var $TypeError = TypeError; +var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); +module.exports = function (input, pref) { + if (!isObject(input) || isSymbol(input)) + return input; + var exoticToPrim = getMethod(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) + pref = 'default'; + result = call(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) + return result; + throw $TypeError("Can't convert object to primitive value"); + } + if (pref === undefined) + pref = 'number'; + return ordinaryToPrimitive(input, pref); +}; + +/***/ }), +/* 24 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isCallable = __w_pdfjs_require__(25); +var $documentAll = __w_pdfjs_require__(26); +var documentAll = $documentAll.all; +module.exports = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll; +} : function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); +}; + +/***/ }), +/* 25 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var $documentAll = __w_pdfjs_require__(26); +var documentAll = $documentAll.all; +module.exports = $documentAll.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { + return typeof argument == 'function'; +}; + +/***/ }), +/* 26 */ +/***/ ((module) => { + +var documentAll = typeof document == 'object' && document.all; +var IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined; +module.exports = { + all: documentAll, + IS_HTMLDDA: IS_HTMLDDA +}; + +/***/ }), +/* 27 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var getBuiltIn = __w_pdfjs_require__(28); +var isCallable = __w_pdfjs_require__(25); +var isPrototypeOf = __w_pdfjs_require__(29); +var USE_SYMBOL_AS_UID = __w_pdfjs_require__(30); +var $Object = Object; +module.exports = USE_SYMBOL_AS_UID ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); +}; + +/***/ }), +/* 28 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var isCallable = __w_pdfjs_require__(25); +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + +/***/ }), +/* 29 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +module.exports = uncurryThis({}.isPrototypeOf); + +/***/ }), +/* 30 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var NATIVE_SYMBOL = __w_pdfjs_require__(31); +module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; + +/***/ }), +/* 31 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var V8_VERSION = __w_pdfjs_require__(32); +var fails = __w_pdfjs_require__(10); +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); + +/***/ }), +/* 32 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var userAgent = __w_pdfjs_require__(33); +var process = global.process; +var Deno = global.Deno; +var versions = process && process.versions || Deno && Deno.version; +var v8 = versions && versions.v8; +var match, version; +if (v8) { + match = v8.split('.'); + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); +} +if (!version && userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) + version = +match[1]; + } +} +module.exports = version; + +/***/ }), +/* 33 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var getBuiltIn = __w_pdfjs_require__(28); +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + +/***/ }), +/* 34 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var aCallable = __w_pdfjs_require__(35); +var isNullOrUndefined = __w_pdfjs_require__(21); +module.exports = function (V, P) { + var func = V[P]; + return isNullOrUndefined(func) ? undefined : aCallable(func); +}; + +/***/ }), +/* 35 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isCallable = __w_pdfjs_require__(25); +var tryToString = __w_pdfjs_require__(36); +var $TypeError = TypeError; +module.exports = function (argument) { + if (isCallable(argument)) + return argument; + throw $TypeError(tryToString(argument) + ' is not a function'); +}; + +/***/ }), +/* 36 */ +/***/ ((module) => { + +var $String = String; +module.exports = function (argument) { + try { + return $String(argument); + } catch (error) { + return 'Object'; + } +}; + +/***/ }), +/* 37 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var call = __w_pdfjs_require__(11); +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var $TypeError = TypeError; +module.exports = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) + return val; + if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) + return val; + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) + return val; + throw $TypeError("Can't convert object to primitive value"); +}; + +/***/ }), +/* 38 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var shared = __w_pdfjs_require__(39); +var hasOwn = __w_pdfjs_require__(43); +var uid = __w_pdfjs_require__(45); +var NATIVE_SYMBOL = __w_pdfjs_require__(31); +var USE_SYMBOL_AS_UID = __w_pdfjs_require__(30); +var WellKnownSymbolsStore = shared('wks'); +var Symbol = global.Symbol; +var symbolFor = Symbol && Symbol['for']; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; +module.exports = function (name) { + if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { + var description = 'Symbol.' + name; + if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { + WellKnownSymbolsStore[name] = Symbol[name]; + } else if (USE_SYMBOL_AS_UID && symbolFor) { + WellKnownSymbolsStore[name] = symbolFor(description); + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol(description); + } + } + return WellKnownSymbolsStore[name]; +}; + +/***/ }), +/* 39 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var IS_PURE = __w_pdfjs_require__(40); +var store = __w_pdfjs_require__(41); +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.26.0', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.26.0/LICENSE', + source: 'https://github.com/zloirock/core-js' +}); + +/***/ }), +/* 40 */ +/***/ ((module) => { + +module.exports = false; + +/***/ }), +/* 41 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var defineGlobalProperty = __w_pdfjs_require__(42); +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || defineGlobalProperty(SHARED, {}); +module.exports = store; + +/***/ }), +/* 42 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var defineProperty = Object.defineProperty; +module.exports = function (key, value) { + try { + defineProperty(global, key, { + value: value, + configurable: true, + writable: true + }); + } catch (error) { + global[key] = value; + } + return value; +}; + +/***/ }), +/* 43 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var toObject = __w_pdfjs_require__(44); +var hasOwnProperty = uncurryThis({}.hasOwnProperty); +module.exports = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); +}; + +/***/ }), +/* 44 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var requireObjectCoercible = __w_pdfjs_require__(20); +var $Object = Object; +module.exports = function (argument) { + return $Object(requireObjectCoercible(argument)); +}; + +/***/ }), +/* 45 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var id = 0; +var postfix = Math.random(); +var toString = uncurryThis(1.0.toString); +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + +/***/ }), +/* 46 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var fails = __w_pdfjs_require__(10); +var createElement = __w_pdfjs_require__(47); +module.exports = !DESCRIPTORS && !fails(function () { + return Object.defineProperty(createElement('div'), 'a', { + get: function () { + return 7; + } + }).a != 7; +}); + +/***/ }), +/* 47 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var isObject = __w_pdfjs_require__(24); +var document = global.document; +var EXISTS = isObject(document) && isObject(document.createElement); +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; + +/***/ }), +/* 48 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var definePropertyModule = __w_pdfjs_require__(49); +var createPropertyDescriptor = __w_pdfjs_require__(14); +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +/***/ }), +/* 49 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var IE8_DOM_DEFINE = __w_pdfjs_require__(46); +var V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(50); +var anObject = __w_pdfjs_require__(51); +var toPropertyKey = __w_pdfjs_require__(22); +var $TypeError = TypeError; +var $defineProperty = Object.defineProperty; +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ENUMERABLE = 'enumerable'; +var CONFIGURABLE = 'configurable'; +var WRITABLE = 'writable'; +exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } + return $defineProperty(O, P, Attributes); +} : $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPropertyKey(P); + anObject(Attributes); + if (IE8_DOM_DEFINE) + try { + return $defineProperty(O, P, Attributes); + } catch (error) { + } + if ('get' in Attributes || 'set' in Attributes) + throw $TypeError('Accessors not supported'); + if ('value' in Attributes) + O[P] = Attributes.value; + return O; +}; + +/***/ }), +/* 50 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var fails = __w_pdfjs_require__(10); +module.exports = DESCRIPTORS && fails(function () { + return Object.defineProperty(function () { + }, 'prototype', { + value: 42, + writable: false + }).prototype != 42; +}); + +/***/ }), +/* 51 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isObject = __w_pdfjs_require__(24); +var $String = String; +var $TypeError = TypeError; +module.exports = function (argument) { + if (isObject(argument)) + return argument; + throw $TypeError($String(argument) + ' is not an object'); +}; + +/***/ }), +/* 52 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isCallable = __w_pdfjs_require__(25); +var definePropertyModule = __w_pdfjs_require__(49); +var makeBuiltIn = __w_pdfjs_require__(53); +var defineGlobalProperty = __w_pdfjs_require__(42); +module.exports = function (O, key, value, options) { + if (!options) + options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) + makeBuiltIn(value, name, options); + if (options.global) { + if (simple) + O[key] = value; + else + defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) + delete O[key]; + else if (O[key]) + simple = true; + } catch (error) { + } + if (simple) + O[key] = value; + else + definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); + } + return O; +}; + +/***/ }), +/* 53 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var hasOwn = __w_pdfjs_require__(43); +var DESCRIPTORS = __w_pdfjs_require__(9); +var CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(54).CONFIGURABLE); +var inspectSource = __w_pdfjs_require__(55); +var InternalStateModule = __w_pdfjs_require__(56); +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var defineProperty = Object.defineProperty; +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { + }, 'length', { value: 8 }).length !== 8; +}); +var TEMPLATE = String(String).split('String'); +var makeBuiltIn = module.exports = function (value, name, options) { + if (String(name).slice(0, 7) === 'Symbol(') { + name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) + name = 'get ' + name; + if (options && options.setter) + name = 'set ' + name; + if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) { + if (DESCRIPTORS) + defineProperty(value, 'name', { + value: name, + configurable: true + }); + else + value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) + defineProperty(value, 'prototype', { writable: false }); + } else if (value.prototype) + value.prototype = undefined; + } catch (error) { + } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); + } + return value; +}; +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); + +/***/ }), +/* 54 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var hasOwn = __w_pdfjs_require__(43); +var FunctionPrototype = Function.prototype; +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; +var EXISTS = hasOwn(FunctionPrototype, 'name'); +var PROPER = EXISTS && function something() { +}.name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable); +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + +/***/ }), +/* 55 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var isCallable = __w_pdfjs_require__(25); +var store = __w_pdfjs_require__(41); +var functionToString = uncurryThis(Function.toString); +if (!isCallable(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; +} +module.exports = store.inspectSource; + +/***/ }), +/* 56 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var NATIVE_WEAK_MAP = __w_pdfjs_require__(57); +var global = __w_pdfjs_require__(7); +var isObject = __w_pdfjs_require__(24); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var hasOwn = __w_pdfjs_require__(43); +var shared = __w_pdfjs_require__(41); +var sharedKey = __w_pdfjs_require__(58); +var hiddenKeys = __w_pdfjs_require__(59); +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; +var set, get, has; +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } + return state; + }; +}; +if (NATIVE_WEAK_MAP || shared.state) { + var store = shared.state || (shared.state = new WeakMap()); + store.get = store.get; + store.has = store.has; + store.set = store.set; + set = function (it, metadata) { + if (store.has(it)) + throw TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store.set(it, metadata); + return metadata; + }; + get = function (it) { + return store.get(it) || {}; + }; + has = function (it) { + return store.has(it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (hasOwn(it, STATE)) + throw TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return hasOwn(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn(it, STATE); + }; +} +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + +/***/ }), +/* 57 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var isCallable = __w_pdfjs_require__(25); +var WeakMap = global.WeakMap; +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + +/***/ }), +/* 58 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var shared = __w_pdfjs_require__(39); +var uid = __w_pdfjs_require__(45); +var keys = shared('keys'); +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; + +/***/ }), +/* 59 */ +/***/ ((module) => { + +module.exports = {}; + +/***/ }), +/* 60 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var hasOwn = __w_pdfjs_require__(43); +var ownKeys = __w_pdfjs_require__(61); +var getOwnPropertyDescriptorModule = __w_pdfjs_require__(8); +var definePropertyModule = __w_pdfjs_require__(49); +module.exports = function (target, source, exceptions) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } +}; + +/***/ }), +/* 61 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var getBuiltIn = __w_pdfjs_require__(28); +var uncurryThis = __w_pdfjs_require__(17); +var getOwnPropertyNamesModule = __w_pdfjs_require__(62); +var getOwnPropertySymbolsModule = __w_pdfjs_require__(71); +var anObject = __w_pdfjs_require__(51); +var concat = uncurryThis([].concat); +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; +}; + +/***/ }), +/* 62 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +var internalObjectKeys = __w_pdfjs_require__(63); +var enumBugKeys = __w_pdfjs_require__(70); +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + +/***/ }), +/* 63 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var hasOwn = __w_pdfjs_require__(43); +var toIndexedObject = __w_pdfjs_require__(15); +var indexOf = (__w_pdfjs_require__(64).indexOf); +var hiddenKeys = __w_pdfjs_require__(59); +var push = uncurryThis([].push); +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) + !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); + while (names.length > i) + if (hasOwn(O, key = names[i++])) { + ~indexOf(result, key) || push(result, key); + } + return result; +}; + +/***/ }), +/* 64 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var toIndexedObject = __w_pdfjs_require__(15); +var toAbsoluteIndex = __w_pdfjs_require__(65); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = lengthOfArrayLike(O); + var index = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) + while (length > index) { + value = O[index++]; + if (value != value) + return true; + } + else + for (; length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) + return IS_INCLUDES || index || 0; + } + return !IS_INCLUDES && -1; + }; +}; +module.exports = { + includes: createMethod(true), + indexOf: createMethod(false) +}; + +/***/ }), +/* 65 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var toIntegerOrInfinity = __w_pdfjs_require__(66); +var max = Math.max; +var min = Math.min; +module.exports = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + +/***/ }), +/* 66 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var trunc = __w_pdfjs_require__(67); +module.exports = function (argument) { + var number = +argument; + return number !== number || number === 0 ? 0 : trunc(number); +}; + +/***/ }), +/* 67 */ +/***/ ((module) => { + +var ceil = Math.ceil; +var floor = Math.floor; +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); +}; + +/***/ }), +/* 68 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var toLength = __w_pdfjs_require__(69); +module.exports = function (obj) { + return toLength(obj.length); +}; + +/***/ }), +/* 69 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var toIntegerOrInfinity = __w_pdfjs_require__(66); +var min = Math.min; +module.exports = function (argument) { + return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; +}; + +/***/ }), +/* 70 */ +/***/ ((module) => { + +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + +/***/ }), +/* 71 */ +/***/ ((__unused_webpack_module, exports) => { + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 72 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var replacement = /#|\.prototype\./; +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; +}; +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; +module.exports = isForced; + +/***/ }), +/* 73 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var wellKnownSymbol = __w_pdfjs_require__(38); +var create = __w_pdfjs_require__(74); +var defineProperty = (__w_pdfjs_require__(49).f); +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; +if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + +/***/ }), +/* 74 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var anObject = __w_pdfjs_require__(51); +var definePropertiesModule = __w_pdfjs_require__(75); +var enumBugKeys = __w_pdfjs_require__(70); +var hiddenKeys = __w_pdfjs_require__(59); +var html = __w_pdfjs_require__(77); +var documentCreateElement = __w_pdfjs_require__(47); +var sharedKey = __w_pdfjs_require__(58); +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); +var EmptyConstructor = function () { +}; +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; + return temp; +}; +var NullProtoObjectViaIFrame = function () { + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; +var activeXDocument; +var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { + } + NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); + var length = enumBugKeys.length; + while (length--) + delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; +hiddenKeys[IE_PROTO] = true; +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else + result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule.f(result, Properties); +}; + +/***/ }), +/* 75 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(50); +var definePropertyModule = __w_pdfjs_require__(49); +var anObject = __w_pdfjs_require__(51); +var toIndexedObject = __w_pdfjs_require__(15); +var objectKeys = __w_pdfjs_require__(76); +exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var props = toIndexedObject(Properties); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) + definePropertyModule.f(O, key = keys[index++], props[key]); + return O; +}; + +/***/ }), +/* 76 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var internalObjectKeys = __w_pdfjs_require__(63); +var enumBugKeys = __w_pdfjs_require__(70); +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); +}; + +/***/ }), +/* 77 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var getBuiltIn = __w_pdfjs_require__(28); +module.exports = getBuiltIn('document', 'documentElement'); + +/***/ }), +/* 78 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +var uncurryThis = __w_pdfjs_require__(17); +module.exports = function (CONSTRUCTOR, METHOD) { + return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]); +}; + +/***/ }), +/* 79 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +__w_pdfjs_require__(80); + +/***/ }), +/* 80 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var ArrayBufferViewCore = __w_pdfjs_require__(81); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var toIntegerOrInfinity = __w_pdfjs_require__(66); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return k < 0 || k >= len ? undefined : O[k]; +}); + +/***/ }), +/* 81 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var NATIVE_ARRAY_BUFFER = __w_pdfjs_require__(82); +var DESCRIPTORS = __w_pdfjs_require__(9); +var global = __w_pdfjs_require__(7); +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var hasOwn = __w_pdfjs_require__(43); +var classof = __w_pdfjs_require__(83); +var tryToString = __w_pdfjs_require__(36); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var defineBuiltIn = __w_pdfjs_require__(52); +var defineProperty = (__w_pdfjs_require__(49).f); +var isPrototypeOf = __w_pdfjs_require__(29); +var getPrototypeOf = __w_pdfjs_require__(85); +var setPrototypeOf = __w_pdfjs_require__(87); +var wellKnownSymbol = __w_pdfjs_require__(38); +var uid = __w_pdfjs_require__(45); +var InternalStateModule = __w_pdfjs_require__(56); +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.TypeError; +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 +}; +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; +var isView = function isView(it) { + if (!isObject(it)) + return false; + var klass = classof(it); + return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass); +}; +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) + return; + var state = getInternalState(proto); + return state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; +var isTypedArray = function (it) { + if (!isObject(it)) + return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass); +}; +var aTypedArray = function (it) { + if (isTypedArray(it)) + return it; + throw TypeError('Target is not a typed array'); +}; +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) + return C; + throw TypeError(tryToString(C) + ' is not a typed array constructor'); +}; +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) + return; + if (forced) + for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) + try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { + } + } + } + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) + return; + if (setPrototypeOf) { + if (forced) + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) + try { + delete TypedArrayConstructor[KEY]; + } catch (error) { + } + } + if (!TypedArray[KEY] || forced) { + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { + } + } else + return; + } + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) + enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else + NATIVE_ARRAY_BUFFER_VIEWS = false; +} +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) + enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + TypedArray = function TypedArray() { + throw TypeError('Incorrect invocation'); + }; + if (NATIVE_ARRAY_BUFFER_VIEWS) + for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) + setPrototypeOf(global[NAME], TypedArray); + } +} +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) + for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) + setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineProperty(TypedArrayPrototype, TO_STRING_TAG, { + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) + if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype +}; + +/***/ }), +/* 82 */ +/***/ ((module) => { + +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; + +/***/ }), +/* 83 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(84); +var isCallable = __w_pdfjs_require__(25); +var classofRaw = __w_pdfjs_require__(18); +var wellKnownSymbol = __w_pdfjs_require__(38); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; +var CORRECT_ARGUMENTS = classofRaw((function () { + return arguments; +}())) == 'Arguments'; +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { + } +}; +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + +/***/ }), +/* 84 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var wellKnownSymbol = __w_pdfjs_require__(38); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; +test[TO_STRING_TAG] = 'z'; +module.exports = String(test) === '[object z]'; + +/***/ }), +/* 85 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var hasOwn = __w_pdfjs_require__(43); +var isCallable = __w_pdfjs_require__(25); +var toObject = __w_pdfjs_require__(44); +var sharedKey = __w_pdfjs_require__(58); +var CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(86); +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) + return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } + return object instanceof $Object ? ObjectPrototype : null; +}; + +/***/ }), +/* 86 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +module.exports = !fails(function () { + function F() { + } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + +/***/ }), +/* 87 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var anObject = __w_pdfjs_require__(51); +var aPossiblePrototype = __w_pdfjs_require__(88); +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { + } + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) + setter(O, proto); + else + O.__proto__ = proto; + return O; + }; +}()) : undefined); + +/***/ }), +/* 88 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isCallable = __w_pdfjs_require__(25); +var $String = String; +var $TypeError = TypeError; +module.exports = function (argument) { + if (typeof argument == 'object' || isCallable(argument)) + return argument; + throw $TypeError("Can't set " + $String(argument) + ' as a prototype'); +}; + +/***/ }), +/* 89 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +__w_pdfjs_require__(90); +__w_pdfjs_require__(97); +__w_pdfjs_require__(99); +__w_pdfjs_require__(121); +__w_pdfjs_require__(123); +var path = __w_pdfjs_require__(132); +module.exports = path.structuredClone; + +/***/ }), +/* 90 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var toIndexedObject = __w_pdfjs_require__(15); +var addToUnscopables = __w_pdfjs_require__(73); +var Iterators = __w_pdfjs_require__(91); +var InternalStateModule = __w_pdfjs_require__(56); +var defineProperty = (__w_pdfjs_require__(49).f); +var defineIterator = __w_pdfjs_require__(92); +var createIterResultObject = __w_pdfjs_require__(96); +var IS_PURE = __w_pdfjs_require__(40); +var DESCRIPTORS = __w_pdfjs_require__(9); +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), + index: 0, + kind: kind + }); +}, function () { + var state = getInternalState(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + if (kind == 'keys') + return createIterResultObject(index, false); + if (kind == 'values') + return createIterResultObject(target[index], false); + return createIterResultObject([ + index, + target[index] + ], false); +}, 'values'); +var values = Iterators.Arguments = Iterators.Array; +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); +if (!IS_PURE && DESCRIPTORS && values.name !== 'values') + try { + defineProperty(values, 'name', { value: 'values' }); + } catch (error) { + } + +/***/ }), +/* 91 */ +/***/ ((module) => { + +module.exports = {}; + +/***/ }), +/* 92 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var $ = __w_pdfjs_require__(6); +var call = __w_pdfjs_require__(11); +var IS_PURE = __w_pdfjs_require__(40); +var FunctionName = __w_pdfjs_require__(54); +var isCallable = __w_pdfjs_require__(25); +var createIteratorConstructor = __w_pdfjs_require__(93); +var getPrototypeOf = __w_pdfjs_require__(85); +var setPrototypeOf = __w_pdfjs_require__(87); +var setToStringTag = __w_pdfjs_require__(95); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var defineBuiltIn = __w_pdfjs_require__(52); +var wellKnownSymbol = __w_pdfjs_require__(38); +var Iterators = __w_pdfjs_require__(91); +var IteratorsCore = __w_pdfjs_require__(94); +var PROPER_FUNCTION_NAME = FunctionName.PROPER; +var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; +var returnThis = function () { + return this; +}; +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) + return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) + return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: + return function keys() { + return new IteratorConstructor(this, KIND); + }; + case VALUES: + return function values() { + return new IteratorConstructor(this, KIND); + }; + case ENTRIES: + return function entries() { + return new IteratorConstructor(this, KIND); + }; + } + return function () { + return new IteratorConstructor(this); + }; + }; + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) + Iterators[TO_STRING_TAG] = returnThis; + } + } + if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { + return call(nativeIterator, this); + }; + } + } + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) + for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); + } + } + else + $({ + target: NAME, + proto: true, + forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME + }, methods); + } + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + } + Iterators[NAME] = defaultIterator; + return methods; +}; + +/***/ }), +/* 93 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var IteratorPrototype = (__w_pdfjs_require__(94).IteratorPrototype); +var create = __w_pdfjs_require__(74); +var createPropertyDescriptor = __w_pdfjs_require__(14); +var setToStringTag = __w_pdfjs_require__(95); +var Iterators = __w_pdfjs_require__(91); +var returnThis = function () { + return this; +}; +module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + +/***/ }), +/* 94 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var create = __w_pdfjs_require__(74); +var getPrototypeOf = __w_pdfjs_require__(85); +var defineBuiltIn = __w_pdfjs_require__(52); +var wellKnownSymbol = __w_pdfjs_require__(38); +var IS_PURE = __w_pdfjs_require__(40); +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; +if ([].keys) { + arrayIterator = [].keys(); + if (!('next' in arrayIterator)) + BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) + IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { + var test = {}; + return IteratorPrototype[ITERATOR].call(test) !== test; +}); +if (NEW_ITERATOR_PROTOTYPE) + IteratorPrototype = {}; +else if (IS_PURE) + IteratorPrototype = create(IteratorPrototype); +if (!isCallable(IteratorPrototype[ITERATOR])) { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { + return this; + }); +} +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + +/***/ }), +/* 95 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var defineProperty = (__w_pdfjs_require__(49).f); +var hasOwn = __w_pdfjs_require__(43); +var wellKnownSymbol = __w_pdfjs_require__(38); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +module.exports = function (target, TAG, STATIC) { + if (target && !STATIC) + target = target.prototype; + if (target && !hasOwn(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { + configurable: true, + value: TAG + }); + } +}; + +/***/ }), +/* 96 */ +/***/ ((module) => { + +module.exports = function (value, done) { + return { + value: value, + done: done + }; +}; + +/***/ }), +/* 97 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(84); +var defineBuiltIn = __w_pdfjs_require__(52); +var toString = __w_pdfjs_require__(98); +if (!TO_STRING_TAG_SUPPORT) { + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); +} + +/***/ }), +/* 98 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(84); +var classof = __w_pdfjs_require__(83); +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; +}; + +/***/ }), +/* 99 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +__w_pdfjs_require__(100); + +/***/ }), +/* 100 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var collection = __w_pdfjs_require__(101); +var collectionStrong = __w_pdfjs_require__(118); +collection('Map', function (init) { + return function Map() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}, collectionStrong); + +/***/ }), +/* 101 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var $ = __w_pdfjs_require__(6); +var global = __w_pdfjs_require__(7); +var uncurryThis = __w_pdfjs_require__(17); +var isForced = __w_pdfjs_require__(72); +var defineBuiltIn = __w_pdfjs_require__(52); +var InternalMetadataModule = __w_pdfjs_require__(102); +var iterate = __w_pdfjs_require__(109); +var anInstance = __w_pdfjs_require__(115); +var isCallable = __w_pdfjs_require__(25); +var isNullOrUndefined = __w_pdfjs_require__(21); +var isObject = __w_pdfjs_require__(24); +var fails = __w_pdfjs_require__(10); +var checkCorrectnessOfIteration = __w_pdfjs_require__(116); +var setToStringTag = __w_pdfjs_require__(95); +var inheritIfRequired = __w_pdfjs_require__(117); +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; + }); + }; + var REPLACE = isForced(CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + }))); + if (REPLACE) { + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { + new NativeConstructor(iterable); + }); + var BUGGY_ZERO = !IS_WEAK && fails(function () { + var $instance = new NativeConstructor(); + var index = 5; + while (index--) + $instance[ADDER](index, index); + return !$instance.has(-0); + }); + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) + iterate(iterable, that[ADDER], { + that: that, + AS_ENTRIES: IS_MAP + }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if (BUGGY_ZERO || HASNT_CHAINING) + fixMethod(ADDER); + if (IS_WEAK && NativePrototype.clear) + delete NativePrototype.clear; + } + exported[CONSTRUCTOR_NAME] = Constructor; + $({ + global: true, + constructor: true, + forced: Constructor != NativeConstructor + }, exported); + setToStringTag(Constructor, CONSTRUCTOR_NAME); + if (!IS_WEAK) + common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + return Constructor; +}; + +/***/ }), +/* 102 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var $ = __w_pdfjs_require__(6); +var uncurryThis = __w_pdfjs_require__(17); +var hiddenKeys = __w_pdfjs_require__(59); +var isObject = __w_pdfjs_require__(24); +var hasOwn = __w_pdfjs_require__(43); +var defineProperty = (__w_pdfjs_require__(49).f); +var getOwnPropertyNamesModule = __w_pdfjs_require__(62); +var getOwnPropertyNamesExternalModule = __w_pdfjs_require__(103); +var isExtensible = __w_pdfjs_require__(106); +var uid = __w_pdfjs_require__(45); +var FREEZING = __w_pdfjs_require__(108); +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; +var setMetadata = function (it) { + defineProperty(it, METADATA, { + value: { + objectID: 'O' + id++, + weakData: {} + } + }); +}; +var fastKey = function (it, create) { + if (!isObject(it)) + return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + if (!isExtensible(it)) + return 'F'; + if (!create) + return 'E'; + setMetadata(it); + } + return it[METADATA].objectID; +}; +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + if (!isExtensible(it)) + return true; + if (!create) + return false; + setMetadata(it); + } + return it[METADATA].weakData; +}; +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) + setMetadata(it); + return it; +}; +var enable = function () { + meta.enable = function () { + }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } + return result; + }; + $({ + target: 'Object', + stat: true, + forced: true + }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f }); + } +}; +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze +}; +hiddenKeys[METADATA] = true; + +/***/ }), +/* 103 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var classof = __w_pdfjs_require__(18); +var toIndexedObject = __w_pdfjs_require__(15); +var $getOwnPropertyNames = (__w_pdfjs_require__(62).f); +var arraySlice = __w_pdfjs_require__(104); +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; +var getWindowNames = function (it) { + try { + return $getOwnPropertyNames(it); + } catch (error) { + return arraySlice(windowNames); + } +}; +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it)); +}; + +/***/ }), +/* 104 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var toAbsoluteIndex = __w_pdfjs_require__(65); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var createProperty = __w_pdfjs_require__(105); +var $Array = Array; +var max = Math.max; +module.exports = function (O, start, end) { + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) + createProperty(result, n, O[k]); + result.length = n; + return result; +}; + +/***/ }), +/* 105 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var toPropertyKey = __w_pdfjs_require__(22); +var definePropertyModule = __w_pdfjs_require__(49); +var createPropertyDescriptor = __w_pdfjs_require__(14); +module.exports = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; +}; + +/***/ }), +/* 106 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +var isObject = __w_pdfjs_require__(24); +var classof = __w_pdfjs_require__(18); +var ARRAY_BUFFER_NON_EXTENSIBLE = __w_pdfjs_require__(107); +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { + $isExtensible(1); +}); +module.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function isExtensible(it) { + if (!isObject(it)) + return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') + return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; + +/***/ }), +/* 107 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + if (Object.isExtensible(buffer)) + Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); + +/***/ }), +/* 108 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +module.exports = !fails(function () { + return Object.isExtensible(Object.preventExtensions({})); +}); + +/***/ }), +/* 109 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var bind = __w_pdfjs_require__(110); +var call = __w_pdfjs_require__(11); +var anObject = __w_pdfjs_require__(51); +var tryToString = __w_pdfjs_require__(36); +var isArrayIteratorMethod = __w_pdfjs_require__(111); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var isPrototypeOf = __w_pdfjs_require__(29); +var getIterator = __w_pdfjs_require__(112); +var getIteratorMethod = __w_pdfjs_require__(113); +var iteratorClose = __w_pdfjs_require__(114); +var $TypeError = TypeError; +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; +var ResultPrototype = Result.prototype; +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + var stop = function (condition) { + if (iterator) + iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } + return INTERRUPTED ? fn(value, stop) : fn(value); + }; + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (!iterFn) + throw $TypeError(tryToString(iterable) + ' is not iterable'); + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); + } + iterator = getIterator(iterable, iterFn); + } + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); +}; + +/***/ }), +/* 110 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var aCallable = __w_pdfjs_require__(35); +var NATIVE_BIND = __w_pdfjs_require__(12); +var bind = uncurryThis(uncurryThis.bind); +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () { + return fn.apply(that, arguments); + }; +}; + +/***/ }), +/* 111 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var wellKnownSymbol = __w_pdfjs_require__(38); +var Iterators = __w_pdfjs_require__(91); +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; + +/***/ }), +/* 112 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var call = __w_pdfjs_require__(11); +var aCallable = __w_pdfjs_require__(35); +var anObject = __w_pdfjs_require__(51); +var tryToString = __w_pdfjs_require__(36); +var getIteratorMethod = __w_pdfjs_require__(113); +var $TypeError = TypeError; +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) + return anObject(call(iteratorMethod, argument)); + throw $TypeError(tryToString(argument) + ' is not iterable'); +}; + +/***/ }), +/* 113 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var classof = __w_pdfjs_require__(83); +var getMethod = __w_pdfjs_require__(34); +var isNullOrUndefined = __w_pdfjs_require__(21); +var Iterators = __w_pdfjs_require__(91); +var wellKnownSymbol = __w_pdfjs_require__(38); +var ITERATOR = wellKnownSymbol('iterator'); +module.exports = function (it) { + if (!isNullOrUndefined(it)) + return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)]; +}; + +/***/ }), +/* 114 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var call = __w_pdfjs_require__(11); +var anObject = __w_pdfjs_require__(51); +var getMethod = __w_pdfjs_require__(34); +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') + throw value; + return value; + } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') + throw value; + if (innerError) + throw innerResult; + anObject(innerResult); + return value; +}; + +/***/ }), +/* 115 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isPrototypeOf = __w_pdfjs_require__(29); +var $TypeError = TypeError; +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) + return it; + throw $TypeError('Incorrect invocation'); +}; + +/***/ }), +/* 116 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var wellKnownSymbol = __w_pdfjs_require__(38); +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + Array.from(iteratorWithReturn, function () { + throw 2; + }); +} catch (error) { +} +module.exports = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) + return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { + } + return ITERATION_SUPPORT; +}; + +/***/ }), +/* 117 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var setPrototypeOf = __w_pdfjs_require__(87); +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) + setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + +/***/ }), +/* 118 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var defineProperty = (__w_pdfjs_require__(49).f); +var create = __w_pdfjs_require__(74); +var defineBuiltIns = __w_pdfjs_require__(119); +var bind = __w_pdfjs_require__(110); +var anInstance = __w_pdfjs_require__(115); +var isNullOrUndefined = __w_pdfjs_require__(21); +var iterate = __w_pdfjs_require__(109); +var defineIterator = __w_pdfjs_require__(92); +var createIterResultObject = __w_pdfjs_require__(96); +var setSpecies = __w_pdfjs_require__(120); +var DESCRIPTORS = __w_pdfjs_require__(9); +var fastKey = (__w_pdfjs_require__(102).fastKey); +var InternalStateModule = __w_pdfjs_require__(56); +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 + }); + if (!DESCRIPTORS) + that.size = 0; + if (!isNullOrUndefined(iterable)) + iterate(iterable, that[ADDER], { + that: that, + AS_ENTRIES: IS_MAP + }); + }); + var Prototype = Constructor.prototype; + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + if (entry) { + entry.value = value; + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) + state.first = entry; + if (previous) + previous.next = entry; + if (DESCRIPTORS) + state.size++; + else + that.size++; + if (index !== 'F') + state.index[index] = entry; + } + return that; + }; + var getEntry = function (that, key) { + var state = getInternalState(that); + var index = fastKey(key); + var entry; + if (index !== 'F') + return state.index[index]; + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) + return entry; + } + }; + defineBuiltIns(Prototype, { + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) + entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS) + state.size = 0; + else + that.size = 0; + }, + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) + prev.next = next; + if (next) + next.previous = prev; + if (state.first == entry) + state.first = next; + if (state.last == entry) + state.last = prev; + if (DESCRIPTORS) + state.size--; + else + that.size--; + } + return !!entry; + }, + forEach: function forEach(callbackfn) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + while (entry && entry.removed) + entry = entry.previous; + } + }, + has: function has(key) { + return !!getEntry(this, key); + } + }); + defineBuiltIns(Prototype, IS_MAP ? { + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) + defineProperty(Prototype, 'size', { + get: function () { + return getInternalState(this).size; + } + }); + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined + }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + while (entry && entry.removed) + entry = entry.previous; + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + if (kind == 'keys') + return createIterResultObject(entry.key, false); + if (kind == 'values') + return createIterResultObject(entry.value, false); + return createIterResultObject([ + entry.key, + entry.value + ], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + setSpecies(CONSTRUCTOR_NAME); + } +}; + +/***/ }), +/* 119 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var defineBuiltIn = __w_pdfjs_require__(52); +module.exports = function (target, src, options) { + for (var key in src) + defineBuiltIn(target, key, src[key], options); + return target; +}; + +/***/ }), +/* 120 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var getBuiltIn = __w_pdfjs_require__(28); +var definePropertyModule = __w_pdfjs_require__(49); +var wellKnownSymbol = __w_pdfjs_require__(38); +var DESCRIPTORS = __w_pdfjs_require__(9); +var SPECIES = wellKnownSymbol('species'); +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + var defineProperty = definePropertyModule.f; + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineProperty(Constructor, SPECIES, { + configurable: true, + get: function () { + return this; + } + }); + } +}; + +/***/ }), +/* 121 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +__w_pdfjs_require__(122); + +/***/ }), +/* 122 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var collection = __w_pdfjs_require__(101); +var collectionStrong = __w_pdfjs_require__(118); +collection('Set', function (init) { + return function Set() { + return init(this, arguments.length ? arguments[0] : undefined); + }; +}, collectionStrong); + +/***/ }), +/* 123 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var IS_PURE = __w_pdfjs_require__(40); +var $ = __w_pdfjs_require__(6); +var global = __w_pdfjs_require__(7); +var getBuiltin = __w_pdfjs_require__(28); +var uncurryThis = __w_pdfjs_require__(17); +var fails = __w_pdfjs_require__(10); +var uid = __w_pdfjs_require__(45); +var isCallable = __w_pdfjs_require__(25); +var isConstructor = __w_pdfjs_require__(124); +var isNullOrUndefined = __w_pdfjs_require__(21); +var isObject = __w_pdfjs_require__(24); +var isSymbol = __w_pdfjs_require__(27); +var iterate = __w_pdfjs_require__(109); +var anObject = __w_pdfjs_require__(51); +var classof = __w_pdfjs_require__(83); +var hasOwn = __w_pdfjs_require__(43); +var createProperty = __w_pdfjs_require__(105); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var validateArgumentsLength = __w_pdfjs_require__(125); +var getRegExpFlags = __w_pdfjs_require__(126); +var ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(128); +var V8 = __w_pdfjs_require__(32); +var IS_BROWSER = __w_pdfjs_require__(129); +var IS_DENO = __w_pdfjs_require__(130); +var IS_NODE = __w_pdfjs_require__(131); +var Object = global.Object; +var Date = global.Date; +var Error = global.Error; +var EvalError = global.EvalError; +var RangeError = global.RangeError; +var ReferenceError = global.ReferenceError; +var SyntaxError = global.SyntaxError; +var TypeError = global.TypeError; +var URIError = global.URIError; +var PerformanceMark = global.PerformanceMark; +var WebAssembly = global.WebAssembly; +var CompileError = WebAssembly && WebAssembly.CompileError || Error; +var LinkError = WebAssembly && WebAssembly.LinkError || Error; +var RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error; +var DOMException = getBuiltin('DOMException'); +var Set = getBuiltin('Set'); +var Map = getBuiltin('Map'); +var MapPrototype = Map.prototype; +var mapHas = uncurryThis(MapPrototype.has); +var mapGet = uncurryThis(MapPrototype.get); +var mapSet = uncurryThis(MapPrototype.set); +var setAdd = uncurryThis(Set.prototype.add); +var objectKeys = getBuiltin('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7; + }) && structuredCloneImplementation; +}; +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ + a: error, + b: error + }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); + }); +}; +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3; + }); +}; +var nativeStructuredClone = global.structuredClone; +var FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone, Error) || !checkErrorsCloning(nativeStructuredClone, DOMException) || !checkNewErrorsCloningSemantic(nativeStructuredClone); +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); +}; +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); +}; +var createDataTransfer = function () { + var dataTransfer; + try { + dataTransfer = new global.DataTransfer(); + } catch (error) { + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { + } + } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; +}; +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) + throwUncloneable('Symbol'); + if (!isObject(value)) + return value; + if (map) { + if (mapHas(map, value)) + return mapGet(map, value); + } else + map = new Map(); + var type = classof(value); + var deep = false; + var C, name, cloned, dataTransfer, i, length, keys, key, source, target; + switch (type) { + case 'Array': + cloned = []; + deep = true; + break; + case 'Object': + cloned = {}; + deep = true; + break; + case 'Map': + cloned = new Map(); + deep = true; + break; + case 'Set': + cloned = new Set(); + deep = true; + break; + case 'RegExp': + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = getBuiltin('AggregateError')([]); + break; + case 'EvalError': + cloned = EvalError(); + break; + case 'RangeError': + cloned = RangeError(); + break; + case 'ReferenceError': + cloned = ReferenceError(); + break; + case 'SyntaxError': + cloned = SyntaxError(); + break; + case 'TypeError': + cloned = TypeError(); + break; + case 'URIError': + cloned = URIError(); + break; + case 'CompileError': + cloned = CompileError(); + break; + case 'LinkError': + cloned = LinkError(); + break; + case 'RuntimeError': + cloned = RuntimeError(); + break; + default: + cloned = Error(); + } + deep = true; + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + deep = true; + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + C = global[type]; + if (!isObject(C)) + throwUnpolyfillable(type); + cloned = new C(structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map)); + } catch (error) { + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + throwUnpolyfillable(type); + } + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + throwUnpolyfillable(type); + break; + case 'ImageData': + try { + cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, { colorSpace: value.colorSpace }); + } catch (error) { + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + throwUnpolyfillable(type); + } + break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + switch (type) { + case 'BigInt': + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'ArrayBuffer': + C = global.DataView; + if (!C && typeof value.slice != 'function') + throwUnpolyfillable(type); + try { + if (typeof value.slice == 'function') { + cloned = value.slice(0); + } else { + length = value.byteLength; + cloned = new ArrayBuffer(length); + source = new C(value); + target = new C(cloned); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); + } + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); + } + break; + case 'SharedArrayBuffer': + cloned = value; + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); + } + break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); + } + break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); + } + break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value); + } catch (error) { + throwUnpolyfillable(type); + } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) + throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); + } + break; + case 'File': + try { + cloned = new File([value], value.name, value); + } catch (error) { + throwUnpolyfillable(type); + } + break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + default: + throwUncloneable(type); + } + } + mapSet(map, value, cloned); + if (deep) + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } + break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name == 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + return cloned; +}; +var PROPER_TRANSFER = nativeStructuredClone && !fails(function () { + if (IS_DENO && V8 > 92 || IS_NODE && V8 > 94 || IS_BROWSER && V8 > 97) + return false; + var buffer = new ArrayBuffer(8); + var clone = nativeStructuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength != 0 || clone.byteLength != 8; +}); +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) + throw TypeError('Transfer option cannot be converted to a sequence'); + var transfer = []; + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + var i = 0; + var length = lengthOfArrayLike(transfer); + var value, type, C, transferredArray, transferred, canvas, context; + if (PROPER_TRANSFER) { + transferredArray = nativeStructuredClone(transfer, { transfer: transfer }); + while (i < length) + mapSet(map, transfer[i], transferredArray[i++]); + } else + while (i < length) { + value = transfer[i++]; + if (mapHas(map, value)) + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + type = classof(value); + switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) + throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { + } + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) + throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { + } + break; + case 'ArrayBuffer': + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + if (transferred === undefined) + throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + mapSet(map, value, transferred); + } +}; +$({ + global: true, + enumerable: true, + sham: !PROPER_TRANSFER, + forced: FORCED_REPLACEMENT +}, { + structuredClone: function structuredClone(value) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map; + if (transfer !== undefined) { + map = new Map(); + tryToTransfer(transfer, map); + } + return structuredCloneInternal(value, map); + } +}); + +/***/ }), +/* 124 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var uncurryThis = __w_pdfjs_require__(17); +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var classof = __w_pdfjs_require__(83); +var getBuiltIn = __w_pdfjs_require__(28); +var inspectSource = __w_pdfjs_require__(55); +var noop = function () { +}; +var empty = []; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': + return false; + } + try { + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; +isConstructorLegacy.sham = true; +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () { + called = true; + }) || called; +}) ? isConstructorLegacy : isConstructorModern; + +/***/ }), +/* 125 */ +/***/ ((module) => { + +var $TypeError = TypeError; +module.exports = function (passed, required) { + if (passed < required) + throw $TypeError('Not enough arguments'); + return passed; +}; + +/***/ }), +/* 126 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var call = __w_pdfjs_require__(11); +var hasOwn = __w_pdfjs_require__(43); +var isPrototypeOf = __w_pdfjs_require__(29); +var regExpFlags = __w_pdfjs_require__(127); +var RegExpPrototype = RegExp.prototype; +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags; +}; + +/***/ }), +/* 127 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var anObject = __w_pdfjs_require__(51); +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) + result += 'd'; + if (that.global) + result += 'g'; + if (that.ignoreCase) + result += 'i'; + if (that.multiline) + result += 'm'; + if (that.dotAll) + result += 's'; + if (that.unicode) + result += 'u'; + if (that.unicodeSets) + result += 'v'; + if (that.sticky) + result += 'y'; + return result; +}; + +/***/ }), +/* 128 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +var createPropertyDescriptor = __w_pdfjs_require__(14); +module.exports = !fails(function () { + var error = Error('a'); + if (!('stack' in error)) + return true; + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); + +/***/ }), +/* 129 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var IS_DENO = __w_pdfjs_require__(130); +var IS_NODE = __w_pdfjs_require__(131); +module.exports = !IS_DENO && !IS_NODE && typeof window == 'object' && typeof document == 'object'; + +/***/ }), +/* 130 */ +/***/ ((module) => { + +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + +/***/ }), +/* 131 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var classof = __w_pdfjs_require__(18); +var global = __w_pdfjs_require__(7); +module.exports = classof(global.process) == 'process'; + +/***/ }), +/* 132 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var global = __w_pdfjs_require__(7); +module.exports = global; + +/***/ }), +/* 133 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0; +exports.getDocument = getDocument; +exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; +exports.version = void 0; +var _util = __w_pdfjs_require__(1); +var _annotation_storage = __w_pdfjs_require__(134); +var _display_utils = __w_pdfjs_require__(137); +var _font_loader = __w_pdfjs_require__(140); +var _canvas = __w_pdfjs_require__(141); +var _worker_options = __w_pdfjs_require__(144); +var _is_node = __w_pdfjs_require__(3); +var _message_handler = __w_pdfjs_require__(145); +var _metadata = __w_pdfjs_require__(146); +var _optional_content_config = __w_pdfjs_require__(147); +var _transport_stream = __w_pdfjs_require__(148); +var _xfa_text = __w_pdfjs_require__(149); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError("attempted to " + action + " private static field before its declaration"); } } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +const DEFAULT_RANGE_CHUNK_SIZE = 65536; +const RENDERING_CANCELLED_TIMEOUT = 100; +let DefaultCanvasFactory = _display_utils.DOMCanvasFactory; +exports.DefaultCanvasFactory = DefaultCanvasFactory; +let DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory; +exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory; +let DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory; +exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory; +if (_is_node.isNodeJS) { + const { + NodeCanvasFactory, + NodeCMapReaderFactory, + NodeStandardFontDataFactory + } = __w_pdfjs_require__(150); + exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory; + exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory; + exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory; +} +let createPDFNetworkStream; +function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { + createPDFNetworkStream = pdfNetworkStreamFactory; +} +function getDocument(src) { + const task = new PDFDocumentLoadingTask(); + let source; + if (typeof src === "string" || src instanceof URL) { + source = { + url: src + }; + } else if ((0, _util.isArrayBuffer)(src)) { + source = { + data: src + }; + } else if (src instanceof PDFDataRangeTransport) { + source = { + range: src + }; + } else { + if (typeof src !== "object") { + throw new Error("Invalid parameter in getDocument, " + "need either string, URL, TypedArray, or parameter object."); + } + if (!src.url && !src.data && !src.range) { + throw new Error("Invalid parameter object: need either .data, .range or .url"); + } + source = src; + } + const params = Object.create(null); + let rangeTransport = null, + worker = null; + for (const key in source) { + const value = source[key]; + switch (key) { + case "url": + if (typeof window !== "undefined") { + try { + params[key] = new URL(value, window.location).href; + continue; + } catch (ex) { + (0, _util.warn)(`Cannot create valid URL: "${ex}".`); + } + } else if (typeof value === "string" || value instanceof URL) { + params[key] = value.toString(); + continue; + } + throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); + case "range": + rangeTransport = value; + continue; + case "worker": + worker = value; + continue; + case "data": + if (_is_node.isNodeJS && typeof Buffer !== "undefined" && value instanceof Buffer) { + params[key] = new Uint8Array(value); + } else if (value instanceof Uint8Array) { + break; + } else if (typeof value === "string") { + params[key] = (0, _util.stringToBytes)(value); + } else if (typeof value === "object" && value !== null && !isNaN(value.length)) { + params[key] = new Uint8Array(value); + } else if ((0, _util.isArrayBuffer)(value)) { + params[key] = new Uint8Array(value); + } else { + throw new Error("Invalid PDF binary data: either TypedArray, " + "string, or array-like object is expected in the data property."); + } + continue; + } + params[key] = value; + } + params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory; + params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory; + params.ignoreErrors = params.stopAtErrors !== true; + params.fontExtraProperties = params.fontExtraProperties === true; + params.pdfBug = params.pdfBug === true; + params.enableXfa = params.enableXfa === true; + if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) { + params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE; + } + if (typeof params.docBaseUrl !== "string" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) { + params.docBaseUrl = null; + } + if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) { + params.maxImageSize = -1; + } + if (typeof params.cMapUrl !== "string") { + params.cMapUrl = null; + } + if (typeof params.standardFontDataUrl !== "string") { + params.standardFontDataUrl = null; + } + if (typeof params.useWorkerFetch !== "boolean") { + params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory; + } + if (typeof params.isEvalSupported !== "boolean") { + params.isEvalSupported = true; + } + if (typeof params.isOffscreenCanvasSupported !== "boolean") { + params.isOffscreenCanvasSupported = !_is_node.isNodeJS; + } + if (typeof params.disableFontFace !== "boolean") { + params.disableFontFace = _is_node.isNodeJS; + } + if (typeof params.useSystemFonts !== "boolean") { + params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace; + } + if (typeof params.ownerDocument !== "object" || params.ownerDocument === null) { + params.ownerDocument = globalThis.document; + } + if (typeof params.disableRange !== "boolean") { + params.disableRange = false; + } + if (typeof params.disableStream !== "boolean") { + params.disableStream = false; + } + if (typeof params.disableAutoFetch !== "boolean") { + params.disableAutoFetch = false; + } + (0, _util.setVerbosityLevel)(params.verbosity); + if (!worker) { + const workerParams = { + verbosity: params.verbosity, + port: _worker_options.GlobalWorkerOptions.workerPort + }; + worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); + task._worker = worker; + } + const docId = task.docId; + worker.promise.then(function () { + if (task.destroyed) { + throw new Error("Loading aborted"); + } + const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId); + const networkStreamPromise = new Promise(function (resolve) { + let networkStream; + if (rangeTransport) { + networkStream = new _transport_stream.PDFDataTransportStream({ + length: params.length, + initialData: params.initialData, + progressiveDone: params.progressiveDone, + contentDispositionFilename: params.contentDispositionFilename, + disableRange: params.disableRange, + disableStream: params.disableStream + }, rangeTransport); + } else if (!params.data) { + networkStream = createPDFNetworkStream({ + url: params.url, + length: params.length, + httpHeaders: params.httpHeaders, + withCredentials: params.withCredentials, + rangeChunkSize: params.rangeChunkSize, + disableRange: params.disableRange, + disableStream: params.disableStream + }); + } + resolve(networkStream); + }); + return Promise.all([workerIdPromise, networkStreamPromise]).then(function (_ref) { + let [workerId, networkStream] = _ref; + if (task.destroyed) { + throw new Error("Loading aborted"); + } + const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); + const transport = new WorkerTransport(messageHandler, task, networkStream, params); + task._transport = transport; + messageHandler.send("Ready", null); + }); + }).catch(task._capability.reject); + return task; +} +async function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { + if (worker.destroyed) { + throw new Error("Worker was destroyed"); + } + if (pdfDataRangeTransport) { + source.length = pdfDataRangeTransport.length; + source.initialData = pdfDataRangeTransport.initialData; + source.progressiveDone = pdfDataRangeTransport.progressiveDone; + source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename; + } + const workerId = await worker.messageHandler.sendWithPromise("GetDocRequest", { + docId, + apiVersion: '3.0.279', + data: source.data, + password: source.password, + disableAutoFetch: source.disableAutoFetch, + rangeChunkSize: source.rangeChunkSize, + length: source.length, + docBaseUrl: source.docBaseUrl, + enableXfa: source.enableXfa, + evaluatorOptions: { + maxImageSize: source.maxImageSize, + disableFontFace: source.disableFontFace, + ignoreErrors: source.ignoreErrors, + isEvalSupported: source.isEvalSupported, + isOffscreenCanvasSupported: source.isOffscreenCanvasSupported, + fontExtraProperties: source.fontExtraProperties, + useSystemFonts: source.useSystemFonts, + cMapUrl: source.useWorkerFetch ? source.cMapUrl : null, + standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null + } + }); + if (source.data) { + source.data = null; + } + if (worker.destroyed) { + throw new Error("Worker was destroyed"); + } + return workerId; +} +class PDFDocumentLoadingTask { + constructor() { + var _PDFDocumentLoadingTa, _PDFDocumentLoadingTa2; + this._capability = (0, _util.createPromiseCapability)(); + this._transport = null; + this._worker = null; + this.docId = `d${(_classStaticPrivateFieldSpecSet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId, (_PDFDocumentLoadingTa = _classStaticPrivateFieldSpecGet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId), _PDFDocumentLoadingTa2 = _PDFDocumentLoadingTa++, _PDFDocumentLoadingTa)), _PDFDocumentLoadingTa2)}`; + this.destroyed = false; + this.onPassword = null; + this.onProgress = null; + this.onUnsupportedFeature = null; + } + get promise() { + return this._capability.promise; + } + async destroy() { + var _this$_transport; + this.destroyed = true; + await ((_this$_transport = this._transport) === null || _this$_transport === void 0 ? void 0 : _this$_transport.destroy()); + this._transport = null; + if (this._worker) { + this._worker.destroy(); + this._worker = null; + } + } +} +exports.PDFDocumentLoadingTask = PDFDocumentLoadingTask; +var _docId = { + writable: true, + value: 0 +}; +class PDFDataRangeTransport { + constructor(length, initialData) { + let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + this.length = length; + this.initialData = initialData; + this.progressiveDone = progressiveDone; + this.contentDispositionFilename = contentDispositionFilename; + this._rangeListeners = []; + this._progressListeners = []; + this._progressiveReadListeners = []; + this._progressiveDoneListeners = []; + this._readyCapability = (0, _util.createPromiseCapability)(); + } + addRangeListener(listener) { + this._rangeListeners.push(listener); + } + addProgressListener(listener) { + this._progressListeners.push(listener); + } + addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + } + addProgressiveDoneListener(listener) { + this._progressiveDoneListeners.push(listener); + } + onDataRange(begin, chunk) { + for (const listener of this._rangeListeners) { + listener(begin, chunk); + } + } + onDataProgress(loaded, total) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressListeners) { + listener(loaded, total); + } + }); + } + onDataProgressiveRead(chunk) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveReadListeners) { + listener(chunk); + } + }); + } + onDataProgressiveDone() { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveDoneListeners) { + listener(); + } + }); + } + transportReady() { + this._readyCapability.resolve(); + } + requestDataRange(begin, end) { + (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); + } + abort() {} +} +exports.PDFDataRangeTransport = PDFDataRangeTransport; +class PDFDocumentProxy { + constructor(pdfInfo, transport) { + this._pdfInfo = pdfInfo; + this._transport = transport; + } + get annotationStorage() { + return this._transport.annotationStorage; + } + get numPages() { + return this._pdfInfo.numPages; + } + get fingerprints() { + return this._pdfInfo.fingerprints; + } + get stats() { + return this._transport.stats; + } + get isPureXfa() { + return !!this._transport._htmlForXfa; + } + get allXfaHtml() { + return this._transport._htmlForXfa; + } + getPage(pageNumber) { + return this._transport.getPage(pageNumber); + } + getPageIndex(ref) { + return this._transport.getPageIndex(ref); + } + getDestinations() { + return this._transport.getDestinations(); + } + getDestination(id) { + return this._transport.getDestination(id); + } + getPageLabels() { + return this._transport.getPageLabels(); + } + getPageLayout() { + return this._transport.getPageLayout(); + } + getPageMode() { + return this._transport.getPageMode(); + } + getViewerPreferences() { + return this._transport.getViewerPreferences(); + } + getOpenAction() { + return this._transport.getOpenAction(); + } + getAttachments() { + return this._transport.getAttachments(); + } + getJavaScript() { + return this._transport.getJavaScript(); + } + getJSActions() { + return this._transport.getDocJSActions(); + } + getOutline() { + return this._transport.getOutline(); + } + getOptionalContentConfig() { + return this._transport.getOptionalContentConfig(); + } + getPermissions() { + return this._transport.getPermissions(); + } + getMetadata() { + return this._transport.getMetadata(); + } + getMarkInfo() { + return this._transport.getMarkInfo(); + } + getData() { + return this._transport.getData(); + } + saveDocument() { + return this._transport.saveDocument(); + } + getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; + } + cleanup() { + let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa); + } + destroy() { + return this.loadingTask.destroy(); + } + get loadingParams() { + return this._transport.loadingParams; + } + get loadingTask() { + return this._transport.loadingTask; + } + getFieldObjects() { + return this._transport.getFieldObjects(); + } + hasJSActions() { + return this._transport.hasJSActions(); + } + getCalculationOrderIds() { + return this._transport.getCalculationOrderIds(); + } +} +exports.PDFDocumentProxy = PDFDocumentProxy; +class PDFPageProxy { + constructor(pageIndex, pageInfo, transport, ownerDocument) { + let pdfBug = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + this._pageIndex = pageIndex; + this._pageInfo = pageInfo; + this._ownerDocument = ownerDocument; + this._transport = transport; + this._stats = pdfBug ? new _display_utils.StatTimer() : null; + this._pdfBug = pdfBug; + this.commonObjs = transport.commonObjs; + this.objs = new PDFObjects(); + this._bitmaps = new Set(); + this.cleanupAfterRender = false; + this.pendingCleanup = false; + this._intentStates = new Map(); + this._annotationPromises = new Map(); + this.destroyed = false; + } + get pageNumber() { + return this._pageIndex + 1; + } + get rotate() { + return this._pageInfo.rotate; + } + get ref() { + return this._pageInfo.ref; + } + get userUnit() { + return this._pageInfo.userUnit; + } + get view() { + return this._pageInfo.view; + } + getViewport() { + let { + scale, + rotation = this.rotate, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return new _display_utils.PageViewport({ + viewBox: this.view, + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + getAnnotations() { + let { + intent = "display" + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + const intentArgs = this._transport.getRenderingIntent(intent); + let promise = this._annotationPromises.get(intentArgs.cacheKey); + if (!promise) { + promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent); + this._annotationPromises.set(intentArgs.cacheKey, promise); + } + return promise; + } + getJSActions() { + return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex)); + } + async getXfa() { + var _this$_transport$_htm; + return ((_this$_transport$_htm = this._transport._htmlForXfa) === null || _this$_transport$_htm === void 0 ? void 0 : _this$_transport$_htm.children[this._pageIndex]) || null; + } + render(_ref2) { + var _this$_stats, _intentState; + let { + canvasContext, + viewport, + intent = "display", + annotationMode = _util.AnnotationMode.ENABLE, + transform = null, + canvasFactory = null, + background = null, + optionalContentConfigPromise = null, + annotationCanvasMap = null, + pageColors = null, + printAnnotationStorage = null + } = _ref2; + (_this$_stats = this._stats) === null || _this$_stats === void 0 ? void 0 : _this$_stats.time("Overall"); + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage); + this.pendingCleanup = false; + if (!optionalContentConfigPromise) { + optionalContentConfigPromise = this._transport.getOptionalContentConfig(); + } + let intentState = this._intentStates.get(intentArgs.cacheKey); + if (!intentState) { + intentState = Object.create(null); + this._intentStates.set(intentArgs.cacheKey, intentState); + } + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } + const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({ + ownerDocument: this._ownerDocument + }); + const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT); + if (!intentState.displayReadyCapability) { + var _this$_stats2; + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false, + separateAnnots: null + }; + (_this$_stats2 = this._stats) === null || _this$_stats2 === void 0 ? void 0 : _this$_stats2.time("Page Request"); + this._pumpOperatorList(intentArgs); + } + const complete = error => { + var _this$_stats3, _this$_stats4; + intentState.renderTasks.delete(internalRenderTask); + if (this.cleanupAfterRender || intentPrint) { + this.pendingCleanup = true; + } + this._tryCleanup(); + if (error) { + internalRenderTask.capability.reject(error); + this._abortOperatorList({ + intentState, + reason: error instanceof Error ? error : new Error(error) + }); + } else { + internalRenderTask.capability.resolve(); + } + (_this$_stats3 = this._stats) === null || _this$_stats3 === void 0 ? void 0 : _this$_stats3.timeEnd("Rendering"); + (_this$_stats4 = this._stats) === null || _this$_stats4 === void 0 ? void 0 : _this$_stats4.timeEnd("Overall"); + }; + const internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext, + viewport, + transform, + background + }, + objs: this.objs, + commonObjs: this.commonObjs, + annotationCanvasMap, + operatorList: intentState.operatorList, + pageIndex: this._pageIndex, + canvasFactory: canvasFactoryInstance, + useRequestAnimationFrame: !intentPrint, + pdfBug: this._pdfBug, + pageColors + }); + ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask); + const renderTask = internalRenderTask.task; + Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(_ref3 => { + var _this$_stats5; + let [transparency, optionalContentConfig] = _ref3; + if (this.pendingCleanup) { + complete(); + return; + } + (_this$_stats5 = this._stats) === null || _this$_stats5 === void 0 ? void 0 : _this$_stats5.time("Rendering"); + internalRenderTask.initializeGraphics({ + transparency, + optionalContentConfig + }); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + } + getOperatorList() { + let { + intent = "display", + annotationMode = _util.AnnotationMode.ENABLE, + printAnnotationStorage = null + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + intentState.renderTasks.delete(opListTask); + } + } + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true); + let intentState = this._intentStates.get(intentArgs.cacheKey); + if (!intentState) { + intentState = Object.create(null); + this._intentStates.set(intentArgs.cacheKey, intentState); + } + let opListTask; + if (!intentState.opListReadCapability) { + var _intentState2, _this$_stats6; + opListTask = Object.create(null); + opListTask.operatorListChanged = operatorListChanged; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false, + separateAnnots: null + }; + (_this$_stats6 = this._stats) === null || _this$_stats6 === void 0 ? void 0 : _this$_stats6.time("Page Request"); + this._pumpOperatorList(intentArgs); + } + return intentState.opListReadCapability.promise; + } + streamTextContent() { + let { + disableCombineTextItems = false, + includeMarkedContent = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + const TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream("GetTextContent", { + pageIndex: this._pageIndex, + combineTextItems: disableCombineTextItems !== true, + includeMarkedContent: includeMarkedContent === true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + size(textContent) { + return textContent.items.length; + } + }); + } + getTextContent() { + let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (this._transport._htmlForXfa) { + return this.getXfa().then(xfa => { + return _xfa_text.XfaText.textContent(xfa); + }); + } + const readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function (_ref4) { + let { + value, + done + } = _ref4; + if (done) { + resolve(textContent); + return; + } + Object.assign(textContent.styles, value.styles); + textContent.items.push(...value.items); + pump(); + }, reject); + } + const reader = readableStream.getReader(); + const textContent = { + items: [], + styles: Object.create(null) + }; + pump(); + }); + } + getStructTree() { + return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex)); + } + _destroy() { + this.destroyed = true; + const waitOn = []; + for (const intentState of this._intentStates.values()) { + this._abortOperatorList({ + intentState, + reason: new Error("Page was destroyed."), + force: true + }); + if (intentState.opListReadCapability) { + continue; + } + for (const internalRenderTask of intentState.renderTasks) { + waitOn.push(internalRenderTask.completed); + internalRenderTask.cancel(); + } + } + this.objs.clear(); + for (const bitmap of this._bitmaps) { + bitmap.close(); + } + this._bitmaps.clear(); + this._annotationPromises.clear(); + this._jsActionsPromise = null; + this._structTreePromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + } + cleanup() { + let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this.pendingCleanup = true; + return this._tryCleanup(resetStats); + } + _tryCleanup() { + let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!this.pendingCleanup) { + return false; + } + for (const { + renderTasks, + operatorList + } of this._intentStates.values()) { + if (renderTasks.size > 0 || !operatorList.lastChunk) { + return false; + } + } + this._intentStates.clear(); + this.objs.clear(); + this._annotationPromises.clear(); + this._jsActionsPromise = null; + this._structTreePromise = null; + if (resetStats && this._stats) { + this._stats = new _display_utils.StatTimer(); + } + for (const bitmap of this._bitmaps) { + bitmap.close(); + } + this._bitmaps.clear(); + this.pendingCleanup = false; + return true; + } + _startRenderPage(transparency, cacheKey) { + var _this$_stats7, _intentState$displayR; + const intentState = this._intentStates.get(cacheKey); + if (!intentState) { + return; + } + (_this$_stats7 = this._stats) === null || _this$_stats7 === void 0 ? void 0 : _this$_stats7.timeEnd("Page Request"); + (_intentState$displayR = intentState.displayReadyCapability) === null || _intentState$displayR === void 0 ? void 0 : _intentState$displayR.resolve(transparency); + } + _renderPageChunk(operatorListChunk, intentState) { + for (let i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots; + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + if (operatorListChunk.lastChunk) { + this._tryCleanup(); + } + } + _pumpOperatorList(_ref5) { + let { + renderingIntent, + cacheKey, + annotationStorageMap + } = _ref5; + const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", { + pageIndex: this._pageIndex, + intent: renderingIntent, + cacheKey, + annotationStorage: annotationStorageMap + }); + const reader = readableStream.getReader(); + const intentState = this._intentStates.get(cacheKey); + intentState.streamReader = reader; + const pump = () => { + reader.read().then(_ref6 => { + let { + value, + done + } = _ref6; + if (done) { + intentState.streamReader = null; + return; + } + if (this._transport.destroyed) { + return; + } + this._renderPageChunk(value, intentState); + pump(); + }, reason => { + intentState.streamReader = null; + if (this._transport.destroyed) { + return; + } + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + this._tryCleanup(); + } + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(reason); + } else if (intentState.opListReadCapability) { + intentState.opListReadCapability.reject(reason); + } else { + throw reason; + } + }); + }; + pump(); + } + _abortOperatorList(_ref7) { + let { + intentState, + reason, + force = false + } = _ref7; + if (!intentState.streamReader) { + return; + } + if (!force) { + if (intentState.renderTasks.size > 0) { + return; + } + if (reason instanceof _display_utils.RenderingCancelledException) { + intentState.streamReaderCancelTimeout = setTimeout(() => { + this._abortOperatorList({ + intentState, + reason, + force: true + }); + intentState.streamReaderCancelTimeout = null; + }, RENDERING_CANCELLED_TIMEOUT); + return; + } + } + intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {}); + intentState.streamReader = null; + if (this._transport.destroyed) { + return; + } + for (const [curCacheKey, curIntentState] of this._intentStates) { + if (curIntentState === intentState) { + this._intentStates.delete(curCacheKey); + break; + } + } + this.cleanup(); + } + get stats() { + return this._stats; + } +} +exports.PDFPageProxy = PDFPageProxy; +var _listeners = /*#__PURE__*/new WeakMap(); +var _deferred = /*#__PURE__*/new WeakMap(); +class LoopbackPort { + constructor() { + _classPrivateFieldInitSpec(this, _listeners, { + writable: true, + value: [] + }); + _classPrivateFieldInitSpec(this, _deferred, { + writable: true, + value: Promise.resolve() + }); + } + postMessage(obj, transfers) { + const event = { + data: structuredClone(obj, transfers) + }; + _classPrivateFieldGet(this, _deferred).then(() => { + for (const listener of _classPrivateFieldGet(this, _listeners)) { + listener.call(this, event); + } + }); + } + addEventListener(name, listener) { + _classPrivateFieldGet(this, _listeners).push(listener); + } + removeEventListener(name, listener) { + const i = _classPrivateFieldGet(this, _listeners).indexOf(listener); + _classPrivateFieldGet(this, _listeners).splice(i, 1); + } + terminate() { + _classPrivateFieldGet(this, _listeners).length = 0; + } +} +exports.LoopbackPort = LoopbackPort; +const PDFWorkerUtil = { + isWorkerDisabled: false, + fallbackWorkerSrc: null, + fakeWorkerId: 0 +}; +exports.PDFWorkerUtil = PDFWorkerUtil; +{ + if (_is_node.isNodeJS && typeof require === "function") { + PDFWorkerUtil.isWorkerDisabled = true; + PDFWorkerUtil.fallbackWorkerSrc = "./pdf.worker.js"; + } else if (typeof document === "object") { + var _document, _document$currentScri; + const pdfjsFilePath = (_document = document) === null || _document === void 0 ? void 0 : (_document$currentScri = _document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.src; + if (pdfjsFilePath) { + PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); + } + } + PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) { + let base; + try { + base = new URL(baseUrl); + if (!base.origin || base.origin === "null") { + return false; + } + } catch (e) { + return false; + } + const other = new URL(otherUrl, base); + return base.origin === other.origin; + }; + PDFWorkerUtil.createCDNWrapper = function (url) { + const wrapper = `importScripts("${url}");`; + return URL.createObjectURL(new Blob([wrapper])); + }; +} +class PDFWorker { + constructor() { + let { + name = null, + port = null, + verbosity = (0, _util.getVerbosityLevel)() + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (port && _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).has(port)) { + throw new Error("Cannot use more than one PDFWorker per port."); + } + this.name = name; + this.destroyed = false; + this.verbosity = verbosity; + this._readyCapability = (0, _util.createPromiseCapability)(); + this._port = null; + this._webWorker = null; + this._messageHandler = null; + if (port) { + _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).set(port, this); + this._initializeFromPort(port); + return; + } + this._initialize(); + } + get promise() { + return this._readyCapability.promise; + } + get port() { + return this._port; + } + get messageHandler() { + return this._messageHandler; + } + _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); + this._messageHandler.on("ready", function () {}); + this._readyCapability.resolve(); + this._messageHandler.send("configure", { + verbosity: this.verbosity + }); + } + _initialize() { + if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) { + let { + workerSrc + } = PDFWorker; + try { + if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) { + workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href); + } + const worker = new Worker(workerSrc); + const messageHandler = new _message_handler.MessageHandler("main", "worker", worker); + const terminateEarly = () => { + worker.removeEventListener("error", onWorkerError); + messageHandler.destroy(); + worker.terminate(); + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + } else { + this._setupFakeWorker(); + } + }; + const onWorkerError = () => { + if (!this._webWorker) { + terminateEarly(); + } + }; + worker.addEventListener("error", onWorkerError); + messageHandler.on("test", data => { + worker.removeEventListener("error", onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + if (data) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + this._readyCapability.resolve(); + messageHandler.send("configure", { + verbosity: this.verbosity + }); + } else { + this._setupFakeWorker(); + messageHandler.destroy(); + worker.terminate(); + } + }); + messageHandler.on("ready", data => { + worker.removeEventListener("error", onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + try { + sendTest(); + } catch (e) { + this._setupFakeWorker(); + } + }); + const sendTest = () => { + const testObj = new Uint8Array(); + messageHandler.send("test", testObj, [testObj.buffer]); + }; + sendTest(); + return; + } catch (e) { + (0, _util.info)("The worker has been disabled."); + } + } + this._setupFakeWorker(); + } + _setupFakeWorker() { + if (!PDFWorkerUtil.isWorkerDisabled) { + (0, _util.warn)("Setting up fake worker."); + PDFWorkerUtil.isWorkerDisabled = true; + } + PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => { + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + return; + } + const port = new LoopbackPort(); + this._port = port; + const id = `fake${PDFWorkerUtil.fakeWorkerId++}`; + const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); + WorkerMessageHandler.setup(workerHandler, port); + const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); + this._messageHandler = messageHandler; + this._readyCapability.resolve(); + messageHandler.send("configure", { + verbosity: this.verbosity + }); + }).catch(reason => { + this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`)); + }); + } + destroy() { + this.destroyed = true; + if (this._webWorker) { + this._webWorker.terminate(); + this._webWorker = null; + } + _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).delete(this._port); + this._port = null; + if (this._messageHandler) { + this._messageHandler.destroy(); + this._messageHandler = null; + } + } + static fromPort(params) { + if (!(params !== null && params !== void 0 && params.port)) { + throw new Error("PDFWorker.fromPort - invalid method signature."); + } + if (_classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).has(params.port)) { + return _classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).get(params.port); + } + return new PDFWorker(params); + } + static get workerSrc() { + if (_worker_options.GlobalWorkerOptions.workerSrc) { + return _worker_options.GlobalWorkerOptions.workerSrc; + } + if (PDFWorkerUtil.fallbackWorkerSrc !== null) { + if (!_is_node.isNodeJS) { + (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); + } + return PDFWorkerUtil.fallbackWorkerSrc; + } + throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); + } + static get _mainThreadWorkerMessageHandler() { + try { + var _globalThis$pdfjsWork; + return ((_globalThis$pdfjsWork = globalThis.pdfjsWorker) === null || _globalThis$pdfjsWork === void 0 ? void 0 : _globalThis$pdfjsWork.WorkerMessageHandler) || null; + } catch (ex) { + return null; + } + } + static get _setupFakeWorkerGlobal() { + const loader = async () => { + const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler; + if (mainWorkerMessageHandler) { + return mainWorkerMessageHandler; + } + if (_is_node.isNodeJS && typeof require === "function") { + const worker = eval("require")(this.workerSrc); + return worker.WorkerMessageHandler; + } + await (0, _display_utils.loadScript)(this.workerSrc); + return window.pdfjsWorker.WorkerMessageHandler; + }; + return (0, _util.shadow)(this, "_setupFakeWorkerGlobal", loader()); + } +} +exports.PDFWorker = PDFWorker; +var _workerPorts = { + writable: true, + value: new WeakMap() +}; +var _docStats = /*#__PURE__*/new WeakMap(); +var _pageCache = /*#__PURE__*/new WeakMap(); +var _pagePromises = /*#__PURE__*/new WeakMap(); +var _metadataPromise = /*#__PURE__*/new WeakMap(); +class WorkerTransport { + constructor(messageHandler, loadingTask, networkStream, params) { + _classPrivateFieldInitSpec(this, _docStats, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _pageCache, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _pagePromises, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _metadataPromise, { + writable: true, + value: null + }); + this.messageHandler = messageHandler; + this.loadingTask = loadingTask; + this.commonObjs = new PDFObjects(); + this.fontLoader = new _font_loader.FontLoader({ + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + ownerDocument: params.ownerDocument, + styleElement: params.styleElement + }); + this._params = params; + if (!params.useWorkerFetch) { + this.CMapReaderFactory = new params.CMapReaderFactory({ + baseUrl: params.cMapUrl, + isCompressed: params.cMapPacked + }); + this.StandardFontDataFactory = new params.StandardFontDataFactory({ + baseUrl: params.standardFontDataUrl + }); + } + this.destroyed = false; + this.destroyCapability = null; + this._passwordCapability = null; + this._networkStream = networkStream; + this._fullReader = null; + this._lastProgress = null; + this.downloadInfoCapability = (0, _util.createPromiseCapability)(); + this.setupMessageHandler(); + } + get annotationStorage() { + return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); + } + get stats() { + return _classPrivateFieldGet(this, _docStats); + } + getRenderingIntent(intent) { + let annotationMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.AnnotationMode.ENABLE; + let printAnnotationStorage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + let isOpList = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + let renderingIntent = _util.RenderingIntentFlag.DISPLAY; + let annotationMap = null; + switch (intent) { + case "any": + renderingIntent = _util.RenderingIntentFlag.ANY; + break; + case "display": + break; + case "print": + renderingIntent = _util.RenderingIntentFlag.PRINT; + break; + default: + (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`); + } + switch (annotationMode) { + case _util.AnnotationMode.DISABLE: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE; + break; + case _util.AnnotationMode.ENABLE: + break; + case _util.AnnotationMode.ENABLE_FORMS: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS; + break; + case _util.AnnotationMode.ENABLE_STORAGE: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE; + const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage; + annotationMap = annotationStorage.serializable; + break; + default: + (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`); + } + if (isOpList) { + renderingIntent += _util.RenderingIntentFlag.OPLIST; + } + return { + renderingIntent, + cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`, + annotationStorageMap: annotationMap + }; + } + destroy() { + if (this.destroyCapability) { + return this.destroyCapability.promise; + } + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); + if (this._passwordCapability) { + this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); + } + const waitOn = []; + for (const page of _classPrivateFieldGet(this, _pageCache).values()) { + waitOn.push(page._destroy()); + } + _classPrivateFieldGet(this, _pageCache).clear(); + _classPrivateFieldGet(this, _pagePromises).clear(); + if (this.hasOwnProperty("annotationStorage")) { + this.annotationStorage.resetModified(); + } + const terminated = this.messageHandler.sendWithPromise("Terminate", null); + waitOn.push(terminated); + Promise.all(waitOn).then(() => { + this.commonObjs.clear(); + this.fontLoader.clear(); + _classPrivateFieldSet(this, _metadataPromise, null); + this._getFieldObjectsPromise = null; + this._hasJSActionsPromise = null; + if (this._networkStream) { + this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); + } + if (this.messageHandler) { + this.messageHandler.destroy(); + this.messageHandler = null; + } + this.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + } + setupMessageHandler() { + const { + messageHandler, + loadingTask + } = this; + messageHandler.on("GetReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); + this._fullReader = this._networkStream.getFullReader(); + this._fullReader.onProgress = evt => { + this._lastProgress = { + loaded: evt.loaded, + total: evt.total + }; + }; + sink.onPull = () => { + this._fullReader.read().then(function (_ref8) { + let { + value, + done + } = _ref8; + if (done) { + sink.close(); + return; + } + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + sink.onCancel = reason => { + this._fullReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + throw readyReason; + }); + }; + }); + messageHandler.on("ReaderHeadersReady", data => { + const headersCapability = (0, _util.createPromiseCapability)(); + const fullReader = this._fullReader; + fullReader.headersReady.then(() => { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (this._lastProgress) { + var _loadingTask$onProgre; + (_loadingTask$onProgre = loadingTask.onProgress) === null || _loadingTask$onProgre === void 0 ? void 0 : _loadingTask$onProgre.call(loadingTask, this._lastProgress); + } + fullReader.onProgress = evt => { + var _loadingTask$onProgre2; + (_loadingTask$onProgre2 = loadingTask.onProgress) === null || _loadingTask$onProgre2 === void 0 ? void 0 : _loadingTask$onProgre2.call(loadingTask, { + loaded: evt.loaded, + total: evt.total + }); + }; + } + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }); + messageHandler.on("GetRangeReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); + const rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + if (!rangeReader) { + sink.close(); + return; + } + sink.onPull = () => { + rangeReader.read().then(function (_ref9) { + let { + value, + done + } = _ref9; + if (done) { + sink.close(); + return; + } + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + sink.onCancel = reason => { + rangeReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + throw readyReason; + }); + }; + }); + messageHandler.on("GetDoc", _ref10 => { + let { + pdfInfo + } = _ref10; + this._numPages = pdfInfo.numPages; + this._htmlForXfa = pdfInfo.htmlForXfa; + delete pdfInfo.htmlForXfa; + loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); + }); + messageHandler.on("DocException", function (ex) { + let reason; + switch (ex.name) { + case "PasswordException": + reason = new _util.PasswordException(ex.message, ex.code); + break; + case "InvalidPDFException": + reason = new _util.InvalidPDFException(ex.message); + break; + case "MissingPDFException": + reason = new _util.MissingPDFException(ex.message); + break; + case "UnexpectedResponseException": + reason = new _util.UnexpectedResponseException(ex.message, ex.status); + break; + case "UnknownErrorException": + reason = new _util.UnknownErrorException(ex.message, ex.details); + break; + default: + (0, _util.unreachable)("DocException - expected a valid Error."); + } + loadingTask._capability.reject(reason); + }); + messageHandler.on("PasswordRequest", exception => { + this._passwordCapability = (0, _util.createPromiseCapability)(); + if (loadingTask.onPassword) { + const updatePassword = password => { + if (password instanceof Error) { + this._passwordCapability.reject(password); + } else { + this._passwordCapability.resolve({ + password + }); + } + }; + try { + loadingTask.onPassword(updatePassword, exception.code); + } catch (ex) { + this._passwordCapability.reject(ex); + } + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); + } + return this._passwordCapability.promise; + }); + messageHandler.on("DataLoaded", data => { + var _loadingTask$onProgre3; + (_loadingTask$onProgre3 = loadingTask.onProgress) === null || _loadingTask$onProgre3 === void 0 ? void 0 : _loadingTask$onProgre3.call(loadingTask, { + loaded: data.length, + total: data.length + }); + this.downloadInfoCapability.resolve(data); + }); + messageHandler.on("StartRenderPage", data => { + if (this.destroyed) { + return; + } + const page = _classPrivateFieldGet(this, _pageCache).get(data.pageIndex); + page._startRenderPage(data.transparency, data.cacheKey); + }); + messageHandler.on("commonobj", _ref11 => { + var _globalThis$FontInspe; + let [id, type, exportedData] = _ref11; + if (this.destroyed) { + return; + } + if (this.commonObjs.has(id)) { + return; + } + switch (type) { + case "Font": + const params = this._params; + if ("error" in exportedData) { + const exportedError = exportedData.error; + (0, _util.warn)(`Error during font loading: ${exportedError}`); + this.commonObjs.resolve(id, exportedError); + break; + } + let fontRegistry = null; + if (params.pdfBug && (_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled) { + fontRegistry = { + registerFont(font, url) { + globalThis.FontInspector.fontAdded(font, url); + } + }; + } + const font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + fontRegistry + }); + this.fontLoader.bind(font).catch(reason => { + return messageHandler.sendWithPromise("FontFallback", { + id + }); + }).finally(() => { + if (!params.fontExtraProperties && font.data) { + font.data = null; + } + this.commonObjs.resolve(id, font); + }); + break; + case "FontPath": + case "Image": + this.commonObjs.resolve(id, exportedData); + break; + default: + throw new Error(`Got unknown common object type ${type}`); + } + }); + messageHandler.on("obj", _ref12 => { + let [id, pageIndex, type, imageData] = _ref12; + if (this.destroyed) { + return; + } + const pageProxy = _classPrivateFieldGet(this, _pageCache).get(pageIndex); + if (pageProxy.objs.has(id)) { + return; + } + switch (type) { + case "Image": + pageProxy.objs.resolve(id, imageData); + const MAX_IMAGE_SIZE_TO_STORE = 8000000; + if (imageData) { + let length; + if (imageData.bitmap) { + const { + bitmap, + width, + height + } = imageData; + length = width * height * 4; + pageProxy._bitmaps.add(bitmap); + } else { + var _imageData$data; + length = ((_imageData$data = imageData.data) === null || _imageData$data === void 0 ? void 0 : _imageData$data.length) || 0; + } + if (length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + } + break; + case "Pattern": + pageProxy.objs.resolve(id, imageData); + break; + default: + throw new Error(`Got unknown object type ${type}`); + } + }); + messageHandler.on("DocProgress", data => { + var _loadingTask$onProgre4; + if (this.destroyed) { + return; + } + (_loadingTask$onProgre4 = loadingTask.onProgress) === null || _loadingTask$onProgre4 === void 0 ? void 0 : _loadingTask$onProgre4.call(loadingTask, { + loaded: data.loaded, + total: data.total + }); + }); + messageHandler.on("DocStats", data => { + if (this.destroyed) { + return; + } + _classPrivateFieldSet(this, _docStats, Object.freeze({ + streamTypes: Object.freeze(data.streamTypes), + fontTypes: Object.freeze(data.fontTypes) + })); + }); + messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); + messageHandler.on("FetchBuiltInCMap", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); + } + if (!this.CMapReaderFactory) { + return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")); + } + return this.CMapReaderFactory.fetch(data); + }); + messageHandler.on("FetchStandardFontData", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); + } + if (!this.StandardFontDataFactory) { + return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.")); + } + return this.StandardFontDataFactory.fetch(data); + }); + } + _onUnsupportedFeature(_ref13) { + var _this$loadingTask$onU, _this$loadingTask; + let { + featureId + } = _ref13; + if (this.destroyed) { + return; + } + (_this$loadingTask$onU = (_this$loadingTask = this.loadingTask).onUnsupportedFeature) === null || _this$loadingTask$onU === void 0 ? void 0 : _this$loadingTask$onU.call(_this$loadingTask, featureId); + } + getData() { + return this.messageHandler.sendWithPromise("GetData", null); + } + saveDocument() { + var _this$_fullReader; + if (this.annotationStorage.size <= 0) { + (0, _util.warn)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); + } + return this.messageHandler.sendWithPromise("SaveDocument", { + isPureXfa: !!this._htmlForXfa, + numPages: this._numPages, + annotationStorage: this.annotationStorage.serializable, + filename: ((_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) ?? null + }).finally(() => { + this.annotationStorage.resetModified(); + }); + } + getPage(pageNumber) { + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error("Invalid page request.")); + } + const pageIndex = pageNumber - 1, + cachedPromise = _classPrivateFieldGet(this, _pagePromises).get(pageIndex); + if (cachedPromise) { + return cachedPromise; + } + const promise = this.messageHandler.sendWithPromise("GetPage", { + pageIndex + }).then(pageInfo => { + if (this.destroyed) { + throw new Error("Transport destroyed"); + } + const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug); + _classPrivateFieldGet(this, _pageCache).set(pageIndex, page); + return page; + }); + _classPrivateFieldGet(this, _pagePromises).set(pageIndex, promise); + return promise; + } + getPageIndex(ref) { + if (typeof ref !== "object" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) { + return Promise.reject(new Error("Invalid pageIndex request.")); + } + return this.messageHandler.sendWithPromise("GetPageIndex", { + num: ref.num, + gen: ref.gen + }); + } + getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise("GetAnnotations", { + pageIndex, + intent + }); + } + getFieldObjects() { + return this._getFieldObjectsPromise || (this._getFieldObjectsPromise = this.messageHandler.sendWithPromise("GetFieldObjects", null)); + } + hasJSActions() { + return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise("HasJSActions", null)); + } + getCalculationOrderIds() { + return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null); + } + getDestinations() { + return this.messageHandler.sendWithPromise("GetDestinations", null); + } + getDestination(id) { + if (typeof id !== "string") { + return Promise.reject(new Error("Invalid destination request.")); + } + return this.messageHandler.sendWithPromise("GetDestination", { + id + }); + } + getPageLabels() { + return this.messageHandler.sendWithPromise("GetPageLabels", null); + } + getPageLayout() { + return this.messageHandler.sendWithPromise("GetPageLayout", null); + } + getPageMode() { + return this.messageHandler.sendWithPromise("GetPageMode", null); + } + getViewerPreferences() { + return this.messageHandler.sendWithPromise("GetViewerPreferences", null); + } + getOpenAction() { + return this.messageHandler.sendWithPromise("GetOpenAction", null); + } + getAttachments() { + return this.messageHandler.sendWithPromise("GetAttachments", null); + } + getJavaScript() { + return this.messageHandler.sendWithPromise("GetJavaScript", null); + } + getDocJSActions() { + return this.messageHandler.sendWithPromise("GetDocJSActions", null); + } + getPageJSActions(pageIndex) { + return this.messageHandler.sendWithPromise("GetPageJSActions", { + pageIndex + }); + } + getStructTree(pageIndex) { + return this.messageHandler.sendWithPromise("GetStructTree", { + pageIndex + }); + } + getOutline() { + return this.messageHandler.sendWithPromise("GetOutline", null); + } + getOptionalContentConfig() { + return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(results => { + return new _optional_content_config.OptionalContentConfig(results); + }); + } + getPermissions() { + return this.messageHandler.sendWithPromise("GetPermissions", null); + } + getMetadata() { + return _classPrivateFieldGet(this, _metadataPromise) || _classPrivateFieldSet(this, _metadataPromise, this.messageHandler.sendWithPromise("GetMetadata", null).then(results => { + var _this$_fullReader2, _this$_fullReader3; + return { + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: ((_this$_fullReader2 = this._fullReader) === null || _this$_fullReader2 === void 0 ? void 0 : _this$_fullReader2.filename) ?? null, + contentLength: ((_this$_fullReader3 = this._fullReader) === null || _this$_fullReader3 === void 0 ? void 0 : _this$_fullReader3.contentLength) ?? null + }; + })); + } + getMarkInfo() { + return this.messageHandler.sendWithPromise("GetMarkInfo", null); + } + async startCleanup() { + let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.destroyed) { + return; + } + await this.messageHandler.sendWithPromise("Cleanup", null); + for (const page of _classPrivateFieldGet(this, _pageCache).values()) { + const cleanupSuccessful = page.cleanup(); + if (!cleanupSuccessful) { + throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`); + } + } + this.commonObjs.clear(); + if (!keepLoadedFonts) { + this.fontLoader.clear(); + } + _classPrivateFieldSet(this, _metadataPromise, null); + this._getFieldObjectsPromise = null; + this._hasJSActionsPromise = null; + } + get loadingParams() { + const params = this._params; + return (0, _util.shadow)(this, "loadingParams", { + disableAutoFetch: params.disableAutoFetch, + enableXfa: params.enableXfa + }); + } +} +var _objs = /*#__PURE__*/new WeakMap(); +var _ensureObj = /*#__PURE__*/new WeakSet(); +class PDFObjects { + constructor() { + _classPrivateMethodInitSpec(this, _ensureObj); + _classPrivateFieldInitSpec(this, _objs, { + writable: true, + value: Object.create(null) + }); + } + get(objId) { + let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (callback) { + const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId); + obj.capability.promise.then(() => callback(obj.data)); + return null; + } + const obj = _classPrivateFieldGet(this, _objs)[objId]; + if (!(obj !== null && obj !== void 0 && obj.capability.settled)) { + throw new Error(`Requesting object that isn't resolved yet ${objId}.`); + } + return obj.data; + } + has(objId) { + const obj = _classPrivateFieldGet(this, _objs)[objId]; + return (obj === null || obj === void 0 ? void 0 : obj.capability.settled) || false; + } + resolve(objId) { + let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId); + obj.data = data; + obj.capability.resolve(); + } + clear() { + _classPrivateFieldSet(this, _objs, Object.create(null)); + } +} +function _ensureObj2(objId) { + const obj = _classPrivateFieldGet(this, _objs)[objId]; + if (obj) { + return obj; + } + return _classPrivateFieldGet(this, _objs)[objId] = { + capability: (0, _util.createPromiseCapability)(), + data: null + }; +} +var _internalRenderTask = /*#__PURE__*/new WeakMap(); +class RenderTask { + constructor(internalRenderTask) { + _classPrivateFieldInitSpec(this, _internalRenderTask, { + writable: true, + value: null + }); + _classPrivateFieldSet(this, _internalRenderTask, internalRenderTask); + this.onContinue = null; + } + get promise() { + return _classPrivateFieldGet(this, _internalRenderTask).capability.promise; + } + cancel() { + _classPrivateFieldGet(this, _internalRenderTask).cancel(); + } + get separateAnnots() { + const { + separateAnnots + } = _classPrivateFieldGet(this, _internalRenderTask).operatorList; + if (!separateAnnots) { + return false; + } + const { + annotationCanvasMap + } = _classPrivateFieldGet(this, _internalRenderTask); + return separateAnnots.form || separateAnnots.canvas && (annotationCanvasMap === null || annotationCanvasMap === void 0 ? void 0 : annotationCanvasMap.size) > 0; + } +} +exports.RenderTask = RenderTask; +class InternalRenderTask { + constructor(_ref14) { + let { + callback, + params, + objs, + commonObjs, + annotationCanvasMap, + operatorList, + pageIndex, + canvasFactory, + useRequestAnimationFrame = false, + pdfBug = false, + pageColors = null + } = _ref14; + this.callback = callback; + this.params = params; + this.objs = objs; + this.commonObjs = commonObjs; + this.annotationCanvasMap = annotationCanvasMap; + this.operatorListIdx = null; + this.operatorList = operatorList; + this._pageIndex = pageIndex; + this.canvasFactory = canvasFactory; + this._pdfBug = pdfBug; + this.pageColors = pageColors; + this.running = false; + this.graphicsReadyCallback = null; + this.graphicsReady = false; + this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; + this.cancelled = false; + this.capability = (0, _util.createPromiseCapability)(); + this.task = new RenderTask(this); + this._cancelBound = this.cancel.bind(this); + this._continueBound = this._continue.bind(this); + this._scheduleNextBound = this._scheduleNext.bind(this); + this._nextBound = this._next.bind(this); + this._canvas = params.canvasContext.canvas; + } + get completed() { + return this.capability.promise.catch(function () {}); + } + initializeGraphics(_ref15) { + var _globalThis$StepperMa, _this$graphicsReadyCa; + let { + transparency = false, + optionalContentConfig + } = _ref15; + if (this.cancelled) { + return; + } + if (this._canvas) { + if (_classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).has(this._canvas)) { + throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); + } + _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).add(this._canvas); + } + if (this._pdfBug && (_globalThis$StepperMa = globalThis.StepperManager) !== null && _globalThis$StepperMa !== void 0 && _globalThis$StepperMa.enabled) { + this.stepper = globalThis.StepperManager.create(this._pageIndex); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + const { + canvasContext, + viewport, + transform, + background + } = this.params; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, optionalContentConfig, this.annotationCanvasMap, this.pageColors); + this.gfx.beginDrawing({ + transform, + viewport, + transparency, + background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + (_this$graphicsReadyCa = this.graphicsReadyCallback) === null || _this$graphicsReadyCa === void 0 ? void 0 : _this$graphicsReadyCa.call(this); + } + cancel() { + var _this$gfx; + let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + this.running = false; + this.cancelled = true; + (_this$gfx = this.gfx) === null || _this$gfx === void 0 ? void 0 : _this$gfx.endDrawing(); + if (this._canvas) { + _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas); + } + this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, "canvas")); + } + operatorListChanged() { + var _this$stepper; + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; + } + return; + } + (_this$stepper = this.stepper) === null || _this$stepper === void 0 ? void 0 : _this$stepper.updateOperatorList(this.operatorList); + if (this.running) { + return; + } + this._continue(); + } + _continue() { + this.running = true; + if (this.cancelled) { + return; + } + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + } + _scheduleNext() { + if (this._useRequestAnimationFrame) { + window.requestAnimationFrame(() => { + this._nextBound().catch(this._cancelBound); + }); + } else { + Promise.resolve().then(this._nextBound).catch(this._cancelBound); + } + } + async _next() { + if (this.cancelled) { + return; + } + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + if (this.operatorListIdx === this.operatorList.argsArray.length) { + this.running = false; + if (this.operatorList.lastChunk) { + this.gfx.endDrawing(); + if (this._canvas) { + _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas); + } + this.callback(); + } + } + } +} +var _canvasInUse = { + writable: true, + value: new WeakSet() +}; +const version = '3.0.279'; +exports.version = version; +const build = 'd0823066c'; +exports.build = build; + +/***/ }), +/* 134 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0; +var _util = __w_pdfjs_require__(1); +var _editor = __w_pdfjs_require__(135); +var _murmurhash = __w_pdfjs_require__(139); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _setModified = /*#__PURE__*/new WeakSet(); +class AnnotationStorage { + constructor() { + _classPrivateMethodInitSpec(this, _setModified); + this._storage = new Map(); + this._modified = false; + this.onSetModified = null; + this.onResetModified = null; + this.onAnnotationEditor = null; + } + getValue(key, defaultValue) { + const value = this._storage.get(key); + if (value === undefined) { + return defaultValue; + } + return Object.assign(defaultValue, value); + } + getRawValue(key) { + return this._storage.get(key); + } + remove(key) { + this._storage.delete(key); + if (this._storage.size === 0) { + this.resetModified(); + } + if (typeof this.onAnnotationEditor === "function") { + for (const value of this._storage.values()) { + if (value instanceof _editor.AnnotationEditor) { + return; + } + } + this.onAnnotationEditor(null); + } + } + setValue(key, value) { + const obj = this._storage.get(key); + let modified = false; + if (obj !== undefined) { + for (const [entry, val] of Object.entries(value)) { + if (obj[entry] !== val) { + modified = true; + obj[entry] = val; + } + } + } else { + modified = true; + this._storage.set(key, value); + } + if (modified) { + _classPrivateMethodGet(this, _setModified, _setModified2).call(this); + } + if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === "function") { + this.onAnnotationEditor(value.constructor._type); + } + } + has(key) { + return this._storage.has(key); + } + getAll() { + return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null; + } + get size() { + return this._storage.size; + } + resetModified() { + if (this._modified) { + this._modified = false; + if (typeof this.onResetModified === "function") { + this.onResetModified(); + } + } + } + get print() { + return new PrintAnnotationStorage(this); + } + get serializable() { + if (this._storage.size === 0) { + return null; + } + const clone = new Map(); + for (const [key, val] of this._storage) { + const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val; + if (serialized) { + clone.set(key, serialized); + } + } + return clone; + } + static getHash(map) { + if (!map) { + return ""; + } + const hash = new _murmurhash.MurmurHash3_64(); + for (const [key, val] of map) { + hash.update(`${key}:${JSON.stringify(val)}`); + } + return hash.hexdigest(); + } +} +exports.AnnotationStorage = AnnotationStorage; +function _setModified2() { + if (!this._modified) { + this._modified = true; + if (typeof this.onSetModified === "function") { + this.onSetModified(); + } + } +} +var _serializable = /*#__PURE__*/new WeakMap(); +class PrintAnnotationStorage extends AnnotationStorage { + constructor(parent) { + super(); + _classPrivateFieldInitSpec(this, _serializable, { + writable: true, + value: null + }); + _classPrivateFieldSet(this, _serializable, structuredClone(parent.serializable)); + } + get print() { + (0, _util.unreachable)("Should not call PrintAnnotationStorage.print"); + } + get serializable() { + return _classPrivateFieldGet(this, _serializable); + } +} +exports.PrintAnnotationStorage = PrintAnnotationStorage; + +/***/ }), +/* 135 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditor = void 0; +var _tools = __w_pdfjs_require__(136); +var _util = __w_pdfjs_require__(1); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +var _boundFocusin = /*#__PURE__*/new WeakMap(); +var _boundFocusout = /*#__PURE__*/new WeakMap(); +var _hasBeenSelected = /*#__PURE__*/new WeakMap(); +var _isEditing = /*#__PURE__*/new WeakMap(); +var _isInEditMode = /*#__PURE__*/new WeakMap(); +var _zIndex = /*#__PURE__*/new WeakMap(); +class AnnotationEditor { + constructor(parameters) { + _classPrivateFieldInitSpec(this, _boundFocusin, { + writable: true, + value: this.focusin.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundFocusout, { + writable: true, + value: this.focusout.bind(this) + }); + _classPrivateFieldInitSpec(this, _hasBeenSelected, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isEditing, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isInEditMode, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _zIndex, { + writable: true, + value: AnnotationEditor._zIndex++ + }); + if (this.constructor === AnnotationEditor) { + (0, _util.unreachable)("Cannot initialize AnnotationEditor."); + } + this.parent = parameters.parent; + this.id = parameters.id; + this.width = this.height = null; + this.pageIndex = parameters.parent.pageIndex; + this.name = parameters.name; + this.div = null; + const [width, height] = this.parent.viewportBaseDimensions; + this.x = parameters.x / width; + this.y = parameters.y / height; + this.rotation = this.parent.viewport.rotation; + this.isAttachedToDOM = false; + } + static get _defaultLineColor() { + return (0, _util.shadow)(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText")); + } + setInBackground() { + this.div.style.zIndex = 0; + } + setInForeground() { + this.div.style.zIndex = _classPrivateFieldGet(this, _zIndex); + } + focusin(event) { + if (!_classPrivateFieldGet(this, _hasBeenSelected)) { + this.parent.setSelected(this); + } else { + _classPrivateFieldSet(this, _hasBeenSelected, false); + } + } + focusout(event) { + if (!this.isAttachedToDOM) { + return; + } + const target = event.relatedTarget; + if (target !== null && target !== void 0 && target.closest(`#${this.id}`)) { + return; + } + event.preventDefault(); + if (!this.parent.isMultipleSelection) { + this.commitOrRemove(); + } + } + commitOrRemove() { + if (this.isEmpty()) { + this.remove(); + } else { + this.commit(); + } + } + commit() { + this.parent.addToAnnotationStorage(this); + } + dragstart(event) { + const rect = this.parent.div.getBoundingClientRect(); + this.startX = event.clientX - rect.x; + this.startY = event.clientY - rect.y; + event.dataTransfer.setData("text/plain", this.id); + event.dataTransfer.effectAllowed = "move"; + } + setAt(x, y, tx, ty) { + const [width, height] = this.parent.viewportBaseDimensions; + [tx, ty] = this.screenToPageTranslation(tx, ty); + this.x = (x + tx) / width; + this.y = (y + ty) / height; + this.div.style.left = `${100 * this.x}%`; + this.div.style.top = `${100 * this.y}%`; + } + translate(x, y) { + const [width, height] = this.parent.viewportBaseDimensions; + [x, y] = this.screenToPageTranslation(x, y); + this.x += x / width; + this.y += y / height; + this.div.style.left = `${100 * this.x}%`; + this.div.style.top = `${100 * this.y}%`; + } + screenToPageTranslation(x, y) { + const { + rotation + } = this.parent.viewport; + switch (rotation) { + case 90: + return [y, -x]; + case 180: + return [-x, -y]; + case 270: + return [-y, x]; + default: + return [x, y]; + } + } + setDims(width, height) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.div.style.width = `${100 * width / parentWidth}%`; + this.div.style.height = `${100 * height / parentHeight}%`; + } + fixDims() { + const { + style + } = this.div; + const { + height, + width + } = style; + const widthPercent = width.endsWith("%"); + const heightPercent = height.endsWith("%"); + if (widthPercent && heightPercent) { + return; + } + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + if (!widthPercent) { + style.width = `${100 * parseFloat(width) / parentWidth}%`; + } + if (!heightPercent) { + style.height = `${100 * parseFloat(height) / parentHeight}%`; + } + } + getInitialTranslation() { + return [0, 0]; + } + render() { + this.div = document.createElement("div"); + this.div.setAttribute("data-editor-rotation", (360 - this.rotation) % 360); + this.div.className = this.name; + this.div.setAttribute("id", this.id); + this.div.setAttribute("tabIndex", 0); + this.setInForeground(); + this.div.addEventListener("focusin", _classPrivateFieldGet(this, _boundFocusin)); + this.div.addEventListener("focusout", _classPrivateFieldGet(this, _boundFocusout)); + const [tx, ty] = this.getInitialTranslation(); + this.translate(tx, ty); + (0, _tools.bindEvents)(this, this.div, ["dragstart", "pointerdown"]); + return this.div; + } + pointerdown(event) { + const isMac = _tools.KeyboardManager.platform.isMac; + if (event.button !== 0 || event.ctrlKey && isMac) { + event.preventDefault(); + return; + } + if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) { + this.parent.toggleSelected(this); + } else { + this.parent.setSelected(this); + } + _classPrivateFieldSet(this, _hasBeenSelected, true); + } + getRect(tx, ty) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + const [pageWidth, pageHeight] = this.parent.pageDimensions; + const shiftX = pageWidth * tx / parentWidth; + const shiftY = pageHeight * ty / parentHeight; + const x = this.x * pageWidth; + const y = this.y * pageHeight; + const width = this.width * pageWidth; + const height = this.height * pageHeight; + switch (this.rotation) { + case 0: + return [x + shiftX, pageHeight - y - shiftY - height, x + shiftX + width, pageHeight - y - shiftY]; + case 90: + return [x + shiftY, pageHeight - y + shiftX, x + shiftY + height, pageHeight - y + shiftX + width]; + case 180: + return [x - shiftX - width, pageHeight - y + shiftY, x - shiftX, pageHeight - y + shiftY + height]; + case 270: + return [x - shiftY - height, pageHeight - y - shiftX - width, x - shiftY, pageHeight - y - shiftX]; + default: + throw new Error("Invalid rotation"); + } + } + getRectInCurrentCoords(rect, pageHeight) { + const [x1, y1, x2, y2] = rect; + const width = x2 - x1; + const height = y2 - y1; + switch (this.rotation) { + case 0: + return [x1, pageHeight - y2, width, height]; + case 90: + return [x1, pageHeight - y1, height, width]; + case 180: + return [x2, pageHeight - y1, width, height]; + case 270: + return [x2, pageHeight - y2, height, width]; + default: + throw new Error("Invalid rotation"); + } + } + onceAdded() {} + isEmpty() { + return false; + } + enableEditMode() { + _classPrivateFieldSet(this, _isInEditMode, true); + } + disableEditMode() { + _classPrivateFieldSet(this, _isInEditMode, false); + } + isInEditMode() { + return _classPrivateFieldGet(this, _isInEditMode); + } + shouldGetKeyboardEvents() { + return false; + } + needsToBeRebuilt() { + return this.div && !this.isAttachedToDOM; + } + rebuild() { + var _this$div; + (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.addEventListener("focusin", _classPrivateFieldGet(this, _boundFocusin)); + } + serialize() { + (0, _util.unreachable)("An editor must be serializable"); + } + static deserialize(data, parent) { + const editor = new this.prototype.constructor({ + parent, + id: parent.getNextId() + }); + editor.rotation = data.rotation; + const [pageWidth, pageHeight] = parent.pageDimensions; + const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight); + editor.x = x / pageWidth; + editor.y = y / pageHeight; + editor.width = width / pageWidth; + editor.height = height / pageHeight; + return editor; + } + remove() { + this.div.removeEventListener("focusin", _classPrivateFieldGet(this, _boundFocusin)); + this.div.removeEventListener("focusout", _classPrivateFieldGet(this, _boundFocusout)); + if (!this.isEmpty()) { + this.commit(); + } + this.parent.remove(this); + } + select() { + var _this$div2; + (_this$div2 = this.div) === null || _this$div2 === void 0 ? void 0 : _this$div2.classList.add("selectedEditor"); + } + unselect() { + var _this$div3; + (_this$div3 = this.div) === null || _this$div3 === void 0 ? void 0 : _this$div3.classList.remove("selectedEditor"); + } + updateParams(type, value) {} + disableEditing() {} + enableEditing() {} + get propertiesToUpdate() { + return {}; + } + get contentDiv() { + return this.div; + } + get isEditing() { + return _classPrivateFieldGet(this, _isEditing); + } + set isEditing(value) { + _classPrivateFieldSet(this, _isEditing, value); + if (value) { + this.parent.setSelected(this); + this.parent.setActiveEditor(this); + } else { + this.parent.setActiveEditor(null); + } + } +} +exports.AnnotationEditor = AnnotationEditor; +_defineProperty(AnnotationEditor, "_colorManager", new _tools.ColorManager()); +_defineProperty(AnnotationEditor, "_zIndex", 1); + +/***/ }), +/* 136 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0; +exports.bindEvents = bindEvents; +exports.opacityToHex = opacityToHex; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function bindEvents(obj, element, names) { + for (const name of names) { + element.addEventListener(name, obj[name].bind(obj)); + } +} +function opacityToHex(opacity) { + return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, "0"); +} +var _id = /*#__PURE__*/new WeakMap(); +class IdManager { + constructor() { + _classPrivateFieldInitSpec(this, _id, { + writable: true, + value: 0 + }); + } + getId() { + var _this$id, _this$id2; + return `${_util.AnnotationEditorPrefix}${(_classPrivateFieldSet(this, _id, (_this$id = _classPrivateFieldGet(this, _id), _this$id2 = _this$id++, _this$id)), _this$id2)}`; + } +} +var _commands = /*#__PURE__*/new WeakMap(); +var _locked = /*#__PURE__*/new WeakMap(); +var _maxSize = /*#__PURE__*/new WeakMap(); +var _position = /*#__PURE__*/new WeakMap(); +class CommandManager { + constructor() { + let maxSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128; + _classPrivateFieldInitSpec(this, _commands, { + writable: true, + value: [] + }); + _classPrivateFieldInitSpec(this, _locked, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _maxSize, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _position, { + writable: true, + value: -1 + }); + _classPrivateFieldSet(this, _maxSize, maxSize); + } + add(_ref) { + let { + cmd, + undo, + mustExec, + type = NaN, + overwriteIfSameType = false, + keepUndo = false + } = _ref; + if (mustExec) { + cmd(); + } + if (_classPrivateFieldGet(this, _locked)) { + return; + } + const save = { + cmd, + undo, + type + }; + if (_classPrivateFieldGet(this, _position) === -1) { + if (_classPrivateFieldGet(this, _commands).length > 0) { + _classPrivateFieldGet(this, _commands).length = 0; + } + _classPrivateFieldSet(this, _position, 0); + _classPrivateFieldGet(this, _commands).push(save); + return; + } + if (overwriteIfSameType && _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].type === type) { + if (keepUndo) { + save.undo = _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo; + } + _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)] = save; + return; + } + const next = _classPrivateFieldGet(this, _position) + 1; + if (next === _classPrivateFieldGet(this, _maxSize)) { + _classPrivateFieldGet(this, _commands).splice(0, 1); + } else { + _classPrivateFieldSet(this, _position, next); + if (next < _classPrivateFieldGet(this, _commands).length) { + _classPrivateFieldGet(this, _commands).splice(next); + } + } + _classPrivateFieldGet(this, _commands).push(save); + } + undo() { + if (_classPrivateFieldGet(this, _position) === -1) { + return; + } + _classPrivateFieldSet(this, _locked, true); + _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo(); + _classPrivateFieldSet(this, _locked, false); + _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) - 1); + } + redo() { + if (_classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1) { + _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) + 1); + _classPrivateFieldSet(this, _locked, true); + _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].cmd(); + _classPrivateFieldSet(this, _locked, false); + } + } + hasSomethingToUndo() { + return _classPrivateFieldGet(this, _position) !== -1; + } + hasSomethingToRedo() { + return _classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1; + } + destroy() { + _classPrivateFieldSet(this, _commands, null); + } +} +exports.CommandManager = CommandManager; +var _serialize = /*#__PURE__*/new WeakSet(); +class KeyboardManager { + constructor(callbacks) { + _classPrivateMethodInitSpec(this, _serialize); + this.buffer = []; + this.callbacks = new Map(); + this.allKeys = new Set(); + const isMac = KeyboardManager.platform.isMac; + for (const [keys, callback] of callbacks) { + for (const key of keys) { + const isMacKey = key.startsWith("mac+"); + if (isMac && isMacKey) { + this.callbacks.set(key.slice(4), callback); + this.allKeys.add(key.split("+").at(-1)); + } else if (!isMac && !isMacKey) { + this.callbacks.set(key, callback); + this.allKeys.add(key.split("+").at(-1)); + } + } + } + } + static get platform() { + const platform = typeof navigator !== "undefined" ? navigator.platform : ""; + return (0, _util.shadow)(this, "platform", { + isWin: platform.includes("Win"), + isMac: platform.includes("Mac") + }); + } + exec(self, event) { + if (!this.allKeys.has(event.key)) { + return; + } + const callback = this.callbacks.get(_classPrivateMethodGet(this, _serialize, _serialize2).call(this, event)); + if (!callback) { + return; + } + callback.bind(self)(); + event.stopPropagation(); + event.preventDefault(); + } +} +exports.KeyboardManager = KeyboardManager; +function _serialize2(event) { + if (event.altKey) { + this.buffer.push("alt"); + } + if (event.ctrlKey) { + this.buffer.push("ctrl"); + } + if (event.metaKey) { + this.buffer.push("meta"); + } + if (event.shiftKey) { + this.buffer.push("shift"); + } + this.buffer.push(event.key); + const str = this.buffer.join("+"); + this.buffer.length = 0; + return str; +} +class ColorManager { + get _colors() { + const colors = new Map([["CanvasText", null], ["Canvas", null]]); + (0, _display_utils.getColorValues)(colors); + return (0, _util.shadow)(this, "_colors", colors); + } + convert(color) { + const rgb = (0, _display_utils.getRGB)(color); + if (!window.matchMedia("(forced-colors: active)").matches) { + return rgb; + } + for (const [name, RGB] of this._colors) { + if (RGB.every((x, i) => x === rgb[i])) { + return ColorManager._colorsMapping.get(name); + } + } + return rgb; + } + getHexCode(name) { + const rgb = this._colors.get(name); + if (!rgb) { + return name; + } + return _util.Util.makeHexColor(...rgb); + } +} +exports.ColorManager = ColorManager; +_defineProperty(ColorManager, "_colorsMapping", new Map([["CanvasText", [0, 0, 0]], ["Canvas", [255, 255, 255]]])); +var _activeEditor = /*#__PURE__*/new WeakMap(); +var _allEditors = /*#__PURE__*/new WeakMap(); +var _allLayers = /*#__PURE__*/new WeakMap(); +var _commandManager = /*#__PURE__*/new WeakMap(); +var _currentPageIndex = /*#__PURE__*/new WeakMap(); +var _editorTypes = /*#__PURE__*/new WeakMap(); +var _eventBus = /*#__PURE__*/new WeakMap(); +var _idManager = /*#__PURE__*/new WeakMap(); +var _isEnabled = /*#__PURE__*/new WeakMap(); +var _mode = /*#__PURE__*/new WeakMap(); +var _selectedEditors = /*#__PURE__*/new WeakMap(); +var _boundCopy = /*#__PURE__*/new WeakMap(); +var _boundCut = /*#__PURE__*/new WeakMap(); +var _boundPaste = /*#__PURE__*/new WeakMap(); +var _boundKeydown = /*#__PURE__*/new WeakMap(); +var _boundOnEditingAction = /*#__PURE__*/new WeakMap(); +var _boundOnPageChanging = /*#__PURE__*/new WeakMap(); +var _previousStates = /*#__PURE__*/new WeakMap(); +var _container = /*#__PURE__*/new WeakMap(); +var _addKeyboardManager = /*#__PURE__*/new WeakSet(); +var _removeKeyboardManager = /*#__PURE__*/new WeakSet(); +var _addCopyPasteListeners = /*#__PURE__*/new WeakSet(); +var _removeCopyPasteListeners = /*#__PURE__*/new WeakSet(); +var _dispatchUpdateStates = /*#__PURE__*/new WeakSet(); +var _dispatchUpdateUI = /*#__PURE__*/new WeakSet(); +var _enableAll = /*#__PURE__*/new WeakSet(); +var _disableAll = /*#__PURE__*/new WeakSet(); +var _addEditorToLayer = /*#__PURE__*/new WeakSet(); +var _isEmpty = /*#__PURE__*/new WeakSet(); +var _selectEditors = /*#__PURE__*/new WeakSet(); +class AnnotationEditorUIManager { + constructor(container, eventBus) { + _classPrivateMethodInitSpec(this, _selectEditors); + _classPrivateMethodInitSpec(this, _isEmpty); + _classPrivateMethodInitSpec(this, _addEditorToLayer); + _classPrivateMethodInitSpec(this, _disableAll); + _classPrivateMethodInitSpec(this, _enableAll); + _classPrivateMethodInitSpec(this, _dispatchUpdateUI); + _classPrivateMethodInitSpec(this, _dispatchUpdateStates); + _classPrivateMethodInitSpec(this, _removeCopyPasteListeners); + _classPrivateMethodInitSpec(this, _addCopyPasteListeners); + _classPrivateMethodInitSpec(this, _removeKeyboardManager); + _classPrivateMethodInitSpec(this, _addKeyboardManager); + _classPrivateFieldInitSpec(this, _activeEditor, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _allEditors, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _allLayers, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _commandManager, { + writable: true, + value: new CommandManager() + }); + _classPrivateFieldInitSpec(this, _currentPageIndex, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _editorTypes, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _eventBus, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _idManager, { + writable: true, + value: new IdManager() + }); + _classPrivateFieldInitSpec(this, _isEnabled, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _mode, { + writable: true, + value: _util.AnnotationEditorType.NONE + }); + _classPrivateFieldInitSpec(this, _selectedEditors, { + writable: true, + value: new Set() + }); + _classPrivateFieldInitSpec(this, _boundCopy, { + writable: true, + value: this.copy.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCut, { + writable: true, + value: this.cut.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundPaste, { + writable: true, + value: this.paste.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundKeydown, { + writable: true, + value: this.keydown.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundOnEditingAction, { + writable: true, + value: this.onEditingAction.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundOnPageChanging, { + writable: true, + value: this.onPageChanging.bind(this) + }); + _classPrivateFieldInitSpec(this, _previousStates, { + writable: true, + value: { + isEditing: false, + isEmpty: true, + hasSomethingToUndo: false, + hasSomethingToRedo: false, + hasSelectedEditor: false + } + }); + _classPrivateFieldInitSpec(this, _container, { + writable: true, + value: null + }); + _classPrivateFieldSet(this, _container, container); + _classPrivateFieldSet(this, _eventBus, eventBus); + _classPrivateFieldGet(this, _eventBus)._on("editingaction", _classPrivateFieldGet(this, _boundOnEditingAction)); + _classPrivateFieldGet(this, _eventBus)._on("pagechanging", _classPrivateFieldGet(this, _boundOnPageChanging)); + } + destroy() { + _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this); + _classPrivateFieldGet(this, _eventBus)._off("editingaction", _classPrivateFieldGet(this, _boundOnEditingAction)); + _classPrivateFieldGet(this, _eventBus)._off("pagechanging", _classPrivateFieldGet(this, _boundOnPageChanging)); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.destroy(); + } + _classPrivateFieldGet(this, _allLayers).clear(); + _classPrivateFieldGet(this, _allEditors).clear(); + _classPrivateFieldSet(this, _activeEditor, null); + _classPrivateFieldGet(this, _selectedEditors).clear(); + _classPrivateFieldGet(this, _commandManager).destroy(); + } + onPageChanging(_ref2) { + let { + pageNumber + } = _ref2; + _classPrivateFieldSet(this, _currentPageIndex, pageNumber - 1); + } + focusMainContainer() { + _classPrivateFieldGet(this, _container).focus(); + } + copy(event) { + event.preventDefault(); + if (_classPrivateFieldGet(this, _activeEditor)) { + _classPrivateFieldGet(this, _activeEditor).commitOrRemove(); + } + if (!this.hasSelection) { + return; + } + const editors = []; + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + if (!editor.isEmpty()) { + editors.push(editor.serialize()); + } + } + if (editors.length === 0) { + return; + } + event.clipboardData.setData("application/pdfjs", JSON.stringify(editors)); + } + cut(event) { + this.copy(event); + this.delete(); + } + paste(event) { + event.preventDefault(); + let data = event.clipboardData.getData("application/pdfjs"); + if (!data) { + return; + } + try { + data = JSON.parse(data); + } catch (ex) { + (0, _util.warn)(`paste: "${ex.message}".`); + return; + } + if (!Array.isArray(data)) { + return; + } + this.unselectAll(); + const layer = _classPrivateFieldGet(this, _allLayers).get(_classPrivateFieldGet(this, _currentPageIndex)); + try { + const newEditors = []; + for (const editor of data) { + const deserializedEditor = layer.deserialize(editor); + if (!deserializedEditor) { + return; + } + newEditors.push(deserializedEditor); + } + const cmd = () => { + for (const editor of newEditors) { + _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor); + } + _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, newEditors); + }; + const undo = () => { + for (const editor of newEditors) { + editor.remove(); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } catch (ex) { + (0, _util.warn)(`paste: "${ex.message}".`); + } + } + keydown(event) { + var _this$getActive; + if (!((_this$getActive = this.getActive()) !== null && _this$getActive !== void 0 && _this$getActive.shouldGetKeyboardEvents())) { + AnnotationEditorUIManager._keyboardManager.exec(this, event); + } + } + onEditingAction(details) { + if (["undo", "redo", "delete", "selectAll"].includes(details.name)) { + this[details.name](); + } + } + setEditingState(isEditing) { + if (isEditing) { + _classPrivateMethodGet(this, _addKeyboardManager, _addKeyboardManager2).call(this); + _classPrivateMethodGet(this, _addCopyPasteListeners, _addCopyPasteListeners2).call(this); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + isEditing: _classPrivateFieldGet(this, _mode) !== _util.AnnotationEditorType.NONE, + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this), + hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(), + hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(), + hasSelectedEditor: false + }); + } else { + _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this); + _classPrivateMethodGet(this, _removeCopyPasteListeners, _removeCopyPasteListeners2).call(this); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + isEditing: false + }); + } + } + registerEditorTypes(types) { + if (_classPrivateFieldGet(this, _editorTypes)) { + return; + } + _classPrivateFieldSet(this, _editorTypes, types); + for (const editorType of _classPrivateFieldGet(this, _editorTypes)) { + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editorType.defaultPropertiesToUpdate); + } + } + getId() { + return _classPrivateFieldGet(this, _idManager).getId(); + } + addLayer(layer) { + _classPrivateFieldGet(this, _allLayers).set(layer.pageIndex, layer); + if (_classPrivateFieldGet(this, _isEnabled)) { + layer.enable(); + } else { + layer.disable(); + } + } + removeLayer(layer) { + _classPrivateFieldGet(this, _allLayers).delete(layer.pageIndex); + } + updateMode(mode) { + _classPrivateFieldSet(this, _mode, mode); + if (mode === _util.AnnotationEditorType.NONE) { + this.setEditingState(false); + _classPrivateMethodGet(this, _disableAll, _disableAll2).call(this); + } else { + this.setEditingState(true); + _classPrivateMethodGet(this, _enableAll, _enableAll2).call(this); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.updateMode(mode); + } + } + } + updateToolbar(mode) { + if (mode === _classPrivateFieldGet(this, _mode)) { + return; + } + _classPrivateFieldGet(this, _eventBus).dispatch("switchannotationeditormode", { + source: this, + mode + }); + } + updateParams(type, value) { + if (!_classPrivateFieldGet(this, _editorTypes)) { + return; + } + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + editor.updateParams(type, value); + } + for (const editorType of _classPrivateFieldGet(this, _editorTypes)) { + editorType.updateDefaultParams(type, value); + } + } + getEditors(pageIndex) { + const editors = []; + for (const editor of _classPrivateFieldGet(this, _allEditors).values()) { + if (editor.pageIndex === pageIndex) { + editors.push(editor); + } + } + return editors; + } + getEditor(id) { + return _classPrivateFieldGet(this, _allEditors).get(id); + } + addEditor(editor) { + _classPrivateFieldGet(this, _allEditors).set(editor.id, editor); + } + removeEditor(editor) { + _classPrivateFieldGet(this, _allEditors).delete(editor.id); + this.unselect(editor); + } + setActiveEditor(editor) { + if (_classPrivateFieldGet(this, _activeEditor) === editor) { + return; + } + _classPrivateFieldSet(this, _activeEditor, editor); + if (editor) { + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate); + } + } + toggleSelected(editor) { + if (_classPrivateFieldGet(this, _selectedEditors).has(editor)) { + _classPrivateFieldGet(this, _selectedEditors).delete(editor); + editor.unselect(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: this.hasSelection + }); + return; + } + _classPrivateFieldGet(this, _selectedEditors).add(editor); + editor.select(); + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: true + }); + } + setSelected(editor) { + for (const ed of _classPrivateFieldGet(this, _selectedEditors)) { + if (ed !== editor) { + ed.unselect(); + } + } + _classPrivateFieldGet(this, _selectedEditors).clear(); + _classPrivateFieldGet(this, _selectedEditors).add(editor); + editor.select(); + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: true + }); + } + isSelected(editor) { + return _classPrivateFieldGet(this, _selectedEditors).has(editor); + } + unselect(editor) { + editor.unselect(); + _classPrivateFieldGet(this, _selectedEditors).delete(editor); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: this.hasSelection + }); + } + get hasSelection() { + return _classPrivateFieldGet(this, _selectedEditors).size !== 0; + } + undo() { + _classPrivateFieldGet(this, _commandManager).undo(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(), + hasSomethingToRedo: true, + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this) + }); + } + redo() { + _classPrivateFieldGet(this, _commandManager).redo(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSomethingToUndo: true, + hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(), + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this) + }); + } + addCommands(params) { + _classPrivateFieldGet(this, _commandManager).add(params); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSomethingToUndo: true, + hasSomethingToRedo: false, + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this) + }); + } + delete() { + this.commitOrRemove(); + if (!this.hasSelection) { + return; + } + const editors = [..._classPrivateFieldGet(this, _selectedEditors)]; + const cmd = () => { + for (const editor of editors) { + editor.remove(); + } + }; + const undo = () => { + for (const editor of editors) { + _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } + commitOrRemove() { + var _classPrivateFieldGet2; + (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _activeEditor)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.commitOrRemove(); + } + selectAll() { + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + editor.commit(); + } + _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, _classPrivateFieldGet(this, _allEditors).values()); + } + unselectAll() { + if (_classPrivateFieldGet(this, _activeEditor)) { + _classPrivateFieldGet(this, _activeEditor).commitOrRemove(); + return; + } + if (_classPrivateFieldGet(this, _selectedEditors).size === 0) { + return; + } + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + editor.unselect(); + } + _classPrivateFieldGet(this, _selectedEditors).clear(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: false + }); + } + isActive(editor) { + return _classPrivateFieldGet(this, _activeEditor) === editor; + } + getActive() { + return _classPrivateFieldGet(this, _activeEditor); + } + getMode() { + return _classPrivateFieldGet(this, _mode); + } +} +exports.AnnotationEditorUIManager = AnnotationEditorUIManager; +function _addKeyboardManager2() { + _classPrivateFieldGet(this, _container).addEventListener("keydown", _classPrivateFieldGet(this, _boundKeydown)); +} +function _removeKeyboardManager2() { + _classPrivateFieldGet(this, _container).removeEventListener("keydown", _classPrivateFieldGet(this, _boundKeydown)); +} +function _addCopyPasteListeners2() { + document.addEventListener("copy", _classPrivateFieldGet(this, _boundCopy)); + document.addEventListener("cut", _classPrivateFieldGet(this, _boundCut)); + document.addEventListener("paste", _classPrivateFieldGet(this, _boundPaste)); +} +function _removeCopyPasteListeners2() { + document.removeEventListener("copy", _classPrivateFieldGet(this, _boundCopy)); + document.removeEventListener("cut", _classPrivateFieldGet(this, _boundCut)); + document.removeEventListener("paste", _classPrivateFieldGet(this, _boundPaste)); +} +function _dispatchUpdateStates2(details) { + const hasChanged = Object.entries(details).some(_ref3 => { + let [key, value] = _ref3; + return _classPrivateFieldGet(this, _previousStates)[key] !== value; + }); + if (hasChanged) { + _classPrivateFieldGet(this, _eventBus).dispatch("annotationeditorstateschanged", { + source: this, + details: Object.assign(_classPrivateFieldGet(this, _previousStates), details) + }); + } +} +function _dispatchUpdateUI2(details) { + _classPrivateFieldGet(this, _eventBus).dispatch("annotationeditorparamschanged", { + source: this, + details + }); +} +function _enableAll2() { + if (!_classPrivateFieldGet(this, _isEnabled)) { + _classPrivateFieldSet(this, _isEnabled, true); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.enable(); + } + } +} +function _disableAll2() { + this.unselectAll(); + if (_classPrivateFieldGet(this, _isEnabled)) { + _classPrivateFieldSet(this, _isEnabled, false); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.disable(); + } + } +} +function _addEditorToLayer2(editor) { + const layer = _classPrivateFieldGet(this, _allLayers).get(editor.pageIndex); + if (layer) { + layer.addOrRebuild(editor); + } else { + this.addEditor(editor); + } +} +function _isEmpty2() { + if (_classPrivateFieldGet(this, _allEditors).size === 0) { + return true; + } + if (_classPrivateFieldGet(this, _allEditors).size === 1) { + for (const editor of _classPrivateFieldGet(this, _allEditors).values()) { + return editor.isEmpty(); + } + } + return false; +} +function _selectEditors2(editors) { + _classPrivateFieldGet(this, _selectedEditors).clear(); + for (const editor of editors) { + if (editor.isEmpty()) { + continue; + } + _classPrivateFieldGet(this, _selectedEditors).add(editor); + editor.select(); + } + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: true + }); +} +_defineProperty(AnnotationEditorUIManager, "_keyboardManager", new KeyboardManager([[["ctrl+a", "mac+meta+a"], AnnotationEditorUIManager.prototype.selectAll], [["ctrl+z", "mac+meta+z"], AnnotationEditorUIManager.prototype.undo], [["ctrl+y", "ctrl+shift+Z", "mac+meta+shift+Z"], AnnotationEditorUIManager.prototype.redo], [["Backspace", "alt+Backspace", "ctrl+Backspace", "shift+Backspace", "mac+Backspace", "mac+alt+Backspace", "mac+ctrl+Backspace", "Delete", "ctrl+Delete", "shift+Delete"], AnnotationEditorUIManager.prototype.delete], [["Escape", "mac+Escape"], AnnotationEditorUIManager.prototype.unselectAll]])); + +/***/ }), +/* 137 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = exports.AnnotationPrefix = void 0; +exports.deprecated = deprecated; +exports.getColorValues = getColorValues; +exports.getCurrentTransform = getCurrentTransform; +exports.getCurrentTransformInverse = getCurrentTransformInverse; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl; +exports.getRGB = getRGB; +exports.getXfaPageViewport = getXfaPageViewport; +exports.isDataScheme = isDataScheme; +exports.isPdfFile = isPdfFile; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +var _base_factory = __w_pdfjs_require__(138); +var _util = __w_pdfjs_require__(1); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +const SVG_NS = "http://www.w3.org/2000/svg"; +const AnnotationPrefix = "pdfjs_internal_id_"; +exports.AnnotationPrefix = AnnotationPrefix; +class PixelsPerInch {} +exports.PixelsPerInch = PixelsPerInch; +_defineProperty(PixelsPerInch, "CSS", 96.0); +_defineProperty(PixelsPerInch, "PDF", 72.0); +_defineProperty(PixelsPerInch, "PDF_TO_CSS_UNITS", PixelsPerInch.CSS / PixelsPerInch.PDF); +class DOMCanvasFactory extends _base_factory.BaseCanvasFactory { + constructor() { + let { + ownerDocument = globalThis.document + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + super(); + this._document = ownerDocument; + } + _createCanvas(width, height) { + const canvas = this._document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + return canvas; + } +} +exports.DOMCanvasFactory = DOMCanvasFactory; +async function fetchData(url) { + let asTypedArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (isValidFetchUrl(url, document.baseURI)) { + const response = await fetch(url); + if (!response.ok) { + throw new Error(response.statusText); + } + return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text()); + } + return new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open("GET", url, true); + if (asTypedArray) { + request.responseType = "arraybuffer"; + } + request.onreadystatechange = () => { + if (request.readyState !== XMLHttpRequest.DONE) { + return; + } + if (request.status === 200 || request.status === 0) { + let data; + if (asTypedArray && request.response) { + data = new Uint8Array(request.response); + } else if (!asTypedArray && request.responseText) { + data = (0, _util.stringToBytes)(request.responseText); + } + if (data) { + resolve(data); + return; + } + } + reject(new Error(request.statusText)); + }; + request.send(null); + }); +} +class DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url, this.isCompressed).then(data => { + return { + cMapData: data, + compressionType + }; + }); + } +} +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; +class DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url, true); + } +} +exports.DOMStandardFontDataFactory = DOMStandardFontDataFactory; +class DOMSVGFactory extends _base_factory.BaseSVGFactory { + _createSVG(type) { + return document.createElementNS(SVG_NS, type); + } +} +exports.DOMSVGFactory = DOMSVGFactory; +class PageViewport { + constructor(_ref) { + let { + viewBox, + scale, + rotation, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = _ref; + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + const centerX = (viewBox[2] + viewBox[0]) / 2; + const centerY = (viewBox[3] + viewBox[1]) / 2; + let rotateA, rotateB, rotateC, rotateD; + rotation %= 360; + if (rotation < 0) { + rotation += 360; + } + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + case 0: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + default: + throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); + } + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + let offsetCanvasX, offsetCanvasY; + let width, height; + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; + this.width = width; + this.height = height; + } + clone() { + let { + scale = this.scale, + rotation = this.rotation, + offsetX = this.offsetX, + offsetY = this.offsetY, + dontFlip = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return new PageViewport({ + viewBox: this.viewBox.slice(), + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + convertToViewportPoint(x, y) { + return _util.Util.applyTransform([x, y], this.transform); + } + convertToViewportRectangle(rect) { + const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); + const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); + return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + convertToPdfPoint(x, y) { + return _util.Util.applyInverseTransform([x, y], this.transform); + } +} +exports.PageViewport = PageViewport; +class RenderingCancelledException extends _util.BaseException { + constructor(msg, type) { + super(msg, "RenderingCancelledException"); + this.type = type; + } +} +exports.RenderingCancelledException = RenderingCancelledException; +function isDataScheme(url) { + const ii = url.length; + let i = 0; + while (i < ii && url[i].trim() === "") { + i++; + } + return url.substring(i, i + 5).toLowerCase() === "data:"; +} +function isPdfFile(filename) { + return typeof filename === "string" && /\.pdf$/i.test(filename); +} +function getFilenameFromUrl(url) { + const anchor = url.indexOf("#"); + const query = url.indexOf("?"); + const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf("/", end) + 1, end); +} +function getPdfFilenameFromUrl(url) { + let defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "document.pdf"; + if (typeof url !== "string") { + return defaultFilename; + } + if (isDataScheme(url)) { + (0, _util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'); + return defaultFilename; + } + const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; + const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i; + const splitURI = reURI.exec(url); + let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); + if (suggestedFilename) { + suggestedFilename = suggestedFilename[0]; + if (suggestedFilename.includes("%")) { + try { + suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; + } catch (ex) {} + } + } + return suggestedFilename || defaultFilename; +} +class StatTimer { + constructor() { + this.started = Object.create(null); + this.times = []; + } + time(name) { + if (name in this.started) { + (0, _util.warn)(`Timer is already running for ${name}`); + } + this.started[name] = Date.now(); + } + timeEnd(name) { + if (!(name in this.started)) { + (0, _util.warn)(`Timer has not been started for ${name}`); + } + this.times.push({ + name, + start: this.started[name], + end: Date.now() + }); + delete this.started[name]; + } + toString() { + const outBuf = []; + let longest = 0; + for (const time of this.times) { + const name = time.name; + if (name.length > longest) { + longest = name.length; + } + } + for (const time of this.times) { + const duration = time.end - time.start; + outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`); + } + return outBuf.join(""); + } +} +exports.StatTimer = StatTimer; +function isValidFetchUrl(url, baseUrl) { + try { + const { + protocol + } = baseUrl ? new URL(url, baseUrl) : new URL(url); + return protocol === "http:" || protocol === "https:"; + } catch (ex) { + return false; + } +} +function loadScript(src) { + let removeScriptElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = src; + script.onload = function (evt) { + if (removeScriptElement) { + script.remove(); + } + resolve(evt); + }; + script.onerror = function () { + reject(new Error(`Cannot load script at: ${script.src}`)); + }; + (document.head || document.documentElement).append(script); + }); +} +function deprecated(details) { + console.log("Deprecated API usage: " + details); +} +let pdfDateStringRegex; +class PDFDateString { + static toDateObject(input) { + if (!input || typeof input !== "string") { + return null; + } + if (!pdfDateStringRegex) { + pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); + } + const matches = pdfDateStringRegex.exec(input); + if (!matches) { + return null; + } + const year = parseInt(matches[1], 10); + let month = parseInt(matches[2], 10); + month = month >= 1 && month <= 12 ? month - 1 : 0; + let day = parseInt(matches[3], 10); + day = day >= 1 && day <= 31 ? day : 1; + let hour = parseInt(matches[4], 10); + hour = hour >= 0 && hour <= 23 ? hour : 0; + let minute = parseInt(matches[5], 10); + minute = minute >= 0 && minute <= 59 ? minute : 0; + let second = parseInt(matches[6], 10); + second = second >= 0 && second <= 59 ? second : 0; + const universalTimeRelation = matches[7] || "Z"; + let offsetHour = parseInt(matches[8], 10); + offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; + let offsetMinute = parseInt(matches[9], 10) || 0; + offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; + if (universalTimeRelation === "-") { + hour += offsetHour; + minute += offsetMinute; + } else if (universalTimeRelation === "+") { + hour -= offsetHour; + minute -= offsetMinute; + } + return new Date(Date.UTC(year, month, day, hour, minute, second)); + } +} +exports.PDFDateString = PDFDateString; +function getXfaPageViewport(xfaPage, _ref2) { + let { + scale = 1, + rotation = 0 + } = _ref2; + const { + width, + height + } = xfaPage.attributes.style; + const viewBox = [0, 0, parseInt(width), parseInt(height)]; + return new PageViewport({ + viewBox, + scale, + rotation + }); +} +function getRGB(color) { + if (color.startsWith("#")) { + const colorRGB = parseInt(color.slice(1), 16); + return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff]; + } + if (color.startsWith("rgb(")) { + return color.slice(4, -1).split(",").map(x => parseInt(x)); + } + if (color.startsWith("rgba(")) { + return color.slice(5, -1).split(",").map(x => parseInt(x)).slice(0, 3); + } + (0, _util.warn)(`Not a valid color format: "${color}"`); + return [0, 0, 0]; +} +function getColorValues(colors) { + const span = document.createElement("span"); + span.style.visibility = "hidden"; + document.body.append(span); + for (const name of colors.keys()) { + span.style.color = name; + const computedColor = window.getComputedStyle(span).color; + colors.set(name, getRGB(computedColor)); + } + span.remove(); +} +function getCurrentTransform(ctx) { + const { + a, + b, + c, + d, + e, + f + } = ctx.getTransform(); + return [a, b, c, d, e, f]; +} +function getCurrentTransformInverse(ctx) { + const { + a, + b, + c, + d, + e, + f + } = ctx.getTransform().invertSelf(); + return [a, b, c, d, e, f]; +} + +/***/ }), +/* 138 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0; +var _util = __w_pdfjs_require__(1); +class BaseCanvasFactory { + constructor() { + if (this.constructor === BaseCanvasFactory) { + (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); + } + } + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + const canvas = this._createCanvas(width, height); + return { + canvas, + context: canvas.getContext("2d") + }; + } + reset(canvasAndContext, width, height) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + canvasAndContext.canvas.width = width; + canvasAndContext.canvas.height = height; + } + destroy(canvasAndContext) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + canvasAndContext.canvas.width = 0; + canvasAndContext.canvas.height = 0; + canvasAndContext.canvas = null; + canvasAndContext.context = null; + } + _createCanvas(width, height) { + (0, _util.unreachable)("Abstract method `_createCanvas` called."); + } +} +exports.BaseCanvasFactory = BaseCanvasFactory; +class BaseCMapReaderFactory { + constructor(_ref) { + let { + baseUrl = null, + isCompressed = false + } = _ref; + if (this.constructor === BaseCMapReaderFactory) { + (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory."); + } + this.baseUrl = baseUrl; + this.isCompressed = isCompressed; + } + async fetch(_ref2) { + let { + name + } = _ref2; + if (!this.baseUrl) { + throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); + } + if (!name) { + throw new Error("CMap name must be specified."); + } + const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); + const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; + return this._fetchData(url, compressionType).catch(reason => { + throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`); + }); + } + _fetchData(url, compressionType) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } +} +exports.BaseCMapReaderFactory = BaseCMapReaderFactory; +class BaseStandardFontDataFactory { + constructor(_ref3) { + let { + baseUrl = null + } = _ref3; + if (this.constructor === BaseStandardFontDataFactory) { + (0, _util.unreachable)("Cannot initialize BaseStandardFontDataFactory."); + } + this.baseUrl = baseUrl; + } + async fetch(_ref4) { + let { + filename + } = _ref4; + if (!this.baseUrl) { + throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.'); + } + if (!filename) { + throw new Error("Font filename must be specified."); + } + const url = `${this.baseUrl}${filename}`; + return this._fetchData(url).catch(reason => { + throw new Error(`Unable to load font data at: ${url}`); + }); + } + _fetchData(url) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } +} +exports.BaseStandardFontDataFactory = BaseStandardFontDataFactory; +class BaseSVGFactory { + constructor() { + if (this.constructor === BaseSVGFactory) { + (0, _util.unreachable)("Cannot initialize BaseSVGFactory."); + } + } + create(width, height) { + let skipDimensions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (width <= 0 || height <= 0) { + throw new Error("Invalid SVG dimensions"); + } + const svg = this._createSVG("svg:svg"); + svg.setAttribute("version", "1.1"); + if (!skipDimensions) { + svg.setAttribute("width", `${width}px`); + svg.setAttribute("height", `${height}px`); + } + svg.setAttribute("preserveAspectRatio", "none"); + svg.setAttribute("viewBox", `0 0 ${width} ${height}`); + return svg; + } + createElement(type) { + if (typeof type !== "string") { + throw new Error("Invalid SVG element type"); + } + return this._createSVG(type); + } + _createSVG(type) { + (0, _util.unreachable)("Abstract method `_createSVG` called."); + } +} +exports.BaseSVGFactory = BaseSVGFactory; + +/***/ }), +/* 139 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.MurmurHash3_64 = void 0; +var _util = __w_pdfjs_require__(1); +const SEED = 0xc3d2e1f0; +const MASK_HIGH = 0xffff0000; +const MASK_LOW = 0xffff; +class MurmurHash3_64 { + constructor(seed) { + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + update(input) { + let data, length; + if (typeof input === "string") { + data = new Uint8Array(input.length * 2); + length = 0; + for (let i = 0, ii = input.length; i < ii; i++) { + const code = input.charCodeAt(i); + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } + } + } else if ((0, _util.isArrayBuffer)(input)) { + data = input.slice(); + length = data.byteLength; + } else { + throw new Error("Wrong data format in MurmurHash3_64_update. " + "Input must be a string or array."); + } + const blockCounts = length >> 2; + const tailLength = length - blockCounts * 4; + const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + let k1 = 0, + k2 = 0; + let h1 = this.h1, + h2 = this.h2; + const C1 = 0xcc9e2d51, + C2 = 0x1b873593; + const C1_LOW = C1 & MASK_LOW, + C2_LOW = C2 & MASK_LOW; + for (let i = 0; i < blockCounts; i++) { + if (i & 1) { + k1 = dataUint32[i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + k1 = 0; + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + } + this.h1 = h1; + this.h2 = h2; + } + hexdigest() { + let h1 = this.h1, + h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + const hex1 = (h1 >>> 0).toString(16), + hex2 = (h2 >>> 0).toString(16); + return hex1.padStart(8, "0") + hex2.padStart(8, "0"); + } +} +exports.MurmurHash3_64 = MurmurHash3_64; + +/***/ }), +/* 140 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.FontLoader = exports.FontFaceObject = void 0; +var _util = __w_pdfjs_require__(1); +class FontLoader { + constructor(_ref) { + let { + onUnsupportedFeature, + ownerDocument = globalThis.document, + styleElement = null + } = _ref; + this._onUnsupportedFeature = onUnsupportedFeature; + this._document = ownerDocument; + this.nativeFontFaces = []; + this.styleElement = null; + this.loadingRequests = []; + this.loadTestFontId = 0; + } + addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); + this._document.fonts.add(nativeFontFace); + } + insertRule(rule) { + if (!this.styleElement) { + this.styleElement = this._document.createElement("style"); + this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement); + } + const styleSheet = this.styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + clear() { + for (const nativeFontFace of this.nativeFontFaces) { + this._document.fonts.delete(nativeFontFace); + } + this.nativeFontFaces.length = 0; + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + async bind(font) { + if (font.attached || font.missingFile) { + return; + } + font.attached = true; + if (this.isFontLoadingAPISupported) { + const nativeFontFace = font.createNativeFontFace(); + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + try { + await nativeFontFace.loaded; + } catch (ex) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative + }); + (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); + font.disableFontFace = true; + throw ex; + } + } + return; + } + const rule = font.createFontFaceRule(); + if (rule) { + this.insertRule(rule); + if (this.isSyncFontLoadingSupported) { + return; + } + await new Promise(resolve => { + const request = this._queueLoadingCallback(resolve); + this._prepareFontLoadEvent(font, request); + }); + } + } + get isFontLoadingAPISupported() { + var _this$_document; + const hasFonts = !!((_this$_document = this._document) !== null && _this$_document !== void 0 && _this$_document.fonts); + return (0, _util.shadow)(this, "isFontLoadingAPISupported", hasFonts); + } + get isSyncFontLoadingSupported() { + let supported = false; + if (typeof navigator === "undefined") { + supported = true; + } else { + const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + if ((m === null || m === void 0 ? void 0 : m[1]) >= 14) { + supported = true; + } + } + return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); + } + _queueLoadingCallback(callback) { + function completeRequest() { + (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); + request.done = true; + while (loadingRequests.length > 0 && loadingRequests[0].done) { + const otherRequest = loadingRequests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + const { + loadingRequests + } = this; + const request = { + done: false, + complete: completeRequest, + callback + }; + loadingRequests.push(request); + return request; + } + get _loadTestFont() { + const testFont = 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=="); + return (0, _util.shadow)(this, "_loadTestFont", testFont); + } + _prepareFontLoadEvent(font, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + function spliceString(s, offset, remove, insert) { + const chunk1 = s.substring(0, offset); + const chunk2 = s.substring(offset + remove); + return chunk1 + insert + chunk2; + } + let i, ii; + const canvas = this._document.createElement("canvas"); + canvas.width = 1; + canvas.height = 1; + const ctx = canvas.getContext("2d"); + let called = 0; + function isFontReady(name, callback) { + if (++called > 30) { + (0, _util.warn)("Load test font never loaded."); + callback(); + return; + } + ctx.font = "30px " + name; + ctx.fillText(".", 0, 20); + const imageData = ctx.getImageData(0, 0, 1, 1); + if (imageData.data[3] > 0) { + callback(); + return; + } + setTimeout(isFontReady.bind(null, name, callback)); + } + const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`; + let data = this._loadTestFont; + const COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + const CFF_CHECKSUM_OFFSET = 16; + const XXXX_VALUE = 0x58585858; + let checksum = int32(data, CFF_CHECKSUM_OFFSET); + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; + } + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; + } + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); + const url = `url(data:font/opentype;base64,${btoa(data)});`; + const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`; + this.insertRule(rule); + const div = this._document.createElement("div"); + div.style.visibility = "hidden"; + div.style.width = div.style.height = "10px"; + div.style.position = "absolute"; + div.style.top = div.style.left = "0px"; + for (const name of [font.loadedName, loadTestFontId]) { + const span = this._document.createElement("span"); + span.textContent = "Hi"; + span.style.fontFamily = name; + div.append(span); + } + this._document.body.append(div); + isFontReady(loadTestFontId, () => { + div.remove(); + request.complete(); + }); + } +} +exports.FontLoader = FontLoader; +class FontFaceObject { + constructor(translatedData, _ref2) { + let { + isEvalSupported = true, + disableFontFace = false, + ignoreErrors = false, + onUnsupportedFeature, + fontRegistry = null + } = _ref2; + this.compiledGlyphs = Object.create(null); + for (const i in translatedData) { + this[i] = translatedData[i]; + } + this.isEvalSupported = isEvalSupported !== false; + this.disableFontFace = disableFontFace === true; + this.ignoreErrors = ignoreErrors === true; + this._onUnsupportedFeature = onUnsupportedFeature; + this.fontRegistry = fontRegistry; + } + createNativeFontFace() { + var _this$fontRegistry; + if (!this.data || this.disableFontFace) { + return null; + } + let nativeFontFace; + if (!this.cssFontInfo) { + nativeFontFace = new FontFace(this.loadedName, this.data, {}); + } else { + const css = { + weight: this.cssFontInfo.fontWeight + }; + if (this.cssFontInfo.italicAngle) { + css.style = `oblique ${this.cssFontInfo.italicAngle}deg`; + } + nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); + } + (_this$fontRegistry = this.fontRegistry) === null || _this$fontRegistry === void 0 ? void 0 : _this$fontRegistry.registerFont(this); + return nativeFontFace; + } + createFontFaceRule() { + var _this$fontRegistry2; + if (!this.data || this.disableFontFace) { + return null; + } + const data = (0, _util.bytesToString)(this.data); + const url = `url(data:${this.mimetype};base64,${btoa(data)});`; + let rule; + if (!this.cssFontInfo) { + rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`; + } else { + let css = `font-weight: ${this.cssFontInfo.fontWeight};`; + if (this.cssFontInfo.italicAngle) { + css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`; + } + rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`; + } + (_this$fontRegistry2 = this.fontRegistry) === null || _this$fontRegistry2 === void 0 ? void 0 : _this$fontRegistry2.registerFont(this, url); + return rule; + } + getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; + } + let cmds; + try { + cmds = objs.get(this.loadedName + "_path_" + character); + } catch (ex) { + if (!this.ignoreErrors) { + throw ex; + } + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath + }); + (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`); + return this.compiledGlyphs[character] = function (c, size) {}; + } + if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) { + const jsBuf = []; + for (const current of cmds) { + const args = current.args !== undefined ? current.args.join(",") : ""; + jsBuf.push("c.", current.cmd, "(", args, ");\n"); + } + return this.compiledGlyphs[character] = new Function("c", "size", jsBuf.join("")); + } + return this.compiledGlyphs[character] = function (c, size) { + for (const current of cmds) { + if (current.cmd === "scale") { + current.args = [size, -size]; + } + c[current.cmd].apply(c, current.args); + } + }; + } +} +exports.FontFaceObject = FontFaceObject; + +/***/ }), +/* 141 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CanvasGraphics = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +var _pattern_helper = __w_pdfjs_require__(142); +var _image_utils = __w_pdfjs_require__(143); +var _is_node = __w_pdfjs_require__(3); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const MIN_FONT_SIZE = 16; +const MAX_FONT_SIZE = 100; +const MAX_GROUP_SIZE = 4096; +const EXECUTION_TIME = 15; +const EXECUTION_STEPS = 10; +const MAX_SIZE_TO_COMPILE = _is_node.isNodeJS && typeof Path2D === "undefined" ? -1 : 1000; +const FULL_CHUNK_HEIGHT = 16; +function mirrorContextOperations(ctx, destCtx) { + if (ctx._removeMirroring) { + throw new Error("Context is already forwarding operations."); + } + ctx.__originalSave = ctx.save; + ctx.__originalRestore = ctx.restore; + ctx.__originalRotate = ctx.rotate; + ctx.__originalScale = ctx.scale; + ctx.__originalTranslate = ctx.translate; + ctx.__originalTransform = ctx.transform; + ctx.__originalSetTransform = ctx.setTransform; + ctx.__originalResetTransform = ctx.resetTransform; + ctx.__originalClip = ctx.clip; + ctx.__originalMoveTo = ctx.moveTo; + ctx.__originalLineTo = ctx.lineTo; + ctx.__originalBezierCurveTo = ctx.bezierCurveTo; + ctx.__originalRect = ctx.rect; + ctx.__originalClosePath = ctx.closePath; + ctx.__originalBeginPath = ctx.beginPath; + ctx._removeMirroring = () => { + ctx.save = ctx.__originalSave; + ctx.restore = ctx.__originalRestore; + ctx.rotate = ctx.__originalRotate; + ctx.scale = ctx.__originalScale; + ctx.translate = ctx.__originalTranslate; + ctx.transform = ctx.__originalTransform; + ctx.setTransform = ctx.__originalSetTransform; + ctx.resetTransform = ctx.__originalResetTransform; + ctx.clip = ctx.__originalClip; + ctx.moveTo = ctx.__originalMoveTo; + ctx.lineTo = ctx.__originalLineTo; + ctx.bezierCurveTo = ctx.__originalBezierCurveTo; + ctx.rect = ctx.__originalRect; + ctx.closePath = ctx.__originalClosePath; + ctx.beginPath = ctx.__originalBeginPath; + delete ctx._removeMirroring; + }; + ctx.save = function ctxSave() { + destCtx.save(); + this.__originalSave(); + }; + ctx.restore = function ctxRestore() { + destCtx.restore(); + this.__originalRestore(); + }; + ctx.translate = function ctxTranslate(x, y) { + destCtx.translate(x, y); + this.__originalTranslate(x, y); + }; + ctx.scale = function ctxScale(x, y) { + destCtx.scale(x, y); + this.__originalScale(x, y); + }; + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + destCtx.transform(a, b, c, d, e, f); + this.__originalTransform(a, b, c, d, e, f); + }; + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + destCtx.setTransform(a, b, c, d, e, f); + this.__originalSetTransform(a, b, c, d, e, f); + }; + ctx.resetTransform = function ctxResetTransform() { + destCtx.resetTransform(); + this.__originalResetTransform(); + }; + ctx.rotate = function ctxRotate(angle) { + destCtx.rotate(angle); + this.__originalRotate(angle); + }; + ctx.clip = function ctxRotate(rule) { + destCtx.clip(rule); + this.__originalClip(rule); + }; + ctx.moveTo = function (x, y) { + destCtx.moveTo(x, y); + this.__originalMoveTo(x, y); + }; + ctx.lineTo = function (x, y) { + destCtx.lineTo(x, y); + this.__originalLineTo(x, y); + }; + ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) { + destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); + this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); + }; + ctx.rect = function (x, y, width, height) { + destCtx.rect(x, y, width, height); + this.__originalRect(x, y, width, height); + }; + ctx.closePath = function () { + destCtx.closePath(); + this.__originalClosePath(); + }; + ctx.beginPath = function () { + destCtx.beginPath(); + this.__originalBeginPath(); + }; +} +class CachedCanvases { + constructor(canvasFactory) { + this.canvasFactory = canvasFactory; + this.cache = Object.create(null); + } + getCanvas(id, width, height) { + let canvasEntry; + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; + } + return canvasEntry; + } + delete(id) { + delete this.cache[id]; + } + clear() { + for (const id in this.cache) { + const canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } + } +} +function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) { + const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx); + if (b === 0 && c === 0) { + const tlX = destX * a + tx; + const rTlX = Math.round(tlX); + const tlY = destY * d + ty; + const rTlY = Math.round(tlY); + const brX = (destX + destW) * a + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destY + destH) * d + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight); + ctx.setTransform(a, b, c, d, tx, ty); + return [rWidth, rHeight]; + } + if (a === 0 && d === 0) { + const tlX = destY * c + tx; + const rTlX = Math.round(tlX); + const tlY = destX * b + ty; + const rTlY = Math.round(tlY); + const brX = (destY + destH) * c + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destX + destW) * b + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth); + ctx.setTransform(a, b, c, d, tx, ty); + return [rHeight, rWidth]; + } + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH); + const scaleX = Math.hypot(a, b); + const scaleY = Math.hypot(c, d); + return [scaleX * destW, scaleY * destH]; +} +function compileType3Glyph(imgData) { + const { + width, + height + } = imgData; + if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { + return null; + } + const POINT_TO_PROCESS_LIMIT = 1000; + const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + const width1 = width + 1; + let points = new Uint8Array(width1 * (height + 1)); + let i, j, j0; + const lineSize = width + 7 & ~7; + let data = new Uint8Array(lineSize * height), + pos = 0; + for (const elem of imgData.data) { + let mask = 128; + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; + } + } + let count = 0; + pos = 0; + if (data[pos] !== 0) { + points[0] = 1; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j] = 2; + ++count; + } + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; + } + let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + for (j = 1; j < width; j++) { + sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; + } + pos++; + } + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + } + pos = lineSize * (height - 1); + j0 = i * width1; + if (data[pos] !== 0) { + points[j0] = 8; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + const path = new Path2D(); + for (i = 0; count && i <= height; i++) { + let p = i * width1; + const end = p + width; + while (p < end && !points[p]) { + p++; + } + if (p === end) { + continue; + } + path.moveTo(p % width1, i); + const p0 = p; + let type = points[p]; + do { + const step = steps[type]; + do { + p += step; + } while (!points[p]); + const pp = points[p]; + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + path.lineTo(p % width1, p / width1 | 0); + if (!points[p]) { + --count; + } + } while (p0 !== p); + --i; + } + data = null; + points = null; + const drawOutline = function (c) { + c.save(); + c.scale(1 / width, -1 / height); + c.translate(0, -height); + c.fill(path); + c.beginPath(); + c.restore(); + }; + return drawOutline; +} +class CanvasExtraState { + constructor(width, height) { + this.alphaIsShape = false; + this.fontSize = 0; + this.fontSizeScale = 1; + this.textMatrix = _util.IDENTITY_MATRIX; + this.textMatrixScale = 1; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textRise = 0; + this.fillColor = "#000000"; + this.strokeColor = "#000000"; + this.patternFill = false; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.activeSMask = null; + this.transferMaps = null; + this.startNewPathAndClipBox([0, 0, width, height]); + } + clone() { + const clone = Object.create(this); + clone.clipBox = this.clipBox.slice(); + return clone; + } + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + updatePathMinMax(transform, x, y) { + [x, y] = _util.Util.applyTransform([x, y], transform); + this.minX = Math.min(this.minX, x); + this.minY = Math.min(this.minY, y); + this.maxX = Math.max(this.maxX, x); + this.maxY = Math.max(this.maxY, y); + } + updateRectMinMax(transform, rect) { + const p1 = _util.Util.applyTransform(rect, transform); + const p2 = _util.Util.applyTransform(rect.slice(2), transform); + this.minX = Math.min(this.minX, p1[0], p2[0]); + this.minY = Math.min(this.minY, p1[1], p2[1]); + this.maxX = Math.max(this.maxX, p1[0], p2[0]); + this.maxY = Math.max(this.maxY, p1[1], p2[1]); + } + updateScalingPathMinMax(transform, minMax) { + _util.Util.scaleMinMax(transform, minMax); + this.minX = Math.min(this.minX, minMax[0]); + this.maxX = Math.max(this.maxX, minMax[1]); + this.minY = Math.min(this.minY, minMax[2]); + this.maxY = Math.max(this.maxY, minMax[3]); + } + updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) { + const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3); + if (minMax) { + minMax[0] = Math.min(minMax[0], box[0], box[2]); + minMax[1] = Math.max(minMax[1], box[0], box[2]); + minMax[2] = Math.min(minMax[2], box[1], box[3]); + minMax[3] = Math.max(minMax[3], box[1], box[3]); + return; + } + this.updateRectMinMax(transform, box); + } + getPathBoundingBox() { + let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL; + let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const box = [this.minX, this.minY, this.maxX, this.maxY]; + if (pathType === _pattern_helper.PathType.STROKE) { + if (!transform) { + (0, _util.unreachable)("Stroke bounding box must include transform."); + } + const scale = _util.Util.singularValueDecompose2dScale(transform); + const xStrokePad = scale[0] * this.lineWidth / 2; + const yStrokePad = scale[1] * this.lineWidth / 2; + box[0] -= xStrokePad; + box[1] -= yStrokePad; + box[2] += xStrokePad; + box[3] += yStrokePad; + } + return box; + } + updateClipFromPath() { + const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox()); + this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]); + } + isEmptyClip() { + return this.minX === Infinity; + } + startNewPathAndClipBox(box) { + this.clipBox = box; + this.minX = Infinity; + this.minY = Infinity; + this.maxX = 0; + this.maxY = 0; + } + getClippedPathBoundingBox() { + let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL; + let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform)); + } +} +function putBinaryImageData(ctx, imgData) { + let transferMaps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { + ctx.putImageData(imgData, 0, 0); + return; + } + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0, + destPos; + const src = imgData.data; + const dest = chunkImgData.data; + let i, j, thisChunkHeight, elemsInThisChunk; + let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray; + if (transferMaps) { + switch (transferMaps.length) { + case 1: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[0]; + transferMapBlue = transferMaps[0]; + transferMapGray = transferMaps[0]; + break; + case 4: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[1]; + transferMapBlue = transferMaps[2]; + transferMapGray = transferMaps[3]; + break; + } + } + if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { + const srcLength = src.byteLength; + const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + const dest32DataLength = dest32.length; + const fullSrcDiff = width + 7 >> 3; + let white = 0xffffffff; + let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + if (transferMapGray) { + if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) { + [white, black] = [black, white]; + } + } + for (i = 0; i < totalChunks; i++) { + thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + destPos = 0; + for (j = 0; j < thisChunkHeight; j++) { + const srcDiff = srcLength - srcPos; + let k = 0; + const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + const kEndUnrolled = kEnd & ~7; + let mask = 0; + let srcByte = 0; + for (; k < kEndUnrolled; k += 8) { + srcByte = src[srcPos++]; + dest32[destPos++] = srcByte & 128 ? white : black; + dest32[destPos++] = srcByte & 64 ? white : black; + dest32[destPos++] = srcByte & 32 ? white : black; + dest32[destPos++] = srcByte & 16 ? white : black; + dest32[destPos++] = srcByte & 8 ? white : black; + dest32[destPos++] = srcByte & 4 ? white : black; + dest32[destPos++] = srcByte & 2 ? white : black; + dest32[destPos++] = srcByte & 1 ? white : black; + } + for (; k < kEnd; k++) { + if (mask === 0) { + srcByte = src[srcPos++]; + mask = 128; + } + dest32[destPos++] = srcByte & mask ? white : black; + mask >>= 1; + } + } + while (destPos < dest32DataLength) { + dest32[destPos++] = 0; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); + j = 0; + elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; + for (i = 0; i < fullChunks; i++) { + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + srcPos += elemsInThisChunk; + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); + j += FULL_CHUNK_HEIGHT; + } + if (i < totalChunks) { + elemsInThisChunk = width * partialChunkHeight * 4; + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); + } + } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); + thisChunkHeight = FULL_CHUNK_HEIGHT; + elemsInThisChunk = width * thisChunkHeight; + for (i = 0; i < totalChunks; i++) { + if (i >= fullChunks) { + thisChunkHeight = partialChunkHeight; + elemsInThisChunk = width * thisChunkHeight; + } + destPos = 0; + for (j = elemsInThisChunk; j--;) { + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = 255; + } + if (hasTransferMaps) { + for (let k = 0; k < destPos; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else { + throw new Error(`bad image kind: ${imgData.kind}`); + } +} +function putBinaryImageMask(ctx, imgData) { + if (imgData.bitmap) { + ctx.drawImage(imgData.bitmap, 0, 0); + return; + } + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0; + const src = imgData.data; + const dest = chunkImgData.data; + for (let i = 0; i < totalChunks; i++) { + const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + ({ + srcPos + } = (0, _image_utils.applyMaskImageData)({ + src, + srcPos, + dest, + width, + height: thisChunkHeight + })); + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } +} +function copyCtxState(sourceCtx, destCtx) { + const properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"]; + for (const property of properties) { + if (sourceCtx[property] !== undefined) { + destCtx[property] = sourceCtx[property]; + } + } + if (sourceCtx.setLineDash !== undefined) { + destCtx.setLineDash(sourceCtx.getLineDash()); + destCtx.lineDashOffset = sourceCtx.lineDashOffset; + } +} +function resetCtxToDefault(ctx, foregroundColor) { + ctx.strokeStyle = ctx.fillStyle = foregroundColor || "#000000"; + ctx.fillRule = "nonzero"; + ctx.globalAlpha = 1; + ctx.lineWidth = 1; + ctx.lineCap = "butt"; + ctx.lineJoin = "miter"; + ctx.miterLimit = 10; + ctx.globalCompositeOperation = "source-over"; + ctx.font = "10px sans-serif"; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash([]); + ctx.lineDashOffset = 0; + } +} +function composeSMaskBackdrop(bytes, r0, g0, b0) { + const length = bytes.length; + for (let i = 3; i < length; i += 4) { + const alpha = bytes[i]; + if (alpha === 0) { + bytes[i - 3] = r0; + bytes[i - 2] = g0; + bytes[i - 1] = b0; + } else if (alpha < 255) { + const alpha_ = 255 - alpha; + bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; + bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; + bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; + } + } +} +function composeSMaskAlpha(maskData, layerData, transferMap) { + const length = maskData.length; + const scale = 1 / 255; + for (let i = 3; i < length; i += 4) { + const alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + layerData[i] = layerData[i] * alpha * scale | 0; + } +} +function composeSMaskLuminosity(maskData, layerData, transferMap) { + const length = maskData.length; + for (let i = 3; i < length; i += 4) { + const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; + } +} +function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) { + const hasBackdrop = !!backdrop; + const r0 = hasBackdrop ? backdrop[0] : 0; + const g0 = hasBackdrop ? backdrop[1] : 0; + const b0 = hasBackdrop ? backdrop[2] : 0; + let composeFn; + if (subtype === "Luminosity") { + composeFn = composeSMaskLuminosity; + } else { + composeFn = composeSMaskAlpha; + } + const PIXELS_TO_PROCESS = 1048576; + const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + for (let row = 0; row < height; row += chunkSize) { + const chunkHeight = Math.min(chunkSize, height - row); + const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight); + const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight); + if (hasBackdrop) { + composeSMaskBackdrop(maskData.data, r0, g0, b0); + } + composeFn(maskData.data, layerData.data, transferMap); + layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY); + } +} +function composeSMask(ctx, smask, layerCtx, layerBox) { + const layerOffsetX = layerBox[0]; + const layerOffsetY = layerBox[1]; + const layerWidth = layerBox[2] - layerOffsetX; + const layerHeight = layerBox[3] - layerOffsetY; + if (layerWidth === 0 || layerHeight === 0) { + return; + } + genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY); + ctx.save(); + ctx.globalAlpha = 1; + ctx.globalCompositeOperation = "source-over"; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(layerCtx.canvas, 0, 0); + ctx.restore(); +} +function getImageSmoothingEnabled(transform, interpolate) { + const scale = _util.Util.singularValueDecompose2dScale(transform); + scale[0] = Math.fround(scale[0]); + scale[1] = Math.fround(scale[1]); + const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); + if (interpolate !== undefined) { + return interpolate; + } else if (scale[0] <= actualScale || scale[1] <= actualScale) { + return true; + } + return false; +} +const LINE_CAP_STYLES = ["butt", "round", "square"]; +const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; +const NORMAL_CLIP = {}; +const EO_CLIP = {}; +var _restoreInitialState = /*#__PURE__*/new WeakSet(); +class CanvasGraphics { + constructor(canvasCtx, commonObjs, objs, canvasFactory, optionalContentConfig, annotationCanvasMap, pageColors) { + _classPrivateMethodInitSpec(this, _restoreInitialState); + this.ctx = canvasCtx; + this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.suspendedCtx = null; + this.contentVisible = true; + this.markedContentStack = []; + this.optionalContentConfig = optionalContentConfig; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + this.cachedPatterns = new Map(); + this.annotationCanvasMap = annotationCanvasMap; + this.viewportScale = 1; + this.outputScaleX = 1; + this.outputScaleY = 1; + this.backgroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.background) || null; + this.foregroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.foreground) || null; + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + this._cachedBitmapsMap = new Map(); + } + getObject(data) { + let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (typeof data === "string") { + return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); + } + return fallback; + } + beginDrawing(_ref) { + let { + transform, + viewport, + transparency = false, + background = null + } = _ref; + const width = this.ctx.canvas.width; + const height = this.ctx.canvas.height; + const defaultBackgroundColor = background || "#ffffff"; + this.ctx.save(); + if (this.foregroundColor && this.backgroundColor) { + this.ctx.fillStyle = this.foregroundColor; + const fg = this.foregroundColor = this.ctx.fillStyle; + this.ctx.fillStyle = this.backgroundColor; + const bg = this.backgroundColor = this.ctx.fillStyle; + let isValidDefaultBg = true; + let defaultBg = defaultBackgroundColor; + this.ctx.fillStyle = defaultBackgroundColor; + defaultBg = this.ctx.fillStyle; + isValidDefaultBg = typeof defaultBg === "string" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg); + if (fg === "#000000" && bg === "#ffffff" || fg === bg || !isValidDefaultBg) { + this.foregroundColor = this.backgroundColor = null; + } else { + const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg); + const newComp = x => { + x /= 255; + return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4; + }; + const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB)); + this.selectColor = (r, g, b) => { + const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b); + return Math.round(lumC) === lumB ? bg : fg; + }; + } + } + this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor; + this.ctx.fillRect(0, 0, width, height); + this.ctx.restore(); + if (transparency) { + const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height); + this.compositeCtx = this.ctx; + this.transparentCanvas = transparentCanvas.canvas; + this.ctx = transparentCanvas.context; + this.ctx.save(); + this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx)); + } + this.ctx.save(); + resetCtxToDefault(this.ctx, this.foregroundColor); + if (transform) { + this.ctx.transform(...transform); + this.outputScaleX = transform[0]; + this.outputScaleY = transform[0]; + } + this.ctx.transform(...viewport.transform); + this.viewportScale = viewport.scale; + this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx); + } + executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + let i = executionStartIdx || 0; + const argsArrayLen = argsArray.length; + if (argsArrayLen === i) { + return i; + } + const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; + const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + let steps = 0; + const commonObjs = this.commonObjs; + const objs = this.objs; + let fnId; + while (true) { + if (stepper !== undefined && i === stepper.nextBreakPoint) { + stepper.breakIt(i, continueCallback); + return i; + } + fnId = fnArray[i]; + if (fnId !== _util.OPS.dependency) { + this[fnId].apply(this, argsArray[i]); + } else { + for (const depObjId of argsArray[i]) { + const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; + } + } + } + i++; + if (i === argsArrayLen) { + return i; + } + if (chunkOperations && ++steps > EXECUTION_STEPS) { + if (Date.now() > endTime) { + continueCallback(); + return i; + } + steps = 0; + } + } + } + endDrawing() { + _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this); + this.cachedCanvases.clear(); + this.cachedPatterns.clear(); + for (const cache of this._cachedBitmapsMap.values()) { + for (const canvas of cache.values()) { + if (typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement) { + canvas.width = canvas.height = 0; + } + } + cache.clear(); + } + this._cachedBitmapsMap.clear(); + } + _scaleImage(img, inverseTransform) { + const width = img.width; + const height = img.height; + let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1); + let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1); + let paintWidth = width, + paintHeight = height; + let tmpCanvasId = "prescale1"; + let tmpCanvas, tmpCtx; + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + let newWidth = paintWidth, + newHeight = paintHeight; + if (widthScale > 2 && paintWidth > 1) { + newWidth = Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; + } + if (heightScale > 2 && paintHeight > 1) { + newHeight = Math.ceil(paintHeight / 2); + heightScale /= paintHeight / newHeight; + } + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + img = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; + } + return { + img, + paintWidth, + paintHeight + }; + } + _createMaskCanvas(img) { + const ctx = this.ctx; + const { + width, + height + } = img; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + let cache, cacheKey, scaled, maskCanvas; + if ((img.bitmap || img.data) && img.count > 1) { + const mainKey = img.bitmap || img.data.buffer; + cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]); + cache = this._cachedBitmapsMap.get(mainKey); + if (!cache) { + cache = new Map(); + this._cachedBitmapsMap.set(mainKey, cache); + } + const cachedImage = cache.get(cacheKey); + if (cachedImage && !isPatternFill) { + const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]); + const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]); + return { + canvas: cachedImage, + offsetX, + offsetY + }; + } + scaled = cachedImage; + } + if (!scaled) { + maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + putBinaryImageMask(maskCanvas.context, img); + } + let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]); + maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]); + const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas); + const cord2 = _util.Util.applyTransform([width, height], maskToCanvas); + const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]); + const drawnWidth = Math.round(rect[2] - rect[0]) || 1; + const drawnHeight = Math.round(rect[3] - rect[1]) || 1; + const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight); + const fillCtx = fillCanvas.context; + const offsetX = Math.min(cord1[0], cord2[0]); + const offsetY = Math.min(cord1[1], cord2[1]); + fillCtx.translate(-offsetX, -offsetY); + fillCtx.transform(...maskToCanvas); + if (!scaled) { + scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx)); + scaled = scaled.img; + if (cache && isPatternFill) { + cache.set(cacheKey, scaled); + } + } + fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate); + drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); + fillCtx.globalCompositeOperation = "source-in"; + const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]); + fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor; + fillCtx.fillRect(0, 0, width, height); + if (cache && !isPatternFill) { + this.cachedCanvases.delete("fillCanvas"); + cache.set(cacheKey, fillCanvas.canvas); + } + return { + canvas: fillCanvas.canvas, + offsetX: Math.round(offsetX), + offsetY: Math.round(offsetY) + }; + } + setLineWidth(width) { + if (width !== this.current.lineWidth) { + this._cachedScaleForStroking = null; + } + this.current.lineWidth = width; + this.ctx.lineWidth = width; + } + setLineCap(style) { + this.ctx.lineCap = LINE_CAP_STYLES[style]; + } + setLineJoin(style) { + this.ctx.lineJoin = LINE_JOIN_STYLES[style]; + } + setMiterLimit(limit) { + this.ctx.miterLimit = limit; + } + setDash(dashArray, dashPhase) { + const ctx = this.ctx; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash(dashArray); + ctx.lineDashOffset = dashPhase; + } + } + setRenderingIntent(intent) {} + setFlatness(flatness) {} + setGState(states) { + for (const [key, value] of states) { + switch (key) { + case "LW": + this.setLineWidth(value); + break; + case "LC": + this.setLineCap(value); + break; + case "LJ": + this.setLineJoin(value); + break; + case "ML": + this.setMiterLimit(value); + break; + case "D": + this.setDash(value[0], value[1]); + break; + case "RI": + this.setRenderingIntent(value); + break; + case "FL": + this.setFlatness(value); + break; + case "Font": + this.setFont(value[0], value[1]); + break; + case "CA": + this.current.strokeAlpha = value; + break; + case "ca": + this.current.fillAlpha = value; + this.ctx.globalAlpha = value; + break; + case "BM": + this.ctx.globalCompositeOperation = value; + break; + case "SMask": + this.current.activeSMask = value ? this.tempSMask : null; + this.tempSMask = null; + this.checkSMaskState(); + break; + case "TR": + this.current.transferMaps = value; + } + } + } + get inSMaskMode() { + return !!this.suspendedCtx; + } + checkSMaskState() { + const inSMaskMode = this.inSMaskMode; + if (this.current.activeSMask && !inSMaskMode) { + this.beginSMaskMode(); + } else if (!this.current.activeSMask && inSMaskMode) { + this.endSMaskMode(); + } + } + beginSMaskMode() { + if (this.inSMaskMode) { + throw new Error("beginSMaskMode called while already in smask mode"); + } + const drawnWidth = this.ctx.canvas.width; + const drawnHeight = this.ctx.canvas.height; + const cacheId = "smaskGroupAt" + this.groupLevel; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); + this.suspendedCtx = this.ctx; + this.ctx = scratchCanvas.context; + const ctx = this.ctx; + ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx)); + copyCtxState(this.suspendedCtx, ctx); + mirrorContextOperations(ctx, this.suspendedCtx); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); + } + endSMaskMode() { + if (!this.inSMaskMode) { + throw new Error("endSMaskMode called while not in smask mode"); + } + this.ctx._removeMirroring(); + copyCtxState(this.ctx, this.suspendedCtx); + this.ctx = this.suspendedCtx; + this.suspendedCtx = null; + } + compose(dirtyBox) { + if (!this.current.activeSMask) { + return; + } + if (!dirtyBox) { + dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height]; + } else { + dirtyBox[0] = Math.floor(dirtyBox[0]); + dirtyBox[1] = Math.floor(dirtyBox[1]); + dirtyBox[2] = Math.ceil(dirtyBox[2]); + dirtyBox[3] = Math.ceil(dirtyBox[3]); + } + const smask = this.current.activeSMask; + const suspendedCtx = this.suspendedCtx; + composeSMask(suspendedCtx, smask, this.ctx, dirtyBox); + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height); + this.ctx.restore(); + } + save() { + if (this.inSMaskMode) { + copyCtxState(this.ctx, this.suspendedCtx); + this.suspendedCtx.save(); + } else { + this.ctx.save(); + } + const old = this.current; + this.stateStack.push(old); + this.current = old.clone(); + } + restore() { + if (this.stateStack.length === 0 && this.inSMaskMode) { + this.endSMaskMode(); + } + if (this.stateStack.length !== 0) { + this.current = this.stateStack.pop(); + if (this.inSMaskMode) { + this.suspendedCtx.restore(); + copyCtxState(this.suspendedCtx, this.ctx); + } else { + this.ctx.restore(); + } + this.checkSMaskState(); + this.pendingClip = null; + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + } + } + transform(a, b, c, d, e, f) { + this.ctx.transform(a, b, c, d, e, f); + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + } + constructPath(ops, args, minMax) { + const ctx = this.ctx; + const current = this.current; + let x = current.x, + y = current.y; + let startX, startY; + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0; + const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null; + for (let i = 0, j = 0, ii = ops.length; i < ii; i++) { + switch (ops[i] | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + ctx.moveTo(x, y); + if (width === 0 || height === 0) { + ctx.lineTo(xw, yh); + } else { + ctx.lineTo(xw, y); + ctx.lineTo(xw, yh); + ctx.lineTo(x, yh); + } + if (!isScalingMatrix) { + current.updateRectMinMax(currentTransform, [x, y, xw, yh]); + } + ctx.closePath(); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + ctx.moveTo(x, y); + if (!isScalingMatrix) { + current.updatePathMinMax(currentTransform, x, y); + } + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + ctx.lineTo(x, y); + if (!isScalingMatrix) { + current.updatePathMinMax(currentTransform, x, y); + } + break; + case _util.OPS.curveTo: + startX = x; + startY = y; + x = args[j + 4]; + y = args[j + 5]; + ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); + current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier); + j += 6; + break; + case _util.OPS.curveTo2: + startX = x; + startY = y; + ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); + current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case _util.OPS.curveTo3: + startX = x; + startY = y; + x = args[j + 2]; + y = args[j + 3]; + ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); + current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier); + j += 4; + break; + case _util.OPS.closePath: + ctx.closePath(); + break; + } + } + if (isScalingMatrix) { + current.updateScalingPathMinMax(currentTransform, minMaxForBezier); + } + current.setCurrentPoint(x, y); + } + closePath() { + this.ctx.closePath(); + } + stroke(consumePath) { + consumePath = typeof consumePath !== "undefined" ? consumePath : true; + const ctx = this.ctx; + const strokeColor = this.current.strokeColor; + ctx.globalAlpha = this.current.strokeAlpha; + if (this.contentVisible) { + if (typeof strokeColor === "object" && strokeColor !== null && strokeColor !== void 0 && strokeColor.getPattern) { + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE); + this.rescaleAndStroke(false); + ctx.restore(); + } else { + this.rescaleAndStroke(true); + } + } + if (consumePath) { + this.consumePath(this.current.getClippedPathBoundingBox()); + } + ctx.globalAlpha = this.current.fillAlpha; + } + closeStroke() { + this.closePath(); + this.stroke(); + } + fill(consumePath) { + consumePath = typeof consumePath !== "undefined" ? consumePath : true; + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + let needRestore = false; + if (isPatternFill) { + ctx.save(); + ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL); + needRestore = true; + } + const intersect = this.current.getClippedPathBoundingBox(); + if (this.contentVisible && intersect !== null) { + if (this.pendingEOFill) { + ctx.fill("evenodd"); + this.pendingEOFill = false; + } else { + ctx.fill(); + } + } + if (needRestore) { + ctx.restore(); + } + if (consumePath) { + this.consumePath(intersect); + } + } + eoFill() { + this.pendingEOFill = true; + this.fill(); + } + fillStroke() { + this.fill(false); + this.stroke(false); + this.consumePath(); + } + eoFillStroke() { + this.pendingEOFill = true; + this.fillStroke(); + } + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + closeEOFillStroke() { + this.pendingEOFill = true; + this.closePath(); + this.fillStroke(); + } + endPath() { + this.consumePath(); + } + clip() { + this.pendingClip = NORMAL_CLIP; + } + eoClip() { + this.pendingClip = EO_CLIP; + } + beginText() { + this.current.textMatrix = _util.IDENTITY_MATRIX; + this.current.textMatrixScale = 1; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + } + endText() { + const paths = this.pendingTextPaths; + const ctx = this.ctx; + if (paths === undefined) { + ctx.beginPath(); + return; + } + ctx.save(); + ctx.beginPath(); + for (const path of paths) { + ctx.setTransform(...path.transform); + ctx.translate(path.x, path.y); + path.addToPath(ctx, path.fontSize); + } + ctx.restore(); + ctx.clip(); + ctx.beginPath(); + delete this.pendingTextPaths; + } + setCharSpacing(spacing) { + this.current.charSpacing = spacing; + } + setWordSpacing(spacing) { + this.current.wordSpacing = spacing; + } + setHScale(scale) { + this.current.textHScale = scale / 100; + } + setLeading(leading) { + this.current.leading = -leading; + } + setFont(fontRefName, size) { + const fontObj = this.commonObjs.get(fontRefName); + const current = this.current; + if (!fontObj) { + throw new Error(`Can't find font for ${fontRefName}`); + } + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; + if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { + (0, _util.warn)("Invalid font matrix for font " + fontRefName); + } + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + this.current.font = fontObj; + this.current.fontSize = size; + if (fontObj.isType3Font) { + return; + } + const name = fontObj.loadedName || "sans-serif"; + let bold = "normal"; + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + const italic = fontObj.italic ? "italic" : "normal"; + const typeface = `"${name}", ${fontObj.fallbackName}`; + let browserFontSize = size; + if (size < MIN_FONT_SIZE) { + browserFontSize = MIN_FONT_SIZE; + } else if (size > MAX_FONT_SIZE) { + browserFontSize = MAX_FONT_SIZE; + } + this.current.fontSizeScale = size / browserFontSize; + this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`; + } + setTextRenderingMode(mode) { + this.current.textRenderingMode = mode; + } + setTextRise(rise) { + this.current.textRise = rise; + } + moveText(x, y) { + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + } + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + setTextMatrix(a, b, c, d, e, f) { + this.current.textMatrix = [a, b, c, d, e, f]; + this.current.textMatrixScale = Math.hypot(a, b); + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + } + nextLine() { + this.moveText(0, this.current.leading); + } + paintChar(character, x, y, patternTransform) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const textRenderingMode = current.textRenderingMode; + const fontSize = current.fontSize / current.fontSizeScale; + const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + const patternFill = current.patternFill && !font.missingFile; + let addToPath; + if (font.disableFontFace || isAddToPathSet || patternFill) { + addToPath = font.getPathGenerator(this.commonObjs, character); + } + if (font.disableFontFace || patternFill) { + ctx.save(); + ctx.translate(x, y); + ctx.beginPath(); + addToPath(ctx, fontSize); + if (patternTransform) { + ctx.setTransform(...patternTransform); + } + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fill(); + } + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.stroke(); + } + ctx.restore(); + } else { + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fillText(character, x, y); + } + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.strokeText(character, x, y); + } + } + if (isAddToPathSet) { + const paths = this.pendingTextPaths || (this.pendingTextPaths = []); + paths.push({ + transform: (0, _display_utils.getCurrentTransform)(ctx), + x, + y, + fontSize, + addToPath + }); + } + } + get isFontSubpixelAAEnabled() { + const { + context: ctx + } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); + ctx.scale(1.5, 1); + ctx.fillText("I", 0, 10); + const data = ctx.getImageData(0, 0, 10, 10).data; + let enabled = false; + for (let i = 3; i < data.length; i += 4) { + if (data[i] > 0 && data[i] < 255) { + enabled = true; + break; + } + } + return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled); + } + showText(glyphs) { + const current = this.current; + const font = current.font; + if (font.isType3Font) { + return this.showType3Text(glyphs); + } + const fontSize = current.fontSize; + if (fontSize === 0) { + return undefined; + } + const ctx = this.ctx; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const glyphsLength = glyphs.length; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; + ctx.save(); + ctx.transform(...current.textMatrix); + ctx.translate(current.x, current.y + current.textRise); + if (fontDirection > 0) { + ctx.scale(textHScale, -1); + } else { + ctx.scale(textHScale, 1); + } + let patternTransform; + if (current.patternFill) { + ctx.save(); + const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL); + patternTransform = (0, _display_utils.getCurrentTransform)(ctx); + ctx.restore(); + ctx.fillStyle = pattern; + } + let lineWidth = current.lineWidth; + const scale = current.textMatrixScale; + if (scale === 0 || lineWidth === 0) { + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + lineWidth = this.getSinglePixelWidth(); + } + } else { + lineWidth /= scale; + } + if (fontSizeScale !== 1.0) { + ctx.scale(fontSizeScale, fontSizeScale); + lineWidth /= fontSizeScale; + } + ctx.lineWidth = lineWidth; + let x = 0, + i; + for (i = 0; i < glyphsLength; ++i) { + const glyph = glyphs[i]; + if (typeof glyph === "number") { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + let restoreNeeded = false; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + const accent = glyph.accent; + let scaledX, scaledY; + let width = glyph.width; + if (vertical) { + const vmetric = glyph.vmetric || defaultVMetrics; + const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (font.remeasure && width > 0) { + const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + if (width < measuredWidth && this.isFontSubpixelAAEnabled) { + const characterScaleX = width / measuredWidth; + restoreNeeded = true; + ctx.save(); + ctx.scale(characterScaleX, 1); + scaledX /= characterScaleX; + } else if (width !== measuredWidth) { + scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; + } + } + if (this.contentVisible && (glyph.isInFont || font.missingFile)) { + if (simpleFillText && !accent) { + ctx.fillText(character, scaledX, scaledY); + } else { + this.paintChar(character, scaledX, scaledY, patternTransform); + if (accent) { + const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; + const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + } + } + } + let charWidth; + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; + } else { + charWidth = width * widthAdvanceScale + spacing * fontDirection; + } + x += charWidth; + if (restoreNeeded) { + ctx.restore(); + } + } + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + ctx.restore(); + this.compose(); + return undefined; + } + showType3Text(glyphs) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + const fontDirection = current.fontDirection; + const spacingDir = font.vertical ? 1 : -1; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const textHScale = current.textHScale * fontDirection; + const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; + const glyphsLength = glyphs.length; + const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; + let i, glyph, width, spacingLength; + if (isTextInvisible || fontSize === 0) { + return; + } + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + ctx.save(); + ctx.transform(...current.textMatrix); + ctx.translate(current.x, current.y); + ctx.scale(textHScale, fontDirection); + for (i = 0; i < glyphsLength; ++i) { + glyph = glyphs[i]; + if (typeof glyph === "number") { + spacingLength = spacingDir * glyph * fontSize / 1000; + this.ctx.translate(spacingLength, 0); + current.x += spacingLength * textHScale; + continue; + } + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const operatorList = font.charProcOperatorList[glyph.operatorListId]; + if (!operatorList) { + (0, _util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`); + continue; + } + if (this.contentVisible) { + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform(...fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + } + const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + width = transformed[0] * fontSize + spacing; + ctx.translate(width, 0); + current.x += width * textHScale; + } + ctx.restore(); + this.processingType3 = null; + } + setCharWidth(xWidth, yWidth) {} + setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + this.ctx.rect(llx, lly, urx - llx, ury - lly); + this.ctx.clip(); + this.endPath(); + } + getColorN_Pattern(IR) { + let pattern; + if (IR[0] === "TilingPattern") { + const color = IR[1]; + const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx); + const canvasGraphicsFactory = { + createCanvasGraphics: ctx => { + return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory); + } + }; + pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + } else { + pattern = this._getPattern(IR[1], IR[2]); + } + return pattern; + } + setStrokeColorN() { + this.current.strokeColor = this.getColorN_Pattern(arguments); + } + setFillColorN() { + this.current.fillColor = this.getColorN_Pattern(arguments); + this.current.patternFill = true; + } + setStrokeRGBColor(r, g, b) { + var _this$selectColor; + const color = ((_this$selectColor = this.selectColor) === null || _this$selectColor === void 0 ? void 0 : _this$selectColor.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b); + this.ctx.strokeStyle = color; + this.current.strokeColor = color; + } + setFillRGBColor(r, g, b) { + var _this$selectColor2; + const color = ((_this$selectColor2 = this.selectColor) === null || _this$selectColor2 === void 0 ? void 0 : _this$selectColor2.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b); + this.ctx.fillStyle = color; + this.current.fillColor = color; + this.current.patternFill = false; + } + _getPattern(objId) { + let matrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let pattern; + if (this.cachedPatterns.has(objId)) { + pattern = this.cachedPatterns.get(objId); + } else { + pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId)); + this.cachedPatterns.set(objId, pattern); + } + if (matrix) { + pattern.matrix = matrix; + } + return pattern; + } + shadingFill(objId) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + this.save(); + const pattern = this._getPattern(objId); + ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING); + const inv = (0, _display_utils.getCurrentTransformInverse)(ctx); + if (inv) { + const canvas = ctx.canvas; + const width = canvas.width; + const height = canvas.height; + const bl = _util.Util.applyTransform([0, 0], inv); + const br = _util.Util.applyTransform([0, height], inv); + const ul = _util.Util.applyTransform([width, 0], inv); + const ur = _util.Util.applyTransform([width, height], inv); + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); + } else { + this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); + } + this.compose(this.current.getClippedPathBoundingBox()); + this.restore(); + } + beginInlineImage() { + (0, _util.unreachable)("Should not call beginInlineImage"); + } + beginImageData() { + (0, _util.unreachable)("Should not call beginImageData"); + } + paintFormXObjectBegin(matrix, bbox) { + if (!this.contentVisible) { + return; + } + this.save(); + this.baseTransformStack.push(this.baseTransform); + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(...matrix); + } + this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx); + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + this.ctx.rect(bbox[0], bbox[1], width, height); + this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox); + this.clip(); + this.endPath(); + } + } + paintFormXObjectEnd() { + if (!this.contentVisible) { + return; + } + this.restore(); + this.baseTransform = this.baseTransformStack.pop(); + } + beginGroup(group) { + if (!this.contentVisible) { + return; + } + this.save(); + if (this.inSMaskMode) { + this.endSMaskMode(); + this.current.activeSMask = null; + } + const currentCtx = this.ctx; + if (!group.isolated) { + (0, _util.info)("TODO: Support non-isolated groups."); + } + if (group.knockout) { + (0, _util.warn)("Knockout groups not supported."); + } + const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx); + if (group.matrix) { + currentCtx.transform(...group.matrix); + } + if (!group.bbox) { + throw new Error("Bounding box is required."); + } + let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx)); + const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; + const offsetX = Math.floor(bounds[0]); + const offsetY = Math.floor(bounds[1]); + let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + let scaleX = 1, + scaleY = 1; + if (drawnWidth > MAX_GROUP_SIZE) { + scaleX = drawnWidth / MAX_GROUP_SIZE; + drawnWidth = MAX_GROUP_SIZE; + } + if (drawnHeight > MAX_GROUP_SIZE) { + scaleY = drawnHeight / MAX_GROUP_SIZE; + drawnHeight = MAX_GROUP_SIZE; + } + this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]); + let cacheId = "groupAt" + this.groupLevel; + if (group.smask) { + cacheId += "_smask_" + this.smaskCounter++ % 2; + } + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); + const groupCtx = scratchCanvas.context; + groupCtx.scale(1 / scaleX, 1 / scaleY); + groupCtx.translate(-offsetX, -offsetY); + groupCtx.transform(...currentTransform); + if (group.smask) { + this.smaskStack.push({ + canvas: scratchCanvas.canvas, + context: groupCtx, + offsetX, + offsetY, + scaleX, + scaleY, + subtype: group.smask.subtype, + backdrop: group.smask.backdrop, + transferMap: group.smask.transferMap || null, + startTransformInverse: null + }); + } else { + currentCtx.setTransform(1, 0, 0, 1, 0, 0); + currentCtx.translate(offsetX, offsetY); + currentCtx.scale(scaleX, scaleY); + currentCtx.save(); + } + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + } + endGroup(group) { + if (!this.contentVisible) { + return; + } + this.groupLevel--; + const groupCtx = this.ctx; + const ctx = this.groupStack.pop(); + this.ctx = ctx; + this.ctx.imageSmoothingEnabled = false; + if (group.smask) { + this.tempSMask = this.smaskStack.pop(); + this.restore(); + } else { + this.ctx.restore(); + const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx); + this.restore(); + this.ctx.save(); + this.ctx.setTransform(...currentMtx); + const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx); + this.ctx.drawImage(groupCtx.canvas, 0, 0); + this.ctx.restore(); + this.compose(dirtyBox); + } + } + beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) { + _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this); + resetCtxToDefault(this.ctx, this.foregroundColor); + this.ctx.save(); + this.save(); + if (this.baseTransform) { + this.ctx.setTransform(...this.baseTransform); + } + if (Array.isArray(rect) && rect.length === 4) { + const width = rect[2] - rect[0]; + const height = rect[3] - rect[1]; + if (hasOwnCanvas && this.annotationCanvasMap) { + transform = transform.slice(); + transform[4] -= rect[0]; + transform[5] -= rect[1]; + rect = rect.slice(); + rect[0] = rect[1] = 0; + rect[2] = width; + rect[3] = height; + const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx)); + const { + viewportScale + } = this; + const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale); + const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale); + this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight); + const { + canvas, + context + } = this.annotationCanvas; + this.annotationCanvasMap.set(id, canvas); + this.annotationCanvas.savedCtx = this.ctx; + this.ctx = context; + this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY); + resetCtxToDefault(this.ctx, this.foregroundColor); + } else { + resetCtxToDefault(this.ctx, this.foregroundColor); + this.ctx.rect(rect[0], rect[1], width, height); + this.ctx.clip(); + this.endPath(); + } + } + this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); + this.transform(...transform); + this.transform(...matrix); + } + endAnnotation() { + if (this.annotationCanvas) { + this.ctx = this.annotationCanvas.savedCtx; + delete this.annotationCanvas.savedCtx; + delete this.annotationCanvas; + } + } + paintImageMaskXObject(img) { + if (!this.contentVisible) { + return; + } + const count = img.count; + img = this.getObject(img.data, img); + img.count = count; + const ctx = this.ctx; + const glyph = this.processingType3; + if (glyph) { + if (glyph.compiled === undefined) { + glyph.compiled = compileType3Glyph(img); + } + if (glyph.compiled) { + glyph.compiled(ctx); + return; + } + } + const mask = this._createMaskCanvas(img); + const maskCanvas = mask.canvas; + ctx.save(); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY); + ctx.restore(); + this.compose(); + } + paintImageMaskXObjectRepeat(img, scaleX) { + let skewX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + let skewY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + let scaleY = arguments.length > 4 ? arguments[4] : undefined; + let positions = arguments.length > 5 ? arguments[5] : undefined; + if (!this.contentVisible) { + return; + } + img = this.getObject(img.data, img); + const ctx = this.ctx; + ctx.save(); + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0); + const mask = this._createMaskCanvas(img); + ctx.setTransform(1, 0, 0, 1, 0, 0); + for (let i = 0, ii = positions.length; i < ii; i += 2) { + const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]); + const [x, y] = _util.Util.applyTransform([0, 0], trans); + ctx.drawImage(mask.canvas, x, y); + } + ctx.restore(); + this.compose(); + } + paintImageMaskXObjectGroup(images) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + for (const image of images) { + const { + data, + width, + height, + transform + } = image; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; + maskCtx.save(); + const img = this.getObject(data, image); + putBinaryImageMask(maskCtx, img); + maskCtx.globalCompositeOperation = "source-in"; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + ctx.save(); + ctx.transform(...transform); + ctx.scale(1, -1); + drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + this.compose(); + } + paintImageXObject(objId) { + if (!this.contentVisible) { + return; + } + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)("Dependent image isn't ready yet"); + return; + } + this.paintInlineImageXObject(imgData); + } + paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + if (!this.contentVisible) { + return; + } + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)("Dependent image isn't ready yet"); + return; + } + const width = imgData.width; + const height = imgData.height; + const map = []; + for (let i = 0, ii = positions.length; i < ii; i += 2) { + map.push({ + transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], + x: 0, + y: 0, + w: width, + h: height + }); + } + this.paintInlineImageXObjectGroup(imgData, map); + } + paintInlineImageXObject(imgData) { + if (!this.contentVisible) { + return; + } + const width = imgData.width; + const height = imgData.height; + const ctx = this.ctx; + this.save(); + ctx.scale(1 / width, -1 / height); + let imgToPaint; + if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { + imgToPaint = imgData; + } else { + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); + imgToPaint = tmpCanvas.canvas; + } + const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx)); + ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate); + drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); + this.compose(); + this.restore(); + } + paintInlineImageXObjectGroup(imgData, map) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + const w = imgData.width; + const h = imgData.height; + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); + for (const entry of map) { + ctx.save(); + ctx.transform(...entry.transform); + ctx.scale(1, -1); + drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + ctx.restore(); + } + this.compose(); + } + paintSolidColorImageMask() { + if (!this.contentVisible) { + return; + } + this.ctx.fillRect(0, 0, 1, 1); + this.compose(); + } + markPoint(tag) {} + markPointProps(tag, properties) {} + beginMarkedContent(tag) { + this.markedContentStack.push({ + visible: true + }); + } + beginMarkedContentProps(tag, properties) { + if (tag === "OC") { + this.markedContentStack.push({ + visible: this.optionalContentConfig.isVisible(properties) + }); + } else { + this.markedContentStack.push({ + visible: true + }); + } + this.contentVisible = this.isContentVisible(); + } + endMarkedContent() { + this.markedContentStack.pop(); + this.contentVisible = this.isContentVisible(); + } + beginCompat() {} + endCompat() {} + consumePath(clipBox) { + const isEmpty = this.current.isEmptyClip(); + if (this.pendingClip) { + this.current.updateClipFromPath(); + } + if (!this.pendingClip) { + this.compose(clipBox); + } + const ctx = this.ctx; + if (this.pendingClip) { + if (!isEmpty) { + if (this.pendingClip === EO_CLIP) { + ctx.clip("evenodd"); + } else { + ctx.clip(); + } + } + this.pendingClip = null; + } + this.current.startNewPathAndClipBox(this.current.clipBox); + ctx.beginPath(); + } + getSinglePixelWidth() { + if (!this._cachedGetSinglePixelWidth) { + const m = (0, _display_utils.getCurrentTransform)(this.ctx); + if (m[1] === 0 && m[2] === 0) { + this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3])); + } else { + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const normX = Math.hypot(m[0], m[2]); + const normY = Math.hypot(m[1], m[3]); + this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet; + } + } + return this._cachedGetSinglePixelWidth; + } + getScaleForStroking() { + if (!this._cachedScaleForStroking) { + const { + lineWidth + } = this.current; + const m = (0, _display_utils.getCurrentTransform)(this.ctx); + let scaleX, scaleY; + if (m[1] === 0 && m[2] === 0) { + const normX = Math.abs(m[0]); + const normY = Math.abs(m[3]); + if (lineWidth === 0) { + scaleX = 1 / normX; + scaleY = 1 / normY; + } else { + const scaledXLineWidth = normX * lineWidth; + const scaledYLineWidth = normY * lineWidth; + scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1; + scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1; + } + } else { + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const normX = Math.hypot(m[0], m[1]); + const normY = Math.hypot(m[2], m[3]); + if (lineWidth === 0) { + scaleX = normY / absDet; + scaleY = normX / absDet; + } else { + const baseArea = lineWidth * absDet; + scaleX = normY > baseArea ? normY / baseArea : 1; + scaleY = normX > baseArea ? normX / baseArea : 1; + } + } + this._cachedScaleForStroking = [scaleX, scaleY]; + } + return this._cachedScaleForStroking; + } + rescaleAndStroke(saveRestore) { + const { + ctx + } = this; + const { + lineWidth + } = this.current; + const [scaleX, scaleY] = this.getScaleForStroking(); + ctx.lineWidth = lineWidth || 1; + if (scaleX === 1 && scaleY === 1) { + ctx.stroke(); + return; + } + let savedMatrix, savedDashes, savedDashOffset; + if (saveRestore) { + savedMatrix = (0, _display_utils.getCurrentTransform)(ctx); + savedDashes = ctx.getLineDash().slice(); + savedDashOffset = ctx.lineDashOffset; + } + ctx.scale(scaleX, scaleY); + const scale = Math.max(scaleX, scaleY); + ctx.setLineDash(ctx.getLineDash().map(x => x / scale)); + ctx.lineDashOffset /= scale; + ctx.stroke(); + if (saveRestore) { + ctx.setTransform(...savedMatrix); + ctx.setLineDash(savedDashes); + ctx.lineDashOffset = savedDashOffset; + } + } + isContentVisible() { + for (let i = this.markedContentStack.length - 1; i >= 0; i--) { + if (!this.markedContentStack[i].visible) { + return false; + } + } + return true; + } +} +exports.CanvasGraphics = CanvasGraphics; +function _restoreInitialState2() { + while (this.stateStack.length || this.inSMaskMode) { + this.restore(); + } + this.ctx.restore(); + if (this.transparentCanvas) { + this.ctx = this.compositeCtx; + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.drawImage(this.transparentCanvas, 0, 0); + this.ctx.restore(); + this.transparentCanvas = null; + } +} +for (const op in _util.OPS) { + if (CanvasGraphics.prototype[op] !== undefined) { + CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; + } +} + +/***/ }), +/* 142 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TilingPattern = exports.PathType = void 0; +exports.getShadingPattern = getShadingPattern; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +var _is_node = __w_pdfjs_require__(3); +const PathType = { + FILL: "Fill", + STROKE: "Stroke", + SHADING: "Shading" +}; +exports.PathType = PathType; +function applyBoundingBox(ctx, bbox) { + if (!bbox || _is_node.isNodeJS) { + return; + } + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const region = new Path2D(); + region.rect(bbox[0], bbox[1], width, height); + ctx.clip(region); +} +class BaseShadingPattern { + constructor() { + if (this.constructor === BaseShadingPattern) { + (0, _util.unreachable)("Cannot initialize BaseShadingPattern."); + } + } + getPattern() { + (0, _util.unreachable)("Abstract method `getPattern` called."); + } +} +class RadialAxialShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._type = IR[1]; + this._bbox = IR[2]; + this._colorStops = IR[3]; + this._p0 = IR[4]; + this._p1 = IR[5]; + this._r0 = IR[6]; + this._r1 = IR[7]; + this.matrix = null; + } + _createGradient(ctx) { + let grad; + if (this._type === "axial") { + grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); + } else if (this._type === "radial") { + grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1); + } + for (const colorStop of this._colorStops) { + grad.addColorStop(colorStop[0], colorStop[1]); + } + return grad; + } + getPattern(ctx, owner, inverse, pathType) { + let pattern; + if (pathType === PathType.STROKE || pathType === PathType.FILL) { + const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0]; + const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1; + const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1; + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", width, height, true); + const tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.beginPath(); + tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]); + inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]); + tmpCtx.transform(...owner.baseTransform); + if (this.matrix) { + tmpCtx.transform(...this.matrix); + } + applyBoundingBox(tmpCtx, this._bbox); + tmpCtx.fillStyle = this._createGradient(tmpCtx); + tmpCtx.fill(); + pattern = ctx.createPattern(tmpCanvas.canvas, "no-repeat"); + const domMatrix = new DOMMatrix(inverse); + pattern.setTransform(domMatrix); + } else { + applyBoundingBox(ctx, this._bbox); + pattern = this._createGradient(ctx); + } + return pattern; + } +} +function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + const coords = context.coords, + colors = context.colors; + const bytes = data.data, + rowSize = data.width * 4; + let tmp; + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + if (coords[p2 + 1] > coords[p3 + 1]) { + tmp = p2; + p2 = p3; + p3 = tmp; + tmp = c2; + c2 = c3; + c3 = tmp; + } + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + const x1 = (coords[p1] + context.offsetX) * context.scaleX; + const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + const x2 = (coords[p2] + context.offsetX) * context.scaleX; + const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + const x3 = (coords[p3] + context.offsetX) * context.scaleX; + const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; + if (y1 >= y3) { + return; + } + const c1r = colors[c1], + c1g = colors[c1 + 1], + c1b = colors[c1 + 2]; + const c2r = colors[c2], + c2g = colors[c2 + 1], + c2b = colors[c2 + 2]; + const c3r = colors[c3], + c3g = colors[c3 + 1], + c3b = colors[c3 + 2]; + const minY = Math.round(y1), + maxY = Math.round(y3); + let xa, car, cag, cab; + let xb, cbr, cbg, cbb; + for (let y = minY; y <= maxY; y++) { + if (y < y2) { + let k; + if (y < y1) { + k = 0; + } else { + k = (y1 - y) / (y1 - y2); + } + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + let k; + if (y > y3) { + k = 1; + } else if (y2 === y3) { + k = 0; + } else { + k = (y2 - y) / (y2 - y3); + } + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; + } + let k; + if (y < y1) { + k = 0; + } else if (y > y3) { + k = 1; + } else { + k = (y1 - y) / (y1 - y3); + } + xb = x1 - (x1 - x3) * k; + cbr = c1r - (c1r - c3r) * k; + cbg = c1g - (c1g - c3g) * k; + cbb = c1b - (c1b - c3b) * k; + const x1_ = Math.round(Math.min(xa, xb)); + const x2_ = Math.round(Math.max(xa, xb)); + let j = rowSize * y + x1_ * 4; + for (let x = x1_; x <= x2_; x++) { + k = (xa - x) / (xa - xb); + if (k < 0) { + k = 0; + } else if (k > 1) { + k = 1; + } + bytes[j++] = car - (car - cbr) * k | 0; + bytes[j++] = cag - (cag - cbg) * k | 0; + bytes[j++] = cab - (cab - cbb) * k | 0; + bytes[j++] = 255; + } + } +} +function drawFigure(data, figure, context) { + const ps = figure.coords; + const cs = figure.colors; + let i, ii; + switch (figure.type) { + case "lattice": + const verticesPerRow = figure.verticesPerRow; + const rows = Math.floor(ps.length / verticesPerRow) - 1; + const cols = verticesPerRow - 1; + for (i = 0; i < rows; i++) { + let q = i * verticesPerRow; + for (let j = 0; j < cols; j++, q++) { + drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); + drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); + } + } + break; + case "triangles": + for (i = 0, ii = ps.length; i < ii; i += 3) { + drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); + } + break; + default: + throw new Error("illegal figure"); + } +} +class MeshShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._coords = IR[2]; + this._colors = IR[3]; + this._figures = IR[4]; + this._bounds = IR[5]; + this._bbox = IR[7]; + this._background = IR[8]; + this.matrix = null; + } + _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) { + const EXPECTED_SCALE = 1.1; + const MAX_PATTERN_SIZE = 3000; + const BORDER_SIZE = 2; + const offsetX = Math.floor(this._bounds[0]); + const offsetY = Math.floor(this._bounds[1]); + const boundsWidth = Math.ceil(this._bounds[2]) - offsetX; + const boundsHeight = Math.ceil(this._bounds[3]) - offsetY; + const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const scaleX = boundsWidth / width; + const scaleY = boundsHeight / height; + const context = { + coords: this._coords, + colors: this._colors, + offsetX: -offsetX, + offsetY: -offsetY, + scaleX: 1 / scaleX, + scaleY: 1 / scaleY + }; + const paddedWidth = width + BORDER_SIZE * 2; + const paddedHeight = height + BORDER_SIZE * 2; + const tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); + const tmpCtx = tmpCanvas.context; + const data = tmpCtx.createImageData(width, height); + if (backgroundColor) { + const bytes = data.data; + for (let i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; + } + } + for (const figure of this._figures) { + drawFigure(data, figure, context); + } + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + const canvas = tmpCanvas.canvas; + return { + canvas, + offsetX: offsetX - BORDER_SIZE * scaleX, + offsetY: offsetY - BORDER_SIZE * scaleY, + scaleX, + scaleY + }; + } + getPattern(ctx, owner, inverse, pathType) { + applyBoundingBox(ctx, this._bbox); + let scale; + if (pathType === PathType.SHADING) { + scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx)); + } else { + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + if (this.matrix) { + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; + } + } + const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases); + if (pathType !== PathType.SHADING) { + ctx.setTransform(...owner.baseTransform); + if (this.matrix) { + ctx.transform(...this.matrix); + } + } + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); + } +} +class DummyShadingPattern extends BaseShadingPattern { + getPattern() { + return "hotpink"; + } +} +function getShadingPattern(IR) { + switch (IR[0]) { + case "RadialAxial": + return new RadialAxialShadingPattern(IR); + case "Mesh": + return new MeshShadingPattern(IR); + case "Dummy": + return new DummyShadingPattern(); + } + throw new Error(`Unknown IR type: ${IR[0]}`); +} +const PaintType = { + COLORED: 1, + UNCOLORED: 2 +}; +class TilingPattern { + static get MAX_PATTERN_SIZE() { + return (0, _util.shadow)(this, "MAX_PATTERN_SIZE", 3000); + } + constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) { + this.operatorList = IR[2]; + this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; + this.bbox = IR[4]; + this.xstep = IR[5]; + this.ystep = IR[6]; + this.paintType = IR[7]; + this.tilingType = IR[8]; + this.color = color; + this.ctx = ctx; + this.canvasGraphicsFactory = canvasGraphicsFactory; + this.baseTransform = baseTransform; + } + createPatternCanvas(owner) { + const operatorList = this.operatorList; + const bbox = this.bbox; + const xstep = this.xstep; + const ystep = this.ystep; + const paintType = this.paintType; + const tilingType = this.tilingType; + const color = this.color; + const canvasGraphicsFactory = this.canvasGraphicsFactory; + (0, _util.info)("TilingType: " + tilingType); + const x0 = bbox[0], + y0 = bbox[1], + x1 = bbox[2], + y1 = bbox[3]; + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; + const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); + const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); + const tmpCtx = tmpCanvas.context; + const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(graphics, paintType, color); + let adjustedX0 = x0; + let adjustedY0 = y0; + let adjustedX1 = x1; + let adjustedY1 = y1; + if (x0 < 0) { + adjustedX0 = 0; + adjustedX1 += Math.abs(x0); + } + if (y0 < 0) { + adjustedY0 = 0; + adjustedY1 += Math.abs(y0); + } + tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0)); + graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); + tmpCtx.save(); + this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1); + graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx); + graphics.executeOperatorList(operatorList); + graphics.endDrawing(); + return { + canvas: tmpCanvas.canvas, + scaleX: dimx.scale, + scaleY: dimy.scale, + offsetX: adjustedX0, + offsetY: adjustedY0 + }; + } + getSizeAndScale(step, realOutputSize, scale) { + step = Math.abs(step); + const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); + let size = Math.ceil(step * scale); + if (size >= maxSize) { + size = maxSize; + } else { + scale = size / step; + } + return { + scale, + size + }; + } + clipBbox(graphics, x0, y0, x1, y1) { + const bboxWidth = x1 - x0; + const bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]); + graphics.clip(); + graphics.endPath(); + } + setFillAndStrokeStyleToContext(graphics, paintType, color) { + const context = graphics.ctx, + current = graphics.current; + switch (paintType) { + case PaintType.COLORED: + const ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + current.fillColor = ctx.fillStyle; + current.strokeColor = ctx.strokeStyle; + break; + case PaintType.UNCOLORED: + const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]); + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; + default: + throw new _util.FormatError(`Unsupported paint type: ${paintType}`); + } + } + getPattern(ctx, owner, inverse, pathType) { + let matrix = inverse; + if (pathType !== PathType.SHADING) { + matrix = _util.Util.transform(matrix, owner.baseTransform); + if (this.matrix) { + matrix = _util.Util.transform(matrix, this.matrix); + } + } + const temporaryPatternCanvas = this.createPatternCanvas(owner); + let domMatrix = new DOMMatrix(matrix); + domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); + const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); + pattern.setTransform(domMatrix); + return pattern; + } +} +exports.TilingPattern = TilingPattern; + +/***/ }), +/* 143 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.applyMaskImageData = applyMaskImageData; +var _util = __w_pdfjs_require__(1); +function applyMaskImageData(_ref) { + let { + src, + srcPos = 0, + dest, + destPos = 0, + width, + height, + inverseDecode = false + } = _ref; + const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque]; + const widthInSource = width >> 3; + const widthRemainder = width & 7; + const srcLength = src.length; + dest = new Uint32Array(dest.buffer); + for (let i = 0; i < height; i++) { + for (const max = srcPos + widthInSource; srcPos < max; srcPos++) { + const elem = srcPos < srcLength ? src[srcPos] : 255; + dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping; + } + if (widthRemainder === 0) { + continue; + } + const elem = srcPos < srcLength ? src[srcPos++] : 255; + for (let j = 0; j < widthRemainder; j++) { + dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping; + } + } + return { + srcPos, + destPos + }; +} + +/***/ }), +/* 144 */ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GlobalWorkerOptions = void 0; +const GlobalWorkerOptions = Object.create(null); +exports.GlobalWorkerOptions = GlobalWorkerOptions; +GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; +GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc; + +/***/ }), +/* 145 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.MessageHandler = void 0; +var _util = __w_pdfjs_require__(1); +const CallbackKind = { + UNKNOWN: 0, + DATA: 1, + ERROR: 2 +}; +const StreamKind = { + UNKNOWN: 0, + CANCEL: 1, + CANCEL_COMPLETE: 2, + CLOSE: 3, + ENQUEUE: 4, + ERROR: 5, + PULL: 6, + PULL_COMPLETE: 7, + START_COMPLETE: 8 +}; +function wrapReason(reason) { + if (!(reason instanceof Error || typeof reason === "object" && reason !== null)) { + (0, _util.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + } + switch (reason.name) { + case "AbortException": + return new _util.AbortException(reason.message); + case "MissingPDFException": + return new _util.MissingPDFException(reason.message); + case "PasswordException": + return new _util.PasswordException(reason.message, reason.code); + case "UnexpectedResponseException": + return new _util.UnexpectedResponseException(reason.message, reason.status); + case "UnknownErrorException": + return new _util.UnknownErrorException(reason.message, reason.details); + default: + return new _util.UnknownErrorException(reason.message, reason.toString()); + } +} +class MessageHandler { + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); + this._onComObjOnMessage = event => { + const data = event.data; + if (data.targetName !== this.sourceName) { + return; + } + if (data.stream) { + this._processStreamMessage(data); + return; + } + if (data.callback) { + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; + if (!capability) { + throw new Error(`Cannot resolve callback ${callbackId}`); + } + delete this.callbackCapabilities[callbackId]; + if (data.callback === CallbackKind.DATA) { + capability.resolve(data.data); + } else if (data.callback === CallbackKind.ERROR) { + capability.reject(wrapReason(data.reason)); + } else { + throw new Error("Unexpected callback case"); + } + return; + } + const action = this.actionHandler[data.action]; + if (!action) { + throw new Error(`Unknown action from worker: ${data.action}`); + } + if (data.callbackId) { + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; + new Promise(function (resolve) { + resolve(action(data.data)); + }).then(function (result) { + comObj.postMessage({ + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.DATA, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + comObj.postMessage({ + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.ERROR, + callbackId: data.callbackId, + reason: wrapReason(reason) + }); + }); + return; + } + if (data.streamId) { + this._createStreamSink(data); + return; + } + action(data.data); + }; + comObj.addEventListener("message", this._onComObjOnMessage); + } + on(actionName, handler) { + const ah = this.actionHandler; + if (ah[actionName]) { + throw new Error(`There is already an actionName called "${actionName}"`); + } + ah[actionName] = handler; + } + send(actionName, data, transfers) { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data + }, transfers); + } + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = (0, _util.createPromiseCapability)(); + this.callbackCapabilities[callbackId] = capability; + try { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); + } + return capability.promise; + } + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++, + sourceName = this.sourceName, + targetName = this.targetName, + comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId] = { + controller, + startCall: startCapability, + pullCall: null, + cancelCall: null, + isClosed: false + }; + comObj.postMessage({ + sourceName, + targetName, + action: actionName, + streamId, + data, + desiredSize: controller.desiredSize + }, transfers); + return startCapability.promise; + }, + pull: controller => { + const pullCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, + desiredSize: controller.desiredSize + }); + return pullCapability.promise; + }, + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) + }); + return cancelCapability.promise; + } + }, queueingStrategy); + } + _createStreamSink(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const self = this, + action = this.actionHandler[data.action]; + const streamSink = { + enqueue(chunk) { + let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + let transfers = arguments.length > 2 ? arguments[2] : undefined; + if (this.isCancelled) { + return; + } + const lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = (0, _util.createPromiseCapability)(); + this.ready = this.sinkCapability.promise; + } + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); + }, + close() { + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId + }); + delete self.streamSinks[streamId]; + }, + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) + }); + }, + sinkCapability: (0, _util.createPromiseCapability)(), + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: data.desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + } + _processStreamMessage(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const streamController = this.streamControllers[streamId], + streamSink = this.streamSinks[streamId]; + switch (data.stream) { + case StreamKind.START_COMPLETE: + if (data.success) { + streamController.startCall.resolve(); + } else { + streamController.startCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL_COMPLETE: + if (data.success) { + streamController.pullCall.resolve(); + } else { + streamController.pullCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL: + if (!streamSink) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + break; + } + if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { + streamSink.sinkCapability.resolve(); + } + streamSink.desiredSize = data.desiredSize; + new Promise(function (resolve) { + resolve(streamSink.onPull && streamSink.onPull()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + break; + case StreamKind.ENQUEUE: + (0, _util.assert)(streamController, "enqueue should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.controller.enqueue(data.chunk); + break; + case StreamKind.CLOSE: + (0, _util.assert)(streamController, "close should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.isClosed = true; + streamController.controller.close(); + this._deleteStreamController(streamController, streamId); + break; + case StreamKind.ERROR: + (0, _util.assert)(streamController, "error should have stream controller"); + streamController.controller.error(wrapReason(data.reason)); + this._deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + streamController.cancelCall.resolve(); + } else { + streamController.cancelCall.reject(wrapReason(data.reason)); + } + this._deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL: + if (!streamSink) { + break; + } + new Promise(function (resolve) { + resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + streamSink.sinkCapability.reject(wrapReason(data.reason)); + streamSink.isCancelled = true; + delete this.streamSinks[streamId]; + break; + default: + throw new Error("Unexpected stream case"); + } + } + async _deleteStreamController(streamController, streamId) { + await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]); + delete this.streamControllers[streamId]; + } + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } +} +exports.MessageHandler = MessageHandler; + +/***/ }), +/* 146 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.Metadata = void 0; +var _util = __w_pdfjs_require__(1); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _metadataMap = /*#__PURE__*/new WeakMap(); +var _data = /*#__PURE__*/new WeakMap(); +class Metadata { + constructor(_ref) { + let { + parsedData, + rawData + } = _ref; + _classPrivateFieldInitSpec(this, _metadataMap, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _data, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _metadataMap, parsedData); + _classPrivateFieldSet(this, _data, rawData); + } + getRaw() { + return _classPrivateFieldGet(this, _data); + } + get(name) { + return _classPrivateFieldGet(this, _metadataMap).get(name) ?? null; + } + getAll() { + return (0, _util.objectFromMap)(_classPrivateFieldGet(this, _metadataMap)); + } + has(name) { + return _classPrivateFieldGet(this, _metadataMap).has(name); + } +} +exports.Metadata = Metadata; + +/***/ }), +/* 147 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OptionalContentConfig = void 0; +var _util = __w_pdfjs_require__(1); +var _murmurhash = __w_pdfjs_require__(139); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +const INTERNAL = Symbol("INTERNAL"); +var _visible = /*#__PURE__*/new WeakMap(); +class OptionalContentGroup { + constructor(name, intent) { + _classPrivateFieldInitSpec(this, _visible, { + writable: true, + value: true + }); + this.name = name; + this.intent = intent; + } + get visible() { + return _classPrivateFieldGet(this, _visible); + } + _setVisible(internal, visible) { + if (internal !== INTERNAL) { + (0, _util.unreachable)("Internal method `_setVisible` called."); + } + _classPrivateFieldSet(this, _visible, visible); + } +} +var _cachedGetHash = /*#__PURE__*/new WeakMap(); +var _groups = /*#__PURE__*/new WeakMap(); +var _initialHash = /*#__PURE__*/new WeakMap(); +var _order = /*#__PURE__*/new WeakMap(); +var _evaluateVisibilityExpression = /*#__PURE__*/new WeakSet(); +class OptionalContentConfig { + constructor(data) { + _classPrivateMethodInitSpec(this, _evaluateVisibilityExpression); + _classPrivateFieldInitSpec(this, _cachedGetHash, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _groups, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _initialHash, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _order, { + writable: true, + value: null + }); + this.name = null; + this.creator = null; + if (data === null) { + return; + } + this.name = data.name; + this.creator = data.creator; + _classPrivateFieldSet(this, _order, data.order); + for (const group of data.groups) { + _classPrivateFieldGet(this, _groups).set(group.id, new OptionalContentGroup(group.name, group.intent)); + } + if (data.baseState === "OFF") { + for (const group of _classPrivateFieldGet(this, _groups).values()) { + group._setVisible(INTERNAL, false); + } + } + for (const on of data.on) { + _classPrivateFieldGet(this, _groups).get(on)._setVisible(INTERNAL, true); + } + for (const off of data.off) { + _classPrivateFieldGet(this, _groups).get(off)._setVisible(INTERNAL, false); + } + _classPrivateFieldSet(this, _initialHash, this.getHash()); + } + isVisible(group) { + if (_classPrivateFieldGet(this, _groups).size === 0) { + return true; + } + if (!group) { + (0, _util.warn)("Optional content group not defined."); + return true; + } + if (group.type === "OCG") { + if (!_classPrivateFieldGet(this, _groups).has(group.id)) { + (0, _util.warn)(`Optional content group not found: ${group.id}`); + return true; + } + return _classPrivateFieldGet(this, _groups).get(group.id).visible; + } else if (group.type === "OCMD") { + if (group.expression) { + return _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, group.expression); + } + if (!group.policy || group.policy === "AnyOn") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + if (_classPrivateFieldGet(this, _groups).get(id).visible) { + return true; + } + } + return false; + } else if (group.policy === "AllOn") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + if (!_classPrivateFieldGet(this, _groups).get(id).visible) { + return false; + } + } + return true; + } else if (group.policy === "AnyOff") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + if (!_classPrivateFieldGet(this, _groups).get(id).visible) { + return true; + } + } + return false; + } else if (group.policy === "AllOff") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + if (_classPrivateFieldGet(this, _groups).get(id).visible) { + return false; + } + } + return true; + } + (0, _util.warn)(`Unknown optional content policy ${group.policy}.`); + return true; + } + (0, _util.warn)(`Unknown group type ${group.type}.`); + return true; + } + setVisibility(id) { + let visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return; + } + _classPrivateFieldGet(this, _groups).get(id)._setVisible(INTERNAL, !!visible); + _classPrivateFieldSet(this, _cachedGetHash, null); + } + get hasInitialVisibility() { + return this.getHash() === _classPrivateFieldGet(this, _initialHash); + } + getOrder() { + if (!_classPrivateFieldGet(this, _groups).size) { + return null; + } + if (_classPrivateFieldGet(this, _order)) { + return _classPrivateFieldGet(this, _order).slice(); + } + return [..._classPrivateFieldGet(this, _groups).keys()]; + } + getGroups() { + return _classPrivateFieldGet(this, _groups).size > 0 ? (0, _util.objectFromMap)(_classPrivateFieldGet(this, _groups)) : null; + } + getGroup(id) { + return _classPrivateFieldGet(this, _groups).get(id) || null; + } + getHash() { + if (_classPrivateFieldGet(this, _cachedGetHash) !== null) { + return _classPrivateFieldGet(this, _cachedGetHash); + } + const hash = new _murmurhash.MurmurHash3_64(); + for (const [id, group] of _classPrivateFieldGet(this, _groups)) { + hash.update(`${id}:${group.visible}`); + } + return _classPrivateFieldSet(this, _cachedGetHash, hash.hexdigest()); + } +} +exports.OptionalContentConfig = OptionalContentConfig; +function _evaluateVisibilityExpression2(array) { + const length = array.length; + if (length < 2) { + return true; + } + const operator = array[0]; + for (let i = 1; i < length; i++) { + const element = array[i]; + let state; + if (Array.isArray(element)) { + state = _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, element); + } else if (_classPrivateFieldGet(this, _groups).has(element)) { + state = _classPrivateFieldGet(this, _groups).get(element).visible; + } else { + (0, _util.warn)(`Optional content group not found: ${element}`); + return true; + } + switch (operator) { + case "And": + if (!state) { + return false; + } + break; + case "Or": + if (state) { + return true; + } + break; + case "Not": + return !state; + default: + return true; + } + } + return operator === "And"; +} + +/***/ }), +/* 148 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFDataTransportStream = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +class PDFDataTransportStream { + constructor(params, pdfDataRangeTransport) { + (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); + this._queuedChunks = []; + this._progressiveDone = params.progressiveDone || false; + this._contentDispositionFilename = params.contentDispositionFilename || null; + const initialData = params.initialData; + if ((initialData === null || initialData === void 0 ? void 0 : initialData.length) > 0) { + const buffer = new Uint8Array(initialData).buffer; + this._queuedChunks.push(buffer); + } + this._pdfDataRangeTransport = pdfDataRangeTransport; + this._isStreamingSupported = !params.disableStream; + this._isRangeSupported = !params.disableRange; + this._contentLength = params.length; + this._fullRequestReader = null; + this._rangeReaders = []; + this._pdfDataRangeTransport.addRangeListener((begin, chunk) => { + this._onReceiveData({ + begin, + chunk + }); + }); + this._pdfDataRangeTransport.addProgressListener((loaded, total) => { + this._onProgress({ + loaded, + total + }); + }); + this._pdfDataRangeTransport.addProgressiveReadListener(chunk => { + this._onReceiveData({ + chunk + }); + }); + this._pdfDataRangeTransport.addProgressiveDoneListener(() => { + this._onProgressiveDone(); + }); + this._pdfDataRangeTransport.transportReady(); + } + _onReceiveData(args) { + const buffer = new Uint8Array(args.chunk).buffer; + if (args.begin === undefined) { + if (this._fullRequestReader) { + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); + } + } else { + const found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } + rangeReader._enqueue(buffer); + return true; + }); + (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); + } + } + get _progressiveDataLength() { + var _this$_fullRequestRea; + return ((_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea._loaded) ?? 0; + } + _onProgress(evt) { + if (evt.total === undefined) { + var _this$_rangeReaders$, _this$_rangeReaders$$; + (_this$_rangeReaders$ = this._rangeReaders[0]) === null || _this$_rangeReaders$ === void 0 ? void 0 : (_this$_rangeReaders$$ = _this$_rangeReaders$.onProgress) === null || _this$_rangeReaders$$ === void 0 ? void 0 : _this$_rangeReaders$$.call(_this$_rangeReaders$, { + loaded: evt.loaded + }); + } else { + var _this$_fullRequestRea2, _this$_fullRequestRea3; + (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : (_this$_fullRequestRea3 = _this$_fullRequestRea2.onProgress) === null || _this$_fullRequestRea3 === void 0 ? void 0 : _this$_fullRequestRea3.call(_this$_fullRequestRea2, { + loaded: evt.loaded, + total: evt.total + }); + } + } + _onProgressiveDone() { + var _this$_fullRequestRea4; + (_this$_fullRequestRea4 = this._fullRequestReader) === null || _this$_fullRequestRea4 === void 0 ? void 0 : _this$_fullRequestRea4.progressiveDone(); + this._progressiveDone = true; + } + _removeRangeReader(reader) { + const i = this._rangeReaders.indexOf(reader); + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); + const queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename); + } + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + const reader = new PDFDataTransportStreamRangeReader(this, begin, end); + this._pdfDataRangeTransport.requestDataRange(begin, end); + this._rangeReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea5; + (_this$_fullRequestRea5 = this._fullRequestReader) === null || _this$_fullRequestRea5 === void 0 ? void 0 : _this$_fullRequestRea5.cancel(reason); + for (const reader of this._rangeReaders.slice(0)) { + reader.cancel(reason); + } + this._pdfDataRangeTransport.abort(); + } +} +exports.PDFDataTransportStream = PDFDataTransportStream; +class PDFDataTransportStreamReader { + constructor(stream, queuedChunks) { + let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + this._stream = stream; + this._done = progressiveDone || false; + this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null; + this._queuedChunks = queuedChunks || []; + this._loaded = 0; + for (const chunk of this._queuedChunks) { + this._loaded += chunk.byteLength; + } + this._requests = []; + this._headersReady = Promise.resolve(); + stream._fullRequestReader = this; + this.onProgress = null; + } + _enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunks.push(chunk); + } + this._loaded += chunk.byteLength; + } + get headersReady() { + return this._headersReady; + } + get filename() { + return this._filename; + } + get isRangeSupported() { + return this._stream._isRangeSupported; + } + get isStreamingSupported() { + return this._stream._isStreamingSupported; + } + get contentLength() { + return this._stream._contentLength; + } + async read() { + if (this._queuedChunks.length > 0) { + const chunk = this._queuedChunks.shift(); + return { + value: chunk, + done: false + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + } + progressiveDone() { + if (this._done) { + return; + } + this._done = true; + } +} +class PDFDataTransportStreamRangeReader { + constructor(stream, begin, end) { + this._stream = stream; + this._begin = begin; + this._end = end; + this._queuedChunk = null; + this._requests = []; + this._done = false; + this.onProgress = null; + } + _enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + const requestsCapability = this._requests.shift(); + requestsCapability.resolve({ + value: chunk, + done: false + }); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + } + this._done = true; + this._stream._removeRangeReader(this); + } + get isStreamingSupported() { + return false; + } + async read() { + if (this._queuedChunk) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + this._stream._removeRangeReader(this); + } +} + +/***/ }), +/* 149 */ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaText = void 0; +class XfaText { + static textContent(xfa) { + const items = []; + const output = { + items, + styles: Object.create(null) + }; + function walk(node) { + var _node$attributes; + if (!node) { + return; + } + let str = null; + const name = node.name; + if (name === "#text") { + str = node.value; + } else if (!XfaText.shouldBuildText(name)) { + return; + } else if (node !== null && node !== void 0 && (_node$attributes = node.attributes) !== null && _node$attributes !== void 0 && _node$attributes.textContent) { + str = node.attributes.textContent; + } else if (node.value) { + str = node.value; + } + if (str !== null) { + items.push({ + str + }); + } + if (!node.children) { + return; + } + for (const child of node.children) { + walk(child); + } + } + walk(xfa); + return output; + } + static shouldBuildText(name) { + return !(name === "textarea" || name === "input" || name === "option" || name === "select"); + } +} +exports.XfaText = XfaText; + +/***/ }), +/* 150 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0; +var _base_factory = __w_pdfjs_require__(138); +; +const fetchData = function (url) { + return new Promise((resolve, reject) => { + const fs = require("fs"); + fs.readFile(url, (error, data) => { + if (error || !data) { + reject(new Error(error)); + return; + } + resolve(new Uint8Array(data)); + }); + }); +}; +class NodeCanvasFactory extends _base_factory.BaseCanvasFactory { + _createCanvas(width, height) { + const Canvas = require("canvas"); + return Canvas.createCanvas(width, height); + } +} +exports.NodeCanvasFactory = NodeCanvasFactory; +class NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url).then(data => { + return { + cMapData: data, + compressionType + }; + }); + } +} +exports.NodeCMapReaderFactory = NodeCMapReaderFactory; +class NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url); + } +} +exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory; + +/***/ }), +/* 151 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorLayer = void 0; +var _tools = __w_pdfjs_require__(136); +var _util = __w_pdfjs_require__(1); +var _freetext = __w_pdfjs_require__(152); +var _ink = __w_pdfjs_require__(153); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _accessibilityManager = /*#__PURE__*/new WeakMap(); +var _allowClick = /*#__PURE__*/new WeakMap(); +var _boundPointerup = /*#__PURE__*/new WeakMap(); +var _boundPointerdown = /*#__PURE__*/new WeakMap(); +var _editors = /*#__PURE__*/new WeakMap(); +var _hadPointerDown = /*#__PURE__*/new WeakMap(); +var _isCleaningUp = /*#__PURE__*/new WeakMap(); +var _uiManager = /*#__PURE__*/new WeakMap(); +var _changeParent = /*#__PURE__*/new WeakSet(); +var _createNewEditor = /*#__PURE__*/new WeakSet(); +var _createAndAddNewEditor = /*#__PURE__*/new WeakSet(); +var _cleanup = /*#__PURE__*/new WeakSet(); +class AnnotationEditorLayer { + constructor(options) { + _classPrivateMethodInitSpec(this, _cleanup); + _classPrivateMethodInitSpec(this, _createAndAddNewEditor); + _classPrivateMethodInitSpec(this, _createNewEditor); + _classPrivateMethodInitSpec(this, _changeParent); + _classPrivateFieldInitSpec(this, _accessibilityManager, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _allowClick, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _boundPointerup, { + writable: true, + value: this.pointerup.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundPointerdown, { + writable: true, + value: this.pointerdown.bind(this) + }); + _classPrivateFieldInitSpec(this, _editors, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _hadPointerDown, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isCleaningUp, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _uiManager, { + writable: true, + value: void 0 + }); + if (!AnnotationEditorLayer._initialized) { + AnnotationEditorLayer._initialized = true; + _freetext.FreeTextEditor.initialize(options.l10n); + _ink.InkEditor.initialize(options.l10n); + } + options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]); + _classPrivateFieldSet(this, _uiManager, options.uiManager); + this.annotationStorage = options.annotationStorage; + this.pageIndex = options.pageIndex; + this.div = options.div; + _classPrivateFieldSet(this, _accessibilityManager, options.accessibilityManager); + _classPrivateFieldGet(this, _uiManager).addLayer(this); + } + updateToolbar(mode) { + _classPrivateFieldGet(this, _uiManager).updateToolbar(mode); + } + updateMode() { + let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _uiManager).getMode(); + _classPrivateMethodGet(this, _cleanup, _cleanup2).call(this); + if (mode === _util.AnnotationEditorType.INK) { + this.addInkEditorIfNeeded(false); + this.disableClick(); + } else { + this.enableClick(); + } + _classPrivateFieldGet(this, _uiManager).unselectAll(); + this.div.classList.toggle("freeTextEditing", mode === _util.AnnotationEditorType.FREETEXT); + this.div.classList.toggle("inkEditing", mode === _util.AnnotationEditorType.INK); + } + addInkEditorIfNeeded(isCommitting) { + if (!isCommitting && _classPrivateFieldGet(this, _uiManager).getMode() !== _util.AnnotationEditorType.INK) { + return; + } + if (!isCommitting) { + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + if (editor.isEmpty()) { + editor.setInBackground(); + return; + } + } + } + const editor = _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, { + offsetX: 0, + offsetY: 0 + }); + editor.setInBackground(); + } + setEditingState(isEditing) { + _classPrivateFieldGet(this, _uiManager).setEditingState(isEditing); + } + addCommands(params) { + _classPrivateFieldGet(this, _uiManager).addCommands(params); + } + enable() { + this.div.style.pointerEvents = "auto"; + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + editor.enableEditing(); + } + } + disable() { + this.div.style.pointerEvents = "none"; + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + editor.disableEditing(); + } + } + setActiveEditor(editor) { + const currentActive = _classPrivateFieldGet(this, _uiManager).getActive(); + if (currentActive === editor) { + return; + } + _classPrivateFieldGet(this, _uiManager).setActiveEditor(editor); + } + enableClick() { + this.div.addEventListener("pointerdown", _classPrivateFieldGet(this, _boundPointerdown)); + this.div.addEventListener("pointerup", _classPrivateFieldGet(this, _boundPointerup)); + } + disableClick() { + this.div.removeEventListener("pointerdown", _classPrivateFieldGet(this, _boundPointerdown)); + this.div.removeEventListener("pointerup", _classPrivateFieldGet(this, _boundPointerup)); + } + attach(editor) { + _classPrivateFieldGet(this, _editors).set(editor.id, editor); + } + detach(editor) { + var _classPrivateFieldGet2; + _classPrivateFieldGet(this, _editors).delete(editor.id); + (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.removePointerInTextLayer(editor.contentDiv); + } + remove(editor) { + _classPrivateFieldGet(this, _uiManager).removeEditor(editor); + this.detach(editor); + this.annotationStorage.remove(editor.id); + editor.div.style.display = "none"; + setTimeout(() => { + editor.div.style.display = ""; + editor.div.remove(); + editor.isAttachedToDOM = false; + if (document.activeElement === document.body) { + _classPrivateFieldGet(this, _uiManager).focusMainContainer(); + } + }, 0); + if (!_classPrivateFieldGet(this, _isCleaningUp)) { + this.addInkEditorIfNeeded(false); + } + } + add(editor) { + _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor); + _classPrivateFieldGet(this, _uiManager).addEditor(editor); + this.attach(editor); + if (!editor.isAttachedToDOM) { + const div = editor.render(); + this.div.append(div); + editor.isAttachedToDOM = true; + } + this.moveEditorInDOM(editor); + editor.onceAdded(); + this.addToAnnotationStorage(editor); + } + moveEditorInDOM(editor) { + var _classPrivateFieldGet3; + (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.moveElementInDOM(this.div, editor.div, editor.contentDiv, true); + } + addToAnnotationStorage(editor) { + if (!editor.isEmpty() && !this.annotationStorage.has(editor.id)) { + this.annotationStorage.setValue(editor.id, editor); + } + } + addOrRebuild(editor) { + if (editor.needsToBeRebuilt()) { + editor.rebuild(); + } else { + this.add(editor); + } + } + addANewEditor(editor) { + const cmd = () => { + this.addOrRebuild(editor); + }; + const undo = () => { + editor.remove(); + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } + addUndoableEditor(editor) { + const cmd = () => { + this.addOrRebuild(editor); + }; + const undo = () => { + editor.remove(); + }; + this.addCommands({ + cmd, + undo, + mustExec: false + }); + } + getNextId() { + return _classPrivateFieldGet(this, _uiManager).getId(); + } + deserialize(data) { + switch (data.annotationType) { + case _util.AnnotationEditorType.FREETEXT: + return _freetext.FreeTextEditor.deserialize(data, this); + case _util.AnnotationEditorType.INK: + return _ink.InkEditor.deserialize(data, this); + } + return null; + } + setSelected(editor) { + _classPrivateFieldGet(this, _uiManager).setSelected(editor); + } + toggleSelected(editor) { + _classPrivateFieldGet(this, _uiManager).toggleSelected(editor); + } + isSelected(editor) { + return _classPrivateFieldGet(this, _uiManager).isSelected(editor); + } + unselect(editor) { + _classPrivateFieldGet(this, _uiManager).unselect(editor); + } + pointerup(event) { + const isMac = _tools.KeyboardManager.platform.isMac; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + if (event.target !== this.div) { + return; + } + if (!_classPrivateFieldGet(this, _hadPointerDown)) { + return; + } + _classPrivateFieldSet(this, _hadPointerDown, false); + if (!_classPrivateFieldGet(this, _allowClick)) { + _classPrivateFieldSet(this, _allowClick, true); + return; + } + _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, event); + } + pointerdown(event) { + const isMac = _tools.KeyboardManager.platform.isMac; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + if (event.target !== this.div) { + return; + } + _classPrivateFieldSet(this, _hadPointerDown, true); + const editor = _classPrivateFieldGet(this, _uiManager).getActive(); + _classPrivateFieldSet(this, _allowClick, !editor || editor.isEmpty()); + } + drop(event) { + const id = event.dataTransfer.getData("text/plain"); + const editor = _classPrivateFieldGet(this, _uiManager).getEditor(id); + if (!editor) { + return; + } + event.preventDefault(); + event.dataTransfer.dropEffect = "move"; + _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor); + const rect = this.div.getBoundingClientRect(); + const endX = event.clientX - rect.x; + const endY = event.clientY - rect.y; + editor.translate(endX - editor.startX, endY - editor.startY); + this.moveEditorInDOM(editor); + editor.div.focus(); + } + dragover(event) { + event.preventDefault(); + } + destroy() { + var _classPrivateFieldGet4; + if (((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _uiManager).getActive()) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.parent) === this) { + _classPrivateFieldGet(this, _uiManager).setActiveEditor(null); + } + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + var _classPrivateFieldGet5; + (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.removePointerInTextLayer(editor.contentDiv); + editor.isAttachedToDOM = false; + editor.div.remove(); + editor.parent = null; + } + this.div = null; + _classPrivateFieldGet(this, _editors).clear(); + _classPrivateFieldGet(this, _uiManager).removeLayer(this); + } + render(parameters) { + this.viewport = parameters.viewport; + (0, _tools.bindEvents)(this, this.div, ["dragover", "drop"]); + this.setDimensions(); + for (const editor of _classPrivateFieldGet(this, _uiManager).getEditors(this.pageIndex)) { + this.add(editor); + } + this.updateMode(); + } + update(parameters) { + _classPrivateFieldGet(this, _uiManager).commitOrRemove(); + this.viewport = parameters.viewport; + this.setDimensions(); + this.updateMode(); + } + get scaleFactor() { + return this.viewport.scale; + } + get pageDimensions() { + const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox; + const width = pageURx - pageLLx; + const height = pageURy - pageLLy; + return [width, height]; + } + get viewportBaseDimensions() { + const { + width, + height, + rotation + } = this.viewport; + return rotation % 180 === 0 ? [width, height] : [height, width]; + } + setDimensions() { + const { + width, + height, + rotation + } = this.viewport; + const flipOrientation = rotation % 180 !== 0, + widthStr = Math.floor(width) + "px", + heightStr = Math.floor(height) + "px"; + this.div.style.width = flipOrientation ? heightStr : widthStr; + this.div.style.height = flipOrientation ? widthStr : heightStr; + this.div.setAttribute("data-main-rotation", rotation); + } +} +exports.AnnotationEditorLayer = AnnotationEditorLayer; +function _changeParent2(editor) { + var _editor$parent; + if (editor.parent === this) { + return; + } + this.attach(editor); + editor.pageIndex = this.pageIndex; + (_editor$parent = editor.parent) === null || _editor$parent === void 0 ? void 0 : _editor$parent.detach(editor); + editor.parent = this; + if (editor.div && editor.isAttachedToDOM) { + editor.div.remove(); + this.div.append(editor.div); + } +} +function _createNewEditor2(params) { + switch (_classPrivateFieldGet(this, _uiManager).getMode()) { + case _util.AnnotationEditorType.FREETEXT: + return new _freetext.FreeTextEditor(params); + case _util.AnnotationEditorType.INK: + return new _ink.InkEditor(params); + } + return null; +} +function _createAndAddNewEditor2(event) { + const id = this.getNextId(); + const editor = _classPrivateMethodGet(this, _createNewEditor, _createNewEditor2).call(this, { + parent: this, + id, + x: event.offsetX, + y: event.offsetY + }); + if (editor) { + this.add(editor); + } + return editor; +} +function _cleanup2() { + _classPrivateFieldSet(this, _isCleaningUp, true); + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + if (editor.isEmpty()) { + editor.remove(); + } + } + _classPrivateFieldSet(this, _isCleaningUp, false); +} +_defineProperty(AnnotationEditorLayer, "_initialized", false); + +/***/ }), +/* 152 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.FreeTextEditor = void 0; +var _util = __w_pdfjs_require__(1); +var _tools = __w_pdfjs_require__(136); +var _editor = __w_pdfjs_require__(135); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _boundEditorDivBlur = /*#__PURE__*/new WeakMap(); +var _boundEditorDivFocus = /*#__PURE__*/new WeakMap(); +var _boundEditorDivInput = /*#__PURE__*/new WeakMap(); +var _boundEditorDivKeydown = /*#__PURE__*/new WeakMap(); +var _color = /*#__PURE__*/new WeakMap(); +var _content = /*#__PURE__*/new WeakMap(); +var _editorDivId = /*#__PURE__*/new WeakMap(); +var _hasAlreadyBeenCommitted = /*#__PURE__*/new WeakMap(); +var _fontSize = /*#__PURE__*/new WeakMap(); +var _updateFontSize = /*#__PURE__*/new WeakSet(); +var _updateColor = /*#__PURE__*/new WeakSet(); +var _extractText = /*#__PURE__*/new WeakSet(); +var _setEditorDimensions = /*#__PURE__*/new WeakSet(); +class FreeTextEditor extends _editor.AnnotationEditor { + constructor(params) { + super({ + ...params, + name: "freeTextEditor" + }); + _classPrivateMethodInitSpec(this, _setEditorDimensions); + _classPrivateMethodInitSpec(this, _extractText); + _classPrivateMethodInitSpec(this, _updateColor); + _classPrivateMethodInitSpec(this, _updateFontSize); + _classPrivateFieldInitSpec(this, _boundEditorDivBlur, { + writable: true, + value: this.editorDivBlur.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundEditorDivFocus, { + writable: true, + value: this.editorDivFocus.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundEditorDivInput, { + writable: true, + value: this.editorDivInput.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundEditorDivKeydown, { + writable: true, + value: this.editorDivKeydown.bind(this) + }); + _classPrivateFieldInitSpec(this, _color, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _content, { + writable: true, + value: "" + }); + _classPrivateFieldInitSpec(this, _editorDivId, { + writable: true, + value: `${this.id}-editor` + }); + _classPrivateFieldInitSpec(this, _hasAlreadyBeenCommitted, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _fontSize, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _color, params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor); + _classPrivateFieldSet(this, _fontSize, params.fontSize || FreeTextEditor._defaultFontSize); + } + static initialize(l10n) { + this._l10nPromise = new Map(["free_text2_default_content", "editor_free_text2_aria_label"].map(str => [str, l10n.get(str)])); + const style = getComputedStyle(document.documentElement); + this._internalPadding = parseFloat(style.getPropertyValue("--freetext-padding")); + } + static updateDefaultParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.FREETEXT_SIZE: + FreeTextEditor._defaultFontSize = value; + break; + case _util.AnnotationEditorParamsType.FREETEXT_COLOR: + FreeTextEditor._defaultColor = value; + break; + } + } + updateParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.FREETEXT_SIZE: + _classPrivateMethodGet(this, _updateFontSize, _updateFontSize2).call(this, value); + break; + case _util.AnnotationEditorParamsType.FREETEXT_COLOR: + _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value); + break; + } + } + static get defaultPropertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]]; + } + get propertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, _classPrivateFieldGet(this, _fontSize)], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, _classPrivateFieldGet(this, _color)]]; + } + getInitialTranslation() { + return [-FreeTextEditor._internalPadding * this.parent.scaleFactor, -(FreeTextEditor._internalPadding + _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor]; + } + rebuild() { + super.rebuild(); + if (this.div === null) { + return; + } + if (!this.isAttachedToDOM) { + this.parent.add(this); + } + } + enableEditMode() { + if (this.isInEditMode()) { + return; + } + this.parent.setEditingState(false); + this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT); + super.enableEditMode(); + this.overlayDiv.classList.remove("enabled"); + this.editorDiv.contentEditable = true; + this.div.draggable = false; + this.div.removeAttribute("aria-activedescendant"); + this.editorDiv.addEventListener("keydown", _classPrivateFieldGet(this, _boundEditorDivKeydown)); + this.editorDiv.addEventListener("focus", _classPrivateFieldGet(this, _boundEditorDivFocus)); + this.editorDiv.addEventListener("blur", _classPrivateFieldGet(this, _boundEditorDivBlur)); + this.editorDiv.addEventListener("input", _classPrivateFieldGet(this, _boundEditorDivInput)); + } + disableEditMode() { + if (!this.isInEditMode()) { + return; + } + this.parent.setEditingState(true); + super.disableEditMode(); + this.overlayDiv.classList.add("enabled"); + this.editorDiv.contentEditable = false; + this.div.setAttribute("aria-activedescendant", _classPrivateFieldGet(this, _editorDivId)); + this.div.draggable = true; + this.editorDiv.removeEventListener("keydown", _classPrivateFieldGet(this, _boundEditorDivKeydown)); + this.editorDiv.removeEventListener("focus", _classPrivateFieldGet(this, _boundEditorDivFocus)); + this.editorDiv.removeEventListener("blur", _classPrivateFieldGet(this, _boundEditorDivBlur)); + this.editorDiv.removeEventListener("input", _classPrivateFieldGet(this, _boundEditorDivInput)); + this.div.focus(); + this.isEditing = false; + this.parent.div.classList.add("freeTextEditing"); + } + focusin(event) { + super.focusin(event); + if (event.target !== this.editorDiv) { + this.editorDiv.focus(); + } + } + onceAdded() { + if (this.width) { + return; + } + this.enableEditMode(); + this.editorDiv.focus(); + } + isEmpty() { + return !this.editorDiv || this.editorDiv.innerText.trim() === ""; + } + remove() { + this.isEditing = false; + this.parent.setEditingState(true); + this.parent.div.classList.add("freeTextEditing"); + super.remove(); + } + commit() { + super.commit(); + if (!_classPrivateFieldGet(this, _hasAlreadyBeenCommitted)) { + _classPrivateFieldSet(this, _hasAlreadyBeenCommitted, true); + this.parent.addUndoableEditor(this); + } + this.disableEditMode(); + _classPrivateFieldSet(this, _content, _classPrivateMethodGet(this, _extractText, _extractText2).call(this).trimEnd()); + _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this); + } + shouldGetKeyboardEvents() { + return this.isInEditMode(); + } + dblclick(event) { + this.enableEditMode(); + this.editorDiv.focus(); + } + keydown(event) { + if (event.target === this.div && event.key === "Enter") { + this.enableEditMode(); + this.editorDiv.focus(); + } + } + editorDivKeydown(event) { + FreeTextEditor._keyboardManager.exec(this, event); + } + editorDivFocus(event) { + this.isEditing = true; + } + editorDivBlur(event) { + this.isEditing = false; + } + editorDivInput(event) { + this.parent.div.classList.toggle("freeTextEditing", this.isEmpty()); + } + disableEditing() { + this.editorDiv.setAttribute("role", "comment"); + this.editorDiv.removeAttribute("aria-multiline"); + } + enableEditing() { + this.editorDiv.setAttribute("role", "textbox"); + this.editorDiv.setAttribute("aria-multiline", true); + } + render() { + if (this.div) { + return this.div; + } + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + this.editorDiv = document.createElement("div"); + this.editorDiv.className = "internal"; + this.editorDiv.setAttribute("id", _classPrivateFieldGet(this, _editorDivId)); + this.enableEditing(); + FreeTextEditor._l10nPromise.get("editor_free_text2_aria_label").then(msg => { + var _this$editorDiv; + return (_this$editorDiv = this.editorDiv) === null || _this$editorDiv === void 0 ? void 0 : _this$editorDiv.setAttribute("aria-label", msg); + }); + FreeTextEditor._l10nPromise.get("free_text2_default_content").then(msg => { + var _this$editorDiv2; + return (_this$editorDiv2 = this.editorDiv) === null || _this$editorDiv2 === void 0 ? void 0 : _this$editorDiv2.setAttribute("default-content", msg); + }); + this.editorDiv.contentEditable = true; + const { + style + } = this.editorDiv; + style.fontSize = `calc(${_classPrivateFieldGet(this, _fontSize)}px * var(--scale-factor))`; + style.color = _classPrivateFieldGet(this, _color); + this.div.append(this.editorDiv); + this.overlayDiv = document.createElement("div"); + this.overlayDiv.classList.add("overlay", "enabled"); + this.div.append(this.overlayDiv); + (0, _tools.bindEvents)(this, this.div, ["dblclick", "keydown"]); + if (this.width) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + for (const line of _classPrivateFieldGet(this, _content).split("\n")) { + const div = document.createElement("div"); + div.append(line ? document.createTextNode(line) : document.createElement("br")); + this.editorDiv.append(div); + } + this.div.draggable = true; + this.editorDiv.contentEditable = false; + } else { + this.div.draggable = false; + this.editorDiv.contentEditable = true; + } + return this.div; + } + get contentDiv() { + return this.editorDiv; + } + static deserialize(data, parent) { + const editor = super.deserialize(data, parent); + _classPrivateFieldSet(editor, _fontSize, data.fontSize); + _classPrivateFieldSet(editor, _color, _util.Util.makeHexColor(...data.color)); + _classPrivateFieldSet(editor, _content, data.value); + return editor; + } + serialize() { + if (this.isEmpty()) { + return null; + } + const padding = FreeTextEditor._internalPadding * this.parent.scaleFactor; + const rect = this.getRect(padding, padding); + const color = _editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color); + return { + annotationType: _util.AnnotationEditorType.FREETEXT, + color, + fontSize: _classPrivateFieldGet(this, _fontSize), + value: _classPrivateFieldGet(this, _content), + pageIndex: this.parent.pageIndex, + rect, + rotation: this.rotation + }; + } +} +exports.FreeTextEditor = FreeTextEditor; +function _updateFontSize2(fontSize) { + const setFontsize = size => { + this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`; + this.translate(0, -(size - _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor); + _classPrivateFieldSet(this, _fontSize, size); + _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this); + }; + const savedFontsize = _classPrivateFieldGet(this, _fontSize); + this.parent.addCommands({ + cmd: () => { + setFontsize(fontSize); + }, + undo: () => { + setFontsize(savedFontsize); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.FREETEXT_SIZE, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _updateColor2(color) { + const savedColor = _classPrivateFieldGet(this, _color); + this.parent.addCommands({ + cmd: () => { + _classPrivateFieldSet(this, _color, color); + this.editorDiv.style.color = color; + }, + undo: () => { + _classPrivateFieldSet(this, _color, savedColor); + this.editorDiv.style.color = savedColor; + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.FREETEXT_COLOR, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _extractText2() { + const divs = this.editorDiv.getElementsByTagName("div"); + if (divs.length === 0) { + return this.editorDiv.innerText; + } + const buffer = []; + for (const div of divs) { + const first = div.firstChild; + if ((first === null || first === void 0 ? void 0 : first.nodeName) === "#text") { + buffer.push(first.data); + } else { + buffer.push(""); + } + } + return buffer.join("\n"); +} +function _setEditorDimensions2() { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + const rect = this.div.getBoundingClientRect(); + this.width = rect.width / parentWidth; + this.height = rect.height / parentHeight; +} +_defineProperty(FreeTextEditor, "_freeTextDefaultContent", ""); +_defineProperty(FreeTextEditor, "_l10nPromise", void 0); +_defineProperty(FreeTextEditor, "_internalPadding", 0); +_defineProperty(FreeTextEditor, "_defaultColor", null); +_defineProperty(FreeTextEditor, "_defaultFontSize", 10); +_defineProperty(FreeTextEditor, "_keyboardManager", new _tools.KeyboardManager([[["ctrl+Enter", "mac+meta+Enter", "Escape", "mac+Escape"], FreeTextEditor.prototype.commitOrRemove]])); +_defineProperty(FreeTextEditor, "_type", "freetext"); + +/***/ }), +/* 153 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.InkEditor = void 0; +Object.defineProperty(exports, "fitCurve", ({ + enumerable: true, + get: function () { + return _pdfjsFitCurve.fitCurve; + } +})); +var _util = __w_pdfjs_require__(1); +var _editor = __w_pdfjs_require__(135); +var _pdfjsFitCurve = __w_pdfjs_require__(154); +var _tools = __w_pdfjs_require__(136); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const RESIZER_SIZE = 16; +const TIME_TO_WAIT_BEFORE_FIXING_DIMS = 100; +var _aspectRatio = /*#__PURE__*/new WeakMap(); +var _baseHeight = /*#__PURE__*/new WeakMap(); +var _baseWidth = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointermove = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointerleave = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointerup = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointerdown = /*#__PURE__*/new WeakMap(); +var _disableEditing = /*#__PURE__*/new WeakMap(); +var _isCanvasInitialized = /*#__PURE__*/new WeakMap(); +var _lastPoint = /*#__PURE__*/new WeakMap(); +var _observer = /*#__PURE__*/new WeakMap(); +var _realWidth = /*#__PURE__*/new WeakMap(); +var _realHeight = /*#__PURE__*/new WeakMap(); +var _requestFrameCallback = /*#__PURE__*/new WeakMap(); +var _updateThickness = /*#__PURE__*/new WeakSet(); +var _updateColor = /*#__PURE__*/new WeakSet(); +var _updateOpacity = /*#__PURE__*/new WeakSet(); +var _getInitialBBox = /*#__PURE__*/new WeakSet(); +var _setStroke = /*#__PURE__*/new WeakSet(); +var _startDrawing = /*#__PURE__*/new WeakSet(); +var _draw = /*#__PURE__*/new WeakSet(); +var _stopDrawing = /*#__PURE__*/new WeakSet(); +var _redraw = /*#__PURE__*/new WeakSet(); +var _endDrawing = /*#__PURE__*/new WeakSet(); +var _createCanvas = /*#__PURE__*/new WeakSet(); +var _createObserver = /*#__PURE__*/new WeakSet(); +var _setCanvasDims = /*#__PURE__*/new WeakSet(); +var _setScaleFactor = /*#__PURE__*/new WeakSet(); +var _updateTransform = /*#__PURE__*/new WeakSet(); +var _serializePaths = /*#__PURE__*/new WeakSet(); +var _extractPointsOnBezier = /*#__PURE__*/new WeakSet(); +var _isAlmostFlat = /*#__PURE__*/new WeakSet(); +var _getBbox = /*#__PURE__*/new WeakSet(); +var _getPadding = /*#__PURE__*/new WeakSet(); +var _fitToContent = /*#__PURE__*/new WeakSet(); +var _setMinDims = /*#__PURE__*/new WeakSet(); +class InkEditor extends _editor.AnnotationEditor { + constructor(params) { + super({ + ...params, + name: "inkEditor" + }); + _classPrivateMethodInitSpec(this, _setMinDims); + _classPrivateMethodInitSpec(this, _fitToContent); + _classPrivateMethodInitSpec(this, _getPadding); + _classPrivateMethodInitSpec(this, _getBbox); + _classPrivateMethodInitSpec(this, _isAlmostFlat); + _classPrivateMethodInitSpec(this, _extractPointsOnBezier); + _classPrivateMethodInitSpec(this, _serializePaths); + _classPrivateMethodInitSpec(this, _updateTransform); + _classPrivateMethodInitSpec(this, _setScaleFactor); + _classPrivateMethodInitSpec(this, _setCanvasDims); + _classPrivateMethodInitSpec(this, _createObserver); + _classPrivateMethodInitSpec(this, _createCanvas); + _classPrivateMethodInitSpec(this, _endDrawing); + _classPrivateMethodInitSpec(this, _redraw); + _classPrivateMethodInitSpec(this, _stopDrawing); + _classPrivateMethodInitSpec(this, _draw); + _classPrivateMethodInitSpec(this, _startDrawing); + _classPrivateMethodInitSpec(this, _setStroke); + _classPrivateMethodInitSpec(this, _getInitialBBox); + _classPrivateMethodInitSpec(this, _updateOpacity); + _classPrivateMethodInitSpec(this, _updateColor); + _classPrivateMethodInitSpec(this, _updateThickness); + _classPrivateFieldInitSpec(this, _aspectRatio, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _baseHeight, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _baseWidth, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointermove, { + writable: true, + value: this.canvasPointermove.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointerleave, { + writable: true, + value: this.canvasPointerleave.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointerup, { + writable: true, + value: this.canvasPointerup.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointerdown, { + writable: true, + value: this.canvasPointerdown.bind(this) + }); + _classPrivateFieldInitSpec(this, _disableEditing, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isCanvasInitialized, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _lastPoint, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _observer, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _realWidth, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _realHeight, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _requestFrameCallback, { + writable: true, + value: null + }); + this.color = params.color || null; + this.thickness = params.thickness || null; + this.opacity = params.opacity || null; + this.paths = []; + this.bezierPath2D = []; + this.currentPath = []; + this.scaleFactor = 1; + this.translationX = this.translationY = 0; + this.x = 0; + this.y = 0; + } + static initialize(l10n) { + this._l10nPromise = new Map(["editor_ink_canvas_aria_label", "editor_ink2_aria_label"].map(str => [str, l10n.get(str)])); + } + static updateDefaultParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.INK_THICKNESS: + InkEditor._defaultThickness = value; + break; + case _util.AnnotationEditorParamsType.INK_COLOR: + InkEditor._defaultColor = value; + break; + case _util.AnnotationEditorParamsType.INK_OPACITY: + InkEditor._defaultOpacity = value / 100; + break; + } + } + updateParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.INK_THICKNESS: + _classPrivateMethodGet(this, _updateThickness, _updateThickness2).call(this, value); + break; + case _util.AnnotationEditorParamsType.INK_COLOR: + _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value); + break; + case _util.AnnotationEditorParamsType.INK_OPACITY: + _classPrivateMethodGet(this, _updateOpacity, _updateOpacity2).call(this, value); + break; + } + } + static get defaultPropertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]]; + } + get propertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]]; + } + rebuild() { + super.rebuild(); + if (this.div === null) { + return; + } + if (!this.canvas) { + _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this); + _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this); + } + if (!this.isAttachedToDOM) { + this.parent.add(this); + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + } + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + } + remove() { + if (this.canvas === null) { + return; + } + if (!this.isEmpty()) { + this.commit(); + } + this.canvas.width = this.canvas.height = 0; + this.canvas.remove(); + this.canvas = null; + _classPrivateFieldGet(this, _observer).disconnect(); + _classPrivateFieldSet(this, _observer, null); + super.remove(); + } + enableEditMode() { + if (_classPrivateFieldGet(this, _disableEditing) || this.canvas === null) { + return; + } + super.enableEditMode(); + this.div.draggable = false; + this.canvas.addEventListener("pointerdown", _classPrivateFieldGet(this, _boundCanvasPointerdown)); + this.canvas.addEventListener("pointerup", _classPrivateFieldGet(this, _boundCanvasPointerup)); + } + disableEditMode() { + if (!this.isInEditMode() || this.canvas === null) { + return; + } + super.disableEditMode(); + this.div.draggable = !this.isEmpty(); + this.div.classList.remove("editing"); + this.canvas.removeEventListener("pointerdown", _classPrivateFieldGet(this, _boundCanvasPointerdown)); + this.canvas.removeEventListener("pointerup", _classPrivateFieldGet(this, _boundCanvasPointerup)); + } + onceAdded() { + this.div.draggable = !this.isEmpty(); + } + isEmpty() { + return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0; + } + commit() { + if (_classPrivateFieldGet(this, _disableEditing)) { + return; + } + super.commit(); + this.isEditing = false; + this.disableEditMode(); + this.setInForeground(); + _classPrivateFieldSet(this, _disableEditing, true); + this.div.classList.add("disabled"); + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this, true); + this.parent.addInkEditorIfNeeded(true); + this.parent.moveEditorInDOM(this); + this.div.focus(); + } + focusin(event) { + super.focusin(event); + this.enableEditMode(); + } + canvasPointerdown(event) { + if (event.button !== 0 || !this.isInEditMode() || _classPrivateFieldGet(this, _disableEditing)) { + return; + } + this.setInForeground(); + if (event.type !== "mouse") { + this.div.focus(); + } + event.stopPropagation(); + this.canvas.addEventListener("pointerleave", _classPrivateFieldGet(this, _boundCanvasPointerleave)); + this.canvas.addEventListener("pointermove", _classPrivateFieldGet(this, _boundCanvasPointermove)); + _classPrivateMethodGet(this, _startDrawing, _startDrawing2).call(this, event.offsetX, event.offsetY); + } + canvasPointermove(event) { + event.stopPropagation(); + _classPrivateMethodGet(this, _draw, _draw2).call(this, event.offsetX, event.offsetY); + } + canvasPointerup(event) { + if (event.button !== 0) { + return; + } + if (this.isInEditMode() && this.currentPath.length !== 0) { + event.stopPropagation(); + _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event); + this.setInBackground(); + } + } + canvasPointerleave(event) { + _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event); + this.setInBackground(); + } + render() { + if (this.div) { + return this.div; + } + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + InkEditor._l10nPromise.get("editor_ink2_aria_label").then(msg => { + var _this$div; + return (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.setAttribute("aria-label", msg); + }); + const [x, y, w, h] = _classPrivateMethodGet(this, _getInitialBBox, _getInitialBBox2).call(this); + this.setAt(x, y, 0, 0); + this.setDims(w, h); + _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this); + if (this.width) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + _classPrivateFieldSet(this, _isCanvasInitialized, true); + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + this.setDims(this.width * parentWidth, this.height * parentHeight); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this); + this.div.classList.add("disabled"); + } else { + this.div.classList.add("editing"); + this.enableEditMode(); + } + _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this); + return this.div; + } + setDimensions(width, height) { + const roundedWidth = Math.round(width); + const roundedHeight = Math.round(height); + if (_classPrivateFieldGet(this, _realWidth) === roundedWidth && _classPrivateFieldGet(this, _realHeight) === roundedHeight) { + return; + } + _classPrivateFieldSet(this, _realWidth, roundedWidth); + _classPrivateFieldSet(this, _realHeight, roundedHeight); + this.canvas.style.visibility = "hidden"; + if (_classPrivateFieldGet(this, _aspectRatio) && Math.abs(_classPrivateFieldGet(this, _aspectRatio) - width / height) > 1e-2) { + height = Math.ceil(width / _classPrivateFieldGet(this, _aspectRatio)); + this.setDims(width, height); + } + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + if (_classPrivateFieldGet(this, _disableEditing)) { + _classPrivateMethodGet(this, _setScaleFactor, _setScaleFactor2).call(this, width, height); + } + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + this.canvas.style.visibility = "visible"; + } + static deserialize(data, parent) { + const editor = super.deserialize(data, parent); + editor.thickness = data.thickness; + editor.color = _util.Util.makeHexColor(...data.color); + editor.opacity = data.opacity; + const [pageWidth, pageHeight] = parent.pageDimensions; + const width = editor.width * pageWidth; + const height = editor.height * pageHeight; + const scaleFactor = parent.scaleFactor; + const padding = data.thickness / 2; + _classPrivateFieldSet(editor, _aspectRatio, width / height); + _classPrivateFieldSet(editor, _disableEditing, true); + _classPrivateFieldSet(editor, _realWidth, Math.round(width)); + _classPrivateFieldSet(editor, _realHeight, Math.round(height)); + for (const { + bezier + } of data.paths) { + const path = []; + editor.paths.push(path); + let p0 = scaleFactor * (bezier[0] - padding); + let p1 = scaleFactor * (height - bezier[1] - padding); + for (let i = 2, ii = bezier.length; i < ii; i += 6) { + const p10 = scaleFactor * (bezier[i] - padding); + const p11 = scaleFactor * (height - bezier[i + 1] - padding); + const p20 = scaleFactor * (bezier[i + 2] - padding); + const p21 = scaleFactor * (height - bezier[i + 3] - padding); + const p30 = scaleFactor * (bezier[i + 4] - padding); + const p31 = scaleFactor * (height - bezier[i + 5] - padding); + path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]); + p0 = p30; + p1 = p31; + } + const path2D = _classStaticPrivateMethodGet(this, InkEditor, _buildPath2D).call(this, path); + editor.bezierPath2D.push(path2D); + } + const bbox = _classPrivateMethodGet(editor, _getBbox, _getBbox2).call(editor); + _classPrivateFieldSet(editor, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0])); + _classPrivateFieldSet(editor, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1])); + _classPrivateMethodGet(editor, _setScaleFactor, _setScaleFactor2).call(editor, width, height); + return editor; + } + serialize() { + if (this.isEmpty()) { + return null; + } + const rect = this.getRect(0, 0); + const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0]; + const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle); + return { + annotationType: _util.AnnotationEditorType.INK, + color, + thickness: this.thickness, + opacity: this.opacity, + paths: _classPrivateMethodGet(this, _serializePaths, _serializePaths2).call(this, this.scaleFactor / this.parent.scaleFactor, this.translationX, this.translationY, height), + pageIndex: this.parent.pageIndex, + rect, + rotation: this.rotation + }; + } +} +exports.InkEditor = InkEditor; +function _updateThickness2(thickness) { + const savedThickness = this.thickness; + this.parent.addCommands({ + cmd: () => { + this.thickness = thickness; + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + }, + undo: () => { + this.thickness = savedThickness; + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_THICKNESS, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _updateColor2(color) { + const savedColor = this.color; + this.parent.addCommands({ + cmd: () => { + this.color = color; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + undo: () => { + this.color = savedColor; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_COLOR, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _updateOpacity2(opacity) { + opacity /= 100; + const savedOpacity = this.opacity; + this.parent.addCommands({ + cmd: () => { + this.opacity = opacity; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + undo: () => { + this.opacity = savedOpacity; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_OPACITY, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _getInitialBBox2() { + const { + width, + height, + rotation + } = this.parent.viewport; + switch (rotation) { + case 90: + return [0, width, width, height]; + case 180: + return [width, height, width, height]; + case 270: + return [height, 0, width, height]; + default: + return [0, 0, width, height]; + } +} +function _setStroke2() { + this.ctx.lineWidth = this.thickness * this.parent.scaleFactor / this.scaleFactor; + this.ctx.lineCap = "round"; + this.ctx.lineJoin = "round"; + this.ctx.miterLimit = 10; + this.ctx.strokeStyle = `${this.color}${(0, _tools.opacityToHex)(this.opacity)}`; +} +function _startDrawing2(x, y) { + this.isEditing = true; + if (!_classPrivateFieldGet(this, _isCanvasInitialized)) { + _classPrivateFieldSet(this, _isCanvasInitialized, true); + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + this.thickness || (this.thickness = InkEditor._defaultThickness); + this.color || (this.color = InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor); + this.opacity ?? (this.opacity = InkEditor._defaultOpacity); + } + this.currentPath.push([x, y]); + _classPrivateFieldSet(this, _lastPoint, null); + _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this); + this.ctx.beginPath(); + this.ctx.moveTo(x, y); + _classPrivateFieldSet(this, _requestFrameCallback, () => { + if (!_classPrivateFieldGet(this, _requestFrameCallback)) { + return; + } + if (_classPrivateFieldGet(this, _lastPoint)) { + if (this.isEmpty()) { + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); + } else { + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + } + this.ctx.lineTo(..._classPrivateFieldGet(this, _lastPoint)); + _classPrivateFieldSet(this, _lastPoint, null); + this.ctx.stroke(); + } + window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback)); + }); + window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback)); +} +function _draw2(x, y) { + const [lastX, lastY] = this.currentPath.at(-1); + if (x === lastX && y === lastY) { + return; + } + this.currentPath.push([x, y]); + _classPrivateFieldSet(this, _lastPoint, [x, y]); +} +function _stopDrawing2(x, y) { + this.ctx.closePath(); + _classPrivateFieldSet(this, _requestFrameCallback, null); + x = Math.min(Math.max(x, 0), this.canvas.width); + y = Math.min(Math.max(y, 0), this.canvas.height); + const [lastX, lastY] = this.currentPath.at(-1); + if (x !== lastX || y !== lastY) { + this.currentPath.push([x, y]); + } + let bezier; + if (this.currentPath.length !== 1) { + bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null); + } else { + const xy = [x, y]; + bezier = [[xy, xy.slice(), xy.slice(), xy]]; + } + const path2D = _classStaticPrivateMethodGet(InkEditor, InkEditor, _buildPath2D).call(InkEditor, bezier); + this.currentPath.length = 0; + const cmd = () => { + this.paths.push(bezier); + this.bezierPath2D.push(path2D); + this.rebuild(); + }; + const undo = () => { + this.paths.pop(); + this.bezierPath2D.pop(); + if (this.paths.length === 0) { + this.remove(); + } else { + if (!this.canvas) { + _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this); + _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this); + } + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + } + }; + this.parent.addCommands({ + cmd, + undo, + mustExec: true + }); +} +function _redraw2() { + if (this.isEmpty()) { + _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this); + return; + } + _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this); + const { + canvas, + ctx + } = this; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.clearRect(0, 0, canvas.width, canvas.height); + _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this); + for (const path of this.bezierPath2D) { + ctx.stroke(path); + } +} +function _endDrawing2(event) { + _classPrivateMethodGet(this, _stopDrawing, _stopDrawing2).call(this, event.offsetX, event.offsetY); + this.canvas.removeEventListener("pointerleave", _classPrivateFieldGet(this, _boundCanvasPointerleave)); + this.canvas.removeEventListener("pointermove", _classPrivateFieldGet(this, _boundCanvasPointermove)); + this.parent.addToAnnotationStorage(this); +} +function _createCanvas2() { + this.canvas = document.createElement("canvas"); + this.canvas.width = this.canvas.height = 0; + this.canvas.className = "inkEditorCanvas"; + InkEditor._l10nPromise.get("editor_ink_canvas_aria_label").then(msg => { + var _this$canvas; + return (_this$canvas = this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.setAttribute("aria-label", msg); + }); + this.div.append(this.canvas); + this.ctx = this.canvas.getContext("2d"); +} +function _createObserver2() { + let timeoutId = null; + _classPrivateFieldSet(this, _observer, new ResizeObserver(entries => { + const rect = entries[0].contentRect; + if (rect.width && rect.height) { + if (timeoutId !== null) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(() => { + this.fixDims(); + timeoutId = null; + }, TIME_TO_WAIT_BEFORE_FIXING_DIMS); + this.setDimensions(rect.width, rect.height); + } + })); + _classPrivateFieldGet(this, _observer).observe(this.div); +} +function _setCanvasDims2() { + if (!_classPrivateFieldGet(this, _isCanvasInitialized)) { + return; + } + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.canvas.width = Math.ceil(this.width * parentWidth); + this.canvas.height = Math.ceil(this.height * parentHeight); + _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this); +} +function _setScaleFactor2(width, height) { + const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this); + const scaleFactorW = (width - padding) / _classPrivateFieldGet(this, _baseWidth); + const scaleFactorH = (height - padding) / _classPrivateFieldGet(this, _baseHeight); + this.scaleFactor = Math.min(scaleFactorW, scaleFactorH); +} +function _updateTransform2() { + const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this) / 2; + this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding); +} +function _buildPath2D(bezier) { + const path2D = new Path2D(); + for (let i = 0, ii = bezier.length; i < ii; i++) { + const [first, control1, control2, second] = bezier[i]; + if (i === 0) { + path2D.moveTo(...first); + } + path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]); + } + return path2D; +} +function _serializePaths2(s, tx, ty, h) { + const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4; + const paths = []; + const padding = this.thickness / 2; + let buffer, points; + for (const bezier of this.paths) { + buffer = []; + points = []; + for (let i = 0, ii = bezier.length; i < ii; i++) { + const [first, control1, control2, second] = bezier[i]; + const p10 = s * (first[0] + tx) + padding; + const p11 = h - s * (first[1] + ty) - padding; + const p20 = s * (control1[0] + tx) + padding; + const p21 = h - s * (control1[1] + ty) - padding; + const p30 = s * (control2[0] + tx) + padding; + const p31 = h - s * (control2[1] + ty) - padding; + const p40 = s * (second[0] + tx) + padding; + const p41 = h - s * (second[1] + ty) - padding; + if (i === 0) { + buffer.push(p10, p11); + points.push(p10, p11); + } + buffer.push(p20, p21, p30, p31, p40, p41); + _classPrivateMethodGet(this, _extractPointsOnBezier, _extractPointsOnBezier2).call(this, p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points); + } + paths.push({ + bezier: buffer, + points + }); + } + return paths; +} +function _extractPointsOnBezier2(p10, p11, p20, p21, p30, p31, p40, p41, n, points) { + if (_classPrivateMethodGet(this, _isAlmostFlat, _isAlmostFlat2).call(this, p10, p11, p20, p21, p30, p31, p40, p41)) { + points.push(p40, p41); + return; + } + for (let i = 1; i < n - 1; i++) { + const t = i / n; + const mt = 1 - t; + let q10 = t * p10 + mt * p20; + let q11 = t * p11 + mt * p21; + let q20 = t * p20 + mt * p30; + let q21 = t * p21 + mt * p31; + const q30 = t * p30 + mt * p40; + const q31 = t * p31 + mt * p41; + q10 = t * q10 + mt * q20; + q11 = t * q11 + mt * q21; + q20 = t * q20 + mt * q30; + q21 = t * q21 + mt * q31; + q10 = t * q10 + mt * q20; + q11 = t * q11 + mt * q21; + points.push(q10, q11); + } + points.push(p40, p41); +} +function _isAlmostFlat2(p10, p11, p20, p21, p30, p31, p40, p41) { + const tol = 10; + const ax = (3 * p20 - 2 * p10 - p40) ** 2; + const ay = (3 * p21 - 2 * p11 - p41) ** 2; + const bx = (3 * p30 - p10 - 2 * p40) ** 2; + const by = (3 * p31 - p11 - 2 * p41) ** 2; + return Math.max(ax, bx) + Math.max(ay, by) <= tol; +} +function _getBbox2() { + let xMin = Infinity; + let xMax = -Infinity; + let yMin = Infinity; + let yMax = -Infinity; + for (const path of this.paths) { + for (const [first, control1, control2, second] of path) { + const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second); + xMin = Math.min(xMin, bbox[0]); + yMin = Math.min(yMin, bbox[1]); + xMax = Math.max(xMax, bbox[2]); + yMax = Math.max(yMax, bbox[3]); + } + } + return [xMin, yMin, xMax, yMax]; +} +function _getPadding2() { + return _classPrivateFieldGet(this, _disableEditing) ? Math.ceil(this.thickness * this.parent.scaleFactor) : 0; +} +function _fitToContent2() { + let firstTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.isEmpty()) { + return; + } + if (!_classPrivateFieldGet(this, _disableEditing)) { + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + return; + } + const bbox = _classPrivateMethodGet(this, _getBbox, _getBbox2).call(this); + const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this); + _classPrivateFieldSet(this, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0])); + _classPrivateFieldSet(this, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1])); + const width = Math.ceil(padding + _classPrivateFieldGet(this, _baseWidth) * this.scaleFactor); + const height = Math.ceil(padding + _classPrivateFieldGet(this, _baseHeight) * this.scaleFactor); + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + _classPrivateFieldSet(this, _aspectRatio, width / height); + _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this); + const prevTranslationX = this.translationX; + const prevTranslationY = this.translationY; + this.translationX = -bbox[0]; + this.translationY = -bbox[1]; + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + _classPrivateFieldSet(this, _realWidth, width); + _classPrivateFieldSet(this, _realHeight, height); + this.setDims(width, height); + const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0; + this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding); +} +function _setMinDims2() { + const { + style + } = this.div; + if (_classPrivateFieldGet(this, _aspectRatio) >= 1) { + style.minHeight = `${RESIZER_SIZE}px`; + style.minWidth = `${Math.round(_classPrivateFieldGet(this, _aspectRatio) * RESIZER_SIZE)}px`; + } else { + style.minWidth = `${RESIZER_SIZE}px`; + style.minHeight = `${Math.round(RESIZER_SIZE / _classPrivateFieldGet(this, _aspectRatio))}px`; + } +} +_defineProperty(InkEditor, "_defaultColor", null); +_defineProperty(InkEditor, "_defaultOpacity", 1); +_defineProperty(InkEditor, "_defaultThickness", 1); +_defineProperty(InkEditor, "_l10nPromise", void 0); +_defineProperty(InkEditor, "_type", "ink"); + +/***/ }), +/* 154 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.fitCurve = void 0; +const fitCurve = __w_pdfjs_require__(155); +exports.fitCurve = fitCurve; + +/***/ }), +/* 155 */ +/***/ ((module) => { + +"use strict"; + + +function fitCurve(points, maxError, progressCallback) { + if (!Array.isArray(points)) { + throw new TypeError("First argument should be an array"); + } + points.forEach(point => { + if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) { + throw Error("Each point should be an array of numbers. Each point should have the same amount of numbers."); + } + }); + points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j])); + if (points.length < 2) { + return []; + } + const len = points.length; + const leftTangent = createTangent(points[1], points[0]); + const rightTangent = createTangent(points[len - 2], points[len - 1]); + return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback); +} +function fitCubic(points, leftTangent, rightTangent, error, progressCallback) { + const MaxIterations = 20; + var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i; + if (points.length === 2) { + dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0; + bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]]; + return [bezCurve]; + } + u = chordLengthParameterize(points); + [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback); + if (maxError === 0 || maxError < error) { + return [bezCurve]; + } + if (maxError < error * error) { + uPrime = u; + prevErr = maxError; + prevSplit = splitPoint; + for (i = 0; i < MaxIterations; i++) { + uPrime = reparameterize(bezCurve, points, uPrime); + [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback); + if (maxError < error) { + return [bezCurve]; + } else if (splitPoint === prevSplit) { + let errChange = maxError / prevErr; + if (errChange > .9999 && errChange < 1.0001) { + break; + } + } + prevErr = maxError; + prevSplit = splitPoint; + } + } + beziers = []; + centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]); + if (centerVector.every(val => val === 0)) { + centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]); + [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]]; + } + toCenterTangent = maths.normalize(centerVector); + fromCenterTangent = maths.mulItems(toCenterTangent, -1); + beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback)); + beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback)); + return beziers; +} +; +function generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) { + var bezCurve, maxError, splitPoint; + bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback); + [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig); + if (progressCallback) { + progressCallback({ + bez: bezCurve, + points: points, + params: paramsOrig, + maxErr: maxError, + maxPoint: splitPoint + }); + } + return [bezCurve, maxError, splitPoint]; +} +function generateBezier(points, parameters, leftTangent, rightTangent) { + var bezCurve, + A, + a, + C, + X, + det_C0_C1, + det_C0_X, + det_X_C1, + alpha_l, + alpha_r, + epsilon, + segLength, + i, + len, + tmp, + u, + ux, + firstPoint = points[0], + lastPoint = points[points.length - 1]; + bezCurve = [firstPoint, null, null, lastPoint]; + A = maths.zeros_Xx2x2(parameters.length); + for (i = 0, len = parameters.length; i < len; i++) { + u = parameters[i]; + ux = 1 - u; + a = A[i]; + a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux)); + a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u)); + } + C = [[0, 0], [0, 0]]; + X = [0, 0]; + for (i = 0, len = points.length; i < len; i++) { + u = parameters[i]; + a = A[i]; + C[0][0] += maths.dot(a[0], a[0]); + C[0][1] += maths.dot(a[0], a[1]); + C[1][0] += maths.dot(a[0], a[1]); + C[1][1] += maths.dot(a[1], a[1]); + tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u)); + X[0] += maths.dot(a[0], tmp); + X[1] += maths.dot(a[1], tmp); + } + det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1]; + det_C0_X = C[0][0] * X[1] - C[1][0] * X[0]; + det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1]; + alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1; + alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1; + segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint)); + epsilon = 1.0e-6 * segLength; + if (alpha_l < epsilon || alpha_r < epsilon) { + bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0)); + bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0)); + } else { + bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l)); + bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r)); + } + return bezCurve; +} +; +function reparameterize(bezier, points, parameters) { + return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p)); +} +; +function newtonRaphsonRootFind(bez, point, u) { + var d = maths.subtract(bezier.q(bez, u), point), + qprime = bezier.qprime(bez, u), + numerator = maths.mulMatrix(d, qprime), + denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u)); + if (denominator === 0) { + return u; + } else { + return u - numerator / denominator; + } +} +; +function chordLengthParameterize(points) { + var u = [], + currU, + prevU, + prevP; + points.forEach((p, i) => { + currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0; + u.push(currU); + prevU = currU; + prevP = p; + }); + u = u.map(x => x / prevU); + return u; +} +; +function computeMaxError(points, bez, parameters) { + var dist, maxDist, splitPoint, v, i, count, point, t; + maxDist = 0; + splitPoint = Math.floor(points.length / 2); + const t_distMap = mapTtoRelativeDistances(bez, 10); + for (i = 0, count = points.length; i < count; i++) { + point = points[i]; + t = find_t(bez, parameters[i], t_distMap, 10); + v = maths.subtract(bezier.q(bez, t), point); + dist = v[0] * v[0] + v[1] * v[1]; + if (dist > maxDist) { + maxDist = dist; + splitPoint = i; + } + } + return [maxDist, splitPoint]; +} +; +var mapTtoRelativeDistances = function (bez, B_parts) { + var B_t_curr; + var B_t_dist = [0]; + var B_t_prev = bez[0]; + var sumLen = 0; + for (var i = 1; i <= B_parts; i++) { + B_t_curr = bezier.q(bez, i / B_parts); + sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev)); + B_t_dist.push(sumLen); + B_t_prev = B_t_curr; + } + B_t_dist = B_t_dist.map(x => x / sumLen); + return B_t_dist; +}; +function find_t(bez, param, t_distMap, B_parts) { + if (param < 0) { + return 0; + } + if (param > 1) { + return 1; + } + var lenMax, lenMin, tMax, tMin, t; + for (var i = 1; i <= B_parts; i++) { + if (param <= t_distMap[i]) { + tMin = (i - 1) / B_parts; + tMax = i / B_parts; + lenMin = t_distMap[i - 1]; + lenMax = t_distMap[i]; + t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin; + break; + } + } + return t; +} +function createTangent(pointA, pointB) { + return maths.normalize(maths.subtract(pointA, pointB)); +} +class maths { + static zeros_Xx2x2(x) { + var zs = []; + while (x--) { + zs.push([0, 0]); + } + return zs; + } + static mulItems(items, multiplier) { + return items.map(x => x * multiplier); + } + static mulMatrix(m1, m2) { + return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0); + } + static subtract(arr1, arr2) { + return arr1.map((x1, i) => x1 - arr2[i]); + } + static addArrays(arr1, arr2) { + return arr1.map((x1, i) => x1 + arr2[i]); + } + static addItems(items, addition) { + return items.map(x => x + addition); + } + static sum(items) { + return items.reduce((sum, x) => sum + x); + } + static dot(m1, m2) { + return maths.mulMatrix(m1, m2); + } + static vectorLen(v) { + return Math.hypot(...v); + } + static divItems(items, divisor) { + return items.map(x => x / divisor); + } + static squareItems(items) { + return items.map(x => x * x); + } + static normalize(v) { + return this.divItems(v, this.vectorLen(v)); + } +} +class bezier { + static q(ctrlPoly, t) { + var tx = 1.0 - t; + var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx), + pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t), + pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t), + pD = maths.mulItems(ctrlPoly[3], t * t * t); + return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD)); + } + static qprime(ctrlPoly, t) { + var tx = 1.0 - t; + var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx), + pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t), + pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t); + return maths.addArrays(maths.addArrays(pA, pB), pC); + } + static qprimeprime(ctrlPoly, t) { + return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t)); + } +} +module.exports = fitCurve; +module.exports.fitCubic = fitCubic; +module.exports.createTangent = createTangent; + +/***/ }), +/* 156 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayer = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +var _annotation_storage = __w_pdfjs_require__(134); +var _scripting_utils = __w_pdfjs_require__(157); +var _xfa_layer = __w_pdfjs_require__(158); +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const DEFAULT_TAB_INDEX = 1000; +const DEFAULT_FONT_SIZE = 9; +const GetElementsByNameSet = new WeakSet(); +function getRectDims(rect) { + return { + width: rect[2] - rect[0], + height: rect[3] - rect[1] + }; +} +class AnnotationElementFactory { + static create(parameters) { + const subtype = parameters.data.annotationType; + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + case _util.AnnotationType.WIDGET: + const fieldType = parameters.data.fieldType; + switch (fieldType) { + case "Tx": + return new TextWidgetAnnotationElement(parameters); + case "Btn": + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + return new PushButtonWidgetAnnotationElement(parameters); + case "Ch": + return new ChoiceWidgetAnnotationElement(parameters); + } + return new WidgetAnnotationElement(parameters); + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + case _util.AnnotationType.FREETEXT: + return new FreeTextAnnotationElement(parameters); + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + case _util.AnnotationType.CARET: + return new CaretAnnotationElement(parameters); + case _util.AnnotationType.INK: + return new InkAnnotationElement(parameters); + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + default: + return new AnnotationElement(parameters); + } + } +} +class AnnotationElement { + constructor(parameters) { + let { + isRenderable = false, + ignoreBorder = false, + createQuadrilaterals = false + } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderForms = parameters.renderForms; + this.svgFactory = parameters.svgFactory; + this.annotationStorage = parameters.annotationStorage; + this.enableScripting = parameters.enableScripting; + this.hasJSActions = parameters.hasJSActions; + this._fieldObjects = parameters.fieldObjects; + this._mouseState = parameters.mouseState; + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + if (createQuadrilaterals) { + this.quadrilaterals = this._createQuadrilaterals(ignoreBorder); + } + } + _createContainer() { + let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + const data = this.data, + page = this.page, + viewport = this.viewport; + const container = document.createElement("section"); + const { + width, + height + } = getRectDims(data.rect); + const [pageLLx, pageLLy, pageURx, pageURy] = viewport.viewBox; + const pageWidth = pageURx - pageLLx; + const pageHeight = pageURy - pageLLy; + container.setAttribute("data-annotation-id", data.id); + const 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]]); + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = `${data.borderStyle.width}px`; + const horizontalRadius = data.borderStyle.horizontalCornerRadius; + const verticalRadius = data.borderStyle.verticalCornerRadius; + if (horizontalRadius > 0 || verticalRadius > 0) { + const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`; + container.style.borderRadius = radius; + } else if (this instanceof RadioButtonWidgetAnnotationElement) { + const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`; + container.style.borderRadius = radius; + } + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = "solid"; + break; + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = "dashed"; + break; + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)("Unimplemented border style: beveled"); + break; + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)("Unimplemented border style: inset"); + break; + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = "solid"; + break; + default: + break; + } + const borderColor = data.borderColor || null; + if (borderColor) { + container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0); + } else { + container.style.borderWidth = 0; + } + } + container.style.left = `${100 * (rect[0] - pageLLx) / pageWidth}%`; + container.style.top = `${100 * (rect[1] - pageLLy) / pageHeight}%`; + const { + rotation + } = data; + if (data.hasOwnCanvas || rotation === 0) { + container.style.width = `${100 * width / pageWidth}%`; + container.style.height = `${100 * height / pageHeight}%`; + } else { + this.setRotation(rotation, container); + } + return container; + } + setRotation(angle) { + let container = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.container; + const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox; + const pageWidth = pageURx - pageLLx; + const pageHeight = pageURy - pageLLy; + const { + width, + height + } = getRectDims(this.data.rect); + let elementWidth, elementHeight; + if (angle % 180 === 0) { + elementWidth = 100 * width / pageWidth; + elementHeight = 100 * height / pageHeight; + } else { + elementWidth = 100 * height / pageWidth; + elementHeight = 100 * width / pageHeight; + } + container.style.width = `${elementWidth}%`; + container.style.height = `${elementHeight}%`; + container.setAttribute("data-main-rotation", (360 - angle) % 360); + } + get _commonActions() { + const setColor = (jsName, styleName, event) => { + const color = event.detail[jsName]; + event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1)); + }; + return (0, _util.shadow)(this, "_commonActions", { + display: event => { + const hidden = event.detail.display % 2 === 1; + this.container.style.visibility = hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden, + print: event.detail.display === 0 || event.detail.display === 3 + }); + }, + print: event => { + this.annotationStorage.setValue(this.data.id, { + print: event.detail.print + }); + }, + hidden: event => { + this.container.style.visibility = event.detail.hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden: event.detail.hidden + }); + }, + focus: event => { + setTimeout(() => event.target.focus({ + preventScroll: false + }), 0); + }, + userName: event => { + event.target.title = event.detail.userName; + }, + readonly: event => { + if (event.detail.readonly) { + event.target.setAttribute("readonly", ""); + } else { + event.target.removeAttribute("readonly"); + } + }, + required: event => { + this._setRequired(event.target, event.detail.required); + }, + bgColor: event => { + setColor("bgColor", "backgroundColor", event); + }, + fillColor: event => { + setColor("fillColor", "backgroundColor", event); + }, + fgColor: event => { + setColor("fgColor", "color", event); + }, + textColor: event => { + setColor("textColor", "color", event); + }, + borderColor: event => { + setColor("borderColor", "borderColor", event); + }, + strokeColor: event => { + setColor("strokeColor", "borderColor", event); + }, + rotation: event => { + const angle = event.detail.rotation; + this.setRotation(angle); + this.annotationStorage.setValue(this.data.id, { + rotation: angle + }); + } + }); + } + _dispatchEventFromSandbox(actions, jsEvent) { + const commonActions = this._commonActions; + for (const name of Object.keys(jsEvent.detail)) { + const action = actions[name] || commonActions[name]; + action === null || action === void 0 ? void 0 : action(jsEvent); + } + } + _setDefaultPropertiesFromJS(element) { + if (!this.enableScripting) { + return; + } + const storedData = this.annotationStorage.getRawValue(this.data.id); + if (!storedData) { + return; + } + const commonActions = this._commonActions; + for (const [actionName, detail] of Object.entries(storedData)) { + const action = commonActions[actionName]; + if (action) { + const eventProxy = { + detail: { + [actionName]: detail + }, + target: element + }; + action(eventProxy); + delete storedData[actionName]; + } + } + } + _createQuadrilaterals() { + let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!this.data.quadPoints) { + return null; + } + const quadrilaterals = []; + const savedRect = this.data.rect; + for (const quadPoint of this.data.quadPoints) { + this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y]; + quadrilaterals.push(this._createContainer(ignoreBorder)); + } + this.data.rect = savedRect; + return quadrilaterals; + } + _createPopup(trigger, data) { + let container = this.container; + if (this.quadrilaterals) { + trigger = trigger || this.quadrilaterals; + container = this.quadrilaterals[0]; + } + if (!trigger) { + trigger = document.createElement("div"); + trigger.className = "popupTriggerArea"; + container.append(trigger); + } + const popupElement = new PopupElement({ + container, + trigger, + color: data.color, + titleObj: data.titleObj, + modificationDate: data.modificationDate, + contentsObj: data.contentsObj, + richText: data.richText, + hideWrapper: true + }); + const popup = popupElement.render(); + popup.style.left = "100%"; + container.append(popup); + } + _renderQuadrilaterals(className) { + for (const quadrilateral of this.quadrilaterals) { + quadrilateral.className = className; + } + return this.quadrilaterals; + } + render() { + (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + } + _getElementsByName(name) { + let skipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const fields = []; + if (this._fieldObjects) { + const fieldObj = this._fieldObjects[name]; + if (fieldObj) { + for (const { + page, + id, + exportValues + } of fieldObj) { + if (page === -1) { + continue; + } + if (id === skipId) { + continue; + } + const exportValue = typeof exportValues === "string" ? exportValues : null; + const domElement = document.querySelector(`[data-element-id="${id}"]`); + if (domElement && !GetElementsByNameSet.has(domElement)) { + (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`); + continue; + } + fields.push({ + id, + exportValue, + domElement + }); + } + } + return fields; + } + for (const domElement of document.getElementsByName(name)) { + const { + exportValue + } = domElement; + const id = domElement.getAttribute("data-element-id"); + if (id === skipId) { + continue; + } + if (!GetElementsByNameSet.has(domElement)) { + continue; + } + fields.push({ + id, + exportValue, + domElement + }); + } + return fields; + } + static get platform() { + const platform = typeof navigator !== "undefined" ? navigator.platform : ""; + return (0, _util.shadow)(this, "platform", { + isWin: platform.includes("Win"), + isMac: platform.includes("Mac") + }); + } +} +var _bindSetOCGState = /*#__PURE__*/new WeakSet(); +class LinkAnnotationElement extends AnnotationElement { + constructor(parameters) { + let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + super(parameters, { + isRenderable: true, + ignoreBorder: !!(options !== null && options !== void 0 && options.ignoreBorder), + createQuadrilaterals: true + }); + _classPrivateMethodInitSpec(this, _bindSetOCGState); + this.isTooltipOnly = parameters.data.isTooltipOnly; + } + render() { + const { + data, + linkService + } = this; + const link = document.createElement("a"); + link.setAttribute("data-element-id", data.id); + let isBound = false; + if (data.url) { + linkService.addLinkAttributes(link, data.url, data.newWindow); + isBound = true; + } else if (data.action) { + this._bindNamedAction(link, data.action); + isBound = true; + } else if (data.attachment) { + this._bindAttachment(link, data.attachment); + isBound = true; + } else if (data.setOCGState) { + _classPrivateMethodGet(this, _bindSetOCGState, _bindSetOCGState2).call(this, link, data.setOCGState); + isBound = true; + } else if (data.dest) { + this._bindLink(link, data.dest); + isBound = true; + } else { + if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { + this._bindJSAction(link, data); + isBound = true; + } + if (data.resetForm) { + this._bindResetFormAction(link, data.resetForm); + isBound = true; + } else if (this.isTooltipOnly && !isBound) { + this._bindLink(link, ""); + isBound = true; + } + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("linkAnnotation").map((quadrilateral, index) => { + const linkElement = index === 0 ? link : link.cloneNode(); + quadrilateral.append(linkElement); + return quadrilateral; + }); + } + this.container.className = "linkAnnotation"; + if (isBound) { + this.container.append(link); + } + return this.container; + } + _bindLink(link, destination) { + link.href = this.linkService.getDestinationHash(destination); + link.onclick = () => { + if (destination) { + this.linkService.goToDestination(destination); + } + return false; + }; + if (destination || destination === "") { + link.className = "internalLink"; + } + } + _bindNamedAction(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeNamedAction(action); + return false; + }; + link.className = "internalLink"; + } + _bindAttachment(link, attachment) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + var _this$downloadManager; + (_this$downloadManager = this.downloadManager) === null || _this$downloadManager === void 0 ? void 0 : _this$downloadManager.openOrDownloadData(this.container, attachment.content, attachment.filename); + return false; + }; + link.className = "internalLink"; + } + _bindJSAction(link, data) { + link.href = this.linkService.getAnchorUrl(""); + const map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); + for (const name of Object.keys(data.actions)) { + const jsName = map.get(name); + if (!jsName) { + continue; + } + link[jsName] = () => { + var _this$linkService$eve; + (_this$linkService$eve = this.linkService.eventBus) === null || _this$linkService$eve === void 0 ? void 0 : _this$linkService$eve.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: data.id, + name + } + }); + return false; + }; + } + if (!link.onclick) { + link.onclick = () => false; + } + link.className = "internalLink"; + } + _bindResetFormAction(link, resetForm) { + const otherClickAction = link.onclick; + if (!otherClickAction) { + link.href = this.linkService.getAnchorUrl(""); + } + link.className = "internalLink"; + if (!this._fieldObjects) { + (0, _util.warn)(`_bindResetFormAction - "resetForm" action not supported, ` + "ensure that the `fieldObjects` parameter is provided."); + if (!otherClickAction) { + link.onclick = () => false; + } + return; + } + link.onclick = () => { + otherClickAction === null || otherClickAction === void 0 ? void 0 : otherClickAction(); + const { + fields: resetFormFields, + refs: resetFormRefs, + include + } = resetForm; + const allFields = []; + if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) { + const fieldIds = new Set(resetFormRefs); + for (const fieldName of resetFormFields) { + const fields = this._fieldObjects[fieldName] || []; + for (const { + id + } of fields) { + fieldIds.add(id); + } + } + for (const fields of Object.values(this._fieldObjects)) { + for (const field of fields) { + if (fieldIds.has(field.id) === include) { + allFields.push(field); + } + } + } + } else { + for (const fields of Object.values(this._fieldObjects)) { + allFields.push(...fields); + } + } + const storage = this.annotationStorage; + const allIds = []; + for (const field of allFields) { + const { + id + } = field; + allIds.push(id); + switch (field.type) { + case "text": + { + const value = field.defaultValue || ""; + storage.setValue(id, { + value + }); + break; + } + case "checkbox": + case "radiobutton": + { + const value = field.defaultValue === field.exportValues; + storage.setValue(id, { + value + }); + break; + } + case "combobox": + case "listbox": + { + const value = field.defaultValue || ""; + storage.setValue(id, { + value + }); + break; + } + default: + continue; + } + const domElement = document.querySelector(`[data-element-id="${id}"]`); + if (!domElement) { + continue; + } else if (!GetElementsByNameSet.has(domElement)) { + (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`); + continue; + } + domElement.dispatchEvent(new Event("resetform")); + } + if (this.enableScripting) { + var _this$linkService$eve2; + (_this$linkService$eve2 = this.linkService.eventBus) === null || _this$linkService$eve2 === void 0 ? void 0 : _this$linkService$eve2.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: "app", + ids: allIds, + name: "ResetForm" + } + }); + } + return false; + }; + } +} +function _bindSetOCGState2(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeSetOCGState(action); + return false; + }; + link.className = "internalLink"; +} +class TextAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl, _parameters$data$cont, _parameters$data$rich; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl = parameters.data.titleObj) !== null && _parameters$data$titl !== void 0 && _parameters$data$titl.str || (_parameters$data$cont = parameters.data.contentsObj) !== null && _parameters$data$cont !== void 0 && _parameters$data$cont.str || (_parameters$data$rich = parameters.data.richText) !== null && _parameters$data$rich !== void 0 && _parameters$data$rich.str); + super(parameters, { + isRenderable + }); + } + render() { + this.container.className = "textAnnotation"; + const image = document.createElement("img"); + image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; + image.alt = "[{{type}} Annotation]"; + image.dataset.l10nId = "text_annotation_type"; + image.dataset.l10nArgs = JSON.stringify({ + type: this.data.name + }); + if (!this.data.hasPopup) { + this._createPopup(image, this.data); + } + this.container.append(image); + return this.container; + } +} +class WidgetAnnotationElement extends AnnotationElement { + render() { + if (this.data.alternativeText) { + this.container.title = this.data.alternativeText; + } + return this.container; + } + _getKeyModifier(event) { + const { + isWin, + isMac + } = AnnotationElement.platform; + return isWin && event.ctrlKey || isMac && event.metaKey; + } + _setEventListener(element, baseName, eventName, valueGetter) { + if (baseName.includes("mouse")) { + element.addEventListener(baseName, event => { + var _this$linkService$eve3; + (_this$linkService$eve3 = this.linkService.eventBus) === null || _this$linkService$eve3 === void 0 ? void 0 : _this$linkService$eve3.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event), + shift: event.shiftKey, + modifier: this._getKeyModifier(event) + } + }); + }); + } else { + element.addEventListener(baseName, event => { + var _this$linkService$eve4; + (_this$linkService$eve4 = this.linkService.eventBus) === null || _this$linkService$eve4 === void 0 ? void 0 : _this$linkService$eve4.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event) + } + }); + }); + } + } + _setEventListeners(element, names, getter) { + for (const [baseName, eventName] of names) { + var _this$data$actions; + if (eventName === "Action" || (_this$data$actions = this.data.actions) !== null && _this$data$actions !== void 0 && _this$data$actions[eventName]) { + this._setEventListener(element, baseName, eventName, getter); + } + } + } + _setBackgroundColor(element) { + const color = this.data.backgroundColor || null; + element.style.backgroundColor = color === null ? "transparent" : _util.Util.makeHexColor(color[0], color[1], color[2]); + } + _setTextStyle(element) { + const TEXT_ALIGNMENT = ["left", "center", "right"]; + const { + fontColor + } = this.data.defaultAppearanceData; + const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE; + const style = element.style; + let computedFontSize; + const BORDER_SIZE = 2; + const roundToOneDecimal = x => Math.round(10 * x) / 10; + if (this.data.multiLine) { + const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); + const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1; + const lineHeight = height / numberOfLines; + computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR)); + } else { + const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); + computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR)); + } + style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`; + style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); + if (this.data.textAlignment !== null) { + style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + } + _setRequired(element, isRequired) { + if (isRequired) { + element.setAttribute("required", true); + } else { + element.removeAttribute("required"); + } + element.setAttribute("aria-required", isRequired); + } +} +class TextWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + super(parameters, { + isRenderable + }); + } + setPropertyOnSiblings(base, key, value, keyInStorage) { + const storage = this.annotationStorage; + for (const element of this._getElementsByName(base.name, base.id)) { + if (element.domElement) { + element.domElement[key] = value; + } + storage.setValue(element.id, { + [keyInStorage]: value + }); + } + } + render() { + const storage = this.annotationStorage; + const id = this.data.id; + this.container.className = "textWidgetAnnotation"; + let element = null; + if (this.renderForms) { + const storedData = storage.getValue(id, { + value: this.data.fieldValue + }); + let textContent = storedData.formattedValue || storedData.value || ""; + const maxLen = storage.getValue(id, { + charLimit: this.data.maxLen + }).charLimit; + if (maxLen && textContent.length > maxLen) { + textContent = textContent.slice(0, maxLen); + } + const elementData = { + userValue: textContent, + formattedValue: null, + valueOnFocus: "" + }; + if (this.data.multiLine) { + element = document.createElement("textarea"); + element.textContent = textContent; + if (this.data.doNotScroll) { + element.style.overflowY = "hidden"; + } + } else { + element = document.createElement("input"); + element.type = "text"; + element.setAttribute("value", textContent); + if (this.data.doNotScroll) { + element.style.overflowX = "hidden"; + } + } + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = this.data.readOnly; + element.name = this.data.fieldName; + element.tabIndex = DEFAULT_TAB_INDEX; + this._setRequired(element, this.data.required); + if (maxLen) { + element.maxLength = maxLen; + } + element.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + this.setPropertyOnSiblings(element, "value", event.target.value, "value"); + }); + element.addEventListener("resetform", event => { + const defaultValue = this.data.defaultFieldValue ?? ""; + element.value = elementData.userValue = defaultValue; + elementData.formattedValue = null; + }); + let blurListener = event => { + const { + formattedValue + } = elementData; + if (formattedValue !== null && formattedValue !== undefined) { + event.target.value = formattedValue; + } + event.target.scrollLeft = 0; + }; + if (this.enableScripting && this.hasJSActions) { + var _this$data$actions2; + element.addEventListener("focus", event => { + if (elementData.userValue) { + event.target.value = elementData.userValue; + } + elementData.valueOnFocus = event.target.value; + }); + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + elementData.userValue = event.detail.value ?? ""; + storage.setValue(id, { + value: elementData.userValue.toString() + }); + event.target.value = elementData.userValue; + }, + formattedValue(event) { + const { + formattedValue + } = event.detail; + elementData.formattedValue = formattedValue; + if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) { + event.target.value = formattedValue; + } + storage.setValue(id, { + formattedValue + }); + }, + selRange(event) { + event.target.setSelectionRange(...event.detail.selRange); + }, + charLimit: event => { + var _this$linkService$eve5; + const { + charLimit + } = event.detail; + const { + target + } = event; + if (charLimit === 0) { + target.removeAttribute("maxLength"); + return; + } + target.setAttribute("maxLength", charLimit); + let value = elementData.userValue; + if (!value || value.length <= charLimit) { + return; + } + value = value.slice(0, charLimit); + target.value = elementData.userValue = value; + storage.setValue(id, { + value + }); + (_this$linkService$eve5 = this.linkService.eventBus) === null || _this$linkService$eve5 === void 0 ? void 0 : _this$linkService$eve5.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey: 1, + selStart: target.selectionStart, + selEnd: target.selectionEnd + } + }); + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + element.addEventListener("keydown", event => { + var _this$linkService$eve6; + let commitKey = -1; + if (event.key === "Escape") { + commitKey = 0; + } else if (event.key === "Enter" && !this.data.multiLine) { + commitKey = 2; + } else if (event.key === "Tab") { + commitKey = 3; + } + if (commitKey === -1) { + return; + } + const { + value + } = event.target; + if (elementData.valueOnFocus === value) { + return; + } + elementData.userValue = value; + (_this$linkService$eve6 = this.linkService.eventBus) === null || _this$linkService$eve6 === void 0 ? void 0 : _this$linkService$eve6.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + }); + const _blurListener = blurListener; + blurListener = null; + element.addEventListener("blur", event => { + const { + value + } = event.target; + elementData.userValue = value; + if (this._mouseState.isDown && elementData.valueOnFocus !== value) { + var _this$linkService$eve7; + (_this$linkService$eve7 = this.linkService.eventBus) === null || _this$linkService$eve7 === void 0 ? void 0 : _this$linkService$eve7.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey: 1, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + } + _blurListener(event); + }); + if ((_this$data$actions2 = this.data.actions) !== null && _this$data$actions2 !== void 0 && _this$data$actions2.Keystroke) { + element.addEventListener("beforeinput", event => { + var _this$linkService$eve8; + const { + data, + target + } = event; + const { + value, + selectionStart, + selectionEnd + } = target; + let selStart = selectionStart, + selEnd = selectionEnd; + switch (event.inputType) { + case "deleteWordBackward": + { + const match = value.substring(0, selectionStart).match(/\w*[^\w]*$/); + if (match) { + selStart -= match[0].length; + } + break; + } + case "deleteWordForward": + { + const match = value.substring(selectionStart).match(/^[^\w]*\w*/); + if (match) { + selEnd += match[0].length; + } + break; + } + case "deleteContentBackward": + if (selectionStart === selectionEnd) { + selStart -= 1; + } + break; + case "deleteContentForward": + if (selectionStart === selectionEnd) { + selEnd += 1; + } + break; + } + event.preventDefault(); + (_this$linkService$eve8 = this.linkService.eventBus) === null || _this$linkService$eve8 === void 0 ? void 0 : _this$linkService$eve8.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + change: data || "", + willCommit: false, + selStart, + selEnd + } + }); + }); + } + this._setEventListeners(element, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.value); + } + if (blurListener) { + element.addEventListener("blur", blurListener); + } + if (this.data.comb) { + const fieldWidth = this.data.rect[2] - this.data.rect[0]; + const combWidth = fieldWidth / maxLen; + element.classList.add("comb"); + element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`; + } + } else { + element = document.createElement("div"); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = "middle"; + element.style.display = "table-cell"; + } + this._setTextStyle(element); + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.exportValue === data.fieldValue + }).value; + if (typeof value === "string") { + value = value !== "Off"; + storage.setValue(id, { + value + }); + } + this.container.className = "buttonWidgetAnnotation checkBox"; + const element = document.createElement("input"); + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = data.readOnly; + this._setRequired(element, this.data.required); + element.type = "checkbox"; + element.name = data.fieldName; + if (value) { + element.setAttribute("checked", true); + } + element.setAttribute("exportValue", data.exportValue); + element.tabIndex = DEFAULT_TAB_INDEX; + element.addEventListener("change", event => { + const { + name, + checked + } = event.target; + for (const checkbox of this._getElementsByName(name, id)) { + const curChecked = checked && checkbox.exportValue === data.exportValue; + if (checkbox.domElement) { + checkbox.domElement.checked = curChecked; + } + storage.setValue(checkbox.id, { + value: curChecked + }); + } + storage.setValue(id, { + value: checked + }); + }); + element.addEventListener("resetform", event => { + const defaultValue = data.defaultFieldValue || "Off"; + event.target.checked = defaultValue === data.exportValue; + }); + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + event.target.checked = event.detail.value !== "Off"; + storage.setValue(id, { + value: event.target.checked + }); + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + this.container.className = "buttonWidgetAnnotation radioButton"; + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.fieldValue === data.buttonValue + }).value; + if (typeof value === "string") { + value = value !== data.buttonValue; + storage.setValue(id, { + value + }); + } + const element = document.createElement("input"); + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = data.readOnly; + this._setRequired(element, this.data.required); + element.type = "radio"; + element.name = data.fieldName; + if (value) { + element.setAttribute("checked", true); + } + element.tabIndex = DEFAULT_TAB_INDEX; + element.addEventListener("change", event => { + const { + name, + checked + } = event.target; + for (const radio of this._getElementsByName(name, id)) { + storage.setValue(radio.id, { + value: false + }); + } + storage.setValue(id, { + value: checked + }); + }); + element.addEventListener("resetform", event => { + const defaultValue = data.defaultFieldValue; + event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue; + }); + if (this.enableScripting && this.hasJSActions) { + const pdfButtonValue = data.buttonValue; + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value: event => { + const checked = pdfButtonValue === event.detail.value; + for (const radio of this._getElementsByName(event.target.name)) { + const curChecked = checked && radio.id === id; + if (radio.domElement) { + radio.domElement.checked = curChecked; + } + storage.setValue(radio.id, { + value: curChecked + }); + } + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { + constructor(parameters) { + super(parameters, { + ignoreBorder: parameters.data.hasAppearance + }); + } + render() { + const container = super.render(); + container.className = "buttonWidgetAnnotation pushButton"; + if (this.data.alternativeText) { + container.title = this.data.alternativeText; + } + const linkElement = container.lastChild; + if (this.enableScripting && this.hasJSActions && linkElement) { + this._setDefaultPropertiesFromJS(linkElement); + linkElement.addEventListener("updatefromsandbox", jsEvent => { + this._dispatchEventFromSandbox({}, jsEvent); + }); + } + return container; + } +} +class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + this.container.className = "choiceWidgetAnnotation"; + const storage = this.annotationStorage; + const id = this.data.id; + const storedData = storage.getValue(id, { + value: this.data.fieldValue + }); + const selectElement = document.createElement("select"); + GetElementsByNameSet.add(selectElement); + selectElement.setAttribute("data-element-id", id); + selectElement.disabled = this.data.readOnly; + this._setRequired(selectElement, this.data.required); + selectElement.name = this.data.fieldName; + selectElement.tabIndex = DEFAULT_TAB_INDEX; + let addAnEmptyEntry = this.data.combo && this.data.options.length > 0; + if (!this.data.combo) { + selectElement.size = this.data.options.length; + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + selectElement.addEventListener("resetform", event => { + const defaultValue = this.data.defaultFieldValue; + for (const option of selectElement.options) { + option.selected = option.value === defaultValue; + } + }); + for (const option of this.data.options) { + const optionElement = document.createElement("option"); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + if (storedData.value.includes(option.exportValue)) { + optionElement.setAttribute("selected", true); + addAnEmptyEntry = false; + } + selectElement.append(optionElement); + } + let removeEmptyEntry = null; + if (addAnEmptyEntry) { + const noneOptionElement = document.createElement("option"); + noneOptionElement.value = " "; + noneOptionElement.setAttribute("hidden", true); + noneOptionElement.setAttribute("selected", true); + selectElement.prepend(noneOptionElement); + removeEmptyEntry = () => { + noneOptionElement.remove(); + selectElement.removeEventListener("input", removeEmptyEntry); + removeEmptyEntry = null; + }; + selectElement.addEventListener("input", removeEmptyEntry); + } + const getValue = (event, isExport) => { + const name = isExport ? "value" : "textContent"; + const options = event.target.options; + if (!event.target.multiple) { + return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; + } + return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]); + }; + const getItems = event => { + const options = event.target.options; + return Array.prototype.map.call(options, option => { + return { + displayValue: option.textContent, + exportValue: option.value + }; + }); + }; + if (this.enableScripting && this.hasJSActions) { + selectElement.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + var _removeEmptyEntry; + (_removeEmptyEntry = removeEmptyEntry) === null || _removeEmptyEntry === void 0 ? void 0 : _removeEmptyEntry(); + const value = event.detail.value; + const values = new Set(Array.isArray(value) ? value : [value]); + for (const option of selectElement.options) { + option.selected = values.has(option.value); + } + storage.setValue(id, { + value: getValue(event, true) + }); + }, + multipleSelection(event) { + selectElement.multiple = true; + }, + remove(event) { + const options = selectElement.options; + const index = event.detail.remove; + options[index].selected = false; + selectElement.remove(index); + if (options.length > 0) { + const i = Array.prototype.findIndex.call(options, option => option.selected); + if (i === -1) { + options[0].selected = true; + } + } + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + clear(event) { + while (selectElement.length !== 0) { + selectElement.remove(0); + } + storage.setValue(id, { + value: null, + items: [] + }); + }, + insert(event) { + const { + index, + displayValue, + exportValue + } = event.detail.insert; + const selectChild = selectElement.children[index]; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + if (selectChild) { + selectChild.before(optionElement); + } else { + selectElement.append(optionElement); + } + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + items(event) { + const { + items + } = event.detail; + while (selectElement.length !== 0) { + selectElement.remove(0); + } + for (const item of items) { + const { + displayValue, + exportValue + } = item; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + selectElement.append(optionElement); + } + if (selectElement.options.length > 0) { + selectElement.options[0].selected = true; + } + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + indices(event) { + const indices = new Set(event.detail.indices); + for (const option of event.target.options) { + option.selected = indices.has(option.index); + } + storage.setValue(id, { + value: getValue(event, true) + }); + }, + editable(event) { + event.target.disabled = !event.detail.editable; + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + selectElement.addEventListener("input", event => { + var _this$linkService$eve9; + const exportValue = getValue(event, true); + const value = getValue(event, false); + storage.setValue(id, { + value: exportValue + }); + (_this$linkService$eve9 = this.linkService.eventBus) === null || _this$linkService$eve9 === void 0 ? void 0 : _this$linkService$eve9.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + changeEx: exportValue, + willCommit: true, + commitKey: 1, + keyDown: false + } + }); + }); + this._setEventListeners(selectElement, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"]], event => event.target.checked); + } else { + selectElement.addEventListener("input", function (event) { + storage.setValue(id, { + value: getValue(event, true) + }); + }); + } + if (this.data.combo) { + this._setTextStyle(selectElement); + } else {} + this._setBackgroundColor(selectElement); + this._setDefaultPropertiesFromJS(selectElement); + this.container.append(selectElement); + return this.container; + } +} +class PopupAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _data$titleObj, _data$contentsObj, _data$richText; + const { + data + } = parameters; + const isRenderable = !PopupAnnotationElement.IGNORE_TYPES.has(data.parentType) && !!((_data$titleObj = data.titleObj) !== null && _data$titleObj !== void 0 && _data$titleObj.str || (_data$contentsObj = data.contentsObj) !== null && _data$contentsObj !== void 0 && _data$contentsObj.str || (_data$richText = data.richText) !== null && _data$richText !== void 0 && _data$richText.str); + super(parameters, { + isRenderable + }); + } + render() { + this.container.className = "popupAnnotation"; + const parentElements = this.layer.querySelectorAll(`[data-annotation-id="${this.data.parentId}"]`); + if (parentElements.length === 0) { + return this.container; + } + const popup = new PopupElement({ + container: this.container, + trigger: Array.from(parentElements), + color: this.data.color, + titleObj: this.data.titleObj, + modificationDate: this.data.modificationDate, + contentsObj: this.data.contentsObj, + richText: this.data.richText + }); + const page = this.page; + const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]); + const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0]; + const popupTop = rect[1]; + const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox; + const pageWidth = pageURx - pageLLx; + const pageHeight = pageURy - pageLLy; + this.container.style.left = `${100 * (popupLeft - pageLLx) / pageWidth}%`; + this.container.style.top = `${100 * (popupTop - pageLLy) / pageHeight}%`; + this.container.append(popup.render()); + return this.container; + } +} +_defineProperty(PopupAnnotationElement, "IGNORE_TYPES", new Set(["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"])); +class PopupElement { + constructor(parameters) { + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.titleObj = parameters.titleObj; + this.modificationDate = parameters.modificationDate; + this.contentsObj = parameters.contentsObj; + this.richText = parameters.richText; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + render() { + var _this$richText, _this$contentsObj; + const BACKGROUND_ENLIGHT = 0.7; + const wrapper = document.createElement("div"); + wrapper.className = "popupWrapper"; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.hidden = true; + const popup = document.createElement("div"); + popup.className = "popup"; + const color = this.color; + if (color) { + const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0); + } + const title = document.createElement("h1"); + title.dir = this.titleObj.dir; + title.textContent = this.titleObj.str; + popup.append(title); + const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); + if (dateObject) { + const modificationDate = document.createElement("span"); + modificationDate.className = "popupDate"; + modificationDate.textContent = "{{date}}, {{time}}"; + modificationDate.dataset.l10nId = "annotation_date_string"; + modificationDate.dataset.l10nArgs = JSON.stringify({ + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + popup.append(modificationDate); + } + if ((_this$richText = this.richText) !== null && _this$richText !== void 0 && _this$richText.str && (!((_this$contentsObj = this.contentsObj) !== null && _this$contentsObj !== void 0 && _this$contentsObj.str) || this.contentsObj.str === this.richText.str)) { + _xfa_layer.XfaLayer.render({ + xfaHtml: this.richText.html, + intent: "richText", + div: popup + }); + popup.lastChild.className = "richText popupContent"; + } else { + const contents = this._formatContents(this.contentsObj); + popup.append(contents); + } + if (!Array.isArray(this.trigger)) { + this.trigger = [this.trigger]; + } + for (const element of this.trigger) { + element.addEventListener("click", this._toggle.bind(this)); + element.addEventListener("mouseover", this._show.bind(this, false)); + element.addEventListener("mouseout", this._hide.bind(this, false)); + } + popup.addEventListener("click", this._hide.bind(this, true)); + wrapper.append(popup); + return wrapper; + } + _formatContents(_ref) { + let { + str, + dir + } = _ref; + const p = document.createElement("p"); + p.className = "popupContent"; + p.dir = dir; + const lines = str.split(/(?:\r\n?|\n)/); + for (let i = 0, ii = lines.length; i < ii; ++i) { + const line = lines[i]; + p.append(document.createTextNode(line)); + if (i < ii - 1) { + p.append(document.createElement("br")); + } + } + return p; + } + _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } + } + _show() { + let pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (pin) { + this.pinned = true; + } + if (this.hideElement.hidden) { + this.hideElement.hidden = false; + this.container.style.zIndex = parseInt(this.container.style.zIndex) + 1000; + } + } + _hide() { + let unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + if (unpin) { + this.pinned = false; + } + if (!this.hideElement.hidden && !this.pinned) { + this.hideElement.hidden = true; + this.container.style.zIndex = parseInt(this.container.style.zIndex) - 1000; + } + } +} +class FreeTextAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl2, _parameters$data$cont2, _parameters$data$rich2; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl2 = parameters.data.titleObj) !== null && _parameters$data$titl2 !== void 0 && _parameters$data$titl2.str || (_parameters$data$cont2 = parameters.data.contentsObj) !== null && _parameters$data$cont2 !== void 0 && _parameters$data$cont2.str || (_parameters$data$rich2 = parameters.data.richText) !== null && _parameters$data$rich2 !== void 0 && _parameters$data$rich2.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.textContent = parameters.data.textContent; + } + render() { + this.container.className = "freeTextAnnotation"; + if (this.textContent) { + const content = document.createElement("div"); + content.className = "annotationTextContent"; + content.setAttribute("role", "comment"); + for (const line of this.textContent) { + const lineSpan = document.createElement("span"); + lineSpan.textContent = line; + content.append(lineSpan); + } + this.container.append(content); + } + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + return this.container; + } +} +class LineAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl3, _parameters$data$cont3, _parameters$data$rich3; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl3 = parameters.data.titleObj) !== null && _parameters$data$titl3 !== void 0 && _parameters$data$titl3.str || (_parameters$data$cont3 = parameters.data.contentsObj) !== null && _parameters$data$cont3 !== void 0 && _parameters$data$cont3.str || (_parameters$data$rich3 = parameters.data.richText) !== null && _parameters$data$rich3 !== void 0 && _parameters$data$rich3.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + render() { + this.container.className = "lineAnnotation"; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const line = this.svgFactory.createElement("svg:line"); + line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); + line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); + line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); + line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); + line.setAttribute("stroke-width", data.borderStyle.width || 1); + line.setAttribute("stroke", "transparent"); + line.setAttribute("fill", "transparent"); + svg.append(line); + this.container.append(svg); + this._createPopup(line, data); + return this.container; + } +} +class SquareAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl4, _parameters$data$cont4, _parameters$data$rich4; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl4 = parameters.data.titleObj) !== null && _parameters$data$titl4 !== void 0 && _parameters$data$titl4.str || (_parameters$data$cont4 = parameters.data.contentsObj) !== null && _parameters$data$cont4 !== void 0 && _parameters$data$cont4.str || (_parameters$data$rich4 = parameters.data.richText) !== null && _parameters$data$rich4 !== void 0 && _parameters$data$rich4.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + render() { + this.container.className = "squareAnnotation"; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const borderWidth = data.borderStyle.width; + const square = this.svgFactory.createElement("svg:rect"); + square.setAttribute("x", borderWidth / 2); + square.setAttribute("y", borderWidth / 2); + square.setAttribute("width", width - borderWidth); + square.setAttribute("height", height - borderWidth); + square.setAttribute("stroke-width", borderWidth || 1); + square.setAttribute("stroke", "transparent"); + square.setAttribute("fill", "transparent"); + svg.append(square); + this.container.append(svg); + this._createPopup(square, data); + return this.container; + } +} +class CircleAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl5, _parameters$data$cont5, _parameters$data$rich5; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl5 = parameters.data.titleObj) !== null && _parameters$data$titl5 !== void 0 && _parameters$data$titl5.str || (_parameters$data$cont5 = parameters.data.contentsObj) !== null && _parameters$data$cont5 !== void 0 && _parameters$data$cont5.str || (_parameters$data$rich5 = parameters.data.richText) !== null && _parameters$data$rich5 !== void 0 && _parameters$data$rich5.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + render() { + this.container.className = "circleAnnotation"; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const borderWidth = data.borderStyle.width; + const circle = this.svgFactory.createElement("svg:ellipse"); + circle.setAttribute("cx", width / 2); + circle.setAttribute("cy", height / 2); + circle.setAttribute("rx", width / 2 - borderWidth / 2); + circle.setAttribute("ry", height / 2 - borderWidth / 2); + circle.setAttribute("stroke-width", borderWidth || 1); + circle.setAttribute("stroke", "transparent"); + circle.setAttribute("fill", "transparent"); + svg.append(circle); + this.container.append(svg); + this._createPopup(circle, data); + return this.container; + } +} +class PolylineAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl6, _parameters$data$cont6, _parameters$data$rich6; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl6 = parameters.data.titleObj) !== null && _parameters$data$titl6 !== void 0 && _parameters$data$titl6.str || (_parameters$data$cont6 = parameters.data.contentsObj) !== null && _parameters$data$cont6 !== void 0 && _parameters$data$cont6.str || (_parameters$data$rich6 = parameters.data.richText) !== null && _parameters$data$rich6 !== void 0 && _parameters$data$rich6.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "polylineAnnotation"; + this.svgElementName = "svg:polyline"; + } + render() { + this.container.className = this.containerClassName; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + let points = []; + for (const coordinate of data.vertices) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(x + "," + y); + } + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "transparent"); + svg.append(polyline); + this.container.append(svg); + this._createPopup(polyline, data); + return this.container; + } +} +class PolygonAnnotationElement extends PolylineAnnotationElement { + constructor(parameters) { + super(parameters); + this.containerClassName = "polygonAnnotation"; + this.svgElementName = "svg:polygon"; + } +} +class CaretAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl7, _parameters$data$cont7, _parameters$data$rich7; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl7 = parameters.data.titleObj) !== null && _parameters$data$titl7 !== void 0 && _parameters$data$titl7.str || (_parameters$data$cont7 = parameters.data.contentsObj) !== null && _parameters$data$cont7 !== void 0 && _parameters$data$cont7.str || (_parameters$data$rich7 = parameters.data.richText) !== null && _parameters$data$rich7 !== void 0 && _parameters$data$rich7.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + render() { + this.container.className = "caretAnnotation"; + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + return this.container; + } +} +class InkAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl8, _parameters$data$cont8, _parameters$data$rich8; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl8 = parameters.data.titleObj) !== null && _parameters$data$titl8 !== void 0 && _parameters$data$titl8.str || (_parameters$data$cont8 = parameters.data.contentsObj) !== null && _parameters$data$cont8 !== void 0 && _parameters$data$cont8.str || (_parameters$data$rich8 = parameters.data.richText) !== null && _parameters$data$rich8 !== void 0 && _parameters$data$rich8.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "inkAnnotation"; + this.svgElementName = "svg:polyline"; + } + render() { + this.container.className = this.containerClassName; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + for (const inkList of data.inkLists) { + let points = []; + for (const coordinate of inkList) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(`${x},${y}`); + } + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "transparent"); + this._createPopup(polyline, data); + svg.append(polyline); + } + this.container.append(svg); + return this.container; + } +} +class HighlightAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl9, _parameters$data$cont9, _parameters$data$rich9; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl9 = parameters.data.titleObj) !== null && _parameters$data$titl9 !== void 0 && _parameters$data$titl9.str || (_parameters$data$cont9 = parameters.data.contentsObj) !== null && _parameters$data$cont9 !== void 0 && _parameters$data$cont9.str || (_parameters$data$rich9 = parameters.data.richText) !== null && _parameters$data$rich9 !== void 0 && _parameters$data$rich9.str); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("highlightAnnotation"); + } + this.container.className = "highlightAnnotation"; + return this.container; + } +} +class UnderlineAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl10, _parameters$data$cont10, _parameters$data$rich10; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl10 = parameters.data.titleObj) !== null && _parameters$data$titl10 !== void 0 && _parameters$data$titl10.str || (_parameters$data$cont10 = parameters.data.contentsObj) !== null && _parameters$data$cont10 !== void 0 && _parameters$data$cont10.str || (_parameters$data$rich10 = parameters.data.richText) !== null && _parameters$data$rich10 !== void 0 && _parameters$data$rich10.str); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("underlineAnnotation"); + } + this.container.className = "underlineAnnotation"; + return this.container; + } +} +class SquigglyAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl11, _parameters$data$cont11, _parameters$data$rich11; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl11 = parameters.data.titleObj) !== null && _parameters$data$titl11 !== void 0 && _parameters$data$titl11.str || (_parameters$data$cont11 = parameters.data.contentsObj) !== null && _parameters$data$cont11 !== void 0 && _parameters$data$cont11.str || (_parameters$data$rich11 = parameters.data.richText) !== null && _parameters$data$rich11 !== void 0 && _parameters$data$rich11.str); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("squigglyAnnotation"); + } + this.container.className = "squigglyAnnotation"; + return this.container; + } +} +class StrikeOutAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl12, _parameters$data$cont12, _parameters$data$rich12; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl12 = parameters.data.titleObj) !== null && _parameters$data$titl12 !== void 0 && _parameters$data$titl12.str || (_parameters$data$cont12 = parameters.data.contentsObj) !== null && _parameters$data$cont12 !== void 0 && _parameters$data$cont12.str || (_parameters$data$rich12 = parameters.data.richText) !== null && _parameters$data$rich12 !== void 0 && _parameters$data$rich12.str); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("strikeoutAnnotation"); + } + this.container.className = "strikeoutAnnotation"; + return this.container; + } +} +class StampAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl13, _parameters$data$cont13, _parameters$data$rich13; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl13 = parameters.data.titleObj) !== null && _parameters$data$titl13 !== void 0 && _parameters$data$titl13.str || (_parameters$data$cont13 = parameters.data.contentsObj) !== null && _parameters$data$cont13 !== void 0 && _parameters$data$cont13.str || (_parameters$data$rich13 = parameters.data.richText) !== null && _parameters$data$rich13 !== void 0 && _parameters$data$rich13.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + render() { + this.container.className = "stampAnnotation"; + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + return this.container; + } +} +class FileAttachmentAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _this$linkService$eve10; + super(parameters, { + isRenderable: true + }); + const { + filename, + content + } = this.data.file; + this.filename = (0, _display_utils.getFilenameFromUrl)(filename); + this.content = content; + (_this$linkService$eve10 = this.linkService.eventBus) === null || _this$linkService$eve10 === void 0 ? void 0 : _this$linkService$eve10.dispatch("fileattachmentannotation", { + source: this, + filename, + content + }); + } + render() { + var _this$data$titleObj, _this$data$contentsOb; + this.container.className = "fileAttachmentAnnotation"; + const trigger = document.createElement("div"); + trigger.className = "popupTriggerArea"; + trigger.addEventListener("dblclick", this._download.bind(this)); + if (!this.data.hasPopup && ((_this$data$titleObj = this.data.titleObj) !== null && _this$data$titleObj !== void 0 && _this$data$titleObj.str || (_this$data$contentsOb = this.data.contentsObj) !== null && _this$data$contentsOb !== void 0 && _this$data$contentsOb.str || this.data.richText)) { + this._createPopup(trigger, this.data); + } + this.container.append(trigger); + return this.container; + } + _download() { + var _this$downloadManager2; + (_this$downloadManager2 = this.downloadManager) === null || _this$downloadManager2 === void 0 ? void 0 : _this$downloadManager2.openOrDownloadData(this.container, this.content, this.filename); + } +} +class AnnotationLayer { + static render(parameters) { + const { + annotations, + div, + viewport, + accessibilityManager + } = parameters; + _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport); + let zIndex = 0; + for (const data of annotations) { + if (data.annotationType !== _util.AnnotationType.POPUP) { + const { + width, + height + } = getRectDims(data.rect); + if (width <= 0 || height <= 0) { + continue; + } + } + const element = AnnotationElementFactory.create({ + data, + layer: div, + page: parameters.page, + viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || "", + renderForms: parameters.renderForms !== false, + svgFactory: new _display_utils.DOMSVGFactory(), + annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(), + enableScripting: parameters.enableScripting, + hasJSActions: parameters.hasJSActions, + fieldObjects: parameters.fieldObjects, + mouseState: parameters.mouseState || { + isDown: false + } + }); + if (element.isRenderable) { + const rendered = element.render(); + if (data.hidden) { + rendered.style.visibility = "hidden"; + } + if (Array.isArray(rendered)) { + for (const renderedElement of rendered) { + renderedElement.style.zIndex = zIndex++; + _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, renderedElement, data.id, div, accessibilityManager); + } + } else { + rendered.style.zIndex = zIndex++; + if (element instanceof PopupAnnotationElement) { + div.prepend(rendered); + } else { + _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, rendered, data.id, div, accessibilityManager); + } + } + } + } + _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, parameters.annotationCanvasMap); + } + static update(parameters) { + const { + annotationCanvasMap, + div, + viewport + } = parameters; + _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport); + _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, annotationCanvasMap); + div.hidden = false; + } +} +exports.AnnotationLayer = AnnotationLayer; +function _appendElement(element, id, div, accessibilityManager) { + const contentElement = element.firstChild || element; + contentElement.id = `${_display_utils.AnnotationPrefix}${id}`; + div.append(element); + accessibilityManager === null || accessibilityManager === void 0 ? void 0 : accessibilityManager.moveElementInDOM(div, element, contentElement, false); +} +function _setDimensions(div, _ref2) { + let { + width, + height, + rotation + } = _ref2; + const { + style + } = div; + const flipOrientation = rotation % 180 !== 0, + widthStr = Math.floor(width) + "px", + heightStr = Math.floor(height) + "px"; + style.width = flipOrientation ? heightStr : widthStr; + style.height = flipOrientation ? widthStr : heightStr; + div.setAttribute("data-main-rotation", rotation); +} +function _setAnnotationCanvasMap(div, annotationCanvasMap) { + if (!annotationCanvasMap) { + return; + } + for (const [id, canvas] of annotationCanvasMap) { + const element = div.querySelector(`[data-annotation-id="${id}"]`); + if (!element) { + continue; + } + const { + firstChild + } = element; + if (!firstChild) { + element.append(canvas); + } else if (firstChild.nodeName === "CANVAS") { + firstChild.replaceWith(canvas); + } else { + firstChild.before(canvas); + } + } + annotationCanvasMap.clear(); +} + +/***/ }), +/* 157 */ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ColorConverters = void 0; +function makeColorComp(n) { + return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); +} +class ColorConverters { + static CMYK_G(_ref) { + let [c, y, m, k] = _ref; + return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; + } + static G_CMYK(_ref2) { + let [g] = _ref2; + return ["CMYK", 0, 0, 0, 1 - g]; + } + static G_RGB(_ref3) { + let [g] = _ref3; + return ["RGB", g, g, g]; + } + static G_HTML(_ref4) { + let [g] = _ref4; + const G = makeColorComp(g); + return `#${G}${G}${G}`; + } + static RGB_G(_ref5) { + let [r, g, b] = _ref5; + return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; + } + static RGB_HTML(_ref6) { + let [r, g, b] = _ref6; + const R = makeColorComp(r); + const G = makeColorComp(g); + const B = makeColorComp(b); + return `#${R}${G}${B}`; + } + static T_HTML() { + return "#00000000"; + } + static CMYK_RGB(_ref7) { + let [c, y, m, k] = _ref7; + return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; + } + static CMYK_HTML(components) { + const rgb = this.CMYK_RGB(components).slice(1); + return this.RGB_HTML(rgb); + } + static RGB_CMYK(_ref8) { + let [r, g, b] = _ref8; + const c = 1 - r; + const m = 1 - g; + const y = 1 - b; + const k = Math.min(c, m, y); + return ["CMYK", c, m, y, k]; + } +} +exports.ColorConverters = ColorConverters; + +/***/ }), +/* 158 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaLayer = void 0; +var _xfa_text = __w_pdfjs_require__(149); +class XfaLayer { + static setupStorage(html, id, element, storage, intent) { + const storedData = storage.getValue(id, { + value: null + }); + switch (element.name) { + case "textarea": + if (storedData.value !== null) { + html.textContent = storedData.value; + } + if (intent === "print") { + break; + } + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + break; + case "input": + if (element.attributes.type === "radio" || element.attributes.type === "checkbox") { + if (storedData.value === element.attributes.xfaOn) { + html.setAttribute("checked", true); + } else if (storedData.value === element.attributes.xfaOff) { + html.removeAttribute("checked"); + } + if (intent === "print") { + break; + } + html.addEventListener("change", event => { + storage.setValue(id, { + value: event.target.checked ? event.target.getAttribute("xfaOn") : event.target.getAttribute("xfaOff") + }); + }); + } else { + if (storedData.value !== null) { + html.setAttribute("value", storedData.value); + } + if (intent === "print") { + break; + } + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + } + break; + case "select": + if (storedData.value !== null) { + for (const option of element.children) { + if (option.attributes.value === storedData.value) { + option.attributes.selected = true; + } + } + } + html.addEventListener("input", event => { + const options = event.target.options; + const value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value; + storage.setValue(id, { + value + }); + }); + break; + } + } + static setAttributes(_ref) { + let { + html, + element, + storage = null, + intent, + linkService + } = _ref; + const { + attributes + } = element; + const isHTMLAnchorElement = html instanceof HTMLAnchorElement; + if (attributes.type === "radio") { + attributes.name = `${attributes.name}-${intent}`; + } + for (const [key, value] of Object.entries(attributes)) { + if (value === null || value === undefined) { + continue; + } + switch (key) { + case "class": + if (value.length) { + html.setAttribute(key, value.join(" ")); + } + break; + case "dataId": + break; + case "id": + html.setAttribute("data-element-id", value); + break; + case "style": + Object.assign(html.style, value); + break; + case "textContent": + html.textContent = value; + break; + default: + if (!isHTMLAnchorElement || key !== "href" && key !== "newWindow") { + html.setAttribute(key, value); + } + } + } + if (isHTMLAnchorElement) { + linkService.addLinkAttributes(html, attributes.href, attributes.newWindow); + } + if (storage && attributes.dataId) { + this.setupStorage(html, attributes.dataId, element, storage); + } + } + static render(parameters) { + const storage = parameters.annotationStorage; + const linkService = parameters.linkService; + const root = parameters.xfaHtml; + const intent = parameters.intent || "display"; + const rootHtml = document.createElement(root.name); + if (root.attributes) { + this.setAttributes({ + html: rootHtml, + element: root, + intent, + linkService + }); + } + const stack = [[root, -1, rootHtml]]; + const rootDiv = parameters.div; + rootDiv.append(rootHtml); + if (parameters.viewport) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + rootDiv.style.transform = transform; + } + if (intent !== "richText") { + rootDiv.setAttribute("class", "xfaLayer xfaFont"); + } + const textDivs = []; + while (stack.length > 0) { + var _child$attributes; + const [parent, i, html] = stack.at(-1); + if (i + 1 === parent.children.length) { + stack.pop(); + continue; + } + const child = parent.children[++stack.at(-1)[1]]; + if (child === null) { + continue; + } + const { + name + } = child; + if (name === "#text") { + const node = document.createTextNode(child.value); + textDivs.push(node); + html.append(node); + continue; + } + let childHtml; + if (child !== null && child !== void 0 && (_child$attributes = child.attributes) !== null && _child$attributes !== void 0 && _child$attributes.xmlns) { + childHtml = document.createElementNS(child.attributes.xmlns, name); + } else { + childHtml = document.createElement(name); + } + html.append(childHtml); + if (child.attributes) { + this.setAttributes({ + html: childHtml, + element: child, + storage, + intent, + linkService + }); + } + if (child.children && child.children.length > 0) { + stack.push([child, -1, childHtml]); + } else if (child.value) { + const node = document.createTextNode(child.value); + if (_xfa_text.XfaText.shouldBuildText(name)) { + textDivs.push(node); + } + childHtml.append(node); + } + } + for (const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) { + el.setAttribute("readOnly", true); + } + return { + textDivs + }; + } + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + parameters.div.style.transform = transform; + parameters.div.hidden = false; + } +} +exports.XfaLayer = XfaLayer; + +/***/ }), +/* 159 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerRenderTask = void 0; +exports.renderTextLayer = renderTextLayer; +var _util = __w_pdfjs_require__(1); +const MAX_TEXT_DIVS_TO_RENDER = 100000; +const DEFAULT_FONT_SIZE = 30; +const DEFAULT_FONT_ASCENT = 0.8; +const ascentCache = new Map(); +function getAscent(fontFamily, ctx) { + const cachedAscent = ascentCache.get(fontFamily); + if (cachedAscent) { + return cachedAscent; + } + ctx.save(); + ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`; + const metrics = ctx.measureText(""); + let ascent = metrics.fontBoundingBoxAscent; + let descent = Math.abs(metrics.fontBoundingBoxDescent); + if (ascent) { + ctx.restore(); + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; + } + ctx.strokeStyle = "red"; + ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); + ctx.strokeText("g", 0, 0); + let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + descent = 0; + for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) { + if (pixels[i] > 0) { + descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE); + break; + } + } + ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); + ctx.strokeText("A", 0, DEFAULT_FONT_SIZE); + pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + ascent = 0; + for (let i = 0, ii = pixels.length; i < ii; i += 4) { + if (pixels[i] > 0) { + ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE); + break; + } + } + ctx.restore(); + if (ascent) { + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; + } + ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT); + return DEFAULT_FONT_ASCENT; +} +function appendText(task, geom, styles, ctx) { + const textDiv = document.createElement("span"); + const textDivProperties = { + angle: 0, + canvasWidth: 0, + hasText: geom.str !== "", + hasEOL: geom.hasEOL, + fontSize: 0 + }; + task._textDivs.push(textDiv); + const tx = _util.Util.transform(task._viewport.transform, geom.transform); + let angle = Math.atan2(tx[1], tx[0]); + const style = styles[geom.fontName]; + if (style.vertical) { + angle += Math.PI / 2; + } + const fontHeight = Math.hypot(tx[2], tx[3]); + const fontAscent = fontHeight * getAscent(style.fontFamily, ctx); + let left, top; + if (angle === 0) { + left = tx[4]; + top = tx[5] - fontAscent; + } else { + left = tx[4] + fontAscent * Math.sin(angle); + top = tx[5] - fontAscent * Math.cos(angle); + } + textDiv.style.left = `${left}px`; + textDiv.style.top = `${top}px`; + textDiv.style.fontSize = `${fontHeight}px`; + textDiv.style.fontFamily = style.fontFamily; + textDivProperties.fontSize = fontHeight; + textDiv.setAttribute("role", "presentation"); + textDiv.textContent = geom.str; + textDiv.dir = geom.dir; + if (task._fontInspectorEnabled) { + textDiv.dataset.fontName = geom.fontName; + } + if (angle !== 0) { + textDivProperties.angle = angle * (180 / Math.PI); + } + let shouldScaleText = false; + if (geom.str.length > 1) { + shouldScaleText = true; + } else if (geom.str !== " " && geom.transform[0] !== geom.transform[3]) { + const absScaleX = Math.abs(geom.transform[0]), + absScaleY = Math.abs(geom.transform[3]); + if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) { + shouldScaleText = true; + } + } + if (shouldScaleText) { + if (style.vertical) { + textDivProperties.canvasWidth = geom.height * task._viewport.scale; + } else { + textDivProperties.canvasWidth = geom.width * task._viewport.scale; + } + } + task._textDivProperties.set(textDiv, textDivProperties); + if (task._textContentStream) { + task._layoutText(textDiv); + } +} +function render(task) { + if (task._canceled) { + return; + } + const textDivs = task._textDivs; + const capability = task._capability; + const textDivsLength = textDivs.length; + if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { + task._renderingDone = true; + capability.resolve(); + return; + } + if (!task._textContentStream) { + for (const textDiv of textDivs) { + task._layoutText(textDiv); + } + } + task._renderingDone = true; + capability.resolve(); +} +class TextLayerRenderTask { + constructor(_ref) { + var _globalThis$FontInspe; + let { + textContent, + textContentStream, + container, + viewport, + textDivs, + textContentItemsStr + } = _ref; + this._textContent = textContent; + this._textContentStream = textContentStream; + this._container = container; + this._document = container.ownerDocument; + this._viewport = viewport; + this._textDivs = textDivs || []; + this._textContentItemsStr = textContentItemsStr || []; + this._fontInspectorEnabled = !!((_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled); + this._reader = null; + this._layoutTextLastFontSize = null; + this._layoutTextLastFontFamily = null; + this._layoutTextCtx = null; + this._textDivProperties = new WeakMap(); + this._renderingDone = false; + this._canceled = false; + this._capability = (0, _util.createPromiseCapability)(); + this._renderTimer = null; + this._bounds = []; + this._devicePixelRatio = globalThis.devicePixelRatio || 1; + this._capability.promise.finally(() => { + this._textDivProperties = null; + if (this._layoutTextCtx) { + this._layoutTextCtx.canvas.width = 0; + this._layoutTextCtx.canvas.height = 0; + this._layoutTextCtx = null; + } + }).catch(() => {}); + } + get promise() { + return this._capability.promise; + } + cancel() { + this._canceled = true; + if (this._reader) { + this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")).catch(() => {}); + this._reader = null; + } + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; + } + this._capability.reject(new Error("TextLayer task cancelled.")); + } + _processItems(items, styleCache) { + for (const item of items) { + if (item.str === undefined) { + if (item.type === "beginMarkedContentProps" || item.type === "beginMarkedContent") { + const parent = this._container; + this._container = document.createElement("span"); + this._container.classList.add("markedContent"); + if (item.id !== null) { + this._container.setAttribute("id", `${item.id}`); + } + parent.append(this._container); + } else if (item.type === "endMarkedContent") { + this._container = this._container.parentNode; + } + continue; + } + this._textContentItemsStr.push(item.str); + appendText(this, item, styleCache, this._layoutTextCtx); + } + } + _layoutText(textDiv) { + const textDivProperties = this._textDivProperties.get(textDiv); + let transform = ""; + if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) { + const { + fontFamily + } = textDiv.style; + const { + fontSize + } = textDivProperties; + if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { + this._layoutTextCtx.font = `${fontSize * this._devicePixelRatio}px ${fontFamily}`; + this._layoutTextLastFontSize = fontSize; + this._layoutTextLastFontFamily = fontFamily; + } + const { + width + } = this._layoutTextCtx.measureText(textDiv.textContent); + if (width > 0) { + transform = `scaleX(${this._devicePixelRatio * textDivProperties.canvasWidth / width})`; + } + } + if (textDivProperties.angle !== 0) { + transform = `rotate(${textDivProperties.angle}deg) ${transform}`; + } + if (transform.length > 0) { + textDiv.style.transform = transform; + } + if (textDivProperties.hasText) { + this._container.append(textDiv); + } + if (textDivProperties.hasEOL) { + const br = document.createElement("br"); + br.setAttribute("role", "presentation"); + this._container.append(br); + } + } + _render() { + let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + const capability = (0, _util.createPromiseCapability)(); + let styleCache = Object.create(null); + const canvas = this._document.createElement("canvas"); + canvas.height = canvas.width = DEFAULT_FONT_SIZE; + this._layoutTextCtx = canvas.getContext("2d", { + alpha: false + }); + if (this._textContent) { + const textItems = this._textContent.items; + const textStyles = this._textContent.styles; + this._processItems(textItems, textStyles); + capability.resolve(); + } else if (this._textContentStream) { + const pump = () => { + this._reader.read().then(_ref2 => { + let { + value, + done + } = _ref2; + if (done) { + capability.resolve(); + return; + } + Object.assign(styleCache, value.styles); + this._processItems(value.items, styleCache); + pump(); + }, capability.reject); + }; + this._reader = this._textContentStream.getReader(); + pump(); + } else { + throw new Error('Neither "textContent" nor "textContentStream" parameters specified.'); + } + capability.promise.then(() => { + styleCache = null; + if (!timeout) { + render(this); + } else { + this._renderTimer = setTimeout(() => { + render(this); + this._renderTimer = null; + }, timeout); + } + }, this._capability.reject); + } +} +exports.TextLayerRenderTask = TextLayerRenderTask; +function renderTextLayer(renderParameters) { + const task = new TextLayerRenderTask({ + textContent: renderParameters.textContent, + textContentStream: renderParameters.textContentStream, + container: renderParameters.container, + viewport: renderParameters.viewport, + textDivs: renderParameters.textDivs, + textContentItemsStr: renderParameters.textContentItemsStr + }); + task._render(renderParameters.timeout); + return task; +} + +/***/ }), +/* 160 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SVGGraphics = void 0; +var _display_utils = __w_pdfjs_require__(137); +var _util = __w_pdfjs_require__(1); +var _is_node = __w_pdfjs_require__(3); +let SVGGraphics = class { + constructor() { + (0, _util.unreachable)("Not implemented: SVGGraphics"); + } +}; +exports.SVGGraphics = SVGGraphics; +{ + const SVG_DEFAULTS = { + fontStyle: "normal", + fontWeight: "normal", + fillColor: "#000000" + }; + const XML_NS = "http://www.w3.org/XML/1998/namespace"; + const XLINK_NS = "http://www.w3.org/1999/xlink"; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; + const createObjectURL = function (data) { + let contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (URL.createObjectURL && typeof Blob !== "undefined" && !forceDataSchema) { + return URL.createObjectURL(new Blob([data], { + type: contentType + })); + } + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let buffer = `data:${contentType};base64,`; + for (let i = 0, ii = data.length; i < ii; i += 3) { + const b1 = data[i] & 0xff; + const b2 = data[i + 1] & 0xff; + const b3 = data[i + 2] & 0xff; + const d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; + const d4 = i + 2 < ii ? b3 & 0x3f : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + return buffer; + }; + const convertImgDataToPng = function () { + const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + const CHUNK_WRAPPER_SIZE = 12; + const crcTable = new Int32Array(256); + for (let i = 0; i < 256; i++) { + let c = i; + for (let h = 0; h < 8; h++) { + if (c & 1) { + c = 0xedb88320 ^ c >> 1 & 0x7fffffff; + } else { + c = c >> 1 & 0x7fffffff; + } + } + crcTable[i] = c; + } + function crc32(data, start, end) { + let crc = -1; + for (let i = start; i < end; i++) { + const a = (crc ^ data[i]) & 0xff; + const b = crcTable[a]; + crc = crc >>> 8 ^ b; + } + return crc ^ -1; + } + function writePngChunk(type, body, data, offset) { + let p = offset; + const len = body.length; + data[p] = len >> 24 & 0xff; + data[p + 1] = len >> 16 & 0xff; + data[p + 2] = len >> 8 & 0xff; + data[p + 3] = len & 0xff; + p += 4; + data[p] = type.charCodeAt(0) & 0xff; + data[p + 1] = type.charCodeAt(1) & 0xff; + data[p + 2] = type.charCodeAt(2) & 0xff; + data[p + 3] = type.charCodeAt(3) & 0xff; + p += 4; + data.set(body, p); + p += body.length; + const crc = crc32(data, offset + 4, p); + data[p] = crc >> 24 & 0xff; + data[p + 1] = crc >> 16 & 0xff; + data[p + 2] = crc >> 8 & 0xff; + data[p + 3] = crc & 0xff; + } + function adler32(data, start, end) { + let a = 1; + let b = 0; + for (let i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; + b = (b + a) % 65521; + } + return b << 16 | a; + } + function deflateSync(literals) { + if (!_is_node.isNodeJS) { + return deflateSyncUncompressed(literals); + } + try { + let input; + if (parseInt(process.versions.node) >= 8) { + input = literals; + } else { + input = Buffer.from(literals); + } + const output = require("zlib").deflateSync(input, { + level: 9 + }); + return output instanceof Uint8Array ? output : new Uint8Array(output); + } catch (e) { + (0, _util.warn)("Not compressing PNG because zlib.deflateSync is unavailable: " + e); + } + return deflateSyncUncompressed(literals); + } + function deflateSyncUncompressed(literals) { + let len = literals.length; + const maxBlockLength = 0xffff; + const deflateBlocks = Math.ceil(len / maxBlockLength); + const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + let pi = 0; + idat[pi++] = 0x78; + idat[pi++] = 0x9c; + let pos = 0; + while (len > maxBlockLength) { + idat[pi++] = 0x00; + idat[pi++] = 0xff; + idat[pi++] = 0xff; + idat[pi++] = 0x00; + idat[pi++] = 0x00; + idat.set(literals.subarray(pos, pos + maxBlockLength), pi); + pi += maxBlockLength; + pos += maxBlockLength; + len -= maxBlockLength; + } + idat[pi++] = 0x01; + idat[pi++] = len & 0xff; + idat[pi++] = len >> 8 & 0xff; + idat[pi++] = ~len & 0xffff & 0xff; + idat[pi++] = (~len & 0xffff) >> 8 & 0xff; + idat.set(literals.subarray(pos), pi); + pi += literals.length - pos; + const adler = adler32(literals, 0, literals.length); + idat[pi++] = adler >> 24 & 0xff; + idat[pi++] = adler >> 16 & 0xff; + idat[pi++] = adler >> 8 & 0xff; + idat[pi++] = adler & 0xff; + return idat; + } + function encode(imgData, kind, forceDataSchema, isMask) { + const width = imgData.width; + const height = imgData.height; + let bitDepth, colorType, lineSize; + const bytes = imgData.data; + switch (kind) { + case _util.ImageKind.GRAYSCALE_1BPP: + colorType = 0; + bitDepth = 1; + lineSize = width + 7 >> 3; + break; + case _util.ImageKind.RGB_24BPP: + colorType = 2; + bitDepth = 8; + lineSize = width * 3; + break; + case _util.ImageKind.RGBA_32BPP: + colorType = 6; + bitDepth = 8; + lineSize = width * 4; + break; + default: + throw new Error("invalid format"); + } + const literals = new Uint8Array((1 + lineSize) * height); + let offsetLiterals = 0, + offsetBytes = 0; + for (let y = 0; y < height; ++y) { + literals[offsetLiterals++] = 0; + literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); + offsetBytes += lineSize; + offsetLiterals += lineSize; + } + if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { + offsetLiterals = 0; + for (let y = 0; y < height; y++) { + offsetLiterals++; + for (let i = 0; i < lineSize; i++) { + literals[offsetLiterals++] ^= 0xff; + } + } + } + const 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]); + const idat = deflateSync(literals); + const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + const data = new Uint8Array(pngLength); + let offset = 0; + data.set(PNG_HEADER, offset); + offset += PNG_HEADER.length; + writePngChunk("IHDR", ihdr, data, offset); + offset += CHUNK_WRAPPER_SIZE + ihdr.length; + writePngChunk("IDATA", idat, data, offset); + offset += CHUNK_WRAPPER_SIZE + idat.length; + writePngChunk("IEND", new Uint8Array(0), data, offset); + return createObjectURL(data, "image/png", forceDataSchema); + } + return function convertImgDataToPng(imgData, forceDataSchema, isMask) { + const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + return encode(imgData, kind, forceDataSchema, isMask); + }; + }(); + class SVGExtraState { + constructor() { + this.fontSizeScale = 1; + this.fontWeight = SVG_DEFAULTS.fontWeight; + this.fontSize = 0; + this.textMatrix = _util.IDENTITY_MATRIX; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textMatrixScale = 1; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRise = 0; + this.fillColor = SVG_DEFAULTS.fillColor; + this.strokeColor = "#000000"; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.lineJoin = ""; + this.lineCap = ""; + this.miterLimit = 0; + this.dashArray = []; + this.dashPhase = 0; + this.dependencies = []; + this.activeClipUrl = null; + this.clipGroup = null; + this.maskId = ""; + } + clone() { + return Object.create(this); + } + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + } + function opListToTree(opList) { + let opTree = []; + const tmp = []; + for (const opListElement of opList) { + if (opListElement.fn === "save") { + opTree.push({ + fnId: 92, + fn: "group", + items: [] + }); + tmp.push(opTree); + opTree = opTree.at(-1).items; + continue; + } + if (opListElement.fn === "restore") { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); + } + } + return opTree; + } + function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + const s = value.toFixed(10); + let i = s.length - 1; + if (s[i] !== "0") { + return s; + } + do { + i--; + } while (s[i] === "0"); + return s.substring(0, s[i] === "." ? i : i + 1); + } + function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ""; + } + return `scale(${pf(m[0])} ${pf(m[3])})`; + } + if (m[0] === m[3] && m[1] === -m[2]) { + const a = Math.acos(m[0]) * 180 / Math.PI; + return `rotate(${pf(a)})`; + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return `translate(${pf(m[4])} ${pf(m[5])})`; + } + } + return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`; + } + let clipCount = 0; + let maskCount = 0; + let shadingCount = 0; + exports.SVGGraphics = SVGGraphics = class { + constructor(commonObjs, objs) { + let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + (0, _display_utils.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future."); + this.svgFactory = new _display_utils.DOMSVGFactory(); + this.current = new SVGExtraState(); + this.transformMatrix = _util.IDENTITY_MATRIX; + this.transformStack = []; + this.extraStack = []; + this.commonObjs = commonObjs; + this.objs = objs; + this.pendingClip = null; + this.pendingEOFill = false; + this.embedFonts = false; + this.embeddedFonts = Object.create(null); + this.cssStyle = null; + this.forceDataSchema = !!forceDataSchema; + this._operatorIdMapping = []; + for (const op in _util.OPS) { + this._operatorIdMapping[_util.OPS[op]] = op; + } + } + getObject(data) { + let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (typeof data === "string") { + return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); + } + return fallback; + } + save() { + this.transformStack.push(this.transformMatrix); + const old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } + restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } + group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } + loadDependencies(operatorList) { + const fnArray = operatorList.fnArray; + const argsArray = operatorList.argsArray; + for (let i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; + } + for (const obj of argsArray[i]) { + const objsPool = obj.startsWith("g_") ? this.commonObjs : this.objs; + const promise = new Promise(resolve => { + objsPool.get(obj, resolve); + }); + this.current.dependencies.push(promise); + } + } + return Promise.all(this.current.dependencies); + } + transform(a, b, c, d, e, f) { + const transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + } + getSVG(operatorList, viewport) { + this.viewport = viewport; + const svgElement = this._initialize(viewport); + return this.loadDependencies(operatorList).then(() => { + this.transformMatrix = _util.IDENTITY_MATRIX; + this.executeOpTree(this.convertOpList(operatorList)); + return svgElement; + }); + } + convertOpList(operatorList) { + const operatorIdMapping = this._operatorIdMapping; + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + const opList = []; + for (let i = 0, ii = fnArray.length; i < ii; i++) { + const fnId = fnArray[i]; + opList.push({ + fnId, + fn: operatorIdMapping[fnId], + args: argsArray[i] + }); + } + return opListToTree(opList); + } + executeOpTree(opTree) { + for (const opTreeElement of opTree) { + const fn = opTreeElement.fn; + const fnId = opTreeElement.fnId; + const args = opTreeElement.args; + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; + case _util.OPS.dependency: + break; + case _util.OPS.setLeading: + this.setLeading(args); + break; + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + case _util.OPS.setFont: + this.setFont(args); + break; + case _util.OPS.showText: + this.showText(args[0]); + break; + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + case _util.OPS.endText: + this.endText(); + break; + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + case _util.OPS.setTextRenderingMode: + this.setTextRenderingMode(args[0]); + break; + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + case _util.OPS.setStrokeColorN: + this.setStrokeColorN(args); + break; + case _util.OPS.setFillColorN: + this.setFillColorN(args); + break; + case _util.OPS.shadingFill: + this.shadingFill(args[0]); + break; + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + case _util.OPS.setRenderingIntent: + this.setRenderingIntent(args[0]); + break; + case _util.OPS.setFlatness: + this.setFlatness(args[0]); + break; + case _util.OPS.setGState: + this.setGState(args[0]); + break; + case _util.OPS.fill: + this.fill(); + break; + case _util.OPS.eoFill: + this.eoFill(); + break; + case _util.OPS.stroke: + this.stroke(); + break; + case _util.OPS.fillStroke: + this.fillStroke(); + break; + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + case _util.OPS.clip: + this.clip("nonzero"); + break; + case _util.OPS.eoClip: + this.clip("evenodd"); + break; + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + case _util.OPS.closePath: + this.closePath(); + break; + case _util.OPS.closeStroke: + this.closeStroke(); + break; + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + case _util.OPS.nextLine: + this.nextLine(); + break; + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + case _util.OPS.endPath: + this.endPath(); + break; + case 92: + this.group(opTreeElement.items); + break; + default: + (0, _util.warn)(`Unimplemented operator ${fn}`); + break; + } + } + } + setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + } + setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + } + nextLine() { + this.moveText(0, this.current.leading); + } + setTextMatrix(a, b, c, d, e, f) { + const current = this.current; + current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; + current.textMatrixScale = Math.hypot(a, b); + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtElement.append(current.tspan); + } + beginText() { + const current = this.current; + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.textMatrix = _util.IDENTITY_MATRIX; + current.lineMatrix = _util.IDENTITY_MATRIX; + current.textMatrixScale = 1; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtgrp = this.svgFactory.createElement("svg:g"); + current.xcoords = []; + current.ycoords = []; + } + moveText(x, y) { + const current = this.current; + current.x = current.lineX += x; + current.y = current.lineY += y; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + showText(glyphs) { + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + if (fontSize === 0) { + return; + } + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + let x = 0; + for (const glyph of glyphs) { + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if (typeof glyph === "number") { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + let scaledX, scaledY; + let width = glyph.width; + if (vertical) { + let vx; + const vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (glyph.isInFont || font.missingFile) { + current.xcoords.push(current.x + scaledX); + if (vertical) { + current.ycoords.push(-current.y + scaledY); + } + current.tspan.textContent += character; + } else {} + let charWidth; + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; + } else { + charWidth = width * widthAdvanceScale + spacing * fontDirection; + } + x += charWidth; + } + current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); + if (vertical) { + current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" ")); + } else { + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, "font-style", current.fontStyle); + } + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, "font-weight", current.fontWeight); + } + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, "fill", current.fillColor); + } + if (current.fillAlpha < 1) { + current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); + } + } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { + current.tspan.setAttributeNS(null, "fill", "transparent"); + } else { + current.tspan.setAttributeNS(null, "fill", "none"); + } + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + const lineWidthScale = 1 / (current.textMatrixScale || 1); + this._setStrokeAttributes(current.tspan, lineWidthScale); + } + let textMatrix = current.textMatrix; + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; + } + current.txtElement.setAttributeNS(null, "transform", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`); + current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve"); + current.txtElement.append(current.tspan); + current.txtgrp.append(current.txtElement); + this._ensureTransformGroup().append(current.txtElement); + } + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + addFontStyle(fontObj) { + if (!fontObj.data) { + throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" API parameter is set.'); + } + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement("svg:style"); + this.cssStyle.setAttributeNS(null, "type", "text/css"); + this.defs.append(this.cssStyle); + } + const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += `@font-face { font-family: "${fontObj.loadedName}";` + ` src: url(${url}); }\n`; + } + setFont(details) { + const current = this.current; + const fontObj = this.commonObjs.get(details[0]); + let size = details[1]; + current.font = fontObj; + if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; + let bold = "normal"; + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + const italic = fontObj.italic ? "italic" : "normal"; + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.xcoords = []; + current.ycoords = []; + } + endText() { + var _current$txtElement; + const current = this.current; + if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && (_current$txtElement = current.txtElement) !== null && _current$txtElement !== void 0 && _current$txtElement.hasChildNodes()) { + current.element = current.txtElement; + this.clip("nonzero"); + this.endPath(); + } + } + setLineWidth(width) { + if (width > 0) { + this.current.lineWidth = width; + } + } + setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + } + setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + } + setMiterLimit(limit) { + this.current.miterLimit = limit; + } + setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + } + setStrokeRGBColor(r, g, b) { + this.current.strokeColor = _util.Util.makeHexColor(r, g, b); + } + setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + } + setFillRGBColor(r, g, b) { + this.current.fillColor = _util.Util.makeHexColor(r, g, b); + this.current.tspan = this.svgFactory.createElement("svg:tspan"); + this.current.xcoords = []; + this.current.ycoords = []; + } + setStrokeColorN(args) { + this.current.strokeColor = this._makeColorN_Pattern(args); + } + setFillColorN(args) { + this.current.fillColor = this._makeColorN_Pattern(args); + } + shadingFill(args) { + const width = this.viewport.width; + const height = this.viewport.height; + const inv = _util.Util.inverseTransform(this.transformMatrix); + const bl = _util.Util.applyTransform([0, 0], inv); + const br = _util.Util.applyTransform([0, height], inv); + const ul = _util.Util.applyTransform([width, 0], inv); + const ur = _util.Util.applyTransform([width, height], inv); + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", x0); + rect.setAttributeNS(null, "y", y0); + rect.setAttributeNS(null, "width", x1 - x0); + rect.setAttributeNS(null, "height", y1 - y0); + rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); + if (this.current.fillAlpha < 1) { + rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); + } + this._ensureTransformGroup().append(rect); + } + _makeColorN_Pattern(args) { + if (args[0] === "TilingPattern") { + return this._makeTilingPattern(args); + } + return this._makeShadingPattern(args); + } + _makeTilingPattern(args) { + const color = args[1]; + const operatorList = args[2]; + const matrix = args[3] || _util.IDENTITY_MATRIX; + const [x0, y0, x1, y1] = args[4]; + const xstep = args[5]; + const ystep = args[6]; + const paintType = args[7]; + const tilingId = `shading${shadingCount++}`; + const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]); + const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix); + const txstep = xstep * xscale; + const tystep = ystep * yscale; + const tiling = this.svgFactory.createElement("svg:pattern"); + tiling.setAttributeNS(null, "id", tilingId); + tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); + tiling.setAttributeNS(null, "width", txstep); + tiling.setAttributeNS(null, "height", tystep); + tiling.setAttributeNS(null, "x", `${tx0}`); + tiling.setAttributeNS(null, "y", `${ty0}`); + const svg = this.svg; + const transformMatrix = this.transformMatrix; + const fillColor = this.current.fillColor; + const strokeColor = this.current.strokeColor; + const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); + this.svg = bbox; + this.transformMatrix = matrix; + if (paintType === 2) { + const cssColor = _util.Util.makeHexColor(...color); + this.current.fillColor = cssColor; + this.current.strokeColor = cssColor; + } + this.executeOpTree(this.convertOpList(operatorList)); + this.svg = svg; + this.transformMatrix = transformMatrix; + this.current.fillColor = fillColor; + this.current.strokeColor = strokeColor; + tiling.append(bbox.childNodes[0]); + this.defs.append(tiling); + return `url(#${tilingId})`; + } + _makeShadingPattern(args) { + if (typeof args === "string") { + args = this.objs.get(args); + } + switch (args[0]) { + case "RadialAxial": + const shadingId = `shading${shadingCount++}`; + const colorStops = args[3]; + let gradient; + switch (args[1]) { + case "axial": + const point0 = args[4]; + const point1 = args[5]; + gradient = this.svgFactory.createElement("svg:linearGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "x1", point0[0]); + gradient.setAttributeNS(null, "y1", point0[1]); + gradient.setAttributeNS(null, "x2", point1[0]); + gradient.setAttributeNS(null, "y2", point1[1]); + break; + case "radial": + const focalPoint = args[4]; + const circlePoint = args[5]; + const focalRadius = args[6]; + const circleRadius = args[7]; + gradient = this.svgFactory.createElement("svg:radialGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "cx", circlePoint[0]); + gradient.setAttributeNS(null, "cy", circlePoint[1]); + gradient.setAttributeNS(null, "r", circleRadius); + gradient.setAttributeNS(null, "fx", focalPoint[0]); + gradient.setAttributeNS(null, "fy", focalPoint[1]); + gradient.setAttributeNS(null, "fr", focalRadius); + break; + default: + throw new Error(`Unknown RadialAxial type: ${args[1]}`); + } + for (const colorStop of colorStops) { + const stop = this.svgFactory.createElement("svg:stop"); + stop.setAttributeNS(null, "offset", colorStop[0]); + stop.setAttributeNS(null, "stop-color", colorStop[1]); + gradient.append(stop); + } + this.defs.append(gradient); + return `url(#${shadingId})`; + case "Mesh": + (0, _util.warn)("Unimplemented pattern Mesh"); + return null; + case "Dummy": + return "hotpink"; + default: + throw new Error(`Unknown IR type: ${args[0]}`); + } + } + setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + } + constructPath(ops, args) { + const current = this.current; + let x = current.x, + y = current.y; + let d = []; + let j = 0; + for (const op of ops) { + switch (op | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z"); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push("M", pf(x), pf(y)); + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push("L", pf(x), pf(y)); + break; + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + case _util.OPS.curveTo2: + d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + case _util.OPS.closePath: + d.push("Z"); + break; + } + } + d = d.join(" "); + if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { + d = current.path.getAttributeNS(null, "d") + d; + } else { + current.path = this.svgFactory.createElement("svg:path"); + this._ensureTransformGroup().append(current.path); + } + current.path.setAttributeNS(null, "d", d); + current.path.setAttributeNS(null, "fill", "none"); + current.element = current.path; + current.setCurrentPoint(x, y); + } + endPath() { + const current = this.current; + current.path = null; + if (!this.pendingClip) { + return; + } + if (!current.element) { + this.pendingClip = null; + return; + } + const clipId = `clippath${clipCount++}`; + const clipPath = this.svgFactory.createElement("svg:clipPath"); + clipPath.setAttributeNS(null, "id", clipId); + clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); + const clipElement = current.element.cloneNode(true); + if (this.pendingClip === "evenodd") { + clipElement.setAttributeNS(null, "clip-rule", "evenodd"); + } else { + clipElement.setAttributeNS(null, "clip-rule", "nonzero"); + } + this.pendingClip = null; + clipPath.append(clipElement); + this.defs.append(clipPath); + if (current.activeClipUrl) { + current.clipGroup = null; + for (const prev of this.extraStack) { + prev.clipGroup = null; + } + clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); + } + current.activeClipUrl = `url(#${clipId})`; + this.tgrp = null; + } + clip(type) { + this.pendingClip = type; + } + closePath() { + const current = this.current; + if (current.path) { + const d = `${current.path.getAttributeNS(null, "d")}Z`; + current.path.setAttributeNS(null, "d", d); + } + } + setLeading(leading) { + this.current.leading = -leading; + } + setTextRise(textRise) { + this.current.textRise = textRise; + } + setTextRenderingMode(textRenderingMode) { + this.current.textRenderingMode = textRenderingMode; + } + setHScale(scale) { + this.current.textHScale = scale / 100; + } + setRenderingIntent(intent) {} + setFlatness(flatness) {} + setGState(states) { + for (const [key, value] of states) { + switch (key) { + case "LW": + this.setLineWidth(value); + break; + case "LC": + this.setLineCap(value); + break; + case "LJ": + this.setLineJoin(value); + break; + case "ML": + this.setMiterLimit(value); + break; + case "D": + this.setDash(value[0], value[1]); + break; + case "RI": + this.setRenderingIntent(value); + break; + case "FL": + this.setFlatness(value); + break; + case "Font": + this.setFont(value); + break; + case "CA": + this.setStrokeAlpha(value); + break; + case "ca": + this.setFillAlpha(value); + break; + default: + (0, _util.warn)(`Unimplemented graphic state operator ${key}`); + break; + } + } + } + fill() { + const current = this.current; + if (current.element) { + current.element.setAttributeNS(null, "fill", current.fillColor); + current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); + this.endPath(); + } + } + stroke() { + const current = this.current; + if (current.element) { + this._setStrokeAttributes(current.element); + current.element.setAttributeNS(null, "fill", "none"); + this.endPath(); + } + } + _setStrokeAttributes(element) { + let lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + const current = this.current; + let dashArray = current.dashArray; + if (lineWidthScale !== 1 && dashArray.length > 0) { + dashArray = dashArray.map(function (value) { + return lineWidthScale * value; + }); + } + element.setAttributeNS(null, "stroke", current.strokeColor); + element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); + element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); + element.setAttributeNS(null, "stroke-linecap", current.lineCap); + element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); + element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); + element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); + element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); + } + eoFill() { + var _this$current$element; + (_this$current$element = this.current.element) === null || _this$current$element === void 0 ? void 0 : _this$current$element.setAttributeNS(null, "fill-rule", "evenodd"); + this.fill(); + } + fillStroke() { + this.stroke(); + this.fill(); + } + eoFillStroke() { + var _this$current$element2; + (_this$current$element2 = this.current.element) === null || _this$current$element2 === void 0 ? void 0 : _this$current$element2.setAttributeNS(null, "fill-rule", "evenodd"); + this.fillStroke(); + } + closeStroke() { + this.closePath(); + this.stroke(); + } + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } + paintSolidColorImageMask() { + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", "1px"); + rect.setAttributeNS(null, "height", "1px"); + rect.setAttributeNS(null, "fill", this.current.fillColor); + this._ensureTransformGroup().append(rect); + } + paintImageXObject(objId) { + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`); + return; + } + this.paintInlineImageXObject(imgData); + } + paintInlineImageXObject(imgData, mask) { + const width = imgData.width; + const height = imgData.height; + const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", "0"); + cliprect.setAttributeNS(null, "y", "0"); + cliprect.setAttributeNS(null, "width", pf(width)); + cliprect.setAttributeNS(null, "height", pf(height)); + this.current.element = cliprect; + this.clip("nonzero"); + const imgEl = this.svgFactory.createElement("svg:image"); + imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc); + imgEl.setAttributeNS(null, "x", "0"); + imgEl.setAttributeNS(null, "y", pf(-height)); + imgEl.setAttributeNS(null, "width", pf(width) + "px"); + imgEl.setAttributeNS(null, "height", pf(height) + "px"); + imgEl.setAttributeNS(null, "transform", `scale(${pf(1 / width)} ${pf(-1 / height)})`); + if (mask) { + mask.append(imgEl); + } else { + this._ensureTransformGroup().append(imgEl); + } + } + paintImageMaskXObject(img) { + const imgData = this.getObject(img.data, img); + if (imgData.bitmap) { + (0, _util.warn)("paintImageMaskXObject: ImageBitmap support is not implemented, " + "ensure that the `isOffscreenCanvasSupported` API parameter is disabled."); + return; + } + const current = this.current; + const width = imgData.width; + const height = imgData.height; + const fillColor = current.fillColor; + current.maskId = `mask${maskCount++}`; + const mask = this.svgFactory.createElement("svg:mask"); + mask.setAttributeNS(null, "id", current.maskId); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", pf(width)); + rect.setAttributeNS(null, "height", pf(height)); + rect.setAttributeNS(null, "fill", fillColor); + rect.setAttributeNS(null, "mask", `url(#${current.maskId})`); + this.defs.append(mask); + this._ensureTransformGroup().append(rect); + this.paintInlineImageXObject(imgData, mask); + } + paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); + } + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", bbox[0]); + cliprect.setAttributeNS(null, "y", bbox[1]); + cliprect.setAttributeNS(null, "width", pf(width)); + cliprect.setAttributeNS(null, "height", pf(height)); + this.current.element = cliprect; + this.clip("nonzero"); + this.endPath(); + } + } + paintFormXObjectEnd() {} + _initialize(viewport) { + const svg = this.svgFactory.create(viewport.width, viewport.height); + const definitions = this.svgFactory.createElement("svg:defs"); + svg.append(definitions); + this.defs = definitions; + const rootGroup = this.svgFactory.createElement("svg:g"); + rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); + svg.append(rootGroup); + this.svg = rootGroup; + return svg; + } + _ensureClipGroup() { + if (!this.current.clipGroup) { + const clipGroup = this.svgFactory.createElement("svg:g"); + clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); + this.svg.append(clipGroup); + this.current.clipGroup = clipGroup; + } + return this.current.clipGroup; + } + _ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement("svg:g"); + this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); + if (this.current.activeClipUrl) { + this._ensureClipGroup().append(this.tgrp); + } else { + this.svg.append(this.tgrp); + } + } + return this.tgrp; + } + }; +} + +/***/ }), +/* 161 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFNodeStream = void 0; +var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(162); +; +const fs = require("fs"); +const http = require("http"); +const https = require("https"); +const url = require("url"); +const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; +function parseUrl(sourceUrl) { + const parsedUrl = url.parse(sourceUrl); + if (parsedUrl.protocol === "file:" || parsedUrl.host) { + return parsedUrl; + } + if (/^[a-z]:[/\\]/i.test(sourceUrl)) { + return url.parse(`file:///${sourceUrl}`); + } + if (!parsedUrl.host) { + parsedUrl.protocol = "file:"; + } + return parsedUrl; +} +class PDFNodeStream { + constructor(source) { + this.source = source; + this.url = parseUrl(source.url); + this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:"; + this.isFsUrl = this.url.protocol === "file:"; + this.httpHeaders = this.isHttp && source.httpHeaders || {}; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + get _progressiveDataLength() { + var _this$_fullRequestRea; + return ((_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea._loaded) ?? 0; + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); + this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); + return this._fullRequestReader; + } + getRangeReader(start, end) { + if (end <= this._progressiveDataLength) { + return null; + } + const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + this._rangeRequestReaders.push(rangeReader); + return rangeReader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea2; + (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +exports.PDFNodeStream = PDFNodeStream; +class BaseFullReader { + constructor(stream) { + this._url = stream.url; + this._done = false; + this._storedError = null; + this.onProgress = null; + const source = stream.source; + this._contentLength = source.length; + this._loaded = 0; + this._filename = null; + this._disableRange = source.disableRange || false; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._isStreamingSupported = !source.disableStream; + this._isRangeSupported = !source.disableRange; + this._readableStream = null; + this._readCapability = (0, _util.createPromiseCapability)(); + this._headersCapability = (0, _util.createPromiseCapability)(); + } + get headersReady() { + return this._headersCapability.promise; + } + get filename() { + return this._filename; + } + get contentLength() { + return this._contentLength; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress; + await this._readCapability.promise; + if (this._done) { + return { + value: undefined, + done: true + }; + } + if (this._storedError) { + throw this._storedError; + } + const chunk = this._readableStream.read(); + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + this._loaded += chunk.length; + (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { + loaded: this._loaded, + total: this._contentLength + }); + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + return; + } + this._readableStream.destroy(reason); + } + _error(reason) { + this._storedError = reason; + this._readCapability.resolve(); + } + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; + this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + if (!this._isStreamingSupported && this._isRangeSupported) { + this._error(new _util.AbortException("streaming is disabled")); + } + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } +} +class BaseRangeReader { + constructor(stream) { + this._url = stream.url; + this._done = false; + this._storedError = null; + this.onProgress = null; + this._loaded = 0; + this._readableStream = null; + this._readCapability = (0, _util.createPromiseCapability)(); + const source = stream.source; + this._isStreamingSupported = !source.disableStream; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress2; + await this._readCapability.promise; + if (this._done) { + return { + value: undefined, + done: true + }; + } + if (this._storedError) { + throw this._storedError; + } + const chunk = this._readableStream.read(); + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + this._loaded += chunk.length; + (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { + loaded: this._loaded + }); + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + return; + } + this._readableStream.destroy(reason); + } + _error(reason) { + this._storedError = reason; + this._readCapability.resolve(); + } + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; + this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } +} +function createRequestOptions(parsedUrl, headers) { + return { + protocol: parsedUrl.protocol, + auth: parsedUrl.auth, + host: parsedUrl.hostname, + port: parsedUrl.port, + path: parsedUrl.path, + method: "GET", + headers + }; +} +class PDFNodeStreamFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + const handleResponse = response => { + if (response.statusCode === 404) { + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; + this._headersCapability.reject(error); + return; + } + this._headersCapability.resolve(); + this._setReadableStream(response); + const getResponseHeader = name => { + return this._readableStream.headers[name.toLowerCase()]; + }; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + }; + this._request = null; + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); + } else { + this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); + } + this._request.on("error", reason => { + this._storedError = reason; + this._headersCapability.reject(reason); + }); + this._request.end(); + } +} +class PDFNodeStreamRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + this._httpHeaders = {}; + for (const property in stream.httpHeaders) { + const value = stream.httpHeaders[property]; + if (typeof value === "undefined") { + continue; + } + this._httpHeaders[property] = value; + } + this._httpHeaders.Range = `bytes=${start}-${end - 1}`; + const handleResponse = response => { + if (response.statusCode === 404) { + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; + return; + } + this._setReadableStream(response); + }; + this._request = null; + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); + } else { + this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); + } + this._request.on("error", reason => { + this._storedError = reason; + }); + this._request.end(); + } +} +class PDFNodeStreamFsFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + let path = decodeURIComponent(this._url.path); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); + } + fs.lstat(path, (error, stat) => { + if (error) { + if (error.code === "ENOENT") { + error = new _util.MissingPDFException(`Missing PDF "${path}".`); + } + this._storedError = error; + this._headersCapability.reject(error); + return; + } + this._contentLength = stat.size; + this._setReadableStream(fs.createReadStream(path)); + this._headersCapability.resolve(); + }); + } +} +class PDFNodeStreamFsRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + let path = decodeURIComponent(this._url.path); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); + } + this._setReadableStream(fs.createReadStream(path, { + start, + end: end - 1 + })); + } +} + +/***/ }), +/* 162 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.createResponseStatusError = createResponseStatusError; +exports.extractFilenameFromHeader = extractFilenameFromHeader; +exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; +exports.validateResponseStatus = validateResponseStatus; +var _util = __w_pdfjs_require__(1); +var _content_disposition = __w_pdfjs_require__(163); +var _display_utils = __w_pdfjs_require__(137); +function validateRangeRequestCapabilities(_ref) { + let { + getResponseHeader, + isHttp, + rangeChunkSize, + disableRange + } = _ref; + const returnValues = { + allowRangeRequests: false, + suggestedLength: undefined + }; + const length = parseInt(getResponseHeader("Content-Length"), 10); + if (!Number.isInteger(length)) { + return returnValues; + } + returnValues.suggestedLength = length; + if (length <= 2 * rangeChunkSize) { + return returnValues; + } + if (disableRange || !isHttp) { + return returnValues; + } + if (getResponseHeader("Accept-Ranges") !== "bytes") { + return returnValues; + } + const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; + if (contentEncoding !== "identity") { + return returnValues; + } + returnValues.allowRangeRequests = true; + return returnValues; +} +function extractFilenameFromHeader(getResponseHeader) { + const contentDisposition = getResponseHeader("Content-Disposition"); + if (contentDisposition) { + let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + if (filename.includes("%")) { + try { + filename = decodeURIComponent(filename); + } catch (ex) {} + } + if ((0, _display_utils.isPdfFile)(filename)) { + return filename; + } + } + return null; +} +function createResponseStatusError(status, url) { + if (status === 404 || status === 0 && url.startsWith("file:")) { + return new _util.MissingPDFException('Missing PDF "' + url + '".'); + } + return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`, status); +} +function validateResponseStatus(status) { + return status === 200 || status === 206; +} + +/***/ }), +/* 163 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; +var _util = __w_pdfjs_require__(1); +function getFilenameFromContentDispositionHeader(contentDisposition) { + let needsEncodingFixup = true; + let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); + if (tmp) { + tmp = tmp[1]; + let filename = rfc2616unquote(tmp); + filename = unescape(filename); + filename = rfc5987decode(filename); + filename = rfc2047decode(filename); + return fixupEncoding(filename); + } + tmp = rfc2231getparam(contentDisposition); + if (tmp) { + const filename = rfc2047decode(tmp); + return fixupEncoding(filename); + } + tmp = toParamRegExp("filename", "i").exec(contentDisposition); + if (tmp) { + tmp = tmp[1]; + let filename = rfc2616unquote(tmp); + filename = rfc2047decode(filename); + return fixupEncoding(filename); + } + function toParamRegExp(attributePattern, flags) { + return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags); + } + function textdecode(encoding, value) { + if (encoding) { + if (!/^[\x00-\xFF]+$/.test(value)) { + return value; + } + try { + const decoder = new TextDecoder(encoding, { + fatal: true + }); + const buffer = (0, _util.stringToBytes)(value); + value = decoder.decode(buffer); + needsEncodingFixup = false; + } catch (e) {} + } + return value; + } + function fixupEncoding(value) { + if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { + value = textdecode("utf-8", value); + if (needsEncodingFixup) { + value = textdecode("iso-8859-1", value); + } + } + return value; + } + function rfc2231getparam(contentDispositionStr) { + const matches = []; + let match; + const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); + while ((match = iter.exec(contentDispositionStr)) !== null) { + let [, n, quot, part] = match; + n = parseInt(n, 10); + if (n in matches) { + if (n === 0) { + break; + } + continue; + } + matches[n] = [quot, part]; + } + const parts = []; + for (let n = 0; n < matches.length; ++n) { + if (!(n in matches)) { + break; + } + let [quot, part] = matches[n]; + part = rfc2616unquote(part); + if (quot) { + part = unescape(part); + if (n === 0) { + part = rfc5987decode(part); + } + } + parts.push(part); + } + return parts.join(""); + } + function rfc2616unquote(value) { + if (value.startsWith('"')) { + const parts = value.slice(1).split('\\"'); + for (let i = 0; i < parts.length; ++i) { + const quotindex = parts[i].indexOf('"'); + if (quotindex !== -1) { + parts[i] = parts[i].slice(0, quotindex); + parts.length = i + 1; + } + parts[i] = parts[i].replace(/\\(.)/g, "$1"); + } + value = parts.join('"'); + } + return value; + } + function rfc5987decode(extvalue) { + const encodingend = extvalue.indexOf("'"); + if (encodingend === -1) { + return extvalue; + } + const encoding = extvalue.slice(0, encodingend); + const langvalue = extvalue.slice(encodingend + 1); + const value = langvalue.replace(/^[^']*'/, ""); + return textdecode(encoding, value); + } + function rfc2047decode(value) { + if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) { + return value; + } + return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { + if (encoding === "q" || encoding === "Q") { + text = text.replace(/_/g, " "); + text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) { + return String.fromCharCode(parseInt(hex, 16)); + }); + return textdecode(charset, text); + } + try { + text = atob(text); + } catch (e) {} + return textdecode(charset, text); + }); + } + return ""; +} + +/***/ }), +/* 164 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFNetworkStream = void 0; +var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(162); +; +const OK_RESPONSE = 200; +const PARTIAL_CONTENT_RESPONSE = 206; +function getArrayBuffer(xhr) { + const data = xhr.response; + if (typeof data !== "string") { + return data; + } + const array = (0, _util.stringToBytes)(data); + return array.buffer; +} +class NetworkManager { + constructor(url) { + let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + this.url = url; + this.isHttp = /^https?:/i.test(url); + this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null); + this.withCredentials = args.withCredentials || false; + this.getXhr = args.getXhr || function NetworkManager_getXhr() { + return new XMLHttpRequest(); + }; + this.currXhrId = 0; + this.pendingRequests = Object.create(null); + } + requestRange(begin, end, listeners) { + const args = { + begin, + end + }; + for (const prop in listeners) { + args[prop] = listeners[prop]; + } + return this.request(args); + } + requestFull(listeners) { + return this.request(listeners); + } + request(args) { + const xhr = this.getXhr(); + const xhrId = this.currXhrId++; + const pendingRequest = this.pendingRequests[xhrId] = { + xhr + }; + xhr.open("GET", this.url); + xhr.withCredentials = this.withCredentials; + for (const property in this.httpHeaders) { + const value = this.httpHeaders[property]; + if (typeof value === "undefined") { + continue; + } + xhr.setRequestHeader(property, value); + } + if (this.isHttp && "begin" in args && "end" in args) { + xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`); + pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; + } else { + pendingRequest.expectedStatus = OK_RESPONSE; + } + xhr.responseType = "arraybuffer"; + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); + }; + } + xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); + xhr.onprogress = this.onProgress.bind(this, xhrId); + pendingRequest.onHeadersReceived = args.onHeadersReceived; + pendingRequest.onDone = args.onDone; + pendingRequest.onError = args.onError; + pendingRequest.onProgress = args.onProgress; + xhr.send(null); + return xhrId; + } + onProgress(xhrId, evt) { + var _pendingRequest$onPro; + const pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; + } + (_pendingRequest$onPro = pendingRequest.onProgress) === null || _pendingRequest$onPro === void 0 ? void 0 : _pendingRequest$onPro.call(pendingRequest, evt); + } + onStateChange(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; + } + const xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } + if (xhr.readyState !== 4) { + return; + } + if (!(xhrId in this.pendingRequests)) { + return; + } + delete this.pendingRequests[xhrId]; + if (xhr.status === 0 && this.isHttp) { + var _pendingRequest$onErr; + (_pendingRequest$onErr = pendingRequest.onError) === null || _pendingRequest$onErr === void 0 ? void 0 : _pendingRequest$onErr.call(pendingRequest, xhr.status); + return; + } + const xhrStatus = xhr.status || OK_RESPONSE; + const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; + if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { + var _pendingRequest$onErr2; + (_pendingRequest$onErr2 = pendingRequest.onError) === null || _pendingRequest$onErr2 === void 0 ? void 0 : _pendingRequest$onErr2.call(pendingRequest, xhr.status); + return; + } + const chunk = getArrayBuffer(xhr); + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + const rangeHeader = xhr.getResponseHeader("Content-Range"); + const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + pendingRequest.onDone({ + begin: parseInt(matches[1], 10), + chunk + }); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk + }); + } else { + var _pendingRequest$onErr3; + (_pendingRequest$onErr3 = pendingRequest.onError) === null || _pendingRequest$onErr3 === void 0 ? void 0 : _pendingRequest$onErr3.call(pendingRequest, xhr.status); + } + } + getRequestXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + } + isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + } + abortRequest(xhrId) { + const xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } +} +class PDFNetworkStream { + constructor(source) { + this._source = source; + this._manager = new NetworkManager(source.url, { + httpHeaders: source.httpHeaders, + withCredentials: source.withCredentials + }); + this._rangeChunkSize = source.rangeChunkSize; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + _onRangeRequestReaderClosed(reader) { + const i = this._rangeRequestReaders.indexOf(reader); + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); + } + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); + return this._fullRequestReader; + } + getRangeReader(begin, end) { + const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea; + (_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +exports.PDFNetworkStream = PDFNetworkStream; +class PDFNetworkStreamFullRequestReader { + constructor(manager, source) { + this._manager = manager; + const args = { + onHeadersReceived: this._onHeadersReceived.bind(this), + onDone: this._onDone.bind(this), + onError: this._onError.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._url = source.url; + this._fullRequestId = manager.requestFull(args); + this._headersReceivedCapability = (0, _util.createPromiseCapability)(); + this._disableRange = source.disableRange || false; + this._contentLength = source.length; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._isStreamingSupported = false; + this._isRangeSupported = false; + this._cachedChunks = []; + this._requests = []; + this._done = false; + this._storedError = undefined; + this._filename = null; + this.onProgress = null; + } + _onHeadersReceived() { + const fullRequestXhrId = this._fullRequestId; + const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + const getResponseHeader = name => { + return fullRequestXhr.getResponseHeader(name); + }; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._manager.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + if (allowRangeRequests) { + this._isRangeSupported = true; + } + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + if (this._isRangeSupported) { + this._manager.abortRequest(fullRequestXhrId); + } + this._headersReceivedCapability.resolve(); + } + _onDone(data) { + if (data) { + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: data.chunk, + done: false + }); + } else { + this._cachedChunks.push(data.chunk); + } + } + this._done = true; + if (this._cachedChunks.length > 0) { + return; + } + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + } + _onError(status) { + this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); + this._headersReceivedCapability.reject(this._storedError); + for (const requestCapability of this._requests) { + requestCapability.reject(this._storedError); + } + this._requests.length = 0; + this._cachedChunks.length = 0; + } + _onProgress(evt) { + var _this$onProgress; + (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { + loaded: evt.loaded, + total: evt.lengthComputable ? evt.total : this._contentLength + }); + } + get filename() { + return this._filename; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + get contentLength() { + return this._contentLength; + } + get headersReady() { + return this._headersReceivedCapability.promise; + } + async read() { + if (this._storedError) { + throw this._storedError; + } + if (this._cachedChunks.length > 0) { + const chunk = this._cachedChunks.shift(); + return { + value: chunk, + done: false + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + this._headersReceivedCapability.reject(reason); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); + } + this._fullRequestReader = null; + } +} +class PDFNetworkStreamRangeRequestReader { + constructor(manager, begin, end) { + this._manager = manager; + const args = { + onDone: this._onDone.bind(this), + onError: this._onError.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._url = manager.url; + this._requestId = manager.requestRange(begin, end, args); + this._requests = []; + this._queuedChunk = null; + this._done = false; + this._storedError = undefined; + this.onProgress = null; + this.onClosed = null; + } + _close() { + var _this$onClosed; + (_this$onClosed = this.onClosed) === null || _this$onClosed === void 0 ? void 0 : _this$onClosed.call(this, this); + } + _onDone(data) { + const chunk = data.chunk; + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunk = chunk; + } + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + this._close(); + } + _onError(status) { + this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); + for (const requestCapability of this._requests) { + requestCapability.reject(this._storedError); + } + this._requests.length = 0; + this._queuedChunk = null; + } + _onProgress(evt) { + if (!this.isStreamingSupported) { + var _this$onProgress2; + (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { + loaded: evt.loaded + }); + } + } + get isStreamingSupported() { + return false; + } + async read() { + if (this._storedError) { + throw this._storedError; + } + if (this._queuedChunk !== null) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + if (this._manager.isPendingRequest(this._requestId)) { + this._manager.abortRequest(this._requestId); + } + this._close(); + } +} + +/***/ }), +/* 165 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFetchStream = void 0; +var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(162); +; +function createFetchOptions(headers, withCredentials, abortController) { + return { + method: "GET", + headers, + signal: abortController.signal, + mode: "cors", + credentials: withCredentials ? "include" : "same-origin", + redirect: "follow" + }; +} +function createHeaders(httpHeaders) { + const headers = new Headers(); + for (const property in httpHeaders) { + const value = httpHeaders[property]; + if (typeof value === "undefined") { + continue; + } + headers.append(property, value); + } + return headers; +} +class PDFFetchStream { + constructor(source) { + this.source = source; + this.isHttp = /^https?:/i.test(source.url); + this.httpHeaders = this.isHttp && source.httpHeaders || {}; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + get _progressiveDataLength() { + var _this$_fullRequestRea; + return ((_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea._loaded) ?? 0; + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFFetchStreamReader(this); + return this._fullRequestReader; + } + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + const reader = new PDFFetchStreamRangeReader(this, begin, end); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea2; + (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +exports.PDFFetchStream = PDFFetchStream; +class PDFFetchStreamReader { + constructor(stream) { + this._stream = stream; + this._reader = null; + this._loaded = 0; + this._filename = null; + const source = stream.source; + this._withCredentials = source.withCredentials || false; + this._contentLength = source.length; + this._headersCapability = (0, _util.createPromiseCapability)(); + this._disableRange = source.disableRange || false; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._abortController = new AbortController(); + this._isStreamingSupported = !source.disableStream; + this._isRangeSupported = !source.disableRange; + this._headers = createHeaders(this._stream.httpHeaders); + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { + if (!(0, _network_utils.validateResponseStatus)(response.status)) { + throw (0, _network_utils.createResponseStatusError)(response.status, url); + } + this._reader = response.body.getReader(); + this._headersCapability.resolve(); + const getResponseHeader = name => { + return response.headers.get(name); + }; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + if (!this._isStreamingSupported && this._isRangeSupported) { + this.cancel(new _util.AbortException("Streaming is disabled.")); + } + }).catch(this._headersCapability.reject); + this.onProgress = null; + } + get headersReady() { + return this._headersCapability.promise; + } + get filename() { + return this._filename; + } + get contentLength() { + return this._contentLength; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress; + await this._headersCapability.promise; + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value, + done + }; + } + this._loaded += value.byteLength; + (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { + loaded: this._loaded, + total: this._contentLength + }); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + var _this$_reader; + (_this$_reader = this._reader) === null || _this$_reader === void 0 ? void 0 : _this$_reader.cancel(reason); + this._abortController.abort(); + } +} +class PDFFetchStreamRangeReader { + constructor(stream, begin, end) { + this._stream = stream; + this._reader = null; + this._loaded = 0; + const source = stream.source; + this._withCredentials = source.withCredentials || false; + this._readCapability = (0, _util.createPromiseCapability)(); + this._isStreamingSupported = !source.disableStream; + this._abortController = new AbortController(); + this._headers = createHeaders(this._stream.httpHeaders); + this._headers.append("Range", `bytes=${begin}-${end - 1}`); + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { + if (!(0, _network_utils.validateResponseStatus)(response.status)) { + throw (0, _network_utils.createResponseStatusError)(response.status, url); + } + this._readCapability.resolve(); + this._reader = response.body.getReader(); + }).catch(this._readCapability.reject); + this.onProgress = null; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress2; + await this._readCapability.promise; + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value, + done + }; + } + this._loaded += value.byteLength; + (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { + loaded: this._loaded + }); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + var _this$_reader2; + (_this$_reader2 = this._reader) === null || _this$_reader2 === void 0 ? void 0 : _this$_reader2.cancel(reason); + this._abortController.abort(); + } +} + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be in strict mode. +(() => { +"use strict"; +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "AnnotationEditorLayer", ({ + enumerable: true, + get: function () { + return _annotation_editor_layer.AnnotationEditorLayer; + } +})); +Object.defineProperty(exports, "AnnotationEditorParamsType", ({ + enumerable: true, + get: function () { + return _util.AnnotationEditorParamsType; + } +})); +Object.defineProperty(exports, "AnnotationEditorType", ({ + enumerable: true, + get: function () { + return _util.AnnotationEditorType; + } +})); +Object.defineProperty(exports, "AnnotationEditorUIManager", ({ + enumerable: true, + get: function () { + return _tools.AnnotationEditorUIManager; + } +})); +Object.defineProperty(exports, "AnnotationLayer", ({ + enumerable: true, + get: function () { + return _annotation_layer.AnnotationLayer; + } +})); +Object.defineProperty(exports, "AnnotationMode", ({ + enumerable: true, + get: function () { + return _util.AnnotationMode; + } +})); +Object.defineProperty(exports, "CMapCompressionType", ({ + enumerable: true, + get: function () { + return _util.CMapCompressionType; + } +})); +Object.defineProperty(exports, "GlobalWorkerOptions", ({ + enumerable: true, + get: function () { + return _worker_options.GlobalWorkerOptions; + } +})); +Object.defineProperty(exports, "InvalidPDFException", ({ + enumerable: true, + get: function () { + return _util.InvalidPDFException; + } +})); +Object.defineProperty(exports, "MissingPDFException", ({ + enumerable: true, + get: function () { + return _util.MissingPDFException; + } +})); +Object.defineProperty(exports, "OPS", ({ + enumerable: true, + get: function () { + return _util.OPS; + } +})); +Object.defineProperty(exports, "PDFDataRangeTransport", ({ + enumerable: true, + get: function () { + return _api.PDFDataRangeTransport; + } +})); +Object.defineProperty(exports, "PDFDateString", ({ + enumerable: true, + get: function () { + return _display_utils.PDFDateString; + } +})); +Object.defineProperty(exports, "PDFWorker", ({ + enumerable: true, + get: function () { + return _api.PDFWorker; + } +})); +Object.defineProperty(exports, "PasswordResponses", ({ + enumerable: true, + get: function () { + return _util.PasswordResponses; + } +})); +Object.defineProperty(exports, "PermissionFlag", ({ + enumerable: true, + get: function () { + return _util.PermissionFlag; + } +})); +Object.defineProperty(exports, "PixelsPerInch", ({ + enumerable: true, + get: function () { + return _display_utils.PixelsPerInch; + } +})); +Object.defineProperty(exports, "RenderingCancelledException", ({ + enumerable: true, + get: function () { + return _display_utils.RenderingCancelledException; + } +})); +Object.defineProperty(exports, "SVGGraphics", ({ + enumerable: true, + get: function () { + return _svg.SVGGraphics; + } +})); +Object.defineProperty(exports, "UNSUPPORTED_FEATURES", ({ + enumerable: true, + get: function () { + return _util.UNSUPPORTED_FEATURES; + } +})); +Object.defineProperty(exports, "UnexpectedResponseException", ({ + enumerable: true, + get: function () { + return _util.UnexpectedResponseException; + } +})); +Object.defineProperty(exports, "Util", ({ + enumerable: true, + get: function () { + return _util.Util; + } +})); +Object.defineProperty(exports, "VerbosityLevel", ({ + enumerable: true, + get: function () { + return _util.VerbosityLevel; + } +})); +Object.defineProperty(exports, "XfaLayer", ({ + enumerable: true, + get: function () { + return _xfa_layer.XfaLayer; + } +})); +Object.defineProperty(exports, "build", ({ + enumerable: true, + get: function () { + return _api.build; + } +})); +Object.defineProperty(exports, "createPromiseCapability", ({ + enumerable: true, + get: function () { + return _util.createPromiseCapability; + } +})); +Object.defineProperty(exports, "createValidAbsoluteUrl", ({ + enumerable: true, + get: function () { + return _util.createValidAbsoluteUrl; + } +})); +Object.defineProperty(exports, "getDocument", ({ + enumerable: true, + get: function () { + return _api.getDocument; + } +})); +Object.defineProperty(exports, "getFilenameFromUrl", ({ + enumerable: true, + get: function () { + return _display_utils.getFilenameFromUrl; + } +})); +Object.defineProperty(exports, "getPdfFilenameFromUrl", ({ + enumerable: true, + get: function () { + return _display_utils.getPdfFilenameFromUrl; + } +})); +Object.defineProperty(exports, "getXfaPageViewport", ({ + enumerable: true, + get: function () { + return _display_utils.getXfaPageViewport; + } +})); +Object.defineProperty(exports, "isPdfFile", ({ + enumerable: true, + get: function () { + return _display_utils.isPdfFile; + } +})); +Object.defineProperty(exports, "loadScript", ({ + enumerable: true, + get: function () { + return _display_utils.loadScript; + } +})); +Object.defineProperty(exports, "renderTextLayer", ({ + enumerable: true, + get: function () { + return _text_layer.renderTextLayer; + } +})); +Object.defineProperty(exports, "shadow", ({ + enumerable: true, + get: function () { + return _util.shadow; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _api.version; + } +})); +var _util = __w_pdfjs_require__(1); +var _api = __w_pdfjs_require__(133); +var _display_utils = __w_pdfjs_require__(137); +var _annotation_editor_layer = __w_pdfjs_require__(151); +var _tools = __w_pdfjs_require__(136); +var _annotation_layer = __w_pdfjs_require__(156); +var _worker_options = __w_pdfjs_require__(144); +var _is_node = __w_pdfjs_require__(3); +var _text_layer = __w_pdfjs_require__(159); +var _svg = __w_pdfjs_require__(160); +var _xfa_layer = __w_pdfjs_require__(158); +const pdfjsVersion = '3.0.279'; +const pdfjsBuild = 'd0823066c'; +{ + if (_is_node.isNodeJS) { + const { + PDFNodeStream + } = __w_pdfjs_require__(161); + (0, _api.setPDFNetworkStreamFactory)(params => { + return new PDFNodeStream(params); + }); + } else { + const { + PDFNetworkStream + } = __w_pdfjs_require__(164); + const { + PDFFetchStream + } = __w_pdfjs_require__(165); + (0, _api.setPDFNetworkStreamFactory)(params => { + if ((0, _display_utils.isValidFetchUrl)(params.url)) { + return new PDFFetchStream(params); + } + return new PDFNetworkStream(params); + }); + } +} +})(); + +/******/ return __webpack_exports__; +/******/ })() +; +}); +//# sourceMappingURL=pdf.js.map \ No newline at end of file diff --git a/build/pdf.js.map b/build/pdf.js.map new file mode 100644 index 0000000..874bdbb --- /dev/null +++ b/build/pdf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pdf.js","mappings":"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","sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-native.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-global-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/make-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/math-trunc.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/typed-array/at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.typed-array.at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/structured-clone.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-create-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iter-result-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice-simple.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-close.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-built-ins.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.structured-clone.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/regexp-get-flags.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/regexp-flags.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/error-stack-installable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-browser.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-deno.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/display/editor/editor.js","webpack://pdfjs-dist/build/pdf/src/display/editor/tools.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/base_factory.js","webpack://pdfjs-dist/build/pdf/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_text.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.js","webpack://pdfjs-dist/build/pdf/src/display/editor/annotation_editor_layer.js","webpack://pdfjs-dist/build/pdf/src/display/editor/freetext.js","webpack://pdfjs-dist/build/pdf/src/display/editor/ink.js","webpack://pdfjs-dist/build/pdf/src/display/editor/fit_curve.js","webpack://pdfjs-dist/build/pdf/node_modules/fit-curve/src/fit-curve.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/shared/scripting_utils.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_layer.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(globalThis, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n require(\"./compatibility.js\");\n}\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n // beginAnnotations: 78,\n // endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n // paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 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,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Support: Node.js<16.0.0\n(function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n})();\n\n// Support: Node.js<16.0.0\n(function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n})();\n\n// Support: Node.js\n(function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\"canvas\").DOMMatrix;\n})();\n\n// Support: Node.js\n(function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n})();\n\n// Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0\n(function checkArrayAt() {\n if (Array.prototype.at) {\n return;\n }\n require(\"core-js/es/array/at.js\");\n})();\n\n// Support: Firefox<90, Chrome<92, Safari<15.4, Node.js<16.6.0\n(function checkTypedArrayAt() {\n if (Uint8Array.prototype.at) {\n return;\n }\n require(\"core-js/es/typed-array/at.js\");\n})();\n\n// Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n(function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n})();\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../../modules/es.array.at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'at');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n","require('../../modules/es.typed-array.at');\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","require('../modules/es.array.iterator');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","module.exports = {};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new global.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new global.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n switch (type) {\n case 'Array':\n cloned = [];\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n cloned = new C(\n // this is safe, since arraybuffer cannot have circular references\n structuredCloneInternal(value.buffer, map),\n value.byteOffset,\n type === 'DataView' ? value.byteLength : value.length\n );\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n } break;\n case 'SharedArrayBuffer':\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'CropTarget':\n case 'CryptoKey':\n case 'FileSystemDirectoryHandle':\n case 'FileSystemFileHandle':\n case 'FileSystemHandle':\n case 'GPUCompilationInfo':\n case 'GPUCompilationMessage':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n if (deep) switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n } else while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n type = classof(value);\n\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'ArrayBuffer':\n case 'MediaSourceHandle':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n\n// `structuredClone` method\n// https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n\n return structuredCloneInternal(value, map);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n AnnotationMode,\n assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n MissingPDFException,\n PasswordException,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n AnnotationStorage,\n PrintAnnotationStorage,\n} from \"./annotation_storage.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n isDataScheme,\n loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nlet DefaultCanvasFactory = DOMCanvasFactory;\nlet DefaultCMapReaderFactory = DOMCMapReaderFactory;\nlet DefaultStandardFontDataFactory = DOMStandardFontDataFactory;\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n } = require(\"./node_utils.js\");\n\n DefaultCanvasFactory = NodeCanvasFactory;\n DefaultCMapReaderFactory = NodeCMapReaderFactory;\n DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n * parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n * {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type {IPDFStreamFactory}\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n * that takes document initialization parameters (including a \"url\") and\n * returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n * Int16Array | Uint16Array |\n * Int32Array | Uint32Array | Float32Array |\n * Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef { TypedArray | ArrayBuffer | Array | string } BinaryData\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string | URL} [url] - The URL of the PDF.\n * @property {BinaryData} [data] - Binary PDF data.\n * Use typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n * or all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n * transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n * per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n * parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n * from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n * attempting to recover valid absolute URLs for annotations, and outline\n * items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n * located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n * packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n * reading built-in CMap files. Providing a custom factory is useful for\n * environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n * embedded in the PDF document will fallback to a system font.\n * The default value is `true` in web environments and `false` in Node.js;\n * unless `disableFontFace === true` in which case this defaults to `false`\n * regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n * files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n * when reading the standard font files. Providing a custom factory is useful\n * for environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n * worker-thread when reading CMap and standard font files. When `true`,\n * the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n * pixels, i.e. width * height. Images above this value will not be rendered.\n * Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n * as JavaScript. Primarily used to improve performance of font rendering, and\n * when parsing PDF functions. The default value is `true`.\n * @property {boolean} [isOffscreenCanvasSupported] - Determines if we can use\n * `OffscreenCanvas` in the worker. Primarily used to improve performance of\n * image conversion/rendering.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n * OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n * If disabled, fonts will be rendered using a built-in font renderer that\n * constructs the glyphs with primitive path commands.\n * The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n * which are unused during rendering of PDF documents, when exporting the\n * parsed font data from the worker-thread. This may be useful for debugging\n * purposes (and backwards compatibility), but note that it will lead to\n * increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n * The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n * context to create elements with and to load resources, such as fonts,\n * into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n * files. When enabled, and if the server supports partial content requests,\n * then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n * By default PDF.js attempts to load PDF files in chunks. The default value\n * is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n * data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n *\n * NOTE: It is also necessary to disable streaming, see above, in order for\n * disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n * (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef { string | URL | TypedArray | ArrayBuffer |\n * PDFDataRangeTransport | DocumentInitParameters\n * } GetDocumentParameters\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {GetDocumentParameters}\n * src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n * already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\" || src instanceof URL) {\n source = { url: src };\n } else if (isArrayBuffer(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\n \"Invalid parameter in getDocument, \" +\n \"need either string, URL, TypedArray, or parameter object.\"\n );\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n \"Invalid parameter object: need either .data, .range or .url\"\n );\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n // The full path is required in the 'url' field.\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n warn(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString(); // Support Node.js environments.\n continue;\n }\n throw new Error(\n \"Invalid PDF url data: \" +\n \"either string or URL-object is expected in the url property.\"\n );\n case \"range\":\n rangeTransport = value;\n continue;\n case \"worker\":\n worker = value;\n continue;\n case \"data\":\n // Converting string or array-like data to Uint8Array.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n value instanceof Buffer // eslint-disable-line no-undef\n ) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break; // Use the data as-is when it's already a Uint8Array.\n } else if (typeof value === \"string\") {\n params[key] = stringToBytes(value);\n } else if (\n typeof value === \"object\" &&\n value !== null &&\n !isNaN(value.length)\n ) {\n params[key] = new Uint8Array(value);\n } else if (isArrayBuffer(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either TypedArray, \" +\n \"string, or array-like object is expected in the data property.\"\n );\n }\n continue;\n }\n params[key] = value;\n }\n\n params.CMapReaderFactory =\n params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory =\n params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\n if (\n typeof params.docBaseUrl !== \"string\" ||\n isDataScheme(params.docBaseUrl)\n ) {\n // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n // URLs anyway. We want to avoid sending them to the worker-thread, since\n // they contain the *entire* PDF document and can thus be arbitrarily long.\n params.docBaseUrl = null;\n }\n if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch =\n params.CMapReaderFactory === DOMCMapReaderFactory &&\n params.StandardFontDataFactory === DOMStandardFontDataFactory;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.isOffscreenCanvasSupported !== \"boolean\") {\n params.isOffscreenCanvasSupported = !isNodeJS;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = isNodeJS;\n }\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !isNodeJS && !params.disableFontFace;\n }\n if (\n typeof params.ownerDocument !== \"object\" ||\n params.ownerDocument === null\n ) {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise\n .then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(\n worker,\n params,\n rangeTransport,\n docId\n );\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n },\n rangeTransport\n );\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n resolve(networkStream);\n });\n\n return Promise.all([workerIdPromise, networkStreamPromise]).then(\n function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n params\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise} A promise that is resolved when the worker ID of\n * the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename =\n pdfDataRangeTransport.contentDispositionFilename;\n }\n const workerId = await worker.messageHandler.sendWithPromise(\n \"GetDocRequest\",\n // Only send the required properties, and *not* the entire `source` object.\n {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n data: source.data,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n docBaseUrl: source.docBaseUrl,\n enableXfa: source.enableXfa,\n evaluatorOptions: {\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n isOffscreenCanvasSupported: source.isOffscreenCanvasSupported,\n fontExtraProperties: source.fontExtraProperties,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch\n ? source.standardFontDataUrl\n : null,\n },\n }\n );\n\n // Release the TypedArray data, when it exists, since it's no longer needed\n // on the main-thread *after* it's been sent to the worker-thread.\n if (source.data) {\n source.data = null;\n }\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique identifier for the document loading task.\n * @type {string}\n */\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n\n /**\n * Whether the loading task is destroyed or not.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if a wrong or no password was provided.\n * The callback receives two parameters: a function that should be called\n * with the new password, and a reason (see {@link PasswordResponses}).\n * @type {function}\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar).\n * The callback receives an {@link OnProgressParameters} argument.\n * @type {function}\n */\n this.onProgress = null;\n\n /**\n * Callback for when an unsupported feature is used in the PDF document.\n * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n * @type {function}\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Abort all network requests and destroy the worker.\n * @returns {Promise} A promise that is resolved when destruction is\n * completed.\n */\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n /**\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} [progressiveDone]\n * @param {string} [contentDispositionFilename]\n */\n constructor(\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n /**\n * @type {number} Total number of pages in the PDF file.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {Array} A (not guaranteed to be) unique ID to\n * identify the PDF document.\n * NOTE: The first element will always be defined for all PDF documents,\n * whereas the second element is only defined for *modified* PDF documents.\n */\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n /**\n * @typedef {Object} PDFDocumentStats\n * @property {Object} streamTypes - Used stream types in the\n * document (an item is set to true if specific stream ID was used in the\n * document).\n * @property {Object} fontTypes - Used font types in the\n * document (an item is set to true if specific font ID was used in the\n * document).\n */\n\n /**\n * @type {PDFDocumentStats | null} The current statistics about document\n * structures, or `null` when no statistics exists.\n */\n get stats() {\n return this._transport.stats;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n /**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n *\n * @type {Object | null} An object representing a HTML tree structure\n * to render the XFA, or `null` when no XFA form exists.\n */\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise} A promise that is resolved with\n * a {@link PDFPageProxy} object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {RefProxy} ref - The page reference.\n * @returns {Promise} A promise that is resolved with the page index,\n * starting from zero, that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise>>} A promise that is resolved\n * with a mapping from named destinations to references.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @returns {Promise | null>} A promise that is resolved with all\n * information of the given named destination, or `null` when the named\n * destination is not present in the PDF file.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} containing the page labels that correspond to the page\n * indexes, or `null` when no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} containing the viewer preferences, or `null` when no viewer\n * preferences are present in the PDF file.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array}\n * containing the destination, or `null` when no open action is present\n * in the PDF.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a lookup table\n * for mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} of all the JavaScript strings in the name tree, or `null`\n * if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with the JavaScript actions:\n * - from the name tree (like getJavaScript);\n * - from A or AA entries in the catalog dictionary.\n * , or `null` if no JavaScript exists.\n */\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n /**\n * @typedef {Object} OutlineNode\n * @property {string} title\n * @property {boolean} bold\n * @property {boolean} italic\n * @property {Uint8ClampedArray} color - The color in RGB format to use for\n * display purposes.\n * @property {string | Array | null} dest\n * @property {string | null} url\n * @property {string | undefined} unsafeUrl\n * @property {boolean | undefined} newWindow\n * @property {number | undefined} count\n * @property {Array} items\n */\n\n /**\n * @returns {Promise>} A promise that is resolved with an\n * {Array} that is a tree outline (if it has one) of the PDF file.\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {@link OptionalContentConfig} that contains all the optional content\n * groups (assuming that the document has any).\n */\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} that contains the permission flags for the PDF document, or\n * `null` when no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n * resolved with an {Object} that has `info` and `metadata` properties.\n * `info` is an {Object} filled with anything available in the information\n * dictionary and similarly `metadata` is a {Metadata} object with\n * information from the metadata section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @typedef {Object} MarkInfo\n * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n * @property {boolean} Marked\n * @property {boolean} UserProperties\n * @property {boolean} Suspects\n */\n\n /**\n * @returns {Promise} A promise that is resolved with\n * a {MarkInfo} object that contains the MarkInfo flags for the PDF\n * document, or `null` when no MarkInfo values are present in the PDF file.\n */\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the raw data of the PDF document.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument() {\n return this._transport.saveDocument();\n }\n\n /**\n * @returns {Promise<{ length: number }>} A promise that is resolved when the\n * document's data is loaded. It is resolved with an {Object} that contains\n * the `length` property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * Cleans up resources allocated by the document on both the main and worker\n * threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n * NOTE: This will increase persistent memory usage, hence don't use this\n * option unless absolutely necessary. The default value is `false`.\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @type {DocumentInitParameters} A subset of the current\n * {DocumentInitParameters}, which are needed in the viewer.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n /**\n * @returns {Promise> | null>} A promise that is\n * resolved with an {Object} containing /AcroForm field data for the JS\n * sandbox, or `null` when no field data is present in the PDF file.\n */\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with `true`\n * if some /AcroForm fields have JavaScript actions.\n */\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with an\n * {Array} containing IDs of annotations that have a calculation\n * action, or `null` when no such annotations are present in the PDF file.\n */\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n * @property {boolean} [includeMarkedContent] - When true include marked\n * content items in the items array of TextContent. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array} items - Array of\n * {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n * items are included when includeMarkedContent is true.\n * @property {Object} styles - {@link TextStyle} objects,\n * indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n * line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n * 'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n * 'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n * can be 'display' (viewable annotations), 'print' (printable annotations),\n * or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n * the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n * onto the canvas, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {Array} [transform] - Additional transform, applied just\n * before viewport transform.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n * when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n * Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n * value, a `CanvasGradient` object (a linear or radial gradient) or\n * a `CanvasPattern` object (a repetitive image). The default value is\n * 'rgb(255,255,255)'.\n *\n * NOTE: This option may be partially, or completely, ignored when the\n * `pageColors`-option is used.\n * @property {Object} [pageColors] - Overwrites background and foreground colors\n * with user defined ones in order to improve readability in high contrast\n * mode.\n * @property {Promise} [optionalContentConfigPromise] -\n * A promise that should resolve with an {@link OptionalContentConfig}\n * created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n * the configuration will be fetched automatically with the default visibility\n * states set.\n * @property {Map} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n * in the operatorList, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array} children - Array of\n * {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n * elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n /** @type {PDFObjects} */\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this._bitmaps = new Set();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {RefProxy | null} The reference that points to this page.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @type {Array} An array of the visible portion of the PDF page in\n * user space units [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise>} A promise that is resolved with an\n * {Array} of the annotation objects.\n */\n getAnnotations({ intent = \"display\" } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n if (!promise) {\n promise = this._transport.getAnnotations(\n this._pageIndex,\n intentArgs.renderingIntent\n );\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n }\n return promise;\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} with JS actions.\n */\n getJSActions() {\n return (this._jsActionsPromise ||= this._transport.getPageJSActions(\n this._pageIndex\n ));\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with a fake DOM object (a tree structure where elements\n * are {Object} with a name, attributes (class, style, ...), value and\n * children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n */\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n *\n * @param {RenderParameters} params - Page render parameters.\n * @returns {RenderTask} An object that contains a promise that is\n * resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null,\n }) {\n this._stats?.time(\"Overall\");\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n printAnnotationStorage\n );\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance =\n canvasFactory ||\n new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n const intentPrint = !!(\n intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n );\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null,\n };\n\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error),\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors,\n });\n\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n Promise.all([\n intentState.displayReadyCapability.promise,\n optionalContentConfigPromise,\n ])\n .then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig,\n });\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @param {GetOperatorListParameters} params - Page getOperatorList\n * parameters.\n * @returns {Promise} A promise resolved with an\n * {@link PDFOperatorList} object that represents the page's operator list.\n */\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n printAnnotationStorage = null,\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n printAnnotationStorage,\n /* isOpList = */ true\n );\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null,\n };\n\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise} A promise that is resolved with a\n * {@link TextContent} object that represents the page's text content.\n */\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n // TODO: We need to revisit this once the XFA foreground patch lands and\n // only do this for non-foreground XFA.\n return this.getXfa().then(xfa => {\n return XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({ value, done }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {@link StructTreeNode} object that represents the page's structure tree,\n * or `null` when no structure tree is present for the current page.\n */\n getStructTree() {\n return (this._structTreePromise ||= this._transport.getStructTree(\n this._pageIndex\n ));\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intentState.opListReadCapability) {\n // Avoid errors below, since the renderTasks are just stubs.\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n this._bitmaps.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n *\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @private\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n for (const { renderTasks, operatorList } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n if (resetStats && this._stats) {\n this._stats = new StatTimer();\n }\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n this._bitmaps.clear();\n this.pendingCleanup = false;\n return true;\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n this._stats?.timeEnd(\"Page Request\");\n\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n intentState.displayReadyCapability?.resolve(transparency);\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList({ renderingIntent, cacheKey, annotationStorageMap }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Number.isInteger(renderingIntent) && renderingIntent > 0,\n '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n );\n }\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: annotationStorageMap,\n }\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n reason instanceof Error,\n '_abortOperatorList: Expected valid \"reason\" argument.'\n );\n }\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.size > 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader\n .cancel(new AbortException(reason.message))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n #listeners = [];\n\n #deferred = Promise.resolve();\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers),\n };\n\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this.#listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this.#listeners.indexOf(listener);\n this.#listeners.splice(i, 1);\n }\n\n terminate() {\n this.#listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n * the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0,\n};\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n PDFWorkerUtil.isWorkerDisabled = true;\n\n PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n ? \"../pdf.worker.js\"\n : \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n\n // Check if URLs have the same origin. For non-HTTP based URLs, returns false.\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n if (port && PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker.#workerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n /**\n * Promise for worker initialization completion.\n * @type {Promise}\n */\n get promise() {\n return this._readyCapability.promise;\n }\n\n /**\n * The current `workerPort`, when it exists.\n * @type {Worker}\n */\n get port() {\n return this._port;\n }\n\n /**\n * The current MessageHandler-instance.\n * @type {MessageHandler}\n */\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {\n // Ignoring \"ready\" event -- MessageHandler should already be initialized\n // and ready to accept messages.\n });\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (\n !PDFWorkerUtil.isWorkerDisabled &&\n !PDFWorker._mainThreadWorkerMessageHandler\n ) {\n let { workerSrc } = PDFWorker;\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n !PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)\n ) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(\n new URL(workerSrc, window.location).href\n );\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n // Ensure that we can use `postMessage` transfers.\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n // It might take time for the worker to initialize. We will try to send\n // the \"test\" message immediately, and once the \"ready\" message arrives.\n // The worker shall process only the first received \"test\" message.\n sendTest();\n return;\n } catch (e) {\n info(\"The worker has been disabled.\");\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal\n .then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n })\n .catch(reason => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n );\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n /**\n * The current `workerSrc`, when it exists.\n * @type {string}\n */\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n PDFWorkerUtil.fallbackWorkerSrc !== null\n ) {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n // Loads worker code into the main-thread.\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a ` + + + + + + +
+ +
+
+
+
+ + + + +
+
+ +
+ +
+
+
+
+
+ + + +
+
+
+ +
+ + + + + + + + +
+
+
+
+ +
+ +
+ +
+ +
+ + +
+
+ + + + + + +
+ +
+ + +
+ +
+ + +
+
+
+ +
+ +
+ + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+
+ + +
+
+ +
+ File name: +

-

+
+
+ File size: +

-

+
+
+
+ Title: +

-

+
+
+ Author: +

-

+
+
+ Subject: +

-

+
+
+ Keywords: +

-

+
+
+ Creation Date: +

-

+
+
+ Modification Date: +

-

+
+
+ Creator: +

-

+
+
+
+ PDF Producer: +

-

+
+
+ PDF Version: +

-

+
+
+ Page Count: +

-

+
+
+ Page Size: +

-

+
+
+
+ Fast Web View: +

-

+
+
+ +
+
+ +
+ Preparing document for printing… +
+
+ + 0% +
+
+ +
+
+
+ +
+
+ + + + diff --git a/web/viewer.js b/web/viewer.js new file mode 100644 index 0000000..e203d5e --- /dev/null +++ b/web/viewer.js @@ -0,0 +1,14828 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2022 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.AutoPrintRegExp = void 0; +exports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes; +exports.apiPageModeToSidebarView = apiPageModeToSidebarView; +exports.approximateFraction = approximateFraction; +exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; +exports.binarySearchFirstItem = binarySearchFirstItem; +exports.docStyle = void 0; +exports.getActiveOrFocusedElement = getActiveOrFocusedElement; +exports.getPageSizeInches = getPageSizeInches; +exports.getVisibleElements = getVisibleElements; +exports.isPortraitOrientation = isPortraitOrientation; +exports.isValidRotation = isValidRotation; +exports.isValidScrollMode = isValidScrollMode; +exports.isValidSpreadMode = isValidSpreadMode; +exports.noContextMenuHandler = noContextMenuHandler; +exports.normalizeWheelEventDelta = normalizeWheelEventDelta; +exports.normalizeWheelEventDirection = normalizeWheelEventDirection; +exports.parseQueryString = parseQueryString; +exports.removeNullCharacters = removeNullCharacters; +exports.roundToDivide = roundToDivide; +exports.scrollIntoView = scrollIntoView; +exports.watchScroll = watchScroll; +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +const DEFAULT_SCALE_VALUE = "auto"; +exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; +const DEFAULT_SCALE = 1.0; +exports.DEFAULT_SCALE = DEFAULT_SCALE; +const DEFAULT_SCALE_DELTA = 1.1; +exports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA; +const MIN_SCALE = 0.1; +exports.MIN_SCALE = MIN_SCALE; +const MAX_SCALE = 10.0; +exports.MAX_SCALE = MAX_SCALE; +const UNKNOWN_SCALE = 0; +exports.UNKNOWN_SCALE = UNKNOWN_SCALE; +const MAX_AUTO_SCALE = 1.25; +exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; +const SCROLLBAR_PADDING = 40; +exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; +const VERTICAL_PADDING = 5; +exports.VERTICAL_PADDING = VERTICAL_PADDING; +const RenderingStates = { + INITIAL: 0, + RUNNING: 1, + PAUSED: 2, + FINISHED: 3 +}; +exports.RenderingStates = RenderingStates; +const PresentationModeState = { + UNKNOWN: 0, + NORMAL: 1, + CHANGING: 2, + FULLSCREEN: 3 +}; +exports.PresentationModeState = PresentationModeState; +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +exports.SidebarView = SidebarView; +const RendererType = { + CANVAS: "canvas", + SVG: "svg" +}; +exports.RendererType = RendererType; +const TextLayerMode = { + DISABLE: 0, + ENABLE: 1 +}; +exports.TextLayerMode = TextLayerMode; +const ScrollMode = { + UNKNOWN: -1, + VERTICAL: 0, + HORIZONTAL: 1, + WRAPPED: 2, + PAGE: 3 +}; +exports.ScrollMode = ScrollMode; +const SpreadMode = { + UNKNOWN: -1, + NONE: 0, + ODD: 1, + EVEN: 2 +}; +exports.SpreadMode = SpreadMode; +const AutoPrintRegExp = /\bprint\s*\(/; +exports.AutoPrintRegExp = AutoPrintRegExp; +class OutputScale { + constructor() { + const pixelRatio = window.devicePixelRatio || 1; + this.sx = pixelRatio; + this.sy = pixelRatio; + } + get scaled() { + return this.sx !== 1 || this.sy !== 1; + } +} +exports.OutputScale = OutputScale; +function scrollIntoView(element, spot) { + let scrollMatches = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + let parent = element.offsetParent; + if (!parent) { + console.error("offsetParent is not set -- cannot scroll"); + return; + } + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { + offsetY += parent.offsetTop; + offsetX += parent.offsetLeft; + parent = parent.offsetParent; + if (!parent) { + return; + } + } + if (spot) { + if (spot.top !== undefined) { + offsetY += spot.top; + } + if (spot.left !== undefined) { + offsetX += spot.left; + parent.scrollLeft = offsetX; + } + } + parent.scrollTop = offsetY; +} +function watchScroll(viewAreaElement, callback) { + const debounceScroll = function (evt) { + if (rAF) { + return; + } + rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { + rAF = null; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; + if (currentX !== lastX) { + state.right = currentX > lastX; + } + state.lastX = currentX; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; + if (currentY !== lastY) { + state.down = currentY > lastY; + } + state.lastY = currentY; + callback(state); + }); + }; + const state = { + right: true, + down: true, + lastX: viewAreaElement.scrollLeft, + lastY: viewAreaElement.scrollTop, + _eventHandler: debounceScroll + }; + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, true); + return state; +} +function parseQueryString(query) { + const params = new Map(); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); + } + return params; +} +const NullCharactersRegExp = /\x00/g; +const InvisibleCharactersRegExp = /[\x01-\x1F]/g; +function removeNullCharacters(str) { + let replaceInvisible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (typeof str !== "string") { + console.error(`The argument must be a string.`); + return str; + } + if (replaceInvisible) { + str = str.replace(InvisibleCharactersRegExp, " "); + } + return str.replace(NullCharactersRegExp, ""); +} +function binarySearchFirstItem(items, condition) { + let start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + let minIndex = start; + let maxIndex = items.length - 1; + if (maxIndex < 0 || !condition(items[maxIndex])) { + return items.length; + } + if (condition(items[minIndex])) { + return minIndex; + } + while (minIndex < maxIndex) { + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; + if (condition(currentItem)) { + maxIndex = currentIndex; + } else { + minIndex = currentIndex + 1; + } + } + return minIndex; +} +function approximateFraction(x) { + if (Math.floor(x) === x) { + return [x, 1]; + } + const xinv = 1 / x; + const limit = 8; + if (xinv > limit) { + return [1, limit]; + } else if (Math.floor(xinv) === xinv) { + return [1, xinv]; + } + const x_ = x > 1 ? xinv : x; + let a = 0, + b = 1, + c = 1, + d = 1; + while (true) { + const p = a + c, + q = b + d; + if (q > limit) { + break; + } + if (x_ <= p / q) { + c = p; + d = q; + } else { + a = p; + b = q; + } + } + let result; + if (x_ - a / b < c / d - x_) { + result = x_ === x ? [a, b] : [b, a]; + } else { + result = x_ === x ? [c, d] : [d, c]; + } + return result; +} +function roundToDivide(x, div) { + const r = x % div; + return r === 0 ? x : Math.round(x - r + div); +} +function getPageSizeInches(_ref) { + let { + view, + userUnit, + rotate + } = _ref; + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; + return { + width: changeOrientation ? height : width, + height: changeOrientation ? width : height + }; +} +function backtrackBeforeAllVisibleElements(index, views, top) { + if (index < 2) { + return index; + } + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; + if (pageTop >= top) { + elt = views[index - 1].div; + pageTop = elt.offsetTop + elt.clientTop; + } + for (let i = index - 2; i >= 0; --i) { + elt = views[i].div; + if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { + break; + } + index = i; + } + return index; +} +function getVisibleElements(_ref2) { + let { + scrollEl, + views, + sortByVisibility = false, + horizontal = false, + rtl = false + } = _ref2; + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; + function isElementBottomAfterViewTop(view) { + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + return elementBottom > top; + } + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; + } + const visible = [], + ids = new Set(), + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); + if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { + firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); + } + let lastEdge = horizontal ? right : -1; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; + if (lastEdge === -1) { + if (viewBottom >= bottom) { + lastEdge = viewBottom; + } + } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { + break; + } + if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { + continue; + } + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, + fractionWidth = (viewWidth - hiddenWidth) / viewWidth; + const percent = fractionHeight * fractionWidth * 100 | 0; + visible.push({ + id: view.id, + x: currentWidth, + y: currentHeight, + view, + percent, + widthPercent: fractionWidth * 100 | 0 + }); + ids.add(view.id); + } + const first = visible[0], + last = visible.at(-1); + if (sortByVisibility) { + visible.sort(function (a, b) { + const pc = a.percent - b.percent; + if (Math.abs(pc) > 0.001) { + return -pc; + } + return a.id - b.id; + }); + } + return { + first, + last, + views: visible, + ids + }; +} +function noContextMenuHandler(evt) { + evt.preventDefault(); +} +function normalizeWheelEventDirection(evt) { + let delta = Math.hypot(evt.deltaX, evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); + if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { + delta = -delta; + } + return delta; +} +function normalizeWheelEventDelta(evt) { + let delta = normalizeWheelEventDirection(evt); + const MOUSE_DOM_DELTA_PIXEL_MODE = 0; + const MOUSE_DOM_DELTA_LINE_MODE = 1; + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; + if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) { + delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; + } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) { + delta /= MOUSE_LINES_PER_PAGE; + } + return delta; +} +function isValidRotation(angle) { + return Number.isInteger(angle) && angle % 90 === 0; +} +function isValidScrollMode(mode) { + return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; +} +function isValidSpreadMode(mode) { + return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; +} +function isPortraitOrientation(size) { + return size.width <= size.height; +} +const animationStarted = new Promise(function (resolve) { + window.requestAnimationFrame(resolve); +}); +exports.animationStarted = animationStarted; +const docStyle = document.documentElement.style; +exports.docStyle = docStyle; +function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} +var _classList = /*#__PURE__*/new WeakMap(); +var _percent = /*#__PURE__*/new WeakMap(); +var _visible = /*#__PURE__*/new WeakMap(); +class ProgressBar { + constructor(id) { + _classPrivateFieldInitSpec(this, _classList, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _percent, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _visible, { + writable: true, + value: true + }); + const bar = document.getElementById(id); + _classPrivateFieldSet(this, _classList, bar.classList); + } + get percent() { + return _classPrivateFieldGet(this, _percent); + } + set percent(val) { + _classPrivateFieldSet(this, _percent, clamp(val, 0, 100)); + if (isNaN(val)) { + _classPrivateFieldGet(this, _classList).add("indeterminate"); + return; + } + _classPrivateFieldGet(this, _classList).remove("indeterminate"); + docStyle.setProperty("--progressBar-percent", `${_classPrivateFieldGet(this, _percent)}%`); + } + setWidth(viewer) { + if (!viewer) { + return; + } + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + if (scrollbarWidth > 0) { + docStyle.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); + } + } + hide() { + if (!_classPrivateFieldGet(this, _visible)) { + return; + } + _classPrivateFieldSet(this, _visible, false); + _classPrivateFieldGet(this, _classList).add("hidden"); + } + show() { + if (_classPrivateFieldGet(this, _visible)) { + return; + } + _classPrivateFieldSet(this, _visible, true); + _classPrivateFieldGet(this, _classList).remove("hidden"); + } +} +exports.ProgressBar = ProgressBar; +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + while ((_curActiveOrFocused = curActiveOrFocused) !== null && _curActiveOrFocused !== void 0 && _curActiveOrFocused.shadowRoot) { + var _curActiveOrFocused; + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + } + return curActiveOrFocused; +} +function apiPageLayoutToViewerModes(layout) { + let scrollMode = ScrollMode.VERTICAL, + spreadMode = SpreadMode.NONE; + switch (layout) { + case "SinglePage": + scrollMode = ScrollMode.PAGE; + break; + case "OneColumn": + break; + case "TwoPageLeft": + scrollMode = ScrollMode.PAGE; + case "TwoColumnLeft": + spreadMode = SpreadMode.ODD; + break; + case "TwoPageRight": + scrollMode = ScrollMode.PAGE; + case "TwoColumnRight": + spreadMode = SpreadMode.EVEN; + break; + } + return { + scrollMode, + spreadMode + }; +} +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; + case "UseThumbs": + return SidebarView.THUMBS; + case "UseOutlines": + return SidebarView.OUTLINE; + case "UseAttachments": + return SidebarView.ATTACHMENTS; + case "UseOC": + return SidebarView.LAYERS; + } + return SidebarView.NONE; +} + +/***/ }), +/* 2 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0; +const compatibilityParams = Object.create(null); +exports.compatibilityParams = compatibilityParams; +{ + const userAgent = navigator.userAgent || ""; + const platform = navigator.platform || ""; + const maxTouchPoints = navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +const OptionKind = { + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +exports.OptionKind = OptionKind; +const defaultOptions = { + annotationEditorMode: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + annotationMode: { + value: 2, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomValue: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableScripting: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: "noopener noreferrer nofollow", + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: "./images/", + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 16777216, + kind: OptionKind.VIEWER + }, + forcePageColors: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsBackground: { + value: "Canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsForeground: { + value: "CanvasText", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + useOnlyCssZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewerCssTheme: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: "../web/cmaps/", + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + enableXfa: { + value: true, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + isOffscreenCanvasSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + standardFontDataUrl: { + value: "../web/standard_fonts/", + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.js", + kind: OptionKind.WORKER + } +}; +{ + defaultOptions.defaultUrl = { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }; + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER + }; + defaultOptions.locale = { + value: navigator.language || "en-US", + kind: OptionKind.VIEWER + }; + defaultOptions.renderer = { + value: "canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.js", + kind: OptionKind.VIEWER + }; +} +const userOptions = Object.create(null); +class AppOptions { + constructor() { + throw new Error("Cannot initialize AppOptions."); + } + static get(name) { + const userOption = userOptions[name]; + if (userOption !== undefined) { + return userOption; + } + const defaultOption = defaultOptions[name]; + if (defaultOption !== undefined) { + return compatibilityParams[name] ?? defaultOption.value; + } + return undefined; + } + static getAll() { + let kind = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + const options = Object.create(null); + for (const name in defaultOptions) { + const defaultOption = defaultOptions[name]; + if (kind) { + if ((kind & defaultOption.kind) === 0) { + continue; + } + if (kind === OptionKind.PREFERENCE) { + const value = defaultOption.value, + valueType = typeof value; + if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { + options[name] = value; + continue; + } + throw new Error(`Invalid type for preference: ${name}`); + } + } + const userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : compatibilityParams[name] ?? defaultOption.value; + } + return options; + } + static set(name, value) { + userOptions[name] = value; + } + static setAll(options) { + for (const name in options) { + userOptions[name] = options[name]; + } + } + static remove(name) { + delete userOptions[name]; + } + static _hasUserOptions() { + return Object.keys(userOptions).length > 0; + } +} +exports.AppOptions = AppOptions; + +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0; +var _ui_utils = __webpack_require__(1); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; +function addLinkAttributes(link) { + let { + url, + target, + rel, + enabled = true + } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + if (!url || typeof url !== "string") { + throw new Error('A valid "url" parameter must provided.'); + } + const urlNullRemoved = (0, _ui_utils.removeNullCharacters)(url); + if (enabled) { + link.href = link.title = urlNullRemoved; + } else { + link.href = ""; + link.title = `Disabled: ${urlNullRemoved}`; + link.onclick = () => { + return false; + }; + } + let targetStr = ""; + switch (target) { + case LinkTarget.NONE: + break; + case LinkTarget.SELF: + targetStr = "_self"; + break; + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; +} +var _pagesRefCache = /*#__PURE__*/new WeakMap(); +var _goToDestinationHelper = /*#__PURE__*/new WeakSet(); +class PDFLinkService { + constructor() { + let { + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + ignoreDestinationZoom = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + _classPrivateMethodInitSpec(this, _goToDestinationHelper); + _classPrivateFieldInitSpec(this, _pagesRefCache, { + writable: true, + value: new Map() + }); + this.eventBus = eventBus; + this.externalLinkTarget = externalLinkTarget; + this.externalLinkRel = externalLinkRel; + this.externalLinkEnabled = true; + this._ignoreDestinationZoom = ignoreDestinationZoom; + this.baseUrl = null; + this.pdfDocument = null; + this.pdfViewer = null; + this.pdfHistory = null; + } + setDocument(pdfDocument) { + let baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + _classPrivateFieldGet(this, _pagesRefCache).clear(); + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } + get page() { + return this.pdfViewer.currentPageNumber; + } + set page(value) { + this.pdfViewer.currentPageNumber = value; + } + get rotation() { + return this.pdfViewer.pagesRotation; + } + set rotation(value) { + this.pdfViewer.pagesRotation = value; + } + async goToDestination(dest) { + if (!this.pdfDocument) { + return; + } + let namedDest, explicitDest; + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; + } + if (!Array.isArray(explicitDest)) { + console.error(`PDFLinkService.goToDestination: "${explicitDest}" is not ` + `a valid destination array, for dest="${dest}".`); + return; + } + _classPrivateMethodGet(this, _goToDestinationHelper, _goToDestinationHelper2).call(this, dest, namedDest, explicitDest); + } + goToPage(val) { + if (!this.pdfDocument) { + return; + } + const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.pushPage(pageNumber); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber + }); + } + addLinkAttributes(link, url) { + let newWindow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + addLinkAttributes(link, { + url, + target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget, + rel: this.externalLinkRel, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + if (typeof dest === "string") { + if (dest.length > 0) { + return this.getAnchorUrl("#" + escape(dest)); + } + } else if (Array.isArray(dest)) { + const str = JSON.stringify(dest); + if (str.length > 0) { + return this.getAnchorUrl("#" + escape(str)); + } + } + return this.getAnchorUrl(""); + } + getAnchorUrl(anchor) { + return (this.baseUrl || "") + anchor; + } + setHash(hash) { + if (!this.pdfDocument) { + return; + } + let pageNumber, dest; + if (hash.includes("=")) { + const params = (0, _ui_utils.parseQueryString)(hash); + if (params.has("search")) { + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: params.get("search").replace(/"/g, ""), + phraseSearch: params.get("phrase") === "true" + }); + } + if (params.has("page")) { + pageNumber = params.get("page") | 0 || 1; + } + if (params.has("zoom")) { + const zoomArgs = params.get("zoom").split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else { + if (zoomArg === "Fit" || zoomArg === "FitB") { + dest = [null, { + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); + } else { + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; + } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`); + } + } + } + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + if (params.has("pagemode")) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.get("pagemode") + }); + } + if (params.has("nameddest")) { + this.goToDestination(params.get("nameddest")); + } + } else { + dest = unescape(hash); + try { + dest = JSON.parse(dest); + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch (ex) {} + if (typeof dest === "string" || _classStaticPrivateMethodGet(PDFLinkService, PDFLinkService, _isValidExplicitDestination).call(PDFLinkService, dest)) { + this.goToDestination(dest); + return; + } + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); + } + } + executeNamedAction(action) { + var _this$pdfHistory, _this$pdfHistory2; + switch (action) { + case "GoBack": + (_this$pdfHistory = this.pdfHistory) === null || _this$pdfHistory === void 0 ? void 0 : _this$pdfHistory.back(); + break; + case "GoForward": + (_this$pdfHistory2 = this.pdfHistory) === null || _this$pdfHistory2 === void 0 ? void 0 : _this$pdfHistory2.forward(); + break; + case "NextPage": + this.pdfViewer.nextPage(); + break; + case "PrevPage": + this.pdfViewer.previousPage(); + break; + case "LastPage": + this.page = this.pagesCount; + break; + case "FirstPage": + this.page = 1; + break; + default: + break; + } + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + async executeSetOCGState(action) { + const pdfDocument = this.pdfDocument; + const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; + if (pdfDocument !== this.pdfDocument) { + return; + } + let operator; + for (const elem of action.state) { + switch (elem) { + case "ON": + case "OFF": + case "Toggle": + operator = elem; + continue; + } + switch (operator) { + case "ON": + optionalContentConfig.setVisibility(elem, true); + break; + case "OFF": + optionalContentConfig.setVisibility(elem, false); + break; + case "Toggle": + const group = optionalContentConfig.getGroup(elem); + if (group) { + optionalContentConfig.setVisibility(elem, !group.visible); + } + break; + } + } + this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); + } + cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + _classPrivateFieldGet(this, _pagesRefCache).set(refStr, pageNum); + } + _cachedPageNumber(pageRef) { + if (!pageRef) { + return null; + } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return _classPrivateFieldGet(this, _pagesRefCache).get(refStr) || null; + } + isPageVisible(pageNumber) { + return this.pdfViewer.isPageVisible(pageNumber); + } + isPageCached(pageNumber) { + return this.pdfViewer.isPageCached(pageNumber); + } +} +exports.PDFLinkService = PDFLinkService; +function _goToDestinationHelper2(rawDest) { + let namedDest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let explicitDest = arguments.length > 2 ? arguments[2] : undefined; + const destRef = explicitDest[0]; + let pageNumber; + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this._cachedPageNumber(destRef); + if (!pageNumber) { + this.pdfDocument.getPageIndex(destRef).then(pageIndex => { + this.cachePageRef(pageIndex + 1, destRef); + _classPrivateMethodGet(this, _goToDestinationHelper, _goToDestinationHelper2).call(this, rawDest, namedDest, explicitDest); + }).catch(() => { + console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid page reference, for dest="${rawDest}".`); + }); + return; + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } else { + console.error(`PDFLinkService.#goToDestinationHelper: "${destRef}" is not ` + `a valid destination reference, for dest="${rawDest}".`); + return; + } + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService.#goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber + }); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); +} +function _isValidExplicitDestination(dest) { + if (!Array.isArray(dest)) { + return false; + } + const destLength = dest.length; + if (destLength < 2) { + return false; + } + const page = dest[0]; + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + return false; + } + const zoom = dest[1]; + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { + return false; + } + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (destLength !== 5) { + return false; + } + break; + case "Fit": + case "FitB": + return destLength === 2; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (destLength !== 3) { + return false; + } + break; + case "FitR": + if (destLength !== 6) { + return false; + } + allowNull = false; + break; + default: + return false; + } + for (let i = 2; i < destLength; i++) { + const param = dest[i]; + if (!(typeof param === "number" || allowNull && param === null)) { + return false; + } + } + return true; +} +class SimpleLinkService { + constructor() { + this.externalLinkEnabled = true; + } + get pagesCount() { + return 0; + } + get page() { + return 0; + } + set page(value) {} + get rotation() { + return 0; + } + set rotation(value) {} + async goToDestination(dest) {} + goToPage(val) {} + addLinkAttributes(link, url) { + let newWindow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + addLinkAttributes(link, { + url, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + return "#"; + } + getAnchorUrl(hash) { + return "#"; + } + setHash(hash) {} + executeNamedAction(action) {} + executeSetOCGState(action) {} + cachePageRef(pageNum, pageRef) {} + isPageVisible(pageNumber) { + return true; + } + isPageCached(pageNumber) { + return true; + } +} +exports.SimpleLinkService = SimpleLinkService; + +/***/ }), +/* 4 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFViewerApplication = exports.PDFPrintServiceFactory = exports.DefaultExternalServices = void 0; +var _ui_utils = __webpack_require__(1); +var _pdfjsLib = __webpack_require__(5); +var _app_options = __webpack_require__(2); +var _event_utils = __webpack_require__(6); +var _pdf_cursor_tools = __webpack_require__(7); +var _pdf_link_service = __webpack_require__(3); +var _annotation_editor_params = __webpack_require__(9); +var _overlay_manager = __webpack_require__(10); +var _password_prompt = __webpack_require__(12); +var _pdf_attachment_viewer = __webpack_require__(13); +var _pdf_document_properties = __webpack_require__(15); +var _pdf_find_bar = __webpack_require__(16); +var _pdf_find_controller = __webpack_require__(17); +var _pdf_history = __webpack_require__(19); +var _pdf_layer_viewer = __webpack_require__(20); +var _pdf_outline_viewer = __webpack_require__(21); +var _pdf_presentation_mode = __webpack_require__(22); +var _pdf_rendering_queue = __webpack_require__(23); +var _pdf_scripting_manager = __webpack_require__(24); +var _pdf_sidebar = __webpack_require__(25); +var _pdf_sidebar_resizer = __webpack_require__(26); +var _pdf_thumbnail_viewer = __webpack_require__(27); +var _pdf_viewer = __webpack_require__(29); +var _secondary_toolbar = __webpack_require__(39); +var _toolbar = __webpack_require__(40); +var _view_history = __webpack_require__(41); +const DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +const ViewOnLoad = { + UNKNOWN: -1, + PREVIOUS: 0, + INITIAL: 1 +}; +const ViewerCssTheme = { + AUTOMATIC: 0, + LIGHT: 1, + DARK: 2 +}; +const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"]; +const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"]; +class DefaultExternalServices { + constructor() { + throw new Error("Cannot initialize DefaultExternalServices."); + } + static updateFindControlState(data) {} + static updateFindMatchesCount(data) {} + static initPassiveLoading(callbacks) {} + static reportTelemetry(data) {} + static createDownloadManager(options) { + throw new Error("Not implemented: createDownloadManager"); + } + static createPreferences() { + throw new Error("Not implemented: createPreferences"); + } + static createL10n(options) { + throw new Error("Not implemented: createL10n"); + } + static createScripting(options) { + throw new Error("Not implemented: createScripting"); + } + static get supportsIntegratedFind() { + return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false); + } + static get supportsDocumentFonts() { + return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true); + } + static get supportedMouseWheelZoomModifierKeys() { + return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", { + ctrlKey: true, + metaKey: true + }); + } + static get isInAutomation() { + return (0, _pdfjsLib.shadow)(this, "isInAutomation", false); + } + static updateEditorStates(data) { + throw new Error("Not implemented: updateEditorStates"); + } +} +exports.DefaultExternalServices = DefaultExternalServices; +const PDFViewerApplication = { + initialBookmark: document.location.hash.substring(1), + _initializedCapability: (0, _pdfjsLib.createPromiseCapability)(), + appConfig: null, + pdfDocument: null, + pdfLoadingTask: null, + printService: null, + pdfViewer: null, + pdfThumbnailViewer: null, + pdfRenderingQueue: null, + pdfPresentationMode: null, + pdfDocumentProperties: null, + pdfLinkService: null, + pdfHistory: null, + pdfSidebar: null, + pdfSidebarResizer: null, + pdfOutlineViewer: null, + pdfAttachmentViewer: null, + pdfLayerViewer: null, + pdfCursorTools: null, + pdfScriptingManager: null, + store: null, + downloadManager: null, + overlayManager: null, + preferences: null, + toolbar: null, + secondaryToolbar: null, + eventBus: null, + l10n: null, + annotationEditorParams: null, + isInitialViewSet: false, + downloadComplete: false, + isViewerEmbedded: window.parent !== window, + url: "", + baseUrl: "", + _downloadUrl: "", + externalServices: DefaultExternalServices, + _boundEvents: Object.create(null), + documentInfo: null, + metadata: null, + _contentDispositionFilename: null, + _contentLength: null, + _saveInProgress: false, + _docStats: null, + _wheelUnusedTicks: 0, + _PDFBug: null, + _hasAnnotationEditors: false, + _title: document.title, + _printAnnotationStoragePromise: null, + async initialize(appConfig) { + this.preferences = this.externalServices.createPreferences(); + this.appConfig = appConfig; + await this._readPreferences(); + await this._parseHashParameters(); + this._forceCssTheme(); + await this._initializeL10n(); + if (this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdf_link_service.LinkTarget.NONE) { + _app_options.AppOptions.set("externalLinkTarget", _pdf_link_service.LinkTarget.TOP); + } + await this._initializeViewerComponents(); + this.bindEvents(); + this.bindWindowEvents(); + const appContainer = appConfig.appContainer || document.documentElement; + this.l10n.translate(appContainer).then(() => { + this.eventBus.dispatch("localized", { + source: this + }); + }); + this._initializedCapability.resolve(); + }, + async _readPreferences() { + if (_app_options.AppOptions.get("disablePreferences")) { + return; + } + if (_app_options.AppOptions._hasUserOptions()) { + console.warn("_readPreferences: The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option in order to prevent that.'); + } + try { + _app_options.AppOptions.setAll(await this.preferences.getAll()); + } catch (reason) { + console.error(`_readPreferences: "${reason === null || reason === void 0 ? void 0 : reason.message}".`); + } + }, + async _parseHashParameters() { + if (!_app_options.AppOptions.get("pdfBugEnabled")) { + return; + } + const hash = document.location.hash.substring(1); + if (!hash) { + return; + } + const { + mainContainer, + viewerContainer + } = this.appConfig, + params = (0, _ui_utils.parseQueryString)(hash); + if (params.get("disableworker") === "true") { + try { + await loadFakeWorker(); + } catch (ex) { + console.error(`_parseHashParameters: "${ex.message}".`); + } + } + if (params.has("disablerange")) { + _app_options.AppOptions.set("disableRange", params.get("disablerange") === "true"); + } + if (params.has("disablestream")) { + _app_options.AppOptions.set("disableStream", params.get("disablestream") === "true"); + } + if (params.has("disableautofetch")) { + _app_options.AppOptions.set("disableAutoFetch", params.get("disableautofetch") === "true"); + } + if (params.has("disablefontface")) { + _app_options.AppOptions.set("disableFontFace", params.get("disablefontface") === "true"); + } + if (params.has("disablehistory")) { + _app_options.AppOptions.set("disableHistory", params.get("disablehistory") === "true"); + } + if (params.has("verbosity")) { + _app_options.AppOptions.set("verbosity", params.get("verbosity") | 0); + } + if (params.has("textlayer")) { + switch (params.get("textlayer")) { + case "off": + _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); + break; + case "visible": + case "shadow": + case "hover": + viewerContainer.classList.add(`textLayer-${params.get("textlayer")}`); + try { + await loadPDFBug(this); + this._PDFBug.loadCSS(); + } catch (ex) { + console.error(`_parseHashParameters: "${ex.message}".`); + } + break; + } + } + if (params.has("pdfbug")) { + _app_options.AppOptions.set("pdfBug", true); + _app_options.AppOptions.set("fontExtraProperties", true); + const enabled = params.get("pdfbug").split(","); + try { + await loadPDFBug(this); + this._PDFBug.init({ + OPS: _pdfjsLib.OPS + }, mainContainer, enabled); + } catch (ex) { + console.error(`_parseHashParameters: "${ex.message}".`); + } + } + if (params.has("locale")) { + _app_options.AppOptions.set("locale", params.get("locale")); + } + }, + async _initializeL10n() { + this.l10n = this.externalServices.createL10n({ + locale: _app_options.AppOptions.get("locale") + }); + const dir = await this.l10n.getDirection(); + document.getElementsByTagName("html")[0].dir = dir; + }, + _forceCssTheme() { + const cssTheme = _app_options.AppOptions.get("viewerCssTheme"); + if (cssTheme === ViewerCssTheme.AUTOMATIC || !Object.values(ViewerCssTheme).includes(cssTheme)) { + return; + } + try { + const styleSheet = document.styleSheets[0]; + const cssRules = (styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.cssRules) || []; + for (let i = 0, ii = cssRules.length; i < ii; i++) { + var _rule$media; + const rule = cssRules[i]; + if (rule instanceof CSSMediaRule && ((_rule$media = rule.media) === null || _rule$media === void 0 ? void 0 : _rule$media[0]) === "(prefers-color-scheme: dark)") { + if (cssTheme === ViewerCssTheme.LIGHT) { + styleSheet.deleteRule(i); + return; + } + const darkRules = /^@media \(prefers-color-scheme: dark\) {\n\s*([\w\s-.,:;/\\{}()]+)\n}$/.exec(rule.cssText); + if (darkRules !== null && darkRules !== void 0 && darkRules[1]) { + styleSheet.deleteRule(i); + styleSheet.insertRule(darkRules[1], i); + } + return; + } + } + } catch (reason) { + console.error(`_forceCssTheme: "${reason === null || reason === void 0 ? void 0 : reason.message}".`); + } + }, + async _initializeViewerComponents() { + const { + appConfig, + externalServices + } = this; + const eventBus = externalServices.isInAutomation ? new _event_utils.AutomationEventBus() : new _event_utils.EventBus(); + this.eventBus = eventBus; + this.overlayManager = new _overlay_manager.OverlayManager(); + const pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + pdfRenderingQueue.onIdle = this._cleanup.bind(this); + this.pdfRenderingQueue = pdfRenderingQueue; + const pdfLinkService = new _pdf_link_service.PDFLinkService({ + eventBus, + externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"), + externalLinkRel: _app_options.AppOptions.get("externalLinkRel"), + ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom") + }); + this.pdfLinkService = pdfLinkService; + const downloadManager = externalServices.createDownloadManager(); + this.downloadManager = downloadManager; + const findController = new _pdf_find_controller.PDFFindController({ + linkService: pdfLinkService, + eventBus + }); + this.findController = findController; + const pdfScriptingManager = new _pdf_scripting_manager.PDFScriptingManager({ + eventBus, + sandboxBundleSrc: _app_options.AppOptions.get("sandboxBundleSrc"), + scriptingFactory: externalServices, + docPropertiesLookup: this._scriptingDocProperties.bind(this) + }); + this.pdfScriptingManager = pdfScriptingManager; + const container = appConfig.mainContainer, + viewer = appConfig.viewerContainer; + const annotationEditorMode = _app_options.AppOptions.get("annotationEditorMode"); + const pageColors = _app_options.AppOptions.get("forcePageColors") || window.matchMedia("(forced-colors: active)").matches ? { + background: _app_options.AppOptions.get("pageColorsBackground"), + foreground: _app_options.AppOptions.get("pageColorsForeground") + } : null; + this.pdfViewer = new _pdf_viewer.PDFViewer({ + container, + viewer, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager, + findController, + scriptingManager: _app_options.AppOptions.get("enableScripting") && pdfScriptingManager, + renderer: _app_options.AppOptions.get("renderer"), + l10n: this.l10n, + textLayerMode: _app_options.AppOptions.get("textLayerMode"), + annotationMode: _app_options.AppOptions.get("annotationMode"), + annotationEditorMode, + imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), + enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), + useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"), + maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels"), + enablePermissions: _app_options.AppOptions.get("enablePermissions"), + pageColors + }); + pdfRenderingQueue.setViewer(this.pdfViewer); + pdfLinkService.setViewer(this.pdfViewer); + pdfScriptingManager.setViewer(this.pdfViewer); + this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + l10n: this.l10n, + pageColors + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + if (!this.isViewerEmbedded && !_app_options.AppOptions.get("disableHistory")) { + this.pdfHistory = new _pdf_history.PDFHistory({ + linkService: pdfLinkService, + eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + } + if (!this.supportsIntegratedFind) { + this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); + } + if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + this.annotationEditorParams = new _annotation_editor_params.AnnotationEditorParams(appConfig.annotationEditorParams, eventBus); + } else { + for (const element of [document.getElementById("editorModeButtons"), document.getElementById("editorModeSeparator")]) { + element.hidden = true; + } + } + this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n, () => { + return this._docFilename; + }); + this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") + }); + this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); + this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, eventBus, this.externalServices); + if (this.supportsFullscreen) { + this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ + container, + pdfViewer: this.pdfViewer, + eventBus + }); + } + this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n, this.isViewerEmbedded); + this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + linkService: pdfLinkService, + downloadManager + }); + this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + downloadManager + }); + this.pdfLayerViewer = new _pdf_layer_viewer.PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ + elements: appConfig.sidebar, + pdfViewer: this.pdfViewer, + pdfThumbnailViewer: this.pdfThumbnailViewer, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); + }, + run(config) { + this.initialize(config).then(webViewerInitialized); + }, + get initialized() { + return this._initializedCapability.settled; + }, + get initializedPromise() { + return this._initializedCapability.promise; + }, + zoomIn(steps) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.increaseScale(steps); + }, + zoomOut(steps) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.decreaseScale(steps); + }, + zoomReset() { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + }, + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + }, + get page() { + return this.pdfViewer.currentPageNumber; + }, + set page(val) { + this.pdfViewer.currentPageNumber = val; + }, + get supportsPrinting() { + return PDFPrintServiceFactory.instance.supportsPrinting; + }, + get supportsFullscreen() { + return (0, _pdfjsLib.shadow)(this, "supportsFullscreen", document.fullscreenEnabled); + }, + get supportsIntegratedFind() { + return this.externalServices.supportsIntegratedFind; + }, + get supportsDocumentFonts() { + return this.externalServices.supportsDocumentFonts; + }, + get loadingBar() { + const bar = new _ui_utils.ProgressBar("loadingBar"); + return (0, _pdfjsLib.shadow)(this, "loadingBar", bar); + }, + get supportedMouseWheelZoomModifierKeys() { + return this.externalServices.supportedMouseWheelZoomModifierKeys; + }, + initPassiveLoading() { + throw new Error("Not implemented: initPassiveLoading"); + }, + setTitleUsingUrl() { + let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + let downloadUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + this.url = url; + this.baseUrl = url.split("#")[0]; + if (downloadUrl) { + this._downloadUrl = downloadUrl === url ? this.baseUrl : downloadUrl.split("#")[0]; + } + let title = (0, _pdfjsLib.getPdfFilenameFromUrl)(url, ""); + if (!title) { + try { + title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url; + } catch (ex) { + title = url; + } + } + this.setTitle(title); + }, + setTitle() { + let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._title; + this._title = title; + if (this.isViewerEmbedded) { + return; + } + const editorIndicator = this._hasAnnotationEditors && !this.pdfRenderingQueue.printing; + document.title = `${editorIndicator ? "* " : ""}${title}`; + }, + get _docFilename() { + return this._contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url); + }, + _hideViewBookmark() { + this.appConfig.secondaryToolbar.viewBookmarkButton.hidden = true; + }, + async close() { + var _this$pdfDocument, _this$pdfHistory, _this$findBar, _this$_PDFBug; + this._unblockDocumentLoadEvent(); + this._hideViewBookmark(); + if (!this.pdfLoadingTask) { + return; + } + if (((_this$pdfDocument = this.pdfDocument) === null || _this$pdfDocument === void 0 ? void 0 : _this$pdfDocument.annotationStorage.size) > 0 && this._annotationStorageModified) { + try { + await this.save(); + } catch (reason) {} + } + const promises = []; + promises.push(this.pdfLoadingTask.destroy()); + this.pdfLoadingTask = null; + if (this.pdfDocument) { + this.pdfDocument = null; + this.pdfThumbnailViewer.setDocument(null); + this.pdfViewer.setDocument(null); + this.pdfLinkService.setDocument(null); + this.pdfDocumentProperties.setDocument(null); + } + this.pdfLinkService.externalLinkEnabled = true; + this.store = null; + this.isInitialViewSet = false; + this.downloadComplete = false; + this.url = ""; + this.baseUrl = ""; + this._downloadUrl = ""; + this.documentInfo = null; + this.metadata = null; + this._contentDispositionFilename = null; + this._contentLength = null; + this._saveInProgress = false; + this._docStats = null; + this._hasAnnotationEditors = false; + promises.push(this.pdfScriptingManager.destroyPromise); + this.setTitle(); + this.pdfSidebar.reset(); + this.pdfOutlineViewer.reset(); + this.pdfAttachmentViewer.reset(); + this.pdfLayerViewer.reset(); + (_this$pdfHistory = this.pdfHistory) === null || _this$pdfHistory === void 0 ? void 0 : _this$pdfHistory.reset(); + (_this$findBar = this.findBar) === null || _this$findBar === void 0 ? void 0 : _this$findBar.reset(); + this.toolbar.reset(); + this.secondaryToolbar.reset(); + (_this$_PDFBug = this._PDFBug) === null || _this$_PDFBug === void 0 ? void 0 : _this$_PDFBug.cleanup(); + await Promise.all(promises); + }, + async open(file, args) { + if (this.pdfLoadingTask) { + await this.close(); + } + const workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); + for (const key in workerParameters) { + _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; + } + const parameters = Object.create(null); + if (typeof file === "string") { + this.setTitleUsingUrl(file, file); + parameters.url = file; + } else if (file && "byteLength" in file) { + parameters.data = file; + } else if (file.url && file.originalUrl) { + this.setTitleUsingUrl(file.originalUrl, file.url); + parameters.url = file.url; + } + const apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); + for (const key in apiParameters) { + let value = apiParameters[key]; + if (key === "docBaseUrl" && !value) {} + parameters[key] = value; + } + if (args) { + for (const key in args) { + parameters[key] = args[key]; + } + } + const loadingTask = (0, _pdfjsLib.getDocument)(parameters); + this.pdfLoadingTask = loadingTask; + loadingTask.onPassword = (updateCallback, reason) => { + this.pdfLinkService.externalLinkEnabled = false; + this.passwordPrompt.setUpdateCallback(updateCallback, reason); + this.passwordPrompt.open(); + }; + loadingTask.onProgress = _ref => { + let { + loaded, + total + } = _ref; + this.progress(loaded / total); + }; + loadingTask.onUnsupportedFeature = this.fallback.bind(this); + return loadingTask.promise.then(pdfDocument => { + this.load(pdfDocument); + }, reason => { + if (loadingTask !== this.pdfLoadingTask) { + return undefined; + } + let key = "loading_error"; + if (reason instanceof _pdfjsLib.InvalidPDFException) { + key = "invalid_file_error"; + } else if (reason instanceof _pdfjsLib.MissingPDFException) { + key = "missing_file_error"; + } else if (reason instanceof _pdfjsLib.UnexpectedResponseException) { + key = "unexpected_response_error"; + } + return this.l10n.get(key).then(msg => { + this._documentError(msg, { + message: reason === null || reason === void 0 ? void 0 : reason.message + }); + throw reason; + }); + }); + }, + _ensureDownloadComplete() { + if (this.pdfDocument && this.downloadComplete) { + return; + } + throw new Error("PDF document not downloaded."); + }, + async download() { + const url = this._downloadUrl, + filename = this._docFilename; + try { + this._ensureDownloadComplete(); + const data = await this.pdfDocument.getData(); + const blob = new Blob([data], { + type: "application/pdf" + }); + await this.downloadManager.download(blob, url, filename); + } catch (reason) { + await this.downloadManager.downloadUrl(url, filename); + } + }, + async save() { + if (this._saveInProgress) { + return; + } + this._saveInProgress = true; + await this.pdfScriptingManager.dispatchWillSave(); + const url = this._downloadUrl, + filename = this._docFilename; + try { + this._ensureDownloadComplete(); + const data = await this.pdfDocument.saveDocument(); + const blob = new Blob([data], { + type: "application/pdf" + }); + await this.downloadManager.download(blob, url, filename); + } catch (reason) { + console.error(`Error when saving the document: ${reason.message}`); + await this.download(); + } finally { + await this.pdfScriptingManager.dispatchDidSave(); + this._saveInProgress = false; + } + if (this._hasAnnotationEditors) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: "save" + } + }); + } + }, + downloadOrSave() { + var _this$pdfDocument2; + if (((_this$pdfDocument2 = this.pdfDocument) === null || _this$pdfDocument2 === void 0 ? void 0 : _this$pdfDocument2.annotationStorage.size) > 0) { + this.save(); + } else { + this.download(); + } + }, + fallback(featureId) { + this.externalServices.reportTelemetry({ + type: "unsupportedFeature", + featureId + }); + }, + _documentError(message) { + let moreInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + this._unblockDocumentLoadEvent(); + this._otherError(message, moreInfo); + this.eventBus.dispatch("documenterror", { + source: this, + message, + reason: (moreInfo === null || moreInfo === void 0 ? void 0 : moreInfo.message) ?? null + }); + }, + _otherError(message) { + let moreInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const moreInfoText = [`PDF.js v${_pdfjsLib.version || "?"} (build: ${_pdfjsLib.build || "?"})`]; + if (moreInfo) { + moreInfoText.push(`Message: ${moreInfo.message}`); + if (moreInfo.stack) { + moreInfoText.push(`Stack: ${moreInfo.stack}`); + } else { + if (moreInfo.filename) { + moreInfoText.push(`File: ${moreInfo.filename}`); + } + if (moreInfo.lineNumber) { + moreInfoText.push(`Line: ${moreInfo.lineNumber}`); + } + } + } + console.error(`${message}\n\n${moreInfoText.join("\n")}`); + this.fallback(); + }, + progress(level) { + var _this$pdfDocument3; + if (this.downloadComplete) { + return; + } + const percent = Math.round(level * 100); + if (percent <= this.loadingBar.percent) { + return; + } + this.loadingBar.percent = percent; + const disableAutoFetch = ((_this$pdfDocument3 = this.pdfDocument) === null || _this$pdfDocument3 === void 0 ? void 0 : _this$pdfDocument3.loadingParams.disableAutoFetch) ?? _app_options.AppOptions.get("disableAutoFetch"); + if (!disableAutoFetch || isNaN(percent)) { + return; + } + if (this.disableAutoFetchLoadingBarTimeout) { + clearTimeout(this.disableAutoFetchLoadingBarTimeout); + this.disableAutoFetchLoadingBarTimeout = null; + } + this.loadingBar.show(); + this.disableAutoFetchLoadingBarTimeout = setTimeout(() => { + this.loadingBar.hide(); + this.disableAutoFetchLoadingBarTimeout = null; + }, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT); + }, + load(pdfDocument) { + this.pdfDocument = pdfDocument; + pdfDocument.getDownloadInfo().then(_ref2 => { + let { + length + } = _ref2; + this._contentLength = length; + this.downloadComplete = true; + this.loadingBar.hide(); + firstPagePromise.then(() => { + this.eventBus.dispatch("documentloaded", { + source: this + }); + }); + }); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(function () {}); + const pageModePromise = pdfDocument.getPageMode().catch(function () {}); + const openActionPromise = pdfDocument.getOpenAction().catch(function () {}); + this.toolbar.setPagesCount(pdfDocument.numPages, false); + this.secondaryToolbar.setPagesCount(pdfDocument.numPages); + let baseDocumentUrl; + baseDocumentUrl = null; + this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl); + this.pdfDocumentProperties.setDocument(pdfDocument); + const pdfViewer = this.pdfViewer; + pdfViewer.setDocument(pdfDocument); + const { + firstPagePromise, + onePageRendered, + pagesPromise + } = pdfViewer; + const pdfThumbnailViewer = this.pdfThumbnailViewer; + pdfThumbnailViewer.setDocument(pdfDocument); + const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprints[0])).getMultiple({ + page: null, + zoom: _ui_utils.DEFAULT_SCALE_VALUE, + scrollLeft: "0", + scrollTop: "0", + rotation: null, + sidebarView: _ui_utils.SidebarView.UNKNOWN, + scrollMode: _ui_utils.ScrollMode.UNKNOWN, + spreadMode: _ui_utils.SpreadMode.UNKNOWN + }).catch(() => { + return Object.create(null); + }); + firstPagePromise.then(pdfPage => { + this.loadingBar.setWidth(this.appConfig.viewerContainer); + this._initializeAnnotationStorageCallbacks(pdfDocument); + Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async _ref3 => { + let [timeStamp, stored, pageLayout, pageMode, openAction] = _ref3; + const viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); + this._initializePdfHistory({ + fingerprint: pdfDocument.fingerprints[0], + viewOnLoad, + initialDest: openAction === null || openAction === void 0 ? void 0 : openAction.dest + }); + const initialBookmark = this.initialBookmark; + const zoom = _app_options.AppOptions.get("defaultZoomValue"); + let hash = zoom ? `zoom=${zoom}` : null; + let rotation = null; + let sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); + let scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); + let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); + if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; + rotation = parseInt(stored.rotation, 10); + if (sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = stored.sidebarView | 0; + } + if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + scrollMode = stored.scrollMode | 0; + } + if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = stored.spreadMode | 0; + } + } + if (pageMode && sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = (0, _ui_utils.apiPageModeToSidebarView)(pageMode); + } + if (pageLayout && scrollMode === _ui_utils.ScrollMode.UNKNOWN && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(pageLayout); + spreadMode = modes.spreadMode; + } + this.setInitialView(hash, { + rotation, + sidebarView, + scrollMode, + spreadMode + }); + this.eventBus.dispatch("documentinit", { + source: this + }); + if (!this.isViewerEmbedded) { + pdfViewer.focus(); + } + await Promise.race([pagesPromise, new Promise(resolve => { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); + if (!initialBookmark && !hash) { + return; + } + if (pdfViewer.hasEqualPageSizes) { + return; + } + this.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + this.setInitialView(hash); + }).catch(() => { + this.setInitialView(); + }).then(function () { + pdfViewer.update(); + }); + }); + pagesPromise.then(() => { + this._unblockDocumentLoadEvent(); + this._initializeAutoPrint(pdfDocument, openActionPromise); + }, reason => { + this.l10n.get("loading_error").then(msg => { + this._documentError(msg, { + message: reason === null || reason === void 0 ? void 0 : reason.message + }); + }); + }); + onePageRendered.then(data => { + this.externalServices.reportTelemetry({ + type: "pageInfo", + timestamp: data.timestamp + }); + pdfDocument.getOutline().then(outline => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfOutlineViewer.render({ + outline, + pdfDocument + }); + }); + pdfDocument.getAttachments().then(attachments => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfAttachmentViewer.render({ + attachments + }); + }); + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); + }); + }); + this._initializePageLabels(pdfDocument); + this._initializeMetadata(pdfDocument); + }, + async _scriptingDocProperties(pdfDocument) { + var _this$metadata, _this$metadata2; + if (!this.documentInfo) { + await new Promise(resolve => { + this.eventBus._on("metadataloaded", resolve, { + once: true + }); + }); + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + if (!this._contentLength) { + await new Promise(resolve => { + this.eventBus._on("documentloaded", resolve, { + once: true + }); + }); + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + return { + ...this.documentInfo, + baseURL: this.baseUrl, + filesize: this._contentLength, + filename: this._docFilename, + metadata: (_this$metadata = this.metadata) === null || _this$metadata === void 0 ? void 0 : _this$metadata.getRaw(), + authors: (_this$metadata2 = this.metadata) === null || _this$metadata2 === void 0 ? void 0 : _this$metadata2.get("dc:creator"), + numPages: this.pagesCount, + URL: this.url + }; + }, + async _initializeAutoPrint(pdfDocument, openActionPromise) { + const [openAction, javaScript] = await Promise.all([openActionPromise, !this.pdfViewer.enableScripting ? pdfDocument.getJavaScript() : null]); + if (pdfDocument !== this.pdfDocument) { + return; + } + let triggerAutoPrint = false; + if ((openAction === null || openAction === void 0 ? void 0 : openAction.action) === "Print") { + triggerAutoPrint = true; + } + if (javaScript) { + javaScript.some(js => { + if (!js) { + return false; + } + console.warn("Warning: JavaScript support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); + return true; + }); + if (!triggerAutoPrint) { + for (const js of javaScript) { + if (js && _ui_utils.AutoPrintRegExp.test(js)) { + triggerAutoPrint = true; + break; + } + } + } + } + if (triggerAutoPrint) { + this.triggerPrinting(); + } + }, + async _initializeMetadata(pdfDocument) { + const { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + if (pdfDocument !== this.pdfDocument) { + return; + } + this.documentInfo = info; + this.metadata = metadata; + this._contentDispositionFilename ?? (this._contentDispositionFilename = contentDispositionFilename); + this._contentLength ?? (this._contentLength = contentLength); + console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "?"} [${_pdfjsLib.build || "?"}])`); + let pdfTitle = info.Title; + const metadataTitle = metadata === null || metadata === void 0 ? void 0 : metadata.get("dc:title"); + if (metadataTitle) { + if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { + pdfTitle = metadataTitle; + } + } + if (pdfTitle) { + this.setTitle(`${pdfTitle} - ${this._contentDispositionFilename || this._title}`); + } else if (this._contentDispositionFilename) { + this.setTitle(this._contentDispositionFilename); + } + if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) { + if (pdfDocument.loadingParams.enableXfa) { + console.warn("Warning: XFA Foreground documents are not supported"); + } else { + console.warn("Warning: XFA support is not enabled"); + } + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderForms) { + console.warn("Warning: Interactive form support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } + if (info.IsSignaturesPresent) { + console.warn("Warning: Digital signatures validation is not supported"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.signatures); + } + let versionId = "other"; + if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) { + versionId = `v${info.PDFFormatVersion.replace(".", "_")}`; + } + let generatorId = "other"; + if (info.Producer) { + const producer = info.Producer.toLowerCase(); + KNOWN_GENERATORS.some(function (generator) { + if (!producer.includes(generator)) { + return false; + } + generatorId = generator.replace(/[ .-]/g, "_"); + return true; + }); + } + let formType = null; + if (info.IsXFAPresent) { + formType = "xfa"; + } else if (info.IsAcroFormPresent) { + formType = "acroform"; + } + this.externalServices.reportTelemetry({ + type: "documentInfo", + version: versionId, + generator: generatorId, + formType + }); + this.eventBus.dispatch("metadataloaded", { + source: this + }); + }, + async _initializePageLabels(pdfDocument) { + const labels = await pdfDocument.getPageLabels(); + if (pdfDocument !== this.pdfDocument) { + return; + } + if (!labels || _app_options.AppOptions.get("disablePageLabels")) { + return; + } + const numLabels = labels.length; + let standardLabels = 0, + emptyLabels = 0; + for (let i = 0; i < numLabels; i++) { + const label = labels[i]; + if (label === (i + 1).toString()) { + standardLabels++; + } else if (label === "") { + emptyLabels++; + } else { + break; + } + } + if (standardLabels >= numLabels || emptyLabels >= numLabels) { + return; + } + const { + pdfViewer, + pdfThumbnailViewer, + toolbar + } = this; + pdfViewer.setPageLabels(labels); + pdfThumbnailViewer.setPageLabels(labels); + toolbar.setPagesCount(numLabels, true); + toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + }, + _initializePdfHistory(_ref4) { + let { + fingerprint, + viewOnLoad, + initialDest = null + } = _ref4; + if (!this.pdfHistory) { + return; + } + this.pdfHistory.initialize({ + fingerprint, + resetHistory: viewOnLoad === ViewOnLoad.INITIAL, + updateUrl: _app_options.AppOptions.get("historyUpdateUrl") + }); + if (this.pdfHistory.initialBookmark) { + this.initialBookmark = this.pdfHistory.initialBookmark; + this.initialRotation = this.pdfHistory.initialRotation; + } + if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) { + this.initialBookmark = JSON.stringify(initialDest); + this.pdfHistory.push({ + explicitDest: initialDest, + pageNumber: null + }); + } + }, + _initializeAnnotationStorageCallbacks(pdfDocument) { + if (pdfDocument !== this.pdfDocument) { + return; + } + const { + annotationStorage + } = pdfDocument; + annotationStorage.onSetModified = () => { + window.addEventListener("beforeunload", beforeUnload); + this._annotationStorageModified = true; + }; + annotationStorage.onResetModified = () => { + window.removeEventListener("beforeunload", beforeUnload); + delete this._annotationStorageModified; + }; + annotationStorage.onAnnotationEditor = typeStr => { + this._hasAnnotationEditors = !!typeStr; + this.setTitle(); + if (typeStr) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: typeStr + } + }); + } + }; + }, + setInitialView(storedHash) { + let { + rotation, + sidebarView, + scrollMode, + spreadMode + } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + const setRotation = angle => { + if ((0, _ui_utils.isValidRotation)(angle)) { + this.pdfViewer.pagesRotation = angle; + } + }; + const setViewerModes = (scroll, spread) => { + if ((0, _ui_utils.isValidScrollMode)(scroll)) { + this.pdfViewer.scrollMode = scroll; + } + if ((0, _ui_utils.isValidSpreadMode)(spread)) { + this.pdfViewer.spreadMode = spread; + } + }; + this.isInitialViewSet = true; + this.pdfSidebar.setInitialView(sidebarView); + setViewerModes(scrollMode, spreadMode); + if (this.initialBookmark) { + setRotation(this.initialRotation); + delete this.initialRotation; + this.pdfLinkService.setHash(this.initialBookmark); + this.initialBookmark = null; + } else if (storedHash) { + setRotation(rotation); + this.pdfLinkService.setHash(storedHash); + } + this.toolbar.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); + this.secondaryToolbar.setPageNumber(this.pdfViewer.currentPageNumber); + if (!this.pdfViewer.currentScaleValue) { + this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } + }, + _cleanup() { + if (!this.pdfDocument) { + return; + } + this.pdfViewer.cleanup(); + this.pdfThumbnailViewer.cleanup(); + this.pdfDocument.cleanup(this.pdfViewer.renderer === _ui_utils.RendererType.SVG); + }, + forceRendering() { + this.pdfRenderingQueue.printing = !!this.printService; + this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.visibleView === _ui_utils.SidebarView.THUMBS; + this.pdfRenderingQueue.renderHighestPriority(); + }, + beforePrint() { + this._printAnnotationStoragePromise = this.pdfScriptingManager.dispatchWillPrint().catch(() => {}).then(() => { + var _this$pdfDocument4; + return (_this$pdfDocument4 = this.pdfDocument) === null || _this$pdfDocument4 === void 0 ? void 0 : _this$pdfDocument4.annotationStorage.print; + }); + if (this.printService) { + return; + } + if (!this.supportsPrinting) { + this.l10n.get("printing_not_supported").then(msg => { + this._otherError(msg); + }); + return; + } + if (!this.pdfViewer.pageViewsReady) { + this.l10n.get("printing_not_ready").then(msg => { + window.alert(msg); + }); + return; + } + const pagesOverview = this.pdfViewer.getPagesOverview(); + const printContainer = this.appConfig.printContainer; + const printResolution = _app_options.AppOptions.get("printResolution"); + const optionalContentConfigPromise = this.pdfViewer.optionalContentConfigPromise; + const printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this._printAnnotationStoragePromise, this.l10n); + this.printService = printService; + this.forceRendering(); + this.setTitle(); + printService.layout(); + this.externalServices.reportTelemetry({ + type: "print" + }); + if (this._hasAnnotationEditors) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: "print" + } + }); + } + }, + afterPrint() { + if (this._printAnnotationStoragePromise) { + this._printAnnotationStoragePromise.then(() => { + this.pdfScriptingManager.dispatchDidPrint(); + }); + this._printAnnotationStoragePromise = null; + } + if (this.printService) { + var _this$pdfDocument5; + this.printService.destroy(); + this.printService = null; + (_this$pdfDocument5 = this.pdfDocument) === null || _this$pdfDocument5 === void 0 ? void 0 : _this$pdfDocument5.annotationStorage.resetModified(); + } + this.forceRendering(); + this.setTitle(); + }, + rotatePages(delta) { + this.pdfViewer.pagesRotation += delta; + }, + requestPresentationMode() { + var _this$pdfPresentation; + (_this$pdfPresentation = this.pdfPresentationMode) === null || _this$pdfPresentation === void 0 ? void 0 : _this$pdfPresentation.request(); + }, + triggerPrinting() { + if (!this.supportsPrinting) { + return; + } + window.print(); + }, + bindEvents() { + const { + eventBus, + _boundEvents + } = this; + _boundEvents.beforePrint = this.beforePrint.bind(this); + _boundEvents.afterPrint = this.afterPrint.bind(this); + eventBus._on("resize", webViewerResize); + eventBus._on("hashchange", webViewerHashchange); + eventBus._on("beforeprint", _boundEvents.beforePrint); + eventBus._on("afterprint", _boundEvents.afterPrint); + eventBus._on("pagerendered", webViewerPageRendered); + eventBus._on("updateviewarea", webViewerUpdateViewarea); + eventBus._on("pagechanging", webViewerPageChanging); + eventBus._on("scalechanging", webViewerScaleChanging); + eventBus._on("rotationchanging", webViewerRotationChanging); + eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged); + eventBus._on("pagemode", webViewerPageMode); + eventBus._on("namedaction", webViewerNamedAction); + eventBus._on("presentationmodechanged", webViewerPresentationModeChanged); + eventBus._on("presentationmode", webViewerPresentationMode); + eventBus._on("switchannotationeditormode", webViewerSwitchAnnotationEditorMode); + eventBus._on("switchannotationeditorparams", webViewerSwitchAnnotationEditorParams); + eventBus._on("print", webViewerPrint); + eventBus._on("download", webViewerDownload); + eventBus._on("firstpage", webViewerFirstPage); + eventBus._on("lastpage", webViewerLastPage); + eventBus._on("nextpage", webViewerNextPage); + eventBus._on("previouspage", webViewerPreviousPage); + eventBus._on("zoomin", webViewerZoomIn); + eventBus._on("zoomout", webViewerZoomOut); + eventBus._on("zoomreset", webViewerZoomReset); + eventBus._on("pagenumberchanged", webViewerPageNumberChanged); + eventBus._on("scalechanged", webViewerScaleChanged); + eventBus._on("rotatecw", webViewerRotateCw); + eventBus._on("rotateccw", webViewerRotateCcw); + eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig); + eventBus._on("switchscrollmode", webViewerSwitchScrollMode); + eventBus._on("scrollmodechanged", webViewerScrollModeChanged); + eventBus._on("switchspreadmode", webViewerSwitchSpreadMode); + eventBus._on("spreadmodechanged", webViewerSpreadModeChanged); + eventBus._on("documentproperties", webViewerDocumentProperties); + eventBus._on("findfromurlhash", webViewerFindFromUrlHash); + eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount); + eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState); + if (_app_options.AppOptions.get("pdfBug")) { + _boundEvents.reportPageStatsPDFBug = reportPageStatsPDFBug; + eventBus._on("pagerendered", _boundEvents.reportPageStatsPDFBug); + eventBus._on("pagechanging", _boundEvents.reportPageStatsPDFBug); + } + eventBus._on("fileinputchange", webViewerFileInputChange); + eventBus._on("openfile", webViewerOpenFile); + }, + bindWindowEvents() { + const { + eventBus, + _boundEvents + } = this; + function addWindowResolutionChange() { + let evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (evt) { + webViewerResolutionChange(evt); + } + const mediaQueryList = window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`); + mediaQueryList.addEventListener("change", addWindowResolutionChange, { + once: true + }); + _boundEvents.removeWindowResolutionChange || (_boundEvents.removeWindowResolutionChange = function () { + mediaQueryList.removeEventListener("change", addWindowResolutionChange); + _boundEvents.removeWindowResolutionChange = null; + }); + } + addWindowResolutionChange(); + _boundEvents.windowResize = () => { + eventBus.dispatch("resize", { + source: window + }); + }; + _boundEvents.windowHashChange = () => { + eventBus.dispatch("hashchange", { + source: window, + hash: document.location.hash.substring(1) + }); + }; + _boundEvents.windowBeforePrint = () => { + eventBus.dispatch("beforeprint", { + source: window + }); + }; + _boundEvents.windowAfterPrint = () => { + eventBus.dispatch("afterprint", { + source: window + }); + }; + _boundEvents.windowUpdateFromSandbox = event => { + eventBus.dispatch("updatefromsandbox", { + source: window, + detail: event.detail + }); + }; + window.addEventListener("visibilitychange", webViewerVisibilityChange); + window.addEventListener("wheel", webViewerWheel, { + passive: false + }); + window.addEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.addEventListener("click", webViewerClick); + window.addEventListener("keydown", webViewerKeyDown); + window.addEventListener("resize", _boundEvents.windowResize); + window.addEventListener("hashchange", _boundEvents.windowHashChange); + window.addEventListener("beforeprint", _boundEvents.windowBeforePrint); + window.addEventListener("afterprint", _boundEvents.windowAfterPrint); + window.addEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox); + }, + unbindEvents() { + const { + eventBus, + _boundEvents + } = this; + eventBus._off("resize", webViewerResize); + eventBus._off("hashchange", webViewerHashchange); + eventBus._off("beforeprint", _boundEvents.beforePrint); + eventBus._off("afterprint", _boundEvents.afterPrint); + eventBus._off("pagerendered", webViewerPageRendered); + eventBus._off("updateviewarea", webViewerUpdateViewarea); + eventBus._off("pagechanging", webViewerPageChanging); + eventBus._off("scalechanging", webViewerScaleChanging); + eventBus._off("rotationchanging", webViewerRotationChanging); + eventBus._off("sidebarviewchanged", webViewerSidebarViewChanged); + eventBus._off("pagemode", webViewerPageMode); + eventBus._off("namedaction", webViewerNamedAction); + eventBus._off("presentationmodechanged", webViewerPresentationModeChanged); + eventBus._off("presentationmode", webViewerPresentationMode); + eventBus._off("print", webViewerPrint); + eventBus._off("download", webViewerDownload); + eventBus._off("firstpage", webViewerFirstPage); + eventBus._off("lastpage", webViewerLastPage); + eventBus._off("nextpage", webViewerNextPage); + eventBus._off("previouspage", webViewerPreviousPage); + eventBus._off("zoomin", webViewerZoomIn); + eventBus._off("zoomout", webViewerZoomOut); + eventBus._off("zoomreset", webViewerZoomReset); + eventBus._off("pagenumberchanged", webViewerPageNumberChanged); + eventBus._off("scalechanged", webViewerScaleChanged); + eventBus._off("rotatecw", webViewerRotateCw); + eventBus._off("rotateccw", webViewerRotateCcw); + eventBus._off("optionalcontentconfig", webViewerOptionalContentConfig); + eventBus._off("switchscrollmode", webViewerSwitchScrollMode); + eventBus._off("scrollmodechanged", webViewerScrollModeChanged); + eventBus._off("switchspreadmode", webViewerSwitchSpreadMode); + eventBus._off("spreadmodechanged", webViewerSpreadModeChanged); + eventBus._off("documentproperties", webViewerDocumentProperties); + eventBus._off("findfromurlhash", webViewerFindFromUrlHash); + eventBus._off("updatefindmatchescount", webViewerUpdateFindMatchesCount); + eventBus._off("updatefindcontrolstate", webViewerUpdateFindControlState); + if (_boundEvents.reportPageStatsPDFBug) { + eventBus._off("pagerendered", _boundEvents.reportPageStatsPDFBug); + eventBus._off("pagechanging", _boundEvents.reportPageStatsPDFBug); + _boundEvents.reportPageStatsPDFBug = null; + } + eventBus._off("fileinputchange", webViewerFileInputChange); + eventBus._off("openfile", webViewerOpenFile); + _boundEvents.beforePrint = null; + _boundEvents.afterPrint = null; + }, + unbindWindowEvents() { + var _boundEvents$removeWi; + const { + _boundEvents + } = this; + window.removeEventListener("visibilitychange", webViewerVisibilityChange); + window.removeEventListener("wheel", webViewerWheel, { + passive: false + }); + window.removeEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.removeEventListener("click", webViewerClick); + window.removeEventListener("keydown", webViewerKeyDown); + window.removeEventListener("resize", _boundEvents.windowResize); + window.removeEventListener("hashchange", _boundEvents.windowHashChange); + window.removeEventListener("beforeprint", _boundEvents.windowBeforePrint); + window.removeEventListener("afterprint", _boundEvents.windowAfterPrint); + window.removeEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox); + (_boundEvents$removeWi = _boundEvents.removeWindowResolutionChange) === null || _boundEvents$removeWi === void 0 ? void 0 : _boundEvents$removeWi.call(_boundEvents); + _boundEvents.windowResize = null; + _boundEvents.windowHashChange = null; + _boundEvents.windowBeforePrint = null; + _boundEvents.windowAfterPrint = null; + _boundEvents.windowUpdateFromSandbox = null; + }, + accumulateWheelTicks(ticks) { + if (this._wheelUnusedTicks > 0 && ticks < 0 || this._wheelUnusedTicks < 0 && ticks > 0) { + this._wheelUnusedTicks = 0; + } + this._wheelUnusedTicks += ticks; + const wholeTicks = Math.sign(this._wheelUnusedTicks) * Math.floor(Math.abs(this._wheelUnusedTicks)); + this._wheelUnusedTicks -= wholeTicks; + return wholeTicks; + }, + _unblockDocumentLoadEvent() { + var _document$blockUnbloc, _document; + (_document$blockUnbloc = (_document = document).blockUnblockOnload) === null || _document$blockUnbloc === void 0 ? void 0 : _document$blockUnbloc.call(_document, false); + this._unblockDocumentLoadEvent = () => {}; + }, + _reportDocumentStatsTelemetry() { + const { + stats + } = this.pdfDocument; + if (stats !== this._docStats) { + this._docStats = stats; + this.externalServices.reportTelemetry({ + type: "documentStats", + stats + }); + } + }, + get scriptingReady() { + return this.pdfScriptingManager.ready; + } +}; +exports.PDFViewerApplication = PDFViewerApplication; +{ + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; + var validateFileURL = function (file) { + if (!file) { + return; + } + try { + const viewerOrigin = new URL(window.location.href).origin || "null"; + if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { + return; + } + const fileOrigin = new URL(file, window.location.href).origin; + if (fileOrigin !== viewerOrigin) { + throw new Error("file origin does not match viewer's"); + } + } catch (ex) { + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, { + message: ex === null || ex === void 0 ? void 0 : ex.message + }); + }); + throw ex; + } + }; +} +async function loadFakeWorker() { + _pdfjsLib.GlobalWorkerOptions.workerSrc || (_pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get("workerSrc")); + await (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.workerSrc); +} +async function loadPDFBug(self) { + const { + debuggerScriptPath + } = self.appConfig; + const { + PDFBug + } = await import(debuggerScriptPath); + self._PDFBug = PDFBug; +} +function reportPageStatsPDFBug(_ref5) { + var _globalThis$Stats, _pageView$pdfPage; + let { + pageNumber + } = _ref5; + if (!((_globalThis$Stats = globalThis.Stats) !== null && _globalThis$Stats !== void 0 && _globalThis$Stats.enabled)) { + return; + } + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + globalThis.Stats.add(pageNumber, pageView === null || pageView === void 0 ? void 0 : (_pageView$pdfPage = pageView.pdfPage) === null || _pageView$pdfPage === void 0 ? void 0 : _pageView$pdfPage.stats); +} +function webViewerInitialized() { + const { + appConfig, + eventBus + } = PDFViewerApplication; + let file; + const queryString = document.location.search.substring(1); + const params = (0, _ui_utils.parseQueryString)(queryString); + file = params.get("file") ?? _app_options.AppOptions.get("defaultUrl"); + validateFileURL(file); + const fileInput = appConfig.openFileInput; + fileInput.value = null; + fileInput.addEventListener("change", function (evt) { + const { + files + } = evt.target; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.target + }); + }); + appConfig.mainContainer.addEventListener("dragover", function (evt) { + evt.preventDefault(); + evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; + }); + appConfig.mainContainer.addEventListener("drop", function (evt) { + evt.preventDefault(); + const { + files + } = evt.dataTransfer; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.dataTransfer + }); + }); + if (!PDFViewerApplication.supportsDocumentFonts) { + _app_options.AppOptions.set("disableFontFace", true); + PDFViewerApplication.l10n.get("web_fonts_disabled").then(msg => { + console.warn(msg); + }); + } + if (!PDFViewerApplication.supportsPrinting) { + appConfig.toolbar.print.classList.add("hidden"); + appConfig.secondaryToolbar.printButton.classList.add("hidden"); + } + if (!PDFViewerApplication.supportsFullscreen) { + appConfig.secondaryToolbar.presentationModeButton.classList.add("hidden"); + } + if (PDFViewerApplication.supportsIntegratedFind) { + appConfig.toolbar.viewFind.classList.add("hidden"); + } + appConfig.mainContainer.addEventListener("transitionend", function (evt) { + if (evt.target === this) { + eventBus.dispatch("resize", { + source: this + }); + } + }, true); + try { + if (file) { + PDFViewerApplication.open(file); + } else { + PDFViewerApplication._hideViewBookmark(); + } + } catch (reason) { + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, reason); + }); + } +} +function webViewerPageRendered(_ref6) { + let { + pageNumber, + error + } = _ref6; + if (pageNumber === PDFViewerApplication.page) { + PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); + } + if (PDFViewerApplication.pdfSidebar.visibleView === _ui_utils.SidebarView.THUMBS) { + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageNumber - 1); + if (pageView && thumbnailView) { + thumbnailView.setImage(pageView); + } + } + if (error) { + PDFViewerApplication.l10n.get("rendering_error").then(msg => { + PDFViewerApplication._otherError(msg, error); + }); + } + PDFViewerApplication._reportDocumentStatsTelemetry(); +} +function webViewerPageMode(_ref7) { + let { + mode + } = _ref7; + let view; + switch (mode) { + case "thumbs": + view = _ui_utils.SidebarView.THUMBS; + break; + case "bookmarks": + case "outline": + view = _ui_utils.SidebarView.OUTLINE; + break; + case "attachments": + view = _ui_utils.SidebarView.ATTACHMENTS; + break; + case "layers": + view = _ui_utils.SidebarView.LAYERS; + break; + case "none": + view = _ui_utils.SidebarView.NONE; + break; + default: + console.error('Invalid "pagemode" hash parameter: ' + mode); + return; + } + PDFViewerApplication.pdfSidebar.switchView(view, true); +} +function webViewerNamedAction(evt) { + switch (evt.action) { + case "GoToPage": + PDFViewerApplication.appConfig.toolbar.pageNumber.select(); + break; + case "Find": + if (!PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.findBar.toggle(); + } + break; + case "Print": + PDFViewerApplication.triggerPrinting(); + break; + case "SaveAs": + PDFViewerApplication.downloadOrSave(); + break; + } +} +function webViewerPresentationModeChanged(evt) { + PDFViewerApplication.pdfViewer.presentationModeState = evt.state; +} +function webViewerSidebarViewChanged(_ref8) { + let { + view + } = _ref8; + PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = view === _ui_utils.SidebarView.THUMBS; + if (PDFViewerApplication.isInitialViewSet) { + var _PDFViewerApplication; + (_PDFViewerApplication = PDFViewerApplication.store) === null || _PDFViewerApplication === void 0 ? void 0 : _PDFViewerApplication.set("sidebarView", view).catch(() => {}); + } +} +function webViewerUpdateViewarea(_ref9) { + let { + location + } = _ref9; + if (PDFViewerApplication.isInitialViewSet) { + var _PDFViewerApplication2; + (_PDFViewerApplication2 = PDFViewerApplication.store) === null || _PDFViewerApplication2 === void 0 ? void 0 : _PDFViewerApplication2.setMultiple({ + page: location.pageNumber, + zoom: location.scale, + scrollLeft: location.left, + scrollTop: location.top, + rotation: location.rotation + }).catch(() => {}); + } + const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; + const currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); + const loading = (currentPage === null || currentPage === void 0 ? void 0 : currentPage.renderingState) !== _ui_utils.RenderingStates.FINISHED; + PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); +} +function webViewerScrollModeChanged(evt) { + if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { + var _PDFViewerApplication3; + (_PDFViewerApplication3 = PDFViewerApplication.store) === null || _PDFViewerApplication3 === void 0 ? void 0 : _PDFViewerApplication3.set("scrollMode", evt.mode).catch(() => {}); + } +} +function webViewerSpreadModeChanged(evt) { + if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { + var _PDFViewerApplication4; + (_PDFViewerApplication4 = PDFViewerApplication.store) === null || _PDFViewerApplication4 === void 0 ? void 0 : _PDFViewerApplication4.set("spreadMode", evt.mode).catch(() => {}); + } +} +function webViewerResize() { + const { + pdfDocument, + pdfViewer, + pdfRenderingQueue + } = PDFViewerApplication; + if (pdfRenderingQueue.printing && window.matchMedia("print").matches) { + return; + } + pdfViewer.updateContainerHeightCss(); + if (!pdfDocument) { + return; + } + const currentScaleValue = pdfViewer.currentScaleValue; + if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { + pdfViewer.currentScaleValue = currentScaleValue; + } + pdfViewer.update(); +} +function webViewerHashchange(evt) { + var _PDFViewerApplication5; + const hash = evt.hash; + if (!hash) { + return; + } + if (!PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.initialBookmark = hash; + } else if (!((_PDFViewerApplication5 = PDFViewerApplication.pdfHistory) !== null && _PDFViewerApplication5 !== void 0 && _PDFViewerApplication5.popStateInProgress)) { + PDFViewerApplication.pdfLinkService.setHash(hash); + } +} +{ + var webViewerFileInputChange = function (evt) { + var _PDFViewerApplication6; + if ((_PDFViewerApplication6 = PDFViewerApplication.pdfViewer) !== null && _PDFViewerApplication6 !== void 0 && _PDFViewerApplication6.isInPresentationMode) { + return; + } + const file = evt.fileInput.files[0]; + let url = URL.createObjectURL(file); + if (file.name) { + url = { + url, + originalUrl: file.name + }; + } + PDFViewerApplication.open(url); + }; + var webViewerOpenFile = function (evt) { + const fileInput = PDFViewerApplication.appConfig.openFileInput; + fileInput.click(); + }; +} +function webViewerPresentationMode() { + PDFViewerApplication.requestPresentationMode(); +} +function webViewerSwitchAnnotationEditorMode(evt) { + PDFViewerApplication.pdfViewer.annotationEditorMode = evt.mode; +} +function webViewerSwitchAnnotationEditorParams(evt) { + PDFViewerApplication.pdfViewer.annotationEditorParams = evt; +} +function webViewerPrint() { + PDFViewerApplication.triggerPrinting(); +} +function webViewerDownload() { + PDFViewerApplication.downloadOrSave(); +} +function webViewerFirstPage() { + if (PDFViewerApplication.pdfDocument) { + PDFViewerApplication.page = 1; + } +} +function webViewerLastPage() { + if (PDFViewerApplication.pdfDocument) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + } +} +function webViewerNextPage() { + PDFViewerApplication.pdfViewer.nextPage(); +} +function webViewerPreviousPage() { + PDFViewerApplication.pdfViewer.previousPage(); +} +function webViewerZoomIn() { + PDFViewerApplication.zoomIn(); +} +function webViewerZoomOut() { + PDFViewerApplication.zoomOut(); +} +function webViewerZoomReset() { + PDFViewerApplication.zoomReset(); +} +function webViewerPageNumberChanged(evt) { + const pdfViewer = PDFViewerApplication.pdfViewer; + if (evt.value !== "") { + PDFViewerApplication.pdfLinkService.goToPage(evt.value); + } + if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { + PDFViewerApplication.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + } +} +function webViewerScaleChanged(evt) { + PDFViewerApplication.pdfViewer.currentScaleValue = evt.value; +} +function webViewerRotateCw() { + PDFViewerApplication.rotatePages(90); +} +function webViewerRotateCcw() { + PDFViewerApplication.rotatePages(-90); +} +function webViewerOptionalContentConfig(evt) { + PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; +} +function webViewerSwitchScrollMode(evt) { + PDFViewerApplication.pdfViewer.scrollMode = evt.mode; +} +function webViewerSwitchSpreadMode(evt) { + PDFViewerApplication.pdfViewer.spreadMode = evt.mode; +} +function webViewerDocumentProperties() { + PDFViewerApplication.pdfDocumentProperties.open(); +} +function webViewerFindFromUrlHash(evt) { + PDFViewerApplication.eventBus.dispatch("find", { + source: evt.source, + type: "", + query: evt.query, + phraseSearch: evt.phraseSearch, + caseSensitive: false, + entireWord: false, + highlightAll: true, + findPrevious: false, + matchDiacritics: true + }); +} +function webViewerUpdateFindMatchesCount(_ref10) { + let { + matchesCount + } = _ref10; + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); + } else { + PDFViewerApplication.findBar.updateResultsCount(matchesCount); + } +} +function webViewerUpdateFindControlState(_ref11) { + let { + state, + previous, + matchesCount, + rawQuery + } = _ref11; + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindControlState({ + result: state, + findPrevious: previous, + matchesCount, + rawQuery + }); + } else { + PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount); + } +} +function webViewerScaleChanging(evt) { + PDFViewerApplication.toolbar.setPageScale(evt.presetValue, evt.scale); + PDFViewerApplication.pdfViewer.update(); +} +function webViewerRotationChanging(evt) { + PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; + PDFViewerApplication.forceRendering(); + PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; +} +function webViewerPageChanging(_ref12) { + let { + pageNumber, + pageLabel + } = _ref12; + PDFViewerApplication.toolbar.setPageNumber(pageNumber, pageLabel); + PDFViewerApplication.secondaryToolbar.setPageNumber(pageNumber); + if (PDFViewerApplication.pdfSidebar.visibleView === _ui_utils.SidebarView.THUMBS) { + PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(pageNumber); + } +} +function webViewerResolutionChange(evt) { + PDFViewerApplication.pdfViewer.refresh(); +} +function webViewerVisibilityChange(evt) { + if (document.visibilityState === "visible") { + setZoomDisabledTimeout(); + } +} +let zoomDisabledTimeout = null; +function setZoomDisabledTimeout() { + if (zoomDisabledTimeout) { + clearTimeout(zoomDisabledTimeout); + } + zoomDisabledTimeout = setTimeout(function () { + zoomDisabledTimeout = null; + }, WHEEL_ZOOM_DISABLED_TIMEOUT); +} +function webViewerWheel(evt) { + const { + pdfViewer, + supportedMouseWheelZoomModifierKeys + } = PDFViewerApplication; + if (pdfViewer.isInPresentationMode) { + return; + } + if (evt.ctrlKey && supportedMouseWheelZoomModifierKeys.ctrlKey || evt.metaKey && supportedMouseWheelZoomModifierKeys.metaKey) { + evt.preventDefault(); + if (zoomDisabledTimeout || document.visibilityState === "hidden") { + return; + } + const deltaMode = evt.deltaMode; + const delta = (0, _ui_utils.normalizeWheelEventDirection)(evt); + const previousScale = pdfViewer.currentScale; + let ticks = 0; + if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) { + if (Math.abs(delta) >= 1) { + ticks = Math.sign(delta); + } else { + ticks = PDFViewerApplication.accumulateWheelTicks(delta); + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = PDFViewerApplication.accumulateWheelTicks(delta / PIXELS_PER_LINE_SCALE); + } + if (ticks < 0) { + PDFViewerApplication.zoomOut(-ticks); + } else if (ticks > 0) { + PDFViewerApplication.zoomIn(ticks); + } + const currentScale = pdfViewer.currentScale; + if (previousScale !== currentScale) { + const scaleCorrectionFactor = currentScale / previousScale - 1; + const rect = pdfViewer.container.getBoundingClientRect(); + const dx = evt.clientX - rect.left; + const dy = evt.clientY - rect.top; + pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; + pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; + } + } else { + setZoomDisabledTimeout(); + } +} +function webViewerTouchStart(evt) { + if (evt.touches.length > 1) { + evt.preventDefault(); + } +} +function webViewerClick(evt) { + if (!PDFViewerApplication.secondaryToolbar.isOpen) { + return; + } + const appConfig = PDFViewerApplication.appConfig; + if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) { + PDFViewerApplication.secondaryToolbar.close(); + } +} +function webViewerKeyDown(evt) { + if (PDFViewerApplication.overlayManager.active) { + return; + } + const { + eventBus, + pdfViewer + } = PDFViewerApplication; + const isViewerInPresentationMode = pdfViewer.isInPresentationMode; + let handled = false, + ensureViewerFocused = false; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { + switch (evt.keyCode) { + case 70: + if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { + PDFViewerApplication.findBar.open(); + handled = true; + } + break; + case 71: + if (!PDFViewerApplication.supportsIntegratedFind) { + const { + state + } = PDFViewerApplication.findController; + if (state) { + const eventState = Object.assign(Object.create(null), state, { + source: window, + type: "again", + findPrevious: cmd === 5 || cmd === 12 + }); + eventBus.dispatch("find", eventState); + } + handled = true; + } + break; + case 61: + case 107: + case 187: + case 171: + if (!isViewerInPresentationMode) { + PDFViewerApplication.zoomIn(); + } + handled = true; + break; + case 173: + case 109: + case 189: + if (!isViewerInPresentationMode) { + PDFViewerApplication.zoomOut(); + } + handled = true; + break; + case 48: + case 96: + if (!isViewerInPresentationMode) { + setTimeout(function () { + PDFViewerApplication.zoomReset(); + }); + handled = false; + } + break; + case 38: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 40: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + } + } + if (cmd === 1 || cmd === 8) { + switch (evt.keyCode) { + case 83: + eventBus.dispatch("download", { + source: window + }); + handled = true; + break; + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; + } + } + if (cmd === 3 || cmd === 10) { + switch (evt.keyCode) { + case 80: + PDFViewerApplication.requestPresentationMode(); + handled = true; + PDFViewerApplication.externalServices.reportTelemetry({ + type: "buttons", + data: { + id: "presentationModeKeyboard" + } + }); + break; + case 71: + PDFViewerApplication.appConfig.toolbar.pageNumber.select(); + handled = true; + break; + } + } + if (handled) { + if (ensureViewerFocused && !isViewerInPresentationMode) { + pdfViewer.focus(); + } + evt.preventDefault(); + return; + } + const curElement = (0, _ui_utils.getActiveOrFocusedElement)(); + const curElementTagName = curElement === null || curElement === void 0 ? void 0 : curElement.tagName.toUpperCase(); + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement !== null && curElement !== void 0 && curElement.isContentEditable) { + if (evt.keyCode !== 27) { + return; + } + } + if (cmd === 0) { + let turnPage = 0, + turnOnlyIfPageFit = false; + switch (evt.keyCode) { + case 38: + case 33: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 8: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 37: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 75: + case 80: + turnPage = -1; + break; + case 27: + if (PDFViewerApplication.secondaryToolbar.isOpen) { + PDFViewerApplication.secondaryToolbar.close(); + handled = true; + } + if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar.opened) { + PDFViewerApplication.findBar.close(); + handled = true; + } + break; + case 40: + case 34: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 13: + case 32: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 39: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 74: + case 78: + turnPage = 1; + break; + case 36: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 35: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + case 83: + PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.SELECT); + break; + case 72: + PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.HAND); + break; + case 82: + PDFViewerApplication.rotatePages(90); + break; + case 115: + PDFViewerApplication.pdfSidebar.toggle(); + break; + } + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { + if (turnPage > 0) { + pdfViewer.nextPage(); + } else { + pdfViewer.previousPage(); + } + handled = true; + } + } + if (cmd === 4) { + switch (evt.keyCode) { + case 13: + case 32: + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { + break; + } + pdfViewer.previousPage(); + handled = true; + break; + case 82: + PDFViewerApplication.rotatePages(-90); + break; + } + } + if (!handled && !isViewerInPresentationMode) { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { + ensureViewerFocused = true; + } + } + if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { + pdfViewer.focus(); + } + if (handled) { + evt.preventDefault(); + } +} +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; +} +function webViewerAnnotationEditorStatesChanged(data) { + PDFViewerApplication.externalServices.updateEditorStates(data); +} +const PDFPrintServiceFactory = { + instance: { + supportsPrinting: false, + createPrintService() { + throw new Error("Not implemented: createPrintService"); + } + } +}; +exports.PDFPrintServiceFactory = PDFPrintServiceFactory; + +/***/ }), +/* 5 */ +/***/ ((module) => { + + + +let pdfjsLib; +if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { + pdfjsLib = window["pdfjs-dist/build/pdf"]; +} else { + pdfjsLib = require("../build/pdf.js"); +} +module.exports = pdfjsLib; + +/***/ }), +/* 6 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0; +exports.waitOnEventOrTimeout = waitOnEventOrTimeout; +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" +}; +exports.WaitOnType = WaitOnType; +function waitOnEventOrTimeout(_ref) { + let { + target, + name, + delay = 0 + } = _ref; + return new Promise(function (resolve, reject) { + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error("waitOnEventOrTimeout - invalid parameters."); + } + function handler(type) { + if (target instanceof EventBus) { + target._off(name, eventHandler); + } else { + target.removeEventListener(name, eventHandler); + } + if (timeout) { + clearTimeout(timeout); + } + resolve(type); + } + const eventHandler = handler.bind(null, WaitOnType.EVENT); + if (target instanceof EventBus) { + target._on(name, eventHandler); + } else { + target.addEventListener(name, eventHandler); + } + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); + }); +} +class EventBus { + constructor() { + this._listeners = Object.create(null); + } + on(eventName, listener) { + let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + this._on(eventName, listener, { + external: true, + once: options === null || options === void 0 ? void 0 : options.once + }); + } + off(eventName, listener) { + let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + this._off(eventName, listener, { + external: true, + once: options === null || options === void 0 ? void 0 : options.once + }); + } + dispatch(eventName, data) { + const eventListeners = this._listeners[eventName]; + if (!eventListeners || eventListeners.length === 0) { + return; + } + let externalListeners; + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + if (external) { + (externalListeners || (externalListeners = [])).push(listener); + continue; + } + listener(data); + } + if (externalListeners) { + for (const listener of externalListeners) { + listener(data); + } + externalListeners = null; + } + } + _on(eventName, listener) { + var _this$_listeners; + let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + const eventListeners = (_this$_listeners = this._listeners)[eventName] || (_this$_listeners[eventName] = []); + eventListeners.push({ + listener, + external: (options === null || options === void 0 ? void 0 : options.external) === true, + once: (options === null || options === void 0 ? void 0 : options.once) === true + }); + } + _off(eventName, listener) { + let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + const eventListeners = this._listeners[eventName]; + if (!eventListeners) { + return; + } + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + if (eventListeners[i].listener === listener) { + eventListeners.splice(i, 1); + return; + } + } + } +} +exports.EventBus = EventBus; +class AutomationEventBus extends EventBus { + dispatch(eventName, data) { + throw new Error("Not implemented: AutomationEventBus.dispatch"); + } +} +exports.AutomationEventBus = AutomationEventBus; + +/***/ }), +/* 7 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFCursorTools = exports.CursorTool = void 0; +var _pdfjsLib = __webpack_require__(5); +var _grab_to_pan = __webpack_require__(8); +var _ui_utils = __webpack_require__(1); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const CursorTool = { + SELECT: 0, + HAND: 1, + ZOOM: 2 +}; +exports.CursorTool = CursorTool; +var _dispatchEvent = /*#__PURE__*/new WeakSet(); +var _addEventListeners = /*#__PURE__*/new WeakSet(); +class PDFCursorTools { + constructor(_ref) { + let { + container, + eventBus, + cursorToolOnLoad = CursorTool.SELECT + } = _ref; + _classPrivateMethodInitSpec(this, _addEventListeners); + _classPrivateMethodInitSpec(this, _dispatchEvent); + this.container = container; + this.eventBus = eventBus; + this.active = CursorTool.SELECT; + this.previouslyActive = null; + this.handTool = new _grab_to_pan.GrabToPan({ + element: this.container + }); + _classPrivateMethodGet(this, _addEventListeners, _addEventListeners2).call(this); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); + }); + } + get activeTool() { + return this.active; + } + switchTool(tool) { + if (this.previouslyActive !== null) { + return; + } + if (tool === this.active) { + return; + } + const disableActiveTool = () => { + switch (this.active) { + case CursorTool.SELECT: + break; + case CursorTool.HAND: + this.handTool.deactivate(); + break; + case CursorTool.ZOOM: + } + }; + switch (tool) { + case CursorTool.SELECT: + disableActiveTool(); + break; + case CursorTool.HAND: + disableActiveTool(); + this.handTool.activate(); + break; + case CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; + } + this.active = tool; + _classPrivateMethodGet(this, _dispatchEvent, _dispatchEvent2).call(this); + } +} +exports.PDFCursorTools = PDFCursorTools; +function _dispatchEvent2() { + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool: this.active + }); +} +function _addEventListeners2() { + this.eventBus._on("switchcursortool", evt => { + this.switchTool(evt.tool); + }); + let annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE, + presentationModeState = _ui_utils.PresentationModeState.NORMAL; + const disableActive = () => { + const previouslyActive = this.active; + this.switchTool(CursorTool.SELECT); + this.previouslyActive ?? (this.previouslyActive = previouslyActive); + }; + const enableActive = () => { + const previouslyActive = this.previouslyActive; + if (previouslyActive !== null && annotationEditorMode === _pdfjsLib.AnnotationEditorType.NONE && presentationModeState === _ui_utils.PresentationModeState.NORMAL) { + this.previouslyActive = null; + this.switchTool(previouslyActive); + } + }; + this.eventBus._on("secondarytoolbarreset", evt => { + if (this.previouslyActive !== null) { + annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + presentationModeState = _ui_utils.PresentationModeState.NORMAL; + enableActive(); + } + }); + this.eventBus._on("annotationeditormodechanged", _ref2 => { + let { + mode + } = _ref2; + annotationEditorMode = mode; + if (mode === _pdfjsLib.AnnotationEditorType.NONE) { + enableActive(); + } else { + disableActive(); + } + }); + this.eventBus._on("presentationmodechanged", _ref3 => { + let { + state + } = _ref3; + presentationModeState = state; + if (state === _ui_utils.PresentationModeState.NORMAL) { + enableActive(); + } else if (state === _ui_utils.PresentationModeState.FULLSCREEN) { + disableActive(); + } + }); +} + +/***/ }), +/* 8 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GrabToPan = void 0; +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const CSS_CLASS_GRAB = "grab-to-pan-grab"; +var _onMouseDown = /*#__PURE__*/new WeakSet(); +var _onMouseMove = /*#__PURE__*/new WeakSet(); +var _endPan = /*#__PURE__*/new WeakSet(); +class GrabToPan { + constructor(options) { + _classPrivateMethodInitSpec(this, _endPan); + _classPrivateMethodInitSpec(this, _onMouseMove); + _classPrivateMethodInitSpec(this, _onMouseDown); + this.element = options.element; + this.document = options.element.ownerDocument; + if (typeof options.ignoreTarget === "function") { + this.ignoreTarget = options.ignoreTarget; + } + this.onActiveChanged = options.onActiveChanged; + this.activate = this.activate.bind(this); + this.deactivate = this.deactivate.bind(this); + this.toggle = this.toggle.bind(this); + this._onMouseDown = _classPrivateMethodGet(this, _onMouseDown, _onMouseDown2).bind(this); + this._onMouseMove = _classPrivateMethodGet(this, _onMouseMove, _onMouseMove2).bind(this); + this._endPan = _classPrivateMethodGet(this, _endPan, _endPan2).bind(this); + const overlay = this.overlay = document.createElement("div"); + overlay.className = "grab-to-pan-grabbing"; + } + activate() { + if (!this.active) { + var _this$onActiveChanged; + this.active = true; + this.element.addEventListener("mousedown", this._onMouseDown, true); + this.element.classList.add(CSS_CLASS_GRAB); + (_this$onActiveChanged = this.onActiveChanged) === null || _this$onActiveChanged === void 0 ? void 0 : _this$onActiveChanged.call(this, true); + } + } + deactivate() { + if (this.active) { + var _this$onActiveChanged2; + this.active = false; + this.element.removeEventListener("mousedown", this._onMouseDown, true); + this._endPan(); + this.element.classList.remove(CSS_CLASS_GRAB); + (_this$onActiveChanged2 = this.onActiveChanged) === null || _this$onActiveChanged2 === void 0 ? void 0 : _this$onActiveChanged2.call(this, false); + } + } + toggle() { + if (this.active) { + this.deactivate(); + } else { + this.activate(); + } + } + ignoreTarget(node) { + return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); + } +} +exports.GrabToPan = GrabToPan; +function _onMouseDown2(event) { + if (event.button !== 0 || this.ignoreTarget(event.target)) { + return; + } + if (event.originalTarget) { + try { + event.originalTarget.tagName; + } catch (e) { + return; + } + } + this.scrollLeftStart = this.element.scrollLeft; + this.scrollTopStart = this.element.scrollTop; + this.clientXStart = event.clientX; + this.clientYStart = event.clientY; + this.document.addEventListener("mousemove", this._onMouseMove, true); + this.document.addEventListener("mouseup", this._endPan, true); + this.element.addEventListener("scroll", this._endPan, true); + event.preventDefault(); + event.stopPropagation(); + const focusedElement = document.activeElement; + if (focusedElement && !focusedElement.contains(event.target)) { + focusedElement.blur(); + } +} +function _onMouseMove2(event) { + this.element.removeEventListener("scroll", this._endPan, true); + if (!(event.buttons & 1)) { + this._endPan(); + return; + } + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + const scrollTop = this.scrollTopStart - yDiff; + const scrollLeft = this.scrollLeftStart - xDiff; + if (this.element.scrollTo) { + this.element.scrollTo({ + top: scrollTop, + left: scrollLeft, + behavior: "instant" + }); + } else { + this.element.scrollTop = scrollTop; + this.element.scrollLeft = scrollLeft; + } + if (!this.overlay.parentNode) { + document.body.append(this.overlay); + } +} +function _endPan2() { + this.element.removeEventListener("scroll", this._endPan, true); + this.document.removeEventListener("mousemove", this._onMouseMove, true); + this.document.removeEventListener("mouseup", this._endPan, true); + this.overlay.remove(); +} + +/***/ }), +/* 9 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorParams = void 0; +var _pdfjsLib = __webpack_require__(5); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _bindListeners = /*#__PURE__*/new WeakSet(); +class AnnotationEditorParams { + constructor(options, eventBus) { + _classPrivateMethodInitSpec(this, _bindListeners); + this.eventBus = eventBus; + _classPrivateMethodGet(this, _bindListeners, _bindListeners2).call(this, options); + } +} +exports.AnnotationEditorParams = AnnotationEditorParams; +function _bindListeners2(_ref) { + let { + editorFreeTextFontSize, + editorFreeTextColor, + editorInkColor, + editorInkThickness, + editorInkOpacity + } = _ref; + editorFreeTextFontSize.addEventListener("input", evt => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: _pdfjsLib.AnnotationEditorParamsType.FREETEXT_SIZE, + value: editorFreeTextFontSize.valueAsNumber + }); + }); + editorFreeTextColor.addEventListener("input", evt => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: _pdfjsLib.AnnotationEditorParamsType.FREETEXT_COLOR, + value: editorFreeTextColor.value + }); + }); + editorInkColor.addEventListener("input", evt => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: _pdfjsLib.AnnotationEditorParamsType.INK_COLOR, + value: editorInkColor.value + }); + }); + editorInkThickness.addEventListener("input", evt => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: _pdfjsLib.AnnotationEditorParamsType.INK_THICKNESS, + value: editorInkThickness.valueAsNumber + }); + }); + editorInkOpacity.addEventListener("input", evt => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: _pdfjsLib.AnnotationEditorParamsType.INK_OPACITY, + value: editorInkOpacity.valueAsNumber + }); + }); + this.eventBus._on("annotationeditorparamschanged", evt => { + for (const [type, value] of evt.details) { + switch (type) { + case _pdfjsLib.AnnotationEditorParamsType.FREETEXT_SIZE: + editorFreeTextFontSize.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.FREETEXT_COLOR: + editorFreeTextColor.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.INK_COLOR: + editorInkColor.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.INK_THICKNESS: + editorInkThickness.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.INK_OPACITY: + editorInkOpacity.value = value; + break; + } + } + }); +} + +/***/ }), +/* 10 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OverlayManager = void 0; +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +var _overlays = /*#__PURE__*/new WeakMap(); +var _active = /*#__PURE__*/new WeakMap(); +class OverlayManager { + constructor() { + _classPrivateFieldInitSpec(this, _overlays, { + writable: true, + value: new WeakMap() + }); + _classPrivateFieldInitSpec(this, _active, { + writable: true, + value: null + }); + } + get active() { + return _classPrivateFieldGet(this, _active); + } + async register(dialog) { + let canForceClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (typeof dialog !== "object") { + throw new Error("Not enough parameters."); + } else if (_classPrivateFieldGet(this, _overlays).has(dialog)) { + throw new Error("The overlay is already registered."); + } + _classPrivateFieldGet(this, _overlays).set(dialog, { + canForceClose + }); + if (!dialog.showModal) { + const dialogPolyfill = __webpack_require__(11); + dialogPolyfill.registerDialog(dialog); + if (!this._dialogPolyfillCSS) { + this._dialogPolyfillCSS = true; + const style = document.createElement("style"); + style.textContent = 'dialog {\n position: absolute;\n left: 0; right: 0;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n width: fit-content;\n height: -moz-fit-content;\n height: -webkit-fit-content;\n height: fit-content;\n margin: auto;\n border: solid;\n padding: 1em;\n background: white;\n color: black;\n display: block;\n}\n\ndialog:not([open]) {\n display: none;\n}\n\ndialog + .backdrop {\n position: fixed;\n top: 0; right: 0; bottom: 0; left: 0;\n background: rgba(0,0,0,0.1);\n}\n\n._dialog_overlay {\n position: fixed;\n top: 0; right: 0; bottom: 0; left: 0;\n}\n\ndialog.fixed {\n position: fixed;\n top: 50%;\n transform: translate(0, -50%);\n}'; + document.head.prepend(style); + } + } + dialog.addEventListener("cancel", evt => { + _classPrivateFieldSet(this, _active, null); + }); + } + async unregister(dialog) { + if (!_classPrivateFieldGet(this, _overlays).has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (_classPrivateFieldGet(this, _active) === dialog) { + throw new Error("The overlay cannot be removed while it is active."); + } + _classPrivateFieldGet(this, _overlays).delete(dialog); + } + async open(dialog) { + if (!_classPrivateFieldGet(this, _overlays).has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (_classPrivateFieldGet(this, _active)) { + if (_classPrivateFieldGet(this, _active) === dialog) { + throw new Error("The overlay is already active."); + } else if (_classPrivateFieldGet(this, _overlays).get(dialog).canForceClose) { + await this.close(); + } else { + throw new Error("Another overlay is currently active."); + } + } + _classPrivateFieldSet(this, _active, dialog); + dialog.showModal(); + } + async close() { + let dialog = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _active); + if (!_classPrivateFieldGet(this, _overlays).has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (!_classPrivateFieldGet(this, _active)) { + throw new Error("The overlay is currently not active."); + } else if (_classPrivateFieldGet(this, _active) !== dialog) { + throw new Error("Another overlay is currently active."); + } + dialog.close(); + _classPrivateFieldSet(this, _active, null); + } +} +exports.OverlayManager = OverlayManager; + +/***/ }), +/* 11 */ +/***/ ((module) => { + + + +(function (global, factory) { + true ? module.exports = factory() : 0; +})(void 0, function () { + 'use strict'; + + var supportCustomEvent = window.CustomEvent; + if (!supportCustomEvent || typeof supportCustomEvent === 'object') { + supportCustomEvent = function CustomEvent(event, x) { + x = x || {}; + var ev = document.createEvent('CustomEvent'); + ev.initCustomEvent(event, !!x.bubbles, !!x.cancelable, x.detail || null); + return ev; + }; + supportCustomEvent.prototype = window.Event.prototype; + } + function safeDispatchEvent(target, event) { + var check = 'on' + event.type.toLowerCase(); + if (typeof target[check] === 'function') { + target[check](event); + } + return target.dispatchEvent(event); + } + function createsStackingContext(el) { + while (el && el !== document.body) { + var s = window.getComputedStyle(el); + var invalid = function (k, ok) { + return !(s[k] === undefined || s[k] === ok); + }; + if (s.opacity < 1 || invalid('zIndex', 'auto') || invalid('transform', 'none') || invalid('mixBlendMode', 'normal') || invalid('filter', 'none') || invalid('perspective', 'none') || s['isolation'] === 'isolate' || s.position === 'fixed' || s.webkitOverflowScrolling === 'touch') { + return true; + } + el = el.parentElement; + } + return false; + } + function findNearestDialog(el) { + while (el) { + if (el.localName === 'dialog') { + return el; + } + if (el.parentElement) { + el = el.parentElement; + } else if (el.parentNode) { + el = el.parentNode.host; + } else { + el = null; + } + } + return null; + } + function safeBlur(el) { + while (el && el.shadowRoot && el.shadowRoot.activeElement) { + el = el.shadowRoot.activeElement; + } + if (el && el.blur && el !== document.body) { + el.blur(); + } + } + function inNodeList(nodeList, node) { + for (var i = 0; i < nodeList.length; ++i) { + if (nodeList[i] === node) { + return true; + } + } + return false; + } + function isFormMethodDialog(el) { + if (!el || !el.hasAttribute('method')) { + return false; + } + return el.getAttribute('method').toLowerCase() === 'dialog'; + } + function findFocusableElementWithin(hostElement) { + var opts = ['button', 'input', 'keygen', 'select', 'textarea']; + var query = opts.map(function (el) { + return el + ':not([disabled])'; + }); + query.push('[tabindex]:not([disabled]):not([tabindex=""])'); + var target = hostElement.querySelector(query.join(', ')); + if (!target && 'attachShadow' in Element.prototype) { + var elems = hostElement.querySelectorAll('*'); + for (var i = 0; i < elems.length; i++) { + if (elems[i].tagName && elems[i].shadowRoot) { + target = findFocusableElementWithin(elems[i].shadowRoot); + if (target) { + break; + } + } + } + } + return target; + } + function isConnected(element) { + return element.isConnected || document.body.contains(element); + } + function findFormSubmitter(event) { + if (event.submitter) { + return event.submitter; + } + var form = event.target; + if (!(form instanceof HTMLFormElement)) { + return null; + } + var submitter = dialogPolyfill.formSubmitter; + if (!submitter) { + var target = event.target; + var root = 'getRootNode' in target && target.getRootNode() || document; + submitter = root.activeElement; + } + if (!submitter || submitter.form !== form) { + return null; + } + return submitter; + } + function maybeHandleSubmit(event) { + if (event.defaultPrevented) { + return; + } + var form = event.target; + var value = dialogPolyfill.imagemapUseValue; + var submitter = findFormSubmitter(event); + if (value === null && submitter) { + value = submitter.value; + } + var dialog = findNearestDialog(form); + if (!dialog) { + return; + } + var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method'); + if (formmethod !== 'dialog') { + return; + } + event.preventDefault(); + if (value != null) { + dialog.close(value); + } else { + dialog.close(); + } + } + function dialogPolyfillInfo(dialog) { + this.dialog_ = dialog; + this.replacedStyleTop_ = false; + this.openAsModal_ = false; + if (!dialog.hasAttribute('role')) { + dialog.setAttribute('role', 'dialog'); + } + dialog.show = this.show.bind(this); + dialog.showModal = this.showModal.bind(this); + dialog.close = this.close.bind(this); + dialog.addEventListener('submit', maybeHandleSubmit, false); + if (!('returnValue' in dialog)) { + dialog.returnValue = ''; + } + if ('MutationObserver' in window) { + var mo = new MutationObserver(this.maybeHideModal.bind(this)); + mo.observe(dialog, { + attributes: true, + attributeFilter: ['open'] + }); + } else { + var removed = false; + var cb = function () { + removed ? this.downgradeModal() : this.maybeHideModal(); + removed = false; + }.bind(this); + var timeout; + var delayModel = function (ev) { + if (ev.target !== dialog) { + return; + } + var cand = 'DOMNodeRemoved'; + removed |= ev.type.substr(0, cand.length) === cand; + window.clearTimeout(timeout); + timeout = window.setTimeout(cb, 0); + }; + ['DOMAttrModified', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument'].forEach(function (name) { + dialog.addEventListener(name, delayModel); + }); + } + Object.defineProperty(dialog, 'open', { + set: this.setOpen.bind(this), + get: dialog.hasAttribute.bind(dialog, 'open') + }); + this.backdrop_ = document.createElement('div'); + this.backdrop_.className = 'backdrop'; + this.backdrop_.addEventListener('mouseup', this.backdropMouseEvent_.bind(this)); + this.backdrop_.addEventListener('mousedown', this.backdropMouseEvent_.bind(this)); + this.backdrop_.addEventListener('click', this.backdropMouseEvent_.bind(this)); + } + dialogPolyfillInfo.prototype = { + get dialog() { + return this.dialog_; + }, + maybeHideModal: function () { + if (this.dialog_.hasAttribute('open') && isConnected(this.dialog_)) { + return; + } + this.downgradeModal(); + }, + downgradeModal: function () { + if (!this.openAsModal_) { + return; + } + this.openAsModal_ = false; + this.dialog_.style.zIndex = ''; + if (this.replacedStyleTop_) { + this.dialog_.style.top = ''; + this.replacedStyleTop_ = false; + } + this.backdrop_.parentNode && this.backdrop_.parentNode.removeChild(this.backdrop_); + dialogPolyfill.dm.removeDialog(this); + }, + setOpen: function (value) { + if (value) { + this.dialog_.hasAttribute('open') || this.dialog_.setAttribute('open', ''); + } else { + this.dialog_.removeAttribute('open'); + this.maybeHideModal(); + } + }, + backdropMouseEvent_: function (e) { + if (!this.dialog_.hasAttribute('tabindex')) { + var fake = document.createElement('div'); + this.dialog_.insertBefore(fake, this.dialog_.firstChild); + fake.tabIndex = -1; + fake.focus(); + this.dialog_.removeChild(fake); + } else { + this.dialog_.focus(); + } + var redirectedEvent = document.createEvent('MouseEvents'); + redirectedEvent.initMouseEvent(e.type, e.bubbles, e.cancelable, window, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget); + this.dialog_.dispatchEvent(redirectedEvent); + e.stopPropagation(); + }, + focus_: function () { + var target = this.dialog_.querySelector('[autofocus]:not([disabled])'); + if (!target && this.dialog_.tabIndex >= 0) { + target = this.dialog_; + } + if (!target) { + target = findFocusableElementWithin(this.dialog_); + } + safeBlur(document.activeElement); + target && target.focus(); + }, + updateZIndex: function (dialogZ, backdropZ) { + if (dialogZ < backdropZ) { + throw new Error('dialogZ should never be < backdropZ'); + } + this.dialog_.style.zIndex = dialogZ; + this.backdrop_.style.zIndex = backdropZ; + }, + show: function () { + if (!this.dialog_.open) { + this.setOpen(true); + this.focus_(); + } + }, + showModal: function () { + if (this.dialog_.hasAttribute('open')) { + throw new Error('Failed to execute \'showModal\' on dialog: The element is already open, and therefore cannot be opened modally.'); + } + if (!isConnected(this.dialog_)) { + throw new Error('Failed to execute \'showModal\' on dialog: The element is not in a Document.'); + } + if (!dialogPolyfill.dm.pushDialog(this)) { + throw new Error('Failed to execute \'showModal\' on dialog: There are too many open modal dialogs.'); + } + if (createsStackingContext(this.dialog_.parentElement)) { + console.warn('A dialog is being shown inside a stacking context. ' + 'This may cause it to be unusable. For more information, see this link: ' + 'https://github.com/GoogleChrome/dialog-polyfill/#stacking-context'); + } + this.setOpen(true); + this.openAsModal_ = true; + if (dialogPolyfill.needsCentering(this.dialog_)) { + dialogPolyfill.reposition(this.dialog_); + this.replacedStyleTop_ = true; + } else { + this.replacedStyleTop_ = false; + } + this.dialog_.parentNode.insertBefore(this.backdrop_, this.dialog_.nextSibling); + this.focus_(); + }, + close: function (opt_returnValue) { + if (!this.dialog_.hasAttribute('open')) { + throw new Error('Failed to execute \'close\' on dialog: The element does not have an \'open\' attribute, and therefore cannot be closed.'); + } + this.setOpen(false); + if (opt_returnValue !== undefined) { + this.dialog_.returnValue = opt_returnValue; + } + var closeEvent = new supportCustomEvent('close', { + bubbles: false, + cancelable: false + }); + safeDispatchEvent(this.dialog_, closeEvent); + } + }; + var dialogPolyfill = {}; + dialogPolyfill.reposition = function (element) { + var scrollTop = document.body.scrollTop || document.documentElement.scrollTop; + var topValue = scrollTop + (window.innerHeight - element.offsetHeight) / 2; + element.style.top = Math.max(scrollTop, topValue) + 'px'; + }; + dialogPolyfill.isInlinePositionSetByStylesheet = function (element) { + for (var i = 0; i < document.styleSheets.length; ++i) { + var styleSheet = document.styleSheets[i]; + var cssRules = null; + try { + cssRules = styleSheet.cssRules; + } catch (e) {} + if (!cssRules) { + continue; + } + for (var j = 0; j < cssRules.length; ++j) { + var rule = cssRules[j]; + var selectedNodes = null; + try { + selectedNodes = document.querySelectorAll(rule.selectorText); + } catch (e) {} + if (!selectedNodes || !inNodeList(selectedNodes, element)) { + continue; + } + var cssTop = rule.style.getPropertyValue('top'); + var cssBottom = rule.style.getPropertyValue('bottom'); + if (cssTop && cssTop !== 'auto' || cssBottom && cssBottom !== 'auto') { + return true; + } + } + } + return false; + }; + dialogPolyfill.needsCentering = function (dialog) { + var computedStyle = window.getComputedStyle(dialog); + if (computedStyle.position !== 'absolute') { + return false; + } + if (dialog.style.top !== 'auto' && dialog.style.top !== '' || dialog.style.bottom !== 'auto' && dialog.style.bottom !== '') { + return false; + } + return !dialogPolyfill.isInlinePositionSetByStylesheet(dialog); + }; + dialogPolyfill.forceRegisterDialog = function (element) { + if (window.HTMLDialogElement || element.showModal) { + console.warn('This browser already supports , the polyfill ' + 'may not work correctly', element); + } + if (element.localName !== 'dialog') { + throw new Error('Failed to register dialog: The element is not a dialog.'); + } + new dialogPolyfillInfo(element); + }; + dialogPolyfill.registerDialog = function (element) { + if (!element.showModal) { + dialogPolyfill.forceRegisterDialog(element); + } + }; + dialogPolyfill.DialogManager = function () { + this.pendingDialogStack = []; + var checkDOM = this.checkDOM_.bind(this); + this.overlay = document.createElement('div'); + this.overlay.className = '_dialog_overlay'; + this.overlay.addEventListener('click', function (e) { + this.forwardTab_ = undefined; + e.stopPropagation(); + checkDOM([]); + }.bind(this)); + this.handleKey_ = this.handleKey_.bind(this); + this.handleFocus_ = this.handleFocus_.bind(this); + this.zIndexLow_ = 100000; + this.zIndexHigh_ = 100000 + 150; + this.forwardTab_ = undefined; + if ('MutationObserver' in window) { + this.mo_ = new MutationObserver(function (records) { + var removed = []; + records.forEach(function (rec) { + for (var i = 0, c; c = rec.removedNodes[i]; ++i) { + if (!(c instanceof Element)) { + continue; + } else if (c.localName === 'dialog') { + removed.push(c); + } + removed = removed.concat(c.querySelectorAll('dialog')); + } + }); + removed.length && checkDOM(removed); + }); + } + }; + dialogPolyfill.DialogManager.prototype.blockDocument = function () { + document.documentElement.addEventListener('focus', this.handleFocus_, true); + document.addEventListener('keydown', this.handleKey_); + this.mo_ && this.mo_.observe(document, { + childList: true, + subtree: true + }); + }; + dialogPolyfill.DialogManager.prototype.unblockDocument = function () { + document.documentElement.removeEventListener('focus', this.handleFocus_, true); + document.removeEventListener('keydown', this.handleKey_); + this.mo_ && this.mo_.disconnect(); + }; + dialogPolyfill.DialogManager.prototype.updateStacking = function () { + var zIndex = this.zIndexHigh_; + for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) { + dpi.updateZIndex(--zIndex, --zIndex); + if (i === 0) { + this.overlay.style.zIndex = --zIndex; + } + } + var last = this.pendingDialogStack[0]; + if (last) { + var p = last.dialog.parentNode || document.body; + p.appendChild(this.overlay); + } else if (this.overlay.parentNode) { + this.overlay.parentNode.removeChild(this.overlay); + } + }; + dialogPolyfill.DialogManager.prototype.containedByTopDialog_ = function (candidate) { + while (candidate = findNearestDialog(candidate)) { + for (var i = 0, dpi; dpi = this.pendingDialogStack[i]; ++i) { + if (dpi.dialog === candidate) { + return i === 0; + } + } + candidate = candidate.parentElement; + } + return false; + }; + dialogPolyfill.DialogManager.prototype.handleFocus_ = function (event) { + var target = event.composedPath ? event.composedPath()[0] : event.target; + if (this.containedByTopDialog_(target)) { + return; + } + if (document.activeElement === document.documentElement) { + return; + } + event.preventDefault(); + event.stopPropagation(); + safeBlur(target); + if (this.forwardTab_ === undefined) { + return; + } + var dpi = this.pendingDialogStack[0]; + var dialog = dpi.dialog; + var position = dialog.compareDocumentPosition(target); + if (position & Node.DOCUMENT_POSITION_PRECEDING) { + if (this.forwardTab_) { + dpi.focus_(); + } else if (target !== document.documentElement) { + document.documentElement.focus(); + } + } + return false; + }; + dialogPolyfill.DialogManager.prototype.handleKey_ = function (event) { + this.forwardTab_ = undefined; + if (event.keyCode === 27) { + event.preventDefault(); + event.stopPropagation(); + var cancelEvent = new supportCustomEvent('cancel', { + bubbles: false, + cancelable: true + }); + var dpi = this.pendingDialogStack[0]; + if (dpi && safeDispatchEvent(dpi.dialog, cancelEvent)) { + dpi.dialog.close(); + } + } else if (event.keyCode === 9) { + this.forwardTab_ = !event.shiftKey; + } + }; + dialogPolyfill.DialogManager.prototype.checkDOM_ = function (removed) { + var clone = this.pendingDialogStack.slice(); + clone.forEach(function (dpi) { + if (removed.indexOf(dpi.dialog) !== -1) { + dpi.downgradeModal(); + } else { + dpi.maybeHideModal(); + } + }); + }; + dialogPolyfill.DialogManager.prototype.pushDialog = function (dpi) { + var allowed = (this.zIndexHigh_ - this.zIndexLow_) / 2 - 1; + if (this.pendingDialogStack.length >= allowed) { + return false; + } + if (this.pendingDialogStack.unshift(dpi) === 1) { + this.blockDocument(); + } + this.updateStacking(); + return true; + }; + dialogPolyfill.DialogManager.prototype.removeDialog = function (dpi) { + var index = this.pendingDialogStack.indexOf(dpi); + if (index === -1) { + return; + } + this.pendingDialogStack.splice(index, 1); + if (this.pendingDialogStack.length === 0) { + this.unblockDocument(); + } + this.updateStacking(); + }; + dialogPolyfill.dm = new dialogPolyfill.DialogManager(); + dialogPolyfill.formSubmitter = null; + dialogPolyfill.imagemapUseValue = null; + if (window.HTMLDialogElement === undefined) { + var testForm = document.createElement('form'); + testForm.setAttribute('method', 'dialog'); + if (testForm.method !== 'dialog') { + var methodDescriptor = Object.getOwnPropertyDescriptor(HTMLFormElement.prototype, 'method'); + if (methodDescriptor) { + var realGet = methodDescriptor.get; + methodDescriptor.get = function () { + if (isFormMethodDialog(this)) { + return 'dialog'; + } + return realGet.call(this); + }; + var realSet = methodDescriptor.set; + methodDescriptor.set = function (v) { + if (typeof v === 'string' && v.toLowerCase() === 'dialog') { + return this.setAttribute('method', v); + } + return realSet.call(this, v); + }; + Object.defineProperty(HTMLFormElement.prototype, 'method', methodDescriptor); + } + } + document.addEventListener('click', function (ev) { + dialogPolyfill.formSubmitter = null; + dialogPolyfill.imagemapUseValue = null; + if (ev.defaultPrevented) { + return; + } + var target = ev.target; + if ('composedPath' in ev) { + var path = ev.composedPath(); + target = path.shift() || target; + } + if (!target || !isFormMethodDialog(target.form)) { + return; + } + var valid = target.type === 'submit' && ['button', 'input'].indexOf(target.localName) > -1; + if (!valid) { + if (!(target.localName === 'input' && target.type === 'image')) { + return; + } + dialogPolyfill.imagemapUseValue = ev.offsetX + ',' + ev.offsetY; + } + var dialog = findNearestDialog(target); + if (!dialog) { + return; + } + dialogPolyfill.formSubmitter = target; + }, false); + document.addEventListener('submit', function (ev) { + var form = ev.target; + var dialog = findNearestDialog(form); + if (dialog) { + return; + } + var submitter = findFormSubmitter(ev); + var formmethod = submitter && submitter.getAttribute('formmethod') || form.getAttribute('method'); + if (formmethod === 'dialog') { + ev.preventDefault(); + } + }); + var nativeFormSubmit = HTMLFormElement.prototype.submit; + var replacementFormSubmit = function () { + if (!isFormMethodDialog(this)) { + return nativeFormSubmit.call(this); + } + var dialog = findNearestDialog(this); + dialog && dialog.close(); + }; + HTMLFormElement.prototype.submit = replacementFormSubmit; + } + return dialogPolyfill; +}); + +/***/ }), +/* 12 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PasswordPrompt = void 0; +var _pdfjsLib = __webpack_require__(5); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _activeCapability = /*#__PURE__*/new WeakMap(); +var _updateCallback = /*#__PURE__*/new WeakMap(); +var _reason = /*#__PURE__*/new WeakMap(); +var _verify = /*#__PURE__*/new WeakSet(); +var _cancel = /*#__PURE__*/new WeakSet(); +var _invokeCallback = /*#__PURE__*/new WeakSet(); +class PasswordPrompt { + constructor(options, overlayManager, l10n) { + let isViewerEmbedded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + _classPrivateMethodInitSpec(this, _invokeCallback); + _classPrivateMethodInitSpec(this, _cancel); + _classPrivateMethodInitSpec(this, _verify); + _classPrivateFieldInitSpec(this, _activeCapability, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _updateCallback, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _reason, { + writable: true, + value: null + }); + this.dialog = options.dialog; + this.label = options.label; + this.input = options.input; + this.submitButton = options.submitButton; + this.cancelButton = options.cancelButton; + this.overlayManager = overlayManager; + this.l10n = l10n; + this._isViewerEmbedded = isViewerEmbedded; + this.submitButton.addEventListener("click", _classPrivateMethodGet(this, _verify, _verify2).bind(this)); + this.cancelButton.addEventListener("click", this.close.bind(this)); + this.input.addEventListener("keydown", e => { + if (e.keyCode === 13) { + _classPrivateMethodGet(this, _verify, _verify2).call(this); + } + }); + this.overlayManager.register(this.dialog, true); + this.dialog.addEventListener("close", _classPrivateMethodGet(this, _cancel, _cancel2).bind(this)); + } + async open() { + if (_classPrivateFieldGet(this, _activeCapability)) { + await _classPrivateFieldGet(this, _activeCapability).promise; + } + _classPrivateFieldSet(this, _activeCapability, (0, _pdfjsLib.createPromiseCapability)()); + try { + await this.overlayManager.open(this.dialog); + } catch (ex) { + _classPrivateFieldSet(this, _activeCapability, null); + throw ex; + } + const passwordIncorrect = _classPrivateFieldGet(this, _reason) === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD; + if (!this._isViewerEmbedded || passwordIncorrect) { + this.input.focus(); + } + this.label.textContent = await this.l10n.get(`password_${passwordIncorrect ? "invalid" : "label"}`); + } + async close() { + if (this.overlayManager.active === this.dialog) { + this.overlayManager.close(this.dialog); + } + } + async setUpdateCallback(updateCallback, reason) { + if (_classPrivateFieldGet(this, _activeCapability)) { + await _classPrivateFieldGet(this, _activeCapability).promise; + } + _classPrivateFieldSet(this, _updateCallback, updateCallback); + _classPrivateFieldSet(this, _reason, reason); + } +} +exports.PasswordPrompt = PasswordPrompt; +function _verify2() { + const password = this.input.value; + if ((password === null || password === void 0 ? void 0 : password.length) > 0) { + _classPrivateMethodGet(this, _invokeCallback, _invokeCallback2).call(this, password); + } +} +function _cancel2() { + _classPrivateMethodGet(this, _invokeCallback, _invokeCallback2).call(this, new Error("PasswordPrompt cancelled.")); + _classPrivateFieldGet(this, _activeCapability).resolve(); +} +function _invokeCallback2(password) { + if (!_classPrivateFieldGet(this, _updateCallback)) { + return; + } + this.close(); + this.input.value = ""; + _classPrivateFieldGet(this, _updateCallback).call(this, password); + _classPrivateFieldSet(this, _updateCallback, null); +} + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFAttachmentViewer = void 0; +var _pdfjsLib = __webpack_require__(5); +var _base_tree_viewer = __webpack_require__(14); +var _event_utils = __webpack_require__(6); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _appendAttachment = /*#__PURE__*/new WeakSet(); +class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + _classPrivateMethodInitSpec(this, _appendAttachment); + this.downloadManager = options.downloadManager; + this.eventBus._on("fileattachmentannotation", _classPrivateMethodGet(this, _appendAttachment, _appendAttachment2).bind(this)); + } + reset() { + let keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + super.reset(); + this._attachments = null; + if (!keepRenderedCapability) { + this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + this._pendingDispatchEvent = false; + } + async _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + if (attachmentsCount === 0 && !this._pendingDispatchEvent) { + this._pendingDispatchEvent = true; + await (0, _event_utils.waitOnEventOrTimeout)({ + target: this.eventBus, + name: "annotationlayerrendered", + delay: 1000 + }); + if (!this._pendingDispatchEvent) { + return; + } + } + this._pendingDispatchEvent = false; + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); + } + _bindLink(element, _ref) { + let { + content, + filename + } = _ref; + element.onclick = () => { + this.downloadManager.openOrDownloadData(element, content, filename); + return false; + }; + } + render(_ref2) { + let { + attachments, + keepRenderedCapability = false + } = _ref2; + if (this._attachments) { + this.reset(keepRenderedCapability); + } + this._attachments = attachments || null; + if (!attachments) { + this._dispatchEvent(0); + return; + } + const names = Object.keys(attachments).sort(function (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()); + }); + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; + for (const name of names) { + const item = attachments[name]; + const content = item.content, + filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename); + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, { + content, + filename + }); + element.textContent = this._normalizeTextContent(filename); + div.append(element); + fragment.append(div); + attachmentsCount++; + } + this._finishRendering(fragment, attachmentsCount); + } +} +exports.PDFAttachmentViewer = PDFAttachmentViewer; +function _appendAttachment2(_ref3) { + let { + filename, + content + } = _ref3; + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { + return; + } + const attachments = this._attachments || Object.create(null); + for (const name in attachments) { + if (filename === name) { + return; + } + } + attachments[filename] = { + filename, + content + }; + this.render({ + attachments, + keepRenderedCapability: true + }); + }); +} + +/***/ }), +/* 14 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BaseTreeViewer = void 0; +var _ui_utils = __webpack_require__(1); +const TREEITEM_OFFSET_TOP = -100; +const TREEITEM_SELECTED_CLASS = "selected"; +class BaseTreeViewer { + constructor(options) { + if (this.constructor === BaseTreeViewer) { + throw new Error("Cannot initialize BaseTreeViewer."); + } + this.container = options.container; + this.eventBus = options.eventBus; + this.reset(); + } + reset() { + this._pdfDocument = null; + this._lastToggleIsShow = true; + this._currentTreeItem = null; + this.container.textContent = ""; + this.container.classList.remove("treeWithDeepNesting"); + } + _dispatchEvent(count) { + throw new Error("Not implemented: _dispatchEvent"); + } + _bindLink(element, params) { + throw new Error("Not implemented: _bindLink"); + } + _normalizeTextContent(str) { + return (0, _ui_utils.removeNullCharacters)(str, true) || "\u2013"; + } + _addToggleButton(div) { + let hidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + const toggler = document.createElement("div"); + toggler.className = "treeItemToggler"; + if (hidden) { + toggler.classList.add("treeItemsHidden"); + } + toggler.onclick = evt => { + evt.stopPropagation(); + toggler.classList.toggle("treeItemsHidden"); + if (evt.shiftKey) { + const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); + this._toggleTreeItem(div, shouldShowAll); + } + }; + div.prepend(toggler); + } + _toggleTreeItem(root) { + let show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this._lastToggleIsShow = show; + for (const toggler of root.querySelectorAll(".treeItemToggler")) { + toggler.classList.toggle("treeItemsHidden", !show); + } + } + _toggleAllTreeItems() { + this._toggleTreeItem(this.container, !this._lastToggleIsShow); + } + _finishRendering(fragment, count) { + let hasAnyNesting = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); + } + this.container.append(fragment); + this._dispatchEvent(count); + } + render(params) { + throw new Error("Not implemented: render"); + } + _updateCurrentTreeItem() { + let treeItem = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (this._currentTreeItem) { + this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = null; + } + if (treeItem) { + treeItem.classList.add(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = treeItem; + } + } + _scrollToCurrentTreeItem(treeItem) { + if (!treeItem) { + return; + } + let currentNode = treeItem.parentNode; + while (currentNode && currentNode !== this.container) { + if (currentNode.classList.contains("treeItem")) { + const toggler = currentNode.firstElementChild; + toggler === null || toggler === void 0 ? void 0 : toggler.classList.remove("treeItemsHidden"); + } + currentNode = currentNode.parentNode; + } + this._updateCurrentTreeItem(treeItem); + this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); + } +} +exports.BaseTreeViewer = BaseTreeViewer; + +/***/ }), +/* 15 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFDocumentProperties = void 0; +var _pdfjsLib = __webpack_require__(5); +var _ui_utils = __webpack_require__(1); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const DEFAULT_FIELD_CONTENT = "-"; +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { + "8.5x11": "Letter", + "8.5x14": "Legal" +}; +const METRIC_PAGE_NAMES = { + "297x420": "A3", + "210x297": "A4" +}; +function getPageName(size, isPortrait, pageNames) { + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; +} +var _fieldData = /*#__PURE__*/new WeakMap(); +var _reset = /*#__PURE__*/new WeakSet(); +var _updateUI = /*#__PURE__*/new WeakSet(); +var _parseFileSize = /*#__PURE__*/new WeakSet(); +var _parsePageSize = /*#__PURE__*/new WeakSet(); +var _parseDate = /*#__PURE__*/new WeakSet(); +var _parseLinearization = /*#__PURE__*/new WeakSet(); +class PDFDocumentProperties { + constructor(_ref, overlayManager, eventBus, l10n, fileNameLookup) { + let { + dialog, + fields, + closeButton + } = _ref; + _classPrivateMethodInitSpec(this, _parseLinearization); + _classPrivateMethodInitSpec(this, _parseDate); + _classPrivateMethodInitSpec(this, _parsePageSize); + _classPrivateMethodInitSpec(this, _parseFileSize); + _classPrivateMethodInitSpec(this, _updateUI); + _classPrivateMethodInitSpec(this, _reset); + _classPrivateFieldInitSpec(this, _fieldData, { + writable: true, + value: null + }); + this.dialog = dialog; + this.fields = fields; + this.overlayManager = overlayManager; + this.l10n = l10n; + this._fileNameLookup = fileNameLookup; + _classPrivateMethodGet(this, _reset, _reset2).call(this); + closeButton.addEventListener("click", this.close.bind(this)); + this.overlayManager.register(this.dialog); + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; + }); + this._isNonMetricLocale = true; + l10n.getLanguage().then(locale => { + this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); + }); + } + async open() { + await Promise.all([this.overlayManager.open(this.dialog), this._dataAvailableCapability.promise]); + const currentPageNumber = this._currentPageNumber; + const pagesRotation = this._pagesRotation; + if (_classPrivateFieldGet(this, _fieldData) && currentPageNumber === _classPrivateFieldGet(this, _fieldData)._currentPageNumber && pagesRotation === _classPrivateFieldGet(this, _fieldData)._pagesRotation) { + _classPrivateMethodGet(this, _updateUI, _updateUI2).call(this); + return; + } + const { + info, + contentLength + } = await this.pdfDocument.getMetadata(); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), _classPrivateMethodGet(this, _parseFileSize, _parseFileSize2).call(this, contentLength), _classPrivateMethodGet(this, _parseDate, _parseDate2).call(this, info.CreationDate), _classPrivateMethodGet(this, _parseDate, _parseDate2).call(this, info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { + return _classPrivateMethodGet(this, _parsePageSize, _parsePageSize2).call(this, (0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); + }), _classPrivateMethodGet(this, _parseLinearization, _parseLinearization2).call(this, info.IsLinearized)]); + _classPrivateFieldSet(this, _fieldData, Object.freeze({ + fileName, + fileSize, + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creationDate, + modificationDate, + creator: info.Creator, + producer: info.Producer, + version: info.PDFFormatVersion, + pageCount: this.pdfDocument.numPages, + pageSize, + linearized: isLinearized, + _currentPageNumber: currentPageNumber, + _pagesRotation: pagesRotation + })); + _classPrivateMethodGet(this, _updateUI, _updateUI2).call(this); + const { + length + } = await this.pdfDocument.getDownloadInfo(); + if (contentLength === length) { + return; + } + const data = Object.assign(Object.create(null), _classPrivateFieldGet(this, _fieldData)); + data.fileSize = await _classPrivateMethodGet(this, _parseFileSize, _parseFileSize2).call(this, length); + _classPrivateFieldSet(this, _fieldData, Object.freeze(data)); + _classPrivateMethodGet(this, _updateUI, _updateUI2).call(this); + } + async close() { + this.overlayManager.close(this.dialog); + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + _classPrivateMethodGet(this, _reset, _reset2).call(this); + _classPrivateMethodGet(this, _updateUI, _updateUI2).call(this, true); + } + if (!pdfDocument) { + return; + } + this.pdfDocument = pdfDocument; + this._dataAvailableCapability.resolve(); + } +} +exports.PDFDocumentProperties = PDFDocumentProperties; +function _reset2() { + this.pdfDocument = null; + _classPrivateFieldSet(this, _fieldData, null); + this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._currentPageNumber = 1; + this._pagesRotation = 0; +} +function _updateUI2() { + let reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (reset || !_classPrivateFieldGet(this, _fieldData)) { + for (const id in this.fields) { + this.fields[id].textContent = DEFAULT_FIELD_CONTENT; + } + return; + } + if (this.overlayManager.active !== this.dialog) { + return; + } + for (const id in this.fields) { + const content = _classPrivateFieldGet(this, _fieldData)[id]; + this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; + } +} +async function _parseFileSize2() { + let fileSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + const kb = fileSize / 1024, + mb = kb / 1024; + if (!kb) { + return undefined; + } + return this.l10n.get(`document_properties_${mb >= 1 ? "mb" : "kb"}`, { + size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(), + size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }); +} +async function _parsePageSize2(pageSizeInches, pagesRotation) { + if (!pageSizeInches) { + return undefined; + } + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + const isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); + let sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + let sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + const exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + const intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) + }; + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); + if (rawName) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; + } + } + } + const [{ + width, + height + }, unit, name, orientation] = await Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get(`document_properties_page_size_unit_${this._isNonMetricLocale ? "inches" : "millimeters"}`), rawName && this.l10n.get(`document_properties_page_size_name_${rawName.toLowerCase()}`), this.l10n.get(`document_properties_page_size_orientation_${isPortrait ? "portrait" : "landscape"}`)]); + return this.l10n.get(`document_properties_page_size_dimension_${name ? "name_" : ""}string`, { + width: width.toLocaleString(), + height: height.toLocaleString(), + unit, + name, + orientation + }); +} +async function _parseDate2(inputDate) { + const dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); + if (!dateObject) { + return undefined; + } + return this.l10n.get("document_properties_date_string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); +} +function _parseLinearization2(isLinearized) { + return this.l10n.get(`document_properties_linearized_${isLinearized ? "yes" : "no"}`); +} + +/***/ }), +/* 16 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFindBar = void 0; +var _pdf_find_controller = __webpack_require__(17); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const MATCHES_COUNT_LIMIT = 1000; +var _adjustWidth = /*#__PURE__*/new WeakSet(); +class PDFFindBar { + constructor(options, eventBus, l10n) { + _classPrivateMethodInitSpec(this, _adjustWidth); + this.opened = false; + this.bar = options.bar; + this.toggleButton = options.toggleButton; + this.findField = options.findField; + this.highlightAll = options.highlightAllCheckbox; + this.caseSensitive = options.caseSensitiveCheckbox; + this.matchDiacritics = options.matchDiacriticsCheckbox; + this.entireWord = options.entireWordCheckbox; + this.findMsg = options.findMsg; + this.findResultsCount = options.findResultsCount; + this.findPreviousButton = options.findPreviousButton; + this.findNextButton = options.findNextButton; + this.eventBus = eventBus; + this.l10n = l10n; + this.toggleButton.addEventListener("click", () => { + this.toggle(); + }); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); + }); + this.bar.addEventListener("keydown", e => { + switch (e.keyCode) { + case 13: + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); + } + break; + case 27: + this.close(); + break; + } + }); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); + }); + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); + }); + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); + }); + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); + }); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); + }); + this.matchDiacritics.addEventListener("click", () => { + this.dispatchEvent("diacriticmatchingchange"); + }); + this.eventBus._on("resize", _classPrivateMethodGet(this, _adjustWidth, _adjustWidth2).bind(this)); + } + reset() { + this.updateUIState(); + } + dispatchEvent(type) { + let findPrev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + phraseSearch: true, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev, + matchDiacritics: this.matchDiacritics.checked + }); + } + updateUIState(state, previous, matchesCount) { + let findMsg = Promise.resolve(""); + let status = ""; + switch (state) { + case _pdf_find_controller.FindState.FOUND: + break; + case _pdf_find_controller.FindState.PENDING: + status = "pending"; + break; + case _pdf_find_controller.FindState.NOT_FOUND: + findMsg = this.l10n.get("find_not_found"); + status = "notFound"; + break; + case _pdf_find_controller.FindState.WRAPPED: + findMsg = this.l10n.get(`find_reached_${previous ? "top" : "bottom"}`); + break; + } + this.findField.setAttribute("data-status", status); + this.findField.setAttribute("aria-invalid", state === _pdf_find_controller.FindState.NOT_FOUND); + findMsg.then(msg => { + this.findMsg.textContent = msg; + _classPrivateMethodGet(this, _adjustWidth, _adjustWidth2).call(this); + }); + this.updateResultsCount(matchesCount); + } + updateResultsCount() { + let { + current = 0, + total = 0 + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + const limit = MATCHES_COUNT_LIMIT; + let matchCountMsg = Promise.resolve(""); + if (total > 0) { + if (total > limit) { + let key = "find_match_count_limit"; + matchCountMsg = this.l10n.get(key, { + limit + }); + } else { + let key = "find_match_count"; + matchCountMsg = this.l10n.get(key, { + current, + total + }); + } + } + matchCountMsg.then(msg => { + this.findResultsCount.textContent = msg; + _classPrivateMethodGet(this, _adjustWidth, _adjustWidth2).call(this); + }); + } + open() { + if (!this.opened) { + this.opened = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.bar.classList.remove("hidden"); + } + this.findField.select(); + this.findField.focus(); + _classPrivateMethodGet(this, _adjustWidth, _adjustWidth2).call(this); + } + close() { + if (!this.opened) { + return; + } + this.opened = false; + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + this.bar.classList.add("hidden"); + this.eventBus.dispatch("findbarclose", { + source: this + }); + } + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } +} +exports.PDFFindBar = PDFFindBar; +function _adjustWidth2() { + if (!this.opened) { + return; + } + this.bar.classList.remove("wrapContainers"); + const findbarHeight = this.bar.clientHeight; + const inputContainerHeight = this.bar.firstElementChild.clientHeight; + if (findbarHeight > inputContainerHeight) { + this.bar.classList.add("wrapContainers"); + } +} + +/***/ }), +/* 17 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFindController = exports.FindState = void 0; +var _ui_utils = __webpack_require__(1); +var _pdfjsLib = __webpack_require__(5); +var _pdf_find_utils = __webpack_require__(18); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const FindState = { + FOUND: 0, + NOT_FOUND: 1, + WRAPPED: 2, + PENDING: 3 +}; +exports.FindState = FindState; +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", + "\u201C": '"', + "\u201D": '"', + "\u201E": '"', + "\u201F": '"', + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" +}; +const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); +const DIACRITICS_EXCEPTION_STR = [...DIACRITICS_EXCEPTION.values()].map(x => String.fromCharCode(x)).join(""); +const DIACRITICS_REG_EXP = /\p{M}+/gu; +const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; +const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; +const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; +const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; +const SYLLABLES_LENGTHS = new Map(); +const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; +let noSyllablesRegExp = null; +let withSyllablesRegExp = null; +function normalize(text) { + const syllablePositions = []; + let m; + while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { + let { + index + } = m; + for (const char of m[0]) { + let len = SYLLABLES_LENGTHS.get(char); + if (!len) { + len = char.normalize("NFD").length; + SYLLABLES_LENGTHS.set(char, len); + } + syllablePositions.push([len, index++]); + } + } + let normalizationRegex; + if (syllablePositions.length === 0 && noSyllablesRegExp) { + normalizationRegex = noSyllablesRegExp; + } else if (syllablePositions.length > 0 && withSyllablesRegExp) { + normalizationRegex = withSyllablesRegExp; + } else { + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + const regexp = `([${replace}])|(\\p{M}+(?:-\\n)?)|(\\S-\\n)|(\\p{Ideographic}\\n)|(\\n)`; + if (syllablePositions.length === 0) { + normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); + } else { + normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); + } + } + const rawDiacriticsPositions = []; + while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { + rawDiacriticsPositions.push([m[0].length, m.index]); + } + let normalized = text.normalize("NFD"); + const positions = [[0, 0]]; + let rawDiacriticsIndex = 0; + let syllableIndex = 0; + let shift = 0; + let shiftOrigin = 0; + let eol = 0; + let hasDiacritics = false; + normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, i) => { + var _syllablePositions$sy; + i -= shiftOrigin; + if (p1) { + const replacement = CHARACTERS_TO_NORMALIZE[match]; + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); + } + shift -= jj - 1; + return replacement; + } + if (p2) { + var _rawDiacriticsPositio; + const hasTrailingDashEOL = p2.endsWith("\n"); + const len = hasTrailingDashEOL ? p2.length - 2 : p2.length; + hasDiacritics = true; + let jj = len; + if (i + eol === ((_rawDiacriticsPositio = rawDiacriticsPositions[rawDiacriticsIndex]) === null || _rawDiacriticsPositio === void 0 ? void 0 : _rawDiacriticsPositio[1])) { + jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; + ++rawDiacriticsIndex; + } + for (let j = 1; j <= jj; j++) { + positions.push([i - 1 - shift + j, shift - j]); + } + shift -= jj; + shiftOrigin += jj; + if (hasTrailingDashEOL) { + i += len - 1; + positions.push([i - shift + 1, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p2.slice(0, len); + } + return p2; + } + if (p3) { + positions.push([i - shift + 1, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p3.charAt(0); + } + if (p4) { + positions.push([i - shift + 1, shift]); + shiftOrigin += 1; + eol += 1; + return p4.charAt(0); + } + if (p5) { + positions.push([i - shift + 1, shift - 1]); + shift -= 1; + shiftOrigin += 1; + eol += 1; + return " "; + } + if (i + eol === ((_syllablePositions$sy = syllablePositions[syllableIndex]) === null || _syllablePositions$sy === void 0 ? void 0 : _syllablePositions$sy[1])) { + const newCharLen = syllablePositions[syllableIndex][0] - 1; + ++syllableIndex; + for (let j = 1; j <= newCharLen; j++) { + positions.push([i - (shift - j), shift - j]); + } + shift -= newCharLen; + shiftOrigin += newCharLen; + } + return p6; + }); + positions.push([normalized.length, shift]); + return [normalized, positions, hasDiacritics]; +} +function getOriginalIndex(diffs, pos, len) { + if (!diffs) { + return [pos, len]; + } + const start = pos; + const end = pos + len; + let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start); + if (diffs[i][0] > start) { + --i; + } + let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i); + if (diffs[j][0] > end) { + --j; + } + return [start + diffs[i][1], len + diffs[j][1] - diffs[i][1]]; +} +var _onFind = /*#__PURE__*/new WeakSet(); +var _reset = /*#__PURE__*/new WeakSet(); +var _query = /*#__PURE__*/new WeakMap(); +var _shouldDirtyMatch = /*#__PURE__*/new WeakSet(); +var _isEntireWord = /*#__PURE__*/new WeakSet(); +var _calculateRegExpMatch = /*#__PURE__*/new WeakSet(); +var _convertToRegExpString = /*#__PURE__*/new WeakSet(); +var _calculateMatch = /*#__PURE__*/new WeakSet(); +var _extractText = /*#__PURE__*/new WeakSet(); +var _updatePage = /*#__PURE__*/new WeakSet(); +var _updateAllPages = /*#__PURE__*/new WeakSet(); +var _nextMatch = /*#__PURE__*/new WeakSet(); +var _matchesReady = /*#__PURE__*/new WeakSet(); +var _nextPageMatch = /*#__PURE__*/new WeakSet(); +var _advanceOffsetPage = /*#__PURE__*/new WeakSet(); +var _updateMatch = /*#__PURE__*/new WeakSet(); +var _onFindBarClose = /*#__PURE__*/new WeakSet(); +var _requestMatchesCount = /*#__PURE__*/new WeakSet(); +var _updateUIResultsCount = /*#__PURE__*/new WeakSet(); +var _updateUIState = /*#__PURE__*/new WeakSet(); +class PDFFindController { + constructor(_ref) { + let { + linkService: _linkService, + eventBus + } = _ref; + _classPrivateMethodInitSpec(this, _updateUIState); + _classPrivateMethodInitSpec(this, _updateUIResultsCount); + _classPrivateMethodInitSpec(this, _requestMatchesCount); + _classPrivateMethodInitSpec(this, _onFindBarClose); + _classPrivateMethodInitSpec(this, _updateMatch); + _classPrivateMethodInitSpec(this, _advanceOffsetPage); + _classPrivateMethodInitSpec(this, _nextPageMatch); + _classPrivateMethodInitSpec(this, _matchesReady); + _classPrivateMethodInitSpec(this, _nextMatch); + _classPrivateMethodInitSpec(this, _updateAllPages); + _classPrivateMethodInitSpec(this, _updatePage); + _classPrivateMethodInitSpec(this, _extractText); + _classPrivateMethodInitSpec(this, _calculateMatch); + _classPrivateMethodInitSpec(this, _convertToRegExpString); + _classPrivateMethodInitSpec(this, _calculateRegExpMatch); + _classPrivateMethodInitSpec(this, _isEntireWord); + _classPrivateMethodInitSpec(this, _shouldDirtyMatch); + _classPrivateFieldInitSpec(this, _query, { + get: _get_query, + set: void 0 + }); + _classPrivateMethodInitSpec(this, _reset); + _classPrivateMethodInitSpec(this, _onFind); + this._linkService = _linkService; + this._eventBus = eventBus; + _classPrivateMethodGet(this, _reset, _reset2).call(this); + eventBus._on("find", _classPrivateMethodGet(this, _onFind, _onFind2).bind(this)); + eventBus._on("findbarclose", _classPrivateMethodGet(this, _onFindBarClose, _onFindBarClose2).bind(this)); + } + get highlightMatches() { + return this._highlightMatches; + } + get pageMatches() { + return this._pageMatches; + } + get pageMatchesLength() { + return this._pageMatchesLength; + } + get selected() { + return this._selected; + } + get state() { + return this._state; + } + setDocument(pdfDocument) { + if (this._pdfDocument) { + _classPrivateMethodGet(this, _reset, _reset2).call(this); + } + if (!pdfDocument) { + return; + } + this._pdfDocument = pdfDocument; + this._firstPageCapability.resolve(); + } + scrollMatchIntoView(_ref2) { + let { + element = null, + selectedLeft = 0, + pageIndex = -1, + matchIndex = -1 + } = _ref2; + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; + } + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT + }; + (0, _ui_utils.scrollIntoView)(element, spot, true); + } +} +exports.PDFFindController = PDFFindController; +function _onFind2(state) { + if (!state) { + return; + } + const pdfDocument = this._pdfDocument; + const { + type + } = state; + if (this._state === null || _classPrivateMethodGet(this, _shouldDirtyMatch, _shouldDirtyMatch2).call(this, state)) { + this._dirtyMatch = true; + } + this._state = state; + if (type !== "highlightallchange") { + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, FindState.PENDING); + } + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + _classPrivateMethodGet(this, _extractText, _extractText2).call(this); + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (!type) { + this._findTimeout = setTimeout(() => { + _classPrivateMethodGet(this, _nextMatch, _nextMatch2).call(this); + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + _classPrivateMethodGet(this, _nextMatch, _nextMatch2).call(this); + } else if (type === "again") { + _classPrivateMethodGet(this, _nextMatch, _nextMatch2).call(this); + if (findbarClosed && this._state.highlightAll) { + _classPrivateMethodGet(this, _updateAllPages, _updateAllPages2).call(this); + } + } else if (type === "highlightallchange") { + if (pendingTimeout) { + _classPrivateMethodGet(this, _nextMatch, _nextMatch2).call(this); + } else { + this._highlightMatches = true; + } + _classPrivateMethodGet(this, _updateAllPages, _updateAllPages2).call(this); + } else { + _classPrivateMethodGet(this, _nextMatch, _nextMatch2).call(this); + } + }); +} +function _reset2() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this._state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._hasDiacritics = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); +} +function _get_query() { + if (this._state.query !== this._rawQuery) { + this._rawQuery = this._state.query; + [this._normalizedQuery] = normalize(this._state.query); + } + return this._normalizedQuery; +} +function _shouldDirtyMatch2(state) { + if (state.query !== this._state.query) { + return true; + } + switch (state.type) { + case "again": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { + return true; + } + return false; + case "highlightallchange": + return false; + } + return true; +} +function _isEntireWord2(content, startIdx, length) { + let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); + if (match) { + const first = content.charCodeAt(startIdx); + const limit = match[1].charCodeAt(0); + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); + if (match) { + const last = content.charCodeAt(startIdx + length - 1); + const limit = match[1].charCodeAt(0); + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + return true; +} +function _calculateRegExpMatch2(query, entireWord, pageIndex, pageContent) { + const matches = [], + matchesLength = []; + const diffs = this._pageDiffs[pageIndex]; + let match; + while ((match = query.exec(pageContent)) !== null) { + if (entireWord && !_classPrivateMethodGet(this, _isEntireWord, _isEntireWord2).call(this, pageContent, match.index, match[0].length)) { + continue; + } + const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length); + if (matchLen) { + matches.push(matchPos); + matchesLength.push(matchLen); + } + } + this._pageMatches[pageIndex] = matches; + this._pageMatchesLength[pageIndex] = matchesLength; +} +function _convertToRegExpString2(query, hasDiacritics) { + const { + matchDiacritics + } = this._state; + let isUnicode = false; + query = query.replace(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { + if (p1) { + return `[ ]*\\${p1}[ ]*`; + } + if (p2) { + return `[ ]*${p2}[ ]*`; + } + if (p3) { + return "[ ]+"; + } + if (matchDiacritics) { + return p4 || p5; + } + if (p4) { + return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; + } + if (hasDiacritics) { + isUnicode = true; + return `${p5}\\p{M}*`; + } + return p5; + }); + const trailingSpaces = "[ ]*"; + if (query.endsWith(trailingSpaces)) { + query = query.slice(0, query.length - trailingSpaces.length); + } + if (matchDiacritics) { + if (hasDiacritics) { + isUnicode = true; + query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; + } + } + return [isUnicode, query]; +} +function _calculateMatch2(pageIndex) { + let query = _classPrivateFieldGet(this, _query); + if (query.length === 0) { + return; + } + const { + caseSensitive, + entireWord, + phraseSearch + } = this._state; + const pageContent = this._pageContents[pageIndex]; + const hasDiacritics = this._hasDiacritics[pageIndex]; + let isUnicode = false; + if (phraseSearch) { + [isUnicode, query] = _classPrivateMethodGet(this, _convertToRegExpString, _convertToRegExpString2).call(this, query, hasDiacritics); + } else { + const match = query.match(/\S+/g); + if (match) { + query = match.sort().reverse().map(q => { + const [isUnicodePart, queryPart] = _classPrivateMethodGet(this, _convertToRegExpString, _convertToRegExpString2).call(this, q, hasDiacritics); + isUnicode || (isUnicode = isUnicodePart); + return `(${queryPart})`; + }).join("|"); + } + } + const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; + query = new RegExp(query, flags); + _classPrivateMethodGet(this, _calculateRegExpMatch, _calculateRegExpMatch2).call(this, query, entireWord, pageIndex, pageContent); + if (this._state.highlightAll) { + _classPrivateMethodGet(this, _updatePage, _updatePage2).call(this, pageIndex); + } + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + _classPrivateMethodGet(this, _nextPageMatch, _nextPageMatch2).call(this); + } + const pageMatchesCount = this._pageMatches[pageIndex].length; + if (pageMatchesCount > 0) { + this._matchesCountTotal += pageMatchesCount; + _classPrivateMethodGet(this, _updateUIResultsCount, _updateUIResultsCount2).call(this); + } +} +function _extractText2() { + if (this._extractTextPromises.length > 0) { + return; + } + let promise = Promise.resolve(); + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent(); + }).then(textContent => { + const strBuf = []; + for (const textItem of textContent.items) { + strBuf.push(textItem.str); + if (textItem.hasEOL) { + strBuf.push("\n"); + } + } + [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); + extractTextCapability.resolve(); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + this._hasDiacritics[i] = false; + extractTextCapability.resolve(); + }); + }); + } +} +function _updatePage2(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: index + }); +} +function _updateAllPages2() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 + }); +} +function _nextMatch2() { + const previous = this._state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; + this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this._matchesCountTotal = 0; + _classPrivateMethodGet(this, _updateAllPages, _updateAllPages2).call(this); + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; + } + this._pendingFindMatches.add(i); + this._extractTextPromises[i].then(() => { + this._pendingFindMatches.delete(i); + _classPrivateMethodGet(this, _calculateMatch, _calculateMatch2).call(this, i); + }); + } + } + if (_classPrivateFieldGet(this, _query) === "") { + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, FindState.FOUND); + return; + } + if (this._resumePageIdx) { + return; + } + const offset = this._offset; + this._pagesToSearch = numPages; + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + _classPrivateMethodGet(this, _updateMatch, _updateMatch2).call(this, true); + return; + } + _classPrivateMethodGet(this, _advanceOffsetPage, _advanceOffsetPage2).call(this, previous); + } + _classPrivateMethodGet(this, _nextPageMatch, _nextPageMatch2).call(this); +} +function _matchesReady2(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this._state.findPrevious; + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + _classPrivateMethodGet(this, _updateMatch, _updateMatch2).call(this, true); + return true; + } + _classPrivateMethodGet(this, _advanceOffsetPage, _advanceOffsetPage2).call(this, previous); + if (offset.wrapped) { + offset.matchIdx = null; + if (this._pagesToSearch < 0) { + _classPrivateMethodGet(this, _updateMatch, _updateMatch2).call(this, false); + return true; + } + } + return false; +} +function _nextPageMatch2() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); + } + let matches = null; + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!_classPrivateMethodGet(this, _matchesReady, _matchesReady2).call(this, matches)); +} +function _advanceOffsetPage2(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } +} +function _updateMatch2() { + let found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + _classPrivateMethodGet(this, _updatePage, _updatePage2).call(this, previousPage); + } + } + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, state, this._state.findPrevious); + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + _classPrivateMethodGet(this, _updatePage, _updatePage2).call(this, this._selected.pageIdx); + } +} +function _onFindBarClose2(evt) { + const pdfDocument = this._pdfDocument; + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, FindState.FOUND); + this._highlightMatches = false; + _classPrivateMethodGet(this, _updateAllPages, _updateAllPages2).call(this); + }); +} +function _requestMatchesCount2() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + var _this$_pageMatches$i; + current += ((_this$_pageMatches$i = this._pageMatches[i]) === null || _this$_pageMatches$i === void 0 ? void 0 : _this$_pageMatches$i.length) || 0; + } + current += matchIdx + 1; + } + if (current < 1 || current > total) { + current = total = 0; + } + return { + current, + total + }; +} +function _updateUIResultsCount2() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: _classPrivateMethodGet(this, _requestMatchesCount, _requestMatchesCount2).call(this) + }); +} +function _updateUIState2(state) { + var _this$_state; + let previous = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: _classPrivateMethodGet(this, _requestMatchesCount, _requestMatchesCount2).call(this), + rawQuery: ((_this$_state = this._state) === null || _this$_state === void 0 ? void 0 : _this$_state.query) ?? null + }); +} + +/***/ }), +/* 18 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CharacterType = void 0; +exports.getCharacterType = getCharacterType; +const CharacterType = { + SPACE: 0, + ALPHA_LETTER: 1, + PUNCT: 2, + HAN_LETTER: 3, + KATAKANA_LETTER: 4, + HIRAGANA_LETTER: 5, + HALFWIDTH_KATAKANA_LETTER: 6, + THAI_LETTER: 7 +}; +exports.CharacterType = CharacterType; +function isAlphabeticalScript(charCode) { + return charCode < 0x2e80; +} +function isAscii(charCode) { + return (charCode & 0xff80) === 0; +} +function isAsciiAlpha(charCode) { + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; +} +function isAsciiDigit(charCode) { + return charCode >= 0x30 && charCode <= 0x39; +} +function isAsciiSpace(charCode) { + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; +} +function isHan(charCode) { + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; +} +function isKatakana(charCode) { + return charCode >= 0x30a0 && charCode <= 0x30ff; +} +function isHiragana(charCode) { + return charCode >= 0x3040 && charCode <= 0x309f; +} +function isHalfwidthKatakana(charCode) { + return charCode >= 0xff60 && charCode <= 0xff9f; +} +function isThai(charCode) { + return (charCode & 0xff80) === 0x0e00; +} +function getCharacterType(charCode) { + if (isAlphabeticalScript(charCode)) { + if (isAscii(charCode)) { + if (isAsciiSpace(charCode)) { + return CharacterType.SPACE; + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { + return CharacterType.ALPHA_LETTER; + } + return CharacterType.PUNCT; + } else if (isThai(charCode)) { + return CharacterType.THAI_LETTER; + } else if (charCode === 0xa0) { + return CharacterType.SPACE; + } + return CharacterType.ALPHA_LETTER; + } + if (isHan(charCode)) { + return CharacterType.HAN_LETTER; + } else if (isKatakana(charCode)) { + return CharacterType.KATAKANA_LETTER; + } else if (isHiragana(charCode)) { + return CharacterType.HIRAGANA_LETTER; + } else if (isHalfwidthKatakana(charCode)) { + return CharacterType.HALFWIDTH_KATAKANA_LETTER; + } + return CharacterType.ALPHA_LETTER; +} + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFHistory = void 0; +exports.isDestArraysEqual = isDestArraysEqual; +exports.isDestHashesEqual = isDestHashesEqual; +var _ui_utils = __webpack_require__(1); +var _event_utils = __webpack_require__(6); +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; +function getCurrentHash() { + return document.location.hash; +} +class PDFHistory { + constructor(_ref) { + let { + linkService, + eventBus + } = _ref; + this.linkService = linkService; + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this._boundEvents = null; + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); + }); + } + initialize(_ref2) { + let { + fingerprint, + resetHistory = false, + updateUrl = false + } = _ref2; + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; + } + if (this._initialized) { + this.reset(); + } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; + this._bindEvents(); + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; + if (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); + return; + } + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + const destination = state.destination; + this._updateInternalState(destination, state.uid, true); + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } + } + reset() { + if (this._initialized) { + this._pageHide(); + this._initialized = false; + this._unbindEvents(); + } + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._initialBookmark = null; + this._initialRotation = null; + } + push(_ref3) { + let { + namedDest = null, + explicitDest, + pageNumber + } = _ref3; + if (!this._initialized) { + return; + } + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!this._isValidPage(pageNumber)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + } + const hash = namedDest || JSON.stringify(explicitDest); + if (!hash) { + return; + } + let forceReplace = false; + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { + return; + } + forceReplace = true; + } + if (this._popStateInProgress && !forceReplace) { + return; + } + this._pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushPage(pageNumber) { + var _this$_destination; + if (!this._initialized) { + return; + } + if (!this._isValidPage(pageNumber)) { + console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); + return; + } + if (((_this$_destination = this._destination) === null || _this$_destination === void 0 ? void 0 : _this$_destination.page) === pageNumber) { + return; + } + if (this._popStateInProgress) { + return; + } + this._pushOrReplaceState({ + dest: null, + hash: `page=${pageNumber}`, + page: pageNumber, + rotation: this.linkService.rotation + }); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { + return; + } + this._tryPushCurrentPosition(); + } + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + forward() { + if (!this._initialized || this._popStateInProgress) { + return; + } + const state = window.history.state; + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + _pushOrReplaceState(destination) { + let forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + this._updateInternalState(destination, newState.uid); + let newUrl; + if (this._updateUrl && destination !== null && destination !== void 0 && destination.hash) { + const baseUrl = document.location.href.split("#")[0]; + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; + } + } + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + window.history.pushState(newState, "", newUrl); + } + } + _tryPushCurrentPosition() { + let temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!this._position) { + return; + } + let position = this._position; + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + if (!this._destination) { + this._pushOrReplaceState(position); + return; + } + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + return; + } + if (this._destination.hash === position.hash) { + return; + } + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + let forceReplace = false; + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest !== undefined || !this._destination.first) { + return; + } + forceReplace = true; + } + this._pushOrReplaceState(position, forceReplace); + } + _isValidPage(val) { + return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; + } + _isValidState(state) { + let checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (!state) { + return false; + } + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; + } + const [perfEntry] = performance.getEntriesByType("navigation"); + if ((perfEntry === null || perfEntry === void 0 ? void 0 : perfEntry.type) !== "reload") { + return false; + } + } else { + return false; + } + } + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + if (state.destination === null || typeof state.destination !== "object") { + return false; + } + return true; + } + _updateInternalState(destination, uid) { + let removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + if (removeTemporary && destination !== null && destination !== void 0 && destination.temporary) { + delete destination.temporary; + } + this._destination = destination; + this._uid = uid; + this._maxUid = Math.max(this._maxUid, uid); + this._numPositionUpdates = 0; + } + _parseCurrentHash() { + let checkNameddest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + const hash = unescape(getCurrentHash()).substring(1); + const params = (0, _ui_utils.parseQueryString)(hash); + const nameddest = params.get("nameddest") || ""; + let page = params.get("page") | 0; + if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) { + page = null; + } + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + _updateViewarea(_ref4) { + let { + location + } = _ref4; + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + this._position = { + hash: location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + if (this._popStateInProgress) { + return; + } + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this._tryPushCurrentPosition(true); + } + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + _popState(_ref5) { + let { + state + } = _ref5; + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + if (!state) { + this._uid++; + const { + hash, + page, + rotation + } = this._parseCurrentHash(); + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + return; + } + if (!this._isValidState(state)) { + return; + } + this._popStateInProgress = true; + if (hashChanged) { + this._blockHashChange++; + (0, _event_utils.waitOnEventOrTimeout)({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; + }); + } + const destination = state.destination; + this._updateInternalState(destination, state.uid, true); + if ((0, _ui_utils.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + if (destination.dest) { + this.linkService.goToDestination(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + _pageHide() { + if (!this._destination || this._destination.temporary) { + this._tryPushCurrentPosition(); + } + } + _bindEvents() { + if (this._boundEvents) { + return; + } + this._boundEvents = { + updateViewarea: this._updateViewarea.bind(this), + popState: this._popState.bind(this), + pageHide: this._pageHide.bind(this) + }; + this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); + window.addEventListener("popstate", this._boundEvents.popState); + window.addEventListener("pagehide", this._boundEvents.pageHide); + } + _unbindEvents() { + if (!this._boundEvents) { + return; + } + this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + window.removeEventListener("popstate", this._boundEvents.popState); + window.removeEventListener("pagehide", this._boundEvents.pageHide); + this._boundEvents = null; + } +} +exports.PDFHistory = PDFHistory; +function isDestHashesEqual(destHash, pushHash) { + if (typeof destHash !== "string" || typeof pushHash !== "string") { + return false; + } + if (destHash === pushHash) { + return true; + } + const nameddest = (0, _ui_utils.parseQueryString)(destHash).get("nameddest"); + if (nameddest === pushHash) { + return true; + } + return false; +} +function isDestArraysEqual(firstDest, secondDest) { + function isEntryEqual(first, second) { + if (typeof first !== typeof second) { + return false; + } + if (Array.isArray(first) || Array.isArray(second)) { + return false; + } + if (first !== null && typeof first === "object" && second !== null) { + if (Object.keys(first).length !== Object.keys(second).length) { + return false; + } + for (const key in first) { + if (!isEntryEqual(first[key], second[key])) { + return false; + } + } + return true; + } + return first === second || Number.isNaN(first) && Number.isNaN(second); + } + if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { + return false; + } + if (firstDest.length !== secondDest.length) { + return false; + } + for (let i = 0, ii = firstDest.length; i < ii; i++) { + if (!isEntryEqual(firstDest[i], secondDest[i])) { + return false; + } + } + return true; +} + +/***/ }), +/* 20 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFLayerViewer = void 0; +var _base_tree_viewer = __webpack_require__(14); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _updateLayers = /*#__PURE__*/new WeakSet(); +class PDFLayerViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + _classPrivateMethodInitSpec(this, _updateLayers); + this.l10n = options.l10n; + this.eventBus._on("optionalcontentconfigchanged", evt => { + _classPrivateMethodGet(this, _updateLayers, _updateLayers2).call(this, evt.promise); + }); + this.eventBus._on("resetlayers", () => { + _classPrivateMethodGet(this, _updateLayers, _updateLayers2).call(this); + }); + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + reset() { + super.reset(); + this._optionalContentConfig = null; + this._optionalContentHash = null; + } + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + _bindLink(element, _ref) { + let { + groupId, + input + } = _ref; + const setVisibility = () => { + this._optionalContentConfig.setVisibility(groupId, input.checked); + this._optionalContentHash = this._optionalContentConfig.getHash(); + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(this._optionalContentConfig) + }); + }; + element.onclick = evt => { + if (evt.target === input) { + setVisibility(); + return true; + } else if (evt.target !== element) { + return true; + } + input.checked = !input.checked; + setVisibility(); + return false; + }; + } + async _setNestedName(element, _ref2) { + let { + name = null + } = _ref2; + if (typeof name === "string") { + element.textContent = this._normalizeTextContent(name); + return; + } + element.textContent = await this.l10n.get("additional_layers"); + element.style.fontStyle = "italic"; + } + _addToggleButton(div, _ref3) { + let { + name = null + } = _ref3; + super._addToggleButton(div, name === null); + } + _toggleAllTreeItems() { + if (!this._optionalContentConfig) { + return; + } + super._toggleAllTreeItems(); + } + render(_ref4) { + let { + optionalContentConfig, + pdfDocument + } = _ref4; + if (this._optionalContentConfig) { + this.reset(); + } + this._optionalContentConfig = optionalContentConfig || null; + this._pdfDocument = pdfDocument || null; + const groups = optionalContentConfig === null || optionalContentConfig === void 0 ? void 0 : optionalContentConfig.getOrder(); + if (!groups) { + this._dispatchEvent(0); + return; + } + this._optionalContentHash = optionalContentConfig.getHash(); + const fragment = document.createDocumentFragment(), + queue = [{ + parent: fragment, + groups + }]; + let layersCount = 0, + hasAnyNesting = false; + while (queue.length > 0) { + const levelData = queue.shift(); + for (const groupId of levelData.groups) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + div.append(element); + if (typeof groupId === "object") { + hasAnyNesting = true; + this._addToggleButton(div, groupId); + this._setNestedName(element, groupId); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + groups: groupId.order + }); + } else { + const group = optionalContentConfig.getGroup(groupId); + const input = document.createElement("input"); + this._bindLink(element, { + groupId, + input + }); + input.type = "checkbox"; + input.checked = group.visible; + const label = document.createElement("label"); + label.textContent = this._normalizeTextContent(group.name); + label.append(input); + element.append(label); + layersCount++; + } + levelData.parent.append(div); + } + } + this._finishRendering(fragment, layersCount, hasAnyNesting); + } +} +exports.PDFLayerViewer = PDFLayerViewer; +async function _updateLayers2() { + let promise = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (!this._optionalContentConfig) { + return; + } + const pdfDocument = this._pdfDocument; + const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig()); + if (pdfDocument !== this._pdfDocument) { + return; + } + if (promise) { + if (optionalContentConfig.getHash() === this._optionalContentHash) { + return; + } + } else { + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + } + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); +} + +/***/ }), +/* 21 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFOutlineViewer = void 0; +var _base_tree_viewer = __webpack_require__(14); +var _pdfjsLib = __webpack_require__(5); +var _ui_utils = __webpack_require__(1); +class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; + this.downloadManager = options.downloadManager; + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); + this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); + this.eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + } + }); + this.eventBus._on("sidebarviewchanged", evt => { + this._sidebarView = evt.view; + }); + } + reset() { + super.reset(); + this._outline = null; + this._pageNumberToDestHashCapability = null; + this._currentPageNumber = 1; + this._isPagesLoaded = null; + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(false); + } + this._currentOutlineItemCapability = null; + } + _dispatchEvent(outlineCount) { + var _this$_pdfDocument; + this._currentOutlineItemCapability = (0, _pdfjsLib.createPromiseCapability)(); + if (outlineCount === 0 || (_this$_pdfDocument = this._pdfDocument) !== null && _this$_pdfDocument !== void 0 && _this$_pdfDocument.loadingParams.disableAutoFetch) { + this._currentOutlineItemCapability.resolve(false); + } else if (this._isPagesLoaded !== null) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + } + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount, + currentOutlineItemPromise: this._currentOutlineItemCapability.promise + }); + } + _bindLink(element, _ref) { + let { + url, + newWindow, + action, + attachment, + dest, + setOCGState + } = _ref; + const { + linkService + } = this; + if (url) { + linkService.addLinkAttributes(element, url, newWindow); + return; + } + if (action) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeNamedAction(action); + return false; + }; + return; + } + if (attachment) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + this.downloadManager.openOrDownloadData(element, attachment.content, attachment.filename); + return false; + }; + return; + } + if (setOCGState) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeSetOCGState(setOCGState); + return false; + }; + return; + } + element.href = linkService.getDestinationHash(dest); + element.onclick = evt => { + this._updateCurrentTreeItem(evt.target.parentNode); + if (dest) { + linkService.goToDestination(dest); + } + return false; + }; + } + _setStyles(element, _ref2) { + let { + bold, + italic + } = _ref2; + if (bold) { + element.style.fontWeight = "bold"; + } + if (italic) { + element.style.fontStyle = "italic"; + } + } + _addToggleButton(div, _ref3) { + let { + count, + items + } = _ref3; + let hidden = false; + if (count < 0) { + let totalCount = items.length; + if (totalCount > 0) { + const queue = [...items]; + while (queue.length > 0) { + const { + count: nestedCount, + items: nestedItems + } = queue.shift(); + if (nestedCount > 0 && nestedItems.length > 0) { + totalCount += nestedItems.length; + queue.push(...nestedItems); + } + } + } + if (Math.abs(count) === totalCount) { + hidden = true; + } + } + super._addToggleButton(div, hidden); + } + _toggleAllTreeItems() { + if (!this._outline) { + return; + } + super._toggleAllTreeItems(); + } + render(_ref4) { + let { + outline, + pdfDocument + } = _ref4; + if (this._outline) { + this.reset(); + } + this._outline = outline || null; + this._pdfDocument = pdfDocument || null; + if (!outline) { + this._dispatchEvent(0); + return; + } + const fragment = document.createDocumentFragment(); + const queue = [{ + parent: fragment, + items: outline + }]; + let outlineCount = 0, + hasAnyNesting = false; + while (queue.length > 0) { + const levelData = queue.shift(); + for (const item of levelData.items) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, item); + this._setStyles(element, item); + element.textContent = this._normalizeTextContent(item.title); + div.append(element); + if (item.items.length > 0) { + hasAnyNesting = true; + this._addToggleButton(div, item); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + levelData.parent.append(div); + outlineCount++; + } + } + this._finishRendering(fragment, outlineCount, hasAnyNesting); + } + async _currentOutlineItem() { + if (!this._isPagesLoaded) { + throw new Error("_currentOutlineItem: All pages have not been loaded."); + } + if (!this._outline || !this._pdfDocument) { + return; + } + const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); + if (!pageNumberToDestHash) { + return; + } + this._updateCurrentTreeItem(null); + if (this._sidebarView !== _ui_utils.SidebarView.OUTLINE) { + return; + } + for (let i = this._currentPageNumber; i > 0; i--) { + const destHash = pageNumberToDestHash.get(i); + if (!destHash) { + continue; + } + const linkElement = this.container.querySelector(`a[href="${destHash}"]`); + if (!linkElement) { + continue; + } + this._scrollToCurrentTreeItem(linkElement.parentNode); + break; + } + } + async _getPageNumberToDestHash(pdfDocument) { + if (this._pageNumberToDestHashCapability) { + return this._pageNumberToDestHashCapability.promise; + } + this._pageNumberToDestHashCapability = (0, _pdfjsLib.createPromiseCapability)(); + const pageNumberToDestHash = new Map(), + pageNumberNesting = new Map(); + const queue = [{ + nesting: 0, + items: this._outline + }]; + while (queue.length > 0) { + const levelData = queue.shift(), + currentNesting = levelData.nesting; + for (const { + dest, + items + } of levelData.items) { + let explicitDest, pageNumber; + if (typeof dest === "string") { + explicitDest = await pdfDocument.getDestination(dest); + if (pdfDocument !== this._pdfDocument) { + return null; + } + } else { + explicitDest = dest; + } + if (Array.isArray(explicitDest)) { + const [destRef] = explicitDest; + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this.linkService._cachedPageNumber(destRef); + if (!pageNumber) { + try { + pageNumber = (await pdfDocument.getPageIndex(destRef)) + 1; + if (pdfDocument !== this._pdfDocument) { + return null; + } + this.linkService.cachePageRef(pageNumber, destRef); + } catch (ex) {} + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } + if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { + const destHash = this.linkService.getDestinationHash(dest); + pageNumberToDestHash.set(pageNumber, destHash); + pageNumberNesting.set(pageNumber, currentNesting); + } + } + if (items.length > 0) { + queue.push({ + nesting: currentNesting + 1, + items + }); + } + } + } + this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); + return this._pageNumberToDestHashCapability.promise; + } +} +exports.PDFOutlineViewer = PDFOutlineViewer; + +/***/ }), +/* 22 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFPresentationMode = void 0; +var _ui_utils = __webpack_require__(1); +var _pdfjsLib = __webpack_require__(5); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const DELAY_BEFORE_HIDING_CONTROLS = 3000; +const ACTIVE_SELECTOR = "pdfPresentationMode"; +const CONTROLS_SELECTOR = "pdfPresentationModeControls"; +const MOUSE_SCROLL_COOLDOWN_TIME = 50; +const PAGE_SWITCH_THRESHOLD = 0.1; +const SWIPE_MIN_DISTANCE_THRESHOLD = 50; +const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; +var _state = /*#__PURE__*/new WeakMap(); +var _args = /*#__PURE__*/new WeakMap(); +var _mouseWheel = /*#__PURE__*/new WeakSet(); +var _notifyStateChange = /*#__PURE__*/new WeakSet(); +var _enter = /*#__PURE__*/new WeakSet(); +var _exit = /*#__PURE__*/new WeakSet(); +var _mouseDown = /*#__PURE__*/new WeakSet(); +var _contextMenu = /*#__PURE__*/new WeakSet(); +var _showControls = /*#__PURE__*/new WeakSet(); +var _hideControls = /*#__PURE__*/new WeakSet(); +var _resetMouseScrollState = /*#__PURE__*/new WeakSet(); +var _touchSwipe = /*#__PURE__*/new WeakSet(); +var _addWindowListeners = /*#__PURE__*/new WeakSet(); +var _removeWindowListeners = /*#__PURE__*/new WeakSet(); +var _fullscreenChange = /*#__PURE__*/new WeakSet(); +var _addFullscreenChangeListeners = /*#__PURE__*/new WeakSet(); +var _removeFullscreenChangeListeners = /*#__PURE__*/new WeakSet(); +class PDFPresentationMode { + constructor(_ref) { + let { + container, + pdfViewer, + eventBus + } = _ref; + _classPrivateMethodInitSpec(this, _removeFullscreenChangeListeners); + _classPrivateMethodInitSpec(this, _addFullscreenChangeListeners); + _classPrivateMethodInitSpec(this, _fullscreenChange); + _classPrivateMethodInitSpec(this, _removeWindowListeners); + _classPrivateMethodInitSpec(this, _addWindowListeners); + _classPrivateMethodInitSpec(this, _touchSwipe); + _classPrivateMethodInitSpec(this, _resetMouseScrollState); + _classPrivateMethodInitSpec(this, _hideControls); + _classPrivateMethodInitSpec(this, _showControls); + _classPrivateMethodInitSpec(this, _contextMenu); + _classPrivateMethodInitSpec(this, _mouseDown); + _classPrivateMethodInitSpec(this, _exit); + _classPrivateMethodInitSpec(this, _enter); + _classPrivateMethodInitSpec(this, _notifyStateChange); + _classPrivateMethodInitSpec(this, _mouseWheel); + _classPrivateFieldInitSpec(this, _state, { + writable: true, + value: _ui_utils.PresentationModeState.UNKNOWN + }); + _classPrivateFieldInitSpec(this, _args, { + writable: true, + value: null + }); + this.container = container; + this.pdfViewer = pdfViewer; + this.eventBus = eventBus; + this.contextMenuOpen = false; + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + this.touchSwipeState = null; + } + async request() { + const { + container, + pdfViewer + } = this; + if (this.active || !pdfViewer.pagesCount || !container.requestFullscreen) { + return false; + } + _classPrivateMethodGet(this, _addFullscreenChangeListeners, _addFullscreenChangeListeners2).call(this); + _classPrivateMethodGet(this, _notifyStateChange, _notifyStateChange2).call(this, _ui_utils.PresentationModeState.CHANGING); + const promise = container.requestFullscreen(); + _classPrivateFieldSet(this, _args, { + pageNumber: pdfViewer.currentPageNumber, + scaleValue: pdfViewer.currentScaleValue, + scrollMode: pdfViewer.scrollMode, + spreadMode: null, + annotationEditorMode: null + }); + if (pdfViewer.spreadMode !== _ui_utils.SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) { + console.warn("Ignoring Spread modes when entering PresentationMode, " + "since the document may contain varying page sizes."); + _classPrivateFieldGet(this, _args).spreadMode = pdfViewer.spreadMode; + } + if (pdfViewer.annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + _classPrivateFieldGet(this, _args).annotationEditorMode = pdfViewer.annotationEditorMode; + } + try { + await promise; + pdfViewer.focus(); + return true; + } catch (reason) { + _classPrivateMethodGet(this, _removeFullscreenChangeListeners, _removeFullscreenChangeListeners2).call(this); + _classPrivateMethodGet(this, _notifyStateChange, _notifyStateChange2).call(this, _ui_utils.PresentationModeState.NORMAL); + } + return false; + } + get active() { + return _classPrivateFieldGet(this, _state) === _ui_utils.PresentationModeState.CHANGING || _classPrivateFieldGet(this, _state) === _ui_utils.PresentationModeState.FULLSCREEN; + } +} +exports.PDFPresentationMode = PDFPresentationMode; +function _mouseWheel2(evt) { + if (!this.active) { + return; + } + evt.preventDefault(); + const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + const currentTime = Date.now(); + const storedTime = this.mouseScrollTimeStamp; + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; + } + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + _classPrivateMethodGet(this, _resetMouseScrollState, _resetMouseScrollState2).call(this); + } + this.mouseScrollDelta += delta; + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + const totalDelta = this.mouseScrollDelta; + _classPrivateMethodGet(this, _resetMouseScrollState, _resetMouseScrollState2).call(this); + const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage(); + if (success) { + this.mouseScrollTimeStamp = currentTime; + } + } +} +function _notifyStateChange2(state) { + _classPrivateFieldSet(this, _state, state); + this.eventBus.dispatch("presentationmodechanged", { + source: this, + state + }); +} +function _enter2() { + _classPrivateMethodGet(this, _notifyStateChange, _notifyStateChange2).call(this, _ui_utils.PresentationModeState.FULLSCREEN); + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(() => { + this.pdfViewer.scrollMode = _ui_utils.ScrollMode.PAGE; + if (_classPrivateFieldGet(this, _args).spreadMode !== null) { + this.pdfViewer.spreadMode = _ui_utils.SpreadMode.NONE; + } + this.pdfViewer.currentPageNumber = _classPrivateFieldGet(this, _args).pageNumber; + this.pdfViewer.currentScaleValue = "page-fit"; + if (_classPrivateFieldGet(this, _args).annotationEditorMode !== null) { + this.pdfViewer.annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + } + }, 0); + _classPrivateMethodGet(this, _addWindowListeners, _addWindowListeners2).call(this); + _classPrivateMethodGet(this, _showControls, _showControls2).call(this); + this.contextMenuOpen = false; + window.getSelection().removeAllRanges(); +} +function _exit2() { + const pageNumber = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(() => { + _classPrivateMethodGet(this, _removeFullscreenChangeListeners, _removeFullscreenChangeListeners2).call(this); + _classPrivateMethodGet(this, _notifyStateChange, _notifyStateChange2).call(this, _ui_utils.PresentationModeState.NORMAL); + this.pdfViewer.scrollMode = _classPrivateFieldGet(this, _args).scrollMode; + if (_classPrivateFieldGet(this, _args).spreadMode !== null) { + this.pdfViewer.spreadMode = _classPrivateFieldGet(this, _args).spreadMode; + } + this.pdfViewer.currentScaleValue = _classPrivateFieldGet(this, _args).scaleValue; + this.pdfViewer.currentPageNumber = pageNumber; + if (_classPrivateFieldGet(this, _args).annotationEditorMode !== null) { + this.pdfViewer.annotationEditorMode = _classPrivateFieldGet(this, _args).annotationEditorMode; + } + _classPrivateFieldSet(this, _args, null); + }, 0); + _classPrivateMethodGet(this, _removeWindowListeners, _removeWindowListeners2).call(this); + _classPrivateMethodGet(this, _hideControls, _hideControls2).call(this); + _classPrivateMethodGet(this, _resetMouseScrollState, _resetMouseScrollState2).call(this); + this.contextMenuOpen = false; +} +function _mouseDown2(evt) { + if (this.contextMenuOpen) { + this.contextMenuOpen = false; + evt.preventDefault(); + return; + } + if (evt.button === 0) { + const isInternalLink = evt.target.href && evt.target.classList.contains("internalLink"); + if (!isInternalLink) { + evt.preventDefault(); + if (evt.shiftKey) { + this.pdfViewer.previousPage(); + } else { + this.pdfViewer.nextPage(); + } + } + } +} +function _contextMenu2() { + this.contextMenuOpen = true; +} +function _showControls2() { + if (this.controlsTimeout) { + clearTimeout(this.controlsTimeout); + } else { + this.container.classList.add(CONTROLS_SELECTOR); + } + this.controlsTimeout = setTimeout(() => { + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + }, DELAY_BEFORE_HIDING_CONTROLS); +} +function _hideControls2() { + if (!this.controlsTimeout) { + return; + } + clearTimeout(this.controlsTimeout); + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; +} +function _resetMouseScrollState2() { + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; +} +function _touchSwipe2(evt) { + if (!this.active) { + return; + } + if (evt.touches.length > 1) { + this.touchSwipeState = null; + return; + } + switch (evt.type) { + case "touchstart": + this.touchSwipeState = { + startX: evt.touches[0].pageX, + startY: evt.touches[0].pageY, + endX: evt.touches[0].pageX, + endY: evt.touches[0].pageY + }; + break; + case "touchmove": + if (this.touchSwipeState === null) { + return; + } + this.touchSwipeState.endX = evt.touches[0].pageX; + this.touchSwipeState.endY = evt.touches[0].pageY; + evt.preventDefault(); + break; + case "touchend": + if (this.touchSwipeState === null) { + return; + } + let delta = 0; + const dx = this.touchSwipeState.endX - this.touchSwipeState.startX; + const dy = this.touchSwipeState.endY - this.touchSwipeState.startY; + const absAngle = Math.abs(Math.atan2(dy, dx)); + if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { + delta = dx; + } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { + delta = dy; + } + if (delta > 0) { + this.pdfViewer.previousPage(); + } else if (delta < 0) { + this.pdfViewer.nextPage(); + } + break; + } +} +function _addWindowListeners2() { + this.showControlsBind = _classPrivateMethodGet(this, _showControls, _showControls2).bind(this); + this.mouseDownBind = _classPrivateMethodGet(this, _mouseDown, _mouseDown2).bind(this); + this.mouseWheelBind = _classPrivateMethodGet(this, _mouseWheel, _mouseWheel2).bind(this); + this.resetMouseScrollStateBind = _classPrivateMethodGet(this, _resetMouseScrollState, _resetMouseScrollState2).bind(this); + this.contextMenuBind = _classPrivateMethodGet(this, _contextMenu, _contextMenu2).bind(this); + this.touchSwipeBind = _classPrivateMethodGet(this, _touchSwipe, _touchSwipe2).bind(this); + window.addEventListener("mousemove", this.showControlsBind); + window.addEventListener("mousedown", this.mouseDownBind); + window.addEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.addEventListener("keydown", this.resetMouseScrollStateBind); + window.addEventListener("contextmenu", this.contextMenuBind); + window.addEventListener("touchstart", this.touchSwipeBind); + window.addEventListener("touchmove", this.touchSwipeBind); + window.addEventListener("touchend", this.touchSwipeBind); +} +function _removeWindowListeners2() { + window.removeEventListener("mousemove", this.showControlsBind); + window.removeEventListener("mousedown", this.mouseDownBind); + window.removeEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.removeEventListener("keydown", this.resetMouseScrollStateBind); + window.removeEventListener("contextmenu", this.contextMenuBind); + window.removeEventListener("touchstart", this.touchSwipeBind); + window.removeEventListener("touchmove", this.touchSwipeBind); + window.removeEventListener("touchend", this.touchSwipeBind); + delete this.showControlsBind; + delete this.mouseDownBind; + delete this.mouseWheelBind; + delete this.resetMouseScrollStateBind; + delete this.contextMenuBind; + delete this.touchSwipeBind; +} +function _fullscreenChange2() { + if (document.fullscreenElement) { + _classPrivateMethodGet(this, _enter, _enter2).call(this); + } else { + _classPrivateMethodGet(this, _exit, _exit2).call(this); + } +} +function _addFullscreenChangeListeners2() { + this.fullscreenChangeBind = _classPrivateMethodGet(this, _fullscreenChange, _fullscreenChange2).bind(this); + window.addEventListener("fullscreenchange", this.fullscreenChangeBind); +} +function _removeFullscreenChangeListeners2() { + window.removeEventListener("fullscreenchange", this.fullscreenChangeBind); + delete this.fullscreenChangeBind; +} + +/***/ }), +/* 23 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFRenderingQueue = void 0; +var _pdfjsLib = __webpack_require__(5); +var _ui_utils = __webpack_require__(1); +const CLEANUP_TIMEOUT = 30000; +class PDFRenderingQueue { + constructor() { + this.pdfViewer = null; + this.pdfThumbnailViewer = null; + this.onIdle = null; + this.highestPriorityPage = null; + this.idleTimeout = null; + this.printing = false; + this.isThumbnailViewEnabled = false; + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + hasViewer() { + return !!this.pdfViewer; + } + renderHighestPriority(currentlyVisiblePages) { + var _this$pdfThumbnailVie; + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + if (this.isThumbnailViewEnabled && (_this$pdfThumbnailVie = this.pdfThumbnailViewer) !== null && _this$pdfThumbnailVie !== void 0 && _this$pdfThumbnailVie.forceRendering()) { + return; + } + if (this.printing) { + return; + } + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } + getHighestPriority(visible, views, scrolledDown) { + let preRenderExtra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + const visibleViews = visible.views, + numVisible = visibleViews.length; + if (numVisible === 0) { + return null; + } + for (let i = 0; i < numVisible; i++) { + const view = visibleViews[i].view; + if (!this.isViewFinished(view)) { + return view; + } + } + const firstId = visible.first.id, + lastId = visible.last.id; + if (lastId - firstId + 1 > numVisible) { + const visibleIds = visible.ids; + for (let i = 1, ii = lastId - firstId; i < ii; i++) { + const holeId = scrolledDown ? firstId + i : lastId - i; + if (visibleIds.has(holeId)) { + continue; + } + const holeView = views[holeId - 1]; + if (!this.isViewFinished(holeView)) { + return holeView; + } + } + } + let preRenderIndex = scrolledDown ? lastId : firstId - 2; + let preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + if (preRenderExtra) { + preRenderIndex += scrolledDown ? 1 : -1; + preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + } + return null; + } + isViewFinished(view) { + return view.renderingState === _ui_utils.RenderingStates.FINISHED; + } + renderView(view) { + switch (view.renderingState) { + case _ui_utils.RenderingStates.FINISHED: + return false; + case _ui_utils.RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + case _ui_utils.RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + case _ui_utils.RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw().finally(() => { + this.renderHighestPriority(); + }).catch(reason => { + if (reason instanceof _pdfjsLib.RenderingCancelledException) { + return; + } + console.error(`renderView: "${reason}"`); + }); + break; + } + return true; + } +} +exports.PDFRenderingQueue = PDFRenderingQueue; + +/***/ }), +/* 24 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFScriptingManager = void 0; +var _ui_utils = __webpack_require__(1); +var _pdfjsLib = __webpack_require__(5); +class PDFScriptingManager { + constructor(_ref) { + let { + eventBus, + sandboxBundleSrc = null, + scriptingFactory = null, + docPropertiesLookup = null + } = _ref; + this._pdfDocument = null; + this._pdfViewer = null; + this._closeCapability = null; + this._destroyCapability = null; + this._scripting = null; + this._mouseState = Object.create(null); + this._ready = false; + this._eventBus = eventBus; + this._sandboxBundleSrc = sandboxBundleSrc; + this._scriptingFactory = scriptingFactory; + this._docPropertiesLookup = docPropertiesLookup; + } + setViewer(pdfViewer) { + this._pdfViewer = pdfViewer; + } + async setDocument(pdfDocument) { + var _this$_scripting3; + if (this._pdfDocument) { + await this._destroyScripting(); + } + this._pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); + if (!objects && !docActions) { + await this._destroyScripting(); + return; + } + if (pdfDocument !== this._pdfDocument) { + return; + } + try { + this._scripting = this._createScripting(); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error === null || error === void 0 ? void 0 : error.message}".`); + await this._destroyScripting(); + return; + } + this._internalEvents.set("updatefromsandbox", event => { + if ((event === null || event === void 0 ? void 0 : event.source) !== window) { + return; + } + this._updateFromSandbox(event.detail); + }); + this._internalEvents.set("dispatcheventinsandbox", event => { + var _this$_scripting; + (_this$_scripting = this._scripting) === null || _this$_scripting === void 0 ? void 0 : _this$_scripting.dispatchEventInSandbox(event.detail); + }); + this._internalEvents.set("pagechanging", _ref2 => { + let { + pageNumber, + previous + } = _ref2; + if (pageNumber === previous) { + return; + } + this._dispatchPageClose(previous); + this._dispatchPageOpen(pageNumber); + }); + this._internalEvents.set("pagerendered", _ref3 => { + let { + pageNumber + } = _ref3; + if (!this._pageOpenPending.has(pageNumber)) { + return; + } + if (pageNumber !== this._pdfViewer.currentPageNumber) { + return; + } + this._dispatchPageOpen(pageNumber); + }); + this._internalEvents.set("pagesdestroy", async event => { + var _this$_scripting2, _this$_closeCapabilit; + await this._dispatchPageClose(this._pdfViewer.currentPageNumber); + await ((_this$_scripting2 = this._scripting) === null || _this$_scripting2 === void 0 ? void 0 : _this$_scripting2.dispatchEventInSandbox({ + id: "doc", + name: "WillClose" + })); + (_this$_closeCapabilit = this._closeCapability) === null || _this$_closeCapabilit === void 0 ? void 0 : _this$_closeCapabilit.resolve(); + }); + this._domEvents.set("mousedown", event => { + this._mouseState.isDown = true; + }); + this._domEvents.set("mouseup", event => { + this._mouseState.isDown = false; + }); + for (const [name, listener] of this._internalEvents) { + this._eventBus._on(name, listener); + } + for (const [name, listener] of this._domEvents) { + window.addEventListener(name, listener, true); + } + try { + const docProperties = await this._getDocProperties(); + if (pdfDocument !== this._pdfDocument) { + return; + } + await this._scripting.createSandbox({ + objects, + calculationOrder, + appInfo: { + platform: navigator.platform, + language: navigator.language + }, + docInfo: { + ...docProperties, + actions: docActions + } + }); + this._eventBus.dispatch("sandboxcreated", { + source: this + }); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error === null || error === void 0 ? void 0 : error.message}".`); + await this._destroyScripting(); + return; + } + await ((_this$_scripting3 = this._scripting) === null || _this$_scripting3 === void 0 ? void 0 : _this$_scripting3.dispatchEventInSandbox({ + id: "doc", + name: "Open" + })); + await this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true); + Promise.resolve().then(() => { + if (pdfDocument === this._pdfDocument) { + this._ready = true; + } + }); + } + async dispatchWillSave(detail) { + var _this$_scripting4; + return (_this$_scripting4 = this._scripting) === null || _this$_scripting4 === void 0 ? void 0 : _this$_scripting4.dispatchEventInSandbox({ + id: "doc", + name: "WillSave" + }); + } + async dispatchDidSave(detail) { + var _this$_scripting5; + return (_this$_scripting5 = this._scripting) === null || _this$_scripting5 === void 0 ? void 0 : _this$_scripting5.dispatchEventInSandbox({ + id: "doc", + name: "DidSave" + }); + } + async dispatchWillPrint(detail) { + var _this$_scripting6; + return (_this$_scripting6 = this._scripting) === null || _this$_scripting6 === void 0 ? void 0 : _this$_scripting6.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } + async dispatchDidPrint(detail) { + var _this$_scripting7; + return (_this$_scripting7 = this._scripting) === null || _this$_scripting7 === void 0 ? void 0 : _this$_scripting7.dispatchEventInSandbox({ + id: "doc", + name: "DidPrint" + }); + } + get mouseState() { + return this._mouseState; + } + get destroyPromise() { + var _this$_destroyCapabil; + return ((_this$_destroyCapabil = this._destroyCapability) === null || _this$_destroyCapabil === void 0 ? void 0 : _this$_destroyCapabil.promise) || null; + } + get ready() { + return this._ready; + } + get _internalEvents() { + return (0, _pdfjsLib.shadow)(this, "_internalEvents", new Map()); + } + get _domEvents() { + return (0, _pdfjsLib.shadow)(this, "_domEvents", new Map()); + } + get _pageOpenPending() { + return (0, _pdfjsLib.shadow)(this, "_pageOpenPending", new Set()); + } + get _visitedPages() { + return (0, _pdfjsLib.shadow)(this, "_visitedPages", new Map()); + } + async _updateFromSandbox(detail) { + const isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode; + const { + id, + siblings, + command, + value + } = detail; + if (!id) { + switch (command) { + case "clear": + console.clear(); + break; + case "error": + console.error(value); + break; + case "layout": + if (isInPresentationMode) { + return; + } + const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value); + this._pdfViewer.spreadMode = modes.spreadMode; + break; + case "page-num": + this._pdfViewer.currentPageNumber = value + 1; + break; + case "print": + await this._pdfViewer.pagesPromise; + this._eventBus.dispatch("print", { + source: this + }); + break; + case "println": + console.log(value); + break; + case "zoom": + if (isInPresentationMode) { + return; + } + this._pdfViewer.currentScaleValue = value; + break; + case "SaveAs": + this._eventBus.dispatch("download", { + source: this + }); + break; + case "FirstPage": + this._pdfViewer.currentPageNumber = 1; + break; + case "LastPage": + this._pdfViewer.currentPageNumber = this._pdfViewer.pagesCount; + break; + case "NextPage": + this._pdfViewer.nextPage(); + break; + case "PrevPage": + this._pdfViewer.previousPage(); + break; + case "ZoomViewIn": + if (isInPresentationMode) { + return; + } + this._pdfViewer.increaseScale(); + break; + case "ZoomViewOut": + if (isInPresentationMode) { + return; + } + this._pdfViewer.decreaseScale(); + break; + } + return; + } + if (isInPresentationMode) { + if (detail.focus) { + return; + } + } + delete detail.id; + delete detail.siblings; + const ids = siblings ? [id, ...siblings] : [id]; + for (const elementId of ids) { + const element = document.querySelector(`[data-element-id="${elementId}"]`); + if (element) { + element.dispatchEvent(new CustomEvent("updatefromsandbox", { + detail + })); + } else { + var _this$_pdfDocument; + (_this$_pdfDocument = this._pdfDocument) === null || _this$_pdfDocument === void 0 ? void 0 : _this$_pdfDocument.annotationStorage.setValue(elementId, detail); + } + } + } + async _dispatchPageOpen(pageNumber) { + let initialize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + if (initialize) { + this._closeCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + if (!this._closeCapability) { + return; + } + const pageView = this._pdfViewer.getPageView(pageNumber - 1); + if ((pageView === null || pageView === void 0 ? void 0 : pageView.renderingState) !== _ui_utils.RenderingStates.FINISHED) { + this._pageOpenPending.add(pageNumber); + return; + } + this._pageOpenPending.delete(pageNumber); + const actionsPromise = (async () => { + var _pageView$pdfPage, _this$_scripting8; + const actions = await (!visitedPages.has(pageNumber) ? (_pageView$pdfPage = pageView.pdfPage) === null || _pageView$pdfPage === void 0 ? void 0 : _pageView$pdfPage.getJSActions() : null); + if (pdfDocument !== this._pdfDocument) { + return; + } + await ((_this$_scripting8 = this._scripting) === null || _this$_scripting8 === void 0 ? void 0 : _this$_scripting8.dispatchEventInSandbox({ + id: "page", + name: "PageOpen", + pageNumber, + actions + })); + })(); + visitedPages.set(pageNumber, actionsPromise); + } + async _dispatchPageClose(pageNumber) { + var _this$_scripting9; + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + if (!this._closeCapability) { + return; + } + if (this._pageOpenPending.has(pageNumber)) { + return; + } + const actionsPromise = visitedPages.get(pageNumber); + if (!actionsPromise) { + return; + } + visitedPages.set(pageNumber, null); + await actionsPromise; + if (pdfDocument !== this._pdfDocument) { + return; + } + await ((_this$_scripting9 = this._scripting) === null || _this$_scripting9 === void 0 ? void 0 : _this$_scripting9.dispatchEventInSandbox({ + id: "page", + name: "PageClose", + pageNumber + })); + } + async _getDocProperties() { + if (this._docPropertiesLookup) { + return this._docPropertiesLookup(this._pdfDocument); + } + throw new Error("_getDocProperties: Unable to lookup properties."); + } + _createScripting() { + this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)(); + if (this._scripting) { + throw new Error("_createScripting: Scripting already exists."); + } + if (this._scriptingFactory) { + return this._scriptingFactory.createScripting({ + sandboxBundleSrc: this._sandboxBundleSrc + }); + } + throw new Error("_createScripting: Cannot create scripting."); + } + async _destroyScripting() { + var _this$_destroyCapabil3; + if (!this._scripting) { + var _this$_destroyCapabil2; + this._pdfDocument = null; + (_this$_destroyCapabil2 = this._destroyCapability) === null || _this$_destroyCapabil2 === void 0 ? void 0 : _this$_destroyCapabil2.resolve(); + return; + } + if (this._closeCapability) { + await Promise.race([this._closeCapability.promise, new Promise(resolve => { + setTimeout(resolve, 1000); + })]).catch(reason => {}); + this._closeCapability = null; + } + this._pdfDocument = null; + try { + await this._scripting.destroySandbox(); + } catch (ex) {} + for (const [name, listener] of this._internalEvents) { + this._eventBus._off(name, listener); + } + this._internalEvents.clear(); + for (const [name, listener] of this._domEvents) { + window.removeEventListener(name, listener, true); + } + this._domEvents.clear(); + this._pageOpenPending.clear(); + this._visitedPages.clear(); + this._scripting = null; + delete this._mouseState.isDown; + this._ready = false; + (_this$_destroyCapabil3 = this._destroyCapability) === null || _this$_destroyCapabil3 === void 0 ? void 0 : _this$_destroyCapabil3.resolve(); + } +} +exports.PDFScriptingManager = PDFScriptingManager; + +/***/ }), +/* 25 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFSidebar = void 0; +var _ui_utils = __webpack_require__(1); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; +var _dispatchEvent = /*#__PURE__*/new WeakSet(); +var _forceRendering = /*#__PURE__*/new WeakSet(); +var _updateThumbnailViewer = /*#__PURE__*/new WeakSet(); +var _showUINotification = /*#__PURE__*/new WeakSet(); +var _hideUINotification = /*#__PURE__*/new WeakSet(); +var _addEventListeners = /*#__PURE__*/new WeakSet(); +class PDFSidebar { + constructor(_ref) { + let { + elements, + pdfViewer: _pdfViewer, + pdfThumbnailViewer: _pdfThumbnailViewer, + eventBus, + l10n + } = _ref; + _classPrivateMethodInitSpec(this, _addEventListeners); + _classPrivateMethodInitSpec(this, _hideUINotification); + _classPrivateMethodInitSpec(this, _showUINotification); + _classPrivateMethodInitSpec(this, _updateThumbnailViewer); + _classPrivateMethodInitSpec(this, _forceRendering); + _classPrivateMethodInitSpec(this, _dispatchEvent); + this.isOpen = false; + this.active = _ui_utils.SidebarView.THUMBS; + this.isInitialViewSet = false; + this.isInitialEventDispatched = false; + this.onToggled = null; + this.pdfViewer = _pdfViewer; + this.pdfThumbnailViewer = _pdfThumbnailViewer; + this.outerContainer = elements.outerContainer; + this.sidebarContainer = elements.sidebarContainer; + this.toggleButton = elements.toggleButton; + this.thumbnailButton = elements.thumbnailButton; + this.outlineButton = elements.outlineButton; + this.attachmentsButton = elements.attachmentsButton; + this.layersButton = elements.layersButton; + this.thumbnailView = elements.thumbnailView; + this.outlineView = elements.outlineView; + this.attachmentsView = elements.attachmentsView; + this.layersView = elements.layersView; + this._outlineOptionsContainer = elements.outlineOptionsContainer; + this._currentOutlineItemButton = elements.currentOutlineItemButton; + this.eventBus = eventBus; + this.l10n = l10n; + _classPrivateMethodGet(this, _addEventListeners, _addEventListeners2).call(this); + } + reset() { + this.isInitialViewSet = false; + this.isInitialEventDispatched = false; + _classPrivateMethodGet(this, _hideUINotification, _hideUINotification2).call(this, true); + this.switchView(_ui_utils.SidebarView.THUMBS); + this.outlineButton.disabled = false; + this.attachmentsButton.disabled = false; + this.layersButton.disabled = false; + this._currentOutlineItemButton.disabled = true; + } + get visibleView() { + return this.isOpen ? this.active : _ui_utils.SidebarView.NONE; + } + setInitialView() { + let view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ui_utils.SidebarView.NONE; + if (this.isInitialViewSet) { + return; + } + this.isInitialViewSet = true; + if (view === _ui_utils.SidebarView.NONE || view === _ui_utils.SidebarView.UNKNOWN) { + _classPrivateMethodGet(this, _dispatchEvent, _dispatchEvent2).call(this); + return; + } + this.switchView(view, true); + if (!this.isInitialEventDispatched) { + _classPrivateMethodGet(this, _dispatchEvent, _dispatchEvent2).call(this); + } + } + switchView(view) { + let forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + const isViewChanged = view !== this.active; + let shouldForceRendering = false; + switch (view) { + case _ui_utils.SidebarView.NONE: + if (this.isOpen) { + this.close(); + } + return; + case _ui_utils.SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + shouldForceRendering = true; + } + break; + case _ui_utils.SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return; + } + break; + case _ui_utils.SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return; + } + break; + case _ui_utils.SidebarView.LAYERS: + if (this.layersButton.disabled) { + return; + } + break; + default: + console.error(`PDFSidebar.switchView: "${view}" is not a valid view.`); + return; + } + this.active = view; + const isThumbs = view === _ui_utils.SidebarView.THUMBS, + isOutline = view === _ui_utils.SidebarView.OUTLINE, + isAttachments = view === _ui_utils.SidebarView.ATTACHMENTS, + isLayers = view === _ui_utils.SidebarView.LAYERS; + this.thumbnailButton.classList.toggle("toggled", isThumbs); + this.outlineButton.classList.toggle("toggled", isOutline); + this.attachmentsButton.classList.toggle("toggled", isAttachments); + this.layersButton.classList.toggle("toggled", isLayers); + this.thumbnailButton.setAttribute("aria-checked", isThumbs); + this.outlineButton.setAttribute("aria-checked", isOutline); + this.attachmentsButton.setAttribute("aria-checked", isAttachments); + this.layersButton.setAttribute("aria-checked", isLayers); + this.thumbnailView.classList.toggle("hidden", !isThumbs); + this.outlineView.classList.toggle("hidden", !isOutline); + this.attachmentsView.classList.toggle("hidden", !isAttachments); + this.layersView.classList.toggle("hidden", !isLayers); + this._outlineOptionsContainer.classList.toggle("hidden", !isOutline); + if (forceOpen && !this.isOpen) { + this.open(); + return; + } + if (shouldForceRendering) { + _classPrivateMethodGet(this, _updateThumbnailViewer, _updateThumbnailViewer2).call(this); + _classPrivateMethodGet(this, _forceRendering, _forceRendering2).call(this); + } + if (isViewChanged) { + _classPrivateMethodGet(this, _dispatchEvent, _dispatchEvent2).call(this); + } + } + open() { + if (this.isOpen) { + return; + } + this.isOpen = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); + if (this.active === _ui_utils.SidebarView.THUMBS) { + _classPrivateMethodGet(this, _updateThumbnailViewer, _updateThumbnailViewer2).call(this); + } + _classPrivateMethodGet(this, _forceRendering, _forceRendering2).call(this); + _classPrivateMethodGet(this, _dispatchEvent, _dispatchEvent2).call(this); + _classPrivateMethodGet(this, _hideUINotification, _hideUINotification2).call(this); + } + close() { + if (!this.isOpen) { + return; + } + this.isOpen = false; + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + this.outerContainer.classList.add("sidebarMoving"); + this.outerContainer.classList.remove("sidebarOpen"); + _classPrivateMethodGet(this, _forceRendering, _forceRendering2).call(this); + _classPrivateMethodGet(this, _dispatchEvent, _dispatchEvent2).call(this); + } + toggle() { + if (this.isOpen) { + this.close(); + } else { + this.open(); + } + } +} +exports.PDFSidebar = PDFSidebar; +function _dispatchEvent2() { + if (this.isInitialViewSet && !this.isInitialEventDispatched) { + this.isInitialEventDispatched = true; + } + this.eventBus.dispatch("sidebarviewchanged", { + source: this, + view: this.visibleView + }); +} +function _forceRendering2() { + if (this.onToggled) { + this.onToggled(); + } else { + this.pdfViewer.forceRendering(); + this.pdfThumbnailViewer.forceRendering(); + } +} +function _updateThumbnailViewer2() { + const { + pdfViewer, + pdfThumbnailViewer + } = this; + const pagesCount = pdfViewer.pagesCount; + for (let pageIndex = 0; pageIndex < pagesCount; pageIndex++) { + const pageView = pdfViewer.getPageView(pageIndex); + if ((pageView === null || pageView === void 0 ? void 0 : pageView.renderingState) === _ui_utils.RenderingStates.FINISHED) { + const thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + } + pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); +} +function _showUINotification2() { + this.toggleButton.setAttribute("data-l10n-id", "toggle_sidebar_notification2"); + this.l10n.translate(this.toggleButton); + if (!this.isOpen) { + this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); + } +} +function _hideUINotification2() { + let reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.isOpen || reset) { + this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); + } + if (reset) { + this.toggleButton.setAttribute("data-l10n-id", "toggle_sidebar"); + this.l10n.translate(this.toggleButton); + } +} +function _addEventListeners2() { + this.sidebarContainer.addEventListener("transitionend", evt => { + if (evt.target === this.sidebarContainer) { + this.outerContainer.classList.remove("sidebarMoving"); + } + }); + this.toggleButton.addEventListener("click", () => { + this.toggle(); + }); + this.thumbnailButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.THUMBS); + }); + this.outlineButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.OUTLINE); + }); + this.outlineButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("toggleoutlinetree", { + source: this + }); + }); + this.attachmentsButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.ATTACHMENTS); + }); + this.layersButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.LAYERS); + }); + this.layersButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("resetlayers", { + source: this + }); + }); + this._currentOutlineItemButton.addEventListener("click", () => { + this.eventBus.dispatch("currentoutlineitem", { + source: this + }); + }); + const onTreeLoaded = (count, button, view) => { + button.disabled = !count; + if (count) { + _classPrivateMethodGet(this, _showUINotification, _showUINotification2).call(this); + } else if (this.active === view) { + this.switchView(_ui_utils.SidebarView.THUMBS); + } + }; + this.eventBus._on("outlineloaded", evt => { + onTreeLoaded(evt.outlineCount, this.outlineButton, _ui_utils.SidebarView.OUTLINE); + evt.currentOutlineItemPromise.then(enabled => { + if (!this.isInitialViewSet) { + return; + } + this._currentOutlineItemButton.disabled = !enabled; + }); + }); + this.eventBus._on("attachmentsloaded", evt => { + onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, _ui_utils.SidebarView.ATTACHMENTS); + }); + this.eventBus._on("layersloaded", evt => { + onTreeLoaded(evt.layersCount, this.layersButton, _ui_utils.SidebarView.LAYERS); + }); + this.eventBus._on("presentationmodechanged", evt => { + if (evt.state === _ui_utils.PresentationModeState.NORMAL && this.visibleView === _ui_utils.SidebarView.THUMBS) { + _classPrivateMethodGet(this, _updateThumbnailViewer, _updateThumbnailViewer2).call(this); + } + }); +} + +/***/ }), +/* 26 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFSidebarResizer = void 0; +var _ui_utils = __webpack_require__(1); +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; +class PDFSidebarResizer { + constructor(options, eventBus, l10n) { + this.isRTL = false; + this.sidebarOpen = false; + this._width = null; + this._outerContainerWidth = null; + this._boundEvents = Object.create(null); + this.outerContainer = options.outerContainer; + this.resizer = options.resizer; + this.eventBus = eventBus; + l10n.getDirection().then(dir => { + this.isRTL = dir === "rtl"; + }); + this._addEventListeners(); + } + get outerContainerWidth() { + return this._outerContainerWidth || (this._outerContainerWidth = this.outerContainer.clientWidth); + } + _updateWidth() { + let width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + const maxWidth = Math.floor(this.outerContainerWidth / 2); + if (width > maxWidth) { + width = maxWidth; + } + if (width < SIDEBAR_MIN_WIDTH) { + width = SIDEBAR_MIN_WIDTH; + } + if (width === this._width) { + return false; + } + this._width = width; + _ui_utils.docStyle.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); + return true; + } + _mouseMove(evt) { + let width = evt.clientX; + if (this.isRTL) { + width = this.outerContainerWidth - width; + } + this._updateWidth(width); + } + _mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch("resize", { + source: this + }); + const _boundEvents = this._boundEvents; + window.removeEventListener("mousemove", _boundEvents.mouseMove); + window.removeEventListener("mouseup", _boundEvents.mouseUp); + } + _addEventListeners() { + const _boundEvents = this._boundEvents; + _boundEvents.mouseMove = this._mouseMove.bind(this); + _boundEvents.mouseUp = this._mouseUp.bind(this); + this.resizer.addEventListener("mousedown", evt => { + if (evt.button !== 0) { + return; + } + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + window.addEventListener("mousemove", _boundEvents.mouseMove); + window.addEventListener("mouseup", _boundEvents.mouseUp); + }); + this.eventBus._on("sidebarviewchanged", evt => { + this.sidebarOpen = !!(evt !== null && evt !== void 0 && evt.view); + }); + this.eventBus._on("resize", evt => { + if ((evt === null || evt === void 0 ? void 0 : evt.source) !== window) { + return; + } + this._outerContainerWidth = null; + if (!this._width) { + return; + } + if (!this.sidebarOpen) { + this._updateWidth(this._width); + return; + } + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + const updated = this._updateWidth(this._width); + Promise.resolve().then(() => { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + if (updated) { + this.eventBus.dispatch("resize", { + source: this + }); + } + }); + }); + } +} +exports.PDFSidebarResizer = PDFSidebarResizer; + +/***/ }), +/* 27 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFThumbnailViewer = void 0; +var _ui_utils = __webpack_require__(1); +var _pdf_thumbnail_view = __webpack_require__(28); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; +var _ensurePdfPageLoaded = /*#__PURE__*/new WeakSet(); +var _getScrollAhead = /*#__PURE__*/new WeakSet(); +class PDFThumbnailViewer { + constructor(_ref) { + let { + container, + eventBus, + linkService, + renderingQueue, + l10n, + pageColors + } = _ref; + _classPrivateMethodInitSpec(this, _getScrollAhead); + _classPrivateMethodInitSpec(this, _ensurePdfPageLoaded); + this.container = container; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.l10n = l10n; + this.pageColors = pageColors || null; + if (this.pageColors && !(CSS.supports("color", this.pageColors.background) && CSS.supports("color", this.pageColors.foreground))) { + if (this.pageColors.background || this.pageColors.foreground) { + console.warn("PDFThumbnailViewer: Ignoring `pageColors`-option, since the browser doesn't support the values used."); + } + this.pageColors = null; + } + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); + this._resetView(); + } + _scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + getThumbnail(index) { + return this._thumbnails[index]; + } + _getVisibleThumbs() { + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views: this._thumbnails + }); + } + scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; + } + const thumbnailView = this._thumbnails[pageNumber - 1]; + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; + } + if (pageNumber !== this._currentPageNumber) { + const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + } + const { + first, + last, + views + } = this._getVisibleThumbs(); + if (views.length > 0) { + let shouldScroll = false; + if (pageNumber <= first.id || pageNumber >= last.id) { + shouldScroll = true; + } else { + for (const { + id, + percent + } of views) { + if (id !== pageNumber) { + continue; + } + shouldScroll = percent < 100; + break; + } + } + if (shouldScroll) { + (0, _ui_utils.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); + } + } + this._currentPageNumber = pageNumber; + } + get pagesRotation() { + return this._pagesRotation; + } + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid thumbnails rotation angle."); + } + if (!this.pdfDocument) { + return; + } + if (this._pagesRotation === rotation) { + return; + } + this._pagesRotation = rotation; + const updateArgs = { + rotation + }; + for (const thumbnail of this._thumbnails) { + thumbnail.update(updateArgs); + } + } + cleanup() { + for (const thumbnail of this._thumbnails) { + if (thumbnail.renderingState !== _ui_utils.RenderingStates.FINISHED) { + thumbnail.reset(); + } + } + _pdf_thumbnail_view.TempImageFactory.destroyCanvas(); + } + _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this.container.textContent = ""; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this._cancelRendering(); + this._resetView(); + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + firstPagePromise.then(firstPdfPage => { + var _this$_thumbnails$; + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 + }); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ + container: this.container, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + l10n: this.l10n, + pageColors: this.pageColors + }); + this._thumbnails.push(thumbnail); + } + (_this$_thumbnails$ = this._thumbnails[0]) === null || _this$_thumbnails$ === void 0 ? void 0 : _this$_thumbnails$.setPdfPage(firstPdfPage); + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); + }); + } + _cancelRendering() { + for (const thumbnail of this._thumbnails) { + thumbnail.cancelRendering(); + } + } + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + } else { + this._pageLabels = labels; + } + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + var _this$_pageLabels; + this._thumbnails[i].setPageLabel(((_this$_pageLabels = this._pageLabels) === null || _this$_pageLabels === void 0 ? void 0 : _this$_pageLabels[i]) ?? null); + } + } + forceRendering() { + const visibleThumbs = this._getVisibleThumbs(); + const scrollAhead = _classPrivateMethodGet(this, _getScrollAhead, _getScrollAhead2).call(this, visibleThumbs); + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead); + if (thumbView) { + _classPrivateMethodGet(this, _ensurePdfPageLoaded, _ensurePdfPageLoaded2).call(this, thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + return true; + } + return false; + } +} +exports.PDFThumbnailViewer = PDFThumbnailViewer; +async function _ensurePdfPageLoaded2(thumbView) { + if (thumbView.pdfPage) { + return thumbView.pdfPage; + } + try { + const pdfPage = await this.pdfDocument.getPage(thumbView.id); + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for thumb view", reason); + return null; + } +} +function _getScrollAhead2(visible) { + var _visible$first, _visible$last; + if (((_visible$first = visible.first) === null || _visible$first === void 0 ? void 0 : _visible$first.id) === 1) { + return true; + } else if (((_visible$last = visible.last) === null || _visible$last === void 0 ? void 0 : _visible$last.id) === this._thumbnails.length) { + return false; + } + return this.scroll.down; +} + +/***/ }), +/* 28 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TempImageFactory = exports.PDFThumbnailView = void 0; +var _ui_utils = __webpack_require__(1); +var _pdfjsLib = __webpack_require__(5); +function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError("attempted to " + action + " private static field before its declaration"); } } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +const DRAW_UPSCALE_FACTOR = 2; +const MAX_NUM_SCALING_STEPS = 3; +const THUMBNAIL_CANVAS_BORDER_WIDTH = 1; +const THUMBNAIL_WIDTH = 98; +class TempImageFactory { + static getCanvas(width, height) { + const tempCanvas = _classStaticPrivateFieldSpecGet(this, TempImageFactory, _tempCanvas) || _classStaticPrivateFieldSpecSet(this, TempImageFactory, _tempCanvas, document.createElement("canvas")); + tempCanvas.width = width; + tempCanvas.height = height; + const ctx = tempCanvas.getContext("2d", { + alpha: false + }); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, width, height); + ctx.restore(); + return [tempCanvas, tempCanvas.getContext("2d")]; + } + static destroyCanvas() { + const tempCanvas = _classStaticPrivateFieldSpecGet(this, TempImageFactory, _tempCanvas); + if (tempCanvas) { + tempCanvas.width = 0; + tempCanvas.height = 0; + } + _classStaticPrivateFieldSpecSet(this, TempImageFactory, _tempCanvas, null); + } +} +exports.TempImageFactory = TempImageFactory; +var _tempCanvas = { + writable: true, + value: null +}; +class PDFThumbnailView { + constructor(_ref) { + let { + container, + id, + defaultViewport, + optionalContentConfigPromise, + linkService, + renderingQueue, + l10n, + pageColors + } = _ref; + this.id = id; + this.renderingId = "thumbnail" + id; + this.pageLabel = null; + this.pdfPage = null; + this.rotation = 0; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = optionalContentConfigPromise || null; + this.pageColors = pageColors || null; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.renderTask = null; + this.renderingState = _ui_utils.RenderingStates.INITIAL; + this.resume = null; + const pageWidth = this.viewport.width, + pageHeight = this.viewport.height, + pageRatio = pageWidth / pageHeight; + this.canvasWidth = THUMBNAIL_WIDTH; + this.canvasHeight = this.canvasWidth / pageRatio | 0; + this.scale = this.canvasWidth / pageWidth; + this.l10n = l10n; + const anchor = document.createElement("a"); + anchor.href = linkService.getAnchorUrl("#page=" + id); + this._thumbPageTitle.then(msg => { + anchor.title = msg; + }); + anchor.onclick = function () { + linkService.goToPage(id); + return false; + }; + this.anchor = anchor; + const div = document.createElement("div"); + div.className = "thumbnail"; + div.setAttribute("data-page-number", this.id); + this.div = div; + const ring = document.createElement("div"); + ring.className = "thumbnailSelectionRing"; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; + this.ring = ring; + div.append(ring); + anchor.append(div); + container.append(anchor); + } + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + reset() { + this.cancelRendering(); + this.renderingState = _ui_utils.RenderingStates.INITIAL; + const pageWidth = this.viewport.width, + pageHeight = this.viewport.height, + pageRatio = pageWidth / pageHeight; + this.canvasHeight = this.canvasWidth / pageRatio | 0; + this.scale = this.canvasWidth / pageWidth; + this.div.removeAttribute("data-loaded"); + const ring = this.ring; + ring.textContent = ""; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; + if (this.canvas) { + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + if (this.image) { + this.image.removeAttribute("src"); + delete this.image; + } + } + update(_ref2) { + let { + rotation = null + } = _ref2; + if (typeof rotation === "number") { + this.rotation = rotation; + } + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + cancelRendering() { + if (this.renderTask) { + this.renderTask.cancel(); + this.renderTask = null; + } + this.resume = null; + } + _getPageDrawContext() { + let upscaleFactor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = new _ui_utils.OutputScale(); + canvas.width = upscaleFactor * this.canvasWidth * outputScale.sx | 0; + canvas.height = upscaleFactor * this.canvasHeight * outputScale.sy | 0; + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + return { + ctx, + canvas, + transform + }; + } + _convertCanvasToImage(canvas) { + if (this.renderingState !== _ui_utils.RenderingStates.FINISHED) { + throw new Error("_convertCanvasToImage: Rendering has not finished."); + } + const reducedCanvas = this._reduceImage(canvas); + const image = document.createElement("img"); + image.className = "thumbnailImage"; + this._thumbPageCanvas.then(msg => { + image.setAttribute("aria-label", msg); + }); + image.style.width = this.canvasWidth + "px"; + image.style.height = this.canvasHeight + "px"; + image.src = reducedCanvas.toDataURL(); + this.image = image; + this.div.setAttribute("data-loaded", true); + this.ring.append(image); + reducedCanvas.width = 0; + reducedCanvas.height = 0; + } + draw() { + var _this = this; + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + return Promise.resolve(); + } + const { + pdfPage + } = this; + if (!pdfPage) { + this.renderingState = _ui_utils.RenderingStates.FINISHED; + return Promise.reject(new Error("pdfPage is not loaded")); + } + this.renderingState = _ui_utils.RenderingStates.RUNNING; + const finishRenderTask = async function () { + let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (renderTask === _this.renderTask) { + _this.renderTask = null; + } + if (error instanceof _pdfjsLib.RenderingCancelledException) { + return; + } + _this.renderingState = _ui_utils.RenderingStates.FINISHED; + _this._convertCanvasToImage(canvas); + if (error) { + throw error; + } + }; + const { + ctx, + canvas, + transform + } = this._getPageDrawContext(DRAW_UPSCALE_FACTOR); + const drawViewport = this.viewport.clone({ + scale: DRAW_UPSCALE_FACTOR * this.scale + }); + const renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _ui_utils.RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = _ui_utils.RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + const renderContext = { + canvasContext: ctx, + transform, + viewport: drawViewport, + optionalContentConfigPromise: this._optionalContentConfigPromise, + pageColors: this.pageColors + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(function () { + return finishRenderTask(null); + }, function (error) { + return finishRenderTask(error); + }); + resultPromise.finally(() => { + canvas.width = 0; + canvas.height = 0; + const pageCached = this.linkService.isPageCached(this.id); + if (!pageCached) { + var _this$pdfPage; + (_this$pdfPage = this.pdfPage) === null || _this$pdfPage === void 0 ? void 0 : _this$pdfPage.cleanup(); + } + }); + return resultPromise; + } + setImage(pageView) { + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + return; + } + const { + thumbnailCanvas: canvas, + pdfPage, + scale + } = pageView; + if (!canvas) { + return; + } + if (!this.pdfPage) { + this.setPdfPage(pdfPage); + } + if (scale < this.scale) { + return; + } + this.renderingState = _ui_utils.RenderingStates.FINISHED; + this._convertCanvasToImage(canvas); + } + _reduceImage(img) { + const { + ctx, + canvas + } = this._getPageDrawContext(); + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + return canvas; + } + let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + return canvas; + } + get _thumbPageTitle() { + return this.l10n.get("thumb_page_title", { + page: this.pageLabel ?? this.id + }); + } + get _thumbPageCanvas() { + return this.l10n.get("thumb_page_canvas", { + page: this.pageLabel ?? this.id + }); + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + this._thumbPageTitle.then(msg => { + this.anchor.title = msg; + }); + if (this.renderingState !== _ui_utils.RenderingStates.FINISHED) { + return; + } + this._thumbPageCanvas.then(msg => { + var _this$image; + (_this$image = this.image) === null || _this$image === void 0 ? void 0 : _this$image.setAttribute("aria-label", msg); + }); + } +} +exports.PDFThumbnailView = PDFThumbnailView; + +/***/ }), +/* 29 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PagesCountLimit = exports.PDFViewer = exports.PDFPageViewBuffer = void 0; +var _pdfjsLib = __webpack_require__(5); +var _ui_utils = __webpack_require__(1); +var _annotation_editor_layer_builder = __webpack_require__(30); +var _annotation_layer_builder = __webpack_require__(32); +var _l10n_utils = __webpack_require__(31); +var _pdf_page_view = __webpack_require__(33); +var _pdf_rendering_queue = __webpack_require__(23); +var _pdf_link_service = __webpack_require__(3); +var _struct_tree_layer_builder = __webpack_require__(35); +var _text_highlighter = __webpack_require__(36); +var _text_layer_builder = __webpack_require__(37); +var _xfa_layer_builder = __webpack_require__(38); +let _Symbol$iterator; +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +const DEFAULT_CACHE_SIZE = 10; +const ENABLE_PERMISSIONS_CLASS = "enablePermissions"; +const PagesCountLimit = { + FORCE_SCROLL_MODE_PAGE: 15000, + FORCE_LAZY_PAGE_INIT: 7500, + PAUSE_EAGER_PAGE_INIT: 250 +}; +exports.PagesCountLimit = PagesCountLimit; +function isValidAnnotationEditorMode(mode) { + return Object.values(_pdfjsLib.AnnotationEditorType).includes(mode) && mode !== _pdfjsLib.AnnotationEditorType.DISABLE; +} +var _buf = /*#__PURE__*/new WeakMap(); +var _size = /*#__PURE__*/new WeakMap(); +var _destroyFirstView = /*#__PURE__*/new WeakSet(); +_Symbol$iterator = Symbol.iterator; +class PDFPageViewBuffer { + constructor(size) { + _classPrivateMethodInitSpec(this, _destroyFirstView); + _classPrivateFieldInitSpec(this, _buf, { + writable: true, + value: new Set() + }); + _classPrivateFieldInitSpec(this, _size, { + writable: true, + value: 0 + }); + _classPrivateFieldSet(this, _size, size); + } + push(view) { + const buf = _classPrivateFieldGet(this, _buf); + if (buf.has(view)) { + buf.delete(view); + } + buf.add(view); + if (buf.size > _classPrivateFieldGet(this, _size)) { + _classPrivateMethodGet(this, _destroyFirstView, _destroyFirstView2).call(this); + } + } + resize(newSize) { + let idsToKeep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + _classPrivateFieldSet(this, _size, newSize); + const buf = _classPrivateFieldGet(this, _buf); + if (idsToKeep) { + const ii = buf.size; + let i = 1; + for (const view of buf) { + if (idsToKeep.has(view.id)) { + buf.delete(view); + buf.add(view); + } + if (++i > ii) { + break; + } + } + } + while (buf.size > _classPrivateFieldGet(this, _size)) { + _classPrivateMethodGet(this, _destroyFirstView, _destroyFirstView2).call(this); + } + } + has(view) { + return _classPrivateFieldGet(this, _buf).has(view); + } + [_Symbol$iterator]() { + return _classPrivateFieldGet(this, _buf).keys(); + } +} +exports.PDFPageViewBuffer = PDFPageViewBuffer; +function _destroyFirstView2() { + const firstView = _classPrivateFieldGet(this, _buf).keys().next().value; + firstView === null || firstView === void 0 ? void 0 : firstView.destroy(); + _classPrivateFieldGet(this, _buf).delete(firstView); +} +var _buffer = /*#__PURE__*/new WeakMap(); +var _annotationEditorMode = /*#__PURE__*/new WeakMap(); +var _annotationEditorUIManager = /*#__PURE__*/new WeakMap(); +var _annotationMode = /*#__PURE__*/new WeakMap(); +var _enablePermissions = /*#__PURE__*/new WeakMap(); +var _previousContainerHeight = /*#__PURE__*/new WeakMap(); +var _scrollModePageState = /*#__PURE__*/new WeakMap(); +var _onVisibilityChange = /*#__PURE__*/new WeakMap(); +var _initializePermissions = /*#__PURE__*/new WeakSet(); +var _onePageRenderedOrForceFetch = /*#__PURE__*/new WeakSet(); +var _ensurePageViewVisible = /*#__PURE__*/new WeakSet(); +var _scrollIntoView = /*#__PURE__*/new WeakSet(); +var _isSameScale = /*#__PURE__*/new WeakSet(); +var _resetCurrentPageView = /*#__PURE__*/new WeakSet(); +var _ensurePdfPageLoaded = /*#__PURE__*/new WeakSet(); +var _getScrollAhead = /*#__PURE__*/new WeakSet(); +var _toggleLoadingIconSpinner = /*#__PURE__*/new WeakSet(); +class PDFViewer { + constructor(options) { + var _this$container, _this$viewer; + _classPrivateMethodInitSpec(this, _toggleLoadingIconSpinner); + _classPrivateMethodInitSpec(this, _getScrollAhead); + _classPrivateMethodInitSpec(this, _ensurePdfPageLoaded); + _classPrivateMethodInitSpec(this, _resetCurrentPageView); + _classPrivateMethodInitSpec(this, _isSameScale); + _classPrivateMethodInitSpec(this, _scrollIntoView); + _classPrivateMethodInitSpec(this, _ensurePageViewVisible); + _classPrivateMethodInitSpec(this, _onePageRenderedOrForceFetch); + _classPrivateMethodInitSpec(this, _initializePermissions); + _classPrivateFieldInitSpec(this, _buffer, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _annotationEditorMode, { + writable: true, + value: _pdfjsLib.AnnotationEditorType.NONE + }); + _classPrivateFieldInitSpec(this, _annotationEditorUIManager, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _annotationMode, { + writable: true, + value: _pdfjsLib.AnnotationMode.ENABLE_FORMS + }); + _classPrivateFieldInitSpec(this, _enablePermissions, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _previousContainerHeight, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _scrollModePageState, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _onVisibilityChange, { + writable: true, + value: null + }); + const viewerVersion = '3.0.279'; + if (_pdfjsLib.version !== viewerVersion) { + throw new Error(`The API version "${_pdfjsLib.version}" does not match the Viewer version "${viewerVersion}".`); + } + this.container = options.container; + this.viewer = options.viewer || options.container.firstElementChild; + if (!(((_this$container = this.container) === null || _this$container === void 0 ? void 0 : _this$container.tagName.toUpperCase()) === "DIV" && ((_this$viewer = this.viewer) === null || _this$viewer === void 0 ? void 0 : _this$viewer.tagName.toUpperCase()) === "DIV")) { + throw new Error("Invalid `container` and/or `viewer` option."); + } + if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { + throw new Error("The `container` must be absolutely positioned."); + } + this.eventBus = options.eventBus; + this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); + this.downloadManager = options.downloadManager || null; + this.findController = options.findController || null; + this._scriptingManager = options.scriptingManager || null; + this.removePageBorders = options.removePageBorders || false; + this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; + _classPrivateFieldSet(this, _annotationMode, options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS); + _classPrivateFieldSet(this, _annotationEditorMode, options.annotationEditorMode ?? _pdfjsLib.AnnotationEditorType.NONE); + this.imageResourcesPath = options.imageResourcesPath || ""; + this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; + this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; + this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.maxCanvasPixels = options.maxCanvasPixels; + this.l10n = options.l10n || _l10n_utils.NullL10n; + _classPrivateFieldSet(this, _enablePermissions, options.enablePermissions || false); + this.pageColors = options.pageColors || null; + if (this.pageColors && !(CSS.supports("color", this.pageColors.background) && CSS.supports("color", this.pageColors.foreground))) { + if (this.pageColors.background || this.pageColors.foreground) { + console.warn("PDFViewer: Ignoring `pageColors`-option, since the browser doesn't support the values used."); + } + this.pageColors = null; + } + this.defaultRenderingQueue = !options.renderingQueue; + if (this.defaultRenderingQueue) { + this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + this.renderingQueue.setViewer(this); + } else { + this.renderingQueue = options.renderingQueue; + } + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this)); + this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN; + this._onBeforeDraw = this._onAfterDraw = null; + this._resetView(); + if (this.removePageBorders) { + this.viewer.classList.add("removePageBorders"); + } + this.updateContainerHeightCss(); + } + get pagesCount() { + return this._pages.length; + } + getPageView(index) { + return this._pages[index]; + } + get pageViewsReady() { + if (!this._pagesCapability.settled) { + return false; + } + return this._pages.every(function (pageView) { + return pageView === null || pageView === void 0 ? void 0 : pageView.pdfPage; + }); + } + get renderForms() { + return _classPrivateFieldGet(this, _annotationMode) === _pdfjsLib.AnnotationMode.ENABLE_FORMS; + } + get enableScripting() { + return !!this._scriptingManager; + } + get currentPageNumber() { + return this._currentPageNumber; + } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`currentPageNumber: "${val}" is not a valid page.`); + } + } + _setCurrentPageNumber(val) { + var _this$_pageLabels; + let resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (this._currentPageNumber === val) { + if (resetCurrentPageView) { + _classPrivateMethodGet(this, _resetCurrentPageView, _resetCurrentPageView2).call(this); + } + return true; + } + if (!(0 < val && val <= this.pagesCount)) { + return false; + } + const previous = this._currentPageNumber; + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: ((_this$_pageLabels = this._pageLabels) === null || _this$_pageLabels === void 0 ? void 0 : _this$_pageLabels[val - 1]) ?? null, + previous + }); + if (resetCurrentPageView) { + _classPrivateMethodGet(this, _resetCurrentPageView, _resetCurrentPageView2).call(this); + } + return true; + } + get currentPageLabel() { + var _this$_pageLabels2; + return ((_this$_pageLabels2 = this._pageLabels) === null || _this$_pageLabels2 === void 0 ? void 0 : _this$_pageLabels2[this._currentPageNumber - 1]) ?? null; + } + set currentPageLabel(val) { + if (!this.pdfDocument) { + return; + } + let page = val | 0; + if (this._pageLabels) { + const i = this._pageLabels.indexOf(val); + if (i >= 0) { + page = i + 1; + } + } + if (!this._setCurrentPageNumber(page, true)) { + console.error(`currentPageLabel: "${val}" is not a valid page.`); + } + } + get currentScale() { + return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + } + set currentScale(val) { + if (isNaN(val)) { + throw new Error("Invalid numeric scale."); + } + if (!this.pdfDocument) { + return; + } + this._setScale(val, false); + } + get currentScaleValue() { + return this._currentScaleValue; + } + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + this._setScale(val, false); + } + get pagesRotation() { + return this._pagesRotation; + } + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid pages rotation angle."); + } + if (!this.pdfDocument) { + return; + } + rotation %= 360; + if (rotation < 0) { + rotation += 360; + } + if (this._pagesRotation === rotation) { + return; + } + this._pagesRotation = rotation; + const pageNumber = this._currentPageNumber; + const updateArgs = { + rotation + }; + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + if (this._currentScaleValue) { + this._setScale(this._currentScaleValue, true); + } + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + if (this.defaultRenderingQueue) { + this.update(); + } + } + get firstPagePromise() { + return this.pdfDocument ? this._firstPageCapability.promise : null; + } + get onePageRendered() { + return this.pdfDocument ? this._onePageRenderedCapability.promise : null; + } + get pagesPromise() { + return this.pdfDocument ? this._pagesCapability.promise : null; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + var _this$findController, _this$_scriptingManag; + this.eventBus.dispatch("pagesdestroy", { + source: this + }); + this._cancelRendering(); + this._resetView(); + (_this$findController = this.findController) === null || _this$findController === void 0 ? void 0 : _this$findController.setDocument(null); + (_this$_scriptingManag = this._scriptingManager) === null || _this$_scriptingManag === void 0 ? void 0 : _this$_scriptingManag.setDocument(null); + if (_classPrivateFieldGet(this, _annotationEditorUIManager)) { + _classPrivateFieldGet(this, _annotationEditorUIManager).destroy(); + _classPrivateFieldSet(this, _annotationEditorUIManager, null); + } + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const isPureXfa = pdfDocument.isPureXfa; + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + const permissionsPromise = _classPrivateFieldGet(this, _enablePermissions) ? pdfDocument.getPermissions() : Promise.resolve(); + if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document."); + const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + } + this._pagesCapability.promise.then(() => { + this.eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }, () => {}); + this._onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + if (!pageView) { + return; + } + _classPrivateFieldGet(this, _buffer).push(pageView); + }; + this.eventBus._on("pagerender", this._onBeforeDraw); + this._onAfterDraw = evt => { + if (evt.cssTransform || this._onePageRenderedCapability.settled) { + return; + } + this._onePageRenderedCapability.resolve({ + timestamp: evt.timestamp + }); + this.eventBus._off("pagerendered", this._onAfterDraw); + this._onAfterDraw = null; + if (_classPrivateFieldGet(this, _onVisibilityChange)) { + document.removeEventListener("visibilitychange", _classPrivateFieldGet(this, _onVisibilityChange)); + _classPrivateFieldSet(this, _onVisibilityChange, null); + } + }; + this.eventBus._on("pagerendered", this._onAfterDraw); + Promise.all([firstPagePromise, permissionsPromise]).then(_ref => { + let [firstPdfPage, permissions] = _ref; + if (pdfDocument !== this.pdfDocument) { + return; + } + this._firstPageCapability.resolve(firstPdfPage); + this._optionalContentConfigPromise = optionalContentConfigPromise; + const { + annotationEditorMode, + annotationMode, + textLayerMode + } = _classPrivateMethodGet(this, _initializePermissions, _initializePermissions2).call(this, permissions); + if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + const mode = annotationEditorMode; + if (isPureXfa) { + console.warn("Warning: XFA-editing is not implemented."); + } else if (isValidAnnotationEditorMode(mode)) { + _classPrivateFieldSet(this, _annotationEditorUIManager, new _pdfjsLib.AnnotationEditorUIManager(this.container, this.eventBus)); + if (mode !== _pdfjsLib.AnnotationEditorType.NONE) { + _classPrivateFieldGet(this, _annotationEditorUIManager).updateMode(mode); + } + } else { + console.error(`Invalid AnnotationEditor mode: ${mode}`); + } + } + const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + const textLayerFactory = textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !isPureXfa ? this : null; + const annotationLayerFactory = annotationMode !== _pdfjsLib.AnnotationMode.DISABLE ? this : null; + const xfaLayerFactory = isPureXfa ? this : null; + const annotationEditorLayerFactory = _classPrivateFieldGet(this, _annotationEditorUIManager) ? this : null; + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new _pdf_page_view.PDFPageView({ + container: viewerElement, + eventBus: this.eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerFactory, + textLayerMode, + annotationLayerFactory, + annotationMode, + xfaLayerFactory, + annotationEditorLayerFactory, + textHighlighterFactory: this, + structTreeLayerFactory: this, + imageResourcesPath: this.imageResourcesPath, + renderer: this.renderer, + useOnlyCssZoom: this.useOnlyCssZoom, + maxCanvasPixels: this.maxCanvasPixels, + pageColors: this.pageColors, + l10n: this.l10n + }); + this._pages.push(pageView); + } + const firstPageView = this._pages[0]; + if (firstPageView) { + firstPageView.setPdfPage(firstPdfPage); + this.linkService.cachePageRef(1, firstPdfPage.ref); + } + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + _classPrivateMethodGet(this, _ensurePageViewVisible, _ensurePageViewVisible2).call(this); + } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + this._updateSpreadMode(); + } + _classPrivateMethodGet(this, _onePageRenderedOrForceFetch, _onePageRenderedOrForceFetch2).call(this).then(async () => { + var _this$findController2, _this$_scriptingManag2; + (_this$findController2 = this.findController) === null || _this$findController2 === void 0 ? void 0 : _this$findController2.setDocument(pdfDocument); + (_this$_scriptingManag2 = this._scriptingManager) === null || _this$_scriptingManag2 === void 0 ? void 0 : _this$_scriptingManag2.setDocument(pdfDocument); + if (_classPrivateFieldGet(this, _annotationEditorUIManager)) { + this.eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode: _classPrivateFieldGet(this, _annotationEditorMode) + }); + } + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) { + this._pagesCapability.resolve(); + return; + } + let getPagesLeft = pagesCount - 1; + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + return; + } + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + const promise = pdfDocument.getPage(pageNum).then(pdfPage => { + const pageView = this._pages[pageNum - 1]; + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + this.linkService.cachePageRef(pageNum, pdfPage.ref); + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }, reason => { + console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }); + if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) { + await promise; + } + } + }); + this.eventBus.dispatch("pagesinit", { + source: this + }); + pdfDocument.getMetadata().then(_ref2 => { + let { + info + } = _ref2; + if (pdfDocument !== this.pdfDocument) { + return; + } + if (info.Language) { + this.viewer.lang = info.Language; + } + }); + if (this.defaultRenderingQueue) { + this.update(); + } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + this._pagesCapability.reject(reason); + }); + } + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error(`setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; + } + for (let i = 0, ii = this._pages.length; i < ii; i++) { + var _this$_pageLabels3; + this._pages[i].setPageLabel(((_this$_pageLabels3 = this._pageLabels) === null || _this$_pageLabels3 === void 0 ? void 0 : _this$_pageLabels3[i]) ?? null); + } + } + _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + _classPrivateFieldSet(this, _buffer, new PDFPageViewBuffer(DEFAULT_CACHE_SIZE)); + this._location = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN; + this._spreadMode = _ui_utils.SpreadMode.NONE; + _classPrivateFieldSet(this, _scrollModePageState, { + previousPageNumber: 1, + scrollDown: true, + pages: [] + }); + if (this._onBeforeDraw) { + this.eventBus._off("pagerender", this._onBeforeDraw); + this._onBeforeDraw = null; + } + if (this._onAfterDraw) { + this.eventBus._off("pagerendered", this._onAfterDraw); + this._onAfterDraw = null; + } + if (_classPrivateFieldGet(this, _onVisibilityChange)) { + document.removeEventListener("visibilitychange", _classPrivateFieldGet(this, _onVisibilityChange)); + _classPrivateFieldSet(this, _onVisibilityChange, null); + } + this.viewer.textContent = ""; + this._updateScrollMode(); + this.viewer.removeAttribute("lang"); + this.viewer.classList.remove(ENABLE_PERMISSIONS_CLASS); + } + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + this.update(); + } + _setScaleUpdatePages(newScale, newValue) { + let noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + let preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + this._currentScaleValue = newValue.toString(); + if (_classPrivateMethodGet(this, _isSameScale, _isSameScale2).call(this, newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); + } + return; + } + _ui_utils.docStyle.setProperty("--scale-factor", newScale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS); + const updateArgs = { + scale: newScale + }; + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + this._currentScale = newScale; + if (!noScroll) { + let page = this._currentPageNumber, + dest; + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: "XYZ" + }, this._location.left, this._location.top, null]; + } + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true + }); + } + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + if (this.defaultRenderingQueue) { + this.update(); + } + this.updateContainerHeightCss(); + } + get _pageWidthScaleFactor() { + if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL) { + return 2; + } + return 1; + } + _setScale(value) { + let noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + let scale = parseFloat(value); + if (scale > 0) { + this._setScaleUpdatePages(scale, value, noScroll, false); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + if (!currentPage) { + return; + } + let hPadding = _ui_utils.SCROLLBAR_PADDING, + vPadding = _ui_utils.VERTICAL_PADDING; + if (this.isInPresentationMode) { + hPadding = vPadding = 4; + } else if (this.removePageBorders) { + hPadding = vPadding = 0; + } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) { + [hPadding, vPadding] = [vPadding, hPadding]; + } + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor; + const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; + switch (value) { + case "page-actual": + scale = 1; + break; + case "page-width": + scale = pageWidthScale; + break; + case "page-height": + scale = pageHeightScale; + break; + case "page-fit": + scale = Math.min(pageWidthScale, pageHeightScale); + break; + case "auto": + const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); + break; + default: + console.error(`_setScale: "${value}" is an unknown zoom value.`); + return; + } + this._setScaleUpdatePages(scale, value, noScroll, true); + } + } + pageLabelToPageNumber(label) { + if (!this._pageLabels) { + return null; + } + const i = this._pageLabels.indexOf(label); + if (i < 0) { + return null; + } + return i + 1; + } + scrollPageIntoView(_ref3) { + let { + pageNumber, + destArray = null, + allowNegativeOffset = false, + ignoreDestinationZoom = false + } = _ref3; + if (!this.pdfDocument) { + return; + } + const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + if (!pageView) { + console.error(`scrollPageIntoView: "${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + return; + } + let x = 0, + y = 0; + let width = 0, + height = 0, + widthScale, + heightScale; + const changeOrientation = pageView.rotation % 180 !== 0; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + let scale = 0; + switch (destArray[1].name) { + case "XYZ": + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + case "Fit": + case "FitB": + scale = "page-fit"; + break; + case "FitH": + case "FitBH": + y = destArray[2]; + scale = "page-width"; + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } else if (typeof y !== "number" || y < 0) { + y = pageHeight; + } + break; + case "FitV": + case "FitBV": + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = "page-height"; + break; + case "FitR": + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; + const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; + widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + default: + console.error(`scrollPageIntoView: "${destArray[1].name}" is not a valid destination type.`); + return; + } + if (!ignoreDestinationZoom) { + if (scale && scale !== this._currentScale) { + this.currentScaleValue = scale; + } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { + this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } + } + if (scale === "page-fit" && !destArray[4]) { + _classPrivateMethodGet(this, _scrollIntoView, _scrollIntoView2).call(this, pageView); + return; + } + const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + let left = Math.min(boundingRect[0][0], boundingRect[1][0]); + let top = Math.min(boundingRect[0][1], boundingRect[1][1]); + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + _classPrivateMethodGet(this, _scrollIntoView, _scrollIntoView2).call(this, pageView, { + left, + top + }); + } + _updateLocation(firstPage) { + const currentScale = this._currentScale; + const currentScaleValue = this._currentScaleValue; + const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + const pageNumber = firstPage.id; + const currentPageView = this._pages[pageNumber - 1]; + const container = this.container; + const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + const intLeft = Math.round(topLeft[0]); + const intTop = Math.round(topLeft[1]); + let pdfOpenParams = `#page=${pageNumber}`; + if (!this.isInPresentationMode) { + pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`; + } + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + update() { + const visible = this._getVisiblePages(); + const visiblePages = visible.views, + numVisiblePages = visiblePages.length; + if (numVisiblePages === 0) { + return; + } + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + _classPrivateFieldGet(this, _buffer).resize(newCacheSize, visible.ids); + this.renderingQueue.renderHighestPriority(visible); + const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL); + const currentId = this._currentPageNumber; + let stillFullyVisible = false; + for (const page of visiblePages) { + if (page.percent < 100) { + break; + } + if (page.id === currentId && isSimpleLayout) { + stillFullyVisible = true; + break; + } + } + this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id); + this._updateLocation(visible.first); + this.eventBus.dispatch("updateviewarea", { + source: this, + location: this._location + }); + } + containsElement(element) { + return this.container.contains(element); + } + focus() { + this.container.focus(); + } + get _isContainerRtl() { + return getComputedStyle(this.container).direction === "rtl"; + } + get isInPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + } + get isChangingPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + } + get isHorizontalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + get isVerticalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + _getVisiblePages() { + const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? _classPrivateFieldGet(this, _scrollModePageState).pages : this._pages, + horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL, + rtl = horizontal && this._isContainerRtl; + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views, + sortByVisibility: true, + horizontal, + rtl + }); + } + isPageVisible(pageNumber) { + if (!this.pdfDocument) { + return false; + } + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`isPageVisible: "${pageNumber}" is not a valid page.`); + return false; + } + return this._getVisiblePages().ids.has(pageNumber); + } + isPageCached(pageNumber) { + if (!this.pdfDocument) { + return false; + } + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`isPageCached: "${pageNumber}" is not a valid page.`); + return false; + } + const pageView = this._pages[pageNumber - 1]; + return _classPrivateFieldGet(this, _buffer).has(pageView); + } + cleanup() { + for (const pageView of this._pages) { + if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) { + pageView.reset(); + } + } + } + _cancelRendering() { + for (const pageView of this._pages) { + pageView.cancelRendering(); + } + } + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + const scrollAhead = _classPrivateMethodGet(this, _getScrollAhead, _getScrollAhead2).call(this, visiblePages); + const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); + _classPrivateMethodGet(this, _toggleLoadingIconSpinner, _toggleLoadingIconSpinner2).call(this, visiblePages.ids); + if (pageView) { + _classPrivateMethodGet(this, _ensurePdfPageLoaded, _ensurePdfPageLoaded2).call(this, pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + return true; + } + return false; + } + createTextLayerBuilder(_ref4) { + let { + textLayerDiv, + pageIndex, + viewport, + eventBus, + highlighter, + accessibilityManager = null + } = _ref4; + return new _text_layer_builder.TextLayerBuilder({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + highlighter, + accessibilityManager + }); + } + createTextHighlighter(_ref5) { + let { + pageIndex, + eventBus + } = _ref5; + return new _text_highlighter.TextHighlighter({ + eventBus, + pageIndex, + findController: this.isInPresentationMode ? null : this.findController + }); + } + createAnnotationLayerBuilder(_ref6) { + var _this$pdfDocument, _this$pdfDocument2, _this$_scriptingManag3, _this$pdfDocument3; + let { + pageDiv, + pdfPage, + annotationStorage = (_this$pdfDocument = this.pdfDocument) === null || _this$pdfDocument === void 0 ? void 0 : _this$pdfDocument.annotationStorage, + imageResourcesPath = "", + renderForms = true, + l10n = _l10n_utils.NullL10n, + enableScripting = this.enableScripting, + hasJSActionsPromise = (_this$pdfDocument2 = this.pdfDocument) === null || _this$pdfDocument2 === void 0 ? void 0 : _this$pdfDocument2.hasJSActions(), + mouseState = (_this$_scriptingManag3 = this._scriptingManager) === null || _this$_scriptingManag3 === void 0 ? void 0 : _this$_scriptingManag3.mouseState, + fieldObjectsPromise = (_this$pdfDocument3 = this.pdfDocument) === null || _this$pdfDocument3 === void 0 ? void 0 : _this$pdfDocument3.getFieldObjects(), + annotationCanvasMap = null, + accessibilityManager = null + } = _ref6; + return new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage, + imageResourcesPath, + renderForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + l10n, + enableScripting, + hasJSActionsPromise, + mouseState, + fieldObjectsPromise, + annotationCanvasMap, + accessibilityManager + }); + } + createAnnotationEditorLayerBuilder(_ref7) { + var _this$pdfDocument4; + let { + uiManager = _classPrivateFieldGet(this, _annotationEditorUIManager), + pageDiv, + pdfPage, + accessibilityManager = null, + l10n, + annotationStorage = (_this$pdfDocument4 = this.pdfDocument) === null || _this$pdfDocument4 === void 0 ? void 0 : _this$pdfDocument4.annotationStorage + } = _ref7; + return new _annotation_editor_layer_builder.AnnotationEditorLayerBuilder({ + uiManager, + pageDiv, + pdfPage, + annotationStorage, + accessibilityManager, + l10n + }); + } + createXfaLayerBuilder(_ref8) { + var _this$pdfDocument5; + let { + pageDiv, + pdfPage, + annotationStorage = (_this$pdfDocument5 = this.pdfDocument) === null || _this$pdfDocument5 === void 0 ? void 0 : _this$pdfDocument5.annotationStorage + } = _ref8; + return new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage, + linkService: this.linkService + }); + } + createStructTreeLayerBuilder(_ref9) { + let { + pdfPage + } = _ref9; + return new _struct_tree_layer_builder.StructTreeLayerBuilder({ + pdfPage + }); + } + get hasEqualPageSizes() { + const firstPageView = this._pages[0]; + for (let i = 1, ii = this._pages.length; i < ii; ++i) { + const pageView = this._pages[i]; + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; + } + } + return true; + } + getPagesOverview() { + return this._pages.map(pageView => { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + if (!this.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) { + return { + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation + }; + } + return { + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 + }; + }); + } + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); + } + if (!this._optionalContentConfigPromise) { + console.error("optionalContentConfigPromise: Not initialized yet."); + return this.pdfDocument.getOptionalContentConfig(); + } + return this._optionalContentConfigPromise; + } + set optionalContentConfigPromise(promise) { + if (!(promise instanceof Promise)) { + throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); + } + if (!this.pdfDocument) { + return; + } + if (!this._optionalContentConfigPromise) { + return; + } + this._optionalContentConfigPromise = promise; + const updateArgs = { + optionalContentConfigPromise: promise + }; + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + this.update(); + this.eventBus.dispatch("optionalcontentconfigchanged", { + source: this, + promise + }); + } + get scrollMode() { + return this._scrollMode; + } + set scrollMode(mode) { + if (this._scrollMode === mode) { + return; + } + if (!(0, _ui_utils.isValidScrollMode)(mode)) { + throw new Error(`Invalid scroll mode: ${mode}`); + } + if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + return; + } + this._previousScrollMode = this._scrollMode; + this._scrollMode = mode; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + this._updateScrollMode(this._currentPageNumber); + } + _updateScrollMode() { + let pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + const scrollMode = this._scrollMode, + viewer = this.viewer; + viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); + if (!this.pdfDocument || !pageNumber) { + return; + } + if (scrollMode === _ui_utils.ScrollMode.PAGE) { + _classPrivateMethodGet(this, _ensurePageViewVisible, _ensurePageViewVisible2).call(this); + } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) { + this._updateSpreadMode(); + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + get spreadMode() { + return this._spreadMode; + } + set spreadMode(mode) { + if (this._spreadMode === mode) { + return; + } + if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + throw new Error(`Invalid spread mode: ${mode}`); + } + this._spreadMode = mode; + this.eventBus.dispatch("spreadmodechanged", { + source: this, + mode + }); + this._updateSpreadMode(this._currentPageNumber); + } + _updateSpreadMode() { + let pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (!this.pdfDocument) { + return; + } + const viewer = this.viewer, + pages = this._pages; + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + _classPrivateMethodGet(this, _ensurePageViewVisible, _ensurePageViewVisible2).call(this); + } else { + viewer.textContent = ""; + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (const pageView of this._pages) { + viewer.append(pageView.div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + for (let i = 0, ii = pages.length; i < ii; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.append(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.append(spread); + } + spread.append(pages[i].div); + } + } + } + if (!pageNumber) { + return; + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + _getPageAdvance(currentPageNumber) { + let previous = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + switch (this._scrollMode) { + case _ui_utils.ScrollMode.WRAPPED: + { + const { + views + } = this._getVisiblePages(), + pageLayout = new Map(); + for (const { + id, + y, + percent, + widthPercent + } of views) { + if (percent === 0 || widthPercent < 100) { + continue; + } + let yArray = pageLayout.get(y); + if (!yArray) { + pageLayout.set(y, yArray || (yArray = [])); + } + yArray.push(id); + } + for (const yArray of pageLayout.values()) { + const currentIndex = yArray.indexOf(currentPageNumber); + if (currentIndex === -1) { + continue; + } + const numPages = yArray.length; + if (numPages === 1) { + break; + } + if (previous) { + for (let i = currentIndex - 1, ii = 0; i >= ii; i--) { + const currentId = yArray[i], + expectedId = yArray[i + 1] - 1; + if (currentId < expectedId) { + return currentPageNumber - expectedId; + } + } + } else { + for (let i = currentIndex + 1, ii = numPages; i < ii; i++) { + const currentId = yArray[i], + expectedId = yArray[i - 1] + 1; + if (currentId > expectedId) { + return expectedId - currentPageNumber; + } + } + } + if (previous) { + const firstId = yArray[0]; + if (firstId < currentPageNumber) { + return currentPageNumber - firstId + 1; + } + } else { + const lastId = yArray[numPages - 1]; + if (lastId > currentPageNumber) { + return lastId - currentPageNumber + 1; + } + } + break; + } + break; + } + case _ui_utils.ScrollMode.HORIZONTAL: + { + break; + } + case _ui_utils.ScrollMode.PAGE: + case _ui_utils.ScrollMode.VERTICAL: + { + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + break; + } + const parity = this._spreadMode - 1; + if (previous && currentPageNumber % 2 !== parity) { + break; + } else if (!previous && currentPageNumber % 2 === parity) { + break; + } + const { + views + } = this._getVisiblePages(), + expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; + for (const { + id, + percent, + widthPercent + } of views) { + if (id !== expectedId) { + continue; + } + if (percent > 0 && widthPercent === 100) { + return 2; + } + break; + } + break; + } + } + return 1; + } + nextPage() { + const currentPageNumber = this._currentPageNumber, + pagesCount = this.pagesCount; + if (currentPageNumber >= pagesCount) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, false) || 1; + this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); + return true; + } + previousPage() { + const currentPageNumber = this._currentPageNumber; + if (currentPageNumber <= 1) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, true) || 1; + this.currentPageNumber = Math.max(currentPageNumber - advance, 1); + return true; + } + increaseScale() { + let steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + let newScale = this._currentScale; + do { + newScale = (newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2); + newScale = Math.ceil(newScale * 10) / 10; + newScale = Math.min(_ui_utils.MAX_SCALE, newScale); + } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE); + this.currentScaleValue = newScale; + } + decreaseScale() { + let steps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + let newScale = this._currentScale; + do { + newScale = (newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2); + newScale = Math.floor(newScale * 10) / 10; + newScale = Math.max(_ui_utils.MIN_SCALE, newScale); + } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE); + this.currentScaleValue = newScale; + } + updateContainerHeightCss() { + const height = this.container.clientHeight; + if (height !== _classPrivateFieldGet(this, _previousContainerHeight)) { + _classPrivateFieldSet(this, _previousContainerHeight, height); + _ui_utils.docStyle.setProperty("--viewer-container-height", `${height}px`); + } + } + get annotationEditorMode() { + return _classPrivateFieldGet(this, _annotationEditorUIManager) ? _classPrivateFieldGet(this, _annotationEditorMode) : _pdfjsLib.AnnotationEditorType.DISABLE; + } + set annotationEditorMode(mode) { + if (!_classPrivateFieldGet(this, _annotationEditorUIManager)) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + if (_classPrivateFieldGet(this, _annotationEditorMode) === mode) { + return; + } + if (!isValidAnnotationEditorMode(mode)) { + throw new Error(`Invalid AnnotationEditor mode: ${mode}`); + } + if (!this.pdfDocument) { + return; + } + _classPrivateFieldSet(this, _annotationEditorMode, mode); + this.eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode + }); + _classPrivateFieldGet(this, _annotationEditorUIManager).updateMode(mode); + } + set annotationEditorParams(_ref10) { + let { + type, + value + } = _ref10; + if (!_classPrivateFieldGet(this, _annotationEditorUIManager)) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + _classPrivateFieldGet(this, _annotationEditorUIManager).updateParams(type, value); + } + refresh() { + if (!this.pdfDocument) { + return; + } + const updateArgs = {}; + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + this.update(); + } +} +exports.PDFViewer = PDFViewer; +function _initializePermissions2(permissions) { + const params = { + annotationEditorMode: _classPrivateFieldGet(this, _annotationEditorMode), + annotationMode: _classPrivateFieldGet(this, _annotationMode), + textLayerMode: this.textLayerMode + }; + if (!permissions) { + return params; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) { + this.viewer.classList.add(ENABLE_PERMISSIONS_CLASS); + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_CONTENTS)) { + params.annotationEditorMode = _pdfjsLib.AnnotationEditorType.DISABLE; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS) && _classPrivateFieldGet(this, _annotationMode) === _pdfjsLib.AnnotationMode.ENABLE_FORMS) { + params.annotationMode = _pdfjsLib.AnnotationMode.ENABLE; + } + return params; +} +function _onePageRenderedOrForceFetch2() { + if (document.visibilityState === "hidden" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return Promise.resolve(); + } + const visibilityChangePromise = new Promise(resolve => { + _classPrivateFieldSet(this, _onVisibilityChange, () => { + if (document.visibilityState !== "hidden") { + return; + } + resolve(); + document.removeEventListener("visibilitychange", _classPrivateFieldGet(this, _onVisibilityChange)); + _classPrivateFieldSet(this, _onVisibilityChange, null); + }); + document.addEventListener("visibilitychange", _classPrivateFieldGet(this, _onVisibilityChange)); + }); + return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]); +} +function _ensurePageViewVisible2() { + if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) { + throw new Error("#ensurePageViewVisible: Invalid scrollMode value."); + } + const pageNumber = this._currentPageNumber, + state = _classPrivateFieldGet(this, _scrollModePageState), + viewer = this.viewer; + viewer.textContent = ""; + state.pages.length = 0; + if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) { + const pageView = this._pages[pageNumber - 1]; + viewer.append(pageView.div); + state.pages.push(pageView); + } else { + const pageIndexSet = new Set(), + parity = this._spreadMode - 1; + if (parity === -1) { + pageIndexSet.add(pageNumber - 1); + } else if (pageNumber % 2 !== parity) { + pageIndexSet.add(pageNumber - 1); + pageIndexSet.add(pageNumber); + } else { + pageIndexSet.add(pageNumber - 2); + pageIndexSet.add(pageNumber - 1); + } + const spread = document.createElement("div"); + spread.className = "spread"; + if (this.isInPresentationMode) { + const dummyPage = document.createElement("div"); + dummyPage.className = "dummyPage"; + spread.append(dummyPage); + } + for (const i of pageIndexSet) { + const pageView = this._pages[i]; + if (!pageView) { + continue; + } + spread.append(pageView.div); + state.pages.push(pageView); + } + viewer.append(spread); + } + state.scrollDown = pageNumber >= state.previousPageNumber; + state.previousPageNumber = pageNumber; +} +function _scrollIntoView2(pageView) { + let pageSpot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const { + div, + id + } = pageView; + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this._setCurrentPageNumber(id); + _classPrivateMethodGet(this, _ensurePageViewVisible, _ensurePageViewVisible2).call(this); + this.update(); + } + if (!pageSpot && !this.isInPresentationMode) { + const left = div.offsetLeft + div.clientLeft, + right = left + div.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; + if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; + } + } + (0, _ui_utils.scrollIntoView)(div, pageSpot); +} +function _isSameScale2(newScale) { + return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15; +} +function _resetCurrentPageView2() { + const pageView = this._pages[this._currentPageNumber - 1]; + if (this.isInPresentationMode) { + this._setScale(this._currentScaleValue, true); + } + _classPrivateMethodGet(this, _scrollIntoView, _scrollIntoView2).call(this, pageView); +} +async function _ensurePdfPageLoaded2(pageView) { + if (pageView.pdfPage) { + return pageView.pdfPage; + } + try { + var _this$linkService$_ca, _this$linkService; + const pdfPage = await this.pdfDocument.getPage(pageView.id); + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + if (!((_this$linkService$_ca = (_this$linkService = this.linkService)._cachedPageNumber) !== null && _this$linkService$_ca !== void 0 && _this$linkService$_ca.call(_this$linkService, pdfPage.ref))) { + this.linkService.cachePageRef(pageView.id, pdfPage.ref); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for page view", reason); + return null; + } +} +function _getScrollAhead2(visible) { + var _visible$first, _visible$last; + if (((_visible$first = visible.first) === null || _visible$first === void 0 ? void 0 : _visible$first.id) === 1) { + return true; + } else if (((_visible$last = visible.last) === null || _visible$last === void 0 ? void 0 : _visible$last.id) === this.pagesCount) { + return false; + } + switch (this._scrollMode) { + case _ui_utils.ScrollMode.PAGE: + return _classPrivateFieldGet(this, _scrollModePageState).scrollDown; + case _ui_utils.ScrollMode.HORIZONTAL: + return this.scroll.right; + } + return this.scroll.down; +} +function _toggleLoadingIconSpinner2(visibleIds) { + for (const id of visibleIds) { + const pageView = this._pages[id - 1]; + pageView === null || pageView === void 0 ? void 0 : pageView.toggleLoadingIconSpinner(true); + } + for (const pageView of _classPrivateFieldGet(this, _buffer)) { + if (visibleIds.has(pageView.id)) { + continue; + } + pageView.toggleLoadingIconSpinner(false); + } +} + +/***/ }), +/* 30 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(5); +var _l10n_utils = __webpack_require__(31); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _uiManager = /*#__PURE__*/new WeakMap(); +class AnnotationEditorLayerBuilder { + constructor(options) { + _classPrivateFieldInitSpec(this, _uiManager, { + writable: true, + value: void 0 + }); + this.pageDiv = options.pageDiv; + this.pdfPage = options.pdfPage; + this.annotationStorage = options.annotationStorage || null; + this.accessibilityManager = options.accessibilityManager; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.annotationEditorLayer = null; + this.div = null; + this._cancelled = false; + _classPrivateFieldSet(this, _uiManager, options.uiManager); + } + async render(viewport) { + let intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "display"; + if (intent !== "display") { + return; + } + if (this._cancelled) { + return; + } + const clonedViewport = viewport.clone({ + dontFlip: true + }); + if (this.div) { + this.annotationEditorLayer.update({ + viewport: clonedViewport + }); + this.show(); + return; + } + this.div = document.createElement("div"); + this.div.className = "annotationEditorLayer"; + this.div.tabIndex = 0; + this.pageDiv.append(this.div); + this.annotationEditorLayer = new _pdfjsLib.AnnotationEditorLayer({ + uiManager: _classPrivateFieldGet(this, _uiManager), + div: this.div, + annotationStorage: this.annotationStorage, + accessibilityManager: this.accessibilityManager, + pageIndex: this.pdfPage._pageIndex, + l10n: this.l10n, + viewport: clonedViewport + }); + const parameters = { + viewport: clonedViewport, + div: this.div, + annotations: null, + intent + }; + this.annotationEditorLayer.render(parameters); + } + cancel() { + this._cancelled = true; + this.destroy(); + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + show() { + if (!this.div) { + return; + } + this.div.hidden = false; + } + destroy() { + if (!this.div) { + return; + } + this.pageDiv = null; + this.annotationEditorLayer.destroy(); + this.div.remove(); + } +} +exports.AnnotationEditorLayerBuilder = AnnotationEditorLayerBuilder; + +/***/ }), +/* 31 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NullL10n = void 0; +exports.fixupLangCode = fixupLangCode; +exports.getL10nFallback = getL10nFallback; +const DEFAULT_L10N_STRINGS = { + of_pages: "of {{pagesCount}}", + page_of_pages: "({{pageNumber}} of {{pagesCount}})", + document_properties_kb: "{{size_kb}} KB ({{size_b}} bytes)", + document_properties_mb: "{{size_mb}} MB ({{size_b}} bytes)", + document_properties_date_string: "{{date}}, {{time}}", + document_properties_page_size_unit_inches: "in", + document_properties_page_size_unit_millimeters: "mm", + document_properties_page_size_orientation_portrait: "portrait", + document_properties_page_size_orientation_landscape: "landscape", + document_properties_page_size_name_a3: "A3", + document_properties_page_size_name_a4: "A4", + document_properties_page_size_name_letter: "Letter", + document_properties_page_size_name_legal: "Legal", + document_properties_page_size_dimension_string: "{{width}} × {{height}} {{unit}} ({{orientation}})", + document_properties_page_size_dimension_name_string: "{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})", + document_properties_linearized_yes: "Yes", + document_properties_linearized_no: "No", + additional_layers: "Additional Layers", + page_landmark: "Page {{page}}", + thumb_page_title: "Page {{page}}", + thumb_page_canvas: "Thumbnail of Page {{page}}", + find_reached_top: "Reached top of document, continued from bottom", + find_reached_bottom: "Reached end of document, continued from top", + "find_match_count[one]": "{{current}} of {{total}} match", + "find_match_count[other]": "{{current}} of {{total}} matches", + "find_match_count_limit[one]": "More than {{limit}} match", + "find_match_count_limit[other]": "More than {{limit}} matches", + find_not_found: "Phrase not found", + page_scale_width: "Page Width", + page_scale_fit: "Page Fit", + page_scale_auto: "Automatic Zoom", + page_scale_actual: "Actual Size", + page_scale_percent: "{{scale}}%", + loading: "Loading…", + loading_error: "An error occurred while loading the PDF.", + invalid_file_error: "Invalid or corrupted PDF file.", + missing_file_error: "Missing PDF file.", + unexpected_response_error: "Unexpected server response.", + rendering_error: "An error occurred while rendering the page.", + printing_not_supported: "Warning: Printing is not fully supported by this browser.", + printing_not_ready: "Warning: The PDF is not fully loaded for printing.", + web_fonts_disabled: "Web fonts are disabled: unable to use embedded PDF fonts.", + free_text2_default_content: "Start typing…", + editor_free_text2_aria_label: "Text Editor", + editor_ink2_aria_label: "Draw Editor", + editor_ink_canvas_aria_label: "User-created image" +}; +{ + DEFAULT_L10N_STRINGS.print_progress_percent = "{{progress}}%"; +} +function getL10nFallback(key, args) { + switch (key) { + case "find_match_count": + key = `find_match_count[${args.total === 1 ? "one" : "other"}]`; + break; + case "find_match_count_limit": + key = `find_match_count_limit[${args.limit === 1 ? "one" : "other"}]`; + break; + } + return DEFAULT_L10N_STRINGS[key] || ""; +} +const PARTIAL_LANG_CODES = { + en: "en-US", + es: "es-ES", + fy: "fy-NL", + ga: "ga-IE", + gu: "gu-IN", + hi: "hi-IN", + hy: "hy-AM", + nb: "nb-NO", + ne: "ne-NP", + nn: "nn-NO", + pa: "pa-IN", + pt: "pt-PT", + sv: "sv-SE", + zh: "zh-CN" +}; +function fixupLangCode(langCode) { + return PARTIAL_LANG_CODES[langCode === null || langCode === void 0 ? void 0 : langCode.toLowerCase()] || langCode; +} +function formatL10nValue(text, args) { + if (!args) { + return text; + } + return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (all, name) => { + return name in args ? args[name] : "{{" + name + "}}"; + }); +} +const NullL10n = { + async getLanguage() { + return "en-us"; + }, + async getDirection() { + return "ltr"; + }, + async get(key) { + let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getL10nFallback(key, args); + return formatL10nValue(fallback, args); + }, + async translate(element) {} +}; +exports.NullL10n = NullL10n; + +/***/ }), +/* 32 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(5); +var _l10n_utils = __webpack_require__(31); +class AnnotationLayerBuilder { + constructor(_ref) { + let { + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderForms = true, + l10n = _l10n_utils.NullL10n, + enableScripting = false, + hasJSActionsPromise = null, + fieldObjectsPromise = null, + mouseState = null, + annotationCanvasMap = null, + accessibilityManager = null + } = _ref; + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderForms = renderForms; + this.l10n = l10n; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise; + this._fieldObjectsPromise = fieldObjectsPromise; + this._mouseState = mouseState; + this._annotationCanvasMap = annotationCanvasMap; + this._accessibilityManager = accessibilityManager; + this.div = null; + this._cancelled = false; + } + async render(viewport) { + let intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "display"; + const [annotations, hasJSActions = false, fieldObjects = null] = await Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise, this._fieldObjectsPromise]); + if (this._cancelled || annotations.length === 0) { + return; + } + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + annotations, + page: this.pdfPage, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.renderForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + fieldObjects, + mouseState: this._mouseState, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager + }; + if (this.div) { + _pdfjsLib.AnnotationLayer.update(parameters); + } else { + this.div = document.createElement("div"); + this.div.className = "annotationLayer"; + this.pageDiv.append(this.div); + parameters.div = this.div; + _pdfjsLib.AnnotationLayer.render(parameters); + this.l10n.translate(this.div); + } + } + cancel() { + this._cancelled = true; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } +} +exports.AnnotationLayerBuilder = AnnotationLayerBuilder; + +/***/ }), +/* 33 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFPageView = void 0; +var _pdfjsLib = __webpack_require__(5); +var _ui_utils = __webpack_require__(1); +var _app_options = __webpack_require__(2); +var _l10n_utils = __webpack_require__(31); +var _text_accessibility = __webpack_require__(34); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +const MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216; +var _annotationMode = /*#__PURE__*/new WeakMap(); +var _useThumbnailCanvas = /*#__PURE__*/new WeakMap(); +class PDFPageView { + constructor(options) { + var _options$textHighligh, _this$renderingQueue; + _classPrivateFieldInitSpec(this, _annotationMode, { + writable: true, + value: _pdfjsLib.AnnotationMode.ENABLE_FORMS + }); + _classPrivateFieldInitSpec(this, _useThumbnailCanvas, { + writable: true, + value: { + initialOptionalContent: true, + regularAnnotations: true + } + }); + const container = options.container; + const defaultViewport = options.defaultViewport; + this.id = options.id; + this.renderingId = "page" + this.id; + this.pdfPage = null; + this.pageLabel = null; + this.rotation = 0; + this.scale = options.scale || _ui_utils.DEFAULT_SCALE; + this.viewport = defaultViewport; + this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; + this.hasRestrictedScaling = false; + this.textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; + _classPrivateFieldSet(this, _annotationMode, options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS); + this.imageResourcesPath = options.imageResourcesPath || ""; + this.useOnlyCssZoom = options.useOnlyCssZoom || false; + this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; + this.pageColors = options.pageColors || null; + this.eventBus = options.eventBus; + this.renderingQueue = options.renderingQueue; + this.textLayerFactory = options.textLayerFactory; + this.annotationLayerFactory = options.annotationLayerFactory; + this.annotationEditorLayerFactory = options.annotationEditorLayerFactory; + this.xfaLayerFactory = options.xfaLayerFactory; + this.textHighlighter = (_options$textHighligh = options.textHighlighterFactory) === null || _options$textHighligh === void 0 ? void 0 : _options$textHighligh.createTextHighlighter({ + pageIndex: this.id - 1, + eventBus: this.eventBus + }); + this.structTreeLayerFactory = options.structTreeLayerFactory; + this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.paintTask = null; + this.paintedViewportMap = new WeakMap(); + this.renderingState = _ui_utils.RenderingStates.INITIAL; + this.resume = null; + this._renderError = null; + this._isStandalone = !((_this$renderingQueue = this.renderingQueue) !== null && _this$renderingQueue !== void 0 && _this$renderingQueue.hasViewer()); + this._annotationCanvasMap = null; + this.annotationLayer = null; + this.annotationEditorLayer = null; + this.textLayer = null; + this.zoomLayer = null; + this.xfaLayer = null; + this.structTreeLayer = null; + const div = document.createElement("div"); + div.className = "page"; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + div.setAttribute("data-page-number", this.id); + div.setAttribute("role", "region"); + this.l10n.get("page_landmark", { + page: this.id + }).then(msg => { + div.setAttribute("aria-label", msg); + }); + this.div = div; + container === null || container === void 0 ? void 0 : container.append(div); + if (this._isStandalone) { + const { + optionalContentConfigPromise + } = options; + if (optionalContentConfigPromise) { + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + _classPrivateFieldGet(this, _useThumbnailCanvas).initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + } + } + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.reset(); + } + destroy() { + var _this$pdfPage; + this.reset(); + (_this$pdfPage = this.pdfPage) === null || _this$pdfPage === void 0 ? void 0 : _this$pdfPage.cleanup(); + } + async _renderAnnotationLayer() { + let error = null; + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`_renderAnnotationLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async _renderAnnotationEditorLayer() { + let error = null; + try { + await this.annotationEditorLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`_renderAnnotationEditorLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationeditorlayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async _renderXfaLayer() { + let error = null; + try { + const result = await this.xfaLayer.render(this.viewport, "display"); + if (result !== null && result !== void 0 && result.textDivs && this.textHighlighter) { + this._buildXfaTextContentItems(result.textDivs); + } + } catch (ex) { + console.error(`_renderXfaLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("xfalayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async _buildXfaTextContentItems(textDivs) { + const text = await this.pdfPage.getTextContent(); + const items = []; + for (const item of text.items) { + items.push(item.str); + } + this.textHighlighter.setTextMapping(textDivs, items); + this.textHighlighter.enable(); + } + _resetZoomLayer() { + let removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!this.zoomLayer) { + return; + } + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.paintedViewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + if (removeFromDOM) { + this.zoomLayer.remove(); + } + this.zoomLayer = null; + } + reset() { + var _this$annotationLayer, _this$annotationEdito, _this$xfaLayer; + let { + keepZoomLayer = false, + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + this.cancelRendering({ + keepAnnotationLayer, + keepAnnotationEditorLayer, + keepXfaLayer + }); + this.renderingState = _ui_utils.RenderingStates.INITIAL; + const div = this.div; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + const childNodes = div.childNodes, + zoomLayerNode = keepZoomLayer && this.zoomLayer || null, + annotationLayerNode = keepAnnotationLayer && ((_this$annotationLayer = this.annotationLayer) === null || _this$annotationLayer === void 0 ? void 0 : _this$annotationLayer.div) || null, + annotationEditorLayerNode = keepAnnotationEditorLayer && ((_this$annotationEdito = this.annotationEditorLayer) === null || _this$annotationEdito === void 0 ? void 0 : _this$annotationEdito.div) || null, + xfaLayerNode = keepXfaLayer && ((_this$xfaLayer = this.xfaLayer) === null || _this$xfaLayer === void 0 ? void 0 : _this$xfaLayer.div) || null; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + switch (node) { + case zoomLayerNode: + case annotationLayerNode: + case annotationEditorLayerNode: + case xfaLayerNode: + continue; + } + node.remove(); + } + div.removeAttribute("data-loaded"); + if (annotationLayerNode) { + this.annotationLayer.hide(); + } + if (annotationEditorLayerNode) { + this.annotationEditorLayer.hide(); + } else { + var _this$annotationEdito2; + (_this$annotationEdito2 = this.annotationEditorLayer) === null || _this$annotationEdito2 === void 0 ? void 0 : _this$annotationEdito2.destroy(); + } + if (xfaLayerNode) { + this.xfaLayer.hide(); + } + if (!zoomLayerNode) { + if (this.canvas) { + this.paintedViewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + this._resetZoomLayer(); + } + if (this.svg) { + this.paintedViewportMap.delete(this.svg); + delete this.svg; + } + this.loadingIconDiv = document.createElement("div"); + this.loadingIconDiv.className = "loadingIcon notVisible"; + if (this._isStandalone) { + this.toggleLoadingIconSpinner(true); + } + this.loadingIconDiv.setAttribute("role", "img"); + this.l10n.get("loading").then(msg => { + var _this$loadingIconDiv; + (_this$loadingIconDiv = this.loadingIconDiv) === null || _this$loadingIconDiv === void 0 ? void 0 : _this$loadingIconDiv.setAttribute("aria-label", msg); + }); + div.append(this.loadingIconDiv); + } + update(_ref) { + let { + scale = 0, + rotation = null, + optionalContentConfigPromise = null + } = _ref; + this.scale = scale || this.scale; + if (typeof rotation === "number") { + this.rotation = rotation; + } + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + _classPrivateFieldGet(this, _useThumbnailCanvas).initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + if (this._isStandalone) { + _ui_utils.docStyle.setProperty("--scale-factor", this.viewport.scale); + } + if (this.svg) { + this.cssTransform({ + target: this.svg, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true + }); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this._renderError + }); + return; + } + let isScalingRestricted = false; + if (this.canvas && this.maxCanvasPixels > 0) { + const outputScale = this.outputScale; + if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { + isScalingRestricted = true; + } + } + if (this.canvas) { + if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { + this.cssTransform({ + target: this.canvas, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true + }); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this._renderError + }); + return; + } + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } + if (this.zoomLayer) { + this.cssTransform({ + target: this.zoomLayer.firstChild + }); + } + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true + }); + } + cancelRendering() { + let { + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (this.paintTask) { + this.paintTask.cancel(); + this.paintTask = null; + } + this.resume = null; + if (this.textLayer) { + this.textLayer.cancel(); + this.textLayer = null; + } + if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + this._annotationCanvasMap = null; + } + if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { + this.annotationEditorLayer.cancel(); + this.annotationEditorLayer = null; + } + if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { + var _this$textHighlighter; + this.xfaLayer.cancel(); + this.xfaLayer = null; + (_this$textHighlighter = this.textHighlighter) === null || _this$textHighlighter === void 0 ? void 0 : _this$textHighlighter.disable(); + } + if (this._onTextLayerRendered) { + this.eventBus._off("textlayerrendered", this._onTextLayerRendered); + this._onTextLayerRendered = null; + } + } + cssTransform(_ref2) { + let { + target, + redrawAnnotationLayer = false, + redrawAnnotationEditorLayer = false, + redrawXfaLayer = false + } = _ref2; + const width = this.viewport.width; + const height = this.viewport.height; + const div = this.div; + target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; + target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; + const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + if (absRotation === 90 || absRotation === 270) { + scaleX = height / width; + scaleY = width / height; + } + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; + if (this.textLayer) { + const textLayerViewport = this.textLayer.viewport; + const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; + const textAbsRotation = Math.abs(textRelativeRotation); + let scale = width / textLayerViewport.width; + if (textAbsRotation === 90 || textAbsRotation === 270) { + scale = width / textLayerViewport.height; + } + const textLayerDiv = this.textLayer.textLayerDiv; + let transX, transY; + switch (textAbsRotation) { + case 0: + transX = transY = 0; + break; + case 90: + transX = 0; + transY = "-" + textLayerDiv.style.height; + break; + case 180: + transX = "-" + textLayerDiv.style.width; + transY = "-" + textLayerDiv.style.height; + break; + case 270: + transX = "-" + textLayerDiv.style.width; + transY = 0; + break; + default: + console.error("Bad rotation value."); + break; + } + textLayerDiv.style.transform = `rotate(${textAbsRotation}deg) ` + `scale(${scale}) ` + `translate(${transX}, ${transY})`; + textLayerDiv.style.transformOrigin = "0% 0%"; + } + if (redrawAnnotationLayer && this.annotationLayer) { + this._renderAnnotationLayer(); + } + if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { + this._renderAnnotationEditorLayer(); + } + if (redrawXfaLayer && this.xfaLayer) { + this._renderXfaLayer(); + } + } + get width() { + return this.viewport.width; + } + get height() { + return this.viewport.height; + } + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + toggleLoadingIconSpinner() { + var _this$loadingIconDiv2; + let viewVisible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + (_this$loadingIconDiv2 = this.loadingIconDiv) === null || _this$loadingIconDiv2 === void 0 ? void 0 : _this$loadingIconDiv2.classList.toggle("notVisible", !viewVisible); + } + draw() { + var _this$annotationLayer2, + _this$annotationEdito3, + _this$xfaLayer2, + _this = this; + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + const { + div, + pdfPage + } = this; + if (!pdfPage) { + this.renderingState = _ui_utils.RenderingStates.FINISHED; + if (this.loadingIconDiv) { + this.loadingIconDiv.remove(); + delete this.loadingIconDiv; + } + return Promise.reject(new Error("pdfPage is not loaded")); + } + this.renderingState = _ui_utils.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.style.width = div.style.width; + canvasWrapper.style.height = div.style.height; + canvasWrapper.classList.add("canvasWrapper"); + const lastDivBeforeTextDiv = ((_this$annotationLayer2 = this.annotationLayer) === null || _this$annotationLayer2 === void 0 ? void 0 : _this$annotationLayer2.div) || ((_this$annotationEdito3 = this.annotationEditorLayer) === null || _this$annotationEdito3 === void 0 ? void 0 : _this$annotationEdito3.div); + if (lastDivBeforeTextDiv) { + lastDivBeforeTextDiv.before(canvasWrapper); + } else { + div.append(canvasWrapper); + } + let textLayer = null; + if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { + this._accessibilityManager || (this._accessibilityManager = new _text_accessibility.TextAccessibilityManager()); + const textLayerDiv = document.createElement("div"); + textLayerDiv.className = "textLayer"; + textLayerDiv.style.width = canvasWrapper.style.width; + textLayerDiv.style.height = canvasWrapper.style.height; + if (lastDivBeforeTextDiv) { + lastDivBeforeTextDiv.before(textLayerDiv); + } else { + div.append(textLayerDiv); + } + textLayer = this.textLayerFactory.createTextLayerBuilder({ + textLayerDiv, + pageIndex: this.id - 1, + viewport: this.viewport, + eventBus: this.eventBus, + highlighter: this.textHighlighter, + accessibilityManager: this._accessibilityManager + }); + } + this.textLayer = textLayer; + if (_classPrivateFieldGet(this, _annotationMode) !== _pdfjsLib.AnnotationMode.DISABLE && this.annotationLayerFactory) { + this._annotationCanvasMap || (this._annotationCanvasMap = new Map()); + this.annotationLayer || (this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder({ + pageDiv: div, + pdfPage, + imageResourcesPath: this.imageResourcesPath, + renderForms: _classPrivateFieldGet(this, _annotationMode) === _pdfjsLib.AnnotationMode.ENABLE_FORMS, + l10n: this.l10n, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager + })); + } + if ((_this$xfaLayer2 = this.xfaLayer) !== null && _this$xfaLayer2 !== void 0 && _this$xfaLayer2.div) { + div.append(this.xfaLayer.div); + } + let renderContinueCallback = null; + if (this.renderingQueue) { + renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _ui_utils.RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = _ui_utils.RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + } + const finishPaintTask = async function () { + let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + if (paintTask === _this.paintTask) { + _this.paintTask = null; + } + if (error instanceof _pdfjsLib.RenderingCancelledException) { + _this._renderError = null; + return; + } + _this._renderError = error; + _this.renderingState = _ui_utils.RenderingStates.FINISHED; + if (_this.loadingIconDiv) { + _this.loadingIconDiv.remove(); + delete _this.loadingIconDiv; + } + _this._resetZoomLayer(true); + _classPrivateFieldGet(_this, _useThumbnailCanvas).regularAnnotations = !paintTask.separateAnnots; + _this.eventBus.dispatch("pagerendered", { + source: _this, + pageNumber: _this.id, + cssTransform: false, + timestamp: performance.now(), + error: _this._renderError + }); + if (error) { + throw error; + } + }; + const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); + paintTask.onRenderContinue = renderContinueCallback; + this.paintTask = paintTask; + const resultPromise = paintTask.promise.then(() => { + return finishPaintTask(null).then(() => { + if (textLayer) { + const readableStream = pdfPage.streamTextContent({ + includeMarkedContent: true + }); + textLayer.setTextContentStream(readableStream); + textLayer.render(); + } + if (this.annotationLayer) { + this._renderAnnotationLayer().then(() => { + if (this.annotationEditorLayerFactory) { + this.annotationEditorLayer || (this.annotationEditorLayer = this.annotationEditorLayerFactory.createAnnotationEditorLayerBuilder({ + pageDiv: div, + pdfPage, + l10n: this.l10n, + accessibilityManager: this._accessibilityManager + })); + this._renderAnnotationEditorLayer(); + } + }); + } + }); + }, function (reason) { + return finishPaintTask(reason); + }); + if (this.xfaLayerFactory) { + this.xfaLayer || (this.xfaLayer = this.xfaLayerFactory.createXfaLayerBuilder({ + pageDiv: div, + pdfPage + })); + this._renderXfaLayer(); + } + if (this.structTreeLayerFactory && this.textLayer && this.canvas) { + this._onTextLayerRendered = event => { + if (event.pageNumber !== this.id) { + return; + } + this.eventBus._off("textlayerrendered", this._onTextLayerRendered); + this._onTextLayerRendered = null; + if (!this.canvas) { + return; + } + this.pdfPage.getStructTree().then(tree => { + if (!tree) { + return; + } + if (!this.canvas) { + return; + } + const treeDom = this.structTreeLayer.render(tree); + treeDom.classList.add("structTree"); + this.canvas.append(treeDom); + }); + }; + this.eventBus._on("textlayerrendered", this._onTextLayerRendered); + this.structTreeLayer = this.structTreeLayerFactory.createStructTreeLayerBuilder({ + pdfPage + }); + } + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } + paintOnCanvas(canvasWrapper) { + const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + const result = { + promise: renderCapability.promise, + onRenderContinue(cont) { + cont(); + }, + cancel() { + renderTask.cancel(); + }, + get separateAnnots() { + return renderTask.separateAnnots; + } + }; + const viewport = this.viewport; + const canvas = document.createElement("canvas"); + canvas.setAttribute("role", "presentation"); + canvas.hidden = true; + let isCanvasHidden = true; + const showCanvas = function () { + if (isCanvasHidden) { + canvas.hidden = false; + isCanvasHidden = false; + } + }; + canvasWrapper.append(canvas); + this.canvas = canvas; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = this.outputScale = new _ui_utils.OutputScale(); + if (this.useOnlyCssZoom) { + const actualSizeViewport = viewport.clone({ + scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + outputScale.sx *= actualSizeViewport.width / viewport.width; + outputScale.sy *= actualSizeViewport.height / viewport.height; + } + if (this.maxCanvasPixels > 0) { + const pixelsInViewport = viewport.width * viewport.height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + this.hasRestrictedScaling = true; + } else { + this.hasRestrictedScaling = false; + } + } + const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); + canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; + canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; + this.paintedViewportMap.set(canvas, viewport); + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + const renderContext = { + canvasContext: ctx, + transform, + viewport: this.viewport, + annotationMode: _classPrivateFieldGet(this, _annotationMode), + optionalContentConfigPromise: this._optionalContentConfigPromise, + annotationCanvasMap: this._annotationCanvasMap, + pageColors: this.pageColors + }; + const renderTask = this.pdfPage.render(renderContext); + renderTask.onContinue = function (cont) { + showCanvas(); + if (result.onRenderContinue) { + result.onRenderContinue(cont); + } else { + cont(); + } + }; + renderTask.promise.then(function () { + showCanvas(); + renderCapability.resolve(); + }, function (error) { + showCanvas(); + renderCapability.reject(error); + }); + return result; + } + paintOnSvg(wrapper) { + let cancelled = false; + const ensureNotCancelled = () => { + if (cancelled) { + throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, "svg"); + } + }; + const pdfPage = this.pdfPage; + const actualSizeViewport = this.viewport.clone({ + scale: _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + const promise = pdfPage.getOperatorList({ + annotationMode: _classPrivateFieldGet(this, _annotationMode) + }).then(opList => { + ensureNotCancelled(); + const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); + return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { + ensureNotCancelled(); + this.svg = svg; + this.paintedViewportMap.set(svg, actualSizeViewport); + svg.style.width = wrapper.style.width; + svg.style.height = wrapper.style.height; + this.renderingState = _ui_utils.RenderingStates.FINISHED; + wrapper.append(svg); + }); + }); + return { + promise, + onRenderContinue(cont) { + cont(); + }, + cancel() { + cancelled = true; + }, + get separateAnnots() { + return false; + } + }; + } + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + get thumbnailCanvas() { + const { + initialOptionalContent, + regularAnnotations + } = _classPrivateFieldGet(this, _useThumbnailCanvas); + return initialOptionalContent && regularAnnotations ? this.canvas : null; + } +} +exports.PDFPageView = PDFPageView; + +/***/ }), +/* 34 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextAccessibilityManager = void 0; +var _ui_utils = __webpack_require__(1); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _enabled = /*#__PURE__*/new WeakMap(); +var _textChildren = /*#__PURE__*/new WeakMap(); +var _textNodes = /*#__PURE__*/new WeakMap(); +var _waitingElements = /*#__PURE__*/new WeakMap(); +var _addIdToAriaOwns = /*#__PURE__*/new WeakSet(); +class TextAccessibilityManager { + constructor() { + _classPrivateMethodInitSpec(this, _addIdToAriaOwns); + _classPrivateFieldInitSpec(this, _enabled, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _textChildren, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _textNodes, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _waitingElements, { + writable: true, + value: new Map() + }); + } + setTextMapping(textDivs) { + _classPrivateFieldSet(this, _textChildren, textDivs); + } + enable() { + if (_classPrivateFieldGet(this, _enabled)) { + throw new Error("TextAccessibilityManager is already enabled."); + } + if (!_classPrivateFieldGet(this, _textChildren)) { + throw new Error("Text divs and strings have not been set."); + } + _classPrivateFieldSet(this, _enabled, true); + _classPrivateFieldSet(this, _textChildren, _classPrivateFieldGet(this, _textChildren).slice()); + _classPrivateFieldGet(this, _textChildren).sort(_classStaticPrivateMethodGet(TextAccessibilityManager, TextAccessibilityManager, _compareElementPositions)); + if (_classPrivateFieldGet(this, _textNodes).size > 0) { + const textChildren = _classPrivateFieldGet(this, _textChildren); + for (const [id, nodeIndex] of _classPrivateFieldGet(this, _textNodes)) { + const element = document.getElementById(id); + if (!element) { + _classPrivateFieldGet(this, _textNodes).delete(id); + continue; + } + _classPrivateMethodGet(this, _addIdToAriaOwns, _addIdToAriaOwns2).call(this, id, textChildren[nodeIndex]); + } + } + for (const [element, isRemovable] of _classPrivateFieldGet(this, _waitingElements)) { + this.addPointerInTextLayer(element, isRemovable); + } + _classPrivateFieldGet(this, _waitingElements).clear(); + } + disable() { + if (!_classPrivateFieldGet(this, _enabled)) { + return; + } + _classPrivateFieldGet(this, _waitingElements).clear(); + _classPrivateFieldSet(this, _textChildren, null); + _classPrivateFieldSet(this, _enabled, false); + } + removePointerInTextLayer(element) { + var _owns; + if (!_classPrivateFieldGet(this, _enabled)) { + _classPrivateFieldGet(this, _waitingElements).delete(element); + return; + } + const children = _classPrivateFieldGet(this, _textChildren); + if (!children || children.length === 0) { + return; + } + const { + id + } = element; + const nodeIndex = _classPrivateFieldGet(this, _textNodes).get(id); + if (nodeIndex === undefined) { + return; + } + const node = children[nodeIndex]; + _classPrivateFieldGet(this, _textNodes).delete(id); + let owns = node.getAttribute("aria-owns"); + if ((_owns = owns) !== null && _owns !== void 0 && _owns.includes(id)) { + owns = owns.split(" ").filter(x => x !== id).join(" "); + if (owns) { + node.setAttribute("aria-owns", owns); + } else { + node.removeAttribute("aria-owns"); + node.setAttribute("role", "presentation"); + } + } + } + addPointerInTextLayer(element, isRemovable) { + const { + id + } = element; + if (!id) { + return; + } + if (!_classPrivateFieldGet(this, _enabled)) { + _classPrivateFieldGet(this, _waitingElements).set(element, isRemovable); + return; + } + if (isRemovable) { + this.removePointerInTextLayer(element); + } + const children = _classPrivateFieldGet(this, _textChildren); + if (!children || children.length === 0) { + return; + } + const index = (0, _ui_utils.binarySearchFirstItem)(children, node => _classStaticPrivateMethodGet(TextAccessibilityManager, TextAccessibilityManager, _compareElementPositions).call(TextAccessibilityManager, element, node) < 0); + const nodeIndex = Math.max(0, index - 1); + _classPrivateMethodGet(this, _addIdToAriaOwns, _addIdToAriaOwns2).call(this, id, children[nodeIndex]); + _classPrivateFieldGet(this, _textNodes).set(id, nodeIndex); + } + moveElementInDOM(container, element, contentElement, isRemovable) { + this.addPointerInTextLayer(contentElement, isRemovable); + if (!container.hasChildNodes()) { + container.append(element); + return; + } + const children = Array.from(container.childNodes).filter(node => node !== element); + if (children.length === 0) { + return; + } + const elementToCompare = contentElement || element; + const index = (0, _ui_utils.binarySearchFirstItem)(children, node => _classStaticPrivateMethodGet(TextAccessibilityManager, TextAccessibilityManager, _compareElementPositions).call(TextAccessibilityManager, elementToCompare, node) < 0); + if (index === 0) { + children[0].before(element); + } else { + children[index - 1].after(element); + } + } +} +exports.TextAccessibilityManager = TextAccessibilityManager; +function _compareElementPositions(e1, e2) { + const rect1 = e1.getBoundingClientRect(); + const rect2 = e2.getBoundingClientRect(); + if (rect1.width === 0 && rect1.height === 0) { + return +1; + } + if (rect2.width === 0 && rect2.height === 0) { + return -1; + } + const top1 = rect1.y; + const bot1 = rect1.y + rect1.height; + const mid1 = rect1.y + rect1.height / 2; + const top2 = rect2.y; + const bot2 = rect2.y + rect2.height; + const mid2 = rect2.y + rect2.height / 2; + if (mid1 <= top2 && mid2 >= bot1) { + return -1; + } + if (mid2 <= top1 && mid1 >= bot2) { + return +1; + } + const centerX1 = rect1.x + rect1.width / 2; + const centerX2 = rect2.x + rect2.width / 2; + return centerX1 - centerX2; +} +function _addIdToAriaOwns2(id, node) { + const owns = node.getAttribute("aria-owns"); + if (!(owns !== null && owns !== void 0 && owns.includes(id))) { + node.setAttribute("aria-owns", owns ? `${owns} ${id}` : id); + } + node.removeAttribute("role"); +} + +/***/ }), +/* 35 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StructTreeLayerBuilder = void 0; +const PDF_ROLE_TO_HTML_ROLE = { + Document: null, + DocumentFragment: null, + Part: "group", + Sect: "group", + Div: "group", + Aside: "note", + NonStruct: "none", + P: null, + H: "heading", + Title: null, + FENote: "note", + Sub: "group", + Lbl: null, + Span: null, + Em: null, + Strong: null, + Link: "link", + Annot: "note", + Form: "form", + Ruby: null, + RB: null, + RT: null, + RP: null, + Warichu: null, + WT: null, + WP: null, + L: "list", + LI: "listitem", + LBody: null, + Table: "table", + TR: "row", + TH: "columnheader", + TD: "cell", + THead: "columnheader", + TBody: null, + TFoot: null, + Caption: null, + Figure: "figure", + Formula: null, + Artifact: null +}; +const HEADING_PATTERN = /^H(\d+)$/; +class StructTreeLayerBuilder { + constructor(_ref) { + let { + pdfPage + } = _ref; + this.pdfPage = pdfPage; + } + render(structTree) { + return this._walk(structTree); + } + _setAttributes(structElement, htmlElement) { + if (structElement.alt !== undefined) { + htmlElement.setAttribute("aria-label", structElement.alt); + } + if (structElement.id !== undefined) { + htmlElement.setAttribute("aria-owns", structElement.id); + } + if (structElement.lang !== undefined) { + htmlElement.setAttribute("lang", structElement.lang); + } + } + _walk(node) { + if (!node) { + return null; + } + const element = document.createElement("span"); + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); + if (match) { + element.setAttribute("role", "heading"); + element.setAttribute("aria-level", match[1]); + } else if (PDF_ROLE_TO_HTML_ROLE[role]) { + element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); + } + } + this._setAttributes(node, element); + if (node.children) { + if (node.children.length === 1 && "id" in node.children[0]) { + this._setAttributes(node.children[0], element); + } else { + for (const kid of node.children) { + element.append(this._walk(kid)); + } + } + } + return element; + } +} +exports.StructTreeLayerBuilder = StructTreeLayerBuilder; + +/***/ }), +/* 36 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextHighlighter = void 0; +class TextHighlighter { + constructor(_ref) { + let { + findController, + eventBus, + pageIndex + } = _ref; + this.findController = findController; + this.matches = []; + this.eventBus = eventBus; + this.pageIdx = pageIndex; + this._onUpdateTextLayerMatches = null; + this.textDivs = null; + this.textContentItemsStr = null; + this.enabled = false; + } + setTextMapping(divs, texts) { + this.textDivs = divs; + this.textContentItemsStr = texts; + } + enable() { + if (!this.textDivs || !this.textContentItemsStr) { + throw new Error("Text divs and strings have not been set."); + } + if (this.enabled) { + throw new Error("TextHighlighter is already enabled."); + } + this.enabled = true; + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); + } + }; + this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); + } + this._updateMatches(); + } + disable() { + if (!this.enabled) { + return; + } + this.enabled = false; + if (this._onUpdateTextLayerMatches) { + this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + this._onUpdateTextLayerMatches = null; + } + } + _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + const { + textContentItemsStr + } = this; + let i = 0, + iIndex = 0; + const end = textContentItemsStr.length - 1; + const result = []; + for (let m = 0, mm = matches.length; m < mm; m++) { + let matchIdx = matches[m]; + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex + } + }; + matchIdx += matchesLength[m]; + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } + return result; + } + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + const { + findController, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + const isSelectedPage = pageIdx === findController.selected.pageIdx; + const selectedMatchIdx = findController.selected.matchIdx; + const highlightAll = findController.state.highlightAll; + let prevEnd = null; + const infinity = { + divIdx: -1, + offset: undefined + }; + function beginText(begin, className) { + const divIdx = begin.divIdx; + textDivs[divIdx].textContent = ""; + return appendTextToDiv(divIdx, 0, begin.offset, className); + } + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + let div = textDivs[divIdx]; + if (div.nodeType === Node.TEXT_NODE) { + const span = document.createElement("span"); + div.before(span); + span.append(div); + textDivs[divIdx] = span; + div = span; + } + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + if (className) { + const span = document.createElement("span"); + span.className = `${className} appended`; + span.append(node); + div.append(span); + return className.includes("selected") ? span.offsetLeft : 0; + } + div.append(node); + return 0; + } + let i0 = selectedMatchIdx, + i1 = i0 + 1; + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + let selectedLeft = 0; + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); + } + if (begin.divIdx === end.divIdx) { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); + for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = "highlight middle" + highlightSuffix; + } + beginText(end, "highlight end" + highlightSuffix); + } + prevEnd = end; + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + selectedLeft, + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + } + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + _updateMatches() { + if (!this.enabled) { + return; + } + const { + findController, + matches, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + for (const match of matches) { + const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + for (let n = begin, end = match.end.divIdx; n <= end; n++) { + const div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ""; + } + clearedUntilDivIdx = match.end.divIdx + 1; + } + if (!(findController !== null && findController !== void 0 && findController.highlightMatches)) { + return; + } + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + this._renderMatches(this.matches); + } +} +exports.TextHighlighter = TextHighlighter; + +/***/ }), +/* 37 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(5); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _finishRendering = /*#__PURE__*/new WeakSet(); +var _bindMouse = /*#__PURE__*/new WeakSet(); +class TextLayerBuilder { + constructor(_ref) { + let { + textLayerDiv, + eventBus, + pageIndex, + viewport, + highlighter = null, + accessibilityManager = null + } = _ref; + _classPrivateMethodInitSpec(this, _bindMouse); + _classPrivateMethodInitSpec(this, _finishRendering); + this.textLayerDiv = textLayerDiv; + this.eventBus = eventBus; + this.textContent = null; + this.textContentItemsStr = []; + this.textContentStream = null; + this.renderingDone = false; + this.pageNumber = pageIndex + 1; + this.viewport = viewport; + this.textDivs = []; + this.textLayerRenderTask = null; + this.highlighter = highlighter; + this.accessibilityManager = accessibilityManager; + _classPrivateMethodGet(this, _bindMouse, _bindMouse2).call(this); + } + render() { + var _this$highlighter, _this$accessibilityMa; + let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + if (!(this.textContent || this.textContentStream) || this.renderingDone) { + return; + } + this.cancel(); + this.textDivs.length = 0; + (_this$highlighter = this.highlighter) === null || _this$highlighter === void 0 ? void 0 : _this$highlighter.setTextMapping(this.textDivs, this.textContentItemsStr); + (_this$accessibilityMa = this.accessibilityManager) === null || _this$accessibilityMa === void 0 ? void 0 : _this$accessibilityMa.setTextMapping(this.textDivs); + const textLayerFrag = document.createDocumentFragment(); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContent: this.textContent, + textContentStream: this.textContentStream, + container: textLayerFrag, + viewport: this.viewport, + textDivs: this.textDivs, + textContentItemsStr: this.textContentItemsStr, + timeout + }); + this.textLayerRenderTask.promise.then(() => { + var _this$highlighter2, _this$accessibilityMa2; + this.textLayerDiv.append(textLayerFrag); + _classPrivateMethodGet(this, _finishRendering, _finishRendering2).call(this); + (_this$highlighter2 = this.highlighter) === null || _this$highlighter2 === void 0 ? void 0 : _this$highlighter2.enable(); + (_this$accessibilityMa2 = this.accessibilityManager) === null || _this$accessibilityMa2 === void 0 ? void 0 : _this$accessibilityMa2.enable(); + }, function (reason) {}); + } + cancel() { + var _this$highlighter3, _this$accessibilityMa3; + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + (_this$highlighter3 = this.highlighter) === null || _this$highlighter3 === void 0 ? void 0 : _this$highlighter3.disable(); + (_this$accessibilityMa3 = this.accessibilityManager) === null || _this$accessibilityMa3 === void 0 ? void 0 : _this$accessibilityMa3.disable(); + } + setTextContentStream(readableStream) { + this.cancel(); + this.textContentStream = readableStream; + } + setTextContent(textContent) { + this.cancel(); + this.textContent = textContent; + } +} +exports.TextLayerBuilder = TextLayerBuilder; +function _finishRendering2() { + this.renderingDone = true; + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.textLayerDiv.append(endOfContent); + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.pageNumber, + numTextDivs: this.textDivs.length + }); +} +function _bindMouse2() { + const div = this.textLayerDiv; + div.addEventListener("mousedown", evt => { + const end = div.querySelector(".endOfContent"); + if (!end) { + return; + } + let adjustTop = evt.target !== div; + adjustTop && (adjustTop = getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"); + if (adjustTop) { + const divBounds = div.getBoundingClientRect(); + const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + "%"; + } + end.classList.add("active"); + }); + div.addEventListener("mouseup", () => { + const end = div.querySelector(".endOfContent"); + if (!end) { + return; + } + end.style.top = ""; + end.classList.remove("active"); + }); +} + +/***/ }), +/* 38 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(5); +class XfaLayerBuilder { + constructor(_ref) { + let { + pageDiv, + pdfPage, + annotationStorage = null, + linkService, + xfaHtml = null + } = _ref; + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.annotationStorage = annotationStorage; + this.linkService = linkService; + this.xfaHtml = xfaHtml; + this.div = null; + this._cancelled = false; + } + render(viewport) { + let intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "display"; + if (intent === "print") { + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml: this.xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + const div = document.createElement("div"); + this.pageDiv.append(div); + parameters.div = div; + const result = _pdfjsLib.XfaLayer.render(parameters); + return Promise.resolve(result); + } + return this.pdfPage.getXfa().then(xfaHtml => { + if (this._cancelled || !xfaHtml) { + return { + textDivs: [] + }; + } + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + if (this.div) { + return _pdfjsLib.XfaLayer.update(parameters); + } + this.div = document.createElement("div"); + this.pageDiv.append(this.div); + parameters.div = this.div; + return _pdfjsLib.XfaLayer.render(parameters); + }).catch(error => { + console.error(error); + }); + } + cancel() { + this._cancelled = true; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } +} +exports.XfaLayerBuilder = XfaLayerBuilder; + +/***/ }), +/* 39 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SecondaryToolbar = void 0; +var _ui_utils = __webpack_require__(1); +var _pdf_cursor_tools = __webpack_require__(7); +var _pdf_viewer = __webpack_require__(29); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _updateUIState = /*#__PURE__*/new WeakSet(); +var _bindClickListeners = /*#__PURE__*/new WeakSet(); +var _bindCursorToolsListener = /*#__PURE__*/new WeakSet(); +var _bindScrollModeListener = /*#__PURE__*/new WeakSet(); +var _bindSpreadModeListener = /*#__PURE__*/new WeakSet(); +class SecondaryToolbar { + constructor(options, eventBus, externalServices) { + _classPrivateMethodInitSpec(this, _bindSpreadModeListener); + _classPrivateMethodInitSpec(this, _bindScrollModeListener); + _classPrivateMethodInitSpec(this, _bindCursorToolsListener); + _classPrivateMethodInitSpec(this, _bindClickListeners); + _classPrivateMethodInitSpec(this, _updateUIState); + this.toolbar = options.toolbar; + this.toggleButton = options.toggleButton; + this.buttons = [{ + element: options.presentationModeButton, + eventName: "presentationmode", + close: true + }, { + element: options.printButton, + eventName: "print", + close: true + }, { + element: options.downloadButton, + eventName: "download", + close: true + }, { + element: options.viewBookmarkButton, + eventName: null, + close: true + }, { + element: options.firstPageButton, + eventName: "firstpage", + close: true + }, { + element: options.lastPageButton, + eventName: "lastpage", + close: true + }, { + element: options.pageRotateCwButton, + eventName: "rotatecw", + close: false + }, { + element: options.pageRotateCcwButton, + eventName: "rotateccw", + close: false + }, { + element: options.cursorSelectToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: _pdf_cursor_tools.CursorTool.SELECT + }, + close: true + }, { + element: options.cursorHandToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: _pdf_cursor_tools.CursorTool.HAND + }, + close: true + }, { + element: options.scrollPageButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.PAGE + }, + close: true + }, { + element: options.scrollVerticalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.VERTICAL + }, + close: true + }, { + element: options.scrollHorizontalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.HORIZONTAL + }, + close: true + }, { + element: options.scrollWrappedButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.WRAPPED + }, + close: true + }, { + element: options.spreadNoneButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils.SpreadMode.NONE + }, + close: true + }, { + element: options.spreadOddButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils.SpreadMode.ODD + }, + close: true + }, { + element: options.spreadEvenButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils.SpreadMode.EVEN + }, + close: true + }, { + element: options.documentPropertiesButton, + eventName: "documentproperties", + close: true + }]; + this.buttons.push({ + element: options.openFileButton, + eventName: "openfile", + close: true + }); + this.items = { + firstPage: options.firstPageButton, + lastPage: options.lastPageButton, + pageRotateCw: options.pageRotateCwButton, + pageRotateCcw: options.pageRotateCcwButton + }; + this.eventBus = eventBus; + this.externalServices = externalServices; + this.opened = false; + _classPrivateMethodGet(this, _bindClickListeners, _bindClickListeners2).call(this); + _classPrivateMethodGet(this, _bindCursorToolsListener, _bindCursorToolsListener2).call(this, options); + _classPrivateMethodGet(this, _bindScrollModeListener, _bindScrollModeListener2).call(this, options); + _classPrivateMethodGet(this, _bindSpreadModeListener, _bindSpreadModeListener2).call(this, options); + this.reset(); + } + get isOpen() { + return this.opened; + } + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this); + } + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this); + } + reset() { + this.pageNumber = 0; + this.pagesCount = 0; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this); + this.eventBus.dispatch("secondarytoolbarreset", { + source: this + }); + } + open() { + if (this.opened) { + return; + } + this.opened = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.toolbar.classList.remove("hidden"); + } + close() { + if (!this.opened) { + return; + } + this.opened = false; + this.toolbar.classList.add("hidden"); + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + } + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } +} +exports.SecondaryToolbar = SecondaryToolbar; +function _updateUIState2() { + this.items.firstPage.disabled = this.pageNumber <= 1; + this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; + this.items.pageRotateCw.disabled = this.pagesCount === 0; + this.items.pageRotateCcw.disabled = this.pagesCount === 0; +} +function _bindClickListeners2() { + this.toggleButton.addEventListener("click", this.toggle.bind(this)); + for (const { + element, + eventName, + close, + eventDetails + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + const details = { + source: this + }; + for (const property in eventDetails) { + details[property] = eventDetails[property]; + } + this.eventBus.dispatch(eventName, details); + } + if (close) { + this.close(); + } + this.externalServices.reportTelemetry({ + type: "buttons", + data: { + id: element.id + } + }); + }); + } +} +function _bindCursorToolsListener2(_ref) { + let { + cursorSelectToolButton, + cursorHandToolButton + } = _ref; + this.eventBus._on("cursortoolchanged", function (_ref2) { + let { + tool + } = _ref2; + const isSelect = tool === _pdf_cursor_tools.CursorTool.SELECT, + isHand = tool === _pdf_cursor_tools.CursorTool.HAND; + cursorSelectToolButton.classList.toggle("toggled", isSelect); + cursorHandToolButton.classList.toggle("toggled", isHand); + cursorSelectToolButton.setAttribute("aria-checked", isSelect); + cursorHandToolButton.setAttribute("aria-checked", isHand); + }); +} +function _bindScrollModeListener2(_ref3) { + let { + scrollPageButton, + scrollVerticalButton, + scrollHorizontalButton, + scrollWrappedButton, + spreadNoneButton, + spreadOddButton, + spreadEvenButton + } = _ref3; + const scrollModeChanged = _ref4 => { + let { + mode + } = _ref4; + const isPage = mode === _ui_utils.ScrollMode.PAGE, + isVertical = mode === _ui_utils.ScrollMode.VERTICAL, + isHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL, + isWrapped = mode === _ui_utils.ScrollMode.WRAPPED; + scrollPageButton.classList.toggle("toggled", isPage); + scrollVerticalButton.classList.toggle("toggled", isVertical); + scrollHorizontalButton.classList.toggle("toggled", isHorizontal); + scrollWrappedButton.classList.toggle("toggled", isWrapped); + scrollPageButton.setAttribute("aria-checked", isPage); + scrollVerticalButton.setAttribute("aria-checked", isVertical); + scrollHorizontalButton.setAttribute("aria-checked", isHorizontal); + scrollWrappedButton.setAttribute("aria-checked", isWrapped); + const forceScrollModePage = this.pagesCount > _pdf_viewer.PagesCountLimit.FORCE_SCROLL_MODE_PAGE; + scrollPageButton.disabled = forceScrollModePage; + scrollVerticalButton.disabled = forceScrollModePage; + scrollHorizontalButton.disabled = forceScrollModePage; + scrollWrappedButton.disabled = forceScrollModePage; + spreadNoneButton.disabled = isHorizontal; + spreadOddButton.disabled = isHorizontal; + spreadEvenButton.disabled = isHorizontal; + }; + this.eventBus._on("scrollmodechanged", scrollModeChanged); + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + scrollModeChanged({ + mode: _ui_utils.ScrollMode.VERTICAL + }); + } + }); +} +function _bindSpreadModeListener2(_ref5) { + let { + spreadNoneButton, + spreadOddButton, + spreadEvenButton + } = _ref5; + function spreadModeChanged(_ref6) { + let { + mode + } = _ref6; + const isNone = mode === _ui_utils.SpreadMode.NONE, + isOdd = mode === _ui_utils.SpreadMode.ODD, + isEven = mode === _ui_utils.SpreadMode.EVEN; + spreadNoneButton.classList.toggle("toggled", isNone); + spreadOddButton.classList.toggle("toggled", isOdd); + spreadEvenButton.classList.toggle("toggled", isEven); + spreadNoneButton.setAttribute("aria-checked", isNone); + spreadOddButton.setAttribute("aria-checked", isOdd); + spreadEvenButton.setAttribute("aria-checked", isEven); + } + this.eventBus._on("spreadmodechanged", spreadModeChanged); + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + spreadModeChanged({ + mode: _ui_utils.SpreadMode.NONE + }); + } + }); +} + +/***/ }), +/* 40 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.Toolbar = void 0; +var _ui_utils = __webpack_require__(1); +var _pdfjsLib = __webpack_require__(5); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; +var _wasLocalized = /*#__PURE__*/new WeakMap(); +var _bindListeners = /*#__PURE__*/new WeakSet(); +var _bindEditorToolsListener = /*#__PURE__*/new WeakSet(); +var _updateUIState = /*#__PURE__*/new WeakSet(); +var _adjustScaleWidth = /*#__PURE__*/new WeakSet(); +class Toolbar { + constructor(_options, eventBus, _l10n) { + _classPrivateMethodInitSpec(this, _adjustScaleWidth); + _classPrivateMethodInitSpec(this, _updateUIState); + _classPrivateMethodInitSpec(this, _bindEditorToolsListener); + _classPrivateMethodInitSpec(this, _bindListeners); + _classPrivateFieldInitSpec(this, _wasLocalized, { + writable: true, + value: false + }); + this.toolbar = _options.container; + this.eventBus = eventBus; + this.l10n = _l10n; + this.buttons = [{ + element: _options.previous, + eventName: "previouspage" + }, { + element: _options.next, + eventName: "nextpage" + }, { + element: _options.zoomIn, + eventName: "zoomin" + }, { + element: _options.zoomOut, + eventName: "zoomout" + }, { + element: _options.print, + eventName: "print" + }, { + element: _options.download, + eventName: "download" + }, { + element: _options.editorFreeTextButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = _options.editorFreeTextButton; + return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.FREETEXT; + } + } + }, { + element: _options.editorInkButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = _options.editorInkButton; + return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.INK; + } + } + }]; + this.buttons.push({ + element: _options.openFile, + eventName: "openfile" + }); + this.items = { + numPages: _options.numPages, + pageNumber: _options.pageNumber, + scaleSelect: _options.scaleSelect, + customScaleOption: _options.customScaleOption, + previous: _options.previous, + next: _options.next, + zoomIn: _options.zoomIn, + zoomOut: _options.zoomOut + }; + _classPrivateMethodGet(this, _bindListeners, _bindListeners2).call(this, _options); + this.reset(); + } + setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, false); + } + setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, true); + } + setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, false); + } + reset() { + this.pageNumber = 0; + this.pageLabel = null; + this.hasPageLabels = false; + this.pagesCount = 0; + this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pageScale = _ui_utils.DEFAULT_SCALE; + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, true); + this.updateLoadingIndicatorState(); + this.eventBus.dispatch("toolbarreset", { + source: this + }); + } + updateLoadingIndicatorState() { + let loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + const { + pageNumber + } = this.items; + pageNumber.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); + } +} +exports.Toolbar = Toolbar; +function _bindListeners2(options) { + const { + pageNumber, + scaleSelect + } = this.items; + const self = this; + for (const { + element, + eventName, + eventDetails + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + const details = { + source: this + }; + if (eventDetails) { + for (const property in eventDetails) { + details[property] = eventDetails[property]; + } + } + this.eventBus.dispatch(eventName, details); + } + }); + } + pageNumber.addEventListener("click", function () { + this.select(); + }); + pageNumber.addEventListener("change", function () { + self.eventBus.dispatch("pagenumberchanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("change", function () { + if (this.value === "custom") { + return; + } + self.eventBus.dispatch("scalechanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("click", function (evt) { + const target = evt.target; + if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === "OPTION") { + this.blur(); + } + }); + scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; + this.eventBus._on("localized", () => { + _classPrivateFieldSet(this, _wasLocalized, true); + _classPrivateMethodGet(this, _adjustScaleWidth, _adjustScaleWidth2).call(this); + _classPrivateMethodGet(this, _updateUIState, _updateUIState2).call(this, true); + }); + _classPrivateMethodGet(this, _bindEditorToolsListener, _bindEditorToolsListener2).call(this, options); +} +function _bindEditorToolsListener2(_ref) { + let { + editorFreeTextButton, + editorFreeTextParamsToolbar, + editorInkButton, + editorInkParamsToolbar + } = _ref; + const editorModeChanged = function (evt) { + let disableButtons = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + const editorButtons = [{ + mode: _pdfjsLib.AnnotationEditorType.FREETEXT, + button: editorFreeTextButton, + toolbar: editorFreeTextParamsToolbar + }, { + mode: _pdfjsLib.AnnotationEditorType.INK, + button: editorInkButton, + toolbar: editorInkParamsToolbar + }]; + for (const { + mode, + button, + toolbar + } of editorButtons) { + const checked = mode === evt.mode; + button.classList.toggle("toggled", checked); + button.setAttribute("aria-checked", checked); + button.disabled = disableButtons; + toolbar === null || toolbar === void 0 ? void 0 : toolbar.classList.toggle("hidden", !checked); + } + }; + this.eventBus._on("annotationeditormodechanged", editorModeChanged); + this.eventBus._on("toolbarreset", evt => { + if (evt.source === this) { + editorModeChanged({ + mode: _pdfjsLib.AnnotationEditorType.NONE + }, true); + } + }); +} +function _updateUIState2() { + let resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!_classPrivateFieldGet(this, _wasLocalized)) { + return; + } + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale, + items + } = this; + if (resetNumPages) { + if (this.hasPageLabels) { + items.pageNumber.type = "text"; + } else { + items.pageNumber.type = "number"; + this.l10n.get("of_pages", { + pagesCount + }).then(msg => { + items.numPages.textContent = msg; + }); + } + items.pageNumber.max = pagesCount; + } + if (this.hasPageLabels) { + items.pageNumber.value = this.pageLabel; + this.l10n.get("page_of_pages", { + pageNumber, + pagesCount + }).then(msg => { + items.numPages.textContent = msg; + }); + } else { + items.pageNumber.value = pageNumber; + } + items.previous.disabled = pageNumber <= 1; + items.next.disabled = pageNumber >= pagesCount; + items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; + items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; + this.l10n.get("page_scale_percent", { + scale: Math.round(pageScale * 10000) / 100 + }).then(msg => { + let predefinedValueFound = false; + for (const option of items.scaleSelect.options) { + if (option.value !== pageScaleValue) { + option.selected = false; + continue; + } + option.selected = true; + predefinedValueFound = true; + } + if (!predefinedValueFound) { + items.customScaleOption.textContent = msg; + items.customScaleOption.selected = true; + } + }); +} +async function _adjustScaleWidth2() { + const { + items, + l10n + } = this; + const predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto"), l10n.get("page_scale_actual"), l10n.get("page_scale_fit"), l10n.get("page_scale_width")]); + await _ui_utils.animationStarted; + const style = getComputedStyle(items.scaleSelect); + const scaleSelectWidth = parseFloat(style.getPropertyValue("--scale-select-width")); + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d", { + alpha: false + }); + ctx.font = `${style.fontSize} ${style.fontFamily}`; + let maxWidth = 0; + for (const predefinedValue of await predefinedValuesPromise) { + const { + width + } = ctx.measureText(predefinedValue); + if (width > maxWidth) { + maxWidth = width; + } + } + maxWidth += 0.3 * scaleSelectWidth; + if (maxWidth > scaleSelectWidth) { + _ui_utils.docStyle.setProperty("--scale-select-width", `${maxWidth}px`); + } + canvas.width = 0; + canvas.height = 0; +} + +/***/ }), +/* 41 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ViewHistory = void 0; +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; +class ViewHistory { + constructor(fingerprint) { + let cacheSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VIEW_HISTORY_CACHE_SIZE; + this.fingerprint = fingerprint; + this.cacheSize = cacheSize; + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; + if (!Array.isArray(database.files)) { + database.files = []; + } else { + while (database.files.length >= this.cacheSize) { + database.files.shift(); + } + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } + } + } + if (index === -1) { + index = database.files.push({ + fingerprint: this.fingerprint + }) - 1; + } + this.file = database.files[index]; + this.database = database; + }); + } + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); + } + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); + } + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } + async setMultiple(properties) { + await this._initializedPromise; + for (const name in properties) { + this.file[name] = properties[name]; + } + return this._writeToStorage(); + } + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; + } + return values; + } +} +exports.ViewHistory = ViewHistory; + +/***/ }), +/* 42 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericCom = void 0; +var _app = __webpack_require__(4); +var _preferences = __webpack_require__(43); +var _download_manager = __webpack_require__(44); +var _genericl10n = __webpack_require__(45); +var _generic_scripting = __webpack_require__(47); +; +const GenericCom = {}; +exports.GenericCom = GenericCom; +class GenericPreferences extends _preferences.BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); + } + async _readFromStorage(prefObj) { + return JSON.parse(localStorage.getItem("pdfjs.preferences")); + } +} +class GenericExternalServices extends _app.DefaultExternalServices { + static createDownloadManager(options) { + return new _download_manager.DownloadManager(); + } + static createPreferences() { + return new GenericPreferences(); + } + static createL10n(_ref) { + let { + locale = "en-US" + } = _ref; + return new _genericl10n.GenericL10n(locale); + } + static createScripting(_ref2) { + let { + sandboxBundleSrc + } = _ref2; + return new _generic_scripting.GenericScripting(sandboxBundleSrc); + } +} +_app.PDFViewerApplication.externalServices = GenericExternalServices; + +/***/ }), +/* 43 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BasePreferences = void 0; +var _app_options = __webpack_require__(2); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _defaults = /*#__PURE__*/new WeakMap(); +var _prefs = /*#__PURE__*/new WeakMap(); +var _initializedPromise = /*#__PURE__*/new WeakMap(); +class BasePreferences { + constructor() { + _classPrivateFieldInitSpec(this, _defaults, { + writable: true, + value: Object.freeze({ + "annotationEditorMode": 0, + "annotationMode": 2, + "cursorToolOnLoad": 0, + "defaultZoomValue": "", + "disablePageLabels": false, + "enablePermissions": false, + "enablePrintAutoRotate": true, + "enableScripting": true, + "externalLinkTarget": 0, + "historyUpdateUrl": false, + "ignoreDestinationZoom": false, + "forcePageColors": false, + "pageColorsBackground": "Canvas", + "pageColorsForeground": "CanvasText", + "pdfBugEnabled": false, + "sidebarViewOnLoad": -1, + "scrollModeOnLoad": -1, + "spreadModeOnLoad": -1, + "textLayerMode": 1, + "useOnlyCssZoom": false, + "viewerCssTheme": 0, + "viewOnLoad": 0, + "disableAutoFetch": false, + "disableFontFace": false, + "disableRange": false, + "disableStream": false, + "enableXfa": true, + "renderer": "canvas" + }) + }); + _classPrivateFieldInitSpec(this, _prefs, { + writable: true, + value: Object.create(null) + }); + _classPrivateFieldInitSpec(this, _initializedPromise, { + writable: true, + value: null + }); + if (this.constructor === BasePreferences) { + throw new Error("Cannot initialize BasePreferences."); + } + _classPrivateFieldSet(this, _initializedPromise, this._readFromStorage(_classPrivateFieldGet(this, _defaults)).then(prefs => { + for (const name in _classPrivateFieldGet(this, _defaults)) { + const prefValue = prefs === null || prefs === void 0 ? void 0 : prefs[name]; + if (typeof prefValue === typeof _classPrivateFieldGet(this, _defaults)[name]) { + _classPrivateFieldGet(this, _prefs)[name] = prefValue; + } + } + })); + } + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); + } + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); + } + async reset() { + await _classPrivateFieldGet(this, _initializedPromise); + const prefs = _classPrivateFieldGet(this, _prefs); + _classPrivateFieldSet(this, _prefs, Object.create(null)); + return this._writeToStorage(_classPrivateFieldGet(this, _defaults)).catch(reason => { + _classPrivateFieldSet(this, _prefs, prefs); + throw reason; + }); + } + async set(name, value) { + await _classPrivateFieldGet(this, _initializedPromise); + const defaultValue = _classPrivateFieldGet(this, _defaults)[name], + prefs = _classPrivateFieldGet(this, _prefs); + if (defaultValue === undefined) { + throw new Error(`Set preference: "${name}" is undefined.`); + } else if (value === undefined) { + throw new Error("Set preference: no value is specified."); + } + const valueType = typeof value, + defaultType = typeof defaultValue; + if (valueType !== defaultType) { + if (valueType === "number" && defaultType === "string") { + value = value.toString(); + } else { + throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); + } + } else { + if (valueType === "number" && !Number.isInteger(value)) { + throw new Error(`Set preference: "${value}" must be an integer.`); + } + } + _classPrivateFieldGet(this, _prefs)[name] = value; + return this._writeToStorage(_classPrivateFieldGet(this, _prefs)).catch(reason => { + _classPrivateFieldSet(this, _prefs, prefs); + throw reason; + }); + } + async get(name) { + await _classPrivateFieldGet(this, _initializedPromise); + const defaultValue = _classPrivateFieldGet(this, _defaults)[name]; + if (defaultValue === undefined) { + throw new Error(`Get preference: "${name}" is undefined.`); + } + return _classPrivateFieldGet(this, _prefs)[name] ?? defaultValue; + } + async getAll() { + await _classPrivateFieldGet(this, _initializedPromise); + const obj = Object.create(null); + for (const name in _classPrivateFieldGet(this, _defaults)) { + obj[name] = _classPrivateFieldGet(this, _prefs)[name] ?? _classPrivateFieldGet(this, _defaults)[name]; + } + return obj; + } +} +exports.BasePreferences = BasePreferences; + +/***/ }), +/* 44 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.DownloadManager = void 0; +var _pdfjsLib = __webpack_require__(5); +; +function download(blobUrl, filename) { + const a = document.createElement("a"); + if (!a.click) { + throw new Error('DownloadManager: "a.click()" is not supported.'); + } + a.href = blobUrl; + a.target = "_parent"; + if ("download" in a) { + a.download = filename; + } + (document.body || document.documentElement).append(a); + a.click(); + a.remove(); +} +class DownloadManager { + constructor() { + this._openBlobUrls = new WeakMap(); + } + downloadUrl(url, filename) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { + console.error(`downloadUrl - not a valid URL: ${url}`); + return; + } + download(url + "#pdfjs.action=download", filename); + } + downloadData(data, filename, contentType) { + const blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + download(blobUrl, filename); + } + openOrDownloadData(element, data, filename) { + const isPdfData = (0, _pdfjsLib.isPdfFile)(filename); + const contentType = isPdfData ? "application/pdf" : ""; + if (isPdfData) { + let blobUrl = this._openBlobUrls.get(element); + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + this._openBlobUrls.set(element, blobUrl); + } + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + this._openBlobUrls.delete(element); + } + } + this.downloadData(data, filename, contentType); + return false; + } + download(blob, url, filename) { + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); + } +} +exports.DownloadManager = DownloadManager; + +/***/ }), +/* 45 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericL10n = void 0; +__webpack_require__(46); +var _l10n_utils = __webpack_require__(31); +const webL10n = document.webL10n; +class GenericL10n { + constructor(lang) { + this._lang = lang; + this._ready = new Promise((resolve, reject) => { + webL10n.setLanguage((0, _l10n_utils.fixupLangCode)(lang), () => { + resolve(webL10n); + }); + }); + } + async getLanguage() { + const l10n = await this._ready; + return l10n.getLanguage(); + } + async getDirection() { + const l10n = await this._ready; + return l10n.getDirection(); + } + async get(key) { + let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : (0, _l10n_utils.getL10nFallback)(key, args); + const l10n = await this._ready; + return l10n.get(key, args, fallback); + } + async translate(element) { + const l10n = await this._ready; + return l10n.translate(element); + } +} +exports.GenericL10n = GenericL10n; + +/***/ }), +/* 46 */ +/***/ (() => { + + + +document.webL10n = function (window, document, undefined) { + var gL10nData = {}; + var gTextData = ''; + var gTextProp = 'textContent'; + var gLanguage = ''; + var gMacros = {}; + var gReadyState = 'loading'; + var gAsyncResourceLoading = true; + function getL10nResourceLinks() { + return document.querySelectorAll('link[type="application/l10n"]'); + } + function getL10nDictionary() { + var script = document.querySelector('script[type="application/l10n"]'); + return script ? JSON.parse(script.innerHTML) : null; + } + function getTranslatableChildren(element) { + return element ? element.querySelectorAll('*[data-l10n-id]') : []; + } + function getL10nAttributes(element) { + if (!element) return {}; + var l10nId = element.getAttribute('data-l10n-id'); + var l10nArgs = element.getAttribute('data-l10n-args'); + var args = {}; + if (l10nArgs) { + try { + args = JSON.parse(l10nArgs); + } catch (e) { + console.warn('could not parse arguments for #' + l10nId); + } + } + return { + id: l10nId, + args: args + }; + } + function xhrLoadText(url, onSuccess, onFailure) { + onSuccess = onSuccess || function _onSuccess(data) {}; + onFailure = onFailure || function _onFailure() {}; + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, gAsyncResourceLoading); + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=utf-8'); + } + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + if (xhr.status == 200 || xhr.status === 0) { + onSuccess(xhr.responseText); + } else { + onFailure(); + } + } + }; + xhr.onerror = onFailure; + xhr.ontimeout = onFailure; + try { + xhr.send(null); + } catch (e) { + onFailure(); + } + } + function parseResource(href, lang, successCallback, failureCallback) { + var baseURL = href.replace(/[^\/]*$/, '') || './'; + function evalString(text) { + if (text.lastIndexOf('\\') < 0) return text; + return text.replace(/\\\\/g, '\\').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\b/g, '\b').replace(/\\f/g, '\f').replace(/\\{/g, '{').replace(/\\}/g, '}').replace(/\\"/g, '"').replace(/\\'/g, "'"); + } + function parseProperties(text, parsedPropertiesCallback) { + var dictionary = {}; + var reBlank = /^\s*|\s*$/; + var reComment = /^\s*#|^\s*$/; + var reSection = /^\s*\[(.*)\]\s*$/; + var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; + var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; + function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) { + var entries = rawText.replace(reBlank, '').split(/[\r\n]+/); + var currentLang = '*'; + var genericLang = lang.split('-', 1)[0]; + var skipLang = false; + var match = ''; + function nextEntry() { + while (true) { + if (!entries.length) { + parsedRawLinesCallback(); + return; + } + var line = entries.shift(); + if (reComment.test(line)) continue; + if (extendedSyntax) { + match = reSection.exec(line); + if (match) { + currentLang = match[1].toLowerCase(); + skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang; + continue; + } else if (skipLang) { + continue; + } + match = reImport.exec(line); + if (match) { + loadImport(baseURL + match[1], nextEntry); + return; + } + } + var tmp = line.match(reSplit); + if (tmp && tmp.length == 3) { + dictionary[tmp[1]] = evalString(tmp[2]); + } + } + } + nextEntry(); + } + function loadImport(url, callback) { + xhrLoadText(url, function (content) { + parseRawLines(content, false, callback); + }, function () { + console.warn(url + ' not found.'); + callback(); + }); + } + parseRawLines(text, true, function () { + parsedPropertiesCallback(dictionary); + }); + } + xhrLoadText(href, function (response) { + gTextData += response; + parseProperties(response, function (data) { + for (var key in data) { + var id, + prop, + index = key.lastIndexOf('.'); + if (index > 0) { + id = key.substring(0, index); + prop = key.substring(index + 1); + } else { + id = key; + prop = gTextProp; + } + if (!gL10nData[id]) { + gL10nData[id] = {}; + } + gL10nData[id][prop] = data[key]; + } + if (successCallback) { + successCallback(); + } + }); + }, failureCallback); + } + function loadLocale(lang, callback) { + if (lang) { + lang = lang.toLowerCase(); + } + callback = callback || function _callback() {}; + clear(); + gLanguage = lang; + var langLinks = getL10nResourceLinks(); + var langCount = langLinks.length; + if (langCount === 0) { + var dict = getL10nDictionary(); + if (dict && dict.locales && dict.default_locale) { + console.log('using the embedded JSON directory, early way out'); + gL10nData = dict.locales[lang]; + if (!gL10nData) { + var defaultLocale = dict.default_locale.toLowerCase(); + for (var anyCaseLang in dict.locales) { + anyCaseLang = anyCaseLang.toLowerCase(); + if (anyCaseLang === lang) { + gL10nData = dict.locales[lang]; + break; + } else if (anyCaseLang === defaultLocale) { + gL10nData = dict.locales[defaultLocale]; + } + } + } + callback(); + } else { + console.log('no resource to load, early way out'); + } + gReadyState = 'complete'; + return; + } + var onResourceLoaded = null; + var gResourceCount = 0; + onResourceLoaded = function () { + gResourceCount++; + if (gResourceCount >= langCount) { + callback(); + gReadyState = 'complete'; + } + }; + function L10nResourceLink(link) { + var href = link.href; + this.load = function (lang, callback) { + parseResource(href, lang, callback, function () { + console.warn(href + ' not found.'); + console.warn('"' + lang + '" resource not found'); + gLanguage = ''; + callback(); + }); + }; + } + for (var i = 0; i < langCount; i++) { + var resource = new L10nResourceLink(langLinks[i]); + resource.load(lang, onResourceLoaded); + } + } + function clear() { + gL10nData = {}; + gTextData = ''; + gLanguage = ''; + } + function getPluralRules(lang) { + var locales2rules = { + 'af': 3, + 'ak': 4, + 'am': 4, + 'ar': 1, + 'asa': 3, + 'az': 0, + 'be': 11, + 'bem': 3, + 'bez': 3, + 'bg': 3, + 'bh': 4, + 'bm': 0, + 'bn': 3, + 'bo': 0, + 'br': 20, + 'brx': 3, + 'bs': 11, + 'ca': 3, + 'cgg': 3, + 'chr': 3, + 'cs': 12, + 'cy': 17, + 'da': 3, + 'de': 3, + 'dv': 3, + 'dz': 0, + 'ee': 3, + 'el': 3, + 'en': 3, + 'eo': 3, + 'es': 3, + 'et': 3, + 'eu': 3, + 'fa': 0, + 'ff': 5, + 'fi': 3, + 'fil': 4, + 'fo': 3, + 'fr': 5, + 'fur': 3, + 'fy': 3, + 'ga': 8, + 'gd': 24, + 'gl': 3, + 'gsw': 3, + 'gu': 3, + 'guw': 4, + 'gv': 23, + 'ha': 3, + 'haw': 3, + 'he': 2, + 'hi': 4, + 'hr': 11, + 'hu': 0, + 'id': 0, + 'ig': 0, + 'ii': 0, + 'is': 3, + 'it': 3, + 'iu': 7, + 'ja': 0, + 'jmc': 3, + 'jv': 0, + 'ka': 0, + 'kab': 5, + 'kaj': 3, + 'kcg': 3, + 'kde': 0, + 'kea': 0, + 'kk': 3, + 'kl': 3, + 'km': 0, + 'kn': 0, + 'ko': 0, + 'ksb': 3, + 'ksh': 21, + 'ku': 3, + 'kw': 7, + 'lag': 18, + 'lb': 3, + 'lg': 3, + 'ln': 4, + 'lo': 0, + 'lt': 10, + 'lv': 6, + 'mas': 3, + 'mg': 4, + 'mk': 16, + 'ml': 3, + 'mn': 3, + 'mo': 9, + 'mr': 3, + 'ms': 0, + 'mt': 15, + 'my': 0, + 'nah': 3, + 'naq': 7, + 'nb': 3, + 'nd': 3, + 'ne': 3, + 'nl': 3, + 'nn': 3, + 'no': 3, + 'nr': 3, + 'nso': 4, + 'ny': 3, + 'nyn': 3, + 'om': 3, + 'or': 3, + 'pa': 3, + 'pap': 3, + 'pl': 13, + 'ps': 3, + 'pt': 3, + 'rm': 3, + 'ro': 9, + 'rof': 3, + 'ru': 11, + 'rwk': 3, + 'sah': 0, + 'saq': 3, + 'se': 7, + 'seh': 3, + 'ses': 0, + 'sg': 0, + 'sh': 11, + 'shi': 19, + 'sk': 12, + 'sl': 14, + 'sma': 7, + 'smi': 7, + 'smj': 7, + 'smn': 7, + 'sms': 7, + 'sn': 3, + 'so': 3, + 'sq': 3, + 'sr': 11, + 'ss': 3, + 'ssy': 3, + 'st': 3, + 'sv': 3, + 'sw': 3, + 'syr': 3, + 'ta': 3, + 'te': 3, + 'teo': 3, + 'th': 0, + 'ti': 4, + 'tig': 3, + 'tk': 3, + 'tl': 4, + 'tn': 3, + 'to': 0, + 'tr': 0, + 'ts': 3, + 'tzm': 22, + 'uk': 11, + 'ur': 3, + 've': 3, + 'vi': 0, + 'vun': 3, + 'wa': 4, + 'wae': 3, + 'wo': 0, + 'xh': 3, + 'xog': 3, + 'yo': 0, + 'zh': 0, + 'zu': 3 + }; + function isIn(n, list) { + return list.indexOf(n) !== -1; + } + function isBetween(n, start, end) { + return start <= n && n <= end; + } + var pluralRules = { + '0': function (n) { + return 'other'; + }, + '1': function (n) { + if (isBetween(n % 100, 3, 10)) return 'few'; + if (n === 0) return 'zero'; + if (isBetween(n % 100, 11, 99)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '2': function (n) { + if (n !== 0 && n % 10 === 0) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '3': function (n) { + if (n == 1) return 'one'; + return 'other'; + }, + '4': function (n) { + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '5': function (n) { + if (isBetween(n, 0, 2) && n != 2) return 'one'; + return 'other'; + }, + '6': function (n) { + if (n === 0) return 'zero'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '7': function (n) { + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '8': function (n) { + if (isBetween(n, 3, 6)) return 'few'; + if (isBetween(n, 7, 10)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '9': function (n) { + if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '10': function (n) { + if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; + if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; + return 'other'; + }, + '11': function (n) { + if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; + if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '12': function (n) { + if (isBetween(n, 2, 4)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '13': function (n) { + if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; + if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; + if (n == 1) return 'one'; + return 'other'; + }, + '14': function (n) { + if (isBetween(n % 100, 3, 4)) return 'few'; + if (n % 100 == 2) return 'two'; + if (n % 100 == 1) return 'one'; + return 'other'; + }, + '15': function (n) { + if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; + if (isBetween(n % 100, 11, 19)) return 'many'; + if (n == 1) return 'one'; + return 'other'; + }, + '16': function (n) { + if (n % 10 == 1 && n != 11) return 'one'; + return 'other'; + }, + '17': function (n) { + if (n == 3) return 'few'; + if (n === 0) return 'zero'; + if (n == 6) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '18': function (n) { + if (n === 0) return 'zero'; + if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; + return 'other'; + }, + '19': function (n) { + if (isBetween(n, 2, 10)) return 'few'; + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '20': function (n) { + if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; + if (n % 1000000 === 0 && n !== 0) return 'many'; + if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; + if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; + return 'other'; + }, + '21': function (n) { + if (n === 0) return 'zero'; + if (n == 1) return 'one'; + return 'other'; + }, + '22': function (n) { + if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; + return 'other'; + }, + '23': function (n) { + if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; + return 'other'; + }, + '24': function (n) { + if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; + if (isIn(n, [2, 12])) return 'two'; + if (isIn(n, [1, 11])) return 'one'; + return 'other'; + } + }; + var index = locales2rules[lang.replace(/-.*$/, '')]; + if (!(index in pluralRules)) { + console.warn('plural form unknown for [' + lang + ']'); + return function () { + return 'other'; + }; + } + return pluralRules[index]; + } + gMacros.plural = function (str, param, key, prop) { + var n = parseFloat(param); + if (isNaN(n)) return str; + if (prop != gTextProp) return str; + if (!gMacros._pluralRules) { + gMacros._pluralRules = getPluralRules(gLanguage); + } + var index = '[' + gMacros._pluralRules(n) + ']'; + if (n === 0 && key + '[zero]' in gL10nData) { + str = gL10nData[key + '[zero]'][prop]; + } else if (n == 1 && key + '[one]' in gL10nData) { + str = gL10nData[key + '[one]'][prop]; + } else if (n == 2 && key + '[two]' in gL10nData) { + str = gL10nData[key + '[two]'][prop]; + } else if (key + index in gL10nData) { + str = gL10nData[key + index][prop]; + } else if (key + '[other]' in gL10nData) { + str = gL10nData[key + '[other]'][prop]; + } + return str; + }; + function getL10nData(key, args, fallback) { + var data = gL10nData[key]; + if (!data) { + console.warn('#' + key + ' is undefined.'); + if (!fallback) { + return null; + } + data = fallback; + } + var rv = {}; + for (var prop in data) { + var str = data[prop]; + str = substIndexes(str, args, key, prop); + str = substArguments(str, args, key); + rv[prop] = str; + } + return rv; + } + function substIndexes(str, args, key, prop) { + var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/; + var reMatch = reIndex.exec(str); + if (!reMatch || !reMatch.length) return str; + var macroName = reMatch[1]; + var paramName = reMatch[2]; + var param; + if (args && paramName in args) { + param = args[paramName]; + } else if (paramName in gL10nData) { + param = gL10nData[paramName]; + } + if (macroName in gMacros) { + var macro = gMacros[macroName]; + str = macro(str, param, key, prop); + } + return str; + } + function substArguments(str, args, key) { + var reArgs = /\{\{\s*(.+?)\s*\}\}/g; + return str.replace(reArgs, function (matched_text, arg) { + if (args && arg in args) { + return args[arg]; + } + if (arg in gL10nData) { + return gL10nData[arg]; + } + console.log('argument {{' + arg + '}} for #' + key + ' is undefined.'); + return matched_text; + }); + } + function translateElement(element) { + var l10n = getL10nAttributes(element); + if (!l10n.id) return; + var data = getL10nData(l10n.id, l10n.args); + if (!data) { + console.warn('#' + l10n.id + ' is undefined.'); + return; + } + if (data[gTextProp]) { + if (getChildElementCount(element) === 0) { + element[gTextProp] = data[gTextProp]; + } else { + var children = element.childNodes; + var found = false; + for (var i = 0, l = children.length; i < l; i++) { + if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) { + if (found) { + children[i].nodeValue = ''; + } else { + children[i].nodeValue = data[gTextProp]; + found = true; + } + } + } + if (!found) { + var textNode = document.createTextNode(data[gTextProp]); + element.prepend(textNode); + } + } + delete data[gTextProp]; + } + for (var k in data) { + element[k] = data[k]; + } + } + function getChildElementCount(element) { + if (element.children) { + return element.children.length; + } + if (typeof element.childElementCount !== 'undefined') { + return element.childElementCount; + } + var count = 0; + for (var i = 0; i < element.childNodes.length; i++) { + count += element.nodeType === 1 ? 1 : 0; + } + return count; + } + function translateFragment(element) { + element = element || document.documentElement; + var children = getTranslatableChildren(element); + var elementCount = children.length; + for (var i = 0; i < elementCount; i++) { + translateElement(children[i]); + } + translateElement(element); + } + return { + get: function (key, args, fallbackString) { + var index = key.lastIndexOf('.'); + var prop = gTextProp; + if (index > 0) { + prop = key.substring(index + 1); + key = key.substring(0, index); + } + var fallback; + if (fallbackString) { + fallback = {}; + fallback[prop] = fallbackString; + } + var data = getL10nData(key, args, fallback); + if (data && prop in data) { + return data[prop]; + } + return '{{' + key + '}}'; + }, + getData: function () { + return gL10nData; + }, + getText: function () { + return gTextData; + }, + getLanguage: function () { + return gLanguage; + }, + setLanguage: function (lang, callback) { + loadLocale(lang, function () { + if (callback) callback(); + }); + }, + getDirection: function () { + var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; + var shortCode = gLanguage.split('-', 1)[0]; + return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; + }, + translate: translateFragment, + getReadyState: function () { + return gReadyState; + }, + ready: function (callback) { + if (!callback) { + return; + } else if (gReadyState == 'complete' || gReadyState == 'interactive') { + window.setTimeout(function () { + callback(); + }); + } else if (document.addEventListener) { + document.addEventListener('localized', function once() { + document.removeEventListener('localized', once); + callback(); + }); + } + } + }; +}(window, document); + +/***/ }), +/* 47 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericScripting = void 0; +exports.docPropertiesLookup = docPropertiesLookup; +var _pdfjsLib = __webpack_require__(5); +async function docPropertiesLookup(pdfDocument) { + const url = "", + baseUrl = url.split("#")[0]; + let { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + if (!contentLength) { + const { + length + } = await pdfDocument.getDownloadInfo(); + contentLength = length; + } + return { + ...info, + baseURL: baseUrl, + filesize: contentLength, + filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url), + metadata: metadata === null || metadata === void 0 ? void 0 : metadata.getRaw(), + authors: metadata === null || metadata === void 0 ? void 0 : metadata.get("dc:creator"), + numPages: pdfDocument.numPages, + URL: url + }; +} +class GenericScripting { + constructor(sandboxBundleSrc) { + this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => { + return window.pdfjsSandbox.QuickJSSandbox(); + }); + } + async createSandbox(data) { + const sandbox = await this._ready; + sandbox.create(data); + } + async dispatchEventInSandbox(event) { + const sandbox = await this._ready; + setTimeout(() => sandbox.dispatchEvent(event), 0); + } + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); + } +} +exports.GenericScripting = GenericScripting; + +/***/ }), +/* 48 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFPrintService = PDFPrintService; +var _pdfjsLib = __webpack_require__(5); +var _app = __webpack_require__(4); +var _print_utils = __webpack_require__(49); +let activeService = null; +let dialog = null; +let overlayManager = null; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / _pdfjsLib.PixelsPerInch.PDF; + scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); + scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); + const ctx = scratchCanvas.getContext("2d"); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); + ctx.restore(); + return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function (_ref) { + let [pdfPage, printAnnotationStorage] = _ref; + const renderContext = { + canvasContext: ctx, + transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], + viewport: pdfPage.getViewport({ + scale: 1, + rotation: size.rotation + }), + intent: "print", + annotationMode: _pdfjsLib.AnnotationMode.ENABLE_STORAGE, + optionalContentConfigPromise, + printAnnotationStorage + }; + return pdfPage.render(renderContext).promise; + }); +} +function PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution) { + let optionalContentConfigPromise = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; + let printAnnotationStoragePromise = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null; + let l10n = arguments.length > 6 ? arguments[6] : undefined; + this.pdfDocument = pdfDocument; + this.pagesOverview = pagesOverview; + this.printContainer = printContainer; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); + this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve(); + this.l10n = l10n; + this.currentPage = -1; + this.scratchCanvas = document.createElement("canvas"); +} +PDFPrintService.prototype = { + layout() { + this.throwIfInactive(); + const body = document.querySelector("body"); + body.setAttribute("data-pdfjsprinting", true); + const hasEqualPageSizes = this.pagesOverview.every(function (size) { + return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height; + }, this); + if (!hasEqualPageSizes) { + console.warn("Not all pages have the same size. The printed " + "result may be incorrect!"); + } + this.pageStyleSheet = document.createElement("style"); + const pageSize = this.pagesOverview[0]; + this.pageStyleSheet.textContent = "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}"; + body.append(this.pageStyleSheet); + }, + destroy() { + if (activeService !== this) { + return; + } + this.printContainer.textContent = ""; + const body = document.querySelector("body"); + body.removeAttribute("data-pdfjsprinting"); + if (this.pageStyleSheet) { + this.pageStyleSheet.remove(); + this.pageStyleSheet = null; + } + this.scratchCanvas.width = this.scratchCanvas.height = 0; + this.scratchCanvas = null; + activeService = null; + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + }, + renderPages() { + if (this.pdfDocument.isPureXfa) { + (0, _print_utils.getXfaHtmlForPrinting)(this.printContainer, this.pdfDocument); + return Promise.resolve(); + } + const pageCount = this.pagesOverview.length; + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount, this.l10n); + resolve(); + return; + } + const index = this.currentPage; + renderProgress(index, pageCount, this.l10n); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () { + renderNextPage(resolve, reject); + }, reject); + }; + return new Promise(renderNextPage); + }, + useRenderedPage() { + this.throwIfInactive(); + const img = document.createElement("img"); + const scratchCanvas = this.scratchCanvas; + if ("toBlob" in scratchCanvas) { + scratchCanvas.toBlob(function (blob) { + img.src = URL.createObjectURL(blob); + }); + } else { + img.src = scratchCanvas.toDataURL(); + } + const wrapper = document.createElement("div"); + wrapper.className = "printedPage"; + wrapper.append(img); + this.printContainer.append(wrapper); + return new Promise(function (resolve, reject) { + img.onload = resolve; + img.onerror = reject; + }); + }, + performPrint() { + this.throwIfInactive(); + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { + resolve(); + return; + } + print.call(window); + setTimeout(resolve, 20); + }, 0); + }); + }, + get active() { + return this === activeService; + }, + throwIfInactive() { + if (!this.active) { + throw new Error("This print request was cancelled or completed."); + } + } +}; +const print = window.print; +window.print = function () { + if (activeService) { + console.warn("Ignored window.print() because of a pending print job."); + return; + } + ensureOverlay().then(function () { + if (activeService) { + overlayManager.open(dialog); + } + }); + try { + dispatchEvent("beforeprint"); + } finally { + if (!activeService) { + console.error("Expected print service to be initialized."); + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + return; + } + const activeServiceOnEntry = activeService; + activeService.renderPages().then(function () { + return activeServiceOnEntry.performPrint(); + }).catch(function () {}).then(function () { + if (activeServiceOnEntry.active) { + abort(); + } + }); + } +}; +function dispatchEvent(eventType) { + const event = document.createEvent("CustomEvent"); + event.initCustomEvent(eventType, false, false, "custom"); + window.dispatchEvent(event); +} +function abort() { + if (activeService) { + activeService.destroy(); + dispatchEvent("afterprint"); + } +} +function renderProgress(index, total, l10n) { + dialog || (dialog = document.getElementById("printServiceDialog")); + const progress = Math.round(100 * index / total); + const progressBar = dialog.querySelector("progress"); + const progressPerc = dialog.querySelector(".relative-progress"); + progressBar.value = progress; + l10n.get("print_progress_percent", { + progress + }).then(msg => { + progressPerc.textContent = msg; + }); +} +window.addEventListener("keydown", function (event) { + if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { + window.print(); + event.preventDefault(); + event.stopImmediatePropagation(); + } +}, true); +if ("onbeforeprint" in window) { + const stopPropagationIfNeeded = function (event) { + if (event.detail !== "custom") { + event.stopImmediatePropagation(); + } + }; + window.addEventListener("beforeprint", stopPropagationIfNeeded); + window.addEventListener("afterprint", stopPropagationIfNeeded); +} +let overlayPromise; +function ensureOverlay() { + if (!overlayPromise) { + overlayManager = _app.PDFViewerApplication.overlayManager; + if (!overlayManager) { + throw new Error("The overlay manager has not yet been initialized."); + } + dialog || (dialog = document.getElementById("printServiceDialog")); + overlayPromise = overlayManager.register(dialog, true); + document.getElementById("printCancel").onclick = abort; + dialog.addEventListener("close", abort); + } + return overlayPromise; +} +_app.PDFPrintServiceFactory.instance = { + supportsPrinting: true, + createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise, l10n) { + if (activeService) { + throw new Error("The print service is created and active."); + } + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise, l10n); + return activeService; + } +}; + +/***/ }), +/* 49 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getXfaHtmlForPrinting = getXfaHtmlForPrinting; +var _pdfjsLib = __webpack_require__(5); +var _pdf_link_service = __webpack_require__(3); +var _xfa_layer_builder = __webpack_require__(38); +function getXfaHtmlForPrinting(printContainer, pdfDocument) { + const xfaHtml = pdfDocument.allXfaHtml; + const linkService = new _pdf_link_service.SimpleLinkService(); + const scale = Math.round(_pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100; + for (const xfaPage of xfaHtml.children) { + const page = document.createElement("div"); + page.className = "xfaPrintedPage"; + printContainer.append(page); + const builder = new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv: page, + pdfPage: null, + annotationStorage: pdfDocument.annotationStorage, + linkService, + xfaHtml: xfaPage + }); + const viewport = (0, _pdfjsLib.getXfaPageViewport)(xfaPage, { + scale + }); + builder.render(viewport, "print"); + } +} + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "PDFViewerApplication", ({ + enumerable: true, + get: function () { + return _app.PDFViewerApplication; + } +})); +exports.PDFViewerApplicationConstants = void 0; +Object.defineProperty(exports, "PDFViewerApplicationOptions", ({ + enumerable: true, + get: function () { + return _app_options.AppOptions; + } +})); +var _ui_utils = __webpack_require__(1); +var _app_options = __webpack_require__(2); +var _pdf_link_service = __webpack_require__(3); +var _app = __webpack_require__(4); +var _document$blockUnbloc, _document; +const pdfjsVersion = '3.0.279'; +const pdfjsBuild = 'd0823066c'; +const AppConstants = { + LinkTarget: _pdf_link_service.LinkTarget, + RenderingStates: _ui_utils.RenderingStates, + ScrollMode: _ui_utils.ScrollMode, + SpreadMode: _ui_utils.SpreadMode +}; +exports.PDFViewerApplicationConstants = AppConstants; +window.PDFViewerApplication = _app.PDFViewerApplication; +window.PDFViewerApplicationConstants = AppConstants; +window.PDFViewerApplicationOptions = _app_options.AppOptions; +; +; +{ + __webpack_require__(42); +} +; +{ + __webpack_require__(48); +} +function getViewerConfiguration() { + return { + appContainer: document.body, + mainContainer: document.getElementById("viewerContainer"), + viewerContainer: document.getElementById("viewer"), + toolbar: { + container: document.getElementById("toolbarViewer"), + numPages: document.getElementById("numPages"), + pageNumber: document.getElementById("pageNumber"), + scaleSelect: document.getElementById("scaleSelect"), + customScaleOption: document.getElementById("customScaleOption"), + previous: document.getElementById("previous"), + next: document.getElementById("next"), + zoomIn: document.getElementById("zoomIn"), + zoomOut: document.getElementById("zoomOut"), + viewFind: document.getElementById("viewFind"), + openFile: document.getElementById("openFile"), + print: document.getElementById("print"), + editorFreeTextButton: document.getElementById("editorFreeText"), + editorFreeTextParamsToolbar: document.getElementById("editorFreeTextParamsToolbar"), + editorInkButton: document.getElementById("editorInk"), + editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"), + download: document.getElementById("download") + }, + secondaryToolbar: { + toolbar: document.getElementById("secondaryToolbar"), + toggleButton: document.getElementById("secondaryToolbarToggle"), + presentationModeButton: document.getElementById("presentationMode"), + openFileButton: document.getElementById("secondaryOpenFile"), + printButton: document.getElementById("secondaryPrint"), + downloadButton: document.getElementById("secondaryDownload"), + viewBookmarkButton: document.getElementById("viewBookmark"), + firstPageButton: document.getElementById("firstPage"), + lastPageButton: document.getElementById("lastPage"), + pageRotateCwButton: document.getElementById("pageRotateCw"), + pageRotateCcwButton: document.getElementById("pageRotateCcw"), + cursorSelectToolButton: document.getElementById("cursorSelectTool"), + cursorHandToolButton: document.getElementById("cursorHandTool"), + scrollPageButton: document.getElementById("scrollPage"), + scrollVerticalButton: document.getElementById("scrollVertical"), + scrollHorizontalButton: document.getElementById("scrollHorizontal"), + scrollWrappedButton: document.getElementById("scrollWrapped"), + spreadNoneButton: document.getElementById("spreadNone"), + spreadOddButton: document.getElementById("spreadOdd"), + spreadEvenButton: document.getElementById("spreadEven"), + documentPropertiesButton: document.getElementById("documentProperties") + }, + sidebar: { + outerContainer: document.getElementById("outerContainer"), + sidebarContainer: document.getElementById("sidebarContainer"), + toggleButton: document.getElementById("sidebarToggle"), + thumbnailButton: document.getElementById("viewThumbnail"), + outlineButton: document.getElementById("viewOutline"), + attachmentsButton: document.getElementById("viewAttachments"), + layersButton: document.getElementById("viewLayers"), + thumbnailView: document.getElementById("thumbnailView"), + outlineView: document.getElementById("outlineView"), + attachmentsView: document.getElementById("attachmentsView"), + layersView: document.getElementById("layersView"), + outlineOptionsContainer: document.getElementById("outlineOptionsContainer"), + currentOutlineItemButton: document.getElementById("currentOutlineItem") + }, + sidebarResizer: { + outerContainer: document.getElementById("outerContainer"), + resizer: document.getElementById("sidebarResizer") + }, + findBar: { + bar: document.getElementById("findbar"), + toggleButton: document.getElementById("viewFind"), + findField: document.getElementById("findInput"), + highlightAllCheckbox: document.getElementById("findHighlightAll"), + caseSensitiveCheckbox: document.getElementById("findMatchCase"), + matchDiacriticsCheckbox: document.getElementById("findMatchDiacritics"), + entireWordCheckbox: document.getElementById("findEntireWord"), + findMsg: document.getElementById("findMsg"), + findResultsCount: document.getElementById("findResultsCount"), + findPreviousButton: document.getElementById("findPrevious"), + findNextButton: document.getElementById("findNext") + }, + passwordOverlay: { + dialog: document.getElementById("passwordDialog"), + label: document.getElementById("passwordText"), + input: document.getElementById("password"), + submitButton: document.getElementById("passwordSubmit"), + cancelButton: document.getElementById("passwordCancel") + }, + documentProperties: { + dialog: document.getElementById("documentPropertiesDialog"), + closeButton: document.getElementById("documentPropertiesClose"), + fields: { + fileName: document.getElementById("fileNameField"), + fileSize: document.getElementById("fileSizeField"), + title: document.getElementById("titleField"), + author: document.getElementById("authorField"), + subject: document.getElementById("subjectField"), + keywords: document.getElementById("keywordsField"), + creationDate: document.getElementById("creationDateField"), + modificationDate: document.getElementById("modificationDateField"), + creator: document.getElementById("creatorField"), + producer: document.getElementById("producerField"), + version: document.getElementById("versionField"), + pageCount: document.getElementById("pageCountField"), + pageSize: document.getElementById("pageSizeField"), + linearized: document.getElementById("linearizedField") + } + }, + annotationEditorParams: { + editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"), + editorFreeTextColor: document.getElementById("editorFreeTextColor"), + editorInkColor: document.getElementById("editorInkColor"), + editorInkThickness: document.getElementById("editorInkThickness"), + editorInkOpacity: document.getElementById("editorInkOpacity") + }, + printContainer: document.getElementById("printContainer"), + openFileInput: document.getElementById("fileInput"), + debuggerScriptPath: "./debugger.js" + }; +} +function webViewerLoad() { + const config = getViewerConfiguration(); + const event = document.createEvent("CustomEvent"); + event.initCustomEvent("webviewerloaded", true, true, { + source: window + }); + try { + parent.document.dispatchEvent(event); + } catch (ex) { + console.error(`webviewerloaded: ${ex}`); + document.dispatchEvent(event); + } + _app.PDFViewerApplication.run(config); +} +(_document$blockUnbloc = (_document = document).blockUnblockOnload) === null || _document$blockUnbloc === void 0 ? void 0 : _document$blockUnbloc.call(_document, true); +if (document.readyState === "interactive" || document.readyState === "complete") { + webViewerLoad(); +} else { + document.addEventListener("DOMContentLoaded", webViewerLoad, true); +} +})(); + +/******/ })() +; +//# sourceMappingURL=viewer.js.map \ No newline at end of file diff --git a/web/viewer.js.map b/web/viewer.js.map new file mode 100644 index 0000000..9561c82 --- /dev/null +++ b/web/viewer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"viewer.js","mappings":"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","sources":["webpack://pdf.js/web/ui_utils.js","webpack://pdf.js/web/app_options.js","webpack://pdf.js/web/pdf_link_service.js","webpack://pdf.js/web/app.js","webpack://pdf.js/web/pdfjs.js","webpack://pdf.js/web/event_utils.js","webpack://pdf.js/web/pdf_cursor_tools.js","webpack://pdf.js/web/grab_to_pan.js","webpack://pdf.js/web/annotation_editor_params.js","webpack://pdf.js/web/overlay_manager.js","webpack://pdf.js/node_modules/dialog-polyfill/dist/dialog-polyfill.js","webpack://pdf.js/web/password_prompt.js","webpack://pdf.js/web/pdf_attachment_viewer.js","webpack://pdf.js/web/base_tree_viewer.js","webpack://pdf.js/web/pdf_document_properties.js","webpack://pdf.js/web/pdf_find_bar.js","webpack://pdf.js/web/pdf_find_controller.js","webpack://pdf.js/web/pdf_find_utils.js","webpack://pdf.js/web/pdf_history.js","webpack://pdf.js/web/pdf_layer_viewer.js","webpack://pdf.js/web/pdf_outline_viewer.js","webpack://pdf.js/web/pdf_presentation_mode.js","webpack://pdf.js/web/pdf_rendering_queue.js","webpack://pdf.js/web/pdf_scripting_manager.js","webpack://pdf.js/web/pdf_sidebar.js","webpack://pdf.js/web/pdf_sidebar_resizer.js","webpack://pdf.js/web/pdf_thumbnail_viewer.js","webpack://pdf.js/web/pdf_thumbnail_view.js","webpack://pdf.js/web/pdf_viewer.js","webpack://pdf.js/web/annotation_editor_layer_builder.js","webpack://pdf.js/web/l10n_utils.js","webpack://pdf.js/web/annotation_layer_builder.js","webpack://pdf.js/web/pdf_page_view.js","webpack://pdf.js/web/text_accessibility.js","webpack://pdf.js/web/struct_tree_layer_builder.js","webpack://pdf.js/web/text_highlighter.js","webpack://pdf.js/web/text_layer_builder.js","webpack://pdf.js/web/xfa_layer_builder.js","webpack://pdf.js/web/secondary_toolbar.js","webpack://pdf.js/web/toolbar.js","webpack://pdf.js/web/view_history.js","webpack://pdf.js/web/genericcom.js","webpack://pdf.js/web/preferences.js","webpack://pdf.js/web/download_manager.js","webpack://pdf.js/web/genericl10n.js","webpack://pdf.js/external/webL10n/l10n.js","webpack://pdf.js/web/generic_scripting.js","webpack://pdf.js/web/pdf_print_service.js","webpack://pdf.js/web/print_utils.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/web/viewer.js"],"sourcesContent":["/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DEFAULT_SCALE_VALUE = \"auto\";\nconst DEFAULT_SCALE = 1.0;\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst MIN_SCALE = 0.1;\nconst MAX_SCALE = 10.0;\nconst UNKNOWN_SCALE = 0;\nconst MAX_AUTO_SCALE = 1.25;\nconst SCROLLBAR_PADDING = 40;\nconst VERTICAL_PADDING = 5;\n\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3,\n};\n\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3,\n};\n\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1, // Default value.\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4,\n};\n\nconst RendererType =\n typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"!PRODUCTION || GENERIC\")\n ? {\n CANVAS: \"canvas\",\n SVG: \"svg\",\n }\n : null;\n\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n};\n\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0, // Default value.\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3,\n};\n\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0, // Default value.\n ODD: 1,\n EVEN: 2,\n};\n\n// Used by `PDFViewerApplication`, and by the API unit-tests.\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\n\n/**\n * Scale factors for the canvas, necessary with HiDPI displays.\n */\nclass OutputScale {\n constructor() {\n const pixelRatio = window.devicePixelRatio || 1;\n\n /**\n * @type {number} Horizontal scale.\n */\n this.sx = pixelRatio;\n\n /**\n * @type {number} Vertical scale.\n */\n this.sy = pixelRatio;\n }\n\n /**\n * @type {boolean} Returns `true` when scaling is required, `false` otherwise.\n */\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n}\n\n/**\n * Scrolls specified element into view of its parent.\n * @param {Object} element - The element to be visible.\n * @param {Object} spot - An object with optional top and left properties,\n * specifying the offset from the top left edge.\n * @param {boolean} [scrollMatches] - When scrolling search results into view,\n * ignore elements that either: Contains marked content identifiers,\n * or have the CSS-rule `overflow: hidden;` set. The default value is `false`.\n */\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n // Assuming offsetParent is available (it's not available when viewer is in\n // hidden iframe or object). We have to scroll: if the offsetParent is not set\n // producing the error. See also animationStarted.\n let parent = element.offsetParent;\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n while (\n (parent.clientHeight === parent.scrollHeight &&\n parent.clientWidth === parent.scrollWidth) ||\n (scrollMatches &&\n (parent.classList.contains(\"markedContent\") ||\n getComputedStyle(parent).overflow === \"hidden\"))\n ) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n\n parent = parent.offsetParent;\n if (!parent) {\n return; // no need to scroll\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\n\n/**\n * Helper function to start monitoring the scroll event and converting them into\n * PDF.js friendly one: with scroll debounce and scroll direction.\n */\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n // schedule an invocation of scroll for next animation frame.\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll,\n };\n\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\n/**\n * Helper function to parse query string (e.g. ?param1=value¶m2=...).\n * @param {string}\n * @returns {Map}\n */\nfunction parseQueryString(query) {\n const params = new Map();\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n return params;\n}\n\nconst NullCharactersRegExp = /\\x00/g;\nconst InvisibleCharactersRegExp = /[\\x01-\\x1F]/g;\n\n/**\n * @param {string} str\n * @param {boolean} [replaceInvisible]\n */\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (typeof str !== \"string\") {\n console.error(`The argument must be a string.`);\n return str;\n }\n if (replaceInvisible) {\n str = str.replace(InvisibleCharactersRegExp, \" \");\n }\n return str.replace(NullCharactersRegExp, \"\");\n}\n\n/**\n * Use binary search to find the index of the first item in a given array which\n * passes a given condition. The items are expected to be sorted in the sense\n * that if the condition is true for one item in the array, then it is also true\n * for all following items.\n *\n * @returns {number} Index of the first array element to pass the test,\n * or |items.length| if no such element exists.\n */\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = (minIndex + maxIndex) >> 1;\n const currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex; /* === maxIndex */\n}\n\n/**\n * Approximates float number as a fraction using Farey sequence (max order\n * of 8).\n * @param {number} x - Positive float number.\n * @returns {Array} Estimated fraction: the first array item is a numerator,\n * the second one is a denominator.\n */\nfunction approximateFraction(x) {\n // Fast paths for int numbers or their inversions.\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n const xinv = 1 / x;\n const limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n // a/b and c/d are neighbours in Farey sequence.\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n // Limiting search to order 8.\n while (true) {\n // Generating next term in sequence (order of q).\n const p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n let result;\n // Select closest of the neighbours to x.\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\n/**\n * @typedef {Object} GetPageSizeInchesParameters\n * @property {number[]} view\n * @property {number} userUnit\n * @property {number} rotate\n */\n\n/**\n * @typedef {Object} PageSize\n * @property {number} width - In inches.\n * @property {number} height - In inches.\n */\n\n/**\n * Gets the size of the specified page, converted from PDF units to inches.\n * @param {GetPageSizeInchesParameters} params\n * @returns {PageSize}\n */\nfunction getPageSizeInches({ view, userUnit, rotate }) {\n const [x1, y1, x2, y2] = view;\n // We need to take the page rotation into account as well.\n const changeOrientation = rotate % 180 !== 0;\n\n const width = ((x2 - x1) / 72) * userUnit;\n const height = ((y2 - y1) / 72) * userUnit;\n\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height,\n };\n}\n\n/**\n * Helper function for getVisibleElements.\n *\n * @param {number} index - initial guess at the first visible element\n * @param {Array} views - array of pages, into which `index` is an index\n * @param {number} top - the top of the scroll pane\n * @returns {number} less than or equal to `index` that is definitely at or\n * before the first visible element in `views`, but not by too much. (Usually,\n * this will be the first element in the first partially visible row in\n * `views`, although sometimes it goes back one row further.)\n */\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n // binarySearchFirstItem's assumption is that the input is ordered, with only\n // one index where the conditions flips from false to true: [false ...,\n // true...]. With vertical scrolling and spreads, it is possible to have\n // [false ..., true, false, true ...]. With wrapped scrolling we can have a\n // similar sequence, with many more mixed true and false in the middle.\n //\n // So there is no guarantee that the binary search yields the index of the\n // first visible element. It could have been any of the other visible elements\n // that were preceded by a hidden element.\n\n // Of course, if either this element or the previous (hidden) element is also\n // the first element, there's nothing to worry about.\n if (index < 2) {\n return index;\n }\n\n // That aside, the possible cases are represented below.\n //\n // **** = fully hidden\n // A*B* = mix of partially visible and/or hidden pages\n // CDEF = fully visible\n //\n // (1) Binary search could have returned A, in which case we can stop.\n // (2) Binary search could also have returned B, in which case we need to\n // check the whole row.\n // (3) Binary search could also have returned C, in which case we need to\n // check the whole previous row.\n //\n // There's one other possibility:\n //\n // **** = fully hidden\n // ABCD = mix of fully and/or partially visible pages\n //\n // (4) Binary search could only have returned A.\n\n // Initially assume that we need to find the beginning of the current row\n // (case 1, 2, or 4), which means finding a page that is above the current\n // page's top. If the found page is partially visible, we're definitely not in\n // case 3, and this assumption is correct.\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n // The found page is fully visible, so we're actually either in case 3 or 4,\n // and unfortunately we can't tell the difference between them without\n // scanning the entire previous row, so we just conservatively assume that\n // we do need to backtrack to that row. In both cases, the previous page is\n // in the previous row, so use its top instead.\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n // Now we backtrack to the first page that still has its bottom below\n // `pageTop`, which is the top of a page in the first visible row (unless\n // we're in case 4, in which case it's the row before that).\n // `index` is found by binary search, so the page at `index - 1` is\n // invisible and we can start looking for potentially visible pages from\n // `index - 2`. (However, if this loop terminates on its first iteration,\n // which is the case when pages are stacked vertically, `index` should remain\n // unchanged, so we use a distinct loop variable.)\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n // We have reached the previous row, so stop now.\n // This loop is expected to terminate relatively quickly because the\n // number of pages per row is expected to be small.\n break;\n }\n index = i;\n }\n return index;\n}\n\n/**\n * @typedef {Object} GetVisibleElementsParameters\n * @property {HTMLElement} scrollEl - A container that can possibly scroll.\n * @property {Array} views - Objects with a `div` property that contains an\n * HTMLElement, which should all be descendants of `scrollEl` satisfying the\n * relevant layout assumptions.\n * @property {boolean} sortByVisibility - If `true`, the returned elements are\n * sorted in descending order of the percent of their padding box that is\n * visible. The default value is `false`.\n * @property {boolean} horizontal - If `true`, the elements are assumed to be\n * laid out horizontally instead of vertically. The default value is `false`.\n * @property {boolean} rtl - If `true`, the `scrollEl` container is assumed to\n * be in right-to-left mode. The default value is `false`.\n */\n\n/**\n * Generic helper to find out what elements are visible within a scroll pane.\n *\n * Well, pretty generic. There are some assumptions placed on the elements\n * referenced by `views`:\n * - If `horizontal`, no left of any earlier element is to the right of the\n * left of any later element.\n * - Otherwise, `views` can be split into contiguous rows where, within a row,\n * no top of any element is below the bottom of any other element, and\n * between rows, no bottom of any element in an earlier row is below the\n * top of any element in a later row.\n *\n * (Here, top, left, etc. all refer to the padding edge of the element in\n * question. For pages, that ends up being equivalent to the bounding box of the\n * rendering canvas. Earlier and later refer to index in `views`, not page\n * layout.)\n *\n * @param {GetVisibleElementsParameters}\n * @returns {Object} `{ first, last, views: [{ id, x, y, view, percent }] }`\n */\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false,\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n // Throughout this \"generic\" function, comments will assume we're working with\n // PDF document pages, which is the most important and complex case. In this\n // case, the visible elements we're actually interested is the page canvas,\n // which is contained in a wrapper which adds no padding/border/margin, which\n // is itself contained in `view.div` which adds no padding (but does add a\n // border). So, as specified in this function's doc comment, this function\n // does all of its work on the padding edge of the provided views, starting at\n // offsetLeft/Top (which includes margin) and adding clientLeft/Top (which is\n // the border). Adding clientWidth/Height gets us the bottom-right corner of\n // the padding edge.\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom =\n element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(\n views,\n horizontal\n ? isElementNextAfterViewHorizontally\n : isElementBottomAfterViewTop\n );\n\n // Please note the return value of the `binarySearchFirstItem` function when\n // no valid element is found (hence the `firstVisibleElementInd` check below).\n if (\n firstVisibleElementInd > 0 &&\n firstVisibleElementInd < numViews &&\n !horizontal\n ) {\n // In wrapped scrolling (or vertical scrolling with spreads), with some page\n // sizes, isElementBottomAfterViewTop doesn't satisfy the binary search\n // condition: there can be pages with bottoms above the view top between\n // pages with bottoms below. This function detects and corrects that error;\n // see it for more comments.\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(\n firstVisibleElementInd,\n views,\n top\n );\n }\n\n // lastEdge acts as a cutoff for us to stop looping, because we know all\n // subsequent pages will be hidden.\n //\n // When using wrapped scrolling or vertical scrolling with spreads, we can't\n // simply stop the first time we reach a page below the bottom of the view;\n // the tops of subsequent pages on the same row could still be visible. In\n // horizontal scrolling, we don't have that issue, so we can stop as soon as\n // we pass `right`, without needing the code below that handles the -1 case.\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n // As commented above, this is only needed in non-horizontal cases.\n // Setting lastEdge to the bottom of the first page that is partially\n // visible ensures that the next page fully below lastEdge is on the\n // next row, which has to be fully hidden along with all subsequent rows.\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (\n viewBottom <= top ||\n currentHeight >= bottom ||\n viewRight <= left ||\n currentWidth >= right\n ) {\n continue;\n }\n\n const hiddenHeight =\n Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth =\n Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = (fractionHeight * fractionWidth * 100) | 0;\n\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent,\n widthPercent: (fractionWidth * 100) | 0,\n });\n ids.add(view.id);\n }\n\n const first = visible[0],\n last = visible.at(-1);\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id; // ensure stability\n });\n }\n return { first, last, views: visible, ids };\n}\n\n/**\n * Event handler to suppress context menu.\n */\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n // All that is left-up oriented has to change the sign.\n delta = -delta;\n }\n return delta;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = normalizeWheelEventDirection(evt);\n\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n // Converts delta to per-page units\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(ScrollMode).includes(mode) &&\n mode !== ScrollMode.UNKNOWN\n );\n}\n\nfunction isValidSpreadMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(SpreadMode).includes(mode) &&\n mode !== SpreadMode.UNKNOWN\n );\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\n/**\n * Promise that is resolved when DOM window becomes visible.\n */\nconst animationStarted = new Promise(function (resolve) {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof window === \"undefined\"\n ) {\n // Prevent \"ReferenceError: window is not defined\" errors when running the\n // unit-tests in Node.js environments.\n setTimeout(resolve, 20);\n return;\n }\n window.requestAnimationFrame(resolve);\n});\n\nconst docStyle =\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof document === \"undefined\"\n ? null\n : document.documentElement.style;\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n #classList = null;\n\n #percent = 0;\n\n #visible = true;\n\n constructor(id) {\n const bar = document.getElementById(id);\n this.#classList = bar.classList;\n }\n\n get percent() {\n return this.#percent;\n }\n\n set percent(val) {\n this.#percent = clamp(val, 0, 100);\n\n if (isNaN(val)) {\n this.#classList.add(\"indeterminate\");\n return;\n }\n this.#classList.remove(\"indeterminate\");\n\n docStyle.setProperty(\"--progressBar-percent\", `${this.#percent}%`);\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n docStyle.setProperty(\"--progressBar-end-offset\", `${scrollbarWidth}px`);\n }\n }\n\n hide() {\n if (!this.#visible) {\n return;\n }\n this.#visible = false;\n this.#classList.add(\"hidden\");\n }\n\n show() {\n if (this.#visible) {\n return;\n }\n this.#visible = true;\n this.#classList.remove(\"hidden\");\n }\n}\n\n/**\n * Get the active or focused element in current DOM.\n *\n * Recursively search for the truly active or focused element in case there are\n * shadow DOMs.\n *\n * @returns {Element} the truly active or focused element.\n */\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n\n return curActiveOrFocused;\n}\n\n/**\n * Converts API PageLayout values to the format used by `BaseViewer`.\n * NOTE: This is supported to the extent that the viewer implements the\n * necessary Scroll/Spread modes (since SinglePage, TwoPageLeft,\n * and TwoPageRight all suggests using non-continuous scrolling).\n * @param {string} mode - The API PageLayout value.\n * @returns {Object}\n */\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n case \"OneColumn\":\n break;\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n return { scrollMode, spreadMode };\n}\n\n/**\n * Converts API PageMode values to the format used by `PDFSidebar`.\n * NOTE: There's also a \"FullScreen\" parameter which is not possible to support,\n * since the Fullscreen API used in browsers requires that entering\n * fullscreen mode only occurs as a result of a user-initiated event.\n * @param {string} mode - The API PageMode value.\n * @returns {number} A value from {SidebarView}.\n */\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n return SidebarView.NONE; // Default value.\n}\n\nexport {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n approximateFraction,\n AutoPrintRegExp,\n backtrackBeforeAllVisibleElements, // only exported for testing\n binarySearchFirstItem,\n DEFAULT_SCALE,\n DEFAULT_SCALE_DELTA,\n DEFAULT_SCALE_VALUE,\n docStyle,\n getActiveOrFocusedElement,\n getPageSizeInches,\n getVisibleElements,\n isPortraitOrientation,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n MAX_AUTO_SCALE,\n MAX_SCALE,\n MIN_SCALE,\n noContextMenuHandler,\n normalizeWheelEventDelta,\n normalizeWheelEventDirection,\n OutputScale,\n parseQueryString,\n PresentationModeState,\n ProgressBar,\n removeNullCharacters,\n RendererType,\n RenderingStates,\n roundToDivide,\n SCROLLBAR_PADDING,\n scrollIntoView,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n UNKNOWN_SCALE,\n VERTICAL_PADDING,\n watchScroll,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst compatibilityParams = Object.create(null);\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof navigator === \"undefined\"\n ) {\n globalThis.navigator = Object.create(null);\n }\n const userAgent = navigator.userAgent || \"\";\n const platform = navigator.platform || \"\";\n const maxTouchPoints = navigator.maxTouchPoints || 1;\n\n const isAndroid = /Android/.test(userAgent);\n const isIOS =\n /\\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) ||\n (platform === \"MacIntel\" && maxTouchPoints > 1);\n\n // Limit canvas size to 5 mega-pixels on mobile.\n // Support: Android, iOS\n (function checkCanvasSizeLimitation() {\n if (isIOS || isAndroid) {\n compatibilityParams.maxCanvasPixels = 5242880;\n }\n })();\n}\n\nconst OptionKind = {\n VIEWER: 0x02,\n API: 0x04,\n WORKER: 0x08,\n PREFERENCE: 0x80,\n};\n\n/**\n * NOTE: These options are used to generate the `default_preferences.json` file,\n * see `OptionKind.PREFERENCE`, hence the values below must use only\n * primitive types and cannot rely on any imported types.\n */\nconst defaultOptions = {\n annotationEditorMode: {\n /** @type {number} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n annotationMode: {\n /** @type {number} */\n value: 2,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n cursorToolOnLoad: {\n /** @type {number} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n defaultZoomValue: {\n /** @type {string} */\n value: \"\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n disableHistory: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER,\n },\n disablePageLabels: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enablePermissions: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enablePrintAutoRotate: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n enableScripting: {\n /** @type {boolean} */\n value: typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\"),\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n externalLinkRel: {\n /** @type {string} */\n value: \"noopener noreferrer nofollow\",\n kind: OptionKind.VIEWER,\n },\n externalLinkTarget: {\n /** @type {number} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n historyUpdateUrl: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n ignoreDestinationZoom: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n imageResourcesPath: {\n /** @type {string} */\n value: \"./images/\",\n kind: OptionKind.VIEWER,\n },\n maxCanvasPixels: {\n /** @type {number} */\n value: 16777216,\n kind: OptionKind.VIEWER,\n },\n forcePageColors: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n pageColorsBackground: {\n /** @type {string} */\n value: \"Canvas\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n pageColorsForeground: {\n /** @type {string} */\n value: \"CanvasText\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n pdfBugEnabled: {\n /** @type {boolean} */\n value: typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\"),\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n printResolution: {\n /** @type {number} */\n value: 150,\n kind: OptionKind.VIEWER,\n },\n sidebarViewOnLoad: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n scrollModeOnLoad: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n spreadModeOnLoad: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n textLayerMode: {\n /** @type {number} */\n value: 1,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n useOnlyCssZoom: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n viewerCssTheme: {\n /** @type {number} */\n value: typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\") ? 2 : 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n viewOnLoad: {\n /** @type {boolean} */\n value: 0,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n },\n\n cMapPacked: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API,\n },\n cMapUrl: {\n /** @type {string} */\n value:\n typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")\n ? \"../external/bcmaps/\"\n : \"../web/cmaps/\",\n kind: OptionKind.API,\n },\n disableAutoFetch: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n disableFontFace: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n disableRange: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n disableStream: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n docBaseUrl: {\n /** @type {string} */\n value: \"\",\n kind: OptionKind.API,\n },\n enableXfa: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API + OptionKind.PREFERENCE,\n },\n fontExtraProperties: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API,\n },\n isEvalSupported: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API,\n },\n isOffscreenCanvasSupported: {\n /** @type {boolean} */\n value: true,\n kind: OptionKind.API,\n },\n maxImageSize: {\n /** @type {number} */\n value: -1,\n kind: OptionKind.API,\n },\n pdfBug: {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.API,\n },\n standardFontDataUrl: {\n /** @type {string} */\n value:\n typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")\n ? \"../external/standard_fonts/\"\n : \"../web/standard_fonts/\",\n kind: OptionKind.API,\n },\n verbosity: {\n /** @type {number} */\n value: 1,\n kind: OptionKind.API,\n },\n\n workerPort: {\n /** @type {Object} */\n value: null,\n kind: OptionKind.WORKER,\n },\n workerSrc: {\n /** @type {string} */\n value:\n typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")\n ? \"../src/worker_loader.js\"\n : \"../build/pdf.worker.js\",\n kind: OptionKind.WORKER,\n },\n};\nif (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || GENERIC\")\n) {\n defaultOptions.defaultUrl = {\n /** @type {string} */\n value: \"compressed.tracemonkey-pldi-09.pdf\",\n kind: OptionKind.VIEWER,\n };\n defaultOptions.disablePreferences = {\n /** @type {boolean} */\n value: typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\"),\n kind: OptionKind.VIEWER,\n };\n defaultOptions.locale = {\n /** @type {string} */\n value: navigator.language || \"en-US\",\n kind: OptionKind.VIEWER,\n };\n defaultOptions.renderer = {\n /** @type {string} */\n value: \"canvas\",\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n };\n defaultOptions.sandboxBundleSrc = {\n /** @type {string} */\n value:\n typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")\n ? \"../build/dev-sandbox/pdf.sandbox.js\"\n : \"../build/pdf.sandbox.js\",\n kind: OptionKind.VIEWER,\n };\n} else if (PDFJSDev.test(\"CHROME\")) {\n defaultOptions.defaultUrl = {\n /** @type {string} */\n value: \"\",\n kind: OptionKind.VIEWER,\n };\n defaultOptions.disableTelemetry = {\n /** @type {boolean} */\n value: false,\n kind: OptionKind.VIEWER + OptionKind.PREFERENCE,\n };\n defaultOptions.sandboxBundleSrc = {\n /** @type {string} */\n value: \"../build/pdf.sandbox.js\",\n kind: OptionKind.VIEWER,\n };\n}\n\nconst userOptions = Object.create(null);\n\nclass AppOptions {\n constructor() {\n throw new Error(\"Cannot initialize AppOptions.\");\n }\n\n static get(name) {\n const userOption = userOptions[name];\n if (userOption !== undefined) {\n return userOption;\n }\n const defaultOption = defaultOptions[name];\n if (defaultOption !== undefined) {\n return compatibilityParams[name] ?? defaultOption.value;\n }\n return undefined;\n }\n\n static getAll(kind = null) {\n const options = Object.create(null);\n for (const name in defaultOptions) {\n const defaultOption = defaultOptions[name];\n if (kind) {\n if ((kind & defaultOption.kind) === 0) {\n continue;\n }\n if (kind === OptionKind.PREFERENCE) {\n const value = defaultOption.value,\n valueType = typeof value;\n\n if (\n valueType === \"boolean\" ||\n valueType === \"string\" ||\n (valueType === \"number\" && Number.isInteger(value))\n ) {\n options[name] = value;\n continue;\n }\n throw new Error(`Invalid type for preference: ${name}`);\n }\n }\n const userOption = userOptions[name];\n options[name] =\n userOption !== undefined\n ? userOption\n : compatibilityParams[name] ?? defaultOption.value;\n }\n return options;\n }\n\n static set(name, value) {\n userOptions[name] = value;\n }\n\n static setAll(options) {\n for (const name in options) {\n userOptions[name] = options[name];\n }\n }\n\n static remove(name) {\n delete userOptions[name];\n }\n\n /**\n * @ignore\n */\n static _hasUserOptions() {\n return Object.keys(userOptions).length > 0;\n }\n}\n\nexport { AppOptions, compatibilityParams, OptionKind };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { parseQueryString, removeNullCharacters } from \"./ui_utils.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\n/**\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} [target] - The link target. The default value is\n * `LinkTarget.NONE`.\n * @property {string} [rel] - The link relationship. The default value is\n * `DEFAULT_LINK_REL`.\n * @property {boolean} [enabled] - Whether the link should be enabled. The\n * default value is true.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLAnchorElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, enabled = true } = {}) {\n if (!url || typeof url !== \"string\") {\n throw new Error('A valid \"url\" parameter must provided.');\n }\n\n const urlNullRemoved = removeNullCharacters(url);\n if (enabled) {\n link.href = link.title = urlNullRemoved;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${urlNullRemoved}`;\n link.onclick = () => {\n return false;\n };\n }\n\n let targetStr = \"\"; // LinkTarget.NONE\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n}\n\n/**\n * @typedef {Object} PDFLinkServiceOptions\n * @property {EventBus} eventBus - The application event bus.\n * @property {number} [externalLinkTarget] - Specifies the `target` attribute\n * for external links. Must use one of the values from {LinkTarget}.\n * Defaults to using no target.\n * @property {string} [externalLinkRel] - Specifies the `rel` attribute for\n * external links. Defaults to stripping the referrer.\n * @property {boolean} [ignoreDestinationZoom] - Ignores the zoom argument,\n * thus preserving the current zoom level in the viewer, when navigating\n * to internal destinations. The default value is `false`.\n */\n\n/**\n * Performs navigation functions inside PDF, such as opening specified page,\n * or destination.\n * @implements {IPDFLinkService}\n */\nclass PDFLinkService {\n #pagesRefCache = new Map();\n\n /**\n * @param {PDFLinkServiceOptions} options\n */\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false,\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this.#pagesRefCache.clear();\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n /**\n * @type {number}\n */\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n /**\n * @type {number}\n */\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n\n /**\n * @param {number} value\n */\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n\n /**\n * @type {number}\n */\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n\n /**\n * @param {number} value\n */\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n\n #goToDestinationHelper(rawDest, namedDest = null, explicitDest) {\n // Dest array looks like that: \n const destRef = explicitDest[0];\n let pageNumber;\n\n if (typeof destRef === \"object\" && destRef !== null) {\n pageNumber = this._cachedPageNumber(destRef);\n\n if (!pageNumber) {\n // Fetch the page reference if it's not yet available. This could\n // only occur during loading, before all pages have been resolved.\n this.pdfDocument\n .getPageIndex(destRef)\n .then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n this.#goToDestinationHelper(rawDest, namedDest, explicitDest);\n })\n .catch(() => {\n console.error(\n `PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` +\n `a valid page reference, for dest=\"${rawDest}\".`\n );\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(\n `PDFLinkService.#goToDestinationHelper: \"${destRef}\" is not ` +\n `a valid destination reference, for dest=\"${rawDest}\".`\n );\n return;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(\n `PDFLinkService.#goToDestinationHelper: \"${pageNumber}\" is not ` +\n `a valid page number, for dest=\"${rawDest}\".`\n );\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new destination into\n // view, to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({ namedDest, explicitDest, pageNumber });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom,\n });\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {string|Array} dest - The named, or explicit, PDF destination.\n */\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n let namedDest, explicitDest;\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n if (!Array.isArray(explicitDest)) {\n console.error(\n `PDFLinkService.goToDestination: \"${explicitDest}\" is not ` +\n `a valid destination array, for dest=\"${dest}\".`\n );\n return;\n }\n this.#goToDestinationHelper(dest, namedDest, explicitDest);\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {number|string} val - The page number, or page label.\n */\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n const pageNumber =\n (typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val)) ||\n val | 0;\n if (\n !(\n Number.isInteger(pageNumber) &&\n pageNumber > 0 &&\n pageNumber <= this.pagesCount\n )\n ) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new page into view,\n // to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n\n this.pdfViewer.scrollPageIntoView({ pageNumber });\n }\n\n /**\n * Wrapper around the `addLinkAttributes` helper function.\n * @param {HTMLAnchorElement} link\n * @param {string} url\n * @param {boolean} [newWindow]\n */\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel: this.externalLinkRel,\n enabled: this.externalLinkEnabled,\n });\n }\n\n /**\n * @param {string|Array} dest - The PDF destination object.\n * @returns {string} The hyperlink to the PDF object.\n */\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n return this.getAnchorUrl(\"\");\n }\n\n /**\n * Prefix the full url on anchor links to make sure that links are resolved\n * relative to the current URL instead of the one defined in .\n * @param {string} anchor - The anchor hash, including the #.\n * @returns {string} The hyperlink to the PDF object.\n */\n getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n\n /**\n * @param {string} hash\n */\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n let pageNumber, dest;\n if (hash.includes(\"=\")) {\n const params = parseQueryString(hash);\n if (params.has(\"search\")) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params.get(\"search\").replace(/\"/g, \"\"),\n phraseSearch: params.get(\"phrase\") === \"true\",\n });\n }\n // borrowing syntax from \"Parameters for Opening PDF Files\"\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n if (params.has(\"zoom\")) {\n // Build the destination array.\n const zoomArgs = params.get(\"zoom\").split(\",\"); // scale,left,top\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n // If the zoomArg is a number, it has to get divided by 100. If it's\n // a string, it should stay as it is.\n dest = [\n null,\n { name: \"XYZ\" },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n zoomArgs.length > 2 ? zoomArgs[2] | 0 : null,\n zoomArgNumber ? zoomArgNumber / 100 : zoomArg,\n ];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, { name: zoomArg }];\n } else if (\n zoomArg === \"FitH\" ||\n zoomArg === \"FitBH\" ||\n zoomArg === \"FitV\" ||\n zoomArg === \"FitBV\"\n ) {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n ];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error(\n 'PDFLinkService.setHash: Not enough parameters for \"FitR\".'\n );\n } else {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs[1] | 0,\n zoomArgs[2] | 0,\n zoomArgs[3] | 0,\n zoomArgs[4] | 0,\n ];\n }\n } else {\n console.error(\n `PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`\n );\n }\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true,\n });\n } else if (pageNumber) {\n this.page = pageNumber; // simple page\n }\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\"),\n });\n }\n // Ensure that this parameter is *always* handled last, in order to\n // guarantee that it won't be overridden (e.g. by the \"page\" parameter).\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n } else {\n // Named (or explicit) destination.\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n // Avoid incorrectly rejecting a valid named destination, such as\n // e.g. \"4.3\" or \"true\", because `JSON.parse` converted its type.\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (\n typeof dest === \"string\" ||\n PDFLinkService.#isValidExplicitDestination(dest)\n ) {\n this.goToDestination(dest);\n return;\n }\n console.error(\n `PDFLinkService.setHash: \"${unescape(\n hash\n )}\" is not a valid destination.`\n );\n }\n }\n\n /**\n * @param {string} action\n */\n executeNamedAction(action) {\n // See PDF reference, table 8.45 - Named action\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break; // No action according to spec\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action,\n });\n }\n\n /**\n * @param {Object} action\n */\n async executeSetOCGState(action) {\n const pdfDocument = this.pdfDocument;\n const optionalContentConfig = await this.pdfViewer\n .optionalContentConfigPromise;\n\n if (pdfDocument !== this.pdfDocument) {\n return; // The document was closed while the optional content resolved.\n }\n let operator;\n\n for (const elem of action.state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n switch (operator) {\n case \"ON\":\n optionalContentConfig.setVisibility(elem, true);\n break;\n case \"OFF\":\n optionalContentConfig.setVisibility(elem, false);\n break;\n case \"Toggle\":\n const group = optionalContentConfig.getGroup(elem);\n if (group) {\n optionalContentConfig.setVisibility(elem, !group.visible);\n }\n break;\n }\n }\n\n this.pdfViewer.optionalContentConfigPromise = Promise.resolve(\n optionalContentConfig\n );\n }\n\n /**\n * @param {number} pageNum - page number.\n * @param {Object} pageRef - reference to the page.\n */\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n const refStr =\n pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this.#pagesRefCache.set(refStr, pageNum);\n }\n\n /**\n * @ignore\n */\n _cachedPageNumber(pageRef) {\n if (!pageRef) {\n return null;\n }\n const refStr =\n pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this.#pagesRefCache.get(refStr) || null;\n }\n\n /**\n * @param {number} pageNumber\n */\n isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n\n /**\n * @param {number} pageNumber\n */\n isPageCached(pageNumber) {\n return this.pdfViewer.isPageCached(pageNumber);\n }\n\n static #isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n const destLength = dest.length;\n if (destLength < 2) {\n return false;\n }\n const page = dest[0];\n if (\n !(\n typeof page === \"object\" &&\n Number.isInteger(page.num) &&\n Number.isInteger(page.gen)\n ) &&\n !(Number.isInteger(page) && page >= 0)\n ) {\n return false;\n }\n const zoom = dest[1];\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n break;\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n if (!(typeof param === \"number\" || (allowNull && param === null))) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @implements {IPDFLinkService}\n */\nclass SimpleLinkService {\n constructor() {\n this.externalLinkEnabled = true;\n }\n\n /**\n * @type {number}\n */\n get pagesCount() {\n return 0;\n }\n\n /**\n * @type {number}\n */\n get page() {\n return 0;\n }\n\n /**\n * @param {number} value\n */\n set page(value) {}\n\n /**\n * @type {number}\n */\n get rotation() {\n return 0;\n }\n\n /**\n * @param {number} value\n */\n set rotation(value) {}\n\n /**\n * @param {string|Array} dest - The named, or explicit, PDF destination.\n */\n async goToDestination(dest) {}\n\n /**\n * @param {number|string} val - The page number, or page label.\n */\n goToPage(val) {}\n\n /**\n * @param {HTMLAnchorElement} link\n * @param {string} url\n * @param {boolean} [newWindow]\n */\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, { url, enabled: this.externalLinkEnabled });\n }\n\n /**\n * @param dest - The PDF destination object.\n * @returns {string} The hyperlink to the PDF object.\n */\n getDestinationHash(dest) {\n return \"#\";\n }\n\n /**\n * @param hash - The PDF parameters/hash.\n * @returns {string} The hyperlink to the PDF object.\n */\n getAnchorUrl(hash) {\n return \"#\";\n }\n\n /**\n * @param {string} hash\n */\n setHash(hash) {}\n\n /**\n * @param {string} action\n */\n executeNamedAction(action) {}\n\n /**\n * @param {Object} action\n */\n executeSetOCGState(action) {}\n\n /**\n * @param {number} pageNum - page number.\n * @param {Object} pageRef - reference to the page.\n */\n cachePageRef(pageNum, pageRef) {}\n\n /**\n * @param {number} pageNumber\n */\n isPageVisible(pageNumber) {\n return true;\n }\n\n /**\n * @param {number} pageNumber\n */\n isPageCached(pageNumber) {\n return true;\n }\n}\n\nexport { LinkTarget, PDFLinkService, SimpleLinkService };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n AutoPrintRegExp,\n DEFAULT_SCALE_VALUE,\n getActiveOrFocusedElement,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n normalizeWheelEventDirection,\n parseQueryString,\n ProgressBar,\n RendererType,\n RenderingStates,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n} from \"./ui_utils.js\";\nimport {\n AnnotationEditorType,\n build,\n createPromiseCapability,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n GlobalWorkerOptions,\n InvalidPDFException,\n isPdfFile,\n loadScript,\n MissingPDFException,\n OPS,\n PDFWorker,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n version,\n} from \"pdfjs-lib\";\nimport { AppOptions, OptionKind } from \"./app_options.js\";\nimport { AutomationEventBus, EventBus } from \"./event_utils.js\";\nimport { CursorTool, PDFCursorTools } from \"./pdf_cursor_tools.js\";\nimport { LinkTarget, PDFLinkService } from \"./pdf_link_service.js\";\nimport { AnnotationEditorParams } from \"./annotation_editor_params.js\";\nimport { OverlayManager } from \"./overlay_manager.js\";\nimport { PasswordPrompt } from \"./password_prompt.js\";\nimport { PDFAttachmentViewer } from \"./pdf_attachment_viewer.js\";\nimport { PDFDocumentProperties } from \"./pdf_document_properties.js\";\nimport { PDFFindBar } from \"./pdf_find_bar.js\";\nimport { PDFFindController } from \"./pdf_find_controller.js\";\nimport { PDFHistory } from \"./pdf_history.js\";\nimport { PDFLayerViewer } from \"./pdf_layer_viewer.js\";\nimport { PDFOutlineViewer } from \"./pdf_outline_viewer.js\";\nimport { PDFPresentationMode } from \"./pdf_presentation_mode.js\";\nimport { PDFRenderingQueue } from \"./pdf_rendering_queue.js\";\nimport { PDFScriptingManager } from \"./pdf_scripting_manager.js\";\nimport { PDFSidebar } from \"./pdf_sidebar.js\";\nimport { PDFSidebarResizer } from \"./pdf_sidebar_resizer.js\";\nimport { PDFThumbnailViewer } from \"./pdf_thumbnail_viewer.js\";\nimport { PDFViewer } from \"./pdf_viewer.js\";\nimport { SecondaryToolbar } from \"./secondary_toolbar.js\";\nimport { Toolbar } from \"./toolbar.js\";\nimport { ViewHistory } from \"./view_history.js\";\n\nconst DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; // ms\nconst FORCE_PAGES_LOADED_TIMEOUT = 10000; // ms\nconst WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; // ms\n\nconst ViewOnLoad = {\n UNKNOWN: -1,\n PREVIOUS: 0, // Default value.\n INITIAL: 1,\n};\n\nconst ViewerCssTheme = {\n AUTOMATIC: 0, // Default value.\n LIGHT: 1,\n DARK: 2,\n};\n\n// Keep these in sync with mozilla-central's Histograms.json.\nconst KNOWN_VERSIONS = [\n \"1.0\",\n \"1.1\",\n \"1.2\",\n \"1.3\",\n \"1.4\",\n \"1.5\",\n \"1.6\",\n \"1.7\",\n \"1.8\",\n \"1.9\",\n \"2.0\",\n \"2.1\",\n \"2.2\",\n \"2.3\",\n];\n// Keep these in sync with mozilla-central's Histograms.json.\nconst KNOWN_GENERATORS = [\n \"acrobat distiller\",\n \"acrobat pdfwriter\",\n \"adobe livecycle\",\n \"adobe pdf library\",\n \"adobe photoshop\",\n \"ghostscript\",\n \"tcpdf\",\n \"cairo\",\n \"dvipdfm\",\n \"dvips\",\n \"pdftex\",\n \"pdfkit\",\n \"itext\",\n \"prince\",\n \"quarkxpress\",\n \"mac os x\",\n \"microsoft\",\n \"openoffice\",\n \"oracle\",\n \"luradocument\",\n \"pdf-xchange\",\n \"antenna house\",\n \"aspose.cells\",\n \"fpdf\",\n];\n\nclass DefaultExternalServices {\n constructor() {\n throw new Error(\"Cannot initialize DefaultExternalServices.\");\n }\n\n static updateFindControlState(data) {}\n\n static updateFindMatchesCount(data) {}\n\n static initPassiveLoading(callbacks) {}\n\n static reportTelemetry(data) {}\n\n static createDownloadManager(options) {\n throw new Error(\"Not implemented: createDownloadManager\");\n }\n\n static createPreferences() {\n throw new Error(\"Not implemented: createPreferences\");\n }\n\n static createL10n(options) {\n throw new Error(\"Not implemented: createL10n\");\n }\n\n static createScripting(options) {\n throw new Error(\"Not implemented: createScripting\");\n }\n\n static get supportsIntegratedFind() {\n return shadow(this, \"supportsIntegratedFind\", false);\n }\n\n static get supportsDocumentFonts() {\n return shadow(this, \"supportsDocumentFonts\", true);\n }\n\n static get supportedMouseWheelZoomModifierKeys() {\n return shadow(this, \"supportedMouseWheelZoomModifierKeys\", {\n ctrlKey: true,\n metaKey: true,\n });\n }\n\n static get isInAutomation() {\n return shadow(this, \"isInAutomation\", false);\n }\n\n static updateEditorStates(data) {\n throw new Error(\"Not implemented: updateEditorStates\");\n }\n}\n\nconst PDFViewerApplication = {\n initialBookmark: document.location.hash.substring(1),\n _initializedCapability: createPromiseCapability(),\n appConfig: null,\n pdfDocument: null,\n pdfLoadingTask: null,\n printService: null,\n /** @type {PDFViewer} */\n pdfViewer: null,\n /** @type {PDFThumbnailViewer} */\n pdfThumbnailViewer: null,\n /** @type {PDFRenderingQueue} */\n pdfRenderingQueue: null,\n /** @type {PDFPresentationMode} */\n pdfPresentationMode: null,\n /** @type {PDFDocumentProperties} */\n pdfDocumentProperties: null,\n /** @type {PDFLinkService} */\n pdfLinkService: null,\n /** @type {PDFHistory} */\n pdfHistory: null,\n /** @type {PDFSidebar} */\n pdfSidebar: null,\n /** @type {PDFSidebarResizer} */\n pdfSidebarResizer: null,\n /** @type {PDFOutlineViewer} */\n pdfOutlineViewer: null,\n /** @type {PDFAttachmentViewer} */\n pdfAttachmentViewer: null,\n /** @type {PDFLayerViewer} */\n pdfLayerViewer: null,\n /** @type {PDFCursorTools} */\n pdfCursorTools: null,\n /** @type {PDFScriptingManager} */\n pdfScriptingManager: null,\n /** @type {ViewHistory} */\n store: null,\n /** @type {DownloadManager} */\n downloadManager: null,\n /** @type {OverlayManager} */\n overlayManager: null,\n /** @type {Preferences} */\n preferences: null,\n /** @type {Toolbar} */\n toolbar: null,\n /** @type {SecondaryToolbar} */\n secondaryToolbar: null,\n /** @type {EventBus} */\n eventBus: null,\n /** @type {IL10n} */\n l10n: null,\n /** @type {AnnotationEditorParams} */\n annotationEditorParams: null,\n isInitialViewSet: false,\n downloadComplete: false,\n isViewerEmbedded: window.parent !== window,\n url: \"\",\n baseUrl: \"\",\n _downloadUrl: \"\",\n externalServices: DefaultExternalServices,\n _boundEvents: Object.create(null),\n documentInfo: null,\n metadata: null,\n _contentDispositionFilename: null,\n _contentLength: null,\n _saveInProgress: false,\n _docStats: null,\n _wheelUnusedTicks: 0,\n _PDFBug: null,\n _hasAnnotationEditors: false,\n _title: document.title,\n _printAnnotationStoragePromise: null,\n\n // Called once when the document is loaded.\n async initialize(appConfig) {\n this.preferences = this.externalServices.createPreferences();\n this.appConfig = appConfig;\n\n await this._readPreferences();\n await this._parseHashParameters();\n this._forceCssTheme();\n await this._initializeL10n();\n\n if (\n this.isViewerEmbedded &&\n AppOptions.get(\"externalLinkTarget\") === LinkTarget.NONE\n ) {\n // Prevent external links from \"replacing\" the viewer,\n // when it's embedded in e.g. an