@turinhub/atomix-common-ui 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/__vite-browser-external-BcPniuRQ.cjs +2 -0
- package/dist/__vite-browser-external-BcPniuRQ.cjs.map +1 -0
- package/dist/__vite-browser-external-DYxpcVy9.js +5 -0
- package/dist/__vite-browser-external-DYxpcVy9.js.map +1 -0
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/components/SimplePDFReader.d.ts +79 -0
- package/dist/components/SimplePDFReader.d.ts.map +1 -0
- package/dist/components/TablePagination.d.ts +2 -1
- package/dist/components/TablePagination.d.ts.map +1 -1
- package/dist/components/ThemeSwitcher.d.ts +40 -0
- package/dist/components/ThemeSwitcher.d.ts.map +1 -0
- package/dist/components/ThemeSwitcherContent.d.ts +30 -0
- package/dist/components/ThemeSwitcherContent.d.ts.map +1 -0
- package/dist/index-BYKrRClM.js +15033 -0
- package/dist/index-BYKrRClM.js.map +1 -0
- package/dist/index-Bn7sjSSa.cjs +13 -0
- package/dist/index-Bn7sjSSa.cjs.map +1 -0
- package/dist/index-DocNZVXn.cjs +23 -0
- package/dist/index-DocNZVXn.cjs.map +1 -0
- package/dist/index-DruzjpTS.js +1293 -0
- package/dist/index-DruzjpTS.js.map +1 -0
- package/dist/index.c.js +1 -22
- package/dist/index.c.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -683
- package/dist/index.js.map +1 -1
- package/dist/types/component-types.d.ts +23 -0
- package/dist/types/component-types.d.ts.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Bn7sjSSa.cjs","sources":["../node_modules/.pnpm/pdfjs-dist@4.8.69/node_modules/pdfjs-dist/build/pdf.mjs","../node_modules/.pnpm/make-event-props@1.6.2/node_modules/make-event-props/dist/esm/index.js","../node_modules/.pnpm/make-cancellable-promise@1.3.2/node_modules/make-cancellable-promise/dist/esm/index.js","../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/.pnpm/warning@4.0.3/node_modules/warning/warning.js","../node_modules/.pnpm/dequal@2.0.3/node_modules/dequal/dist/index.mjs","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/DocumentContext.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Message.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/LinkService.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/PasswordResponses.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/utils.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/hooks/useResolver.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Document.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/OutlineContext.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Ref.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/hooks/useCachedValue.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/hooks/useDocumentContext.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/hooks/useOutlineContext.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/OutlineItem.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Outline.js","../node_modules/.pnpm/merge-refs@1.3.0_@types+react@19.2.14/node_modules/merge-refs/dist/esm/index.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/PageContext.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/constants.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/structTreeUtils.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/StructTreeItem.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/shared/hooks/usePageContext.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/StructTree.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Page/Canvas.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Page/TextLayer.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Page/AnnotationLayer.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Page.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/Thumbnail.js","../node_modules/.pnpm/react-pdf@9.2.1_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-pdf/dist/esm/index.js"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2024 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 * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n/******/ // The require scope\n/******/ var __webpack_require__ = {};\n/******/ \n/************************************************************************/\n/******/ /* webpack/runtime/define property getters */\n/******/ (() => {\n/******/ \t// define getter functions for harmony exports\n/******/ \t__webpack_require__.d = (exports, definition) => {\n/******/ \t\tfor(var key in definition) {\n/******/ \t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t};\n/******/ })();\n/******/ \n/******/ /* webpack/runtime/hasOwnProperty shorthand */\n/******/ (() => {\n/******/ \t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ })();\n/******/ \n/************************************************************************/\nvar __webpack_exports__ = globalThis.pdfjsLib = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n AbortException: () => (/* reexport */ AbortException),\n AnnotationEditorLayer: () => (/* reexport */ AnnotationEditorLayer),\n AnnotationEditorParamsType: () => (/* reexport */ AnnotationEditorParamsType),\n AnnotationEditorType: () => (/* reexport */ AnnotationEditorType),\n AnnotationEditorUIManager: () => (/* reexport */ AnnotationEditorUIManager),\n AnnotationLayer: () => (/* reexport */ AnnotationLayer),\n AnnotationMode: () => (/* reexport */ AnnotationMode),\n ColorPicker: () => (/* reexport */ ColorPicker),\n DOMSVGFactory: () => (/* reexport */ DOMSVGFactory),\n DrawLayer: () => (/* reexport */ DrawLayer),\n FeatureTest: () => (/* reexport */ util_FeatureTest),\n GlobalWorkerOptions: () => (/* reexport */ GlobalWorkerOptions),\n ImageKind: () => (/* reexport */ util_ImageKind),\n InvalidPDFException: () => (/* reexport */ InvalidPDFException),\n MissingPDFException: () => (/* reexport */ MissingPDFException),\n OPS: () => (/* reexport */ OPS),\n OutputScale: () => (/* reexport */ OutputScale),\n PDFDataRangeTransport: () => (/* reexport */ PDFDataRangeTransport),\n PDFDateString: () => (/* reexport */ PDFDateString),\n PDFWorker: () => (/* reexport */ PDFWorker),\n PasswordResponses: () => (/* reexport */ PasswordResponses),\n PermissionFlag: () => (/* reexport */ PermissionFlag),\n PixelsPerInch: () => (/* reexport */ PixelsPerInch),\n RenderingCancelledException: () => (/* reexport */ RenderingCancelledException),\n TextLayer: () => (/* reexport */ TextLayer),\n UnexpectedResponseException: () => (/* reexport */ UnexpectedResponseException),\n Util: () => (/* reexport */ Util),\n VerbosityLevel: () => (/* reexport */ VerbosityLevel),\n XfaLayer: () => (/* reexport */ XfaLayer),\n build: () => (/* reexport */ build),\n createValidAbsoluteUrl: () => (/* reexport */ createValidAbsoluteUrl),\n fetchData: () => (/* reexport */ fetchData),\n getDocument: () => (/* reexport */ getDocument),\n getFilenameFromUrl: () => (/* reexport */ getFilenameFromUrl),\n getPdfFilenameFromUrl: () => (/* reexport */ getPdfFilenameFromUrl),\n getXfaPageViewport: () => (/* reexport */ getXfaPageViewport),\n isDataScheme: () => (/* reexport */ isDataScheme),\n isPdfFile: () => (/* reexport */ isPdfFile),\n noContextMenu: () => (/* reexport */ noContextMenu),\n normalizeUnicode: () => (/* reexport */ normalizeUnicode),\n setLayerDimensions: () => (/* reexport */ setLayerDimensions),\n shadow: () => (/* reexport */ shadow),\n version: () => (/* reexport */ version)\n});\n\n;// ./src/shared/util.js\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n IS_EDITING: 0x80,\n OPLIST: 0x100\n};\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15\n};\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_DEFAULT_COLOR: 32,\n HIGHLIGHT_THICKNESS: 33,\n HIGHLIGHT_FREE: 34,\n HIGHLIGHT_SHOW_ALL: 35\n};\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};\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};\nconst util_ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\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};\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\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};\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};\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\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};\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nconst OPS = {\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 beginAnnotation: 80,\n endAnnotation: 81,\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 setStrokeTransparent: 92,\n setFillTransparent: 93\n};\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\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}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\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}\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}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\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}\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}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass util_FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator !== \"undefined\" && typeof navigator?.platform === \"string\") {\n return shadow(this, \"platform\", {\n isMac: navigator.platform.includes(\"Mac\"),\n isWindows: navigator.platform.includes(\"Win\"),\n isFirefox: typeof navigator?.userAgent === \"string\" && navigator.userAgent.includes(\"Firefox\")\n });\n }\n return shadow(this, \"platform\", {\n isMac: false,\n isWindows: false,\n isFirefox: false\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nconst hexNumbers = Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\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[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n 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]];\n }\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 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 static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n 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])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n 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];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\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 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 return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\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 static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);\n }\n return;\n }\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);\n this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n if (minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n } else {\n minMax = [Math.min(x0, x3), Math.min(y0, y3), Math.max(x0, x3), Math.max(y0, y3)];\n }\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);\n this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);\n return minMax;\n }\n}\nconst PDFStringTranslateTable = (/* unused pure expression or super */ null && ([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]));\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (!decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (charCode === 0x1b) {\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\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}\nfunction getModificationDate(date = new Date()) {\n 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\")];\n return buffer.join(\"\");\n}\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2));\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nconst FontRenderOps = {\n BEZIER_CURVE_TO: 0,\n MOVE_TO: 1,\n LINE_TO: 2,\n QUADRATIC_CURVE_TO: 3,\n RESTORE: 4,\n SAVE: 5,\n SCALE: 6,\n TRANSFORM: 7,\n TRANSLATE: 8\n};\nfunction toHexUtil(arr) {\n if (Uint8Array.prototype.toHex) {\n return arr.toHex();\n }\n return Array.from(arr, num => hexNumbers[num]).join(\"\");\n}\nfunction toBase64Util(arr) {\n if (Uint8Array.prototype.toBase64) {\n return arr.toBase64();\n }\n return btoa(bytesToString(arr));\n}\nfunction fromBase64Util(str) {\n if (Uint8Array.fromBase64) {\n return Uint8Array.fromBase64(str);\n }\n return stringToBytes(atob(str));\n}\n\n;// ./src/display/display_utils.js\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nasync function fetchData(url, type = \"text\") {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n switch (type) {\n case \"arraybuffer\":\n return response.arrayBuffer();\n case \"blob\":\n return response.blob();\n case \"json\":\n return response.json();\n }\n return response.text();\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n request.responseType = type;\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n switch (type) {\n case \"arraybuffer\":\n case \"blob\":\n case \"json\":\n resolve(request.response);\n return;\n }\n resolve(request.responseText);\n return;\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return shadow(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return Util.applyInverseTransform([x, y], this.transform);\n }\n}\nclass RenderingCancelledException extends BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url) {\n [url] = url.split(/[#?]/, 1);\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n warn(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n warn(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nclass PDFDateString {\n static #regex;\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n this.#regex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = this.#regex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n warn(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = util_FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(down, ${w}, var(--scale-round-x, 1px))` : `calc(${w})`,\n heightStr = useRound ? `round(down, ${h}, var(--scale-round-y, 1px))` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\nclass OutputScale {\n constructor() {\n const pixelRatio = window.devicePixelRatio || 1;\n this.sx = pixelRatio;\n this.sy = pixelRatio;\n }\n get scaled() {\n return this.sx !== 1 || this.sy !== 1;\n }\n get symmetric() {\n return this.sx === this.sy;\n }\n}\n\n;// ./src/display/editor/toolbar.js\n\nclass EditorToolbar {\n #toolbar = null;\n #colorPicker = null;\n #editor;\n #buttons = null;\n #altText = null;\n static #l10nRemove = null;\n constructor(editor) {\n this.#editor = editor;\n EditorToolbar.#l10nRemove ||= Object.freeze({\n freetext: \"pdfjs-editor-remove-freetext-button\",\n highlight: \"pdfjs-editor-remove-highlight-button\",\n ink: \"pdfjs-editor-remove-ink-button\",\n stamp: \"pdfjs-editor-remove-stamp-button\"\n });\n }\n render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.classList.add(\"editToolbar\", \"hidden\");\n editToolbar.setAttribute(\"role\", \"toolbar\");\n const signal = this.#editor._uiManager._signal;\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown, {\n signal\n });\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n const position = this.#editor.toolbarPosition;\n if (position) {\n const {\n style\n } = editToolbar;\n const x = this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0];\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`;\n }\n this.#addDeleteButton();\n return editToolbar;\n }\n get div() {\n return this.#toolbar;\n }\n static #pointerDown(e) {\n e.stopPropagation();\n }\n #focusIn(e) {\n this.#editor._focusEventsAllowed = false;\n e.preventDefault();\n e.stopPropagation();\n }\n #focusOut(e) {\n this.#editor._focusEventsAllowed = true;\n e.preventDefault();\n e.stopPropagation();\n }\n #addListenersToElement(element) {\n const signal = this.#editor._uiManager._signal;\n element.addEventListener(\"focusin\", this.#focusIn.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"focusout\", this.#focusOut.bind(this), {\n capture: true,\n signal\n });\n element.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n }\n hide() {\n this.#toolbar.classList.add(\"hidden\");\n this.#colorPicker?.hideDropdown();\n }\n show() {\n this.#toolbar.classList.remove(\"hidden\");\n this.#altText?.shown();\n }\n #addDeleteButton() {\n const {\n editorType,\n _uiManager\n } = this.#editor;\n const button = document.createElement(\"button\");\n button.className = \"delete\";\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", EditorToolbar.#l10nRemove[editorType]);\n this.#addListenersToElement(button);\n button.addEventListener(\"click\", e => {\n _uiManager.delete();\n }, {\n signal: _uiManager._signal\n });\n this.#buttons.append(button);\n }\n get #divider() {\n const divider = document.createElement(\"div\");\n divider.className = \"divider\";\n return divider;\n }\n async addAltText(altText) {\n const button = await altText.render();\n this.#addListenersToElement(button);\n this.#buttons.prepend(button, this.#divider);\n this.#altText = altText;\n }\n addColorPicker(colorPicker) {\n this.#colorPicker = colorPicker;\n const button = colorPicker.renderButton();\n this.#addListenersToElement(button);\n this.#buttons.prepend(button, this.#divider);\n }\n remove() {\n this.#toolbar.remove();\n this.#colorPicker?.destroy();\n this.#colorPicker = null;\n }\n}\nclass HighlightToolbar {\n #buttons = null;\n #toolbar = null;\n #uiManager;\n constructor(uiManager) {\n this.#uiManager = uiManager;\n }\n #render() {\n const editToolbar = this.#toolbar = document.createElement(\"div\");\n editToolbar.className = \"editToolbar\";\n editToolbar.setAttribute(\"role\", \"toolbar\");\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal: this.#uiManager._signal\n });\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n this.#addHighlightButton();\n return editToolbar;\n }\n #getLastPoint(boxes, isLTR) {\n let lastY = 0;\n let lastX = 0;\n for (const box of boxes) {\n const y = box.y + box.height;\n if (y < lastY) {\n continue;\n }\n const x = box.x + (isLTR ? box.width : 0);\n if (y > lastY) {\n lastX = x;\n lastY = y;\n continue;\n }\n if (isLTR) {\n if (x > lastX) {\n lastX = x;\n }\n } else if (x < lastX) {\n lastX = x;\n }\n }\n return [isLTR ? 1 - lastX : lastX, lastY];\n }\n show(parent, boxes, isLTR) {\n const [x, y] = this.#getLastPoint(boxes, isLTR);\n const {\n style\n } = this.#toolbar ||= this.#render();\n parent.append(this.#toolbar);\n style.insetInlineEnd = `${100 * x}%`;\n style.top = `calc(${100 * y}% + var(--editor-toolbar-vert-offset))`;\n }\n hide() {\n this.#toolbar.remove();\n }\n #addHighlightButton() {\n const button = document.createElement(\"button\");\n button.className = \"highlightButton\";\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", `pdfjs-highlight-floating-button1`);\n const span = document.createElement(\"span\");\n button.append(span);\n span.className = \"visuallyHidden\";\n span.setAttribute(\"data-l10n-id\", \"pdfjs-highlight-floating-button-label\");\n const signal = this.#uiManager._signal;\n button.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n button.addEventListener(\"click\", () => {\n this.#uiManager.highlightSelection(\"floating_button\");\n }, {\n signal\n });\n this.#buttons.append(button);\n }\n}\n\n;// ./src/display/editor/tools.js\n\n\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n get id() {\n return `${AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = getUuid();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox=\"0 0 1 1\" width=\"1\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"1\" height=\"1\" style=\"fill:red;\"/></svg>`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\", {\n willReadFrequently: true\n });\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return shadow(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n image = await fetchData(rawData, \"blob\");\n } else if (rawData instanceof File) {\n image = data.file = rawData;\n } else if (rawData instanceof Blob) {\n image = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromBlob(id, blobPromise) {\n const blob = await blobPromise;\n return this.#get(id, blob);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n if (data.blobPromise) {\n const {\n blobPromise\n } = data;\n delete data.blobPromise;\n return this.getFromBlob(data.id, blobPromise);\n }\n return this.getFromUrl(data.url);\n }\n getFromCanvas(id, canvas) {\n this.#cache ||= new Map();\n let data = this.#cache.get(id);\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n const offscreen = new OffscreenCanvas(canvas.width, canvas.height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(canvas, 0, 0);\n data = {\n bitmap: offscreen.transferToImageBitmap(),\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 1,\n isSvg: false\n };\n this.#cache.set(id, data);\n this.#cache.set(data.id, data);\n return data;\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n const {\n bitmap\n } = data;\n if (!data.url && !data.file) {\n const canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n const ctx = canvas.getContext(\"bitmaprenderer\");\n ctx.transferFromImageBitmap(bitmap);\n data.blobPromise = canvas.convertToBlob();\n }\n bitmap.close?.();\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n post,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n post,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n const {\n undo,\n post\n } = this.#commands[this.#position];\n undo();\n post?.();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n const {\n cmd,\n post\n } = this.#commands[this.#position];\n cmd();\n post?.();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = util_FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args, event)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n getColorValues(colors);\n return shadow(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = getRGB(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return Util.makeHexColor(...rgb);\n }\n}\nclass AnnotationEditorUIManager {\n #abortController = new AbortController();\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #changedExistingAnnotations = null;\n #commandManager = new CommandManager();\n #copyPasteAC = null;\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #enableHighlightFloatingButton = false;\n #enableUpdatedAddImage = false;\n #enableNewAltTextWhenAddingImage = false;\n #filterFactory = null;\n #focusMainContainerTimeoutId = null;\n #focusManagerAC = null;\n #highlightColors = null;\n #highlightWhenShiftUp = false;\n #highlightToolbar = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #keyboardManagerAC = null;\n #lastActiveElement = null;\n #mainHighlightColorPicker = null;\n #mlManager = null;\n #mode = AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #selectedTextNode = null;\n #pageColors = null;\n #showAllStates = null;\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false,\n hasSelectedText: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n #updateModeCapability = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => self.#container.contains(document.activeElement) && document.activeElement.tagName !== \"BUTTON\" && self.hasSomethingToControl();\n const textInputChecker = (_self, {\n target: el\n }) => {\n if (el instanceof HTMLInputElement) {\n const {\n type\n } = el;\n return type !== \"text\" && type !== \"number\";\n }\n return true;\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll, {\n checker: textInputChecker\n }], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo, {\n checker: textInputChecker\n }], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo, {\n checker: textInputChecker\n }], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete, {\n checker: textInputChecker\n }], [[\"Enter\", \"mac+Enter\"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(el) && !self.isEnterHandled\n }], [[\" \", \"mac+ \"], proto.addNewEditorFromKeyboard, {\n checker: (self, {\n target: el\n }) => !(el instanceof HTMLButtonElement) && self.#container.contains(document.activeElement)\n }], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, enableNewAltTextWhenAddingImage, mlManager) {\n const signal = this._signal = this.#abortController.signal;\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n eventBus._on(\"editingaction\", this.onEditingAction.bind(this), {\n signal\n });\n eventBus._on(\"pagechanging\", this.onPageChanging.bind(this), {\n signal\n });\n eventBus._on(\"scalechanging\", this.onScaleChanging.bind(this), {\n signal\n });\n eventBus._on(\"rotationchanging\", this.onRotationChanging.bind(this), {\n signal\n });\n eventBus._on(\"setpreference\", this.onSetPreference.bind(this), {\n signal\n });\n eventBus._on(\"switchannotationeditorparams\", evt => this.updateParams(evt.type, evt.value), {\n signal\n });\n this.#addSelectionListener();\n this.#addDragAndDropListeners();\n this.#addKeyboardManager();\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.#highlightColors = highlightColors || null;\n this.#enableHighlightFloatingButton = enableHighlightFloatingButton;\n this.#enableUpdatedAddImage = enableUpdatedAddImage;\n this.#enableNewAltTextWhenAddingImage = enableNewAltTextWhenAddingImage;\n this.#mlManager = mlManager || null;\n this.viewParameters = {\n realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n this.isShiftKeyDown = false;\n }\n destroy() {\n this.#updateModeCapability?.resolve();\n this.#updateModeCapability = null;\n this.#abortController?.abort();\n this.#abortController = null;\n this._signal = null;\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager?.destroy();\n this.#highlightToolbar?.hide();\n this.#highlightToolbar = null;\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n this.#focusMainContainerTimeoutId = null;\n }\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n this.#translationTimeoutId = null;\n }\n }\n combinedSignal(ac) {\n return AbortSignal.any([this._signal, ac.signal]);\n }\n get mlManager() {\n return this.#mlManager;\n }\n get useNewAltTextFlow() {\n return this.#enableUpdatedAddImage;\n }\n get useNewAltTextWhenAddingImage() {\n return this.#enableNewAltTextWhenAddingImage;\n }\n get hcmFilter() {\n return shadow(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return shadow(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n get highlightColors() {\n return shadow(this, \"highlightColors\", this.#highlightColors ? new Map(this.#highlightColors.split(\",\").map(pair => pair.split(\"=\").map(x => x.trim()))) : null);\n }\n get highlightColorNames() {\n return shadow(this, \"highlightColorNames\", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null);\n }\n setMainHighlightColorPicker(colorPicker) {\n this.#mainHighlightColorPicker = colorPicker;\n }\n editAltText(editor, firstTime = false) {\n this.#altTextManager?.editAltText(this, editor, firstTime);\n }\n switchToMode(mode, callback) {\n this._eventBus.on(\"annotationeditormodechanged\", callback, {\n once: true,\n signal: this._signal\n });\n this._eventBus.dispatch(\"showannotationeditorui\", {\n source: this,\n mode\n });\n }\n setPreference(name, value) {\n this._eventBus.dispatch(\"setpreference\", {\n source: this,\n name,\n value\n });\n }\n onSetPreference({\n name,\n value\n }) {\n switch (name) {\n case \"enableNewAltTextWhenAddingImage\":\n this.#enableNewAltTextWhenAddingImage = value;\n break;\n }\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n #getAnchorElementForSelection({\n anchorNode\n }) {\n return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode;\n }\n #getLayerForTextLayer(textLayer) {\n const {\n currentLayer\n } = this;\n if (currentLayer.hasTextLayer(textLayer)) {\n return currentLayer;\n }\n for (const layer of this.#allLayers.values()) {\n if (layer.hasTextLayer(textLayer)) {\n return layer;\n }\n }\n return null;\n }\n highlightSelection(methodOfCreation = \"\") {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const {\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset\n } = selection;\n const text = selection.toString();\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n selection.empty();\n const layer = this.#getLayerForTextLayer(textLayer);\n const isNoneMode = this.#mode === AnnotationEditorType.NONE;\n const callback = () => {\n layer?.createAndAddNewEditor({\n x: 0,\n y: 0\n }, false, {\n methodOfCreation,\n boxes,\n anchorNode,\n anchorOffset,\n focusNode,\n focusOffset,\n text\n });\n if (isNoneMode) {\n this.showAllEditors(\"highlight\", true, true);\n }\n };\n if (isNoneMode) {\n this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback);\n return;\n }\n callback();\n }\n #displayHighlightToolbar() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n const boxes = this.getSelectionBoxes(textLayer);\n if (!boxes) {\n return;\n }\n this.#highlightToolbar ||= new HighlightToolbar(this);\n this.#highlightToolbar.show(textLayer, boxes, this.direction === \"ltr\");\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #selectionChange() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n if (this.#selectedTextNode) {\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n const {\n anchorNode\n } = selection;\n if (anchorNode === this.#selectedTextNode) {\n return;\n }\n const anchorElement = this.#getAnchorElementForSelection(selection);\n const textLayer = anchorElement.closest(\".textLayer\");\n if (!textLayer) {\n if (this.#selectedTextNode) {\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n this.#highlightToolbar?.hide();\n this.#selectedTextNode = anchorNode;\n this.#dispatchUpdateStates({\n hasSelectedText: true\n });\n if (this.#mode !== AnnotationEditorType.HIGHLIGHT && this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.showAllEditors(\"highlight\", true, true);\n }\n this.#highlightWhenShiftUp = this.isShiftKeyDown;\n if (!this.isShiftKeyDown) {\n const activeLayer = this.#mode === AnnotationEditorType.HIGHLIGHT ? this.#getLayerForTextLayer(textLayer) : null;\n activeLayer?.toggleDrawing();\n const ac = new AbortController();\n const signal = this.combinedSignal(ac);\n const pointerup = e => {\n if (e.type === \"pointerup\" && e.button !== 0) {\n return;\n }\n ac.abort();\n activeLayer?.toggleDrawing(true);\n if (e.type === \"pointerup\") {\n this.#onSelectEnd(\"main_toolbar\");\n }\n };\n window.addEventListener(\"pointerup\", pointerup, {\n signal\n });\n window.addEventListener(\"blur\", pointerup, {\n signal\n });\n }\n }\n #onSelectEnd(methodOfCreation = \"\") {\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.highlightSelection(methodOfCreation);\n } else if (this.#enableHighlightFloatingButton) {\n this.#displayHighlightToolbar();\n }\n }\n #addSelectionListener() {\n document.addEventListener(\"selectionchange\", this.#selectionChange.bind(this), {\n signal: this._signal\n });\n }\n #addFocusManager() {\n if (this.#focusManagerAC) {\n return;\n }\n this.#focusManagerAC = new AbortController();\n const signal = this.combinedSignal(this.#focusManagerAC);\n window.addEventListener(\"focus\", this.focus.bind(this), {\n signal\n });\n window.addEventListener(\"blur\", this.blur.bind(this), {\n signal\n });\n }\n #removeFocusManager() {\n this.#focusManagerAC?.abort();\n this.#focusManagerAC = null;\n }\n blur() {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this._signal\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n if (this.#keyboardManagerAC) {\n return;\n }\n this.#keyboardManagerAC = new AbortController();\n const signal = this.combinedSignal(this.#keyboardManagerAC);\n window.addEventListener(\"keydown\", this.keydown.bind(this), {\n signal\n });\n window.addEventListener(\"keyup\", this.keyup.bind(this), {\n signal\n });\n }\n #removeKeyboardManager() {\n this.#keyboardManagerAC?.abort();\n this.#keyboardManagerAC = null;\n }\n #addCopyPasteListeners() {\n if (this.#copyPasteAC) {\n return;\n }\n this.#copyPasteAC = new AbortController();\n const signal = this.combinedSignal(this.#copyPasteAC);\n document.addEventListener(\"copy\", this.copy.bind(this), {\n signal\n });\n document.addEventListener(\"cut\", this.cut.bind(this), {\n signal\n });\n document.addEventListener(\"paste\", this.paste.bind(this), {\n signal\n });\n }\n #removeCopyPasteListeners() {\n this.#copyPasteAC?.abort();\n this.#copyPasteAC = null;\n }\n #addDragAndDropListeners() {\n const signal = this._signal;\n document.addEventListener(\"dragover\", this.dragOver.bind(this), {\n signal\n });\n document.addEventListener(\"drop\", this.drop.bind(this), {\n signal\n });\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n dragOver(event) {\n for (const {\n type\n } of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(type)) {\n event.dataTransfer.dropEffect = \"copy\";\n event.preventDefault();\n return;\n }\n }\n }\n }\n drop(event) {\n for (const item of event.dataTransfer.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n event.preventDefault();\n return;\n }\n }\n }\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n async paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n warn(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = await layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n warn(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = true;\n }\n if (this.#mode !== AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n keyup(event) {\n if (this.isShiftKeyDown && event.key === \"Shift\") {\n this.isShiftKeyDown = false;\n if (this.#highlightWhenShiftUp) {\n this.#highlightWhenShiftUp = false;\n this.#onSelectEnd(\"main_toolbar\");\n }\n }\n }\n onEditingAction({\n name\n }) {\n switch (name) {\n case \"undo\":\n case \"redo\":\n case \"delete\":\n case \"selectAll\":\n this[name]();\n break;\n case \"highlightSelection\":\n this.highlightSelection(\"context_menu\");\n break;\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n if (this.#mode === AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]);\n }\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.id;\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n async updateMode(mode, editId = null, isFromKeyboard = false) {\n if (this.#mode === mode) {\n return;\n }\n if (this.#updateModeCapability) {\n await this.#updateModeCapability.promise;\n if (!this.#updateModeCapability) {\n return;\n }\n }\n this.#updateModeCapability = Promise.withResolvers();\n this.#mode = mode;\n if (mode === AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n this.#updateModeCapability.resolve();\n return;\n }\n this.setEditingState(true);\n await this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId) {\n if (isFromKeyboard) {\n this.addNewEditorFromKeyboard();\n }\n this.#updateModeCapability.resolve();\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n } else {\n editor.unselect();\n }\n }\n this.#updateModeCapability.resolve();\n }\n addNewEditorFromKeyboard() {\n if (this.currentLayer.canCreateNewEmptyEditor()) {\n this.currentLayer.addNewEditor();\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n switch (type) {\n case AnnotationEditorParamsType.CREATE:\n this.currentLayer.addNewEditor();\n return;\n case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:\n this.#mainHighlightColorPicker?.updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL:\n this._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data: {\n type: \"highlight\",\n action: \"toggle_visibility\"\n }\n }\n });\n (this.#showAllStates ||= new Map()).set(type, value);\n this.showAllEditors(\"highlight\", value);\n break;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n showAllEditors(type, visible, updateButton = false) {\n for (const editor of this.#allEditors.values()) {\n if (editor.editorType === type) {\n editor.show(visible);\n }\n }\n const state = this.#showAllStates?.get(AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true;\n if (state !== visible) {\n this.#dispatchUpdateUI([[AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n async #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n const promises = [];\n for (const layer of this.#allLayers.values()) {\n promises.push(layer.enable());\n }\n await Promise.all(promises);\n for (const editor of this.#allEditors.values()) {\n editor.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n for (const editor of this.#allEditors.values()) {\n editor.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n if (editor.div.contains(document.activeElement)) {\n if (this.#focusMainContainerTimeoutId) {\n clearTimeout(this.#focusMainContainerTimeoutId);\n }\n this.#focusMainContainerTimeoutId = setTimeout(() => {\n this.focusMainContainer();\n this.#focusMainContainerTimeoutId = null;\n }, 0);\n }\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n this.addChangedExistingAnnotation(editor);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n this.removeChangedExistingAnnotation(editor);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n get #lastSelectedEditor() {\n let ed = null;\n for (ed of this.#selectedEditors) {}\n return ed;\n }\n updateUI(editor) {\n if (this.#lastSelectedEditor === editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n get firstSelectedEditor() {\n return this.#selectedEditors.values().next().value;\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n get isEnterHandled() {\n return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n if (this.#mode !== AnnotationEditorType.NONE) {\n return;\n }\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n get isEditorHandlingKeyboard() {\n return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents();\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return shadow(this, \"imageManager\", new ImageManager());\n }\n getSelectionBoxes(textLayer) {\n if (!textLayer) {\n return null;\n }\n const selection = document.getSelection();\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n if (!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer)) {\n return null;\n }\n }\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n let rotator;\n switch (textLayer.getAttribute(\"data-main-rotation\")) {\n case \"90\":\n rotator = (x, y, w, h) => ({\n x: (y - layerY) / parentHeight,\n y: 1 - (x + w - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n case \"180\":\n rotator = (x, y, w, h) => ({\n x: 1 - (x + w - layerX) / parentWidth,\n y: 1 - (y + h - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n case \"270\":\n rotator = (x, y, w, h) => ({\n x: 1 - (y + h - layerY) / parentHeight,\n y: (x - layerX) / parentWidth,\n width: h / parentHeight,\n height: w / parentWidth\n });\n break;\n default:\n rotator = (x, y, w, h) => ({\n x: (x - layerX) / parentWidth,\n y: (y - layerY) / parentHeight,\n width: w / parentWidth,\n height: h / parentHeight\n });\n break;\n }\n const boxes = [];\n for (let i = 0, ii = selection.rangeCount; i < ii; i++) {\n const range = selection.getRangeAt(i);\n if (range.collapsed) {\n continue;\n }\n for (const {\n x,\n y,\n width,\n height\n } of range.getClientRects()) {\n if (width === 0 || height === 0) {\n continue;\n }\n boxes.push(rotator(x, y, width, height));\n }\n }\n return boxes.length === 0 ? null : boxes;\n }\n addChangedExistingAnnotation({\n annotationElementId,\n id\n }) {\n (this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id);\n }\n removeChangedExistingAnnotation({\n annotationElementId\n }) {\n this.#changedExistingAnnotations?.delete(annotationElementId);\n }\n renderAnnotationElement(annotation) {\n const editorId = this.#changedExistingAnnotations?.get(annotation.data.id);\n if (!editorId) {\n return;\n }\n const editor = this.#annotationStorage.getRawValue(editorId);\n if (!editor) {\n return;\n }\n if (this.#mode === AnnotationEditorType.NONE && !editor.hasBeenModified) {\n return;\n }\n editor.renderAnnotationElement(annotation);\n }\n}\n\n;// ./src/display/editor/alt_text.js\n\nclass AltText {\n #altText = null;\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextButtonLabel = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #altTextWasFromKeyBoard = false;\n #badge = null;\n #editor = null;\n #guessedText = null;\n #textWithDisclaimer = null;\n #useNewAltTextFlow = false;\n static #l10nNewButton = null;\n static _l10n = null;\n constructor(editor) {\n this.#editor = editor;\n this.#useNewAltTextFlow = editor._uiManager.useNewAltTextFlow;\n AltText.#l10nNewButton ||= Object.freeze({\n added: \"pdfjs-editor-new-alt-text-added-button\",\n \"added-label\": \"pdfjs-editor-new-alt-text-added-button-label\",\n missing: \"pdfjs-editor-new-alt-text-missing-button\",\n \"missing-label\": \"pdfjs-editor-new-alt-text-missing-button-label\",\n review: \"pdfjs-editor-new-alt-text-to-review-button\",\n \"review-label\": \"pdfjs-editor-new-alt-text-to-review-button-label\"\n });\n }\n static initialize(l10n) {\n AltText._l10n ??= l10n;\n }\n async render() {\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n altText.tabIndex = \"0\";\n const label = this.#altTextButtonLabel = document.createElement(\"span\");\n altText.append(label);\n if (this.#useNewAltTextFlow) {\n altText.classList.add(\"new\");\n altText.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton.missing);\n label.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[\"missing-label\"]);\n } else {\n altText.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button\");\n label.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-button-label\");\n }\n const signal = this.#editor._uiManager._signal;\n altText.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n signal\n });\n const onClick = event => {\n event.preventDefault();\n this.#editor._uiManager.editAltText(this.#editor);\n if (this.#useNewAltTextFlow) {\n this.#editor._reportTelemetry({\n action: \"pdfjs.image.alt_text.image_status_label_clicked\",\n data: {\n label: this.#label\n }\n });\n }\n };\n altText.addEventListener(\"click\", onClick, {\n capture: true,\n signal\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n this.#altTextWasFromKeyBoard = true;\n onClick(event);\n }\n }, {\n signal\n });\n await this.#setState();\n return altText;\n }\n get #label() {\n return this.#altText && \"added\" || this.#altText === null && this.guessedText && \"review\" || \"missing\";\n }\n finish() {\n if (!this.#altTextButton) {\n return;\n }\n this.#altTextButton.focus({\n focusVisible: this.#altTextWasFromKeyBoard\n });\n this.#altTextWasFromKeyBoard = false;\n }\n isEmpty() {\n if (this.#useNewAltTextFlow) {\n return this.#altText === null;\n }\n return !this.#altText && !this.#altTextDecorative;\n }\n hasData() {\n if (this.#useNewAltTextFlow) {\n return this.#altText !== null || !!this.#guessedText;\n }\n return this.isEmpty();\n }\n get guessedText() {\n return this.#guessedText;\n }\n async setGuessedText(guessedText) {\n if (this.#altText !== null) {\n return;\n }\n this.#guessedText = guessedText;\n this.#textWithDisclaimer = await AltText._l10n.get(\"pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer\", {\n generatedAltText: guessedText\n });\n this.#setState();\n }\n toggleAltTextBadge(visibility = false) {\n if (!this.#useNewAltTextFlow || this.#altText) {\n this.#badge?.remove();\n this.#badge = null;\n return;\n }\n if (!this.#badge) {\n const badge = this.#badge = document.createElement(\"div\");\n badge.className = \"noAltTextBadge\";\n this.#editor.div.append(badge);\n }\n this.#badge.classList.toggle(\"hidden\", !visibility);\n }\n serialize(isForCopying) {\n let altText = this.#altText;\n if (!isForCopying && this.#guessedText === altText) {\n altText = this.#textWithDisclaimer;\n }\n return {\n altText,\n decorative: this.#altTextDecorative,\n guessedText: this.#guessedText,\n textWithDisclaimer: this.#textWithDisclaimer\n };\n }\n get data() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set data({\n altText,\n decorative,\n guessedText,\n textWithDisclaimer,\n cancel = false\n }) {\n if (guessedText) {\n this.#guessedText = guessedText;\n this.#textWithDisclaimer = textWithDisclaimer;\n }\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n if (!cancel) {\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n }\n this.#setState();\n }\n toggle(enabled = false) {\n if (!this.#altTextButton) {\n return;\n }\n if (!enabled && this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextButton.disabled = !enabled;\n }\n shown() {\n this.#editor._reportTelemetry({\n action: \"pdfjs.image.alt_text.image_status_label_displayed\",\n data: {\n label: this.#label\n }\n });\n }\n destroy() {\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextButtonLabel = null;\n this.#altTextTooltip = null;\n this.#badge?.remove();\n this.#badge = null;\n }\n async #setState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (this.#useNewAltTextFlow) {\n button.classList.toggle(\"done\", !!this.#altText);\n button.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[this.#label]);\n this.#altTextButtonLabel?.setAttribute(\"data-l10n-id\", AltText.#l10nNewButton[`${this.#label}-label`]);\n if (!this.#altText) {\n this.#altTextTooltip?.remove();\n return;\n }\n } else {\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n button.classList.add(\"done\");\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-edit-button\");\n }\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n tooltip.id = `alt-text-tooltip-${this.#editor.id}`;\n const DELAY_TO_SHOW_TOOLTIP = 100;\n const signal = this.#editor._uiManager._signal;\n signal.addEventListener(\"abort\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }, {\n once: true\n });\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this.#editor._reportTelemetry({\n action: \"alt_text_tooltip\"\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n }, {\n signal\n });\n button.addEventListener(\"mouseleave\", () => {\n if (this.#altTextTooltipTimeout) {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n }\n this.#altTextTooltip?.classList.remove(\"show\");\n }, {\n signal\n });\n }\n if (this.#altTextDecorative) {\n tooltip.setAttribute(\"data-l10n-id\", \"pdfjs-editor-alt-text-decorative-tooltip\");\n } else {\n tooltip.removeAttribute(\"data-l10n-id\");\n tooltip.textContent = this.#altText;\n }\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n const element = this.#editor.getImageForAltText();\n element?.setAttribute(\"aria-describedby\", tooltip.id);\n }\n}\n\n;// ./src/display/editor/editor.js\n\n\n\n\n\nclass AnnotationEditor {\n #accessibilityData = null;\n #allResizerDivs = null;\n #altText = null;\n #disabled = false;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #savedDimensions = null;\n #focusAC = null;\n #focusedResizerName = \"\";\n #hasBeenClicked = false;\n #initialPosition = null;\n #isEditing = false;\n #isInEditMode = false;\n #isResizerEnabledForKeyboard = false;\n #moveInDOMTimeout = null;\n #prevDragX = 0;\n #prevDragY = 0;\n #telemetryTimeouts = null;\n _editToolbar = null;\n _initialOptions = Object.create(null);\n _initialData = null;\n _isVisible = true;\n _uiManager = null;\n _focusEventsAllowed = true;\n static _l10n = null;\n static _l10nResizer = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new ColorManager();\n static _zIndex = 1;\n static _telemetryTimeout = 1000;\n static get _resizerKeyboardManager() {\n const resize = AnnotationEditor.prototype._resizeWithKeyboard;\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_resizerKeyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], resize, {\n args: [-small, 0]\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], resize, {\n args: [-big, 0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], resize, {\n args: [small, 0]\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], resize, {\n args: [big, 0]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], resize, {\n args: [0, -small]\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], resize, {\n args: [0, -big]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], resize, {\n args: [0, small]\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], resize, {\n args: [0, big]\n }], [[\"Escape\", \"mac+Escape\"], AnnotationEditor.prototype._stopResizingWithKeyboard]]));\n }\n constructor(parameters) {\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return shadow(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, _uiManager) {\n AnnotationEditor._l10n ??= l10n;\n AnnotationEditor._l10nResizer ||= Object.freeze({\n topLeft: \"pdfjs-editor-resizer-top-left\",\n topMiddle: \"pdfjs-editor-resizer-top-middle\",\n topRight: \"pdfjs-editor-resizer-top-right\",\n middleRight: \"pdfjs-editor-resizer-middle-right\",\n bottomRight: \"pdfjs-editor-resizer-bottom-right\",\n bottomMiddle: \"pdfjs-editor-resizer-bottom-middle\",\n bottomLeft: \"pdfjs-editor-resizer-bottom-left\",\n middleLeft: \"pdfjs-editor-resizer-middle-left\"\n });\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n unreachable(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n get isEnterHandled() {\n return true;\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n } else {\n this.#stopResizing();\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#initialPosition ||= [this.x, this.y];\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n this.#initialPosition ||= [this.x, this.y];\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n get _hasBeenMoved() {\n return !!this.#initialPosition && (this.#initialPosition[0] !== this.x || this.#initialPosition[1] !== this.y);\n }\n getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n get _mustFixPosition() {\n return true;\n }\n fixAndSetPosition(rotation = this.rotation) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n if (this._mustFixPosition) {\n switch (rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n return [pageWidth * parentScale, pageHeight * parentScale];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = this._willKeepAspectRatio ? [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"] : [\"topLeft\", \"topMiddle\", \"topRight\", \"middleRight\", \"bottomRight\", \"bottomMiddle\", \"bottomLeft\", \"middleLeft\"];\n const signal = this._uiManager._signal;\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.setAttribute(\"data-resizer-name\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name), {\n signal\n });\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.tabIndex = -1;\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#altText?.toggle(false);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n this.parent.togglePointerEvents(false);\n window.addEventListener(\"pointermove\", this.#resizerPointermove.bind(this, name), {\n passive: true,\n capture: true,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n ac.abort();\n this.parent.togglePointerEvents(true);\n this.#altText?.toggle(true);\n this._isDraggable = savedDraggable;\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n #addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight) {\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n altTextFinish() {\n this.#altText?.finish();\n }\n async addEditToolbar() {\n if (this._editToolbar || this.#isInEditMode) {\n return this._editToolbar;\n }\n this._editToolbar = new EditorToolbar(this);\n this.div.append(this._editToolbar.render());\n if (this.#altText) {\n await this._editToolbar.addAltText(this.#altText);\n }\n return this._editToolbar;\n }\n removeEditToolbar() {\n if (!this._editToolbar) {\n return;\n }\n this._editToolbar.remove();\n this._editToolbar = null;\n this.#altText?.destroy();\n }\n addContainer(container) {\n const editToolbarDiv = this._editToolbar?.div;\n if (editToolbarDiv) {\n editToolbarDiv.before(container);\n } else {\n this.div.append(container);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n async addAltTextButton() {\n if (this.#altText) {\n return;\n }\n AltText.initialize(AnnotationEditor._l10n);\n this.#altText = new AltText(this);\n if (this.#accessibilityData) {\n this.#altText.data = this.#accessibilityData;\n this.#accessibilityData = null;\n }\n await this.addEditToolbar();\n }\n get altTextData() {\n return this.#altText?.data;\n }\n set altTextData(data) {\n if (!this.#altText) {\n return;\n }\n this.#altText.data = data;\n }\n get guessedAltText() {\n return this.#altText?.guessedText;\n }\n async setGuessedAltText(text) {\n await this.#altText?.setGuessedText(text);\n }\n serializeAltText(isForCopying) {\n return this.#altText?.serialize(isForCopying);\n }\n hasAltText() {\n return !!this.#altText && !this.#altText.isEmpty();\n }\n hasAltTextData() {\n return this.#altText?.hasData() ?? false;\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.tabIndex = this.#disabled ? -1 : 0;\n if (!this._isVisible) {\n this.div.classList.add(\"hidden\");\n }\n this.setInForeground();\n this.#addFocusListeners();\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n bindEvents(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n if (this._isDraggable) {\n this.#setUpDragSession(event);\n return;\n }\n this.#selectOnPointerEvent(event);\n }\n get isSelected() {\n return this._uiManager.isSelected(this);\n }\n #selectOnPointerEvent(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n #setUpDragSession(event) {\n const {\n isSelected\n } = this;\n this._uiManager.setUpDragSession();\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n if (isSelected) {\n this.div.classList.add(\"moving\");\n this.#prevDragX = event.clientX;\n this.#prevDragY = event.clientY;\n const pointerMoveCallback = e => {\n const {\n clientX: x,\n clientY: y\n } = e;\n const [tx, ty] = this.screenToPageTranslation(x - this.#prevDragX, y - this.#prevDragY);\n this.#prevDragX = x;\n this.#prevDragY = y;\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, {\n passive: true,\n capture: true,\n signal\n });\n }\n const pointerUpCallback = () => {\n ac.abort();\n if (isSelected) {\n this.div.classList.remove(\"moving\");\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n this.#selectOnPointerEvent(event);\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n moveInDOM() {\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n }\n this.#moveInDOMTimeout = setTimeout(() => {\n this.#moveInDOMTimeout = null;\n this.parent?.moveEditorInDOM(this);\n }, 0);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty, rotation = this.rotation) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return this.#isResizerEnabledForKeyboard;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n #addFocusListeners() {\n if (this.#focusAC || !this.div) {\n return;\n }\n this.#focusAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#focusAC);\n this.div.addEventListener(\"focusin\", this.focusin.bind(this), {\n signal\n });\n this.div.addEventListener(\"focusout\", this.focusout.bind(this), {\n signal\n });\n }\n rebuild() {\n this.#addFocusListeners();\n }\n rotate(_angle) {}\n serializeDeleted() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex,\n popupRef: this._initialData?.popupRef || \"\"\n };\n }\n serialize(isForCopying = false, context = null) {\n unreachable(\"An editor must be serializable\");\n }\n static async deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n editor.#accessibilityData = data.accessibilityData;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n get hasBeenModified() {\n return !!this.annotationElementId && (this.deleted || this.serialize() !== null);\n }\n remove() {\n this.#focusAC?.abort();\n this.#focusAC = null;\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n if (this.#moveInDOMTimeout) {\n clearTimeout(this.#moveInDOMTimeout);\n this.#moveInDOMTimeout = null;\n }\n this.#stopResizing();\n this.removeEditToolbar();\n if (this.#telemetryTimeouts) {\n for (const timeout of this.#telemetryTimeouts.values()) {\n clearTimeout(timeout);\n }\n this.#telemetryTimeouts = null;\n }\n this.parent = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n bindEvents(this, this.div, [\"keydown\"]);\n }\n }\n get toolbarPosition() {\n return null;\n }\n keydown(event) {\n if (!this.isResizable || event.target !== this.div || event.key !== \"Enter\") {\n return;\n }\n this._uiManager.setSelected(this);\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\n const children = this.#resizersDiv.children;\n if (!this.#allResizerDivs) {\n this.#allResizerDivs = Array.from(children);\n const boundResizerKeydown = this.#resizerKeydown.bind(this);\n const boundResizerBlur = this.#resizerBlur.bind(this);\n const signal = this._uiManager._signal;\n for (const div of this.#allResizerDivs) {\n const name = div.getAttribute(\"data-resizer-name\");\n div.setAttribute(\"role\", \"spinbutton\");\n div.addEventListener(\"keydown\", boundResizerKeydown, {\n signal\n });\n div.addEventListener(\"blur\", boundResizerBlur, {\n signal\n });\n div.addEventListener(\"focus\", this.#resizerFocus.bind(this, name), {\n signal\n });\n div.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n }\n }\n const first = this.#allResizerDivs[0];\n let firstPosition = 0;\n for (const div of children) {\n if (div === first) {\n break;\n }\n firstPosition++;\n }\n const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4);\n if (nextFirstPosition !== firstPosition) {\n if (nextFirstPosition < firstPosition) {\n for (let i = 0; i < firstPosition - nextFirstPosition; i++) {\n this.#resizersDiv.append(this.#resizersDiv.firstChild);\n }\n } else if (nextFirstPosition > firstPosition) {\n for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n this.#resizersDiv.firstChild.before(this.#resizersDiv.lastChild);\n }\n }\n let i = 0;\n for (const child of children) {\n const div = this.#allResizerDivs[i++];\n const name = div.getAttribute(\"data-resizer-name\");\n child.setAttribute(\"data-l10n-id\", AnnotationEditor._l10nResizer[name]);\n }\n }\n this.#setResizerTabIndex(0);\n this.#isResizerEnabledForKeyboard = true;\n this.#resizersDiv.firstChild.focus({\n focusVisible: true\n });\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n #resizerKeydown(event) {\n AnnotationEditor._resizerKeyboardManager.exec(this, event);\n }\n #resizerBlur(event) {\n if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) {\n this.#stopResizing();\n }\n }\n #resizerFocus(name) {\n this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : \"\";\n }\n #setResizerTabIndex(value) {\n if (!this.#allResizerDivs) {\n return;\n }\n for (const div of this.#allResizerDivs) {\n div.tabIndex = value;\n }\n }\n _resizeWithKeyboard(x, y) {\n if (!this.#isResizerEnabledForKeyboard) {\n return;\n }\n this.#resizerPointermove(this.#focusedResizerName, {\n movementX: x,\n movementY: y\n });\n }\n #stopResizing() {\n this.#isResizerEnabledForKeyboard = false;\n this.#setResizerTabIndex(-1);\n if (this.#savedDimensions) {\n const {\n savedX,\n savedY,\n savedWidth,\n savedHeight\n } = this.#savedDimensions;\n this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight);\n this.#savedDimensions = null;\n }\n }\n _stopResizingWithKeyboard() {\n this.#stopResizing();\n this.div.focus();\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n if (!this._editToolbar) {\n this.addEditToolbar().then(() => {\n if (this.div?.classList.contains(\"selectedEditor\")) {\n this._editToolbar?.show();\n }\n });\n return;\n }\n this._editToolbar?.show();\n this.#altText?.toggleAltTextBadge(false);\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus({\n preventScroll: true\n });\n }\n this._editToolbar?.hide();\n this.#altText?.toggleAltTextBadge(true);\n }\n updateParams(type, value) {}\n disableEditing() {}\n enableEditing() {}\n enterInEditMode() {}\n getImageForAltText() {\n return null;\n }\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n static canCreateNewEmptyEditor() {\n return true;\n }\n get telemetryInitialData() {\n return {\n action: \"added\"\n };\n }\n get telemetryFinalData() {\n return null;\n }\n _reportTelemetry(data, mustWait = false) {\n if (mustWait) {\n this.#telemetryTimeouts ||= new Map();\n const {\n action\n } = data;\n let timeout = this.#telemetryTimeouts.get(action);\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n this._reportTelemetry(data);\n this.#telemetryTimeouts.delete(action);\n if (this.#telemetryTimeouts.size === 0) {\n this.#telemetryTimeouts = null;\n }\n }, AnnotationEditor._telemetryTimeout);\n this.#telemetryTimeouts.set(action, timeout);\n return;\n }\n data.type ||= this.editorType;\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n data\n }\n });\n }\n show(visible = this._isVisible) {\n this.div.classList.toggle(\"hidden\", !visible);\n this._isVisible = visible;\n }\n enable() {\n if (this.div) {\n this.div.tabIndex = 0;\n }\n this.#disabled = false;\n }\n disable() {\n if (this.div) {\n this.div.tabIndex = -1;\n }\n this.#disabled = true;\n }\n renderAnnotationElement(annotation) {\n let content = annotation.container.querySelector(\".annotationContent\");\n if (!content) {\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n annotation.container.prepend(content);\n } else if (content.nodeName === \"CANVAS\") {\n const canvas = content;\n content = document.createElement(\"div\");\n content.classList.add(\"annotationContent\", this.editorType);\n canvas.before(content);\n }\n return content;\n }\n resetAnnotationElement(annotation) {\n const {\n firstChild\n } = annotation.container;\n if (firstChild?.nodeName === \"DIV\" && firstChild.classList.contains(\"annotationContent\")) {\n firstChild.remove();\n }\n }\n}\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return this.serializeDeleted();\n }\n}\n\n;// ./src/shared/murmurhash3.js\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (ArrayBuffer.isView(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Invalid data format, must be a string or TypedArray.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\n\n;// ./src/display/annotation_storage.js\n\n\n\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfer: undefined\n});\nclass AnnotationStorage {\n #modified = false;\n #modifiedIds = null;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? objectFromMap(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new MurmurHash3_64(),\n transfer = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfer.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfer\n } : SerializableEmpty;\n }\n get editorStats() {\n let stats = null;\n const typeToEditor = new Map();\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor)) {\n continue;\n }\n const editorStats = value.telemetryFinalData;\n if (!editorStats) {\n continue;\n }\n const {\n type\n } = editorStats;\n if (!typeToEditor.has(type)) {\n typeToEditor.set(type, Object.getPrototypeOf(value).constructor);\n }\n stats ||= Object.create(null);\n const map = stats[type] ||= new Map();\n for (const [key, val] of Object.entries(editorStats)) {\n if (key === \"type\") {\n continue;\n }\n let counters = map.get(key);\n if (!counters) {\n counters = new Map();\n map.set(key, counters);\n }\n const count = counters.get(val) ?? 0;\n counters.set(val, count + 1);\n }\n }\n for (const [type, editor] of typeToEditor) {\n stats[type] = editor.computeTelemetryFinalData(stats[type]);\n }\n return stats;\n }\n resetModifiedIds() {\n this.#modifiedIds = null;\n }\n get modifiedIds() {\n if (this.#modifiedIds) {\n return this.#modifiedIds;\n }\n const ids = [];\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor) || !value.annotationElementId || !value.serialize()) {\n continue;\n }\n ids.push(value.annotationElementId);\n }\n return this.#modifiedIds = {\n ids: new Set(ids),\n hash: ids.join(\",\")\n };\n }\n}\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfer\n } = parent.serializable;\n const clone = structuredClone(map, transfer ? {\n transfer\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfer\n };\n }\n get print() {\n unreachable(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n get modifiedIds() {\n return shadow(this, \"modifiedIds\", {\n ids: new Set(),\n hash: \"\"\n });\n }\n}\n\n;// ./src/display/font_loader.js\n\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont({\n systemFontInfo: info,\n _inspectFont\n }) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n assert(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n _inspectFont?.(info);\n } catch {\n warn(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n unreachable(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && typeof navigator?.userAgent === \"string\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return shadow(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n assert(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n 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==\");\n return shadow(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n warn(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nclass FontFaceObject {\n constructor(translatedData, {\n disableFontFace = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.disableFontFace = disableFontFace === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const url = `url(data:${this.mimetype};base64,${toBase64Util(this.data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n }\n if (!Array.isArray(cmds) || cmds.length === 0) {\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n const commands = [];\n for (let i = 0, ii = cmds.length; i < ii;) {\n switch (cmds[i++]) {\n case FontRenderOps.BEZIER_CURVE_TO:\n {\n const [a, b, c, d, e, f] = cmds.slice(i, i + 6);\n commands.push(ctx => ctx.bezierCurveTo(a, b, c, d, e, f));\n i += 6;\n }\n break;\n case FontRenderOps.MOVE_TO:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.moveTo(a, b));\n i += 2;\n }\n break;\n case FontRenderOps.LINE_TO:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.lineTo(a, b));\n i += 2;\n }\n break;\n case FontRenderOps.QUADRATIC_CURVE_TO:\n {\n const [a, b, c, d] = cmds.slice(i, i + 4);\n commands.push(ctx => ctx.quadraticCurveTo(a, b, c, d));\n i += 4;\n }\n break;\n case FontRenderOps.RESTORE:\n commands.push(ctx => ctx.restore());\n break;\n case FontRenderOps.SAVE:\n commands.push(ctx => ctx.save());\n break;\n case FontRenderOps.SCALE:\n assert(commands.length === 2, \"Scale command is only valid at the third position.\");\n break;\n case FontRenderOps.TRANSFORM:\n {\n const [a, b, c, d, e, f] = cmds.slice(i, i + 6);\n commands.push(ctx => ctx.transform(a, b, c, d, e, f));\n i += 6;\n }\n break;\n case FontRenderOps.TRANSLATE:\n {\n const [a, b] = cmds.slice(i, i + 2);\n commands.push(ctx => ctx.translate(a, b));\n i += 2;\n }\n break;\n }\n }\n return this.compiledGlyphs[character] = function glyphDrawer(ctx, size) {\n commands[0](ctx);\n commands[1](ctx);\n ctx.scale(size, -size);\n for (let i = 2, ii = commands.length; i < ii; i++) {\n commands[i](ctx);\n }\n };\n }\n}\n\n;// ./src/display/canvas_factory.js\n\nclass BaseCanvasFactory {\n #enableHWA = false;\n constructor({\n enableHWA = false\n }) {\n this.#enableHWA = enableHWA;\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\", {\n willReadFrequently: !this.#enableHWA\n })\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n unreachable(\"Abstract method `_createCanvas` called.\");\n }\n}\nclass DOMCanvasFactory extends BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document,\n enableHWA = false\n }) {\n super({\n enableHWA\n });\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\n\n;// ./src/display/cmap_reader_factory.js\n\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error(\"Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.\");\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n return this._fetch(url).then(cMapData => ({\n cMapData,\n isCompressed: this.isCompressed\n })).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n async _fetch(url) {\n const data = await fetchData(url, this.isCompressed ? \"arraybuffer\" : \"text\");\n return data instanceof ArrayBuffer ? new Uint8Array(data) : stringToBytes(data);\n }\n}\n\n;// ./src/display/filter_factory.js\n\n\nclass BaseFilterFactory {\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addAlphaFilter(map) {\n return \"none\";\n }\n addLuminosityFilter(map) {\n return \"none\";\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nclass DOMFilterFactory extends BaseFilterFactory {\n #baseUrl;\n #_cache;\n #_defs;\n #docId;\n #document;\n #_hcmCache;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n }) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #hcmCache() {\n return this.#_hcmCache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n #createTables(maps) {\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n const table = buffer.join(\",\");\n return [table, table, table];\n }\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n return [bufferR.join(\",\"), bufferG.join(\",\"), bufferB.join(\",\")];\n }\n #createUrl(id) {\n if (this.#baseUrl === undefined) {\n this.#baseUrl = \"\";\n const url = this.#document.URL;\n if (url !== this.#document.baseURI) {\n if (isDataScheme(url)) {\n warn('#createUrl: ignore \"data:\"-URL for performance reasons.');\n } else {\n this.#baseUrl = url.split(\"#\", 1)[0];\n }\n }\n }\n return `url(${this.#baseUrl}#${id})`;\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n const [tableR, tableG, tableB] = this.#createTables(maps);\n const key = maps.length === 1 ? tableR : `${tableR}${tableG}${tableB}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n const filterName = \"base\";\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return info.url;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = info.filter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n info.url = this.#createUrl(id);\n return info.url;\n }\n addAlphaFilter(map) {\n let value = this.#cache.get(map);\n if (value) {\n return value;\n }\n const [tableA] = this.#createTables([map]);\n const key = `alpha_${tableA}`;\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_alpha_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapAlphaConversion(tableA, filter);\n return url;\n }\n addLuminosityFilter(map) {\n let value = this.#cache.get(map || \"luminosity\");\n if (value) {\n return value;\n }\n let tableA, key;\n if (map) {\n [tableA] = this.#createTables([map]);\n key = `luminosity_${tableA}`;\n } else {\n key = \"luminosity\";\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(map, value);\n return value;\n }\n const id = `g_${this.#docId}_luminosity_map_${this.#id++}`;\n const url = this.#createUrl(id);\n this.#cache.set(map, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addLuminosityConversion(filter);\n if (map) {\n this.#addTransferMapAlphaConversion(tableA, filter);\n }\n return url;\n }\n addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n let info = this.#hcmCache.get(filterName);\n if (info?.key === key) {\n return info.url;\n }\n if (info) {\n info.filter?.remove();\n info.key = key;\n info.url = \"none\";\n info.filter = null;\n } else {\n info = {\n key,\n url: \"none\",\n filter: null\n };\n this.#hcmCache.set(filterName, info);\n }\n if (!fgColor || !bgColor) {\n return info.url;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_${filterName}_filter`;\n const filter = info.filter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n info.url = this.#createUrl(id);\n return info.url;\n }\n destroy(keepHCM = false) {\n if (keepHCM && this.#hcmCache.size !== 0) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addLuminosityConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0\");\n filter.append(feColorMatrix);\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #addTransferMapAlphaConversion(aTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncA\", aTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\n\n;// ./src/display/standard_fontdata_factory.js\n\n\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error(\"Ensure that the `standardFontDataUrl` API parameter is provided.\");\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetch(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n async _fetch(url) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n async _fetch(url) {\n const data = await fetchData(url, \"arraybuffer\");\n return new Uint8Array(data);\n }\n}\n\n;// ./src/display/node_utils.js\n\n\n\n\n\nif (isNodeJS) {\n var packageCapability = Promise.withResolvers();\n var packageMap = null;\n const loadPackages = async () => {\n const fs = await import(/*webpackIgnore: true*/\"fs\"),\n http = await import(/*webpackIgnore: true*/\"http\"),\n https = await import(/*webpackIgnore: true*/\"https\"),\n url = await import(/*webpackIgnore: true*/\"url\");\n let canvas, path2d;\n return new Map(Object.entries({\n fs,\n http,\n https,\n url,\n canvas,\n path2d\n }));\n };\n loadPackages().then(map => {\n packageMap = map;\n packageCapability.resolve();\n }, reason => {\n warn(`loadPackages: ${reason}`);\n packageMap = new Map();\n packageCapability.resolve();\n });\n}\nclass NodePackages {\n static get promise() {\n return packageCapability.promise;\n }\n static get(name) {\n return packageMap?.get(name);\n }\n}\nasync function node_utils_fetchData(url) {\n const fs = NodePackages.get(\"fs\");\n const data = await fs.promises.readFile(url);\n return new Uint8Array(data);\n}\nclass NodeFilterFactory extends BaseFilterFactory {}\nclass NodeCanvasFactory extends BaseCanvasFactory {\n _createCanvas(width, height) {\n const canvas = NodePackages.get(\"canvas\");\n return canvas.createCanvas(width, height);\n }\n}\nclass NodeCMapReaderFactory extends BaseCMapReaderFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\nclass NodeStandardFontDataFactory extends BaseStandardFontDataFactory {\n async _fetch(url) {\n return node_utils_fetchData(url);\n }\n}\n\n;// ./src/display/pattern_helper.js\n\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n getPattern() {\n unreachable(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, getCurrentTransform(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = Util.singularValueDecompose2dScale(getCurrentTransform(ctx));\n } else {\n scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const {\n bbox,\n operatorList,\n paintType,\n tilingType,\n color,\n canvasGraphicsFactory\n } = this;\n let {\n xstep,\n ystep\n } = this;\n xstep = Math.abs(xstep);\n ystep = Math.abs(ystep);\n info(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const width = x1 - x0;\n const height = y1 - y0;\n const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScaleX = matrixScale[0] * curMatrixScale[0];\n const combinedScaleY = matrixScale[1] * curMatrixScale[1];\n let canvasWidth = width,\n canvasHeight = height,\n redrawHorizontally = false,\n redrawVertically = false;\n const xScaledStep = Math.ceil(xstep * combinedScaleX);\n const yScaledStep = Math.ceil(ystep * combinedScaleY);\n const xScaledWidth = Math.ceil(width * combinedScaleX);\n const yScaledHeight = Math.ceil(height * combinedScaleY);\n if (xScaledStep >= xScaledWidth) {\n canvasWidth = xstep;\n } else {\n redrawHorizontally = true;\n }\n if (yScaledStep >= yScaledHeight) {\n canvasHeight = ystep;\n } else {\n redrawVertically = true;\n }\n const dimx = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n tmpCtx.translate(-dimx.scale * x0, -dimy.scale * y0);\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, x0, y0, x1, y1);\n graphics.baseTransform = getCurrentTransform(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n tmpCtx.restore();\n if (redrawHorizontally || redrawVertically) {\n const image = tmpCanvas.canvas;\n if (redrawHorizontally) {\n canvasWidth = xstep;\n }\n if (redrawVertically) {\n canvasHeight = ystep;\n }\n const dimx2 = this.getSizeAndScale(canvasWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy2 = this.getSizeAndScale(canvasHeight, this.ctx.canvas.height, combinedScaleY);\n const xSize = dimx2.size;\n const ySize = dimy2.size;\n const tmpCanvas2 = owner.cachedCanvases.getCanvas(\"pattern-workaround\", xSize, ySize);\n const tmpCtx2 = tmpCanvas2.context;\n const ii = redrawHorizontally ? Math.floor(width / xstep) : 0;\n const jj = redrawVertically ? Math.floor(height / ystep) : 0;\n for (let i = 0; i <= ii; i++) {\n for (let j = 0; j <= jj; j++) {\n tmpCtx2.drawImage(image, xSize * i, ySize * j, xSize, ySize, 0, 0, xSize, ySize);\n }\n }\n return {\n canvas: tmpCanvas2.canvas,\n scaleX: dimx2.scale,\n scaleY: dimy2.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax(getCurrentTransform(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\n\n;// ./src/shared/image_utils.js\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = util_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n;// ./src/display/canvas.js\n\n\n\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = getCurrentTransform(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = Util.applyTransform(rect, transform);\n const p2 = Util.applyTransform(rect.slice(2), transform);\n const p3 = Util.applyTransform([rect[0], rect[3]], transform);\n const p4 = Util.applyTransform([rect[2], rect[1]], transform);\n this.minX = Math.min(this.minX, p1[0], p2[0], p3[0], p4[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1], p3[1], p4[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0], p3[0], p4[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1], p3[1], p4[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.minY = Math.min(this.minY, minMax[1]);\n this.maxX = Math.max(this.maxX, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax);\n if (minMax) {\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n const scale = Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n return Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === util_ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = util_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === util_ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === util_ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = convertBlackAndWhiteToRGBA({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n if (interpolate) {\n return true;\n }\n const scale = Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS);\n return scale[0] <= actualScale && scale[1] <= actualScale;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...getCurrentTransform(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = getCurrentTransform(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.current.activeSMask = null;\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width ?? img.displayWidth;\n const height = img.height ?? img.displayHeight;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = getCurrentTransform(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox([0, 0, width, height], maskToCanvas);\n const drawnWidth = Math.round(maxX - minX) || 1;\n const drawnHeight = Math.round(maxY - minY) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = minX;\n const offsetY = minY;\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...getCurrentTransform(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n this.composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n this.genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n }\n genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n let maskCanvas = maskCtx.canvas;\n let maskX = layerOffsetX - maskOffsetX;\n let maskY = layerOffsetY - maskOffsetY;\n if (backdrop) {\n const backdropRGB = Util.makeHexColor(...backdrop);\n if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {\n const canvas = this.cachedCanvases.getCanvas(\"maskExtension\", width, height);\n const ctx = canvas.context;\n ctx.drawImage(maskCanvas, -maskX, -maskY);\n ctx.globalCompositeOperation = \"destination-atop\";\n ctx.fillStyle = backdropRGB;\n ctx.fillRect(0, 0, width, height);\n ctx.globalCompositeOperation = \"source-over\";\n maskCanvas = canvas.canvas;\n maskX = maskY = 0;\n } else {\n maskCtx.save();\n maskCtx.globalAlpha = 1;\n maskCtx.setTransform(1, 0, 0, 1, 0, 0);\n const clip = new Path2D();\n clip.rect(maskX, maskY, width, height);\n maskCtx.clip(clip);\n maskCtx.globalCompositeOperation = \"destination-atop\";\n maskCtx.fillStyle = backdropRGB;\n maskCtx.fillRect(maskX, maskY, width, height);\n maskCtx.restore();\n }\n }\n layerCtx.save();\n layerCtx.globalAlpha = 1;\n layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n if (subtype === \"Alpha\" && transferMap) {\n layerCtx.filter = this.filterFactory.addAlphaFilter(transferMap);\n } else if (subtype === \"Luminosity\") {\n layerCtx.filter = this.filterFactory.addLuminosityFilter(transferMap);\n }\n const clip = new Path2D();\n clip.rect(layerOffsetX, layerOffsetY, width, height);\n layerCtx.clip(clip);\n layerCtx.globalCompositeOperation = \"destination-in\";\n layerCtx.drawImage(maskCanvas, maskX, maskY, width, height, layerOffsetX, layerOffsetY, width, height);\n layerCtx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = getCurrentTransform(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n warn(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: getCurrentTransform(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL);\n patternTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n })\n };\n pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n this.ctx.strokeStyle = this.current.strokeColor = Util.makeHexColor(r, g, b);\n }\n setStrokeTransparent() {\n this.ctx.strokeStyle = this.current.strokeColor = \"transparent\";\n }\n setFillRGBColor(r, g, b) {\n this.ctx.fillStyle = this.current.fillColor = Util.makeHexColor(r, g, b);\n this.current.patternFill = false;\n }\n setFillTransparent() {\n this.ctx.fillStyle = this.current.fillColor = \"transparent\";\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = getShadingPattern(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING);\n const inv = getCurrentTransformInverse(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (matrix) {\n this.transform(...matrix);\n }\n this.baseTransform = getCurrentTransform(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax(getCurrentTransform(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n info(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n warn(\"Knockout groups not supported.\");\n }\n const currentTransform = getCurrentTransform(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = Util.getAxialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n const drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n const drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = getCurrentTransform(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (rect) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.endPath();\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.ctx.beginPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = getCurrentTransform(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, getCurrentTransformInverse(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = getCurrentTransform(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nfor (const op in OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n;// ./src/display/worker_options.js\nclass GlobalWorkerOptions {\n static #port = null;\n static #src = \"\";\n static get workerPort() {\n return this.#port;\n }\n static set workerPort(val) {\n if (!(typeof Worker !== \"undefined\" && val instanceof Worker) && val !== null) {\n throw new Error(\"Invalid `workerPort` type.\");\n }\n this.#port = val;\n }\n static get workerSrc() {\n return this.#src;\n }\n static set workerSrc(val) {\n if (typeof val !== \"string\") {\n throw new Error(\"Invalid `workerSrc` type.\");\n }\n this.#src = val;\n }\n}\n\n;// ./src/shared/message_handler.js\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n unreachable('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n #messageAC = new AbortController();\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n comObj.addEventListener(\"message\", this.#onMessage.bind(this), {\n signal: this.#messageAC.signal\n });\n }\n #onMessage({\n data\n }) {\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName,\n targetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = Promise.withResolvers();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = Promise.withResolvers();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = Promise.withResolvers();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = Promise.withResolvers();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = Promise.withResolvers();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: Promise.withResolvers(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.#messageAC?.abort();\n this.#messageAC = null;\n }\n}\n\n;// ./src/display/metadata.js\n\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return objectFromMap(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\n\n;// ./src/display/optional_content_config.js\n\n\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #isDisplay = false;\n #isPrint = false;\n #userSet = false;\n #visible = true;\n constructor(renderingIntent, {\n name,\n intent,\n usage,\n rbGroups\n }) {\n this.#isDisplay = !!(renderingIntent & RenderingIntentFlag.DISPLAY);\n this.#isPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n this.name = name;\n this.intent = intent;\n this.usage = usage;\n this.rbGroups = rbGroups;\n }\n get visible() {\n if (this.#userSet) {\n return this.#visible;\n }\n if (!this.#visible) {\n return false;\n }\n const {\n print,\n view\n } = this.usage;\n if (this.#isDisplay) {\n return view?.viewState !== \"OFF\";\n } else if (this.#isPrint) {\n return print?.printState !== \"OFF\";\n }\n return true;\n }\n _setVisible(internal, visible, userSet = false) {\n if (internal !== INTERNAL) {\n unreachable(\"Internal method `_setVisible` called.\");\n }\n this.#userSet = userSet;\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data, renderingIntent = RenderingIntentFlag.DISPLAY) {\n this.renderingIntent = renderingIntent;\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(renderingIntent, group));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n warn(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n info(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n warn(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n warn(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n warn(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n warn(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true, preserveRB = true) {\n const group = this.#groups.get(id);\n if (!group) {\n warn(`Optional content group not found: ${id}`);\n return;\n }\n if (preserveRB && visible && group.rbGroups.length) {\n for (const rbGroup of group.rbGroups) {\n for (const otherId of rbGroup) {\n if (otherId !== id) {\n this.#groups.get(otherId)?._setVisible(INTERNAL, false, true);\n }\n }\n }\n }\n group._setVisible(INTERNAL, !!visible, true);\n this.#cachedGetHash = null;\n }\n setOCGState({\n state,\n preserveRB\n }) {\n let operator;\n for (const elem of state) {\n switch (elem) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n operator = elem;\n continue;\n }\n const group = this.#groups.get(elem);\n if (!group) {\n continue;\n }\n switch (operator) {\n case \"ON\":\n this.setVisibility(elem, true, preserveRB);\n break;\n case \"OFF\":\n this.setVisibility(elem, false, preserveRB);\n break;\n case \"Toggle\":\n this.setVisibility(elem, !group.visible, preserveRB);\n break;\n }\n }\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? objectFromMap(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\n\n;// ./src/display/transport_stream.js\n\n\nclass PDFDataTransportStream {\n constructor(pdfDataRangeTransport, {\n disableRange = false,\n disableStream = false\n }) {\n assert(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n const {\n length,\n initialData,\n progressiveDone,\n contentDispositionFilename\n } = pdfDataRangeTransport;\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n assert(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = isPdfFile(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n;// ./src/display/content_disposition.js\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n;// ./src/display/network_utils.js\n\n\n\nfunction createHeaders(isHttp, httpHeaders) {\n const headers = new Headers();\n if (!isHttp || !httpHeaders || typeof httpHeaders !== \"object\") {\n return headers;\n }\n for (const key in httpHeaders) {\n const val = httpHeaders[key];\n if (val !== undefined) {\n headers.append(key, val);\n }\n }\n return headers;\n}\nfunction validateRangeRequestCapabilities({\n responseHeaders,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(responseHeaders.get(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (responseHeaders.get(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = responseHeaders.get(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(responseHeaders) {\n const contentDisposition = responseHeaders.get(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if (isPdfFile(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n;// ./src/display/fetch_stream.js\n\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n warn(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.headers = createHeaders(this.isHttp, source.httpHeaders);\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = Promise.withResolvers();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n const headers = new Headers(stream.headers);\n const url = source.url;\n fetch(url, createFetchOptions(headers, this._withCredentials, this._abortController)).then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const responseHeaders = response.headers;\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = Promise.withResolvers();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n const headers = new Headers(stream.headers);\n headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(headers, this._withCredentials, this._abortController)).then(response => {\n if (!validateResponseStatus(response.status)) {\n throw createResponseStatusError(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n;// ./src/display/network.js\n\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction network_getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return stringToBytes(data).buffer;\n}\nclass NetworkManager {\n constructor({\n url,\n httpHeaders,\n withCredentials\n }) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.headers = createHeaders(this.isHttp, httpHeaders);\n this.withCredentials = withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const [key, val] of this.headers) {\n xhr.setRequestHeader(key, val);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = network_getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source);\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersCapability = Promise.withResolvers();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const responseHeaders = new Headers(fullRequestXhr.getAllResponseHeaders().trim().split(/[\\r\\n]+/).map(x => {\n const [key, ...val] = x.split(\": \");\n return [key, val.join(\": \")];\n }));\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n this._headersCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = createResponseStatusError(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = Promise.withResolvers();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n;// ./src/display/node_stream.js\n\n\n\nconst urlRegex = /^[a-z][a-z0-9\\-+.]+:/i;\nfunction parseUrlOrPath(sourceUrl) {\n if (urlRegex.test(sourceUrl)) {\n return new URL(sourceUrl);\n }\n const url = NodePackages.get(\"url\");\n return new URL(url.pathToFileURL(sourceUrl));\n}\nfunction createRequest(url, headers, callback) {\n if (url.protocol === \"http:\") {\n const http = NodePackages.get(\"http\");\n return http.request(url, {\n headers\n }, callback);\n }\n const https = NodePackages.get(\"https\");\n return https.request(url, {\n headers\n }, callback);\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrlOrPath(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.headers = createHeaders(this.isHttp, source.httpHeaders);\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = Promise.withResolvers();\n this._headersCapability = Promise.withResolvers();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = Promise.withResolvers();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = Promise.withResolvers();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = Promise.withResolvers();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const headers = Object.fromEntries(stream.headers);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const responseHeaders = new Headers(this._readableStream.headers);\n const {\n allowRangeRequests,\n suggestedLength\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = extractFilenameFromHeader(responseHeaders);\n };\n this._request = createRequest(this._url, headers, handleResponse);\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n const headers = Object.fromEntries(stream.headers);\n headers.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = createRequest(this._url, headers, handleResponse);\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const fs = NodePackages.get(\"fs\");\n fs.promises.lstat(this._url).then(stat => {\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(this._url));\n this._headersCapability.resolve();\n }, error => {\n if (error.code === \"ENOENT\") {\n error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n const fs = NodePackages.get(\"fs\");\n this._setReadableStream(fs.createReadStream(this._url, {\n start,\n end: end - 1\n }));\n }\n}\n\n;// ./src/display/text_layer.js\n\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nclass TextLayer {\n #capability = Promise.withResolvers();\n #container = null;\n #disableProcessItems = false;\n #fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n #lang = null;\n #layoutTextParams = null;\n #pageHeight = 0;\n #pageWidth = 0;\n #reader = null;\n #rootContainer = null;\n #rotation = 0;\n #scale = 0;\n #styleCache = Object.create(null);\n #textContentItemsStr = [];\n #textContentSource = null;\n #textDivs = [];\n #textDivProperties = new WeakMap();\n #transform = null;\n static #ascentCache = new Map();\n static #canvasContexts = new Map();\n static #canvasCtxFonts = new WeakMap();\n static #minFontSize = null;\n static #pendingTextLayers = new Set();\n constructor({\n textContentSource,\n container,\n viewport\n }) {\n if (textContentSource instanceof ReadableStream) {\n this.#textContentSource = textContentSource;\n } else if (typeof textContentSource === \"object\") {\n this.#textContentSource = new ReadableStream({\n start(controller) {\n controller.enqueue(textContentSource);\n controller.close();\n }\n });\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n this.#container = this.#rootContainer = container;\n this.#scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n this.#rotation = viewport.rotation;\n this.#layoutTextParams = {\n div: null,\n properties: null,\n ctx: null\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this.#transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this.#pageWidth = pageWidth;\n this.#pageHeight = pageHeight;\n TextLayer.#ensureMinFontSizeComputed();\n setLayerDimensions(container, viewport);\n this.#capability.promise.finally(() => {\n TextLayer.#pendingTextLayers.delete(this);\n this.#layoutTextParams = null;\n this.#styleCache = null;\n }).catch(() => {});\n }\n static get fontFamilyMap() {\n const {\n isWindows,\n isFirefox\n } = util_FeatureTest.platform;\n return shadow(this, \"fontFamilyMap\", new Map([[\"sans-serif\", `${isWindows && isFirefox ? \"Calibri, \" : \"\"}sans-serif`], [\"monospace\", `${isWindows && isFirefox ? \"Lucida Console, \" : \"\"}monospace`]]));\n }\n render() {\n const pump = () => {\n this.#reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n this.#capability.resolve();\n return;\n }\n this.#lang ??= value.lang;\n Object.assign(this.#styleCache, value.styles);\n this.#processItems(value.items);\n pump();\n }, this.#capability.reject);\n };\n this.#reader = this.#textContentSource.getReader();\n TextLayer.#pendingTextLayers.add(this);\n pump();\n return this.#capability.promise;\n }\n update({\n viewport,\n onBefore = null\n }) {\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const rotation = viewport.rotation;\n if (rotation !== this.#rotation) {\n onBefore?.();\n this.#rotation = rotation;\n setLayerDimensions(this.#rootContainer, {\n rotation\n });\n }\n if (scale !== this.#scale) {\n onBefore?.();\n this.#scale = scale;\n const params = {\n div: null,\n properties: null,\n ctx: TextLayer.#getCtx(this.#lang)\n };\n for (const div of this.#textDivs) {\n params.properties = this.#textDivProperties.get(div);\n params.div = div;\n this.#layout(params);\n }\n }\n }\n cancel() {\n const abortEx = new AbortException(\"TextLayer task cancelled.\");\n this.#reader?.cancel(abortEx).catch(() => {});\n this.#reader = null;\n this.#capability.reject(abortEx);\n }\n get textDivs() {\n return this.#textDivs;\n }\n get textContentItemsStr() {\n return this.#textContentItemsStr;\n }\n #processItems(items) {\n if (this.#disableProcessItems) {\n return;\n }\n this.#layoutTextParams.ctx ??= TextLayer.#getCtx(this.#lang);\n const textDivs = this.#textDivs,\n textContentItemsStr = this.#textContentItemsStr;\n for (const item of items) {\n if (textDivs.length > MAX_TEXT_DIVS_TO_RENDER) {\n warn(\"Ignoring additional textDivs for performance reasons.\");\n this.#disableProcessItems = true;\n return;\n }\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this.#container;\n this.#container = document.createElement(\"span\");\n this.#container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this.#container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this.#container);\n } else if (item.type === \"endMarkedContent\") {\n this.#container = this.#container.parentNode;\n }\n continue;\n }\n textContentItemsStr.push(item.str);\n this.#appendText(item);\n }\n }\n #appendText(geom) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n this.#textDivs.push(textDiv);\n const tx = Util.transform(this.#transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = this.#styleCache[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n let fontFamily = this.#fontInspectorEnabled && style.fontSubstitution || style.fontFamily;\n fontFamily = TextLayer.fontFamilyMap.get(fontFamily) || fontFamily;\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * TextLayer.#getAscent(fontFamily, this.#lang);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (this.#container === this.#rootContainer) {\n divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${(TextLayer.#minFontSize * fontHeight).toFixed(2)}px)`;\n divStyle.fontFamily = fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (this.#fontInspectorEnabled) {\n textDiv.dataset.fontName = style.fontSubstitutionLoadedName || geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n this.#textDivProperties.set(textDiv, textDivProperties);\n this.#layoutTextParams.div = textDiv;\n this.#layoutTextParams.properties = textDivProperties;\n this.#layout(this.#layoutTextParams);\n if (textDivProperties.hasText) {\n this.#container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this.#container.append(br);\n }\n }\n #layout(params) {\n const {\n div,\n properties,\n ctx\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (TextLayer.#minFontSize > 1) {\n transform = `scale(${1 / TextLayer.#minFontSize})`;\n }\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n TextLayer.#ensureCtxFont(ctx, fontSize * this.#scale, fontFamily);\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * this.#scale / width}) ${transform}`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n }\n static cleanup() {\n if (this.#pendingTextLayers.size > 0) {\n return;\n }\n this.#ascentCache.clear();\n for (const {\n canvas\n } of this.#canvasContexts.values()) {\n canvas.remove();\n }\n this.#canvasContexts.clear();\n }\n static #getCtx(lang = null) {\n let ctx = this.#canvasContexts.get(lang ||= \"\");\n if (!ctx) {\n const canvas = document.createElement(\"canvas\");\n canvas.className = \"hiddenCanvasElement\";\n canvas.lang = lang;\n document.body.append(canvas);\n ctx = canvas.getContext(\"2d\", {\n alpha: false,\n willReadFrequently: true\n });\n this.#canvasContexts.set(lang, ctx);\n this.#canvasCtxFonts.set(ctx, {\n size: 0,\n family: \"\"\n });\n }\n return ctx;\n }\n static #ensureCtxFont(ctx, size, family) {\n const cached = this.#canvasCtxFonts.get(ctx);\n if (size === cached.size && family === cached.family) {\n return;\n }\n ctx.font = `${size}px ${family}`;\n cached.size = size;\n cached.family = family;\n }\n static #ensureMinFontSizeComputed() {\n if (this.#minFontSize !== null) {\n return;\n }\n const div = document.createElement(\"div\");\n div.style.opacity = 0;\n div.style.lineHeight = 1;\n div.style.fontSize = \"1px\";\n div.style.position = \"absolute\";\n div.textContent = \"X\";\n document.body.append(div);\n this.#minFontSize = div.getBoundingClientRect().height;\n div.remove();\n }\n static #getAscent(fontFamily, lang) {\n const cachedAscent = this.#ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = this.#getCtx(lang);\n ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE;\n this.#ensureCtxFont(ctx, DEFAULT_FONT_SIZE, fontFamily);\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n this.#ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n const ratio = ascent ? ascent / (ascent + descent) : DEFAULT_FONT_ASCENT;\n this.#ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n}\n\n;// ./src/display/xfa_text.js\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\n\n;// ./src/display/api.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = isNodeJS ? NodeCanvasFactory : DOMCanvasFactory;\nconst DefaultCMapReaderFactory = isNodeJS ? NodeCMapReaderFactory : DOMCMapReaderFactory;\nconst DefaultFilterFactory = isNodeJS ? NodeFilterFactory : DOMFilterFactory;\nconst DefaultStandardFontDataFactory = isNodeJS ? NodeStandardFontDataFactory : DOMStandardFontDataFactory;\nfunction getDocument(src = {}) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if (src instanceof ArrayBuffer || ArrayBuffer.isView(src)) {\n src = {\n data: src\n };\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !isNodeJS;\n const isChrome = typeof src.isChrome === \"boolean\" ? src.isChrome : !util_FeatureTest.platform.isFirefox && typeof window !== \"undefined\" && !!window?.chrome;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const CanvasFactory = src.CanvasFactory || DefaultCanvasFactory;\n const FilterFactory = src.FilterFactory || DefaultFilterFactory;\n const enableHWA = src.enableHWA === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === DOMCMapReaderFactory && StandardFontDataFactory === DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI);\n if (src.canvasFactory) {\n deprecated(\"`canvasFactory`-instance option, please use `CanvasFactory` instead.\");\n }\n if (src.filterFactory) {\n deprecated(\"`filterFactory`-instance option, please use `FilterFactory` instead.\");\n }\n const styleElement = null;\n setVerbosityLevel(verbosity);\n const transportFactory = {\n canvasFactory: new CanvasFactory({\n ownerDocument,\n enableHWA\n }),\n filterFactory: new FilterFactory({\n docId,\n ownerDocument\n }),\n cMapReaderFactory: useWorkerFetch ? null : new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n }),\n standardFontDataFactory: useWorkerFetch ? null : new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n })\n };\n if (!worker) {\n const workerParams = {\n verbosity,\n port: GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docParams = {\n docId,\n apiVersion: \"4.8.69\",\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n isChrome,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n disableFontFace,\n fontExtraProperties,\n ownerDocument,\n pdfBug,\n styleElement,\n loadingParams: {\n disableAutoFetch,\n enableXfa\n }\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerIdPromise = worker.messageHandler.sendWithPromise(\"GetDocRequest\", docParams, data ? [data.buffer] : null);\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(rangeTransport, {\n disableRange,\n disableStream\n });\n } else if (!data) {\n if (!url) {\n throw new Error(\"getDocument - no `url` parameter provided.\");\n }\n let NetworkStream;\n if (isNodeJS) {\n const isFetchSupported = typeof fetch !== \"undefined\" && typeof Response !== \"undefined\" && \"body\" in Response.prototype;\n NetworkStream = isFetchSupported && isValidFetchUrl(url) ? PDFFetchStream : PDFNodeStream;\n } else {\n NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : PDFNetworkStream;\n }\n networkStream = new NetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n return workerIdPromise.then(workerId => {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return stringToBytes(val);\n }\n if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === \"object\" && !isNaN(val?.length)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nfunction isRefProxy(ref) {\n return typeof ref === \"object\" && Number.isInteger(ref?.num) && ref.num >= 0 && Number.isInteger(ref?.gen) && ref.gen >= 0;\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = Promise.withResolvers();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = Promise.withResolvers();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\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 onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get canvasFactory() {\n return this._transport.canvasFactory;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getOptionalContentConfig(renderingIntent);\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n cachedPageNumber(ref) {\n return this._transport.cachedPageNumber(ref);\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\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 getAnnotations({\n intent = \"display\"\n } = {}) {\n const {\n renderingIntent\n } = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null,\n isEditing = false\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing);\n const {\n renderingIntent,\n cacheKey\n } = intentArgs;\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);\n let intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(renderingIntent & RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = Promise.withResolvers();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n if (globalThis.Stats?.enabled) {\n globalThis.Stats.add(this.pageNumber, this._stats);\n }\n }\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\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: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n if (!(optionalContentConfig.renderingIntent & renderingIntent)) {\n throw new Error(\"Must use the same `intent`-argument when calling the `PDFPageProxy.render` \" + \"and `PDFDocumentProxy.getOptionalContentConfig` methods.\");\n }\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n printAnnotationStorage = null,\n isEditing = false\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing, true);\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 if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = Promise.withResolvers();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => XfaText.textContent(xfa));\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n textContent.lang ??= value.lang;\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n lang: null\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\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 if (intentState.opListReadCapability) {\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 this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\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 for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable,\n modifiedIds\n }) {\n const {\n map,\n transfer\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map,\n modifiedIds\n }, transfer);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\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 pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nclass LoopbackPort {\n #listeners = new Map();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const [listener] of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener, options = null) {\n let rmAbort = null;\n if (options?.signal instanceof AbortSignal) {\n const {\n signal\n } = options;\n if (signal.aborted) {\n warn(\"LoopbackPort - cannot use an `aborted` signal.\");\n return;\n }\n const onAbort = () => this.removeEventListener(name, listener);\n rmAbort = () => signal.removeEventListener(\"abort\", onAbort);\n signal.addEventListener(\"abort\", onAbort);\n }\n this.#listeners.set(listener, rmAbort);\n }\n removeEventListener(name, listener) {\n const rmAbort = this.#listeners.get(listener);\n rmAbort?.();\n this.#listeners.delete(listener);\n }\n terminate() {\n for (const [, rmAbort] of this.#listeners) {\n rmAbort?.();\n }\n this.#listeners.clear();\n }\n}\nclass PDFWorker {\n static #fakeWorkerId = 0;\n static #isWorkerDisabled = false;\n static #workerPorts;\n static {\n if (isNodeJS) {\n this.#isWorkerDisabled = true;\n GlobalWorkerOptions.workerSrc ||= \"./pdf.worker.mjs\";\n }\n this._isSameOrigin = (baseUrl, otherUrl) => {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n this._createCDNWrapper = url => {\n const wrapper = `await import(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper], {\n type: \"text/javascript\"\n }));\n };\n }\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = Promise.withResolvers();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n if (isNodeJS) {\n return Promise.all([NodePackages.promise, this._readyCapability.promise]);\n }\n return this._readyCapability.promise;\n }\n #resolve() {\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this.#resolve();\n }\n _initialize() {\n if (PDFWorker.#isWorkerDisabled || PDFWorker.#mainThreadWorkerMessageHandler) {\n this._setupFakeWorker();\n return;\n }\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorker._isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorker._createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc, {\n type: \"module\"\n });\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n ac.abort();\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const ac = new AbortController();\n worker.addEventListener(\"error\", () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n }, {\n signal: ac.signal\n });\n messageHandler.on(\"test\", data => {\n ac.abort();\n if (this.destroyed || !data) {\n terminateEarly();\n return;\n }\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this.#resolve();\n });\n messageHandler.on(\"ready\", data => {\n ac.abort();\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n info(\"The worker has been disabled.\");\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorker.#isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorker.#isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.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 const id = `fake${PDFWorker.#fakeWorkerId++}`;\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n this._messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this.#resolve();\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\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 static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get #mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n if (this.#mainThreadWorkerMessageHandler) {\n return this.#mainThreadWorkerMessageHandler;\n }\n const worker = await import(/*webpackIgnore: true*/this.workerSrc);\n return worker.WorkerMessageHandler;\n };\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #pageRefCache = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this.loadingParams = params.loadingParams;\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = Promise.withResolvers();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return shadow(this, \"annotationStorage\", new AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false, isOpList = false) {\n let renderingIntent = RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = RenderingIntentFlag.PRINT;\n break;\n default:\n warn(`getRenderingIntent - invalid intent: ${intent}`);\n }\n const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n switch (annotationMode) {\n case AnnotationMode.DISABLE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case AnnotationMode.ENABLE:\n break;\n case AnnotationMode.ENABLE_FORMS:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case AnnotationMode.ENABLE_STORAGE:\n renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isEditing) {\n renderingIntent += RenderingIntentFlag.IS_EDITING;\n }\n if (isOpList) {\n renderingIntent += RenderingIntentFlag.OPLIST;\n }\n const {\n ids: modifiedIds,\n hash: modifiedIdsHash\n } = annotationStorage.modifiedIds;\n const cacheKeyBuf = [renderingIntent, annotationStorageSerializable.hash, modifiedIdsHash];\n return {\n renderingIntent,\n cacheKey: cacheKeyBuf.join(\"_\"),\n annotationStorageSerializable,\n modifiedIds\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = Promise.withResolvers();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n this.#pageRefCache.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n TextLayer.cleanup();\n this._networkStream?.cancelAllRequests(new AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n assert(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n assert(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", async data => {\n await this._fullReader.headersReady;\n const {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n } = this._fullReader;\n if (!isStreamingSupported || !isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n this._fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n return {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n };\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n assert(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new UnknownErrorException(ex.message, ex.details);\n break;\n default:\n unreachable(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = Promise.withResolvers();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\n this.#passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this.#passwordCapability.reject(ex);\n }\n } else {\n this.#passwordCapability.reject(new PasswordException(exception.message, exception.code));\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return null;\n }\n if (this.commonObjs.has(id)) {\n return null;\n }\n switch (type) {\n case \"Font\":\n const {\n disableFontFace,\n fontExtraProperties,\n pdfBug\n } = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n warn(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const inspectFont = pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new FontFaceObject(exportedData, {\n disableFontFace,\n inspectFont\n });\n this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise(\"FontFallback\", {\n id\n })).finally(() => {\n if (!fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"CopyLocalImage\":\n const {\n imageRef\n } = exportedData;\n assert(imageRef, \"The imageRef must be defined.\");\n for (const pageProxy of this.#pageCache.values()) {\n for (const [, data] of pageProxy.objs) {\n if (data?.ref !== imageRef) {\n continue;\n }\n if (!data.dataLen) {\n return null;\n }\n this.commonObjs.resolve(id, structuredClone(data));\n return data.dataLen;\n }\n }\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n return null;\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n if (pageProxy._intentStates.size === 0) {\n imageData?.bitmap?.close();\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData?.dataLen > MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", async data => {\n if (this.destroyed) {\n throw new Error(\"Worker was destroyed.\");\n }\n if (!this.cMapReaderFactory) {\n throw new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\");\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", async data => {\n if (this.destroyed) {\n throw new Error(\"Worker was destroyed.\");\n }\n if (!this.standardFontDataFactory) {\n throw new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\");\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n warn(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfer\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfer).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n if (pageInfo.refStr) {\n this.#pageRefCache.set(pageInfo.refStr, pageNumber);\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (!isRefProxy(ref)) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig(renderingIntent) {\n return this.#cacheSimpleMethod(\"GetOptionalContentConfig\").then(data => new OptionalContentConfig(data, renderingIntent));\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => ({\n info: results[0],\n metadata: results[1] ? new Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n }));\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n TextLayer.cleanup();\n }\n cachedPageNumber(ref) {\n if (!isRefProxy(ref)) {\n return null;\n }\n const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`;\n return this.#pageRefCache.get(refStr) ?? null;\n }\n}\nconst INITIAL_DATA = Symbol(\"INITIAL_DATA\");\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n ...Promise.withResolvers(),\n data: INITIAL_DATA\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj || obj.data === INITIAL_DATA) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return !!obj && obj.data !== INITIAL_DATA;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n *[Symbol.iterator]() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n if (data === INITIAL_DATA) {\n continue;\n }\n yield [objId, data];\n }\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nclass InternalRenderTask {\n #rAF = null;\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = Promise.withResolvers();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n if (this.#rAF) {\n window.cancelAnimationFrame(this.#rAF);\n this.#rAF = null;\n }\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n this.#rAF = window.requestAnimationFrame(() => {\n this.#rAF = null;\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = \"4.8.69\";\nconst build = \"3634dab10\";\n\n;// ./src/shared/scripting_utils.js\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\n\n;// ./src/display/svg_factory.js\n\n\nclass BaseSVGFactory {\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n unreachable(\"Abstract method `_createSVG` called.\");\n }\n}\nclass DOMSVGFactory extends BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\n\n;// ./src/display/xfa_layer.js\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const isNotForRichText = intent !== \"richText\";\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (isNotForRichText) {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n if (root.children.length === 0) {\n if (root.value) {\n const node = document.createTextNode(root.value);\n rootHtml.append(node);\n if (isNotForRichText && XfaText.shouldBuildText(root.name)) {\n textDivs.push(node);\n }\n }\n return {\n textDivs\n };\n }\n const stack = [[root, -1, rootHtml]];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children?.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (isNotForRichText && XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\n\n;// ./src/display/annotation_layer.js\n\n\n\n\n\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst annotation_layer_DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #updates = null;\n #hasBorder = false;\n #popupElement = null;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get _isEditable() {\n return this.data.isEditable;\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n updateEdited(params) {\n if (!this.container) {\n return;\n }\n this.#updates ||= {\n rect: this.data.rect.slice(0)\n };\n const {\n rect\n } = params;\n if (rect) {\n this.#setRectEdited(rect);\n }\n this.#popupElement?.popup.updateEdited(params);\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n this.#setRectEdited(this.#updates.rect);\n this.#popupElement?.popup.resetEdited();\n this.#updates = null;\n }\n #setRectEdited(rect) {\n const {\n container: {\n style\n },\n data: {\n rect: currentRect,\n rotation\n },\n parent: {\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n }\n } = this;\n currentRect?.splice(0, 4, ...rect);\n const {\n width,\n height\n } = getRectDims(rect);\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;\n if (rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation);\n }\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n const {\n style\n } = container;\n style.zIndex = this.parent.zIndex++;\n if (data.alternativeText) {\n container.title = data.alternativeText;\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case AnnotationBorderStyleType.SOLID:\n style.borderStyle = \"solid\";\n break;\n case AnnotationBorderStyleType.DASHED:\n style.borderStyle = \"dashed\";\n break;\n case AnnotationBorderStyleType.BEVELED:\n warn(\"Unimplemented border style: beveled\");\n break;\n case AnnotationBorderStyleType.INSET:\n warn(\"Unimplemented border style: inset\");\n break;\n case AnnotationBorderStyleType.UNDERLINE:\n style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n style.borderColor = Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n style.borderWidth = 0;\n }\n }\n const rect = 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]]);\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n style.width = `${100 * width / pageWidth}%`;\n style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return shadow(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect.map(x => Math.fround(x));\n if (quadPoints.length === 8) {\n const [trX, trY, blX, blY] = quadPoints.subarray(2, 6);\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", `<svg xmlns=\"http://www.w3.org/2000/svg\"`, ` preserveAspectRatio=\"none\" viewBox=\"0 0 1 1\">`, `<g fill=\"transparent\" stroke=\"${borderColor}\" stroke-width=\"${borderWidth}\">`];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (let i = 2, ii = quadPoints.length; i < ii; i += 8) {\n const trX = quadPoints[i];\n const trY = quadPoints[i + 1];\n const blX = quadPoints[i + 2];\n const blY = quadPoints[i + 3];\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(`<rect vector-effect=\"non-scaling-stroke\" x=\"${x}\" y=\"${y}\" width=\"${rectWidth}\" height=\"${rectHeight}\"/>`);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`</g></svg>')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n data\n } = this;\n const popup = this.#popupElement = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n unreachable(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n warn(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n _editOnDoubleClick() {\n if (!this._isEditable) {\n return;\n }\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this.#bindAttachment(link, data.attachment, data.attachmentDest);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n #bindAttachment(link, attachment, dest = null) {\n link.href = this.linkService.getAnchorUrl(\"\");\n if (attachment.description) {\n link.title = attachment.description;\n }\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(attachment.content, attachment.filename, dest);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n warn(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n warn(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.setAttribute(\"data-l10n-id\", \"pdfjs-text-annotation-type\");\n image.setAttribute(\"data-l10n-args\", JSON.stringify({\n type: this.data.name\n }));\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n return util_FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || annotation_layer_DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || parameters.data.hasOwnCanvas || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n if (!this.data.actions?.Focus) {\n elementData.focused = true;\n }\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n if (!this.data.actions?.Blur) {\n elementData.focused = false;\n }\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n if (value) {\n for (const radio of this._getElementsByName(data.fieldName, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => ({\n displayValue: option.textContent,\n exportValue: option.value\n }));\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n const change = getValue(false);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n change,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n this.popup = null;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = this.popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n element.container.ariaHasPopup = \"dialog\";\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #dateObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #position = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #updates = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n this.#dateObj = PDFDateString.toDateObject(modificationDate);\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateObj) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n modificationDate.setAttribute(\"data-l10n-id\", \"pdfjs-annotation-date-time-string\");\n modificationDate.setAttribute(\"data-l10n-args\", JSON.stringify({\n dateObj: this.#dateObj.valueOf()\n }));\n header.append(modificationDate);\n }\n const html = this.#html;\n if (html) {\n XfaLayer.render({\n xfaHtml: html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(this.#contentsObj);\n popup.append(contents);\n }\n this.#container.append(popup);\n }\n get #html() {\n const richText = this.#richText;\n const contentsObj = this.#contentsObj;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n return this.#richText.html || null;\n }\n return null;\n }\n get #fontSize() {\n return this.#html?.attributes?.style?.fontSize || 0;\n }\n get #fontColor() {\n return this.#html?.attributes?.style?.color || null;\n }\n #makePopupContent(text) {\n const popupLines = [];\n const popupContent = {\n str: text,\n html: {\n name: \"div\",\n attributes: {\n dir: \"auto\"\n },\n children: [{\n name: \"p\",\n children: popupLines\n }]\n }\n };\n const lineAttributes = {\n style: {\n color: this.#fontColor,\n fontSize: this.#fontSize ? `calc(${this.#fontSize}px * var(--scale-factor))` : \"\"\n }\n };\n for (const line of text.split(\"\\n\")) {\n popupLines.push({\n name: \"span\",\n value: line,\n attributes: lineAttributes\n });\n }\n return popupContent;\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n updateEdited({\n rect,\n popupContent\n }) {\n this.#updates ||= {\n contentsObj: this.#contentsObj,\n richText: this.#richText\n };\n if (rect) {\n this.#position = null;\n }\n if (popupContent) {\n this.#richText = this.#makePopupContent(popupContent);\n this.#contentsObj = null;\n }\n this.#popup?.remove();\n this.#popup = null;\n }\n resetEdited() {\n if (!this.#updates) {\n return;\n }\n ({\n contentsObj: this.#contentsObj,\n richText: this.#richText\n } = this.#updates);\n this.#updates = null;\n this.#popup?.remove();\n this.#popup = null;\n this.#position = null;\n }\n #setPosition() {\n if (this.#position !== null) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n this.#position = [100 * (popupLeft - pageX) / pageWidth, 100 * (popupTop - pageY) / pageHeight];\n const {\n style\n } = this.#container;\n style.left = `${this.#position[0]}%`;\n style.top = `${this.#position[1]}%`;\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#setPosition();\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n if (!this.#popup) {\n this.#show();\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n vertices,\n borderStyle,\n popupRef\n }\n } = this;\n if (!vertices) {\n return this.container;\n }\n const {\n width,\n height\n } = getRectDims(rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (let i = 0, ii = vertices.length; i < ii; i += 2) {\n const x = vertices[i] - rect[0];\n const y = rect[3] - vertices[i + 1];\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = this.data.it === \"InkHighlight\" ? AnnotationEditorType.HIGHLIGHT : AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n inkLists,\n borderStyle,\n popupRef\n }\n } = this;\n const {\n width,\n height\n } = getRectDims(rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of inkLists) {\n let points = [];\n for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n const x = inkList[i] - rect[0];\n const y = rect[3] - inkList[i + 1];\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n }\n if (!popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(svg);\n this._editOnDoubleClick();\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n this.annotationEditorType = AnnotationEditorType.HIGHLIGHT;\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.annotationEditorType = AnnotationEditorType.STAMP;\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n this.container.setAttribute(\"role\", \"img\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n file\n } = this.data;\n this.filename = file.filename;\n this.content = file.content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n ...file\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = util_FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n #structTreeLayer = null;\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n annotationEditorUIManager,\n page,\n viewport,\n structTreeLayer\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.#structTreeLayer = structTreeLayer || null;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this._annotationEditorUIManager = annotationEditorUIManager;\n }\n hasEditableAnnotations() {\n return this.#editableAnnotations.size > 0;\n }\n async #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n const annotationId = contentElement.id = `${AnnotationPrefix}${id}`;\n const ariaAttributes = await this.#structTreeLayer?.getAriaAttributes(annotationId);\n if (ariaAttributes) {\n for (const [key, value] of ariaAttributes) {\n contentElement.setAttribute(key, value);\n }\n }\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n setLayerDimensions(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n await this.#appendElement(rendered, data.id);\n if (element._isEditable) {\n this.#editableAnnotations.set(element.data.id, element);\n this._annotationEditorUIManager?.renderAnnotationElement(element);\n }\n }\n this.#setAnnotationCanvasMap();\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n setLayerDimensions(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n canvas.className = \"annotationContent\";\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else if (!firstChild.classList.contains(\"annotationContent\")) {\n firstChild.before(canvas);\n } else {\n firstChild.after(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\n\n;// ./src/display/editor/freetext.js\n\n\n\n\nconst EOL_PATTERN = /\\r\\n?|\\n/g;\nclass FreeTextEditor extends AnnotationEditor {\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #editModeAC = null;\n #fontSize;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n static _editorType = AnnotationEditorType.FREETEXT;\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: setFontsize.bind(this, fontSize),\n undo: setFontsize.bind(this, savedFontsize),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const setColor = col => {\n this.#color = this.editorDiv.style.color = col;\n };\n const savedColor = this.#color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.#editModeAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#editModeAC);\n this.editorDiv.addEventListener(\"keydown\", this.editorDivKeydown.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"focus\", this.editorDivFocus.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"blur\", this.editorDivBlur.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"input\", this.editorDivInput.bind(this), {\n signal\n });\n this.editorDiv.addEventListener(\"paste\", this.editorDivPaste.bind(this), {\n signal\n });\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.#editModeAC?.abort();\n this.#editModeAC = null;\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freetextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freetextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const buffer = [];\n this.editorDiv.normalize();\n let prevChild = null;\n for (const child of this.editorDiv.childNodes) {\n if (prevChild?.nodeType === Node.TEXT_NODE && child.nodeName === \"BR\") {\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n prevChild = child;\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n const savedVisibility = div.classList.contains(\"hidden\");\n div.classList.remove(\"hidden\");\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n div.classList.toggle(\"hidden\", savedVisibility);\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freetextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.editorDiv.setAttribute(\"data-l10n-id\", \"pdfjs-free-text2\");\n this.editorDiv.setAttribute(\"data-l10n-attrs\", \"default-content\");\n this.enableEditing();\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n bindEvents(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this._initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n static #getNodeContent(node) {\n return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, \"\");\n }\n editorDivPaste(event) {\n const clipboardData = event.clipboardData || window.clipboardData;\n const {\n types\n } = clipboardData;\n if (types.length === 1 && types[0] === \"text/plain\") {\n return;\n }\n event.preventDefault();\n const paste = FreeTextEditor.#deserializeContent(clipboardData.getData(\"text\") || \"\").replaceAll(EOL_PATTERN, \"\\n\");\n if (!paste) {\n return;\n }\n const selection = window.getSelection();\n if (!selection.rangeCount) {\n return;\n }\n this.editorDiv.normalize();\n selection.deleteFromDocument();\n const range = selection.getRangeAt(0);\n if (!paste.includes(\"\\n\")) {\n range.insertNode(document.createTextNode(paste));\n this.editorDiv.normalize();\n selection.collapseToStart();\n return;\n }\n const {\n startContainer,\n startOffset\n } = range;\n const bufferBefore = [];\n const bufferAfter = [];\n if (startContainer.nodeType === Node.TEXT_NODE) {\n const parent = startContainer.parentElement;\n bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, \"\"));\n if (parent !== this.editorDiv) {\n let buffer = bufferBefore;\n for (const child of this.editorDiv.childNodes) {\n if (child === parent) {\n buffer = bufferAfter;\n continue;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, \"\"));\n } else if (startContainer === this.editorDiv) {\n let buffer = bufferBefore;\n let i = 0;\n for (const child of this.editorDiv.childNodes) {\n if (i++ === startOffset) {\n buffer = bufferAfter;\n }\n buffer.push(FreeTextEditor.#getNodeContent(child));\n }\n }\n this.#content = `${bufferBefore.join(\"\\n\")}${paste}${bufferAfter.join(\"\\n\")}`;\n this.#setContent();\n const newRange = new Range();\n let beforeLength = bufferBefore.reduce((acc, line) => acc + line.length, 0);\n for (const {\n firstChild\n } of this.editorDiv.childNodes) {\n if (firstChild.nodeType === Node.TEXT_NODE) {\n const length = firstChild.nodeValue.length;\n if (beforeLength <= length) {\n newRange.setStart(firstChild, beforeLength);\n newRange.setEnd(firstChild, beforeLength);\n break;\n }\n beforeLength -= length;\n }\n }\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n #serializeContent() {\n return this.#content.replaceAll(\"\\xa0\", \" \");\n }\n static #deserializeContent(content) {\n return content.replaceAll(\" \", \"\\xa0\");\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id,\n popupRef\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n popupRef\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = Util.makeHexColor(...data.color);\n editor.#content = FreeTextEditor.#deserializeContent(data.value);\n editor.annotationElementId = data.id || null;\n editor._initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#serializeContent(),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n pageIndex\n } = this._initialData;\n return this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n renderAnnotationElement(annotation) {\n const content = super.renderAnnotationElement(annotation);\n if (this.deleted) {\n return content;\n }\n const {\n style\n } = content;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n content.replaceChildren();\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n content.append(div);\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n annotation.updateEdited({\n rect: this.getRect(padding, padding),\n popupContent: this.#content\n });\n return content;\n }\n resetAnnotationElement(annotation) {\n super.resetAnnotationElement(annotation);\n annotation.resetEdited();\n }\n}\n\n;// ./src/display/editor/drawers/outline.js\n\nclass Outline {\n toSVGPath() {\n unreachable(\"Abstract method `toSVGPath` must be implemented.\");\n }\n get box() {\n unreachable(\"Abstract getter `box` must be implemented.\");\n }\n serialize(_bbox, _rotation) {\n unreachable(\"Abstract method `serialize` must be implemented.\");\n }\n get classNamesForDrawing() {\n unreachable(\"Abstract getter `classNamesForDrawing` must be implemented.\");\n }\n get classNamesForOutlining() {\n unreachable(\"Abstract getter `classNamesForOutlining` must be implemented.\");\n }\n get mustRemoveSelfIntersections() {\n return false;\n }\n}\n\n;// ./src/display/editor/drawers/freedraw.js\n\n\nclass FreeDrawOutliner {\n #box;\n #bottom = [];\n #innerMargin;\n #isLTR;\n #top = [];\n #last = new Float64Array(18);\n #lastX;\n #lastY;\n #min;\n #min_dist;\n #scaleFactor;\n #thickness;\n #points = [];\n static #MIN_DIST = 8;\n static #MIN_DIFF = 2;\n static #MIN = FreeDrawOutliner.#MIN_DIST + FreeDrawOutliner.#MIN_DIFF;\n constructor({\n x,\n y\n }, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n this.#box = box;\n this.#thickness = thickness * scaleFactor;\n this.#isLTR = isLTR;\n this.#last.set([NaN, NaN, NaN, NaN, x, y], 6);\n this.#innerMargin = innerMargin;\n this.#min_dist = FreeDrawOutliner.#MIN_DIST * scaleFactor;\n this.#min = FreeDrawOutliner.#MIN * scaleFactor;\n this.#scaleFactor = scaleFactor;\n this.#points.push(x, y);\n }\n isEmpty() {\n return isNaN(this.#last[8]);\n }\n #getLastCoords() {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [x, y, width, height] = this.#box;\n return [(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x) / width, (this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y) / height, (this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x) / width, (this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y) / height];\n }\n add({\n x,\n y\n }) {\n this.#lastX = x;\n this.#lastY = y;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n let [x1, y1, x2, y2] = this.#last.subarray(8, 12);\n const diffX = x - x2;\n const diffY = y - y2;\n const d = Math.hypot(diffX, diffY);\n if (d < this.#min) {\n return false;\n }\n const diffD = d - this.#min_dist;\n const K = diffD / d;\n const shiftX = K * diffX;\n const shiftY = K * diffY;\n let x0 = x1;\n let y0 = y1;\n x1 = x2;\n y1 = y2;\n x2 += shiftX;\n y2 += shiftY;\n this.#points?.push(x, y);\n const nX = -shiftY / diffD;\n const nY = shiftX / diffD;\n const thX = nX * this.#thickness;\n const thY = nY * this.#thickness;\n this.#last.set(this.#last.subarray(2, 8), 0);\n this.#last.set([x2 + thX, y2 + thY], 4);\n this.#last.set(this.#last.subarray(14, 18), 12);\n this.#last.set([x2 - thX, y2 - thY], 16);\n if (isNaN(this.#last[6])) {\n if (this.#top.length === 0) {\n this.#last.set([x1 + thX, y1 + thY], 2);\n this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight);\n this.#last.set([x1 - thX, y1 - thY], 14);\n this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight);\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n return !this.isEmpty();\n }\n this.#last.set([x0, y0, x1, y1, x2, y2], 6);\n const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX));\n if (angle < Math.PI / 2) {\n [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x1, y1, x0, y0] = this.#last.subarray(14, 18);\n this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight);\n return true;\n }\n [x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6);\n this.#top.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n [x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18);\n this.#bottom.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight);\n return true;\n }\n toSVGPath() {\n if (this.isEmpty()) {\n return \"\";\n }\n const top = this.#top;\n const bottom = this.#bottom;\n if (isNaN(this.#last[6]) && !this.isEmpty()) {\n return this.#toSVGPathTwoPoints();\n }\n const buffer = [];\n buffer.push(`M${top[4]} ${top[5]}`);\n for (let i = 6; i < top.length; i += 6) {\n if (isNaN(top[i])) {\n buffer.push(`L${top[i + 4]} ${top[i + 5]}`);\n } else {\n buffer.push(`C${top[i]} ${top[i + 1]} ${top[i + 2]} ${top[i + 3]} ${top[i + 4]} ${top[i + 5]}`);\n }\n }\n this.#toSVGPathEnd(buffer);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n if (isNaN(bottom[i])) {\n buffer.push(`L${bottom[i + 4]} ${bottom[i + 5]}`);\n } else {\n buffer.push(`C${bottom[i]} ${bottom[i + 1]} ${bottom[i + 2]} ${bottom[i + 3]} ${bottom[i + 4]} ${bottom[i + 5]}`);\n }\n }\n this.#toSVGPathStart(buffer);\n return buffer.join(\" \");\n }\n #toSVGPathTwoPoints() {\n const [x, y, width, height] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n return `M${(this.#last[2] - x) / width} ${(this.#last[3] - y) / height} L${(this.#last[4] - x) / width} ${(this.#last[5] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x) / width} ${(this.#last[17] - y) / height} L${(this.#last[14] - x) / width} ${(this.#last[15] - y) / height} Z`;\n }\n #toSVGPathStart(buffer) {\n const bottom = this.#bottom;\n buffer.push(`L${bottom[4]} ${bottom[5]} Z`);\n }\n #toSVGPathEnd(buffer) {\n const [x, y, width, height] = this.#box;\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n buffer.push(`L${(lastTop[0] - x) / width} ${(lastTop[1] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0] - x) / width} ${(lastBottom[1] - y) / height}`);\n }\n newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n return new FreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n }\n getOutlines() {\n const top = this.#top;\n const bottom = this.#bottom;\n const last = this.#last;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const points = new Float64Array((this.#points?.length ?? 0) + 2);\n for (let i = 0, ii = points.length - 2; i < ii; i += 2) {\n points[i] = (this.#points[i] - layerX) / layerWidth;\n points[i + 1] = (this.#points[i + 1] - layerY) / layerHeight;\n }\n points[points.length - 2] = (this.#lastX - layerX) / layerWidth;\n points[points.length - 1] = (this.#lastY - layerY) / layerHeight;\n if (isNaN(last[6]) && !this.isEmpty()) {\n return this.#getOutlineTwoPoints(points);\n }\n const outline = new Float64Array(this.#top.length + 24 + this.#bottom.length);\n let N = top.length;\n for (let i = 0; i < N; i += 2) {\n if (isNaN(top[i])) {\n outline[i] = outline[i + 1] = NaN;\n continue;\n }\n outline[i] = top[i];\n outline[i + 1] = top[i + 1];\n }\n N = this.#getOutlineEnd(outline, N);\n for (let i = bottom.length - 6; i >= 6; i -= 6) {\n for (let j = 0; j < 6; j += 2) {\n if (isNaN(bottom[i + j])) {\n outline[N] = outline[N + 1] = NaN;\n N += 2;\n continue;\n }\n outline[N] = bottom[i + j];\n outline[N + 1] = bottom[i + j + 1];\n N += 2;\n }\n }\n this.#getOutlineStart(outline, N);\n return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n #getOutlineTwoPoints(points) {\n const last = this.#last;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n const outline = new Float64Array(36);\n outline.set([NaN, NaN, NaN, NaN, (last[2] - layerX) / layerWidth, (last[3] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[4] - layerX) / layerWidth, (last[5] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (last[16] - layerX) / layerWidth, (last[17] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[14] - layerX) / layerWidth, (last[15] - layerY) / layerHeight], 0);\n return this.newFreeDrawOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR);\n }\n #getOutlineStart(outline, pos) {\n const bottom = this.#bottom;\n outline.set([NaN, NaN, NaN, NaN, bottom[4], bottom[5]], pos);\n return pos += 6;\n }\n #getOutlineEnd(outline, pos) {\n const lastTop = this.#last.subarray(4, 6);\n const lastBottom = this.#last.subarray(16, 18);\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords();\n outline.set([NaN, NaN, NaN, NaN, (lastTop[0] - layerX) / layerWidth, (lastTop[1] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (lastBottom[0] - layerX) / layerWidth, (lastBottom[1] - layerY) / layerHeight], pos);\n return pos += 24;\n }\n}\nclass FreeDrawOutline extends Outline {\n #box;\n #bbox = null;\n #innerMargin;\n #isLTR;\n #points;\n #scaleFactor;\n #outline;\n constructor(outline, points, box, scaleFactor, innerMargin, isLTR) {\n super();\n this.#outline = outline;\n this.#points = points;\n this.#box = box;\n this.#scaleFactor = scaleFactor;\n this.#innerMargin = innerMargin;\n this.#isLTR = isLTR;\n this.#computeMinMax(isLTR);\n const {\n x,\n y,\n width,\n height\n } = this.#bbox;\n for (let i = 0, ii = outline.length; i < ii; i += 2) {\n outline[i] = (outline[i] - x) / width;\n outline[i + 1] = (outline[i + 1] - y) / height;\n }\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = (points[i] - x) / width;\n points[i + 1] = (points[i + 1] - y) / height;\n }\n }\n toSVGPath() {\n const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`];\n for (let i = 6, ii = this.#outline.length; i < ii; i += 6) {\n if (isNaN(this.#outline[i])) {\n buffer.push(`L${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n continue;\n }\n buffer.push(`C${this.#outline[i]} ${this.#outline[i + 1]} ${this.#outline[i + 2]} ${this.#outline[i + 3]} ${this.#outline[i + 4]} ${this.#outline[i + 5]}`);\n }\n buffer.push(\"Z\");\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], rotation) {\n const width = trX - blX;\n const height = trY - blY;\n let outline;\n let points;\n switch (rotation) {\n case 0:\n outline = this.#rescale(this.#outline, blX, trY, width, -height);\n points = this.#rescale(this.#points, blX, trY, width, -height);\n break;\n case 90:\n outline = this.#rescaleAndSwap(this.#outline, blX, blY, width, height);\n points = this.#rescaleAndSwap(this.#points, blX, blY, width, height);\n break;\n case 180:\n outline = this.#rescale(this.#outline, trX, blY, -width, height);\n points = this.#rescale(this.#points, trX, blY, -width, height);\n break;\n case 270:\n outline = this.#rescaleAndSwap(this.#outline, trX, trY, -width, -height);\n points = this.#rescaleAndSwap(this.#points, trX, trY, -width, -height);\n break;\n }\n return {\n outline: Array.from(outline),\n points: [Array.from(points)]\n };\n }\n #rescale(src, tx, ty, sx, sy) {\n const dest = new Float64Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i] * sx;\n dest[i + 1] = ty + src[i + 1] * sy;\n }\n return dest;\n }\n #rescaleAndSwap(src, tx, ty, sx, sy) {\n const dest = new Float64Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i + 1] * sx;\n dest[i + 1] = ty + src[i] * sy;\n }\n return dest;\n }\n #computeMinMax(isLTR) {\n const outline = this.#outline;\n let lastX = outline[4];\n let lastY = outline[5];\n let minX = lastX;\n let minY = lastY;\n let maxX = lastX;\n let maxY = lastY;\n let lastPointX = lastX;\n let lastPointY = lastY;\n const ltrCallback = isLTR ? Math.max : Math.min;\n for (let i = 6, ii = outline.length; i < ii; i += 6) {\n if (isNaN(outline[i])) {\n minX = Math.min(minX, outline[i + 4]);\n minY = Math.min(minY, outline[i + 5]);\n maxX = Math.max(maxX, outline[i + 4]);\n maxY = Math.max(maxY, outline[i + 5]);\n if (lastPointY < outline[i + 5]) {\n lastPointX = outline[i + 4];\n lastPointY = outline[i + 5];\n } else if (lastPointY === outline[i + 5]) {\n lastPointX = ltrCallback(lastPointX, outline[i + 4]);\n }\n } else {\n const bbox = Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6));\n minX = Math.min(minX, bbox[0]);\n minY = Math.min(minY, bbox[1]);\n maxX = Math.max(maxX, bbox[2]);\n maxY = Math.max(maxY, bbox[3]);\n if (lastPointY < bbox[3]) {\n lastPointX = bbox[2];\n lastPointY = bbox[3];\n } else if (lastPointY === bbox[3]) {\n lastPointX = ltrCallback(lastPointX, bbox[2]);\n }\n }\n lastX = outline[i + 4];\n lastY = outline[i + 5];\n }\n const x = minX - this.#innerMargin,\n y = minY - this.#innerMargin,\n width = maxX - minX + 2 * this.#innerMargin,\n height = maxY - minY + 2 * this.#innerMargin;\n this.#bbox = {\n x,\n y,\n width,\n height,\n lastPoint: [lastPointX, lastPointY]\n };\n }\n get box() {\n return this.#bbox;\n }\n newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n return new FreeDrawOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n }\n getNewOutline(thickness, innerMargin) {\n const {\n x,\n y,\n width,\n height\n } = this.#bbox;\n const [layerX, layerY, layerWidth, layerHeight] = this.#box;\n const sx = width * layerWidth;\n const sy = height * layerHeight;\n const tx = x * layerWidth + layerX;\n const ty = y * layerHeight + layerY;\n const outliner = this.newOutliner({\n x: this.#points[0] * sx + tx,\n y: this.#points[1] * sy + ty\n }, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin);\n for (let i = 2; i < this.#points.length; i += 2) {\n outliner.add({\n x: this.#points[i] * sx + tx,\n y: this.#points[i + 1] * sy + ty\n });\n }\n return outliner.getOutlines();\n }\n get mustRemoveSelfIntersections() {\n return true;\n }\n}\n\n;// ./src/display/editor/drawers/highlight.js\n\n\nclass HighlightOutliner {\n #box;\n #verticalEdges = [];\n #intervals = [];\n constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n let minX = Infinity;\n let maxX = -Infinity;\n let minY = Infinity;\n let maxY = -Infinity;\n const NUMBER_OF_DIGITS = 4;\n const EPSILON = 10 ** -NUMBER_OF_DIGITS;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON;\n const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON;\n const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON;\n const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON;\n const left = [x1, y1, y2, true];\n const right = [x2, y1, y2, false];\n this.#verticalEdges.push(left, right);\n minX = Math.min(minX, x1);\n maxX = Math.max(maxX, x2);\n minY = Math.min(minY, y1);\n maxY = Math.max(maxY, y2);\n }\n const bboxWidth = maxX - minX + 2 * innerMargin;\n const bboxHeight = maxY - minY + 2 * innerMargin;\n const shiftedMinX = minX - innerMargin;\n const shiftedMinY = minY - innerMargin;\n const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2);\n const lastPoint = [lastEdge[0], lastEdge[2]];\n for (const edge of this.#verticalEdges) {\n const [x, y1, y2] = edge;\n edge[0] = (x - shiftedMinX) / bboxWidth;\n edge[1] = (y1 - shiftedMinY) / bboxHeight;\n edge[2] = (y2 - shiftedMinY) / bboxHeight;\n }\n this.#box = {\n x: shiftedMinX,\n y: shiftedMinY,\n width: bboxWidth,\n height: bboxHeight,\n lastPoint\n };\n }\n getOutlines() {\n this.#verticalEdges.sort((a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]);\n const outlineVerticalEdges = [];\n for (const edge of this.#verticalEdges) {\n if (edge[3]) {\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n this.#insert(edge);\n } else {\n this.#remove(edge);\n outlineVerticalEdges.push(...this.#breakEdge(edge));\n }\n }\n return this.#getOutlines(outlineVerticalEdges);\n }\n #getOutlines(outlineVerticalEdges) {\n const edges = [];\n const allEdges = new Set();\n for (const edge of outlineVerticalEdges) {\n const [x, y1, y2] = edge;\n edges.push([x, y1, edge], [x, y2, edge]);\n }\n edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]);\n for (let i = 0, ii = edges.length; i < ii; i += 2) {\n const edge1 = edges[i][2];\n const edge2 = edges[i + 1][2];\n edge1.push(edge2);\n edge2.push(edge1);\n allEdges.add(edge1);\n allEdges.add(edge2);\n }\n const outlines = [];\n let outline;\n while (allEdges.size > 0) {\n const edge = allEdges.values().next().value;\n let [x, y1, y2, edge1, edge2] = edge;\n allEdges.delete(edge);\n let lastPointX = x;\n let lastPointY = y1;\n outline = [x, y2];\n outlines.push(outline);\n while (true) {\n let e;\n if (allEdges.has(edge1)) {\n e = edge1;\n } else if (allEdges.has(edge2)) {\n e = edge2;\n } else {\n break;\n }\n allEdges.delete(e);\n [x, y1, y2, edge1, edge2] = e;\n if (lastPointX !== x) {\n outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2);\n lastPointX = x;\n }\n lastPointY = lastPointY === y1 ? y2 : y1;\n }\n outline.push(lastPointX, lastPointY);\n }\n return new HighlightOutline(outlines, this.#box);\n }\n #binarySearch(y) {\n const array = this.#intervals;\n let start = 0;\n let end = array.length - 1;\n while (start <= end) {\n const middle = start + end >> 1;\n const y1 = array[middle][0];\n if (y1 === y) {\n return middle;\n }\n if (y1 < y) {\n start = middle + 1;\n } else {\n end = middle - 1;\n }\n }\n return end + 1;\n }\n #insert([, y1, y2]) {\n const index = this.#binarySearch(y1);\n this.#intervals.splice(index, 0, [y1, y2]);\n }\n #remove([, y1, y2]) {\n const index = this.#binarySearch(y1);\n for (let i = index; i < this.#intervals.length; i++) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n for (let i = index - 1; i >= 0; i--) {\n const [start, end] = this.#intervals[i];\n if (start !== y1) {\n break;\n }\n if (start === y1 && end === y2) {\n this.#intervals.splice(i, 1);\n return;\n }\n }\n }\n #breakEdge(edge) {\n const [x, y1, y2] = edge;\n const results = [[x, y1, y2]];\n const index = this.#binarySearch(y2);\n for (let i = 0; i < index; i++) {\n const [start, end] = this.#intervals[i];\n for (let j = 0, jj = results.length; j < jj; j++) {\n const [, y3, y4] = results[j];\n if (end <= y3 || y4 <= start) {\n continue;\n }\n if (y3 >= start) {\n if (y4 > end) {\n results[j][1] = end;\n } else {\n if (jj === 1) {\n return [];\n }\n results.splice(j, 1);\n j--;\n jj--;\n }\n continue;\n }\n results[j][2] = start;\n if (y4 > end) {\n results.push([x, end, y4]);\n }\n }\n }\n return results;\n }\n}\nclass HighlightOutline extends Outline {\n #box;\n #outlines;\n constructor(outlines, box) {\n super();\n this.#outlines = outlines;\n this.#box = box;\n }\n toSVGPath() {\n const buffer = [];\n for (const polygon of this.#outlines) {\n let [prevX, prevY] = polygon;\n buffer.push(`M${prevX} ${prevY}`);\n for (let i = 2; i < polygon.length; i += 2) {\n const x = polygon[i];\n const y = polygon[i + 1];\n if (x === prevX) {\n buffer.push(`V${y}`);\n prevY = y;\n } else if (y === prevY) {\n buffer.push(`H${x}`);\n prevX = x;\n }\n }\n buffer.push(\"Z\");\n }\n return buffer.join(\" \");\n }\n serialize([blX, blY, trX, trY], _rotation) {\n const outlines = [];\n const width = trX - blX;\n const height = trY - blY;\n for (const outline of this.#outlines) {\n const points = new Array(outline.length);\n for (let i = 0; i < outline.length; i += 2) {\n points[i] = blX + outline[i] * width;\n points[i + 1] = trY - outline[i + 1] * height;\n }\n outlines.push(points);\n }\n return outlines;\n }\n get box() {\n return this.#box;\n }\n get classNamesForDrawing() {\n return [\"highlight\"];\n }\n get classNamesForOutlining() {\n return [\"highlightOutline\"];\n }\n}\nclass FreeHighlightOutliner extends FreeDrawOutliner {\n newFreeDrawOutline(outline, points, box, scaleFactor, innerMargin, isLTR) {\n return new FreeHighlightOutline(outline, points, box, scaleFactor, innerMargin, isLTR);\n }\n get classNamesForDrawing() {\n return [\"highlight\", \"free\"];\n }\n}\nclass FreeHighlightOutline extends FreeDrawOutline {\n get classNamesForDrawing() {\n return [\"highlight\", \"free\"];\n }\n get classNamesForOutlining() {\n return [\"highlightOutline\", \"free\"];\n }\n newOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin = 0) {\n return new FreeHighlightOutliner(point, box, scaleFactor, thickness, isLTR, innerMargin);\n }\n}\n\n;// ./src/display/editor/color_picker.js\n\n\n\nclass ColorPicker {\n #button = null;\n #buttonSwatch = null;\n #defaultColor;\n #dropdown = null;\n #dropdownWasFromKeyboard = false;\n #isMainColorPicker = false;\n #editor = null;\n #eventBus;\n #openDropdownAC = null;\n #uiManager = null;\n #type;\n static #l10nColor = null;\n static get _keyboardManager() {\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"Escape\", \"mac+Escape\"], ColorPicker.prototype._hideDropdownFromKeyboard], [[\" \", \"mac+ \"], ColorPicker.prototype._colorSelectFromKeyboard], [[\"ArrowDown\", \"ArrowRight\", \"mac+ArrowDown\", \"mac+ArrowRight\"], ColorPicker.prototype._moveToNext], [[\"ArrowUp\", \"ArrowLeft\", \"mac+ArrowUp\", \"mac+ArrowLeft\"], ColorPicker.prototype._moveToPrevious], [[\"Home\", \"mac+Home\"], ColorPicker.prototype._moveToBeginning], [[\"End\", \"mac+End\"], ColorPicker.prototype._moveToEnd]]));\n }\n constructor({\n editor = null,\n uiManager = null\n }) {\n if (editor) {\n this.#isMainColorPicker = false;\n this.#type = AnnotationEditorParamsType.HIGHLIGHT_COLOR;\n this.#editor = editor;\n } else {\n this.#isMainColorPicker = true;\n this.#type = AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR;\n }\n this.#uiManager = editor?._uiManager || uiManager;\n this.#eventBus = this.#uiManager._eventBus;\n this.#defaultColor = editor?.color || this.#uiManager?.highlightColors.values().next().value || \"#FFFF98\";\n ColorPicker.#l10nColor ||= Object.freeze({\n blue: \"pdfjs-editor-colorpicker-blue\",\n green: \"pdfjs-editor-colorpicker-green\",\n pink: \"pdfjs-editor-colorpicker-pink\",\n red: \"pdfjs-editor-colorpicker-red\",\n yellow: \"pdfjs-editor-colorpicker-yellow\"\n });\n }\n renderButton() {\n const button = this.#button = document.createElement(\"button\");\n button.className = \"colorPicker\";\n button.tabIndex = \"0\";\n button.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-button\");\n button.setAttribute(\"aria-haspopup\", true);\n const signal = this.#uiManager._signal;\n button.addEventListener(\"click\", this.#openDropdown.bind(this), {\n signal\n });\n button.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n signal\n });\n const swatch = this.#buttonSwatch = document.createElement(\"span\");\n swatch.className = \"swatch\";\n swatch.setAttribute(\"aria-hidden\", true);\n swatch.style.backgroundColor = this.#defaultColor;\n button.append(swatch);\n return button;\n }\n renderMainDropdown() {\n const dropdown = this.#dropdown = this.#getDropdownRoot();\n dropdown.setAttribute(\"aria-orientation\", \"horizontal\");\n dropdown.setAttribute(\"aria-labelledby\", \"highlightColorPickerLabel\");\n return dropdown;\n }\n #getDropdownRoot() {\n const div = document.createElement(\"div\");\n const signal = this.#uiManager._signal;\n div.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n div.className = \"dropdown\";\n div.role = \"listbox\";\n div.setAttribute(\"aria-multiselectable\", false);\n div.setAttribute(\"aria-orientation\", \"vertical\");\n div.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-dropdown\");\n for (const [name, color] of this.#uiManager.highlightColors) {\n const button = document.createElement(\"button\");\n button.tabIndex = \"0\";\n button.role = \"option\";\n button.setAttribute(\"data-color\", color);\n button.title = name;\n button.setAttribute(\"data-l10n-id\", ColorPicker.#l10nColor[name]);\n const swatch = document.createElement(\"span\");\n button.append(swatch);\n swatch.className = \"swatch\";\n swatch.style.backgroundColor = color;\n button.setAttribute(\"aria-selected\", color === this.#defaultColor);\n button.addEventListener(\"click\", this.#colorSelect.bind(this, color), {\n signal\n });\n div.append(button);\n }\n div.addEventListener(\"keydown\", this.#keyDown.bind(this), {\n signal\n });\n return div;\n }\n #colorSelect(color, event) {\n event.stopPropagation();\n this.#eventBus.dispatch(\"switchannotationeditorparams\", {\n source: this,\n type: this.#type,\n value: color\n });\n }\n _colorSelectFromKeyboard(event) {\n if (event.target === this.#button) {\n this.#openDropdown(event);\n return;\n }\n const color = event.target.getAttribute(\"data-color\");\n if (!color) {\n return;\n }\n this.#colorSelect(color, event);\n }\n _moveToNext(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n if (event.target === this.#button) {\n this.#dropdown.firstChild?.focus();\n return;\n }\n event.target.nextSibling?.focus();\n }\n _moveToPrevious(event) {\n if (event.target === this.#dropdown?.firstChild || event.target === this.#button) {\n if (this.#isDropdownVisible) {\n this._hideDropdownFromKeyboard();\n }\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n }\n event.target.previousSibling?.focus();\n }\n _moveToBeginning(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.firstChild?.focus();\n }\n _moveToEnd(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.lastChild?.focus();\n }\n #keyDown(event) {\n ColorPicker._keyboardManager.exec(this, event);\n }\n #openDropdown(event) {\n if (this.#isDropdownVisible) {\n this.hideDropdown();\n return;\n }\n this.#dropdownWasFromKeyboard = event.detail === 0;\n if (!this.#openDropdownAC) {\n this.#openDropdownAC = new AbortController();\n window.addEventListener(\"pointerdown\", this.#pointerDown.bind(this), {\n signal: this.#uiManager.combinedSignal(this.#openDropdownAC)\n });\n }\n if (this.#dropdown) {\n this.#dropdown.classList.remove(\"hidden\");\n return;\n }\n const root = this.#dropdown = this.#getDropdownRoot();\n this.#button.append(root);\n }\n #pointerDown(event) {\n if (this.#dropdown?.contains(event.target)) {\n return;\n }\n this.hideDropdown();\n }\n hideDropdown() {\n this.#dropdown?.classList.add(\"hidden\");\n this.#openDropdownAC?.abort();\n this.#openDropdownAC = null;\n }\n get #isDropdownVisible() {\n return this.#dropdown && !this.#dropdown.classList.contains(\"hidden\");\n }\n _hideDropdownFromKeyboard() {\n if (this.#isMainColorPicker) {\n return;\n }\n if (!this.#isDropdownVisible) {\n this.#editor?.unselect();\n return;\n }\n this.hideDropdown();\n this.#button.focus({\n preventScroll: true,\n focusVisible: this.#dropdownWasFromKeyboard\n });\n }\n updateColor(color) {\n if (this.#buttonSwatch) {\n this.#buttonSwatch.style.backgroundColor = color;\n }\n if (!this.#dropdown) {\n return;\n }\n const i = this.#uiManager.highlightColors.values();\n for (const child of this.#dropdown.children) {\n child.setAttribute(\"aria-selected\", i.next().value === color);\n }\n }\n destroy() {\n this.#button?.remove();\n this.#button = null;\n this.#buttonSwatch = null;\n this.#dropdown?.remove();\n this.#dropdown = null;\n }\n}\n\n;// ./src/display/editor/highlight.js\n\n\n\n\n\n\n\nclass HighlightEditor extends AnnotationEditor {\n #anchorNode = null;\n #anchorOffset = 0;\n #boxes;\n #clipPathId = null;\n #colorPicker = null;\n #focusOutlines = null;\n #focusNode = null;\n #focusOffset = 0;\n #highlightDiv = null;\n #highlightOutlines = null;\n #id = null;\n #isFreeHighlight = false;\n #lastPoint = null;\n #opacity;\n #outlineId = null;\n #text = \"\";\n #thickness;\n #methodOfCreation = \"\";\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 12;\n static _type = \"highlight\";\n static _editorType = AnnotationEditorType.HIGHLIGHT;\n static _freeHighlightId = -1;\n static _freeHighlight = null;\n static _freeHighlightClipId = \"\";\n static get _keyboardManager() {\n const proto = HighlightEditor.prototype;\n return shadow(this, \"_keyboardManager\", new KeyboardManager([[[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._moveCaret, {\n args: [0]\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._moveCaret, {\n args: [1]\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._moveCaret, {\n args: [2]\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._moveCaret, {\n args: [3]\n }]]));\n }\n constructor(params) {\n super({\n ...params,\n name: \"highlightEditor\"\n });\n this.color = params.color || HighlightEditor._defaultColor;\n this.#thickness = params.thickness || HighlightEditor._defaultThickness;\n this.#opacity = params.opacity || HighlightEditor._defaultOpacity;\n this.#boxes = params.boxes || null;\n this.#methodOfCreation = params.methodOfCreation || \"\";\n this.#text = params.text || \"\";\n this._isDraggable = false;\n if (params.highlightId > -1) {\n this.#isFreeHighlight = true;\n this.#createFreeOutlines(params);\n this.#addToDrawLayer();\n } else if (this.#boxes) {\n this.#anchorNode = params.anchorNode;\n this.#anchorOffset = params.anchorOffset;\n this.#focusNode = params.focusNode;\n this.#focusOffset = params.focusOffset;\n this.#createOutlines();\n this.#addToDrawLayer();\n this.rotate(this.rotation);\n }\n }\n get telemetryInitialData() {\n return {\n action: \"added\",\n type: this.#isFreeHighlight ? \"free_highlight\" : \"highlight\",\n color: this._uiManager.highlightColorNames.get(this.color),\n thickness: this.#thickness,\n methodOfCreation: this.#methodOfCreation\n };\n }\n get telemetryFinalData() {\n return {\n type: \"highlight\",\n color: this._uiManager.highlightColorNames.get(this.color)\n };\n }\n static computeTelemetryFinalData(data) {\n return {\n numberOfColors: data.get(\"color\").size\n };\n }\n #createOutlines() {\n const outliner = new HighlightOutliner(this.#boxes, 0.001);\n this.#highlightOutlines = outliner.getOutlines();\n ({\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height\n } = this.#highlightOutlines.box);\n const outlinerForOutline = new HighlightOutliner(this.#boxes, 0.0025, 0.001, this._uiManager.direction === \"ltr\");\n this.#focusOutlines = outlinerForOutline.getOutlines();\n const {\n lastPoint\n } = this.#focusOutlines.box;\n this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height];\n }\n #createFreeOutlines({\n highlightOutlines,\n highlightId,\n clipPathId\n }) {\n this.#highlightOutlines = highlightOutlines;\n const extraThickness = 1.5;\n this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, 0.0025);\n if (highlightId >= 0) {\n this.#id = highlightId;\n this.#clipPathId = clipPathId;\n this.parent.drawLayer.finalizeLine(highlightId, highlightOutlines);\n this.#outlineId = this.parent.drawLayer.drawOutline(this.#focusOutlines);\n } else if (this.parent) {\n const angle = this.parent.viewport.rotation;\n this.parent.drawLayer.updateLine(this.#id, highlightOutlines);\n this.parent.drawLayer.updateBox(this.#id, HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360));\n this.parent.drawLayer.updateLine(this.#outlineId, this.#focusOutlines);\n this.parent.drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle));\n }\n const {\n x,\n y,\n width,\n height\n } = highlightOutlines.box;\n switch (this.rotation) {\n case 0:\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n break;\n case 90:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = y;\n this.y = 1 - x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n case 180:\n this.x = 1 - x;\n this.y = 1 - y;\n this.width = width;\n this.height = height;\n break;\n case 270:\n {\n const [pageWidth, pageHeight] = this.parentDimensions;\n this.x = 1 - y;\n this.y = x;\n this.width = width * pageHeight / pageWidth;\n this.height = height * pageWidth / pageHeight;\n break;\n }\n }\n const {\n lastPoint\n } = this.#focusOutlines.box;\n this.#lastPoint = [(lastPoint[0] - x) / width, (lastPoint[1] - y) / height];\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || \"#fff066\";\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR:\n HighlightEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n HighlightEditor._defaultThickness = value;\n break;\n }\n }\n translateInPage(x, y) {}\n get toolbarPosition() {\n return this.#lastPoint;\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.HIGHLIGHT_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.HIGHLIGHT_THICKNESS:\n this.#updateThickness(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR, HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor], [AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness], [AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]];\n }\n #updateColor(color) {\n const setColorAndOpacity = (col, opa) => {\n this.color = col;\n this.parent?.drawLayer.changeColor(this.#id, col);\n this.#colorPicker?.updateColor(col);\n this.#opacity = opa;\n this.parent?.drawLayer.changeOpacity(this.#id, opa);\n };\n const savedColor = this.color;\n const savedOpacity = this.#opacity;\n this.addCommands({\n cmd: setColorAndOpacity.bind(this, color, HighlightEditor._defaultOpacity),\n undo: setColorAndOpacity.bind(this, savedColor, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"color_changed\",\n color: this._uiManager.highlightColorNames.get(color)\n }, true);\n }\n #updateThickness(thickness) {\n const savedThickness = this.#thickness;\n const setThickness = th => {\n this.#thickness = th;\n this.#changeThickness(th);\n };\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n this._reportTelemetry({\n action: \"thickness_changed\",\n thickness\n }, true);\n }\n async addEditToolbar() {\n const toolbar = await super.addEditToolbar();\n if (!toolbar) {\n return null;\n }\n if (this._uiManager.highlightColors) {\n this.#colorPicker = new ColorPicker({\n editor: this\n });\n toolbar.addColorPicker(this.#colorPicker);\n }\n return toolbar;\n }\n disableEditing() {\n super.disableEditing();\n this.div.classList.toggle(\"disabled\", true);\n }\n enableEditing() {\n super.enableEditing();\n this.div.classList.toggle(\"disabled\", false);\n }\n fixAndSetPosition() {\n return super.fixAndSetPosition(this.#getRotation());\n }\n getBaseTranslation() {\n return [0, 0];\n }\n getRect(tx, ty) {\n return super.getRect(tx, ty, this.#getRotation());\n }\n onceAdded() {\n if (!this.annotationElementId) {\n this.parent.addUndoableEditor(this);\n }\n this.div.focus();\n }\n remove() {\n this.#cleanDrawLayer();\n this._reportTelemetry({\n action: \"deleted\"\n });\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n this.#addToDrawLayer();\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n setParent(parent) {\n let mustBeSelected = false;\n if (this.parent && !parent) {\n this.#cleanDrawLayer();\n } else if (parent) {\n this.#addToDrawLayer(parent);\n mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n }\n super.setParent(parent);\n this.show(this._isVisible);\n if (mustBeSelected) {\n this.select();\n }\n }\n #changeThickness(thickness) {\n if (!this.#isFreeHighlight) {\n return;\n }\n this.#createFreeOutlines({\n highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2)\n });\n this.fixAndSetPosition();\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n }\n #cleanDrawLayer() {\n if (this.#id === null || !this.parent) {\n return;\n }\n this.parent.drawLayer.remove(this.#id);\n this.#id = null;\n this.parent.drawLayer.remove(this.#outlineId);\n this.#outlineId = null;\n }\n #addToDrawLayer(parent = this.parent) {\n if (this.#id !== null) {\n return;\n }\n ({\n id: this.#id,\n clipPathId: this.#clipPathId\n } = parent.drawLayer.draw(this.#highlightOutlines, this.color, this.#opacity));\n this.#outlineId = parent.drawLayer.drawOutline(this.#focusOutlines);\n if (this.#highlightDiv) {\n this.#highlightDiv.style.clipPath = this.#clipPathId;\n }\n }\n static #rotateBbox({\n x,\n y,\n width,\n height\n }, angle) {\n switch (angle) {\n case 90:\n return {\n x: 1 - y - height,\n y: x,\n width: height,\n height: width\n };\n case 180:\n return {\n x: 1 - x - width,\n y: 1 - y - height,\n width,\n height\n };\n case 270:\n return {\n x: y,\n y: 1 - x - width,\n width: height,\n height: width\n };\n }\n return {\n x,\n y,\n width,\n height\n };\n }\n rotate(angle) {\n const {\n drawLayer\n } = this.parent;\n let box;\n if (this.#isFreeHighlight) {\n angle = (angle - this.rotation + 360) % 360;\n box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle);\n } else {\n box = HighlightEditor.#rotateBbox(this, angle);\n }\n drawLayer.rotate(this.#id, angle);\n drawLayer.rotate(this.#outlineId, angle);\n drawLayer.updateBox(this.#id, box);\n drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle));\n }\n render() {\n if (this.div) {\n return this.div;\n }\n const div = super.render();\n if (this.#text) {\n div.setAttribute(\"aria-label\", this.#text);\n div.setAttribute(\"role\", \"mark\");\n }\n if (this.#isFreeHighlight) {\n div.classList.add(\"free\");\n } else {\n this.div.addEventListener(\"keydown\", this.#keydown.bind(this), {\n signal: this._uiManager._signal\n });\n }\n const highlightDiv = this.#highlightDiv = document.createElement(\"div\");\n div.append(highlightDiv);\n highlightDiv.setAttribute(\"aria-hidden\", \"true\");\n highlightDiv.className = \"internal\";\n highlightDiv.style.clipPath = this.#clipPathId;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n bindEvents(this, this.#highlightDiv, [\"pointerover\", \"pointerleave\"]);\n this.enableEditing();\n return div;\n }\n pointerover() {\n if (!this.isSelected) {\n this.parent.drawLayer.addClass(this.#outlineId, \"hovered\");\n }\n }\n pointerleave() {\n if (!this.isSelected) {\n this.parent.drawLayer.removeClass(this.#outlineId, \"hovered\");\n }\n }\n #keydown(event) {\n HighlightEditor._keyboardManager.exec(this, event);\n }\n _moveCaret(direction) {\n this.parent.unselect(this);\n switch (direction) {\n case 0:\n case 2:\n this.#setCaret(true);\n break;\n case 1:\n case 3:\n this.#setCaret(false);\n break;\n }\n }\n #setCaret(start) {\n if (!this.#anchorNode) {\n return;\n }\n const selection = window.getSelection();\n if (start) {\n selection.setPosition(this.#anchorNode, this.#anchorOffset);\n } else {\n selection.setPosition(this.#focusNode, this.#focusOffset);\n }\n }\n select() {\n super.select();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.removeClass(this.#outlineId, \"hovered\");\n this.parent?.drawLayer.addClass(this.#outlineId, \"selected\");\n }\n unselect() {\n super.unselect();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.removeClass(this.#outlineId, \"selected\");\n if (!this.#isFreeHighlight) {\n this.#setCaret(false);\n }\n }\n get _mustFixPosition() {\n return !this.#isFreeHighlight;\n }\n show(visible = this._isVisible) {\n super.show(visible);\n if (this.parent) {\n this.parent.drawLayer.show(this.#id, visible);\n this.parent.drawLayer.show(this.#outlineId, visible);\n }\n }\n #getRotation() {\n return this.#isFreeHighlight ? this.rotation : 0;\n }\n #serializeBoxes() {\n if (this.#isFreeHighlight) {\n return null;\n }\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const boxes = this.#boxes;\n const quadPoints = new Float32Array(boxes.length * 8);\n let i = 0;\n for (const {\n x,\n y,\n width,\n height\n } of boxes) {\n const sx = x * pageWidth + pageX;\n const sy = (1 - y - height) * pageHeight + pageY;\n quadPoints[i] = quadPoints[i + 4] = sx;\n quadPoints[i + 1] = quadPoints[i + 3] = sy;\n quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth;\n quadPoints[i + 5] = quadPoints[i + 7] = sy + height * pageHeight;\n i += 8;\n }\n return quadPoints;\n }\n #serializeOutlines(rect) {\n return this.#highlightOutlines.serialize(rect, this.#getRotation());\n }\n static startHighlighting(parent, isLTR, {\n target: textLayer,\n x,\n y\n }) {\n const {\n x: layerX,\n y: layerY,\n width: parentWidth,\n height: parentHeight\n } = textLayer.getBoundingClientRect();\n const ac = new AbortController();\n const signal = parent.combinedSignal(ac);\n const pointerDown = e => {\n e.preventDefault();\n e.stopPropagation();\n };\n const pointerUpCallback = e => {\n ac.abort();\n this.#endHighlight(parent, e);\n };\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"pointerdown\", pointerDown, {\n capture: true,\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n textLayer.addEventListener(\"pointermove\", this.#highlightMove.bind(this, parent), {\n signal\n });\n this._freeHighlight = new FreeHighlightOutliner({\n x,\n y\n }, [layerX, layerY, parentWidth, parentHeight], parent.scale, this._defaultThickness / 2, isLTR, 0.001);\n ({\n id: this._freeHighlightId,\n clipPathId: this._freeHighlightClipId\n } = parent.drawLayer.draw(this._freeHighlight, this._defaultColor, this._defaultOpacity, true));\n }\n static #highlightMove(parent, event) {\n if (this._freeHighlight.add(event)) {\n parent.drawLayer.updatePath(this._freeHighlightId, this._freeHighlight);\n }\n }\n static #endHighlight(parent, event) {\n if (!this._freeHighlight.isEmpty()) {\n parent.createAndAddNewEditor(event, false, {\n highlightId: this._freeHighlightId,\n highlightOutlines: this._freeHighlight.getOutlines(),\n clipPathId: this._freeHighlightClipId,\n methodOfCreation: \"main_toolbar\"\n });\n } else {\n parent.drawLayer.remove(this._freeHighlightId);\n }\n this._freeHighlightId = -1;\n this._freeHighlight = null;\n this._freeHighlightClipId = \"\";\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof HighlightAnnotationElement) {\n const {\n data: {\n quadPoints,\n rect,\n rotation,\n id,\n color,\n opacity,\n popupRef\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color: Array.from(color),\n opacity,\n quadPoints,\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n popupRef\n };\n } else if (data instanceof InkAnnotationElement) {\n const {\n data: {\n inkLists,\n rect,\n rotation,\n id,\n color,\n borderStyle: {\n rawWidth: thickness\n },\n popupRef\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color: Array.from(color),\n thickness,\n inkLists,\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n popupRef\n };\n }\n const {\n color,\n quadPoints,\n inkLists,\n opacity\n } = data;\n const editor = await super.deserialize(data, parent, uiManager);\n editor.color = Util.makeHexColor(...color);\n editor.#opacity = opacity || 1;\n if (inkLists) {\n editor.#thickness = data.thickness;\n }\n editor.annotationElementId = data.id || null;\n editor._initialData = initialData;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [pageX, pageY] = editor.pageTranslation;\n if (quadPoints) {\n const boxes = editor.#boxes = [];\n for (let i = 0; i < quadPoints.length; i += 8) {\n boxes.push({\n x: (quadPoints[i] - pageX) / pageWidth,\n y: 1 - (quadPoints[i + 1] - pageY) / pageHeight,\n width: (quadPoints[i + 2] - quadPoints[i]) / pageWidth,\n height: (quadPoints[i + 1] - quadPoints[i + 5]) / pageHeight\n });\n }\n editor.#createOutlines();\n editor.#addToDrawLayer();\n editor.rotate(editor.rotation);\n } else if (inkLists) {\n editor.#isFreeHighlight = true;\n const points = inkLists[0];\n const point = {\n x: points[0] - pageX,\n y: pageHeight - (points[1] - pageY)\n };\n const outliner = new FreeHighlightOutliner(point, [0, 0, pageWidth, pageHeight], 1, editor.#thickness / 2, true, 0.001);\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n point.x = points[i] - pageX;\n point.y = pageHeight - (points[i + 1] - pageY);\n outliner.add(point);\n }\n const {\n id,\n clipPathId\n } = parent.drawLayer.draw(outliner, editor.color, editor._defaultOpacity, true);\n editor.#createFreeOutlines({\n highlightOutlines: outliner.getOutlines(),\n highlightId: id,\n clipPathId\n });\n editor.#addToDrawLayer();\n }\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty() || isForCopying) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const rect = this.getRect(0, 0);\n const color = AnnotationEditor._colorManager.convert(this.color);\n const serialized = {\n annotationType: AnnotationEditorType.HIGHLIGHT,\n color,\n opacity: this.#opacity,\n thickness: this.#thickness,\n quadPoints: this.#serializeBoxes(),\n outlines: this.#serializeOutlines(rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.#getRotation(),\n structTreeParentId: this._structTreeParentId\n };\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n color\n } = this._initialData;\n return serialized.color.some((c, i) => c !== color[i]);\n }\n renderAnnotationElement(annotation) {\n annotation.updateEdited({\n rect: this.getRect(0, 0)\n });\n return null;\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// ./src/display/editor/ink.js\n\n\n\n\n\nclass InkEditor extends AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #canvasContextMenuTimeoutId = null;\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #drawingAC = null;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #pointerdownAC = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n static _editorType = AnnotationEditorType.INK;\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || AnnotationEditor._defaultLineColor], [AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || AnnotationEditor._defaultLineColor], [AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const setThickness = th => {\n this.thickness = th;\n this.#fitToContent();\n };\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: setThickness.bind(this, thickness),\n undo: setThickness.bind(this, savedThickness),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const setColor = col => {\n this.color = col;\n this.#redraw();\n };\n const savedColor = this.color;\n this.addCommands({\n cmd: setColor.bind(this, color),\n undo: setColor.bind(this, savedColor),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n const setOpacity = op => {\n this.opacity = op;\n this.#redraw();\n };\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: setOpacity.bind(this, opacity),\n undo: setOpacity.bind(this, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n if (this.#canvasContextMenuTimeoutId) {\n clearTimeout(this.#canvasContextMenuTimeoutId);\n this.#canvasContextMenuTimeoutId = null;\n }\n this.#observer?.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.#addPointerdownListener();\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.#removePointerdownListener();\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${opacityToHex(opacity)}`;\n }\n #startDrawing(x, y) {\n this.canvas.addEventListener(\"contextmenu\", noContextMenu, {\n signal: this._uiManager._signal\n });\n this.#removePointerdownListener();\n this.#drawingAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#drawingAC);\n this.canvas.addEventListener(\"pointerleave\", this.canvasPointerleave.bind(this), {\n signal\n });\n this.canvas.addEventListener(\"pointermove\", this.canvasPointermove.bind(this), {\n signal\n });\n this.canvas.addEventListener(\"pointerup\", this.canvasPointerup.bind(this), {\n signal\n });\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this._uiManager.rebuild(this);\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.select();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n #addPointerdownListener() {\n if (this.#pointerdownAC) {\n return;\n }\n this.#pointerdownAC = new AbortController();\n const signal = this._uiManager.combinedSignal(this.#pointerdownAC);\n this.canvas.addEventListener(\"pointerdown\", this.canvasPointerdown.bind(this), {\n signal\n });\n }\n #removePointerdownListener() {\n this.pointerdownAC?.abort();\n this.pointerdownAC = null;\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (!this.div.contains(document.activeElement)) {\n this.div.focus({\n preventScroll: true\n });\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.#drawingAC?.abort();\n this.#drawingAC = null;\n this.#addPointerdownListener();\n if (this.#canvasContextMenuTimeoutId) {\n clearTimeout(this.#canvasContextMenuTimeoutId);\n }\n this.#canvasContextMenuTimeoutId = setTimeout(() => {\n this.#canvasContextMenuTimeoutId = null;\n this.canvas.removeEventListener(\"contextmenu\", noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n this.canvas.setAttribute(\"data-l10n-id\", \"pdfjs-ink-canvas\");\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n this._uiManager._signal.addEventListener(\"abort\", () => {\n this.#observer?.disconnect();\n this.#observer = null;\n }, {\n once: true\n });\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.setAttribute(\"data-l10n-id\", \"pdfjs-ink\");\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n if (first[0] === second[0] && first[1] === second[1] && jj === 1) {\n const p0 = s * first[0] + shiftX;\n const p1 = s * first[1] + shiftY;\n buffer.push(p0, p1);\n points.push(p0, p1);\n break;\n }\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static async deserialize(data, parent, uiManager) {\n if (data instanceof InkAnnotationElement) {\n return null;\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\n\n;// ./src/display/editor/stamp.js\n\n\n\n\nclass StampEditor extends AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #bitmapFileName = \"\";\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n static _editorType = AnnotationEditorType.STAMP;\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return shadow(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return shadow(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n altTextFinish() {\n if (this._uiManager.useNewAltTextFlow) {\n this.div.hidden = false;\n }\n super.altTextFinish();\n }\n get telemetryFinalData() {\n return {\n type: \"stamp\",\n hasAltText: !!this.altTextData?.altText\n };\n }\n static computeTelemetryFinalData(data) {\n const hasAltTextStats = data.get(\"hasAltText\");\n return {\n hasAltText: hasAltTextStats.get(true) ?? 0,\n hasNoAltText: hasAltTextStats.get(false) ?? 0\n };\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n if (data.file) {\n this.#bitmapFileName = data.file.name;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (!this.#canvas) {\n return;\n }\n if (this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n this._editToolbar.hide();\n this._uiManager.editAltText(this, true);\n return;\n }\n if (!this._uiManager.useNewAltTextWhenAddingImage && this._uiManager.useNewAltTextFlow && this.#bitmap) {\n this._reportTelemetry({\n action: \"pdfjs.image.image_added\",\n data: {\n alt_text_modal: false,\n alt_text_type: \"empty\"\n }\n });\n try {\n this.mlGuessAltText();\n } catch {}\n }\n this.div.focus();\n }\n async mlGuessAltText(imageData = null, updateAltTextData = true) {\n if (this.hasAltTextData()) {\n return null;\n }\n const {\n mlManager\n } = this._uiManager;\n if (!mlManager) {\n throw new Error(\"No ML.\");\n }\n if (!(await mlManager.isEnabledFor(\"altText\"))) {\n throw new Error(\"ML isn't enabled for alt text.\");\n }\n const {\n data,\n width,\n height\n } = imageData || this.copyCanvas(null, null, true).imageData;\n const response = await mlManager.guess({\n name: \"altText\",\n request: {\n data,\n width,\n height,\n channels: data.length / (width * height)\n }\n });\n if (!response) {\n throw new Error(\"No response from the AI service.\");\n }\n if (response.error) {\n throw new Error(\"Error from the AI service.\");\n }\n if (response.cancel) {\n return null;\n }\n if (!response.output) {\n throw new Error(\"No valid response from the AI service.\");\n }\n const altText = response.output;\n await this.setGuessedAltText(altText);\n if (updateAltTextData && !this.hasAltTextData()) {\n this.altTextData = {\n alt: altText,\n decorative: false\n };\n }\n return altText;\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n const signal = this._uiManager._signal;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this._reportTelemetry({\n action: \"pdfjs.image.image_selected\",\n data: {\n alt_text_modal: this._uiManager.useNewAltTextFlow\n }\n });\n this.#getBitmapFetched(data);\n }\n resolve();\n }, {\n signal\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n }, {\n signal\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n if (this.#resizeTimeoutId) {\n clearTimeout(this.#resizeTimeoutId);\n this.#resizeTimeoutId = null;\n }\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId && this.#canvas === null) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n this.div.setAttribute(\"role\", \"figure\");\n this.addAltTextButton();\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width && !this.annotationElementId) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n canvas.setAttribute(\"role\", \"img\");\n this.addContainer(canvas);\n if (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) {\n div.hidden = false;\n }\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._reportTelemetry({\n action: \"inserted_image\"\n });\n if (this.#bitmapFileName) {\n canvas.setAttribute(\"aria-label\", this.#bitmapFileName);\n }\n }\n copyCanvas(maxDataDimension, maxPreviewDimension, createImageData = false) {\n if (!maxDataDimension) {\n maxDataDimension = 224;\n }\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n const outputScale = new OutputScale();\n let bitmap = this.#bitmap;\n let width = bitmapWidth,\n height = bitmapHeight;\n let canvas = null;\n if (maxPreviewDimension) {\n if (bitmapWidth > maxPreviewDimension || bitmapHeight > maxPreviewDimension) {\n const ratio = Math.min(maxPreviewDimension / bitmapWidth, maxPreviewDimension / bitmapHeight);\n width = Math.floor(bitmapWidth * ratio);\n height = Math.floor(bitmapHeight * ratio);\n }\n canvas = document.createElement(\"canvas\");\n const scaledWidth = canvas.width = Math.ceil(width * outputScale.sx);\n const scaledHeight = canvas.height = Math.ceil(height * outputScale.sy);\n if (!this.#isSvg) {\n bitmap = this.#scaleBitmap(scaledWidth, scaledHeight);\n }\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n let white = \"white\",\n black = \"#cfcfd8\";\n if (this._uiManager.hcmFilter !== \"none\") {\n black = \"black\";\n } else if (window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches) {\n white = \"#8f8f9d\";\n black = \"#42414d\";\n }\n const boxDim = 15;\n const boxDimWidth = boxDim * outputScale.sx;\n const boxDimHeight = boxDim * outputScale.sy;\n const pattern = new OffscreenCanvas(boxDimWidth * 2, boxDimHeight * 2);\n const patternCtx = pattern.getContext(\"2d\");\n patternCtx.fillStyle = white;\n patternCtx.fillRect(0, 0, boxDimWidth * 2, boxDimHeight * 2);\n patternCtx.fillStyle = black;\n patternCtx.fillRect(0, 0, boxDimWidth, boxDimHeight);\n patternCtx.fillRect(boxDimWidth, boxDimHeight, boxDimWidth, boxDimHeight);\n ctx.fillStyle = ctx.createPattern(pattern, \"repeat\");\n ctx.fillRect(0, 0, scaledWidth, scaledHeight);\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n }\n let imageData = null;\n if (createImageData) {\n let dataWidth, dataHeight;\n if (outputScale.symmetric && bitmap.width < maxDataDimension && bitmap.height < maxDataDimension) {\n dataWidth = bitmap.width;\n dataHeight = bitmap.height;\n } else {\n bitmap = this.#bitmap;\n if (bitmapWidth > maxDataDimension || bitmapHeight > maxDataDimension) {\n const ratio = Math.min(maxDataDimension / bitmapWidth, maxDataDimension / bitmapHeight);\n dataWidth = Math.floor(bitmapWidth * ratio);\n dataHeight = Math.floor(bitmapHeight * ratio);\n if (!this.#isSvg) {\n bitmap = this.#scaleBitmap(dataWidth, dataHeight);\n }\n }\n }\n const offscreen = new OffscreenCanvas(dataWidth, dataHeight);\n const offscreenCtx = offscreen.getContext(\"2d\", {\n willReadFrequently: true\n });\n offscreenCtx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, dataWidth, dataHeight);\n imageData = {\n width: dataWidth,\n height: dataHeight,\n data: offscreenCtx.getImageData(0, 0, dataWidth, dataHeight).data\n };\n }\n return {\n canvas,\n width,\n height,\n imageData\n };\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n const outputScale = new OutputScale();\n const scaledWidth = Math.ceil(width * outputScale.sx);\n const scaledHeight = Math.ceil(height * outputScale.sy);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === scaledWidth && canvas.height === scaledHeight) {\n return;\n }\n canvas.width = scaledWidth;\n canvas.height = scaledHeight;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(scaledWidth, scaledHeight);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, scaledWidth, scaledHeight);\n }\n getImageForAltText() {\n return this.#canvas;\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n if (!this._uiManager._signal) {\n return;\n }\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n this._uiManager._signal.addEventListener(\"abort\", () => {\n this.#observer?.disconnect();\n this.#observer = null;\n }, {\n once: true\n });\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof StampAnnotationElement) {\n const {\n data: {\n rect,\n rotation,\n id,\n structParent,\n popupRef\n },\n container,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n const canvas = container.querySelector(\"canvas\");\n const imageData = uiManager.imageManager.getFromCanvas(container.id, canvas);\n canvas.remove();\n const altText = (await parent._structTree.getAriaAttributes(`${AnnotationPrefix}${id}`))?.get(\"aria-label\") || \"\";\n initialData = data = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId: imageData.id,\n bitmap: imageData.bitmap,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n id,\n deleted: false,\n accessibilityData: {\n decorative: false,\n altText\n },\n isSvg: false,\n structParent,\n popupRef\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmap,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n if (bitmap) {\n editor.#bitmap = bitmap;\n }\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n editor.annotationElementId = data.id || null;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n editor._initialData = initialData;\n editor.#hasBeenAddedInUndoStack = !!initialData;\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const serialized = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.serializeAltText(true);\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.serializeAltText(false);\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (this.annotationElementId) {\n const changes = this.#hasElementChanged(serialized);\n if (changes.isSame) {\n return null;\n }\n if (changes.isSameAltText) {\n delete serialized.accessibilityData;\n } else {\n serialized.accessibilityData.structParent = this._initialData.structParent ?? -1;\n }\n }\n serialized.id = this.annotationElementId;\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n rect,\n pageIndex,\n accessibilityData: {\n altText\n }\n } = this._initialData;\n const isSameRect = serialized.rect.every((x, i) => Math.abs(x - rect[i]) < 1);\n const isSamePageIndex = serialized.pageIndex === pageIndex;\n const isSameAltText = (serialized.accessibilityData?.alt || \"\") === altText;\n return {\n isSame: isSameRect && isSamePageIndex && isSameAltText,\n isSameAltText\n };\n }\n renderAnnotationElement(annotation) {\n annotation.updateEdited({\n rect: this.getRect(0, 0)\n });\n return null;\n }\n}\n\n;// ./src/display/editor/annotation_editor_layer.js\n\n\n\n\n\n\n\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #clickAC = null;\n #editorFocusTimeoutId = null;\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #textLayer = null;\n #textSelectionAC = null;\n #uiManager;\n static _initialized = false;\n static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor].map(type => [type._editorType, type]));\n constructor({\n uiManager,\n pageIndex,\n div,\n structTreeLayer,\n accessibilityManager,\n annotationLayer,\n drawLayer,\n textLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n, uiManager);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#textLayer = textLayer;\n this.drawLayer = drawLayer;\n this._structTree = structTreeLayer;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n get isInvisible() {\n return this.isEmpty && this.#uiManager.getMode() === AnnotationEditorType.NONE;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n switch (mode) {\n case AnnotationEditorType.NONE:\n this.disableTextSelection();\n this.togglePointerEvents(false);\n this.toggleAnnotationLayerPointerEvents(true);\n this.disableClick();\n return;\n case AnnotationEditorType.INK:\n this.addInkEditorIfNeeded(false);\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.disableClick();\n break;\n case AnnotationEditorType.HIGHLIGHT:\n this.enableTextSelection();\n this.togglePointerEvents(false);\n this.disableClick();\n break;\n default:\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.enableClick();\n }\n this.toggleAnnotationLayerPointerEvents(false);\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);\n }\n this.div.hidden = false;\n }\n hasTextLayer(textLayer) {\n return textLayer === this.#textLayer?.div;\n }\n addInkEditorIfNeeded(isCommitting) {\n if (this.#uiManager.getMode() !== AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n toggleDrawing(enabled = false) {\n this.div.classList.toggle(\"drawing\", !enabled);\n }\n togglePointerEvents(enabled = false) {\n this.div.classList.toggle(\"disabled\", !enabled);\n }\n toggleAnnotationLayerPointerEvents(enabled = false) {\n this.#annotationLayer?.div.classList.toggle(\"disabled\", !enabled);\n }\n async enable() {\n this.div.tabIndex = 0;\n this.togglePointerEvents(true);\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n editor.show(true);\n if (editor.annotationElementId) {\n this.#uiManager.removeChangedExistingAnnotation(editor);\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = await this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.tabIndex = -1;\n this.togglePointerEvents(false);\n const changedAnnotations = new Map();\n const resetAnnotations = new Map();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId) {\n continue;\n }\n if (editor.serialize() !== null) {\n changedAnnotations.set(editor.annotationElementId, editor);\n continue;\n } else {\n resetAnnotations.set(editor.annotationElementId, editor);\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n let editor = resetAnnotations.get(id);\n if (editor) {\n editor.resetAnnotationElement(editable);\n editor.show(false);\n editable.show();\n continue;\n }\n editor = changedAnnotations.get(id);\n if (editor) {\n this.#uiManager.addChangedExistingAnnotation(editor);\n if (editor.renderAnnotationElement(editable)) {\n editor.show(false);\n }\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n const {\n classList\n } = this.div;\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.remove(`${editorType._type}Editing`);\n }\n this.disableTextSelection();\n this.toggleAnnotationLayerPointerEvents(true);\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableTextSelection() {\n this.div.tabIndex = -1;\n if (this.#textLayer?.div && !this.#textSelectionAC) {\n this.#textSelectionAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#textSelectionAC);\n this.#textLayer.div.addEventListener(\"pointerdown\", this.#textLayerPointerDown.bind(this), {\n signal\n });\n this.#textLayer.div.classList.add(\"highlighting\");\n }\n }\n disableTextSelection() {\n this.div.tabIndex = 0;\n if (this.#textLayer?.div && this.#textSelectionAC) {\n this.#textSelectionAC.abort();\n this.#textSelectionAC = null;\n this.#textLayer.div.classList.remove(\"highlighting\");\n }\n }\n #textLayerPointerDown(event) {\n this.#uiManager.unselectAll();\n const {\n target\n } = event;\n if (target === this.#textLayer.div || (target.getAttribute(\"role\") === \"img\" || target.classList.contains(\"endOfContent\")) && this.#textLayer.div.contains(target)) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n this.#uiManager.showAllEditors(\"highlight\", true, true);\n this.#textLayer.div.classList.add(\"free\");\n this.toggleDrawing();\n HighlightEditor.startHighlighting(this, this.#uiManager.direction === \"ltr\", {\n target: this.#textLayer.div,\n x: event.x,\n y: event.y\n });\n this.#textLayer.div.addEventListener(\"pointerup\", () => {\n this.#textLayer.div.classList.remove(\"free\");\n this.toggleDrawing(true);\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n event.preventDefault();\n }\n }\n enableClick() {\n if (this.#clickAC) {\n return;\n }\n this.#clickAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#clickAC);\n this.div.addEventListener(\"pointerdown\", this.pointerdown.bind(this), {\n signal\n });\n this.div.addEventListener(\"pointerup\", this.pointerup.bind(this), {\n signal\n });\n }\n disableClick() {\n this.#clickAC?.abort();\n this.#clickAC = null;\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.parent && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n if (editor.parent === this && editor.isAttachedToDOM) {\n return;\n }\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n editor._reportTelemetry(editor.telemetryInitialData);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) {\n editor._focusEventsAllowed = false;\n this.#editorFocusTimeoutId = setTimeout(() => {\n this.#editorFocusTimeoutId = null;\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true,\n signal: this.#uiManager._signal\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.parent ||= this;\n editor.rebuild();\n editor.show();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n get #currentEditorType() {\n return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode());\n }\n combinedSignal(ac) {\n return this.#uiManager.combinedSignal(ac);\n }\n #createNewEditor(params) {\n const editorType = this.#currentEditorType;\n return editorType ? new editorType.prototype.constructor(params) : null;\n }\n canCreateNewEmptyEditor() {\n return this.#currentEditorType?.canCreateNewEmptyEditor();\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n async deserialize(data) {\n return (await AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager)) || null;\n }\n createAndAddNewEditor(event, isCentered, data = {}) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered,\n ...data\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#uiManager.getMode() === AnnotationEditorType.HIGHLIGHT) {\n this.enableTextSelection();\n }\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = util_FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n if (this.#editorFocusTimeoutId) {\n clearTimeout(this.#editorFocusTimeoutId);\n this.#editorFocusTimeoutId = null;\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n setLayerDimensions(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n editor.rebuild();\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.#cleanup();\n const oldRotation = this.viewport.rotation;\n const rotation = viewport.rotation;\n this.viewport = viewport;\n setLayerDimensions(this.div, {\n rotation\n });\n if (oldRotation !== rotation) {\n for (const editor of this.#editors.values()) {\n editor.rotate(rotation);\n }\n }\n this.addInkEditorIfNeeded(false);\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n get scale() {\n return this.#uiManager.viewParameters.realScale;\n }\n}\n\n;// ./src/display/draw_layer.js\n\n\nclass DrawLayer {\n #parent = null;\n #id = 0;\n #mapping = new Map();\n #toUpdate = new Map();\n constructor({\n pageIndex\n }) {\n this.pageIndex = pageIndex;\n }\n setParent(parent) {\n if (!this.#parent) {\n this.#parent = parent;\n return;\n }\n if (this.#parent !== parent) {\n if (this.#mapping.size > 0) {\n for (const root of this.#mapping.values()) {\n root.remove();\n parent.append(root);\n }\n }\n this.#parent = parent;\n }\n }\n static get _svgFactory() {\n return shadow(this, \"_svgFactory\", new DOMSVGFactory());\n }\n static #setBox(element, {\n x = 0,\n y = 0,\n width = 1,\n height = 1\n } = {}) {\n const {\n style\n } = element;\n style.top = `${100 * y}%`;\n style.left = `${100 * x}%`;\n style.width = `${100 * width}%`;\n style.height = `${100 * height}%`;\n }\n #createSVG(box) {\n const svg = DrawLayer._svgFactory.create(1, 1, true);\n this.#parent.append(svg);\n svg.setAttribute(\"aria-hidden\", true);\n DrawLayer.#setBox(svg, box);\n return svg;\n }\n #createClipPath(defs, pathId) {\n const clipPath = DrawLayer._svgFactory.createElement(\"clipPath\");\n defs.append(clipPath);\n const clipPathId = `clip_${pathId}`;\n clipPath.setAttribute(\"id\", clipPathId);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n const clipPathUse = DrawLayer._svgFactory.createElement(\"use\");\n clipPath.append(clipPathUse);\n clipPathUse.setAttribute(\"href\", `#${pathId}`);\n clipPathUse.classList.add(\"clip\");\n return clipPathId;\n }\n draw(outlines, color, opacity, isPathUpdatable = false) {\n const id = this.#id++;\n const root = this.#createSVG(outlines.box);\n root.classList.add(...outlines.classNamesForDrawing);\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_p${this.pageIndex}_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"d\", outlines.toSVGPath());\n if (isPathUpdatable) {\n this.#toUpdate.set(id, path);\n }\n const clipPathId = this.#createClipPath(defs, pathId);\n const use = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use);\n root.setAttribute(\"fill\", color);\n root.setAttribute(\"fill-opacity\", opacity);\n use.setAttribute(\"href\", `#${pathId}`);\n this.#mapping.set(id, root);\n return {\n id,\n clipPathId: `url(#${clipPathId})`\n };\n }\n drawOutline(outlines) {\n const id = this.#id++;\n const root = this.#createSVG(outlines.box);\n root.classList.add(...outlines.classNamesForOutlining);\n const defs = DrawLayer._svgFactory.createElement(\"defs\");\n root.append(defs);\n const path = DrawLayer._svgFactory.createElement(\"path\");\n defs.append(path);\n const pathId = `path_p${this.pageIndex}_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"d\", outlines.toSVGPath());\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n let maskId;\n if (outlines.mustRemoveSelfIntersections) {\n const mask = DrawLayer._svgFactory.createElement(\"mask\");\n defs.append(mask);\n maskId = `mask_p${this.pageIndex}_${id}`;\n mask.setAttribute(\"id\", maskId);\n mask.setAttribute(\"maskUnits\", \"objectBoundingBox\");\n const rect = DrawLayer._svgFactory.createElement(\"rect\");\n mask.append(rect);\n rect.setAttribute(\"width\", \"1\");\n rect.setAttribute(\"height\", \"1\");\n rect.setAttribute(\"fill\", \"white\");\n const use = DrawLayer._svgFactory.createElement(\"use\");\n mask.append(use);\n use.setAttribute(\"href\", `#${pathId}`);\n use.setAttribute(\"stroke\", \"none\");\n use.setAttribute(\"fill\", \"black\");\n use.setAttribute(\"fill-rule\", \"nonzero\");\n use.classList.add(\"mask\");\n }\n const use1 = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use1);\n use1.setAttribute(\"href\", `#${pathId}`);\n if (maskId) {\n use1.setAttribute(\"mask\", `url(#${maskId})`);\n }\n const use2 = use1.cloneNode();\n root.append(use2);\n use1.classList.add(\"mainOutline\");\n use2.classList.add(\"secondaryOutline\");\n this.#mapping.set(id, root);\n return id;\n }\n finalizeLine(id, line) {\n const path = this.#toUpdate.get(id);\n this.#toUpdate.delete(id);\n this.updateBox(id, line.box);\n path.setAttribute(\"d\", line.toSVGPath());\n }\n updateLine(id, line) {\n const root = this.#mapping.get(id);\n const defs = root.firstChild;\n const path = defs.firstChild;\n path.setAttribute(\"d\", line.toSVGPath());\n }\n updatePath(id, line) {\n this.#toUpdate.get(id).setAttribute(\"d\", line.toSVGPath());\n }\n updateBox(id, box) {\n DrawLayer.#setBox(this.#mapping.get(id), box);\n }\n show(id, visible) {\n this.#mapping.get(id).classList.toggle(\"hidden\", !visible);\n }\n rotate(id, angle) {\n this.#mapping.get(id).setAttribute(\"data-main-rotation\", angle);\n }\n changeColor(id, color) {\n this.#mapping.get(id).setAttribute(\"fill\", color);\n }\n changeOpacity(id, opacity) {\n this.#mapping.get(id).setAttribute(\"fill-opacity\", opacity);\n }\n addClass(id, className) {\n this.#mapping.get(id).classList.add(className);\n }\n removeClass(id, className) {\n this.#mapping.get(id).classList.remove(className);\n }\n getSVGRoot(id) {\n return this.#mapping.get(id);\n }\n remove(id) {\n this.#toUpdate.delete(id);\n if (this.#parent === null) {\n return;\n }\n this.#mapping.get(id).remove();\n this.#mapping.delete(id);\n }\n destroy() {\n this.#parent = null;\n for (const root of this.#mapping.values()) {\n root.remove();\n }\n this.#mapping.clear();\n this.#toUpdate.clear();\n }\n}\n\n;// ./src/pdf.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst pdfjsVersion = \"4.8.69\";\nconst pdfjsBuild = \"3634dab10\";\n\nvar __webpack_exports__AbortException = __webpack_exports__.AbortException;\nvar __webpack_exports__AnnotationEditorLayer = __webpack_exports__.AnnotationEditorLayer;\nvar __webpack_exports__AnnotationEditorParamsType = __webpack_exports__.AnnotationEditorParamsType;\nvar __webpack_exports__AnnotationEditorType = __webpack_exports__.AnnotationEditorType;\nvar __webpack_exports__AnnotationEditorUIManager = __webpack_exports__.AnnotationEditorUIManager;\nvar __webpack_exports__AnnotationLayer = __webpack_exports__.AnnotationLayer;\nvar __webpack_exports__AnnotationMode = __webpack_exports__.AnnotationMode;\nvar __webpack_exports__ColorPicker = __webpack_exports__.ColorPicker;\nvar __webpack_exports__DOMSVGFactory = __webpack_exports__.DOMSVGFactory;\nvar __webpack_exports__DrawLayer = __webpack_exports__.DrawLayer;\nvar __webpack_exports__FeatureTest = __webpack_exports__.FeatureTest;\nvar __webpack_exports__GlobalWorkerOptions = __webpack_exports__.GlobalWorkerOptions;\nvar __webpack_exports__ImageKind = __webpack_exports__.ImageKind;\nvar __webpack_exports__InvalidPDFException = __webpack_exports__.InvalidPDFException;\nvar __webpack_exports__MissingPDFException = __webpack_exports__.MissingPDFException;\nvar __webpack_exports__OPS = __webpack_exports__.OPS;\nvar __webpack_exports__OutputScale = __webpack_exports__.OutputScale;\nvar __webpack_exports__PDFDataRangeTransport = __webpack_exports__.PDFDataRangeTransport;\nvar __webpack_exports__PDFDateString = __webpack_exports__.PDFDateString;\nvar __webpack_exports__PDFWorker = __webpack_exports__.PDFWorker;\nvar __webpack_exports__PasswordResponses = __webpack_exports__.PasswordResponses;\nvar __webpack_exports__PermissionFlag = __webpack_exports__.PermissionFlag;\nvar __webpack_exports__PixelsPerInch = __webpack_exports__.PixelsPerInch;\nvar __webpack_exports__RenderingCancelledException = __webpack_exports__.RenderingCancelledException;\nvar __webpack_exports__TextLayer = __webpack_exports__.TextLayer;\nvar __webpack_exports__UnexpectedResponseException = __webpack_exports__.UnexpectedResponseException;\nvar __webpack_exports__Util = __webpack_exports__.Util;\nvar __webpack_exports__VerbosityLevel = __webpack_exports__.VerbosityLevel;\nvar __webpack_exports__XfaLayer = __webpack_exports__.XfaLayer;\nvar __webpack_exports__build = __webpack_exports__.build;\nvar __webpack_exports__createValidAbsoluteUrl = __webpack_exports__.createValidAbsoluteUrl;\nvar __webpack_exports__fetchData = __webpack_exports__.fetchData;\nvar __webpack_exports__getDocument = __webpack_exports__.getDocument;\nvar __webpack_exports__getFilenameFromUrl = __webpack_exports__.getFilenameFromUrl;\nvar __webpack_exports__getPdfFilenameFromUrl = __webpack_exports__.getPdfFilenameFromUrl;\nvar __webpack_exports__getXfaPageViewport = __webpack_exports__.getXfaPageViewport;\nvar __webpack_exports__isDataScheme = __webpack_exports__.isDataScheme;\nvar __webpack_exports__isPdfFile = __webpack_exports__.isPdfFile;\nvar __webpack_exports__noContextMenu = __webpack_exports__.noContextMenu;\nvar __webpack_exports__normalizeUnicode = __webpack_exports__.normalizeUnicode;\nvar __webpack_exports__setLayerDimensions = __webpack_exports__.setLayerDimensions;\nvar __webpack_exports__shadow = __webpack_exports__.shadow;\nvar __webpack_exports__version = __webpack_exports__.version;\nexport { __webpack_exports__AbortException as AbortException, __webpack_exports__AnnotationEditorLayer as AnnotationEditorLayer, __webpack_exports__AnnotationEditorParamsType as AnnotationEditorParamsType, __webpack_exports__AnnotationEditorType as AnnotationEditorType, __webpack_exports__AnnotationEditorUIManager as AnnotationEditorUIManager, __webpack_exports__AnnotationLayer as AnnotationLayer, __webpack_exports__AnnotationMode as AnnotationMode, __webpack_exports__ColorPicker as ColorPicker, __webpack_exports__DOMSVGFactory as DOMSVGFactory, __webpack_exports__DrawLayer as DrawLayer, __webpack_exports__FeatureTest as FeatureTest, __webpack_exports__GlobalWorkerOptions as GlobalWorkerOptions, __webpack_exports__ImageKind as ImageKind, __webpack_exports__InvalidPDFException as InvalidPDFException, __webpack_exports__MissingPDFException as MissingPDFException, __webpack_exports__OPS as OPS, __webpack_exports__OutputScale as OutputScale, __webpack_exports__PDFDataRangeTransport as PDFDataRangeTransport, __webpack_exports__PDFDateString as PDFDateString, __webpack_exports__PDFWorker as PDFWorker, __webpack_exports__PasswordResponses as PasswordResponses, __webpack_exports__PermissionFlag as PermissionFlag, __webpack_exports__PixelsPerInch as PixelsPerInch, __webpack_exports__RenderingCancelledException as RenderingCancelledException, __webpack_exports__TextLayer as TextLayer, __webpack_exports__UnexpectedResponseException as UnexpectedResponseException, __webpack_exports__Util as Util, __webpack_exports__VerbosityLevel as VerbosityLevel, __webpack_exports__XfaLayer as XfaLayer, __webpack_exports__build as build, __webpack_exports__createValidAbsoluteUrl as createValidAbsoluteUrl, __webpack_exports__fetchData as fetchData, __webpack_exports__getDocument as getDocument, __webpack_exports__getFilenameFromUrl as getFilenameFromUrl, __webpack_exports__getPdfFilenameFromUrl as getPdfFilenameFromUrl, __webpack_exports__getXfaPageViewport as getXfaPageViewport, __webpack_exports__isDataScheme as isDataScheme, __webpack_exports__isPdfFile as isPdfFile, __webpack_exports__noContextMenu as noContextMenu, __webpack_exports__normalizeUnicode as normalizeUnicode, __webpack_exports__setLayerDimensions as setLayerDimensions, __webpack_exports__shadow as shadow, __webpack_exports__version as version };\n\n//# sourceMappingURL=pdf.mjs.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n// As defined on the list of supported events: https://reactjs.org/docs/events.html\nexport var clipboardEvents = ['onCopy', 'onCut', 'onPaste'];\nexport var compositionEvents = [\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n];\nexport var focusEvents = ['onFocus', 'onBlur'];\nexport var formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'];\nexport var imageEvents = ['onLoad', 'onError'];\nexport var keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'];\nexport var mediaEvents = [\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onError',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n];\nexport var mouseEvents = [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n];\nexport var dragEvents = [\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n];\nexport var selectionEvents = ['onSelect'];\nexport var touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];\nexport var pointerEvents = [\n 'onPointerDown',\n 'onPointerMove',\n 'onPointerUp',\n 'onPointerCancel',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerOver',\n 'onPointerOut',\n];\nexport var uiEvents = ['onScroll'];\nexport var wheelEvents = ['onWheel'];\nexport var animationEvents = [\n 'onAnimationStart',\n 'onAnimationEnd',\n 'onAnimationIteration',\n];\nexport var transitionEvents = ['onTransitionEnd'];\nexport var otherEvents = ['onToggle'];\nexport var changeEvents = ['onChange'];\nexport var allEvents = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], clipboardEvents, true), compositionEvents, true), focusEvents, true), formEvents, true), imageEvents, true), keyboardEvents, true), mediaEvents, true), mouseEvents, true), dragEvents, true), selectionEvents, true), touchEvents, true), pointerEvents, true), uiEvents, true), wheelEvents, true), animationEvents, true), transitionEvents, true), changeEvents, true), otherEvents, true);\n/**\n * Returns an object with on-event callback props curried with provided args.\n * @param {Object} props Props passed to a component.\n * @param {Function=} getArgs A function that returns argument(s) on-event callbacks\n * shall be curried with.\n */\nexport default function makeEventProps(props, getArgs) {\n var eventProps = {};\n allEvents.forEach(function (eventName) {\n var eventHandler = props[eventName];\n if (!eventHandler) {\n return;\n }\n if (getArgs) {\n eventProps[eventName] = (function (event) {\n return eventHandler(event, getArgs(eventName));\n });\n }\n else {\n eventProps[eventName] = eventHandler;\n }\n });\n return eventProps;\n}\n","export default function makeCancellablePromise(promise) {\n var isCancelled = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise\n .then(function (value) { return !isCancelled && resolve(value); })\n .catch(function (error) { return !isCancelled && reject(error); });\n });\n return {\n promise: wrappedPromise,\n cancel: function () {\n isCancelled = true;\n },\n };\n}\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","var has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n\tfor (key of iter.keys()) {\n\t\tif (dequal(key, tar)) return key;\n\t}\n}\n\nexport function dequal(foo, bar) {\n\tvar ctor, len, tmp;\n\tif (foo === bar) return true;\n\n\tif (foo && bar && (ctor=foo.constructor) === bar.constructor) {\n\t\tif (ctor === Date) return foo.getTime() === bar.getTime();\n\t\tif (ctor === RegExp) return foo.toString() === bar.toString();\n\n\t\tif (ctor === Array) {\n\t\t\tif ((len=foo.length) === bar.length) {\n\t\t\t\twhile (len-- && dequal(foo[len], bar[len]));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ctor === Set) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len;\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!bar.has(tmp)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === Map) {\n\t\t\tif (foo.size !== bar.size) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor (len of foo) {\n\t\t\t\ttmp = len[0];\n\t\t\t\tif (tmp && typeof tmp === 'object') {\n\t\t\t\t\ttmp = find(bar, tmp);\n\t\t\t\t\tif (!tmp) return false;\n\t\t\t\t}\n\t\t\t\tif (!dequal(len[1], bar.get(tmp))) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tif (ctor === ArrayBuffer) {\n\t\t\tfoo = new Uint8Array(foo);\n\t\t\tbar = new Uint8Array(bar);\n\t\t} else if (ctor === DataView) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo.getInt8(len) === bar.getInt8(len));\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (ArrayBuffer.isView(foo)) {\n\t\t\tif ((len=foo.byteLength) === bar.byteLength) {\n\t\t\t\twhile (len-- && foo[len] === bar[len]);\n\t\t\t}\n\t\t\treturn len === -1;\n\t\t}\n\n\t\tif (!ctor || typeof foo === 'object') {\n\t\t\tlen = 0;\n\t\t\tfor (ctor in foo) {\n\t\t\t\tif (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n\t\t\t\tif (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n\t\t\t}\n\t\t\treturn Object.keys(bar).length === len;\n\t\t}\n\t}\n\n\treturn foo !== foo && bar !== bar;\n}\n","'use client';\nimport { createContext } from 'react';\nconst documentContext = createContext(null);\nexport default documentContext;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Message({ children, type }) {\n return _jsx(\"div\", { className: `react-pdf__message react-pdf__message--${type}`, children: children });\n}\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 */\nimport invariant from 'tiny-invariant';\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nexport default class LinkService {\n constructor() {\n this.externalLinkEnabled = true;\n this.externalLinkRel = undefined;\n this.externalLinkTarget = undefined;\n this.isInPresentationMode = false;\n this.pdfDocument = undefined;\n this.pdfViewer = undefined;\n }\n setDocument(pdfDocument) {\n this.pdfDocument = pdfDocument;\n }\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n setExternalLinkRel(externalLinkRel) {\n this.externalLinkRel = externalLinkRel;\n }\n setExternalLinkTarget(externalLinkTarget) {\n this.externalLinkTarget = externalLinkTarget;\n }\n setHistory() {\n // Intentionally empty\n }\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n get page() {\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n return this.pdfViewer.currentPageNumber || 0;\n }\n set page(value) {\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n this.pdfViewer.currentPageNumber = value;\n }\n get rotation() {\n return 0;\n }\n set rotation(_value) {\n // Intentionally empty\n }\n goToDestination(dest) {\n return new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n invariant(dest, 'Destination is not specified.');\n if (typeof dest === 'string') {\n this.pdfDocument.getDestination(dest).then(resolve);\n }\n else if (Array.isArray(dest)) {\n resolve(dest);\n }\n else {\n dest.then(resolve);\n }\n }).then((explicitDest) => {\n invariant(Array.isArray(explicitDest), `\"${explicitDest}\" is not a valid destination array.`);\n const destRef = explicitDest[0];\n new Promise((resolve) => {\n invariant(this.pdfDocument, 'PDF document not loaded.');\n if (destRef instanceof Object) {\n this.pdfDocument\n .getPageIndex(destRef)\n .then((pageIndex) => {\n resolve(pageIndex);\n })\n .catch(() => {\n invariant(false, `\"${destRef}\" is not a valid page reference.`);\n });\n }\n else if (typeof destRef === 'number') {\n resolve(destRef);\n }\n else {\n invariant(false, `\"${destRef}\" is not a valid destination reference.`);\n }\n }).then((pageIndex) => {\n const pageNumber = pageIndex + 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n dest: explicitDest,\n pageIndex,\n pageNumber,\n });\n });\n });\n }\n navigateTo(dest) {\n this.goToDestination(dest);\n }\n goToPage(pageNumber) {\n const pageIndex = pageNumber - 1;\n invariant(this.pdfViewer, 'PDF viewer is not initialized.');\n invariant(pageNumber >= 1 && pageNumber <= this.pagesCount, `\"${pageNumber}\" is not a valid page number.`);\n this.pdfViewer.scrollPageIntoView({\n pageIndex,\n pageNumber,\n });\n }\n addLinkAttributes(link, url, newWindow) {\n link.href = url;\n link.rel = this.externalLinkRel || DEFAULT_LINK_REL;\n link.target = newWindow ? '_blank' : this.externalLinkTarget || '';\n }\n getDestinationHash() {\n return '#';\n }\n getAnchorUrl() {\n return '#';\n }\n setHash() {\n // Intentionally empty\n }\n executeNamedAction() {\n // Intentionally empty\n }\n cachePageRef() {\n // Intentionally empty\n }\n isPageVisible() {\n return true;\n }\n isPageCached() {\n return true;\n }\n executeSetOCGState() {\n // Intentionally empty\n }\n}\n","// As defined in https://github.com/mozilla/pdf.js/blob/d9fac3459609a807be6506fb3441b5da4b154d14/src/shared/util.js#L371-L374\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\nexport default PasswordResponses;\n","import invariant from 'tiny-invariant';\nimport warning from 'warning';\n/**\n * Checks if we're running in a browser environment.\n */\nexport const isBrowser = typeof window !== 'undefined';\n/**\n * Checks whether we're running from a local file system.\n */\nexport const isLocalFileSystem = isBrowser && window.location.protocol === 'file:';\n/**\n * Checks whether a variable is defined.\n *\n * @param {*} variable Variable to check\n */\nexport function isDefined(variable) {\n return typeof variable !== 'undefined';\n}\n/**\n * Checks whether a variable is defined and not null.\n *\n * @param {*} variable Variable to check\n */\nexport function isProvided(variable) {\n return isDefined(variable) && variable !== null;\n}\n/**\n * Checks whether a variable provided is a string.\n *\n * @param {*} variable Variable to check\n */\nexport function isString(variable) {\n return typeof variable === 'string';\n}\n/**\n * Checks whether a variable provided is an ArrayBuffer.\n *\n * @param {*} variable Variable to check\n */\nexport function isArrayBuffer(variable) {\n return variable instanceof ArrayBuffer;\n}\n/**\n * Checks whether a variable provided is a Blob.\n *\n * @param {*} variable Variable to check\n */\nexport function isBlob(variable) {\n invariant(isBrowser, 'isBlob can only be used in a browser environment');\n return variable instanceof Blob;\n}\n/**\n * Checks whether a variable provided is a data URI.\n *\n * @param {*} variable String to check\n */\nexport function isDataURI(variable) {\n return isString(variable) && /^data:/.test(variable);\n}\nexport function dataURItoByteString(dataURI) {\n invariant(isDataURI(dataURI), 'Invalid data URI.');\n const [headersString = '', dataString = ''] = dataURI.split(',');\n const headers = headersString.split(';');\n if (headers.indexOf('base64') !== -1) {\n return atob(dataString);\n }\n return unescape(dataString);\n}\nexport function getDevicePixelRatio() {\n return (isBrowser && window.devicePixelRatio) || 1;\n}\nconst allowFileAccessFromFilesTip = 'On Chromium based browsers, you can use --allow-file-access-from-files flag for debugging purposes.';\nexport function displayCORSWarning() {\n warning(!isLocalFileSystem, `Loading PDF as base64 strings/URLs may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function displayWorkerWarning() {\n warning(!isLocalFileSystem, `Loading PDF.js worker may not work on protocols other than HTTP/HTTPS. ${allowFileAccessFromFilesTip}`);\n}\nexport function cancelRunningTask(runningTask) {\n if (runningTask === null || runningTask === void 0 ? void 0 : runningTask.cancel)\n runningTask.cancel();\n}\nexport function makePageCallback(page, scale) {\n Object.defineProperty(page, 'width', {\n get() {\n return this.view[2] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'height', {\n get() {\n return this.view[3] * scale;\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalWidth', {\n get() {\n return this.view[2];\n },\n configurable: true,\n });\n Object.defineProperty(page, 'originalHeight', {\n get() {\n return this.view[3];\n },\n configurable: true,\n });\n return page;\n}\nexport function isCancelException(error) {\n return error.name === 'RenderingCancelledException';\n}\nexport function loadFromFile(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n if (!reader.result) {\n return reject(new Error('Error while reading a file.'));\n }\n resolve(reader.result);\n };\n reader.onerror = (event) => {\n if (!event.target) {\n return reject(new Error('Error while reading a file.'));\n }\n const { error } = event.target;\n if (!error) {\n return reject(new Error('Error while reading a file.'));\n }\n switch (error.code) {\n case error.NOT_FOUND_ERR:\n return reject(new Error('Error while reading a file: File not found.'));\n case error.SECURITY_ERR:\n return reject(new Error('Error while reading a file: Security error.'));\n case error.ABORT_ERR:\n return reject(new Error('Error while reading a file: Aborted.'));\n default:\n return reject(new Error('Error while reading a file.'));\n }\n };\n reader.readAsArrayBuffer(file);\n });\n}\n","import { useReducer } from 'react';\nfunction reducer(state, action) {\n switch (action.type) {\n case 'RESOLVE':\n return { value: action.value, error: undefined };\n case 'REJECT':\n return { value: false, error: action.error };\n case 'RESET':\n return { value: undefined, error: undefined };\n default:\n return state;\n }\n}\nexport default function useResolver() {\n return useReducer((reducer), { value: undefined, error: undefined });\n}\n","'use client';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\nimport makeEventProps from 'make-event-props';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport { dequal } from 'dequal';\nimport * as pdfjs from 'pdfjs-dist';\nimport DocumentContext from './DocumentContext.js';\nimport Message from './Message.js';\nimport LinkService from './LinkService.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { cancelRunningTask, dataURItoByteString, displayCORSWarning, isArrayBuffer, isBlob, isBrowser, isDataURI, loadFromFile, } from './shared/utils.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst { PDFDataRangeTransport } = pdfjs;\nconst defaultOnPassword = (callback, reason) => {\n switch (reason) {\n case PasswordResponses.NEED_PASSWORD: {\n const password = prompt('Enter the password to open this PDF file.');\n callback(password);\n break;\n }\n case PasswordResponses.INCORRECT_PASSWORD: {\n const password = prompt('Invalid password. Please try again.');\n callback(password);\n break;\n }\n default:\n }\n};\nfunction isParameterObject(file) {\n return (typeof file === 'object' &&\n file !== null &&\n ('data' in file || 'range' in file || 'url' in file));\n}\n/**\n * Loads a document passed using `file` prop.\n */\nconst Document = forwardRef(function Document(_a, ref) {\n var { children, className, error = 'Failed to load PDF file.', externalLinkRel, externalLinkTarget, file, inputRef, imageResourcesPath, loading = 'Loading PDF…', noData = 'No PDF file specified.', onItemClick, onLoadError: onLoadErrorProps, onLoadProgress, onLoadSuccess: onLoadSuccessProps, onPassword = defaultOnPassword, onSourceError: onSourceErrorProps, onSourceSuccess: onSourceSuccessProps, options, renderMode, rotate } = _a, otherProps = __rest(_a, [\"children\", \"className\", \"error\", \"externalLinkRel\", \"externalLinkTarget\", \"file\", \"inputRef\", \"imageResourcesPath\", \"loading\", \"noData\", \"onItemClick\", \"onLoadError\", \"onLoadProgress\", \"onLoadSuccess\", \"onPassword\", \"onSourceError\", \"onSourceSuccess\", \"options\", \"renderMode\", \"rotate\"]);\n const [sourceState, sourceDispatch] = useResolver();\n const { value: source, error: sourceError } = sourceState;\n const [pdfState, pdfDispatch] = useResolver();\n const { value: pdf, error: pdfError } = pdfState;\n const linkService = useRef(new LinkService());\n const pages = useRef([]);\n const prevFile = useRef(undefined);\n const prevOptions = useRef(undefined);\n if (file && file !== prevFile.current && isParameterObject(file)) {\n warning(!dequal(file, prevFile.current), `File prop passed to <Document /> changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"file\" prop.`);\n prevFile.current = file;\n }\n // Detect non-memoized changes in options prop\n if (options && options !== prevOptions.current) {\n warning(!dequal(options, prevOptions.current), `Options prop passed to <Document /> changed, but it's equal to previous one. This might result in unnecessary reloads. Consider memoizing the value passed to \"options\" prop.`);\n prevOptions.current = options;\n }\n const viewer = useRef({\n // Handling jumping to internal links target\n scrollPageIntoView: (args) => {\n const { dest, pageNumber, pageIndex = pageNumber - 1 } = args;\n // First, check if custom handling of onItemClick was provided\n if (onItemClick) {\n onItemClick({ dest, pageIndex, pageNumber });\n return;\n }\n // If not, try to look for target page within the <Document>.\n const page = pages.current[pageIndex];\n if (page) {\n // Scroll to the page automatically\n page.scrollIntoView();\n return;\n }\n warning(false, `An internal link leading to page ${pageNumber} was clicked, but neither <Document> was provided with onItemClick nor it was able to find the page within itself. Either provide onItemClick to <Document> and handle navigating by yourself or ensure that all pages are rendered within <Document>.`);\n },\n });\n useImperativeHandle(ref, () => ({\n linkService,\n pages,\n viewer,\n }), []);\n /**\n * Called when a document source is resolved correctly\n */\n function onSourceSuccess() {\n if (onSourceSuccessProps) {\n onSourceSuccessProps();\n }\n }\n /**\n * Called when a document source failed to be resolved correctly\n */\n function onSourceError() {\n if (!sourceError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, sourceError.toString());\n if (onSourceErrorProps) {\n onSourceErrorProps(sourceError);\n }\n }\n function resetSource() {\n sourceDispatch({ type: 'RESET' });\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: See https://github.com/biomejs/biome/issues/3080\n useEffect(resetSource, [file, sourceDispatch]);\n const findDocumentSource = useCallback(() => __awaiter(this, void 0, void 0, function* () {\n if (!file) {\n return null;\n }\n // File is a string\n if (typeof file === 'string') {\n if (isDataURI(file)) {\n const fileByteString = dataURItoByteString(file);\n return { data: fileByteString };\n }\n displayCORSWarning();\n return { url: file };\n }\n // File is PDFDataRangeTransport\n if (file instanceof PDFDataRangeTransport) {\n return { range: file };\n }\n // File is an ArrayBuffer\n if (isArrayBuffer(file)) {\n return { data: file };\n }\n /**\n * The cases below are browser-only.\n * If you're running on a non-browser environment, these cases will be of no use.\n */\n if (isBrowser) {\n // File is a Blob\n if (isBlob(file)) {\n const data = yield loadFromFile(file);\n return { data };\n }\n }\n // At this point, file must be an object\n invariant(typeof file === 'object', 'Invalid parameter in file, need either Uint8Array, string or a parameter object');\n invariant(isParameterObject(file), 'Invalid parameter object: need either .data, .range or .url');\n // File .url is a string\n if ('url' in file && typeof file.url === 'string') {\n if (isDataURI(file.url)) {\n const { url } = file, otherParams = __rest(file, [\"url\"]);\n const fileByteString = dataURItoByteString(url);\n return Object.assign({ data: fileByteString }, otherParams);\n }\n displayCORSWarning();\n }\n return file;\n }), [file]);\n useEffect(() => {\n const cancellable = makeCancellable(findDocumentSource());\n cancellable.promise\n .then((nextSource) => {\n sourceDispatch({ type: 'RESOLVE', value: nextSource });\n })\n .catch((error) => {\n sourceDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(cancellable);\n };\n }, [findDocumentSource, sourceDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (typeof source === 'undefined') {\n return;\n }\n if (source === false) {\n onSourceError();\n return;\n }\n onSourceSuccess();\n }, [source]);\n /**\n * Called when a document is read successfully\n */\n function onLoadSuccess() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(pdf);\n }\n pages.current = new Array(pdf.numPages);\n linkService.current.setDocument(pdf);\n }\n /**\n * Called when a document failed to read successfully\n */\n function onLoadError() {\n if (!pdfError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pdfError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pdfError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on source change\n useEffect(function resetDocument() {\n pdfDispatch({ type: 'RESET' });\n }, [pdfDispatch, source]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function loadDocument() {\n if (!source) {\n return;\n }\n const documentInitParams = options\n ? Object.assign(Object.assign({}, source), options) : source;\n const destroyable = pdfjs.getDocument(documentInitParams);\n if (onLoadProgress) {\n destroyable.onProgress = onLoadProgress;\n }\n if (onPassword) {\n destroyable.onPassword = onPassword;\n }\n const loadingTask = destroyable;\n const loadingPromise = loadingTask.promise\n .then((nextPdf) => {\n pdfDispatch({ type: 'RESOLVE', value: nextPdf });\n })\n .catch((error) => {\n if (loadingTask.destroyed) {\n return;\n }\n pdfDispatch({ type: 'REJECT', error });\n });\n return () => {\n loadingPromise.finally(() => loadingTask.destroy());\n };\n }, [options, pdfDispatch, source]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (typeof pdf === 'undefined') {\n return;\n }\n if (pdf === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [pdf]);\n useEffect(function setupLinkService() {\n linkService.current.setViewer(viewer.current);\n linkService.current.setExternalLinkRel(externalLinkRel);\n linkService.current.setExternalLinkTarget(externalLinkTarget);\n }, [externalLinkRel, externalLinkTarget]);\n const registerPage = useCallback((pageIndex, ref) => {\n pages.current[pageIndex] = ref;\n }, []);\n const unregisterPage = useCallback((pageIndex) => {\n delete pages.current[pageIndex];\n }, []);\n const childContext = useMemo(() => ({\n imageResourcesPath,\n linkService: linkService.current,\n onItemClick,\n pdf,\n registerPage,\n renderMode,\n rotate,\n unregisterPage,\n }), [imageResourcesPath, onItemClick, pdf, registerPage, renderMode, rotate, unregisterPage]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => pdf), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, pdf]);\n function renderChildren() {\n return _jsx(DocumentContext.Provider, { value: childContext, children: children });\n }\n function renderContent() {\n if (!file) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === undefined || pdf === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx('react-pdf__Document', className), \n // Assertion is needed for React 18 compatibility\n ref: inputRef, style: {\n ['--scale-factor']: '1',\n } }, eventProps, { children: renderContent() })));\n});\nexport default Document;\n","'use client';\nimport { createContext } from 'react';\nconst outlineContext = createContext(null);\nexport default outlineContext;\n","export default class Ref {\n constructor({ num, gen }) {\n this.num = num;\n this.gen = gen;\n }\n toString() {\n let str = `${this.num}R`;\n if (this.gen !== 0) {\n str += this.gen;\n }\n return str;\n }\n}\n","'use client';\nimport { useRef } from 'react';\nimport { isDefined } from '../utils.js';\nexport default function useCachedValue(getter) {\n const ref = useRef(undefined);\n const currentValue = ref.current;\n if (isDefined(currentValue)) {\n return () => currentValue;\n }\n return () => {\n const value = getter();\n ref.current = value;\n return value;\n };\n}\n","import { useContext } from 'react';\nimport DocumentContext from '../../DocumentContext.js';\nexport default function useDocumentContext() {\n return useContext(DocumentContext);\n}\n","import { useContext } from 'react';\nimport OutlineContext from '../../OutlineContext.js';\nexport default function useOutlineContext() {\n return useContext(OutlineContext);\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport invariant from 'tiny-invariant';\nimport Ref from './Ref.js';\nimport useCachedValue from './shared/hooks/useCachedValue.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useOutlineContext from './shared/hooks/useOutlineContext.js';\nexport default function OutlineItem(props) {\n const documentContext = useDocumentContext();\n const outlineContext = useOutlineContext();\n invariant(outlineContext, 'Unable to find Outline context.');\n const mergedProps = Object.assign(Object.assign(Object.assign({}, documentContext), outlineContext), props);\n const { item, linkService, onItemClick, pdf } = mergedProps, otherProps = __rest(mergedProps, [\"item\", \"linkService\", \"onItemClick\", \"pdf\"]);\n invariant(pdf, 'Attempted to load an outline, but no document was specified. Wrap <Outline /> in a <Document /> or pass explicit `pdf` prop.');\n const getDestination = useCachedValue(() => {\n if (typeof item.dest === 'string') {\n return pdf.getDestination(item.dest);\n }\n return item.dest;\n });\n const getPageIndex = useCachedValue(() => __awaiter(this, void 0, void 0, function* () {\n const destination = yield getDestination();\n if (!destination) {\n throw new Error('Destination not found.');\n }\n const [ref] = destination;\n return pdf.getPageIndex(new Ref(ref));\n }));\n const getPageNumber = useCachedValue(() => __awaiter(this, void 0, void 0, function* () {\n const pageIndex = yield getPageIndex();\n return pageIndex + 1;\n }));\n function onClick(event) {\n event.preventDefault();\n invariant(onItemClick || linkService, 'Either onItemClick callback or linkService must be defined in order to navigate to an outline item.');\n if (onItemClick) {\n Promise.all([getDestination(), getPageIndex(), getPageNumber()]).then(([dest, pageIndex, pageNumber]) => {\n onItemClick({\n dest,\n pageIndex,\n pageNumber,\n });\n });\n }\n else if (linkService) {\n linkService.goToDestination(item.dest);\n }\n }\n function renderSubitems() {\n if (!item.items || !item.items.length) {\n return null;\n }\n const { items: subitems } = item;\n return (_jsx(\"ul\", { children: subitems.map((subitem, subitemIndex) => (_jsx(OutlineItem, Object.assign({ item: subitem, pdf: pdf }, otherProps), typeof subitem.dest === 'string' ? subitem.dest : subitemIndex))) }));\n }\n return (_jsxs(\"li\", { children: [_jsx(\"a\", { href: \"#\", onClick: onClick, children: item.title }), renderSubitems()] }));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport OutlineContext from './OutlineContext.js';\nimport OutlineItem from './OutlineItem.js';\nimport { cancelRunningTask } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\n/**\n * Displays an outline (table of contents).\n *\n * Should be placed inside `<Document />`. Alternatively, it can have `pdf` prop passed, which can be obtained from `<Document />`'s `onLoadSuccess` callback function.\n */\nexport default function Outline(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { className, inputRef, onItemClick, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, pdf } = mergedProps, otherProps = __rest(mergedProps, [\"className\", \"inputRef\", \"onItemClick\", \"onLoadError\", \"onLoadSuccess\", \"pdf\"]);\n invariant(pdf, 'Attempted to load an outline, but no document was specified. Wrap <Outline /> in a <Document /> or pass explicit `pdf` prop.');\n const [outlineState, outlineDispatch] = useResolver();\n const { value: outline, error: outlineError } = outlineState;\n /**\n * Called when an outline is read successfully\n */\n function onLoadSuccess() {\n if (typeof outline === 'undefined' || outline === false) {\n return;\n }\n if (onLoadSuccessProps) {\n onLoadSuccessProps(outline);\n }\n }\n /**\n * Called when an outline failed to read successfully\n */\n function onLoadError() {\n if (!outlineError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, outlineError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(outlineError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf change\n useEffect(function resetOutline() {\n outlineDispatch({ type: 'RESET' });\n }, [outlineDispatch, pdf]);\n useEffect(function loadOutline() {\n if (!pdf) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n const cancellable = makeCancellable(pdf.getOutline());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextOutline) => {\n outlineDispatch({ type: 'RESOLVE', value: nextOutline });\n })\n .catch((error) => {\n outlineDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [outlineDispatch, pdf]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (outline === undefined) {\n return;\n }\n if (outline === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [outline]);\n const childContext = useMemo(() => ({\n onItemClick,\n }), [onItemClick]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => outline), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, outline]);\n if (!outline) {\n return null;\n }\n function renderOutline() {\n if (!outline) {\n return null;\n }\n return (_jsx(\"ul\", { children: outline.map((item, itemIndex) => (_jsx(OutlineItem, { item: item, pdf: pdf }, typeof item.dest === 'string' ? item.dest : itemIndex))) }));\n }\n return (_jsx(\"div\", Object.assign({ className: clsx('react-pdf__Outline', className), ref: inputRef }, eventProps, { children: _jsx(OutlineContext.Provider, { value: childContext, children: renderOutline() }) })));\n}\n","/**\n * A function that merges React refs into one.\n * Supports both functions and ref objects created using createRef() and useRef().\n *\n * Usage:\n * ```tsx\n * <div ref={mergeRefs(ref1, ref2, ref3)} />\n * ```\n *\n * @param {(React.Ref<T> | undefined)[]} inputRefs Array of refs\n * @returns {React.Ref<T> | React.RefCallback<T>} Merged refs\n */\nexport default function mergeRefs() {\n var inputRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputRefs[_i] = arguments[_i];\n }\n var filteredInputRefs = inputRefs.filter(Boolean);\n if (filteredInputRefs.length <= 1) {\n var firstRef = filteredInputRefs[0];\n return firstRef || null;\n }\n return function mergedRefs(ref) {\n filteredInputRefs.forEach(function (inputRef) {\n if (typeof inputRef === 'function') {\n inputRef(ref);\n }\n else if (inputRef) {\n inputRef.current = ref;\n }\n });\n };\n}\n","'use client';\nimport { createContext } from 'react';\nconst pageContext = createContext(null);\nexport default pageContext;\n","// From pdfjs-dist/lib/web/struct_tree_layer_builder.js\nexport const PDF_ROLE_TO_HTML_ROLE = {\n // Document level structure types\n Document: null, // There's a \"document\" role, but it doesn't make sense here.\n DocumentFragment: null,\n // Grouping level structure types\n Part: 'group',\n Sect: 'group', // XXX: There's a \"section\" role, but it's abstract.\n Div: 'group',\n Aside: 'note',\n NonStruct: 'none',\n // Block level structure types\n P: null,\n // H<n>,\n H: 'heading',\n Title: null,\n FENote: 'note',\n // Sub-block level structure type\n Sub: 'group',\n // General inline level structure types\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: 'link',\n Annot: 'note',\n Form: 'form',\n // Ruby and Warichu structure types\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n // List standard structure types\n L: 'list',\n LI: 'listitem',\n LBody: null,\n // Table standard structure types\n Table: 'table',\n TR: 'row',\n TH: 'columnheader',\n TD: 'cell',\n THead: 'columnheader',\n TBody: null,\n TFoot: null,\n // Standard structure type Caption\n Caption: null,\n // Standard structure type Figure\n Figure: 'figure',\n // Standard structure type Formula\n Formula: null,\n // standard structure type Artifact\n Artifact: null,\n};\nexport const HEADING_PATTERN = /^H(\\d+)$/;\n","import { HEADING_PATTERN, PDF_ROLE_TO_HTML_ROLE } from './constants.js';\nexport function isPdfRole(role) {\n return role in PDF_ROLE_TO_HTML_ROLE;\n}\nexport function isStructTreeNode(node) {\n return 'children' in node;\n}\nexport function isStructTreeNodeWithOnlyContentChild(node) {\n if (!isStructTreeNode(node)) {\n return false;\n }\n return node.children.length === 1 && 0 in node.children && 'id' in node.children[0];\n}\nexport function getRoleAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n const { role } = node;\n const matches = role.match(HEADING_PATTERN);\n if (matches) {\n attributes.role = 'heading';\n attributes['aria-level'] = Number(matches[1]);\n }\n else if (isPdfRole(role)) {\n const htmlRole = PDF_ROLE_TO_HTML_ROLE[role];\n if (htmlRole) {\n attributes.role = htmlRole;\n }\n }\n }\n return attributes;\n}\nexport function getBaseAttributes(node) {\n const attributes = {};\n if (isStructTreeNode(node)) {\n if (node.alt !== undefined) {\n attributes['aria-label'] = node.alt;\n }\n if (node.lang !== undefined) {\n attributes.lang = node.lang;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n const [child] = node.children;\n if (child) {\n const childAttributes = getBaseAttributes(child);\n return Object.assign(Object.assign({}, attributes), childAttributes);\n }\n }\n }\n else {\n if ('id' in node) {\n attributes['aria-owns'] = node.id;\n }\n }\n return attributes;\n}\nexport function getAttributes(node) {\n if (!node) {\n return null;\n }\n return Object.assign(Object.assign({}, getRoleAttributes(node)), getBaseAttributes(node));\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useMemo } from 'react';\nimport { getAttributes, isStructTreeNode, isStructTreeNodeWithOnlyContentChild, } from './shared/structTreeUtils.js';\nexport default function StructTreeItem({ className, node, }) {\n const attributes = useMemo(() => getAttributes(node), [node]);\n const children = useMemo(() => {\n if (!isStructTreeNode(node)) {\n return null;\n }\n if (isStructTreeNodeWithOnlyContentChild(node)) {\n return null;\n }\n return node.children.map((child, index) => {\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: index is stable here\n _jsx(StructTreeItem, { node: child }, index));\n });\n }, [node]);\n return (_jsx(\"span\", Object.assign({ className: className }, attributes, { children: children })));\n}\n","import { useContext } from 'react';\nimport PageContext from '../../PageContext.js';\nexport default function usePageContext() {\n return useContext(PageContext);\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport StructTreeItem from './StructTreeItem.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nimport { cancelRunningTask } from './shared/utils.js';\nexport default function StructTree() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, } = pageContext;\n const [structTreeState, structTreeDispatch] = useResolver();\n const { value: structTree, error: structTreeError } = structTreeState;\n const { customTextRenderer, page } = pageContext;\n function onLoadSuccess() {\n if (!structTree) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetStructTreeSuccessProps) {\n onGetStructTreeSuccessProps(structTree);\n }\n }\n function onLoadError() {\n if (!structTreeError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, structTreeError.toString());\n if (onGetStructTreeErrorProps) {\n onGetStructTreeErrorProps(structTreeError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetStructTree() {\n structTreeDispatch({ type: 'RESET' });\n }, [structTreeDispatch, page]);\n useEffect(function loadStructTree() {\n if (customTextRenderer) {\n // TODO: Document why this is necessary\n return;\n }\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getStructTree());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextStructTree) => {\n structTreeDispatch({ type: 'RESOLVE', value: nextStructTree });\n })\n .catch((error) => {\n structTreeDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [customTextRenderer, page, structTreeDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (structTree === undefined) {\n return;\n }\n if (structTree === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [structTree]);\n if (!structTree) {\n return null;\n }\n return _jsx(StructTreeItem, { className: \"react-pdf__Page__structTree structTree\", node: structTree });\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport StructTree from '../StructTree.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport { cancelRunningTask, getDevicePixelRatio, isCancelException, makePageCallback, } from '../shared/utils.js';\nconst ANNOTATION_MODE = pdfjs.AnnotationMode;\nexport default function Canvas(props) {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, pageContext), props);\n const { _className, canvasBackground, devicePixelRatio = getDevicePixelRatio(), onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, page, renderForms, renderTextLayer, rotate, scale, } = mergedProps;\n const { canvasRef } = props;\n invariant(page, 'Attempted to render page canvas, but no page was specified.');\n const canvasElement = useRef(null);\n /**\n * Called when a page is rendered successfully.\n */\n function onRenderSuccess() {\n if (!page) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onRenderSuccessProps) {\n onRenderSuccessProps(makePageCallback(page, scale));\n }\n }\n /**\n * Called when a page fails to render.\n */\n function onRenderError(error) {\n if (isCancelException(error)) {\n return;\n }\n warning(false, error.toString());\n if (onRenderErrorProps) {\n onRenderErrorProps(error);\n }\n }\n const renderViewport = useMemo(() => page.getViewport({ scale: scale * devicePixelRatio, rotation: rotate }), [devicePixelRatio, page, rotate, scale]);\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function drawPageOnCanvas() {\n if (!page) {\n return;\n }\n // Ensures the canvas will be re-rendered from scratch. Otherwise all form data will stay.\n page.cleanup();\n const { current: canvas } = canvasElement;\n if (!canvas) {\n return;\n }\n canvas.width = renderViewport.width;\n canvas.height = renderViewport.height;\n canvas.style.width = `${Math.floor(viewport.width)}px`;\n canvas.style.height = `${Math.floor(viewport.height)}px`;\n canvas.style.visibility = 'hidden';\n const renderContext = {\n annotationMode: renderForms ? ANNOTATION_MODE.ENABLE_FORMS : ANNOTATION_MODE.ENABLE,\n canvasContext: canvas.getContext('2d', { alpha: false }),\n viewport: renderViewport,\n };\n if (canvasBackground) {\n renderContext.background = canvasBackground;\n }\n const cancellable = page.render(renderContext);\n const runningTask = cancellable;\n cancellable.promise\n .then(() => {\n canvas.style.visibility = '';\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }, [canvasBackground, page, renderForms, renderViewport, viewport]);\n const cleanup = useCallback(() => {\n const { current: canvas } = canvasElement;\n /**\n * Zeroing the width and height cause most browsers to release graphics\n * resources immediately, which can greatly reduce memory consumption.\n */\n if (canvas) {\n canvas.width = 0;\n canvas.height = 0;\n }\n }, []);\n useEffect(() => cleanup, [cleanup]);\n return (_jsx(\"canvas\", { className: `${_className}__canvas`, dir: \"ltr\", ref: mergeRefs(canvasRef, canvasElement), style: {\n display: 'block',\n userSelect: 'none',\n }, children: renderTextLayer ? _jsx(StructTree, {}) : null }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nfunction isTextItem(item) {\n return 'str' in item;\n}\nexport default function TextLayer() {\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const { customTextRenderer, onGetTextError, onGetTextSuccess, onRenderTextLayerError, onRenderTextLayerSuccess, page, pageIndex, pageNumber, rotate, scale, } = pageContext;\n invariant(page, 'Attempted to load page text content, but no page was specified.');\n const [textContentState, textContentDispatch] = useResolver();\n const { value: textContent, error: textContentError } = textContentState;\n const layerElement = useRef(null);\n warning(Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-text-layer'), 10) === 1, 'TextLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-text-layer');\n /**\n * Called when a page text content is read successfully\n */\n function onLoadSuccess() {\n if (!textContent) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetTextSuccess) {\n onGetTextSuccess(textContent);\n }\n }\n /**\n * Called when a page text content failed to read successfully\n */\n function onLoadError() {\n if (!textContentError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, textContentError.toString());\n if (onGetTextError) {\n onGetTextError(textContentError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetTextContent() {\n textContentDispatch({ type: 'RESET' });\n }, [page, textContentDispatch]);\n useEffect(function loadTextContent() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getTextContent());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextTextContent) => {\n textContentDispatch({ type: 'RESOLVE', value: nextTextContent });\n })\n .catch((error) => {\n textContentDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [page, textContentDispatch]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (textContent === undefined) {\n return;\n }\n if (textContent === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [textContent]);\n /**\n * Called when a text layer is rendered successfully\n */\n const onRenderSuccess = useCallback(() => {\n if (onRenderTextLayerSuccess) {\n onRenderTextLayerSuccess();\n }\n }, [onRenderTextLayerSuccess]);\n /**\n * Called when a text layer failed to render successfully\n */\n const onRenderError = useCallback((error) => {\n warning(false, error.toString());\n if (onRenderTextLayerError) {\n onRenderTextLayerError(error);\n }\n }, [onRenderTextLayerError]);\n function onMouseDown() {\n const layer = layerElement.current;\n if (!layer) {\n return;\n }\n layer.classList.add('selecting');\n }\n function onMouseUp() {\n const layer = layerElement.current;\n if (!layer) {\n return;\n }\n layer.classList.remove('selecting');\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n useLayoutEffect(function renderTextLayer() {\n if (!page || !textContent) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n layer.innerHTML = '';\n const textContentSource = page.streamTextContent({ includeMarkedContent: true });\n const parameters = {\n container: layer,\n textContentSource,\n viewport,\n };\n const cancellable = new pdfjs.TextLayer(parameters);\n const runningTask = cancellable;\n cancellable\n .render()\n .then(() => {\n const end = document.createElement('div');\n end.className = 'endOfContent';\n layer.append(end);\n const layerChildren = layer.querySelectorAll('[role=\"presentation\"]');\n if (customTextRenderer) {\n let index = 0;\n textContent.items.forEach((item, itemIndex) => {\n if (!isTextItem(item)) {\n return;\n }\n const child = layerChildren[index];\n if (!child) {\n return;\n }\n const content = customTextRenderer(Object.assign({ pageIndex,\n pageNumber,\n itemIndex }, item));\n child.innerHTML = content;\n index += item.str && item.hasEOL ? 2 : 1;\n });\n }\n // Intentional immediate callback\n onRenderSuccess();\n })\n .catch(onRenderError);\n return () => cancelRunningTask(runningTask);\n }, [\n customTextRenderer,\n onRenderError,\n onRenderSuccess,\n page,\n pageIndex,\n pageNumber,\n textContent,\n viewport,\n ]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__textContent', 'textLayer'), onMouseUp: onMouseUp, onMouseDown: onMouseDown, ref: layerElement }));\n}\n","'use client';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport * as pdfjs from 'pdfjs-dist';\nimport useDocumentContext from '../shared/hooks/useDocumentContext.js';\nimport usePageContext from '../shared/hooks/usePageContext.js';\nimport useResolver from '../shared/hooks/useResolver.js';\nimport { cancelRunningTask } from '../shared/utils.js';\nexport default function AnnotationLayer() {\n const documentContext = useDocumentContext();\n const pageContext = usePageContext();\n invariant(pageContext, 'Unable to find Page context.');\n const mergedProps = Object.assign(Object.assign({}, documentContext), pageContext);\n const { imageResourcesPath, linkService, onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, page, pdf, renderForms, rotate, scale = 1, } = mergedProps;\n invariant(pdf, 'Attempted to load page annotations, but no document was specified. Wrap <Page /> in a <Document /> or pass explicit `pdf` prop.');\n invariant(page, 'Attempted to load page annotations, but no page was specified.');\n invariant(linkService, 'Attempted to load page annotations, but no linkService was specified.');\n const [annotationsState, annotationsDispatch] = useResolver();\n const { value: annotations, error: annotationsError } = annotationsState;\n const layerElement = useRef(null);\n warning(Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--react-pdf-annotation-layer'), 10) === 1, 'AnnotationLayer styles not found. Read more: https://github.com/wojtekmaj/react-pdf#support-for-annotations');\n function onLoadSuccess() {\n if (!annotations) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (onGetAnnotationsSuccessProps) {\n onGetAnnotationsSuccessProps(annotations);\n }\n }\n function onLoadError() {\n if (!annotationsError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, annotationsError.toString());\n if (onGetAnnotationsErrorProps) {\n onGetAnnotationsErrorProps(annotationsError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on page change\n useEffect(function resetAnnotations() {\n annotationsDispatch({ type: 'RESET' });\n }, [annotationsDispatch, page]);\n useEffect(function loadAnnotations() {\n if (!page) {\n return;\n }\n const cancellable = makeCancellable(page.getAnnotations());\n const runningTask = cancellable;\n cancellable.promise\n .then((nextAnnotations) => {\n annotationsDispatch({ type: 'RESOLVE', value: nextAnnotations });\n })\n .catch((error) => {\n annotationsDispatch({ type: 'REJECT', error });\n });\n return () => {\n cancelRunningTask(runningTask);\n };\n }, [annotationsDispatch, page]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (annotations === undefined) {\n return;\n }\n if (annotations === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [annotations]);\n function onRenderSuccess() {\n if (onRenderAnnotationLayerSuccessProps) {\n onRenderAnnotationLayerSuccessProps();\n }\n }\n function onRenderError(error) {\n warning(false, `${error}`);\n if (onRenderAnnotationLayerErrorProps) {\n onRenderAnnotationLayerErrorProps(error);\n }\n }\n const viewport = useMemo(() => page.getViewport({ scale, rotation: rotate }), [page, rotate, scale]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(function renderAnnotationLayer() {\n if (!pdf || !page || !linkService || !annotations) {\n return;\n }\n const { current: layer } = layerElement;\n if (!layer) {\n return;\n }\n const clonedViewport = viewport.clone({ dontFlip: true });\n const annotationLayerParameters = {\n accessibilityManager: null, // TODO: Implement this\n annotationCanvasMap: null, // TODO: Implement this\n annotationEditorUIManager: null, // TODO: Implement this\n div: layer,\n l10n: null, // TODO: Implement this\n page,\n structTreeLayer: null, // TODO: Implement this\n viewport: clonedViewport,\n };\n const renderParameters = {\n annotations,\n annotationStorage: pdf.annotationStorage,\n div: layer,\n imageResourcesPath,\n linkService,\n page,\n renderForms,\n viewport: clonedViewport,\n };\n layer.innerHTML = '';\n try {\n new pdfjs.AnnotationLayer(annotationLayerParameters).render(renderParameters);\n // Intentional immediate callback\n onRenderSuccess();\n }\n catch (error) {\n onRenderError(error);\n }\n return () => {\n // TODO: Cancel running task?\n };\n }, [annotations, imageResourcesPath, linkService, page, pdf, renderForms, viewport]);\n return (_jsx(\"div\", { className: clsx('react-pdf__Page__annotations', 'annotationLayer'), ref: layerElement }));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from 'react';\nimport makeCancellable from 'make-cancellable-promise';\nimport makeEventProps from 'make-event-props';\nimport clsx from 'clsx';\nimport mergeRefs from 'merge-refs';\nimport invariant from 'tiny-invariant';\nimport warning from 'warning';\nimport PageContext from './PageContext.js';\nimport Message from './Message.js';\nimport Canvas from './Page/Canvas.js';\nimport TextLayer from './Page/TextLayer.js';\nimport AnnotationLayer from './Page/AnnotationLayer.js';\nimport { cancelRunningTask, isProvided, makePageCallback } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useResolver from './shared/hooks/useResolver.js';\nconst defaultScale = 1;\n/**\n * Displays a page.\n *\n * Should be placed inside `<Document />`. Alternatively, it can have `pdf` prop passed, which can be obtained from `<Document />`'s `onLoadSuccess` callback function, however some advanced functions like linking between pages inside a document may not be working correctly.\n */\nexport default function Page(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { _className = 'react-pdf__Page', _enableRegisterUnregisterPage = true, canvasBackground, canvasRef, children, className, customRenderer: CustomRenderer, customTextRenderer, devicePixelRatio, error = 'Failed to load the page.', height, inputRef, loading = 'Loading page…', noData = 'No page specified.', onGetAnnotationsError: onGetAnnotationsErrorProps, onGetAnnotationsSuccess: onGetAnnotationsSuccessProps, onGetStructTreeError: onGetStructTreeErrorProps, onGetStructTreeSuccess: onGetStructTreeSuccessProps, onGetTextError: onGetTextErrorProps, onGetTextSuccess: onGetTextSuccessProps, onLoadError: onLoadErrorProps, onLoadSuccess: onLoadSuccessProps, onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps, onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps, onRenderError: onRenderErrorProps, onRenderSuccess: onRenderSuccessProps, onRenderTextLayerError: onRenderTextLayerErrorProps, onRenderTextLayerSuccess: onRenderTextLayerSuccessProps, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, registerPage, renderAnnotationLayer: renderAnnotationLayerProps = true, renderForms = false, renderMode = 'canvas', renderTextLayer: renderTextLayerProps = true, rotate: rotateProps, scale: scaleProps = defaultScale, unregisterPage, width } = mergedProps, otherProps = __rest(mergedProps, [\"_className\", \"_enableRegisterUnregisterPage\", \"canvasBackground\", \"canvasRef\", \"children\", \"className\", \"customRenderer\", \"customTextRenderer\", \"devicePixelRatio\", \"error\", \"height\", \"inputRef\", \"loading\", \"noData\", \"onGetAnnotationsError\", \"onGetAnnotationsSuccess\", \"onGetStructTreeError\", \"onGetStructTreeSuccess\", \"onGetTextError\", \"onGetTextSuccess\", \"onLoadError\", \"onLoadSuccess\", \"onRenderAnnotationLayerError\", \"onRenderAnnotationLayerSuccess\", \"onRenderError\", \"onRenderSuccess\", \"onRenderTextLayerError\", \"onRenderTextLayerSuccess\", \"pageIndex\", \"pageNumber\", \"pdf\", \"registerPage\", \"renderAnnotationLayer\", \"renderForms\", \"renderMode\", \"renderTextLayer\", \"rotate\", \"scale\", \"unregisterPage\", \"width\"]);\n const [pageState, pageDispatch] = useResolver();\n const { value: page, error: pageError } = pageState;\n const pageElement = useRef(null);\n invariant(pdf, 'Attempted to load a page, but no document was specified. Wrap <Page /> in a <Document /> or pass explicit `pdf` prop.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : (pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null);\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n const rotate = rotateProps !== null && rotateProps !== void 0 ? rotateProps : (page ? page.rotate : null);\n const scale = useMemo(() => {\n if (!page) {\n return null;\n }\n // Be default, we'll render page at 100% * scale width.\n let pageScale = 1;\n // Passing scale explicitly null would cause the page not to render\n const scaleWithDefault = scaleProps !== null && scaleProps !== void 0 ? scaleProps : defaultScale;\n // If width/height is defined, calculate the scale of the page so it could be of desired width.\n if (width || height) {\n const viewport = page.getViewport({ scale: 1, rotation: rotate });\n if (width) {\n pageScale = width / viewport.width;\n }\n else if (height) {\n pageScale = height / viewport.height;\n }\n }\n return scaleWithDefault * pageScale;\n }, [height, page, rotate, scaleProps, width]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf change\n useEffect(function hook() {\n return () => {\n if (!isProvided(pageIndex)) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n if (_enableRegisterUnregisterPage && unregisterPage) {\n unregisterPage(pageIndex);\n }\n };\n }, [_enableRegisterUnregisterPage, pdf, pageIndex, unregisterPage]);\n /**\n * Called when a page is loaded successfully\n */\n function onLoadSuccess() {\n if (onLoadSuccessProps) {\n if (!page || !scale) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n onLoadSuccessProps(makePageCallback(page, scale));\n }\n if (_enableRegisterUnregisterPage && registerPage) {\n if (!isProvided(pageIndex) || !pageElement.current) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n registerPage(pageIndex, pageElement.current);\n }\n }\n /**\n * Called when a page failed to load\n */\n function onLoadError() {\n if (!pageError) {\n // Impossible, but TypeScript doesn't know that\n return;\n }\n warning(false, pageError.toString());\n if (onLoadErrorProps) {\n onLoadErrorProps(pageError);\n }\n }\n // biome-ignore lint/correctness/useExhaustiveDependencies: useEffect intentionally triggered on pdf and pageIndex change\n useEffect(function resetPage() {\n pageDispatch({ type: 'RESET' });\n }, [pageDispatch, pdf, pageIndex]);\n useEffect(function loadPage() {\n if (!pdf || !pageNumber) {\n return;\n }\n const cancellable = makeCancellable(pdf.getPage(pageNumber));\n const runningTask = cancellable;\n cancellable.promise\n .then((nextPage) => {\n pageDispatch({ type: 'RESOLVE', value: nextPage });\n })\n .catch((error) => {\n pageDispatch({ type: 'REJECT', error });\n });\n return () => cancelRunningTask(runningTask);\n }, [pageDispatch, pdf, pageNumber]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: Ommitted callbacks so they are not called every time they change\n useEffect(() => {\n if (page === undefined) {\n return;\n }\n if (page === false) {\n onLoadError();\n return;\n }\n onLoadSuccess();\n }, [page, scale]);\n const childContext = useMemo(() => \n // Technically there cannot be page without pageIndex, pageNumber, rotate and scale, but TypeScript doesn't know that\n page && isProvided(pageIndex) && pageNumber && isProvided(rotate) && isProvided(scale)\n ? {\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsError: onGetAnnotationsErrorProps,\n onGetAnnotationsSuccess: onGetAnnotationsSuccessProps,\n onGetStructTreeError: onGetStructTreeErrorProps,\n onGetStructTreeSuccess: onGetStructTreeSuccessProps,\n onGetTextError: onGetTextErrorProps,\n onGetTextSuccess: onGetTextSuccessProps,\n onRenderAnnotationLayerError: onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccess: onRenderAnnotationLayerSuccessProps,\n onRenderError: onRenderErrorProps,\n onRenderSuccess: onRenderSuccessProps,\n onRenderTextLayerError: onRenderTextLayerErrorProps,\n onRenderTextLayerSuccess: onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayer: renderTextLayerProps,\n rotate,\n scale,\n }\n : null, [\n _className,\n canvasBackground,\n customTextRenderer,\n devicePixelRatio,\n onGetAnnotationsErrorProps,\n onGetAnnotationsSuccessProps,\n onGetStructTreeErrorProps,\n onGetStructTreeSuccessProps,\n onGetTextErrorProps,\n onGetTextSuccessProps,\n onRenderAnnotationLayerErrorProps,\n onRenderAnnotationLayerSuccessProps,\n onRenderErrorProps,\n onRenderSuccessProps,\n onRenderTextLayerErrorProps,\n onRenderTextLayerSuccessProps,\n page,\n pageIndex,\n pageNumber,\n renderForms,\n renderTextLayerProps,\n rotate,\n scale,\n ]);\n const eventProps = useMemo(() => makeEventProps(otherProps, () => page ? (scale ? makePageCallback(page, scale) : undefined) : page), \n // biome-ignore lint/correctness/useExhaustiveDependencies: FIXME\n [otherProps, page, scale]);\n const pageKey = `${pageIndex}@${scale}/${rotate}`;\n function renderMainLayer() {\n switch (renderMode) {\n case 'custom': {\n invariant(CustomRenderer, `renderMode was set to \"custom\", but no customRenderer was passed.`);\n return _jsx(CustomRenderer, {}, `${pageKey}_custom`);\n }\n case 'none':\n return null;\n case 'canvas':\n default:\n return _jsx(Canvas, { canvasRef: canvasRef }, `${pageKey}_canvas`);\n }\n }\n function renderTextLayer() {\n if (!renderTextLayerProps) {\n return null;\n }\n return _jsx(TextLayer, {}, `${pageKey}_text`);\n }\n function renderAnnotationLayer() {\n if (!renderAnnotationLayerProps) {\n return null;\n }\n return _jsx(AnnotationLayer, {}, `${pageKey}_annotations`);\n }\n function renderChildren() {\n return (_jsxs(PageContext.Provider, { value: childContext, children: [renderMainLayer(), renderTextLayer(), renderAnnotationLayer(), children] }));\n }\n function renderContent() {\n if (!pageNumber) {\n return _jsx(Message, { type: \"no-data\", children: typeof noData === 'function' ? noData() : noData });\n }\n if (pdf === null || page === undefined || page === null) {\n return (_jsx(Message, { type: \"loading\", children: typeof loading === 'function' ? loading() : loading }));\n }\n if (pdf === false || page === false) {\n return _jsx(Message, { type: \"error\", children: typeof error === 'function' ? error() : error });\n }\n return renderChildren();\n }\n return (_jsx(\"div\", Object.assign({ className: clsx(_className, className), \"data-page-number\": pageNumber, \n // Assertion is needed for React 18 compatibility\n ref: mergeRefs(inputRef, pageElement), style: {\n ['--scale-factor']: `${scale}`,\n backgroundColor: canvasBackground || 'white',\n position: 'relative',\n minWidth: 'min-content',\n minHeight: 'min-content',\n } }, eventProps, { children: renderContent() })));\n}\n","'use client';\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport invariant from 'tiny-invariant';\nimport Page from './Page.js';\nimport { isProvided } from './shared/utils.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\n/**\n * Displays a thumbnail of a page. Does not render the annotation layer or the text layer. Does not register itself as a link target, so the user will not be scrolled to a Thumbnail component when clicked on an internal link (e.g. in Table of Contents). When clicked, attempts to navigate to the page clicked (similarly to a link in Outline).\n *\n * Should be placed inside `<Document />`. Alternatively, it can have `pdf` prop passed, which can be obtained from `<Document />`'s `onLoadSuccess` callback function.\n */\nexport default function Thumbnail(props) {\n const documentContext = useDocumentContext();\n const mergedProps = Object.assign(Object.assign({}, documentContext), props);\n const { className, linkService, onItemClick, pageIndex: pageIndexProps, pageNumber: pageNumberProps, pdf, } = mergedProps;\n invariant(pdf, 'Attempted to load a thumbnail, but no document was specified. Wrap <Thumbnail /> in a <Document /> or pass explicit `pdf` prop.');\n const pageIndex = isProvided(pageNumberProps) ? pageNumberProps - 1 : (pageIndexProps !== null && pageIndexProps !== void 0 ? pageIndexProps : null);\n const pageNumber = pageNumberProps !== null && pageNumberProps !== void 0 ? pageNumberProps : (isProvided(pageIndexProps) ? pageIndexProps + 1 : null);\n function onClick(event) {\n event.preventDefault();\n if (!isProvided(pageIndex) || !pageNumber) {\n return;\n }\n invariant(onItemClick || linkService, 'Either onItemClick callback or linkService must be defined in order to navigate to an outline item.');\n if (onItemClick) {\n onItemClick({\n pageIndex,\n pageNumber,\n });\n }\n else if (linkService) {\n linkService.goToPage(pageNumber);\n }\n }\n const { className: classNameProps, onItemClick: onItemClickProps } = props, pageProps = __rest(props, [\"className\", \"onItemClick\"]);\n return (_jsx(\"a\", { className: clsx('react-pdf__Thumbnail', className), href: pageNumber ? '#' : undefined, onClick: onClick, children: _jsx(Page, Object.assign({}, pageProps, { _className: \"react-pdf__Thumbnail__page\", _enableRegisterUnregisterPage: false, renderAnnotationLayer: false, renderTextLayer: false })) }));\n}\n","import * as pdfjs from 'pdfjs-dist';\nimport Document from './Document.js';\nimport Outline from './Outline.js';\nimport Page from './Page.js';\nimport Thumbnail from './Thumbnail.js';\nimport useDocumentContext from './shared/hooks/useDocumentContext.js';\nimport useOutlineContext from './shared/hooks/useOutlineContext.js';\nimport usePageContext from './shared/hooks/usePageContext.js';\nimport PasswordResponses from './PasswordResponses.js';\nimport { displayWorkerWarning } from './shared/utils.js';\ndisplayWorkerWarning();\npdfjs.GlobalWorkerOptions.workerSrc = 'pdf.worker.mjs';\nexport { pdfjs, Document, Outline, Page, Thumbnail, useDocumentContext, useOutlineContext, usePageContext, PasswordResponses, };\n"],"names":["__webpack_require__","exports","definition","key","obj","prop","__webpack_exports__","AbortException","AnnotationEditorLayer","AnnotationEditorParamsType","AnnotationEditorType","AnnotationEditorUIManager","AnnotationLayer","AnnotationMode","ColorPicker","DOMSVGFactory","DrawLayer","util_FeatureTest","GlobalWorkerOptions","util_ImageKind","InvalidPDFException","MissingPDFException","OPS","OutputScale","PDFDataRangeTransport","PDFDateString","PDFWorker","PasswordResponses","PermissionFlag","PixelsPerInch","RenderingCancelledException","TextLayer","UnexpectedResponseException","Util","VerbosityLevel","XfaLayer","build","createValidAbsoluteUrl","fetchData","getDocument","getFilenameFromUrl","getPdfFilenameFromUrl","getXfaPageViewport","isDataScheme","isPdfFile","noContextMenu","normalizeUnicode","setLayerDimensions","shadow","version","isNodeJS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","RenderingIntentFlag","AnnotationEditorPrefix","TextRenderingMode","AnnotationType","AnnotationBorderStyleType","verbosity","setVerbosityLevel","level","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","url","baseUrl","options","dots","stringToUTF8String","absoluteUrl","value","nonSerializable","BaseException","message","name","PasswordException","code","UnknownErrorException","details","status","FormatError","bytesToString","bytes","length","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","stringToBytes","str","i","string32","objectFromMap","map","isLittleEndian","buffer8","isEvalSupported","_b","_a","hexNumbers","n","r","g","b","transform","minMax","temp","m1","m2","p","m","xt","yt","d","p1","p2","p3","p4","transpose","a","c","first","second","sx","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","__privateMethod","_Util_static","getExtremum_fn","getExtremumOnCurve_fn","t","mt","tt","ttt","x","delta","sqrtDelta","a2","__privateAdd","NormalizeRegex","NormalizationMap","_","getUuid","buf","AnnotationPrefix","FontRenderOps","toBase64Util","arr","SVG_NS","_PixelsPerInch","__publicField","type","isValidFetchUrl","response","resolve","reject","request","PageViewport","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","width","height","y","topLeft","bottomRight","extraDelay","ii","filename","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","StatTimer","outBuf","longest","start","end","protocol","e","deprecated","input","__privateGet","_regex","__privateSet","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","xfaPage","getRGB","color","colorRGB","getColorValues","colors","span","computedColor","getCurrentTransform","ctx","f","getCurrentTransformInverse","div","viewport","mustFlip","mustRotate","pageWidth","pageHeight","style","useRound","w","h","widthStr","heightStr","pixelRatio","_EditorToolbar","editor","_EditorToolbar_instances","_toolbar","_colorPicker","_editor","_buttons","_altText","_l10nRemove","editToolbar","signal","_EditorToolbar_static","pointerDown_fn","buttons","position","addDeleteButton_fn","altText","button","addListenersToElement_fn","divider_get","colorPicker","focusIn_fn","focusOut_fn","element","editorType","_uiManager","divider","EditorToolbar","HighlightToolbar","uiManager","_HighlightToolbar_instances","parent","boxes","isLTR","getLastPoint_fn","render_fn","addHighlightButton_fn","lastY","lastX","box","bindEvents","names","opacityToHex","opacity","IdManager","_id","__privateWrapper","_ImageManager","_ImageManager_instances","_baseId","_cache","svg","image","promise","file","lastModified","size","get_fn","id","blobPromise","blob","data","canvas","offscreen","bitmap","rawData","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","ImageManager","CommandManager","maxSize","_commands","_locked","_maxSize","_position","cmd","undo","post","mustExec","overwriteIfSameType","keepUndo","save","next","KeyboardManager","callbacks","_KeyboardManager_instances","isMac","keys","callback","isMacKey","self","event","serialize_fn","bubbles","args","checker","_ColorManager","rgb","RGB","ColorManager","_AnnotationEditorUIManager","container","viewer","altTextManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","enableUpdatedAddImage","enableNewAltTextWhenAddingImage","mlManager","_AnnotationEditorUIManager_instances","_abortController","_activeEditor","_allEditors","_allLayers","_altTextManager","_annotationStorage","_changedExistingAnnotations","_commandManager","_copyPasteAC","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_enableHighlightFloatingButton","_enableUpdatedAddImage","_enableNewAltTextWhenAddingImage","_filterFactory","_focusMainContainerTimeoutId","_focusManagerAC","_highlightColors","_highlightWhenShiftUp","_highlightToolbar","_idManager","_isEnabled","_isWaiting","_keyboardManagerAC","_lastActiveElement","_mainHighlightColorPicker","_mlManager","_mode","_selectedEditors","_selectedTextNode","_pageColors","_showAllStates","_previousStates","_translation","_translationTimeoutId","_container","_viewer","_updateModeCapability","evt","addSelectionListener_fn","addDragAndDropListeners_fn","addKeyboardManager_fn","proto","arrowChecker","textInputChecker","_self","el","small","big","layer","_c","_d","ac","pair","firstTime","mode","pageNumber","layerX","layerY","pagesRotation","methodOfCreation","selection","anchorNode","anchorOffset","focusNode","focusOffset","text","textLayer","getAnchorElementForSelection_fn","getLayerForTextLayer_fn","isNoneMode","onSelectEnd_fn","activeElement","lastEditor","lastActiveElement","addCopyPasteListeners_fn","removeKeyboardManager_fn","removeCopyPasteListeners_fn","item","editors","serialized","clipboardData","ex","newEditors","deserializedEditor","addEditorToLayer_fn","selectEditors_fn","isEditing","addFocusManager_fn","dispatchUpdateStates_fn","isEmpty_fn","removeFocusManager_fn","types","dispatchUpdateUI_fn","pageIndex","editId","isFromKeyboard","disableAll_fn","enableAll_fn","visible","updateButton","mustWait","annotationElementId","lastSelectedEditor_get","ed","params","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","move","newX","newY","newPageIndex","savedX","savedY","savedPageIndex","tx","ty","parentWidth","parentHeight","rotator","range","annotation","editorId","currentLayer","displayHighlightToolbar_fn","selectionChange_fn","activeLayer","pointerup","promises","_AltText","_AltText_instances","_altTextDecorative","_altTextButton","_altTextButtonLabel","_altTextTooltip","_altTextTooltipTimeout","_altTextWasFromKeyBoard","_badge","_guessedText","_textWithDisclaimer","_useNewAltTextFlow","_l10nNewButton","l10n","label","onClick","label_get","setState_fn","guessedText","visibility","badge","isForCopying","decorative","textWithDisclaimer","cancel","enabled","tooltip","DELAY_TO_SHOW_TOOLTIP","AltText","_AnnotationEditor","parameters","_AnnotationEditor_instances","_accessibilityData","_allResizerDivs","_disabled","_keepAspectRatio","_resizersDiv","_savedDimensions","_focusAC","_focusedResizerName","_hasBeenClicked","_initialPosition","_isEditing","_isInEditMode","_isResizerEnabledForKeyboard","_moveInDOMTimeout","_prevDragX","_prevDragY","_telemetryTimeouts","_isDraggable","_zIndex","pageX","pageY","resize","fakeEditor","FakeEditor","_type","_value","mime","stopResizing_fn","target","translate_fn","bx","by","_borderLineWidth","_AnnotationEditor_static","rotatePoint_fn","parentScale","widthPercent","heightPercent","editToolbarDiv","addFocusListeners_fn","setUpDragSession_fn","selectOnPointerEvent_fn","shiftX","shiftY","_angle","context","timeout","createResizers_fn","children","boundResizerKeydown","resizerKeydown_fn","boundResizerBlur","resizerBlur_fn","resizerFocus_fn","firstPosition","nextFirstPosition","child","setResizerTabIndex_fn","resizerPointermove_fn","_e","aspectRatio","action","content","firstChild","angle","getRotationMatrix_fn","classes","resizerPointerdown_fn","savedDraggable","savedWidth","savedHeight","savedParentCursor","savedCursor","pointerUpCallback","addResizeToUndoStack_fn","newWidth","newHeight","minWidth","minHeight","round","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","oldDiag","isSelected","pointerMoveCallback","AnnotationEditor","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","SerializableEmpty","AnnotationStorage","_AnnotationStorage_instances","_modified","_modifiedIds","_storage","defaultValue","modified","entry","val","setModified_fn","PrintAnnotationStorage","hash","transfer","hasBitmap","stats","typeToEditor","editorStats","counters","count","ids","_serializable","clone","FontLoader","ownerDocument","styleElement","_systemFonts","nativeFontFace","rule","styleSheet","_inspectFont","loadedName","src","fontFace","font","hasFonts","supported","completeRequest","loadingRequests","otherRequest","testFont","int32","offset","spliceString","s","remove","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","FontFaceObject","translatedData","disableFontFace","inspectFont","css","objs","character","cmds","commands","BaseCanvasFactory","enableHWA","_enableHWA","canvasAndContext","DOMCanvasFactory","BaseCMapReaderFactory","isCompressed","cMapData","reason","DOMCMapReaderFactory","BaseFilterFactory","maps","fgColor","bgColor","filterName","newFgColor","newBgColor","keepHCM","DOMFilterFactory","docId","_DOMFilterFactory_instances","_baseUrl","__cache","__defs","_docId","_document","__hcmCache","cache_get","tableR","tableG","tableB","createTables_fn","createUrl_fn","filter","createFilter_fn","addTransferMapConversion_fn","hcmCache_get","fgRGB","getRGB_fn","bgRGB","defs_get","table","addGrayConversion_fn","getSteps","tableA","addTransferMapAlphaConversion_fn","addLuminosityConversion_fn","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","step","newStart","newStep","prev","k","j","mapR","buffer","mapG","mapB","bufferR","bufferG","bufferB","feColorMatrix","appendFeFunc_fn","feComponentTransfer","func","feFunc","rTable","gTable","bTable","aTable","BaseStandardFontDataFactory","DOMStandardFontDataFactory","packageCapability","packageMap","fs","http","https","path2d","NodePackages","node_utils_fetchData","NodeFilterFactory","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","PathType","applyBoundingBox","bbox","region","BaseShadingPattern","RadialAxialShadingPattern","IR","grad","colorStop","owner","inverse","pathType","pattern","ownerBBox","tmpCanvas","tmpCtx","domMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","combinedScale","backgroundColor","cachedCanvases","boundsWidth","boundsHeight","scaleX","scaleY","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","_TilingPattern","canvasGraphicsFactory","baseTransform","operatorList","paintType","tilingType","xstep","ystep","curMatrixScale","combinedScaleX","combinedScaleY","canvasWidth","canvasHeight","redrawHorizontally","redrawVertically","xScaledStep","yScaledStep","xScaledWidth","yScaledHeight","dimx","dimy","graphics","dimx2","dimy2","xSize","ySize","tmpCanvas2","tmpCtx2","jj","realOutputSize","bboxWidth","bboxHeight","current","cssColor","matrix","TilingPattern","convertBlackAndWhiteToRGBA","srcPos","dest","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","max","elem","MIN_FONT_SIZE","MAX_FONT_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","cp1x","cp1y","cp2x","cp2y","CachedCanvases","canvasFactory","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","pos","mask","sum","steps","path","p0","pp","CanvasExtraState","xStrokePad","yStrokePad","intersect","putBinaryImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","dest32","dest32DataLength","fullSrcDiff","white","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","properties","property","resetCtxToDefault","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics","canvasCtx","commonObjs","filterFactory","optionalContentConfig","markedContentStack","annotationCanvasMap","_CanvasGraphics_instances","fallback","transparency","background","savedFillStyle","transparentCanvas","executionStartIdx","continueCallback","stepper","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","fnId","depObjId","objsPool","restoreInitialState_fn","cache","drawFilter_fn","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","fillColor","isPatternFill","currentTransform","cacheKey","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","minX","maxX","drawnWidth","drawnHeight","fillCanvas","fillCtx","limit","dashArray","dashPhase","intent","flatness","states","inSMaskMode","cacheId","scratchCanvas","dirtyBox","smask","suspendedCtx","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","subtype","backdrop","transferMap","maskOffsetX","maskOffsetY","maskX","maskY","backdropRGB","clip","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","strokeColor","needRestore","paths","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","patternTransform","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","lineWidth","chars","glyph","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","objId","inv","group","currentCtx","bounds","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","skewX","skewY","positions","trans","images","imgToPaint","tag","clipBox","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","CanvasGraphics","op","_port","_src","CallbackKind","StreamKind","wrapReason","MessageHandler","sourceName","targetName","comObj","_MessageHandler_instances","_messageAC","onMessage_fn","actionName","handler","ah","transfers","callbackId","capability","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","processStreamMessage_fn","result","createStreamSink_fn","streamSink","lastDesiredSize","streamController","deleteStreamController_fn","Metadata","parsedData","_metadataMap","_data","INTERNAL","OptionalContentGroup","renderingIntent","usage","rbGroups","_isDisplay","_isPrint","_userSet","_visible","print","view","internal","userSet","OptionalContentConfig","_OptionalContentConfig_instances","_cachedGetHash","_groups","_initialHash","_order","on","off","evaluateVisibilityExpression_fn","preserveRB","rbGroup","otherId","state","operator","array","PDFDataTransportStream","pdfDataRangeTransport","disableRange","disableStream","initialData","progressiveDone","contentDispositionFilename","begin","loaded","total","found","rangeReader","reader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","stream","requestCapability","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","contentDispositionStr","match","iter","quot","part","parts","quotindex","extvalue","encodingend","charset","hex","createHeaders","isHttp","httpHeaders","headers","validateRangeRequestCapabilities","responseHeaders","rangeChunkSize","returnValues","extractFilenameFromHeader","createResponseStatusError","validateResponseStatus","createFetchOptions","withCredentials","abortController","getArrayBuffer","PDFFetchStream","source","PDFFetchStreamReader","PDFFetchStreamRangeReader","allowRangeRequests","suggestedLength","done","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","network_getArrayBuffer","xhr","NetworkManager","listeners","xhrId","pendingRequest","xhrStatus","rangeHeader","PDFNetworkStream","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","manager","fullRequestXhrId","fullRequestXhr","urlRegex","parseUrlOrPath","sourceUrl","createRequest","PDFNodeStream","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","readableStream","BaseRangeReader","handleResponse","error","stat","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","TextLayer$1","textContentSource","_TextLayer_instances","_capability","_disableProcessItems","_fontInspectorEnabled","_lang","_layoutTextParams","_pageHeight","_pageWidth","_reader","_rootContainer","_rotation","_scale","_styleCache","_textContentItemsStr","_textContentSource","_textDivs","_textDivProperties","_transform","_TextLayer_static","ensureMinFontSizeComputed_fn","_pendingTextLayers","isWindows","isFirefox","pump","processItems_fn","onBefore","getCtx_fn","layout_fn","abortEx","_ascentCache","_canvasContexts","_canvasCtxFonts","_minFontSize","items","textDivs","textContentItemsStr","appendText_fn","geom","textDiv","textDivProperties","fontFamily","fontHeight","fontAscent","getAscent_fn","left","top","scaleFactorStr","divStyle","shouldScaleText","absScaleX","absScaleY","br","ensureCtxFont_fn","lang","family","cached","cachedAscent","metrics","ascent","descent","ratio","pixels","XfaText","xfa","output","walk","node","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","DefaultCanvasFactory","DefaultCMapReaderFactory","DefaultFilterFactory","DefaultStandardFontDataFactory","task","PDFDocumentLoadingTask","getUrlProp","getDataProp","password","rangeTransport","worker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","isChrome","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","CanvasFactory","FilterFactory","useSystemFonts","useWorkerFetch","transportFactory","workerParams","docParams","transportParams","workerIdPromise","networkStream","NetworkStream","workerId","messageHandler","transport","WorkerTransport","isRefProxy","ref","_PDFDocumentLoadingTask","PDFDataRangeTransport$1","listener","PDFDocumentProxy","pdfInfo","keepLoadedFonts","PDFPageProxy","pageInfo","_PDFPageProxy_instances","_delayedCleanupTimeout","_pendingCleanup","PDFObjects","canvasContext","annotationMode","optionalContentConfigPromise","printAnnotationStorage","intentArgs","abortDelayedCleanup_fn","intentState","intentPrint","complete","internalRenderTask","tryCleanup_fn","InternalRenderTask","renderTask","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","waitOn","resetStats","success","operatorListChunk","annotationStorageSerializable","modifiedIds","force","delay","curCacheKey","curIntentState","delayed","renderTasks","LoopbackPort","_listeners","_deferred","rmAbort","onAbort","_PDFWorker","port","_PDFWorker_instances","_workerPorts","resolve_fn","_isWorkerDisabled","_PDFWorker_static","mainThreadWorkerMessageHandler_get","workerSrc","terminateEarly","sendTest","testObj","WorkerMessageHandler","_fakeWorkerId","workerHandler","cachedPort","otherUrl","base","other","wrapper","loadingTask","factory","_WorkerTransport_instances","_methodPromises","_pageCache","_pagePromises","_pageRefCache","_passwordCapability","isOpList","annotationStorage","modifiedIdsHash","cacheKeyBuf","page","terminated","sink","readyReason","isStreamingSupported","isRangeSupported","contentLength","exception","updatePassword","exportedData","exportedError","imageRef","pageProxy","imageData","cachedPromise","cacheSimpleMethod_fn","results","refStr","INITIAL_DATA","_PDFObjects_instances","_objs","ensureObj_fn","RenderTask","_internalRenderTask","separateAnnots","_InternalRenderTask","useRequestAnimationFrame","_rAF","_canvasInUse","makeColorComp","scaleAndClamp","ColorConverters","G","components","BaseSVGFactory","skipDimensions","html","storage","storedData","option","linkService","attributes","isHTMLAnchorElement","root","rootHtml","isNotForRichText","rootDiv","stack","childHtml","DEFAULT_TAB_INDEX","annotation_layer_DEFAULT_FONT_SIZE","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","_AnnotationElement_instances","_updates","_hasBorder","_popupElement","titleObj","contentsObj","richText","setRectEdited_fn","horizontalRadius","verticalRadius","radius","borderColor","elementWidth","elementHeight","setColor","jsName","styleName","colorType","colorArray","display","hidden","actions","jsEvent","commonActions","detail","eventProxy","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","borderWidth","svgFactory","defs","clipPath","rectWidth","rectHeight","popup","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","currentRect","_LinkAnnotationElement_instances","link","isBound","bindAttachment_fn","bindSetOCGState_fn","destination","setInternalLink_fn","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","field","allIds","attachment","elementData","baseName","eventName","valueGetter","getter","TEXT_ALIGNMENT","fontColor","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","fieldFormattedValues","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","values","index","displayValue","selectChild","indices","change","elements","PopupElement","elementIds","modificationDate","parentRect","open","_PopupElement_instances","_boundKeyDown","keyDown_fn","_boundHide","hide_fn","_boundShow","show_fn","_boundToggle","toggle_fn","_color","_contentsObj","_dateObj","_elements","_parent","_parentRect","_pinned","_popup","_rect","_richText","_titleObj","_wasVisible","baseColor","header","title","html_get","contents","dir","lines","line","popupContent","makePopupContent_fn","fontSize_get","fontColor_get","popupLines","lineAttributes","setPosition_fn","useParentRect","normalizedRect","popupLeft","popupTop","lineSpan","_line","_square","square","_circle","circle","_polyline","vertices","borderStyle","popupRef","polyline","_polylines","inkLists","inkList","_FileAttachmentAnnotationElement_instances","_trigger","trigger","download_fn","AnnotationLayer$1","accessibilityManager","annotationEditorUIManager","structTreeLayer","_AnnotationLayer_instances","_accessibilityManager","_annotationCanvasMap","_editableAnnotations","_structTreeLayer","annotations","popupToElements","elementParams","isPopupAnnotation","rendered","appendElement_fn","setAnnotationCanvasMap_fn","contentElement","annotationId","ariaAttributes","EOL_PATTERN","_FreeTextEditor","_FreeTextEditor_instances","_content","_editorDivId","_editModeAC","_fontSize","updateFontSize_fn","updateColor_fn","savedText","newText","extractText_fn","setText","setContent_fn","setEditorDimensions_fn","baseX","baseY","posX","posY","paste","_FreeTextEditor_static","deserializeContent_fn","startContainer","startOffset","bufferBefore","bufferAfter","getNodeContent_fn","newRange","beforeLength","acc","textPosition","padding","serializeContent_fn","hasElementChanged_fn","setFontsize","savedFontsize","col","savedColor","prevChild","savedDisplay","savedVisibility","FreeTextEditor","Outline$1","_bbox","_FreeDrawOutliner","scaleFactor","thickness","innerMargin","_FreeDrawOutliner_instances","_box","_bottom","_innerMargin","_isLTR","_top","_last","_lastX","_lastY","_min","_min_dist","_scaleFactor","_thickness","_points","_MIN_DIST","_MIN","diffX","diffY","diffD","K","nX","nY","thX","thY","bottom","toSVGPathTwoPoints_fn","toSVGPathEnd_fn","toSVGPathStart_fn","outline","FreeDrawOutline","last","getOutlineTwoPoints_fn","N","getOutlineEnd_fn","getOutlineStart_fn","_MIN_DIFF","getLastCoords_fn","lastTop","lastBottom","lastTopX","lastTopY","lastBottomX","lastBottomY","FreeDrawOutliner","Outline","_FreeDrawOutline_instances","_outline","computeMinMax_fn","rescale_fn","rescaleAndSwap_fn","outliner","lastPointX","lastPointY","ltrCallback","HighlightOutliner","_HighlightOutliner_instances","_verticalEdges","_intervals","EPSILON","right","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","outlineVerticalEdges","breakEdge_fn","insert_fn","remove_fn","getOutlines_fn","edges","allEdges","edge1","edge2","outlines","HighlightOutline","binarySearch_fn","middle","y4","_outlines","polygon","prevX","prevY","FreeHighlightOutliner","FreeHighlightOutline","_ColorPicker","_ColorPicker_instances","_button","_buttonSwatch","_defaultColor","_dropdown","_dropdownWasFromKeyboard","_isMainColorPicker","_eventBus","_openDropdownAC","_l10nColor","openDropdown_fn","swatch","dropdown","getDropdownRoot_fn","colorSelect_fn","isDropdownVisible_get","_HighlightEditor","_HighlightEditor_instances","_anchorNode","_anchorOffset","_boxes","_clipPathId","_focusOutlines","_focusNode","_focusOffset","_highlightDiv","_highlightOutlines","_isFreeHighlight","_lastPoint","_opacity","_outlineId","_text","_methodOfCreation","createFreeOutlines_fn","addToDrawLayer_fn","createOutlines_fn","updateThickness_fn","toolbar","getRotation_fn","cleanDrawLayer_fn","mustBeSelected","drawLayer","_HighlightEditor_static","rotateBbox_fn","keydown_fn","highlightDiv","direction","setCaret_fn","pointerDown","endHighlight_fn","highlightMove_fn","clipPathId","serializeBoxes_fn","serializeOutlines_fn","outlinerForOutline","highlightOutlines","highlightId","setColorAndOpacity","opa","savedOpacity","savedThickness","setThickness","th","changeThickness_fn","HighlightEditor","_InkEditor","_InkEditor_instances","_baseHeight","_baseWidth","_canvasContextMenuTimeoutId","_currentPath2D","_disableEditing","_drawingAC","_hasSomethingToDraw","_isCanvasInitialized","_observer","_pointerdownAC","_realWidth","_realHeight","_requestFrameCallback","updateOpacity_fn","createCanvas_fn","createObserver_fn","setCanvasDims_fn","fitToContent_fn","addPointerdownListener_fn","removePointerdownListener_fn","startDrawing_fn","draw_fn","endDrawing_fn","getInitialBBox_fn","redraw_fn","roundedWidth","roundedHeight","setScaleFactor_fn","bezier","_InkEditor_static","fromPDFCoordinates_fn","p10","p11","p20","p21","p30","p31","path2D","buildPath2D_fn","getBbox_fn","serializePaths_fn","setOpacity","parentRotation","setStroke_fn","drawPoints_fn","currentPath","makeBezierCurve_fn","endPath_fn","stopDrawing_fn","generateBezierPoints_fn","xy","lastPoints","bezierPoints","control1","control2","updateTransform_fn","entries","getPadding_fn","scaleFactorW","scaleFactorH","toPDFCoordinates_fn","p40","p41","xMin","xMax","yMin","yMax","prevTranslationX","prevTranslationY","unscaledPadding","InkEditor","_StampEditor","_StampEditor_instances","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_bitmapFileName","_canvas","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","hasAltTextStats","updateAltTextData","getBitmap_fn","maxDataDimension","maxPreviewDimension","createImageData","bitmapWidth","bitmapHeight","outputScale","scaledWidth","scaledHeight","scaleBitmap_fn","boxDim","boxDimWidth","boxDimHeight","patternCtx","dataWidth","dataHeight","offscreenCtx","structParent","bitmapUrl","bitmapId","isSvg","accessibilityData","serializeBitmap_fn","changes","area","prevData","getBitmapFetched_fn","fromId","getBitmapDone_fn","MAX_RATIO","factor","drawBitmap_fn","setDimensions_fn","prevWidth","prevHeight","toUrl","isSameRect","isSamePageIndex","isSameAltText","StampEditor","_AnnotationEditorLayer","annotationLayer","_AnnotationEditorLayer_instances","_allowClick","_annotationLayer","_clickAC","_editorFocusTimeoutId","_editors","_hadPointerDown","_isCleaningUp","_isDisabling","_textLayer","_textSelectionAC","editorTypes","cleanup_fn","classList","isCommitting","annotationElementIds","editables","editable","changedAnnotations","resetAnnotations","textLayerPointerDown_fn","currentEditorType_get","getCenterPoint_fn","createNewEditor_fn","isCentered","oldRotation","_DrawLayer","_DrawLayer_instances","_mapping","_toUpdate","isPathUpdatable","createSVG_fn","pathId","createClipPath_fn","use","maskId","use1","use2","_DrawLayer_static","setBox_fn","className","clipPathUse","__webpack_exports__AbortException","__webpack_exports__AnnotationEditorLayer","__webpack_exports__AnnotationEditorParamsType","__webpack_exports__AnnotationEditorType","__webpack_exports__AnnotationEditorUIManager","__webpack_exports__AnnotationLayer","__webpack_exports__AnnotationMode","__webpack_exports__ColorPicker","__webpack_exports__DOMSVGFactory","__webpack_exports__DrawLayer","__webpack_exports__FeatureTest","__webpack_exports__GlobalWorkerOptions","__webpack_exports__ImageKind","__webpack_exports__InvalidPDFException","__webpack_exports__MissingPDFException","__webpack_exports__OPS","__webpack_exports__OutputScale","__webpack_exports__PDFDataRangeTransport","__webpack_exports__PDFDateString","__webpack_exports__PDFWorker","__webpack_exports__PasswordResponses","__webpack_exports__PermissionFlag","__webpack_exports__PixelsPerInch","__webpack_exports__RenderingCancelledException","__webpack_exports__TextLayer","__webpack_exports__UnexpectedResponseException","__webpack_exports__Util","__webpack_exports__VerbosityLevel","__webpack_exports__XfaLayer","__webpack_exports__build","__webpack_exports__createValidAbsoluteUrl","__webpack_exports__fetchData","__webpack_exports__getDocument","__webpack_exports__getFilenameFromUrl","__webpack_exports__getPdfFilenameFromUrl","__webpack_exports__getXfaPageViewport","__webpack_exports__isDataScheme","__webpack_exports__isPdfFile","__webpack_exports__noContextMenu","__webpack_exports__normalizeUnicode","__webpack_exports__setLayerDimensions","__webpack_exports__shadow","__webpack_exports__version","__spreadArray","to","from","pack","l","ar","clipboardEvents","compositionEvents","focusEvents","formEvents","imageEvents","keyboardEvents","mediaEvents","mouseEvents","dragEvents","selectionEvents","touchEvents","pointerEvents","uiEvents","wheelEvents","animationEvents","transitionEvents","otherEvents","changeEvents","allEvents","makeEventProps","props","getArgs","eventProps","eventHandler","makeCancellablePromise","isCancelled","wrappedPromise","isProduction","prefix","invariant","condition","provided","__DEV__","warning","printWarning","format","len","argIndex","warning_1","has","find","tar","dequal","foo","bar","ctor","documentContext","createContext","Message","_jsx","DEFAULT_LINK_REL","LinkService","pdfViewer","externalLinkRel","externalLinkTarget","explicitDest","destRef","newWindow","isBrowser","isLocalFileSystem","isDefined","variable","isProvided","isString","isArrayBuffer","isBlob","isDataURI","dataURItoByteString","dataURI","headersString","dataString","getDevicePixelRatio","allowFileAccessFromFilesTip","displayCORSWarning","displayWorkerWarning","cancelRunningTask","runningTask","makePageCallback","isCancelException","loadFromFile","reducer","useResolver","useReducer","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","rejected","__rest","pdfjs","defaultOnPassword","isParameterObject","Document","forwardRef","inputRef","imageResourcesPath","loading","noData","onItemClick","onLoadErrorProps","onLoadProgress","onLoadSuccessProps","onPassword","onSourceErrorProps","onSourceSuccessProps","renderMode","rotate","otherProps","sourceState","sourceDispatch","sourceError","pdfState","pdfDispatch","pdf","pdfError","useRef","pages","prevFile","prevOptions","useImperativeHandle","onSourceSuccess","onSourceError","resetSource","useEffect","findDocumentSource","useCallback","otherParams","fileByteString","cancellable","makeCancellable","nextSource","onLoadSuccess","onLoadError","documentInitParams","destroyable","pdfjs.getDocument","loadingPromise","nextPdf","registerPage","unregisterPage","childContext","useMemo","renderChildren","DocumentContext","renderContent","clsx","outlineContext","Ref","num","gen","useCachedValue","currentValue","useDocumentContext","useContext","useOutlineContext","OutlineContext","OutlineItem","mergedProps","getDestination","getPageIndex","getPageNumber","renderSubitems","subitems","subitem","subitemIndex","_jsxs","outlineState","outlineDispatch","outlineError","nextOutline","renderOutline","itemIndex","mergeRefs","inputRefs","_i","filteredInputRefs","firstRef","pageContext","PDF_ROLE_TO_HTML_ROLE","HEADING_PATTERN","isPdfRole","role","isStructTreeNode","isStructTreeNodeWithOnlyContentChild","getRoleAttributes","htmlRole","getBaseAttributes","childAttributes","getAttributes","StructTreeItem","usePageContext","PageContext","StructTree","onGetStructTreeErrorProps","onGetStructTreeSuccessProps","structTreeState","structTreeDispatch","structTree","structTreeError","customTextRenderer","nextStructTree","ANNOTATION_MODE","pdfjs.AnnotationMode","Canvas","_className","canvasBackground","devicePixelRatio","onRenderErrorProps","onRenderSuccessProps","renderForms","renderTextLayer","canvasRef","canvasElement","onRenderSuccess","onRenderError","renderViewport","renderContext","cleanup","isTextItem","onGetTextError","onGetTextSuccess","onRenderTextLayerError","onRenderTextLayerSuccess","textContentState","textContentDispatch","textContentError","layerElement","nextTextContent","onMouseDown","onMouseUp","useLayoutEffect","pdfjs.TextLayer","layerChildren","onGetAnnotationsErrorProps","onGetAnnotationsSuccessProps","onRenderAnnotationLayerErrorProps","onRenderAnnotationLayerSuccessProps","annotationsState","annotationsDispatch","annotationsError","nextAnnotations","clonedViewport","annotationLayerParameters","renderParameters","pdfjs.AnnotationLayer","defaultScale","Page","_enableRegisterUnregisterPage","CustomRenderer","onGetTextErrorProps","onGetTextSuccessProps","onRenderTextLayerErrorProps","onRenderTextLayerSuccessProps","pageIndexProps","pageNumberProps","renderAnnotationLayerProps","renderTextLayerProps","rotateProps","scaleProps","pageState","pageDispatch","pageError","pageElement","pageScale","scaleWithDefault","nextPage","pageKey","renderMainLayer","renderAnnotationLayer","Thumbnail","classNameProps","onItemClickProps","pageProps","pdfjs.GlobalWorkerOptions"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]}
|