@brftech/filex-core 0.42.1 → 0.43.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 +14 -2
- package/dist/ArchiveViewer-BqU761Wk.js +149 -0
- package/dist/ArchiveViewer-BqU761Wk.js.map +1 -0
- package/dist/CsvViewer-ByHVK5ga.js +172 -0
- package/dist/CsvViewer-ByHVK5ga.js.map +1 -0
- package/dist/{DrawioViewer-BuhZOAx6.js → DrawioViewer-Bgrj8-zG.js} +45 -44
- package/dist/DrawioViewer-Bgrj8-zG.js.map +1 -0
- package/dist/{EpubViewer-DS3mb3k8.js → EpubViewer-DJwUKlHW.js} +50 -50
- package/dist/EpubViewer-DJwUKlHW.js.map +1 -0
- package/dist/IpynbViewer-Bz0eJ4NS.js +184 -0
- package/dist/IpynbViewer-Bz0eJ4NS.js.map +1 -0
- package/dist/MermaidViewer-CEDTD_pp.js +136 -0
- package/dist/MermaidViewer-CEDTD_pp.js.map +1 -0
- package/dist/PsdViewer-CZcxUpZO.js +121 -0
- package/dist/PsdViewer-CZcxUpZO.js.map +1 -0
- package/dist/TiffViewer-BwI62CbQ.js +141 -0
- package/dist/TiffViewer-BwI62CbQ.js.map +1 -0
- package/dist/{Viewer3D-CIrOn63I.js → Viewer3D-DoeZcuMm.js} +16 -16
- package/dist/Viewer3D-DoeZcuMm.js.map +1 -0
- package/dist/filex-core.js +475 -219
- package/dist/filex-core.umd.cjs +165 -108
- package/dist/filex-core.umd.cjs.map +1 -1
- package/dist/fonts/caveat-latin-ext.woff2 +0 -0
- package/dist/fonts/caveat-latin.woff2 +0 -0
- package/dist/fonts/dancing-script-latin-ext.woff2 +0 -0
- package/dist/fonts/dancing-script-latin.woff2 +0 -0
- package/dist/fonts/homemade-apple-latin.woff2 +0 -0
- package/dist/fonts/source-serif-4-latin-ext.woff2 +0 -0
- package/dist/fonts/source-serif-4-latin.woff2 +0 -0
- package/dist/index-DuWnGuv5.js +35901 -0
- package/dist/index-DuWnGuv5.js.map +1 -0
- package/dist/index.d.ts +5241 -553
- package/dist/pdf-CaPYsOUo.js +21302 -0
- package/dist/pdf-CaPYsOUo.js.map +1 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/FileExplorer.vue +1207 -343
- package/src/assets/fonts/LICENSE-Apache-2.0.txt +202 -0
- package/src/assets/fonts/LICENSE-OFL-1.1.txt +93 -0
- package/src/assets/fonts/README.md +58 -0
- package/src/assets/fonts/caveat-latin-ext.woff2 +0 -0
- package/src/assets/fonts/caveat-latin.woff2 +0 -0
- package/src/assets/fonts/dancing-script-latin-ext.woff2 +0 -0
- package/src/assets/fonts/dancing-script-latin.woff2 +0 -0
- package/src/assets/fonts/homemade-apple-latin.woff2 +0 -0
- package/src/assets/fonts/source-serif-4-latin-ext.woff2 +0 -0
- package/src/assets/fonts/source-serif-4-latin.woff2 +0 -0
- package/src/components/AdvancedSearch.vue +49 -0
- package/src/components/Breadcrumb.vue +5 -5
- package/src/components/ChoiceButtons.vue +152 -0
- package/src/components/CommandPalette.vue +5 -5
- package/src/components/ConnectionGuideView.vue +1 -1
- package/src/components/ConnectionNotice.vue +59 -0
- package/src/components/ConnectionsPanel.vue +30 -568
- package/src/components/ContextMenu.vue +31 -5
- package/src/components/DataTable.vue +1331 -0
- package/src/components/FilePane.vue +3 -0
- package/src/components/FilterBar.vue +12 -5
- package/src/components/GalleryView.vue +50 -2
- package/src/components/GridView.vue +51 -3
- package/src/components/HomeView.vue +18 -6
- package/src/components/InspectorPanel.vue +134 -17
- package/src/components/ListView.vue +366 -900
- package/src/components/LogoMark.vue +57 -0
- package/src/components/NFSExportsPanel.vue +76 -28
- package/src/components/OnboardingTour.vue +19 -7
- package/src/components/OperationsCenter.vue +77 -1
- package/src/components/PendingOpsTray.vue +59 -5
- package/src/components/PresenceBar.vue +7 -7
- package/src/components/ProductVersion.vue +31 -0
- package/src/components/QuickLook.vue +10 -14
- package/src/components/RecentlyOpened.vue +47 -17
- package/src/components/RecoveryKeyModal.vue +1 -1
- package/src/components/RowActions.vue +134 -0
- package/src/components/S3KeysPanel.vue +98 -56
- package/src/components/SSHKeysPanel.vue +79 -26
- package/src/components/SideNav.vue +260 -96
- package/src/components/StarButton.vue +1 -0
- package/src/components/StorageFields.vue +74 -6
- package/src/components/StorageTags.vue +62 -0
- package/src/components/TabBar.vue +1 -1
- package/src/components/TagKindIcon.vue +56 -0
- package/src/components/TagPicker.vue +226 -40
- package/src/components/ThemePalette.vue +4 -4
- package/src/components/TimeZonePicker.vue +29 -10
- package/src/components/TokensPanel.vue +82 -27
- package/src/components/Toolbar.vue +28 -6
- package/src/components/plugin/PluginConfirmModal.vue +54 -0
- package/src/components/plugin/PluginInspectorSection.vue +149 -0
- package/src/components/plugin/PluginPageView.vue +339 -0
- package/src/components/plugin/PluginViewModal.vue +159 -0
- package/src/components/plugin/SurfaceConversation.vue +76 -0
- package/src/components/plugin/SurfaceFooterButtons.vue +73 -0
- package/src/components/plugin/SurfaceRenderer.vue +299 -0
- package/src/components/plugin/SurfaceSections.vue +91 -0
- package/src/components/plugin/nodes/PdfFieldEditor.vue +509 -0
- package/src/components/plugin/nodes/SurfaceFileChooser.vue +94 -0
- package/src/components/plugin/nodes/SurfaceForm.vue +82 -0
- package/src/components/plugin/nodes/SurfaceList.vue +127 -0
- package/src/components/plugin/nodes/SurfacePdfFields.vue +1285 -0
- package/src/components/plugin/nodes/SurfacePeoplePicker.vue +213 -0
- package/src/components/plugin/nodes/SurfacePinInput.vue +57 -0
- package/src/components/plugin/nodes/SurfacePreview.vue +119 -0
- package/src/components/plugin/nodes/SurfaceProgress.vue +48 -0
- package/src/components/plugin/nodes/SurfaceSignaturePad.vue +472 -0
- package/src/components/plugin/nodes/SurfaceSteps.vue +53 -0
- package/src/components/public/PublicLanguagePicker.vue +58 -0
- package/src/components/public/PublicLinkPage.vue +286 -0
- package/src/components/public/PublicLinkPreview.vue +85 -0
- package/src/components/public/PublicPinGate.vue +108 -0
- package/src/components/public/PublicRequestBody.vue +204 -0
- package/src/components/public/PublicShareBody.vue +188 -0
- package/src/components/public/PublicShell.vue +332 -0
- package/src/composables/useConnections.ts +8 -2
- package/src/composables/useFileApi.ts +183 -44
- package/src/composables/useLocale.ts +277 -41
- package/src/composables/useNFSExports.ts +8 -10
- package/src/composables/useOperations.ts +44 -3
- package/src/composables/usePendingOps.ts +59 -8
- package/src/composables/usePluginActions.ts +121 -0
- package/src/composables/usePluginSurface.ts +223 -0
- package/src/composables/usePublicBranding.ts +172 -0
- package/src/composables/usePublicLink.ts +573 -0
- package/src/composables/usePublicPage.ts +61 -0
- package/src/composables/useS3Keys.ts +17 -12
- package/src/composables/useSSHKeys.ts +8 -10
- package/src/composables/useTokens.ts +8 -12
- package/src/composables/useUploadChunked.ts +18 -8
- package/src/composables/useViewerFetch.ts +6 -3
- package/src/index.ts +404 -8
- package/src/lib/actionIcons.ts +46 -1
- package/src/lib/advSearch.ts +14 -7
- package/src/lib/appLock.ts +130 -0
- package/src/lib/connection.ts +110 -0
- package/src/lib/destinationTree.ts +19 -3
- package/src/lib/direction.ts +353 -0
- package/src/lib/dragGhost.ts +6 -0
- package/src/lib/dropLimits.ts +69 -0
- package/src/lib/errorWords.ts +394 -0
- package/src/lib/externalReach.ts +5 -1
- package/src/lib/fileFilters.ts +7 -2
- package/src/lib/fileIcons.ts +4 -0
- package/src/lib/internalPaths.ts +77 -0
- package/src/lib/listInput.ts +64 -0
- package/src/lib/listing.ts +58 -23
- package/src/lib/modalStack.ts +26 -0
- package/src/lib/nodeRow.ts +121 -0
- package/src/lib/pdfFieldRules.ts +126 -0
- package/src/lib/pdfFields.ts +589 -0
- package/src/lib/pdfFieldsGeom.ts +203 -0
- package/src/lib/pdfjsLoader.ts +51 -0
- package/src/lib/personName.ts +47 -0
- package/src/lib/pluginApplies.ts +123 -0
- package/src/lib/pluginLabel.ts +72 -0
- package/src/lib/pluginMenu.ts +253 -0
- package/src/lib/pluginPage.ts +58 -0
- package/src/lib/plural.ts +181 -0
- package/src/lib/popupLayer.ts +103 -0
- package/src/lib/prefs.ts +563 -0
- package/src/lib/productVersion.ts +35 -0
- package/src/lib/publicLayout.ts +39 -0
- package/src/lib/serviceGate.ts +104 -0
- package/src/lib/shareTtl.ts +25 -11
- package/src/lib/signFonts.ts +85 -0
- package/src/lib/signaturePad.ts +111 -0
- package/src/lib/sortOrder.ts +100 -38
- package/src/lib/star.ts +7 -1
- package/src/lib/surfaceCell.ts +41 -0
- package/src/lib/surfaceConditions.ts +156 -0
- package/src/lib/surfaceOpen.ts +106 -0
- package/src/lib/surfaceSteps.ts +68 -0
- package/src/lib/surfaceValues.ts +191 -0
- package/src/lib/symlink.ts +150 -0
- package/src/lib/tableColumns.ts +493 -0
- package/src/lib/tableEnv.ts +34 -0
- package/src/lib/tablePrefs.ts +84 -0
- package/src/lib/tags.ts +121 -12
- package/src/lib/themes.ts +286 -18
- package/src/lib/tour.ts +152 -0
- package/src/lib/trashEmpty.ts +111 -0
- package/src/lib/trashTimeLeft.ts +23 -0
- package/src/lib/uiLocales.ts +460 -0
- package/src/lib/viewPrefs.ts +696 -660
- package/src/lib/viewPrefsHttp.ts +78 -0
- package/src/locales/en.ts +522 -119
- package/src/locales/resolve.ts +17 -8
- package/src/locales/tr.ts +539 -155
- package/src/modals/ConvertModal.vue +62 -11
- package/src/modals/DestinationPickerModal.vue +59 -16
- package/src/modals/Modal.vue +113 -23
- package/src/modals/NewDocumentModal.vue +16 -6
- package/src/modals/NewFolderModal.vue +8 -0
- package/src/modals/PermissionsModal.vue +272 -163
- package/src/modals/PreviewModal.vue +119 -20
- package/src/modals/RenameModal.vue +37 -1
- package/src/styles/base.css +2895 -241
- package/src/styles/sign-fonts.css +118 -0
- package/src/styles/variables.css +60 -0
- package/src/types/Connections.ts +17 -0
- package/src/types/ExplorerConfig.ts +117 -1
- package/src/types/FileNode.ts +58 -0
- package/src/types/Plugins.ts +494 -0
- package/src/types/Public.ts +212 -0
- package/src/viewers/ArchiveViewer.vue +93 -48
- package/src/viewers/CsvViewer.vue +99 -53
- package/src/viewers/DrawioViewer.vue +35 -9
- package/src/viewers/EpubViewer.vue +7 -8
- package/src/viewers/IpynbViewer.vue +3 -1
- package/src/viewers/MermaidViewer.vue +4 -5
- package/src/viewers/PdfViewer.vue +8 -17
- package/src/viewers/PsdViewer.vue +2 -4
- package/src/viewers/TiffViewer.vue +4 -5
- package/src/viewers/Viewer3D.vue +1 -1
- package/LICENSE +0 -21
- package/dist/ArchiveViewer-CLNevfPE.js +0 -124
- package/dist/ArchiveViewer-CLNevfPE.js.map +0 -1
- package/dist/CsvViewer-K8XA3z7N.js +0 -141
- package/dist/CsvViewer-K8XA3z7N.js.map +0 -1
- package/dist/DrawioViewer-BuhZOAx6.js.map +0 -1
- package/dist/EpubViewer-DS3mb3k8.js.map +0 -1
- package/dist/IpynbViewer-BTk7p4Dn.js +0 -184
- package/dist/IpynbViewer-BTk7p4Dn.js.map +0 -1
- package/dist/MermaidViewer-DqucH_io.js +0 -137
- package/dist/MermaidViewer-DqucH_io.js.map +0 -1
- package/dist/PsdViewer-CwiVENmq.js +0 -122
- package/dist/PsdViewer-CwiVENmq.js.map +0 -1
- package/dist/TiffViewer-CpewSVmQ.js +0 -142
- package/dist/TiffViewer-CpewSVmQ.js.map +0 -1
- package/dist/Viewer3D-CIrOn63I.js.map +0 -1
- package/dist/index-Dx0IbBcI.js +0 -26831
- package/dist/index-Dx0IbBcI.js.map +0 -1
- package/dist/useViewerFetch-czqbd2Lj.js +0 -25
- package/dist/useViewerFetch-czqbd2Lj.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdf-CaPYsOUo.js","sources":["../../../node_modules/.pnpm/pdfjs-dist@5.7.284/node_modules/pdfjs-dist/legacy/build/pdf.mjs"],"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/**\n * pdfjsVersion = 5.7.284\n * pdfjsBuild = 7e5b36c2d\n */\n/******/ var __webpack_modules__ = ({\n\n/***/ 9306\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\nvar tryToString = __webpack_require__(6823);\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ },\n\n/***/ 3506\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isPossiblePrototype = __webpack_require__(3925);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n/***/ },\n\n/***/ 7080\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar has = (__webpack_require__(4402).has);\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 3463\n(module) {\n\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n\n\n/***/ },\n\n/***/ 4328\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar WeakMapHelpers = __webpack_require__(4995);\n\nvar weakmap = new WeakMapHelpers.WeakMap();\nvar set = WeakMapHelpers.set;\nvar remove = WeakMapHelpers.remove;\n\nmodule.exports = function (key) {\n set(weakmap, key, 1);\n remove(weakmap, key);\n return key;\n};\n\n\n/***/ },\n\n/***/ 6557\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar has = (__webpack_require__(4995).has);\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 6469\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar wellKnownSymbol = __webpack_require__(608);\nvar create = __webpack_require__(2360);\nvar defineProperty = (__webpack_require__(4913).f);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ },\n\n/***/ 679\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isPrototypeOf = __webpack_require__(1625);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n\n\n/***/ },\n\n/***/ 3972\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (argument === undefined || isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n\n\n/***/ },\n\n/***/ 8551\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n\n\n/***/ },\n\n/***/ 4154\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n if (classof(argument) === 'Uint8Array') return argument;\n throw new $TypeError('Argument is not an Uint8Array');\n};\n\n\n/***/ },\n\n/***/ 7811\n(module) {\n\n\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n\n\n/***/ },\n\n/***/ 7394\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar classof = __webpack_require__(2195);\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n\n\n/***/ },\n\n/***/ 3238\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(7811);\nvar arrayBufferByteLength = __webpack_require__(7394);\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n try {\n // eslint-disable-next-line no-new -- thrower\n new DataView(O);\n return false;\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ },\n\n/***/ 5169\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isDetached = __webpack_require__(3238);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n\n\n/***/ },\n\n/***/ 5636\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar toIndex = __webpack_require__(7696);\nvar notDetached = __webpack_require__(5169);\nvar arrayBufferByteLength = __webpack_require__(7394);\nvar detachTransferable = __webpack_require__(4483);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar max = Math.max;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength\n ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }\n : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n\n\n/***/ },\n\n/***/ 4644\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(7811);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar globalThis = __webpack_require__(4576);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar hasOwn = __webpack_require__(9297);\nvar classof = __webpack_require__(6955);\nvar tryToString = __webpack_require__(6823);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar defineBuiltIn = __webpack_require__(6840);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar isPrototypeOf = __webpack_require__(1625);\nvar getPrototypeOf = __webpack_require__(2787);\nvar setPrototypeOf = __webpack_require__(2967);\nvar wellKnownSymbol = __webpack_require__(608);\nvar uid = __webpack_require__(3392);\nvar InternalStateModule = __webpack_require__(1181);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ },\n\n/***/ 5370\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar lengthOfArrayLike = __webpack_require__(6198);\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\n\n/***/ },\n\n/***/ 9617\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIndexedObject = __webpack_require__(5397);\nvar toAbsoluteIndex = __webpack_require__(5610);\nvar lengthOfArrayLike = __webpack_require__(6198);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ },\n\n/***/ 4527\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar isArray = __webpack_require__(4376);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n\n\n/***/ },\n\n/***/ 7680\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nmodule.exports = uncurryThis([].slice);\n\n\n/***/ },\n\n/***/ 2804\n(module) {\n\n\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n // TODO: use `Object.create(null)` in `core-js@4`\n var result = {};\n var index = 0;\n for (; index < 64; index++) result[characters.charAt(index)] = index;\n return result;\n};\n\nmodule.exports = {\n i2c: base64Alphabet,\n c2i: inverse(base64Alphabet),\n i2cUrl: base64UrlAlphabet,\n c2iUrl: inverse(base64UrlAlphabet)\n};\n\n\n/***/ },\n\n/***/ 6319\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar anObject = __webpack_require__(8551);\nvar iteratorClose = __webpack_require__(9539);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n\n\n/***/ },\n\n/***/ 2195\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ },\n\n/***/ 6955\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(2140);\nvar isCallable = __webpack_require__(4901);\nvar classofRaw = __webpack_require__(2195);\nvar wellKnownSymbol = __webpack_require__(608);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ },\n\n/***/ 7740\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar hasOwn = __webpack_require__(9297);\nvar ownKeys = __webpack_require__(5031);\nvar getOwnPropertyDescriptorModule = __webpack_require__(7347);\nvar definePropertyModule = __webpack_require__(4913);\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\n\n/***/ },\n\n/***/ 2211\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ },\n\n/***/ 2529\n(module) {\n\n\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n\n\n/***/ },\n\n/***/ 6699\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar definePropertyModule = __webpack_require__(4913);\nvar createPropertyDescriptor = __webpack_require__(6980);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ },\n\n/***/ 6980\n(module) {\n\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ },\n\n/***/ 4659\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar definePropertyModule = __webpack_require__(4913);\nvar createPropertyDescriptor = __webpack_require__(6980);\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n\n\n/***/ },\n\n/***/ 2106\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar makeBuiltIn = __webpack_require__(283);\nvar defineProperty = __webpack_require__(4913);\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n\n\n/***/ },\n\n/***/ 6840\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\nvar definePropertyModule = __webpack_require__(4913);\nvar makeBuiltIn = __webpack_require__(283);\nvar defineGlobalProperty = __webpack_require__(9433);\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n\n\n/***/ },\n\n/***/ 6279\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar defineBuiltIn = __webpack_require__(6840);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n\n\n/***/ },\n\n/***/ 9433\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n\n\n/***/ },\n\n/***/ 3724\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n\n\n/***/ },\n\n/***/ 4483\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar getBuiltInNodeModule = __webpack_require__(9429);\nvar PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n\n\n/***/ },\n\n/***/ 4055\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar isObject = __webpack_require__(34);\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ },\n\n/***/ 6837\n(module) {\n\n\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n return it;\n};\n\n\n/***/ },\n\n/***/ 5002\n(module) {\n\n\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n\n\n/***/ },\n\n/***/ 8727\n(module) {\n\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ },\n\n/***/ 6193\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar ENVIRONMENT = __webpack_require__(4215);\n\nmodule.exports = ENVIRONMENT === 'NODE';\n\n\n/***/ },\n\n/***/ 2839\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n\n\n/***/ },\n\n/***/ 9519\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar userAgent = __webpack_require__(2839);\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n\n\n/***/ },\n\n/***/ 4215\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* global Bun, Deno -- detection */\nvar globalThis = __webpack_require__(4576);\nvar userAgent = __webpack_require__(2839);\nvar classof = __webpack_require__(2195);\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n\n\n/***/ },\n\n/***/ 8574\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable, sonarjs/slow-regex -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n\n\n/***/ },\n\n/***/ 6518\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar getOwnPropertyDescriptor = (__webpack_require__(7347).f);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar defineBuiltIn = __webpack_require__(6840);\nvar defineGlobalProperty = __webpack_require__(9433);\nvar copyConstructorProperties = __webpack_require__(7740);\nvar isForced = __webpack_require__(2796);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ },\n\n/***/ 9039\n(module) {\n\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ },\n\n/***/ 8745\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n\n\n/***/ },\n\n/***/ 6080\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(7476);\nvar aCallable = __webpack_require__(9306);\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ },\n\n/***/ 616\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () { /* empty */ }.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n/***/ },\n\n/***/ 9565\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n\n/***/ },\n\n/***/ 350\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar hasOwn = __webpack_require__(9297);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() { /* empty */ }.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ },\n\n/***/ 6706\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar aCallable = __webpack_require__(9306);\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n\n\n/***/ },\n\n/***/ 7476\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classofRaw = __webpack_require__(2195);\nvar uncurryThis = __webpack_require__(9504);\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n/***/ },\n\n/***/ 9504\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_BIND = __webpack_require__(616);\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n\n\n/***/ },\n\n/***/ 944\n(module) {\n\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n var alphabet = options && options.alphabet;\n if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n throw new $TypeError('Incorrect `alphabet` option');\n};\n\n\n/***/ },\n\n/***/ 9429\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar IS_NODE = __webpack_require__(6193);\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n\n\n/***/ },\n\n/***/ 7751\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar isCallable = __webpack_require__(4901);\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n\n\n/***/ },\n\n/***/ 1767\n(module) {\n\n\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n\n\n/***/ },\n\n/***/ 8646\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar getIteratorMethod = __webpack_require__(851);\n\nmodule.exports = function (obj, stringHandling) {\n if (!stringHandling || typeof obj !== 'string') anObject(obj);\n var method = getIteratorMethod(obj);\n return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));\n};\n\n\n/***/ },\n\n/***/ 851\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\nvar getMethod = __webpack_require__(5966);\nvar isNullOrUndefined = __webpack_require__(4117);\nvar Iterators = __webpack_require__(6269);\nvar wellKnownSymbol = __webpack_require__(608);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n\n\n/***/ },\n\n/***/ 81\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar tryToString = __webpack_require__(6823);\nvar getIteratorMethod = __webpack_require__(851);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n/***/ },\n\n/***/ 5966\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aCallable = __webpack_require__(9306);\nvar isNullOrUndefined = __webpack_require__(4117);\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n/***/ },\n\n/***/ 3789\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar call = __webpack_require__(9565);\nvar toIntegerOrInfinity = __webpack_require__(1291);\nvar getIteratorDirect = __webpack_require__(1767);\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n\n\n/***/ },\n\n/***/ 4576\n(module) {\n\n\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ },\n\n/***/ 9297\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar toObject = __webpack_require__(8981);\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ },\n\n/***/ 421\n(module) {\n\n\nmodule.exports = {};\n\n\n/***/ },\n\n/***/ 397\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ },\n\n/***/ 5917\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar fails = __webpack_require__(9039);\nvar createElement = __webpack_require__(4055);\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n\n\n/***/ },\n\n/***/ 7055\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar fails = __webpack_require__(9039);\nvar classof = __webpack_require__(2195);\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n/***/ },\n\n/***/ 3167\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar setPrototypeOf = __webpack_require__(2967);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ },\n\n/***/ 3706\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar isCallable = __webpack_require__(4901);\nvar store = __webpack_require__(7629);\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ },\n\n/***/ 1181\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar NATIVE_WEAK_MAP = __webpack_require__(8622);\nvar globalThis = __webpack_require__(4576);\nvar isObject = __webpack_require__(34);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar hasOwn = __webpack_require__(9297);\nvar shared = __webpack_require__(7629);\nvar sharedKey = __webpack_require__(6119);\nvar hiddenKeys = __webpack_require__(421);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ },\n\n/***/ 4209\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar wellKnownSymbol = __webpack_require__(608);\nvar Iterators = __webpack_require__(6269);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ },\n\n/***/ 4376\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(2195);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n\n\n/***/ },\n\n/***/ 1108\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n\n\n/***/ },\n\n/***/ 4901\n(module) {\n\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n\n\n/***/ },\n\n/***/ 2796\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\nvar isCallable = __webpack_require__(4901);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ },\n\n/***/ 4117\n(module) {\n\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n\n\n/***/ },\n\n/***/ 34\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isCallable = __webpack_require__(4901);\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ },\n\n/***/ 3925\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n\n\n/***/ },\n\n/***/ 6395\n(module) {\n\n\nmodule.exports = false;\n\n\n/***/ },\n\n/***/ 5810\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isObject = __webpack_require__(34);\nvar getInternalState = (__webpack_require__(1181).get);\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n\n\n/***/ },\n\n/***/ 757\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\nvar isCallable = __webpack_require__(4901);\nvar isPrototypeOf = __webpack_require__(1625);\nvar USE_SYMBOL_AS_UID = __webpack_require__(7040);\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n/***/ },\n\n/***/ 507\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n\n\n/***/ },\n\n/***/ 2652\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar bind = __webpack_require__(6080);\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar tryToString = __webpack_require__(6823);\nvar isArrayIteratorMethod = __webpack_require__(4209);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar isPrototypeOf = __webpack_require__(1625);\nvar getIterator = __webpack_require__(81);\nvar getIteratorMethod = __webpack_require__(851);\nvar iteratorClose = __webpack_require__(9539);\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n var $iterator = iterator;\n iterator = undefined;\n if ($iterator) iteratorClose($iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n // `IteratorValue` errors should propagate without closing the iterator\n var value = step.value;\n try {\n result = callFn(value);\n } catch (error) {\n if (iterator) iteratorClose(iterator, 'throw', error);\n else throw error;\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n\n\n/***/ },\n\n/***/ 1385\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar iteratorClose = __webpack_require__(9539);\n\nmodule.exports = function (iters, kind, value) {\n for (var i = iters.length - 1; i >= 0; i--) {\n if (iters[i] === undefined) continue;\n try {\n value = iteratorClose(iters[i].iterator, kind, value);\n } catch (error) {\n kind = 'throw';\n value = error;\n }\n }\n if (kind === 'throw') throw value;\n return value;\n};\n\n\n/***/ },\n\n/***/ 9539\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getMethod = __webpack_require__(5966);\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n\n/***/ },\n\n/***/ 9462\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar create = __webpack_require__(2360);\nvar createNonEnumerableProperty = __webpack_require__(6699);\nvar defineBuiltIns = __webpack_require__(6279);\nvar wellKnownSymbol = __webpack_require__(608);\nvar InternalStateModule = __webpack_require__(1181);\nvar getMethod = __webpack_require__(5966);\nvar IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);\nvar createIterResultObject = __webpack_require__(2529);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorCloseAll = __webpack_require__(1385);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n var done = state.done;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (done) return createIterResultObject(undefined, true);\n if (state.inner) try {\n iteratorClose(state.inner.iterator, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (state.openIters) try {\n iteratorCloseAll(state.openIters, NORMAL);\n } catch (error) {\n if (iterator) return iteratorClose(iterator, THROW, error);\n throw error;\n }\n if (iterator) iteratorClose(iterator, NORMAL);\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n\n\n/***/ },\n\n/***/ 684\n(module) {\n\n\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n // eslint-disable-next-line es/no-iterator -- required for testing\n var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n if (method) try {\n method.call({ next: null }, argument).next();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ },\n\n/***/ 4549\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n var Iterator = globalThis.Iterator;\n var IteratorPrototype = Iterator && Iterator.prototype;\n var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n var CLOSED = false;\n\n if (method) try {\n method.call({\n next: function () { return { done: true }; },\n 'return': function () { CLOSED = true; }\n }, -1);\n } catch (error) {\n // https://bugs.webkit.org/show_bug.cgi?id=291195\n if (!(error instanceof ExpectedError)) CLOSED = false;\n }\n\n if (!CLOSED) return method;\n};\n\n\n/***/ },\n\n/***/ 7657\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar create = __webpack_require__(2360);\nvar getPrototypeOf = __webpack_require__(2787);\nvar defineBuiltIn = __webpack_require__(6840);\nvar wellKnownSymbol = __webpack_require__(608);\nvar IS_PURE = __webpack_require__(6395);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ },\n\n/***/ 6269\n(module) {\n\n\nmodule.exports = {};\n\n\n/***/ },\n\n/***/ 6198\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toLength = __webpack_require__(8014);\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n\n/***/ },\n\n/***/ 283\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar fails = __webpack_require__(9039);\nvar isCallable = __webpack_require__(4901);\nvar hasOwn = __webpack_require__(9297);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(350).CONFIGURABLE);\nvar inspectSource = __webpack_require__(3706);\nvar InternalStateModule = __webpack_require__(1181);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n/***/ },\n\n/***/ 2248\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n\n\n/***/ },\n\n/***/ 741\n(module) {\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n\n/***/ },\n\n/***/ 7819\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable es/no-json -- safe */\nvar fails = __webpack_require__(9039);\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n // eslint-disable-next-line es/no-json-rawjson -- feature detection\n var raw = JSON.rawJSON(unsafeInt);\n // eslint-disable-next-line es/no-json-israwjson -- feature detection\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n\n\n/***/ },\n\n/***/ 6043\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aCallable = __webpack_require__(9306);\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ },\n\n/***/ 2603\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toString = __webpack_require__(655);\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n/***/ },\n\n/***/ 4149\n(module) {\n\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw new $RangeError('NaN is not allowed');\n};\n\n\n/***/ },\n\n/***/ 2360\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(8551);\nvar definePropertiesModule = __webpack_require__(6801);\nvar enumBugKeys = __webpack_require__(8727);\nvar hiddenKeys = __webpack_require__(421);\nvar html = __webpack_require__(397);\nvar documentCreateElement = __webpack_require__(4055);\nvar sharedKey = __webpack_require__(6119);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n/***/ },\n\n/***/ 6801\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);\nvar definePropertyModule = __webpack_require__(4913);\nvar anObject = __webpack_require__(8551);\nvar toIndexedObject = __webpack_require__(5397);\nvar objectKeys = __webpack_require__(1072);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n\n/***/ },\n\n/***/ 4913\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IE8_DOM_DEFINE = __webpack_require__(5917);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);\nvar anObject = __webpack_require__(8551);\nvar toPropertyKey = __webpack_require__(6969);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ },\n\n/***/ 7347\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar call = __webpack_require__(9565);\nvar propertyIsEnumerableModule = __webpack_require__(8773);\nvar createPropertyDescriptor = __webpack_require__(6980);\nvar toIndexedObject = __webpack_require__(5397);\nvar toPropertyKey = __webpack_require__(6969);\nvar hasOwn = __webpack_require__(9297);\nvar IE8_DOM_DEFINE = __webpack_require__(5917);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ },\n\n/***/ 8480\n(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar internalObjectKeys = __webpack_require__(1828);\nvar enumBugKeys = __webpack_require__(8727);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ },\n\n/***/ 3717\n(__unused_webpack_module, exports) {\n\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ },\n\n/***/ 2787\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar hasOwn = __webpack_require__(9297);\nvar isCallable = __webpack_require__(4901);\nvar toObject = __webpack_require__(8981);\nvar sharedKey = __webpack_require__(6119);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(2211);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n/***/ },\n\n/***/ 1625\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ },\n\n/***/ 1828\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar hasOwn = __webpack_require__(9297);\nvar toIndexedObject = __webpack_require__(5397);\nvar indexOf = (__webpack_require__(9617).indexOf);\nvar hiddenKeys = __webpack_require__(421);\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n\n/***/ },\n\n/***/ 1072\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar internalObjectKeys = __webpack_require__(1828);\nvar enumBugKeys = __webpack_require__(8727);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ },\n\n/***/ 8773\n(__unused_webpack_module, exports) {\n\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ },\n\n/***/ 2967\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar isObject = __webpack_require__(34);\nvar requireObjectCoercible = __webpack_require__(7750);\nvar aPossiblePrototype = __webpack_require__(3506);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ },\n\n/***/ 4270\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ },\n\n/***/ 5031\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\nvar uncurryThis = __webpack_require__(9504);\nvar getOwnPropertyNamesModule = __webpack_require__(8480);\nvar getOwnPropertySymbolsModule = __webpack_require__(3717);\nvar anObject = __webpack_require__(8551);\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ },\n\n/***/ 8235\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar hasOwn = __webpack_require__(9297);\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n\n\n/***/ },\n\n/***/ 1103\n(module) {\n\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ },\n\n/***/ 7750\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar isNullOrUndefined = __webpack_require__(4117);\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ },\n\n/***/ 9286\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar SetHelpers = __webpack_require__(4402);\nvar iterate = __webpack_require__(8469);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 3440\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar SetHelpers = __webpack_require__(4402);\nvar clone = __webpack_require__(9286);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSet = __webpack_require__(8469);\nvar iterateSimple = __webpack_require__(507);\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(result) <= otherRec.size) iterateSet(result, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(result, e)) remove(result, e);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 4402\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n\n\n/***/ },\n\n/***/ 8750\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar SetHelpers = __webpack_require__(4402);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSet = __webpack_require__(8469);\nvar iterateSimple = __webpack_require__(507);\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n\n\n/***/ },\n\n/***/ 4449\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar has = (__webpack_require__(4402).has);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSet = __webpack_require__(8469);\nvar iterateSimple = __webpack_require__(507);\nvar iteratorClose = __webpack_require__(9539);\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n }) !== false;\n};\n\n\n/***/ },\n\n/***/ 3838\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar size = __webpack_require__(5170);\nvar iterate = __webpack_require__(8469);\nvar getSetRecord = __webpack_require__(3789);\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n\n\n/***/ },\n\n/***/ 8527\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar has = (__webpack_require__(4402).has);\nvar size = __webpack_require__(5170);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSimple = __webpack_require__(507);\nvar iteratorClose = __webpack_require__(9539);\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n }) !== false;\n};\n\n\n/***/ },\n\n/***/ 8469\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\nvar iterateSimple = __webpack_require__(507);\nvar SetHelpers = __webpack_require__(4402);\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n\n\n/***/ },\n\n/***/ 4916\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar getBuiltIn = __webpack_require__(7751);\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n // also covered engines with\n // https://bugs.webkit.org/show_bug.cgi?id=272679\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set([1, 2]);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n\n\n/***/ },\n\n/***/ 9835\n(module) {\n\n\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n try {\n // eslint-disable-next-line es/no-set -- needed for test\n var baseSet = new Set();\n var setLike = {\n size: 0,\n has: function () { return true; },\n keys: function () {\n // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n return Object.defineProperty({}, 'next', {\n get: function () {\n baseSet.clear();\n baseSet.add(4);\n return function () {\n return { done: true };\n };\n }\n });\n }\n };\n var result = baseSet[METHOD_NAME](setLike);\n\n return result.size === 1 && result.values().next().value === 4;\n } catch (error) {\n return false;\n }\n};\n\n\n/***/ },\n\n/***/ 5170\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThisAccessor = __webpack_require__(6706);\nvar SetHelpers = __webpack_require__(4402);\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n\n\n/***/ },\n\n/***/ 3650\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar SetHelpers = __webpack_require__(4402);\nvar clone = __webpack_require__(9286);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSimple = __webpack_require__(507);\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 4204\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar aSet = __webpack_require__(7080);\nvar add = (__webpack_require__(4402).add);\nvar clone = __webpack_require__(9286);\nvar getSetRecord = __webpack_require__(3789);\nvar iterateSimple = __webpack_require__(507);\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n\n\n/***/ },\n\n/***/ 6119\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar shared = __webpack_require__(5745);\nvar uid = __webpack_require__(3392);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ },\n\n/***/ 7629\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar IS_PURE = __webpack_require__(6395);\nvar globalThis = __webpack_require__(4576);\nvar defineGlobalProperty = __webpack_require__(9433);\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.49.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n\n/***/ },\n\n/***/ 5745\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar store = __webpack_require__(7629);\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n\n\n/***/ },\n\n/***/ 1548\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar fails = __webpack_require__(9039);\nvar V8 = __webpack_require__(9519);\nvar ENVIRONMENT = __webpack_require__(4215);\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n\n\n/***/ },\n\n/***/ 4495\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(9519);\nvar fails = __webpack_require__(9039);\nvar globalThis = __webpack_require__(4576);\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ },\n\n/***/ 5610\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ },\n\n/***/ 5854\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toPrimitive = __webpack_require__(2777);\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n\n\n/***/ },\n\n/***/ 7696\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\nvar toLength = __webpack_require__(8014);\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n\n\n/***/ },\n\n/***/ 5397\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(7055);\nvar requireObjectCoercible = __webpack_require__(7750);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ },\n\n/***/ 1291\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar trunc = __webpack_require__(741);\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n/***/ },\n\n/***/ 8014\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ },\n\n/***/ 8981\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar requireObjectCoercible = __webpack_require__(7750);\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n\n/***/ },\n\n/***/ 9590\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toIntegerOrInfinity = __webpack_require__(1291);\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n\n\n/***/ },\n\n/***/ 2777\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar call = __webpack_require__(9565);\nvar isObject = __webpack_require__(34);\nvar isSymbol = __webpack_require__(757);\nvar getMethod = __webpack_require__(5966);\nvar ordinaryToPrimitive = __webpack_require__(4270);\nvar wellKnownSymbol = __webpack_require__(608);\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ },\n\n/***/ 6969\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar toPrimitive = __webpack_require__(2777);\nvar isSymbol = __webpack_require__(757);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n\n/***/ },\n\n/***/ 2140\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar wellKnownSymbol = __webpack_require__(608);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ },\n\n/***/ 655\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar classof = __webpack_require__(6955);\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n\n\n/***/ },\n\n/***/ 6823\n(module) {\n\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n/***/ },\n\n/***/ 3392\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ },\n\n/***/ 9143\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar anObjectOrUndefined = __webpack_require__(3972);\nvar aString = __webpack_require__(3463);\nvar hasOwn = __webpack_require__(9297);\nvar base64Map = __webpack_require__(2804);\nvar getAlphabetOption = __webpack_require__(944);\nvar notDetached = __webpack_require__(5169);\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n var length = string.length;\n for (;index < length; index++) {\n var chr = at(string, index);\n if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n var chunkLength = chunk.length;\n\n if (chunkLength < 4) {\n chunk += chunkLength === 2 ? 'AA' : 'A';\n }\n\n var triplet = (alphabet[at(chunk, 0)] << 18)\n + (alphabet[at(chunk, 1)] << 12)\n + (alphabet[at(chunk, 2)] << 6)\n + alphabet[at(chunk, 3)];\n\n var chunkBytes = [\n (triplet >> 16) & 255,\n (triplet >> 8) & 255,\n triplet & 255\n ];\n\n if (chunkLength === 2) {\n if (throwOnExtraBits && chunkBytes[1] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0]];\n }\n\n if (chunkLength === 3) {\n if (throwOnExtraBits && chunkBytes[2] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0], chunkBytes[1]];\n }\n\n return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n var elementsLength = elements.length;\n for (var index = 0; index < elementsLength; index++) {\n bytes[written + index] = elements[index];\n }\n return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n aString(string);\n anObjectOrUndefined(options);\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n throw new TypeError('Incorrect `lastChunkHandling` option');\n }\n\n if (into) notDetached(into.buffer);\n\n var stringLength = string.length;\n var bytes = into || [];\n var written = 0;\n var read = 0;\n var chunk = '';\n var index = 0;\n\n if (maxLength) while (true) {\n index = skipAsciiWhitespace(string, index);\n if (index === stringLength) {\n if (chunk.length > 0) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n if (lastChunkHandling === 'loose') {\n if (chunk.length === 1) {\n throw new SyntaxError('Malformed padding: exactly one additional character');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n } else {\n throw new SyntaxError('Missing padding');\n }\n }\n read = stringLength;\n break;\n }\n var chr = at(string, index);\n ++index;\n if (chr === '=') {\n if (chunk.length < 2) {\n throw new SyntaxError('Padding is too early');\n }\n index = skipAsciiWhitespace(string, index);\n if (chunk.length === 2) {\n if (index === stringLength) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n throw new SyntaxError('Malformed padding: only one =');\n }\n if (at(string, index) === '=') {\n ++index;\n index = skipAsciiWhitespace(string, index);\n }\n }\n if (index < stringLength) {\n throw new SyntaxError('Unexpected character after padding');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n read = stringLength;\n break;\n }\n if (!hasOwn(alphabet, chr)) {\n throw new SyntaxError('Unexpected character');\n }\n var remainingBytes = maxLength - written;\n if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n break;\n }\n\n chunk += chr;\n if (chunk.length === 4) {\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n chunk = '';\n read = index;\n if (written === maxLength) {\n break;\n }\n }\n }\n\n return { bytes: bytes, read: read, written: written };\n};\n\n\n/***/ },\n\n/***/ 2303\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar min = Math.min;\nvar stringMatch = uncurryThis(''.match);\n\nmodule.exports = function (string, into) {\n var stringLength = string.length;\n if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n var bytes = into || new Uint8Array(maxLength);\n var segments = stringMatch(string, /.{2}/g);\n var written = 0;\n for (; written < maxLength; written++) {\n var result = +('0x' + segments[written] + '0');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result !== result) {\n throw new SyntaxError('String should only contain hex characters');\n }\n bytes[written] = result >> 4;\n }\n return { bytes: bytes, read: written << 1 };\n};\n\n\n/***/ },\n\n/***/ 7416\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar fails = __webpack_require__(9039);\nvar wellKnownSymbol = __webpack_require__(608);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IS_PURE = __webpack_require__(6395);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'https://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'https://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('https://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\n});\n\n\n/***/ },\n\n/***/ 7040\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(4495);\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n\n\n/***/ },\n\n/***/ 8686\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar fails = __webpack_require__(9039);\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n\n\n/***/ },\n\n/***/ 2812\n(module) {\n\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n\n\n/***/ },\n\n/***/ 8622\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar isCallable = __webpack_require__(4901);\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n/***/ },\n\n/***/ 4995\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar uncurryThis = __webpack_require__(9504);\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n\n\n/***/ },\n\n/***/ 608\n(module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar globalThis = __webpack_require__(4576);\nvar shared = __webpack_require__(5745);\nvar hasOwn = __webpack_require__(9297);\nvar uid = __webpack_require__(3392);\nvar NATIVE_SYMBOL = __webpack_require__(4495);\nvar USE_SYMBOL_AS_UID = __webpack_require__(7040);\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ },\n\n/***/ 6573\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar isDetached = __webpack_require__(3238);\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n\n\n/***/ },\n\n/***/ 7936\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar $transfer = __webpack_require__(5636);\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n\n\n/***/ },\n\n/***/ 8100\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar $transfer = __webpack_require__(5636);\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n\n\n/***/ },\n\n/***/ 4423\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar $includes = (__webpack_require__(9617).includes);\nvar fails = __webpack_require__(9039);\nvar addToUnscopables = __webpack_require__(6469);\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// Safari 26.4- bug\nvar BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {\n // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection\n return [, 1].includes(undefined, 1);\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n\n\n/***/ },\n\n/***/ 4114\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar toObject = __webpack_require__(8981);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar setArrayLength = __webpack_require__(4527);\nvar doesNotExceedSafeInteger = __webpack_require__(6837);\nvar fails = __webpack_require__(9039);\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n\n\n/***/ },\n\n/***/ 8111\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar anInstance = __webpack_require__(679);\nvar anObject = __webpack_require__(8551);\nvar isCallable = __webpack_require__(4901);\nvar getPrototypeOf = __webpack_require__(2787);\nvar defineBuiltInAccessor = __webpack_require__(2106);\nvar createProperty = __webpack_require__(4659);\nvar fails = __webpack_require__(9039);\nvar hasOwn = __webpack_require__(9297);\nvar wellKnownSymbol = __webpack_require__(608);\nvar IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IS_PURE = __webpack_require__(6395);\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n\n\n/***/ },\n\n/***/ 9314\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar notANaN = __webpack_require__(4149);\nvar toPositiveInteger = __webpack_require__(9590);\nvar iteratorClose = __webpack_require__(9539);\nvar createIteratorProxy = __webpack_require__(9462);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar IS_PURE = __webpack_require__(6395);\n\nvar DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('drop', 0);\nvar dropWithoutClosingOnEarlyError = !IS_PURE && !DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('drop', RangeError);\n\nvar FORCED = IS_PURE || DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR || dropWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.drop\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n drop: function drop(limit) {\n anObject(this);\n var remaining;\n try {\n remaining = toPositiveInteger(notANaN(+limit));\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (dropWithoutClosingOnEarlyError) return call(dropWithoutClosingOnEarlyError, this, remaining);\n\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n\n\n/***/ },\n\n/***/ 1148\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n every: function every(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n\n\n/***/ },\n\n/***/ 2489\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar createIteratorProxy = __webpack_require__(9462);\nvar callWithSafeIterationClosing = __webpack_require__(6319);\nvar IS_PURE = __webpack_require__(6395);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });\nvar filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n filter: function filter(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n\n\n/***/ },\n\n/***/ 116\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar findWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('find', TypeError);\n\n// `Iterator.prototype.find` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.find\n$({ target: 'Iterator', proto: true, real: true, forced: findWithoutClosingOnEarlyError }, {\n find: function find(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n\n\n/***/ },\n\n/***/ 531\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar getIteratorFlattenable = __webpack_require__(8646);\nvar createIteratorProxy = __webpack_require__(9462);\nvar iteratorClose = __webpack_require__(9539);\nvar IS_PURE = __webpack_require__(6395);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\n// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2\n// https://bugs.webkit.org/show_bug.cgi?id=297532\nfunction throwsOnIteratorWithoutReturn() {\n try {\n // eslint-disable-next-line es/no-map, es/no-iterator, es/no-iterator-prototype-flatmap -- required for testing\n var it = Iterator.prototype.flatMap.call(new Map([[4, 5]]).entries(), function (v) { return v; });\n it.next();\n it['return']();\n } catch (error) {\n return true;\n }\n}\n\nvar FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE\n && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });\nvar flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);\n\nvar FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError\n || throwsOnIteratorWithoutReturn();\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n flatMap: function flatMap(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper,\n inner: null\n });\n }\n});\n\n\n/***/ },\n\n/***/ 7588\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n forEach: function forEach(fn) {\n anObject(this);\n try {\n aCallable(fn);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n\n\n/***/ },\n\n/***/ 1701\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar createIteratorProxy = __webpack_require__(9462);\nvar callWithSafeIterationClosing = __webpack_require__(6319);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar IS_PURE = __webpack_require__(6395);\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n map: function map(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n }\n});\n\n\n/***/ },\n\n/***/ 3579\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar iterate = __webpack_require__(2652);\nvar aCallable = __webpack_require__(9306);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n some: function some(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n\n\n/***/ },\n\n/***/ 4972\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar call = __webpack_require__(9565);\nvar anObject = __webpack_require__(8551);\nvar getIteratorDirect = __webpack_require__(1767);\nvar notANaN = __webpack_require__(4149);\nvar toPositiveInteger = __webpack_require__(9590);\nvar createIteratorProxy = __webpack_require__(9462);\nvar iteratorClose = __webpack_require__(9539);\nvar iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);\nvar iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);\nvar IS_PURE = __webpack_require__(6395);\n\nvar TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('take', 1);\nvar takeWithoutClosingOnEarlyError = !IS_PURE && !TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('take', RangeError);\n\nvar FORCED = IS_PURE || TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR || takeWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n if (!this.remaining--) {\n this.done = true;\n return iteratorClose(iterator, 'normal', undefined);\n }\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.take` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.take\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n take: function take(limit) {\n anObject(this);\n var remaining;\n try {\n remaining = toPositiveInteger(notANaN(+limit));\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (takeWithoutClosingOnEarlyError) return call(takeWithoutClosingOnEarlyError, this, remaining);\n\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: remaining\n });\n }\n});\n\n\n/***/ },\n\n/***/ 9112\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar globalThis = __webpack_require__(4576);\nvar getBuiltIn = __webpack_require__(7751);\nvar uncurryThis = __webpack_require__(9504);\nvar call = __webpack_require__(9565);\nvar isCallable = __webpack_require__(4901);\nvar isObject = __webpack_require__(34);\nvar isArray = __webpack_require__(4376);\nvar hasOwn = __webpack_require__(9297);\nvar toString = __webpack_require__(655);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar createProperty = __webpack_require__(4659);\nvar fails = __webpack_require__(9039);\nvar parseJSONString = __webpack_require__(8235);\nvar NATIVE_SYMBOL = __webpack_require__(4495);\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n var closed = false;\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n closed = true;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n closed = true;\n break;\n }\n }\n if (!closed) throw new SyntaxError('Unterminated object at: ' + i);\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n var closed = false;\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n closed = true;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n closed = true;\n break;\n }\n }\n if (!closed) throw new SyntaxError('Unterminated array at: ' + i);\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') {\n var fractionStartIndex = i + 1;\n i = this.skip(IS_DIGIT, fractionStartIndex);\n if (fractionStartIndex === i) throw new SyntaxError(\"Failed to parse number's fraction at: \" + i);\n }\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n\n\n/***/ },\n\n/***/ 3110\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar getBuiltIn = __webpack_require__(7751);\nvar apply = __webpack_require__(8745);\nvar call = __webpack_require__(9565);\nvar uncurryThis = __webpack_require__(9504);\nvar fails = __webpack_require__(9039);\nvar isArray = __webpack_require__(4376);\nvar isCallable = __webpack_require__(4901);\nvar isRawJSON = __webpack_require__(5810);\nvar isSymbol = __webpack_require__(757);\nvar classof = __webpack_require__(2195);\nvar toString = __webpack_require__(655);\nvar arraySlice = __webpack_require__(7680);\nvar parseJSONString = __webpack_require__(8235);\nvar uid = __webpack_require__(3392);\nvar NATIVE_SYMBOL = __webpack_require__(4495);\nvar NATIVE_RAW_JSON = __webpack_require__(7819);\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar numberToString = uncurryThis(1.1.toString);\n\nvar surrogates = /[\\uD800-\\uDFFF]/g;\nvar leadingSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar trailingSurrogates = /^[\\uDC00-\\uDFFF]$/;\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n} : $stringify;\n\nvar fixIllFormedJSON = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if (\n (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||\n (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))\n ) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar getReplacerFunction = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = stringifyWithProperSymbolsConversion(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);\n\n if (NATIVE_RAW_JSON) return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(json, i);\n if (chr === '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) === MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n\n\n/***/ },\n\n/***/ 2731\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar aCallable = __webpack_require__(9306);\nvar MapHelpers = __webpack_require__(2248);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n var hasKey = has(this, key);\n aCallable(callbackfn);\n if (hasKey) return get(this, key);\n // CanonicalizeKeyedCollectionKey\n if (key === 0 && 1 / key === -Infinity) key = 0;\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 5367\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar MapHelpers = __webpack_require__(2248);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(this, key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 3068\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\n// based on Shewchuk's algorithm for exactly floating point addition\n// adapted from https://github.com/tc39/proposal-math-sum/blob/3513d58323a1ae25560e8700aa5294500c6c9287/polyfill/polyfill.mjs\nvar $ = __webpack_require__(6518);\nvar uncurryThis = __webpack_require__(9504);\nvar iterate = __webpack_require__(2652);\n\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar $Infinity = Infinity;\nvar $NaN = NaN;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar push = uncurryThis([].push);\n\nvar POW_2_1023 = pow(2, 1023);\nvar MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740991\nvar MAX_DOUBLE = Number.MAX_VALUE; // 2 ** 1024 - 2 ** (1023 - 52) === 1.79769313486231570815e+308\nvar MAX_ULP = pow(2, 971); // 2 ** (1023 - 52) === 1.99584030953471981166e+292\n\nvar NOT_A_NUMBER = {};\nvar MINUS_INFINITY = {};\nvar PLUS_INFINITY = {};\nvar MINUS_ZERO = {};\nvar FINITE = {};\n\n// prerequisite: abs(x) >= abs(y)\nvar twosum = function (x, y) {\n var hi = x + y;\n var lo = y - (hi - x);\n return { hi: hi, lo: lo };\n};\n\n// `Math.sumPrecise` method\n// https://tc39.es/ecma262/#sec-math.sumprecise\n$({ target: 'Math', stat: true }, {\n // eslint-disable-next-line max-statements -- ok\n sumPrecise: function sumPrecise(items) {\n var numbers = [];\n var count = 0;\n var state = MINUS_ZERO;\n\n iterate(items, function (n) {\n if (++count > MAX_SAFE_INTEGER) throw new $RangeError('Maximum allowed index exceeded');\n if (typeof n != 'number') throw new $TypeError('Value is not a number');\n if (state !== NOT_A_NUMBER) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (n !== n) state = NOT_A_NUMBER;\n else if (n === $Infinity) state = state === MINUS_INFINITY ? NOT_A_NUMBER : PLUS_INFINITY;\n else if (n === -$Infinity) state = state === PLUS_INFINITY ? NOT_A_NUMBER : MINUS_INFINITY;\n else if ((n !== 0 || (1 / n) === $Infinity) && (state === MINUS_ZERO || state === FINITE)) {\n state = FINITE;\n push(numbers, n);\n }\n }\n });\n\n switch (state) {\n case NOT_A_NUMBER: return $NaN;\n case MINUS_INFINITY: return -$Infinity;\n case PLUS_INFINITY: return $Infinity;\n case MINUS_ZERO: return -0;\n }\n\n var partials = [];\n var overflow = 0; // conceptually 2 ** 1024 times this value; the final partial is biased by this amount\n var x, y, sum, hi, lo, tmp;\n\n for (var i = 0; i < numbers.length; i++) {\n x = numbers[i];\n var actuallyUsedPartials = 0;\n for (var j = 0; j < partials.length; j++) {\n y = partials[j];\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n if (abs(hi) === $Infinity) {\n var sign = hi === $Infinity ? 1 : -1;\n overflow += sign;\n\n x = (x - (sign * POW_2_1023)) - (sign * POW_2_1023);\n if (abs(x) < abs(y)) {\n tmp = x;\n x = y;\n y = tmp;\n }\n sum = twosum(x, y);\n hi = sum.hi;\n lo = sum.lo;\n }\n if (lo !== 0) partials[actuallyUsedPartials++] = lo;\n x = hi;\n }\n partials.length = actuallyUsedPartials;\n if (x !== 0) push(partials, x);\n }\n\n // compute the exact sum of partials, stopping once we lose precision\n var n = partials.length - 1;\n hi = 0;\n lo = 0;\n\n if (overflow !== 0) {\n var next = n >= 0 ? partials[n] : 0;\n n--;\n if (abs(overflow) > 1 || (overflow > 0 && next > 0) || (overflow < 0 && next < 0)) {\n return overflow > 0 ? $Infinity : -$Infinity;\n }\n // here we actually have to do the arithmetic\n // drop a factor of 2 so we can do it without overflow\n // assert(abs(overflow) === 1)\n sum = twosum(overflow * POW_2_1023, next / 2);\n hi = sum.hi;\n lo = sum.lo;\n lo *= 2;\n if (abs(2 * hi) === $Infinity) {\n // rounding to the maximum value\n if (hi > 0) {\n return (hi === POW_2_1023 && lo === -(MAX_ULP / 2) && n >= 0 && partials[n] < 0) ? MAX_DOUBLE : $Infinity;\n } return (hi === -POW_2_1023 && lo === (MAX_ULP / 2) && n >= 0 && partials[n] > 0) ? -MAX_DOUBLE : -$Infinity;\n }\n\n if (lo !== 0) {\n partials[++n] = lo;\n lo = 0;\n }\n\n hi *= 2;\n }\n\n while (n >= 0) {\n sum = twosum(hi, partials[n--]);\n hi = sum.hi;\n lo = sum.lo;\n if (lo !== 0) break;\n }\n\n if (n >= 0 && ((lo < 0 && partials[n] < 0) || (lo > 0 && partials[n] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y === x - hi) hi = x;\n }\n\n return hi;\n }\n});\n\n\n/***/ },\n\n/***/ 1689\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar apply = __webpack_require__(8745);\nvar slice = __webpack_require__(7680);\nvar newPromiseCapabilityModule = __webpack_require__(6043);\nvar aCallable = __webpack_require__(9306);\nvar perform = __webpack_require__(1103);\n\nvar Promise = globalThis.Promise;\n\nvar ACCEPT_ARGUMENTS = false;\n// Avoiding the use of polyfills of the previous iteration of this proposal\n// that does not accept arguments of the callback\nvar FORCED = !Promise || !Promise['try'] || perform(function () {\n Promise['try'](function (argument) {\n ACCEPT_ARGUMENTS = argument === 8;\n }, 8);\n}).error || !ACCEPT_ARGUMENTS;\n\n// `Promise.try` method\n// https://tc39.es/ecma262/#sec-promise.try\n$({ target: 'Promise', stat: true, forced: FORCED }, {\n 'try': function (callbackfn /* , ...args */) {\n var args = arguments.length > 1 ? slice(arguments, 1) : [];\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(function () {\n return apply(aCallable(callbackfn), undefined, args);\n });\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n\n\n/***/ },\n\n/***/ 4628\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar newPromiseCapabilityModule = __webpack_require__(6043);\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n\n\n/***/ },\n\n/***/ 7642\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar difference = __webpack_require__(3440);\nvar fails = __webpack_require__(9039);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n // https://bugs.webkit.org/show_bug.cgi?id=288595\n var setLike = {\n size: 1,\n has: function () { return true; },\n keys: function () {\n var index = 0;\n return {\n next: function () {\n var done = index++ > 1;\n if (baseSet.has(1)) baseSet.clear();\n return { done: done, value: 2 };\n }\n };\n }\n };\n // eslint-disable-next-line es/no-set -- testing\n var baseSet = new Set([1, 2, 3, 4]);\n // eslint-disable-next-line es/no-set-prototype-difference -- testing\n return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n difference: difference\n});\n\n\n/***/ },\n\n/***/ 8004\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar fails = __webpack_require__(9039);\nvar intersection = __webpack_require__(8750);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n\n\n/***/ },\n\n/***/ 3853\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar isDisjointFrom = __webpack_require__(4449);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n\n\n/***/ },\n\n/***/ 5876\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar isSubsetOf = __webpack_require__(3838);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n\n\n/***/ },\n\n/***/ 2475\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar isSupersetOf = __webpack_require__(8527);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n\n\n/***/ },\n\n/***/ 5024\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar symmetricDifference = __webpack_require__(3650);\nvar setMethodGetKeysBeforeCloning = __webpack_require__(9835);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n symmetricDifference: symmetricDifference\n});\n\n\n/***/ },\n\n/***/ 1698\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar union = __webpack_require__(4204);\nvar setMethodGetKeysBeforeCloning = __webpack_require__(9835);\nvar setMethodAcceptSetLike = __webpack_require__(4916);\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n union: union\n});\n\n\n/***/ },\n\n/***/ 9577\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar ArrayBufferViewCore = __webpack_require__(4644);\nvar isBigIntArray = __webpack_require__(1108);\nvar lengthOfArrayLike = __webpack_require__(6198);\nvar toIntegerOrInfinity = __webpack_require__(1291);\nvar toBigInt = __webpack_require__(5854);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n try {\n // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](-0.5, 1);\n } catch (error) {\n return true;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new (getTypedArrayConstructor(O))(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n\n\n/***/ },\n\n/***/ 5213\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar arrayFromConstructorAndList = __webpack_require__(5370);\nvar $fromBase64 = __webpack_require__(9143);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.fromBase64 || !function () {\n // Webkit not throw an error on odd length string\n try {\n Uint8Array.fromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n Uint8Array.fromBase64('', null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.fromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.frombase64\nif (Uint8Array) $({ target: 'Uint8Array', stat: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n fromBase64: function fromBase64(string /* , options */) {\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, null, 0x1FFFFFFFFFFFFF);\n return arrayFromConstructorAndList(Uint8Array, result.bytes);\n }\n});\n\n\n/***/ },\n\n/***/ 6632\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar $fromBase64 = __webpack_require__(9143);\nvar anUint8Array = __webpack_require__(4154);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {\n var target = new Uint8Array([255, 255, 255, 255, 255]);\n try {\n target.setFromBase64('', null);\n return;\n } catch (error) { /* empty */ }\n // Webkit not throw an error on odd length string\n try {\n target.setFromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n target.setFromBase64('MjYyZg===');\n } catch (error) {\n return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n }\n}();\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n setFromBase64: function setFromBase64(string /* , options */) {\n anUint8Array(this);\n\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n return { read: result.read, written: result.written };\n }\n});\n\n\n/***/ },\n\n/***/ 4226\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar aString = __webpack_require__(3463);\nvar anUint8Array = __webpack_require__(4154);\nvar notDetached = __webpack_require__(5169);\nvar $fromHex = __webpack_require__(2303);\n\n// Should not throw an error on length-tracking views over ResizableArrayBuffer\n// https://issues.chromium.org/issues/454630441\nfunction throwsOnLengthTrackingView() {\n try {\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing\n var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing\n new Uint8Array(rab).setFromHex('cafed00d');\n } catch (error) {\n return true;\n }\n}\n\n// `Uint8Array.prototype.setFromHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {\n setFromHex: function setFromHex(string) {\n anUint8Array(this);\n aString(string);\n notDetached(this.buffer);\n var read = $fromHex(string, this).read;\n return { read: read, written: read / 2 };\n }\n});\n\n\n/***/ },\n\n/***/ 9486\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar anObjectOrUndefined = __webpack_require__(3972);\nvar anUint8Array = __webpack_require__(4154);\nvar notDetached = __webpack_require__(5169);\nvar base64Map = __webpack_require__(2804);\nvar getAlphabetOption = __webpack_require__(944);\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {\n try {\n var target = new Uint8Array();\n target.toBase64(null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.prototype.toBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tobase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toBase64: function toBase64(/* options */) {\n var array = anUint8Array(this);\n var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var omitPadding = !!options && !!options.omitPadding;\n notDetached(this.buffer);\n\n var result = '';\n var i = 0;\n var length = array.length;\n var triplet;\n\n var at = function (shift) {\n return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n };\n\n for (; i + 2 < length; i += 3) {\n triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n result += at(3) + at(2) + at(1) + at(0);\n }\n if (i + 2 === length) {\n triplet = (array[i] << 16) + (array[i + 1] << 8);\n result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n } else if (i + 1 === length) {\n triplet = array[i] << 16;\n result += at(3) + at(2) + (omitPadding ? '' : '==');\n }\n\n return result;\n }\n});\n\n\n/***/ },\n\n/***/ 456\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar uncurryThis = __webpack_require__(9504);\nvar anUint8Array = __webpack_require__(4154);\nvar notDetached = __webpack_require__(5169);\n\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar $Array = Array;\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {\n try {\n var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n return target.toHex() === 'ffffffffffffffff';\n } catch (error) {\n return false;\n }\n})();\n\n// `Uint8Array.prototype.toHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tohex\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toHex: function toHex() {\n anUint8Array(this);\n notDetached(this.buffer);\n var result = $Array(this.length);\n for (var i = 0, length = this.length; i < length; i++) {\n var hex = numberToString(this[i], 16);\n result[i] = hex.length === 1 ? '0' + hex : hex;\n }\n return join(result, '');\n }\n});\n\n\n/***/ },\n\n/***/ 9452\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar aCallable = __webpack_require__(9306);\nvar aWeakMap = __webpack_require__(6557);\nvar aWeakKey = __webpack_require__(4328);\nvar WeakMapHelpers = __webpack_require__(4995);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\nvar FORCED = IS_PURE || !function () {\n try {\n // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing\n if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n } catch (error) {\n // FF144 Nightly - Beta 3 bug\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n return error instanceof TypeError;\n }\n}();\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n if (!IS_PURE) aWeakMap(this);\n aWeakKey(key);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 8454\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar WeakMapHelpers = __webpack_require__(4995);\nvar IS_PURE = __webpack_require__(6395);\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(this, key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n\n\n/***/ },\n\n/***/ 4979\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar globalThis = __webpack_require__(4576);\nvar getBuiltIn = __webpack_require__(7751);\nvar createPropertyDescriptor = __webpack_require__(6980);\nvar defineProperty = (__webpack_require__(4913).f);\nvar hasOwn = __webpack_require__(9297);\nvar anInstance = __webpack_require__(679);\nvar inheritIfRequired = __webpack_require__(3167);\nvar normalizeStringArgument = __webpack_require__(2603);\nvar DOMExceptionConstants = __webpack_require__(5002);\nvar clearErrorStack = __webpack_require__(8574);\nvar DESCRIPTORS = __webpack_require__(3724);\nvar IS_PURE = __webpack_require__(6395);\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(globalThis, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n\n\n/***/ },\n\n/***/ 4603\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar defineBuiltIn = __webpack_require__(6840);\nvar uncurryThis = __webpack_require__(9504);\nvar toString = __webpack_require__(655);\nvar validateArgumentsLength = __webpack_require__(2812);\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index];\n $delete(this, entry.key);\n index++;\n }\n index = 0;\n while (index < entriesLength) {\n entry = entries[index++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n\n\n/***/ },\n\n/***/ 7566\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar defineBuiltIn = __webpack_require__(6840);\nvar uncurryThis = __webpack_require__(9504);\nvar toString = __webpack_require__(655);\nvar validateArgumentsLength = __webpack_require__(2812);\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n\n\n/***/ },\n\n/***/ 8721\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar DESCRIPTORS = __webpack_require__(3724);\nvar uncurryThis = __webpack_require__(9504);\nvar defineBuiltInAccessor = __webpack_require__(2106);\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n\n\n/***/ },\n\n/***/ 5781\n(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\nvar $ = __webpack_require__(6518);\nvar getBuiltIn = __webpack_require__(7751);\nvar validateArgumentsLength = __webpack_require__(2812);\nvar toString = __webpack_require__(655);\nvar USE_NATIVE_URL = __webpack_require__(7416);\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-parse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n\n\n/***/ }\n\n/******/ });\n/************************************************************************/\n/******/ // The module cache\n/******/ var __webpack_module_cache__ = {};\n/******/ \n/******/ // The require function\n/******/ function __webpack_require__(moduleId) {\n/******/ \t// Check if module is in cache\n/******/ \tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \tif (cachedModule !== undefined) {\n/******/ \t\treturn cachedModule.exports;\n/******/ \t}\n/******/ \t// Create a new module (and put it into the cache)\n/******/ \tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t// no module.id needed\n/******/ \t\t// no module.loaded needed\n/******/ \t\texports: {}\n/******/ \t};\n/******/ \n/******/ \t// Execute the module function\n/******/ \t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \n/******/ \t// Return the exports of the module\n/******/ \treturn module.exports;\n/******/ }\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/************************************************************************/\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js\nvar es_array_includes = __webpack_require__(4423);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js\nvar es_array_push = __webpack_require__(4114);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.detached.js\nvar es_array_buffer_detached = __webpack_require__(6573);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer.js\nvar es_array_buffer_transfer = __webpack_require__(8100);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js\nvar es_array_buffer_transfer_to_fixed_length = __webpack_require__(7936);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert.js\nvar es_map_get_or_insert = __webpack_require__(5367);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert-computed.js\nvar es_map_get_or_insert_computed = __webpack_require__(2731);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.with.js\nvar es_typed_array_with = __webpack_require__(9577);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.set-from-base64.js\nvar es_uint8_array_set_from_base64 = __webpack_require__(6632);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.set-from-hex.js\nvar es_uint8_array_set_from_hex = __webpack_require__(4226);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.to-base64.js\nvar es_uint8_array_to_base64 = __webpack_require__(9486);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.to-hex.js\nvar es_uint8_array_to_hex = __webpack_require__(456);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.parse.js\nvar web_url_parse = __webpack_require__(5781);\n;// ./src/shared/util.js\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nconst BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];\nconst F32_BBOX_INIT = new Float32Array(BBOX_INIT);\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\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 POPUP: 16,\n SIGNATURE: 101,\n COMMENT: 102\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 INK_COLOR_AND_OPACITY: 24,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_THICKNESS: 32,\n HIGHLIGHT_FREE: 33,\n HIGHLIGHT_SHOW_ALL: 34,\n DRAW_STEP: 41\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 MeshFigureType = {\n TRIANGLES: 1,\n LATTICE: 2,\n PATCH: 3\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 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 rawFillPath: 94\n};\nconst DrawOPS = {\n moveTo: 0,\n lineTo: 1,\n curveTo: 2,\n quadraticCurveTo: 3,\n closePath: 4\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.info(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.warn(`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 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 ? URL.parse(url, baseUrl) : URL.parse(url);\n return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;\n}\nfunction updateUrlHash(url, hash, allowRel = false) {\n const res = URL.parse(url);\n if (res) {\n res.hash = hash;\n return res.href;\n }\n if (allowRel && createValidAbsoluteUrl(url, \"http://example.com\")) {\n return url.split(\"#\", 1)[0] + `${hash ? `#${hash}` : \"\"}`;\n }\n return \"\";\n}\nfunction stripPath(str) {\n return str.substring(str.lastIndexOf(\"/\") + 1);\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 ResponseException extends BaseException {\n constructor(msg, status, missing) {\n super(msg, \"ResponseException\");\n this.status = status;\n this.missing = missing;\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 objectSize(obj) {\n return Object.keys(obj).length;\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}\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get isImageDecoderSupported() {\n return shadow(this, \"isImageDecoderSupported\", typeof ImageDecoder !== \"undefined\");\n }\n static get isFloat16ArraySupported() {\n return shadow(this, \"isFloat16ArraySupported\", typeof Float16Array !== \"undefined\");\n }\n static get isSanitizerSupported() {\n return shadow(this, \"isSanitizerSupported\", typeof Sanitizer !== \"undefined\");\n }\n static get platform() {\n const {\n platform,\n userAgent\n } = navigator;\n return shadow(this, \"platform\", {\n isAndroid: userAgent.includes(\"Android\"),\n isLinux: platform.includes(\"Linux\"),\n isMac: platform.includes(\"Mac\"),\n isWindows: platform.includes(\"Win\"),\n isFirefox: userAgent.includes(\"Firefox\")\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n static get isAlphaColorInputSupported() {\n return shadow(this, \"isAlphaColorInputSupported\", (() => {\n if (typeof document === \"undefined\") {\n return false;\n }\n const input = document.createElement(\"input\");\n input.type = \"color\";\n input.setAttribute(\"alpha\", \"\");\n input.value = \"#ff000080\";\n return input.value !== \"#ff0000\";\n })());\n }\n}\nclass Util {\n static get hexNums() {\n return shadow(this, \"hexNums\", Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\")));\n }\n static makeHexColor(r, g, b) {\n return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;\n }\n static domMatrixToTransform(dm) {\n return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];\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 multiplyByDOMMatrix(m, md) {\n return [m[0] * md.a + m[2] * md.b, m[1] * md.a + m[3] * md.b, m[0] * md.c + m[2] * md.d, m[1] * md.c + m[3] * md.d, m[0] * md.e + m[2] * md.f + m[4], m[1] * md.e + m[3] * md.f + m[5]];\n }\n static applyTransform(p, m, pos = 0) {\n const p0 = p[pos];\n const p1 = p[pos + 1];\n p[pos] = p0 * m[0] + p1 * m[2] + m[4];\n p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];\n }\n static applyTransformToBezier(p, transform, pos = 0) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n for (let i = 0; i < 6; i += 2) {\n const pI = p[pos + i];\n const pI1 = p[pos + i + 1];\n p[pos + i] = pI * m0 + pI1 * m2 + m4;\n p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;\n }\n }\n static applyInverseTransform(p, m) {\n const p0 = p[0];\n const p1 = p[1];\n const d = m[0] * m[3] - m[1] * m[2];\n p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n }\n static axialAlignedBoundingBox(rect, transform, output) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n const r0 = rect[0];\n const r1 = rect[1];\n const r2 = rect[2];\n const r3 = rect[3];\n let a0 = m0 * r0 + m4;\n let a2 = a0;\n let a1 = m0 * r2 + m4;\n let a3 = a1;\n let b0 = m3 * r1 + m5;\n let b2 = b0;\n let b1 = m3 * r3 + m5;\n let b3 = b1;\n if (m1 !== 0 || m2 !== 0) {\n const m1r0 = m1 * r0;\n const m1r2 = m1 * r2;\n const m2r1 = m2 * r1;\n const m2r3 = m2 * r3;\n a0 += m2r1;\n a3 += m2r1;\n a1 += m2r3;\n a2 += m2r3;\n b0 += m1r0;\n b3 += m1r0;\n b1 += m1r2;\n b2 += m1r2;\n }\n output[0] = Math.min(output[0], a0, a1, a2, a3);\n output[1] = Math.min(output[1], b0, b1, b2, b3);\n output[2] = Math.max(output[2], a0, a1, a2, a3);\n output[3] = Math.max(output[3], b0, b1, b2, b3);\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(matrix, output) {\n const m0 = matrix[0];\n const m1 = matrix[1];\n const m2 = matrix[2];\n const m3 = matrix[3];\n const a = m0 ** 2 + m1 ** 2;\n const b = m0 * m2 + m1 * m3;\n const c = m2 ** 2 + m3 ** 2;\n const first = (a + c) / 2;\n const second = Math.sqrt(first ** 2 - (a * c - b ** 2));\n output[0] = Math.sqrt(first + second || 1);\n output[1] = Math.sqrt(first - second || 1);\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 pointBoundingBox(x, y, minMax) {\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 rectBoundingBox(x0, y0, x1, y1, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x1);\n minMax[1] = Math.min(minMax[1], y0, y1);\n minMax[2] = Math.max(minMax[2], x0, x1);\n minMax[3] = Math.max(minMax[3], y0, y1);\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 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 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 }\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, keepEscapeSequence = false) {\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 (keepEscapeSequence || !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 (!keepEscapeSequence && 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 if (!(date instanceof Date)) {\n date = new Date(date);\n }\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.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n crypto.getRandomValues(buf);\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nfunction _isValidExplicitDest(validRef, validName, dest) {\n if (!Array.isArray(dest) || dest.length < 2) {\n return false;\n }\n const [page, zoom, ...args] = dest;\n if (!validRef(page) && !Number.isInteger(page)) {\n return false;\n }\n if (!validName(zoom)) {\n return false;\n }\n const argsLen = args.length;\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (argsLen < 2 || argsLen > 3) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return argsLen === 0;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (argsLen > 1) {\n return false;\n }\n break;\n case \"FitR\":\n if (argsLen !== 4) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (const arg of args) {\n if (typeof arg === \"number\" || allowNull && arg === null) {\n continue;\n }\n return false;\n }\n return true;\n}\nconst makeArr = () => [];\nconst makeMap = () => new Map();\nconst makeObj = () => Object.create(null);\nif (typeof Blob.prototype.bytes !== \"function\") {\n Blob.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\nif (typeof Response.prototype.bytes !== \"function\") {\n Response.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\nif (typeof AbortSignal.any !== \"function\") {\n AbortSignal.any = function (iterable) {\n const ac = new AbortController();\n const {\n signal\n } = ac;\n for (const s of iterable) {\n if (s.aborted) {\n ac.abort(s.reason);\n return signal;\n }\n }\n for (const s of iterable) {\n s.addEventListener(\"abort\", () => {\n ac.abort(s.reason);\n }, {\n signal\n });\n }\n return signal;\n };\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js\nvar es_iterator_constructor = __webpack_require__(8111);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js\nvar es_iterator_map = __webpack_require__(1701);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.delete.js\nvar web_url_search_params_delete = __webpack_require__(4603);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.has.js\nvar web_url_search_params_has = __webpack_require__(7566);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js\nvar web_url_search_params_size = __webpack_require__(8721);\n;// ./src/shared/math_clamp.js\nfunction MathClamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\n;// ./src/display/xfa_text.js\n\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/xfa_layer.js\n\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 (Object.hasOwn(option.attributes, \"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/display_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 \"blob\":\n return response.blob();\n case \"bytes\":\n return response.bytes();\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 === \"bytes\" ? \"arraybuffer\" : 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 \"bytes\":\n resolve(new Uint8Array(request.response));\n return;\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 userUnit,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.userUnit = userUnit;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n scale *= userUnit;\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 dims = this.viewBox;\n return shadow(this, \"rawDims\", {\n pageWidth: dims[2] - dims[0],\n pageHeight: dims[3] - dims[1],\n pageX: dims[0],\n pageY: dims[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 userUnit: this.userUnit,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n const p = [x, y];\n Util.applyTransform(p, this.transform);\n return p;\n }\n convertToViewportRectangle(rect) {\n const topLeft = [rect[0], rect[1]];\n Util.applyTransform(topLeft, this.transform);\n const bottomRight = [rect[2], rect[3]];\n Util.applyTransform(bottomRight, this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n const p = [x, y];\n Util.applyInverseTransform(p, this.transform);\n return p;\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 stripPath(url);\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 getURL = urlString => {\n try {\n return new URL(urlString);\n } catch {\n try {\n return new URL(decodeURIComponent(urlString));\n } catch {\n try {\n return new URL(urlString, \"https://foo.bar\");\n } catch {\n try {\n return new URL(decodeURIComponent(urlString), \"https://foo.bar\");\n } catch {\n return null;\n }\n }\n }\n }\n };\n const newURL = getURL(url);\n if (!newURL) {\n return defaultFilename;\n }\n const decode = name => {\n try {\n let decoded = decodeURIComponent(name);\n if (decoded.includes(\"/\")) {\n decoded = stripPath(decoded);\n if (/^\\.pdf$/i.test(decoded)) {\n return name;\n }\n }\n return decoded;\n } catch {\n return name;\n }\n };\n const pdfRegex = /\\.pdf$/i;\n const filename = stripPath(newURL.pathname);\n if (pdfRegex.test(filename)) {\n return decode(filename);\n }\n if (newURL.searchParams.size > 0) {\n const getLast = iterator => [...iterator].findLast(v => pdfRegex.test(v));\n const name = getLast(newURL.searchParams.values()) ?? getLast(newURL.searchParams.keys());\n if (name) {\n return decode(name);\n }\n }\n if (newURL.hash) {\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const hashFilename = reFilename.exec(newURL.hash);\n if (hashFilename) {\n return decode(hashFilename[0]);\n }\n }\n return defaultFilename;\n}\nclass StatTimer {\n #started = new Map();\n times = [];\n time(name) {\n if (this.#started.has(name)) {\n warn(`Timer is already running for ${name}`);\n }\n this.#started.set(name, Date.now());\n }\n timeEnd(name) {\n if (!this.#started.has(name)) {\n warn(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.#started.get(name),\n end: Date.now()\n });\n this.#started.delete(name);\n }\n toString() {\n const longest = Math.max(...this.times.map(t => t.name.length));\n return this.times.map(t => `${t.name.padEnd(longest)} ${t.end - t.start}ms\\n`).join(\"\");\n }\n}\nfunction isValidFetchUrl(url, baseUrl) {\n const res = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n return /https?:/.test(res?.protocol ?? \"\");\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction stopEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nclass PDFDateString {\n static #regex;\n static toDateObject(input) {\n if (input instanceof Date) {\n return input;\n }\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, 10), parseInt(height, 10)];\n return new PageViewport({\n viewBox,\n userUnit: 1,\n scale,\n rotation\n });\n}\nfunction getRGBA(color) {\n if (color.startsWith(\"#\")) {\n const hex = color.slice(1);\n return [parseInt(hex.slice(0, 2), 16), parseInt(hex.slice(2, 4), 16), parseInt(hex.slice(4, 6), 16), hex.length >= 8 ? parseInt(hex.slice(6, 8), 16) / 255 : 1];\n }\n if (color.startsWith(\"rgb(\")) {\n const [r, g, b] = color.slice(4, -1).split(\",\").map(x => parseInt(x, 10));\n return [r, g, b, 1];\n }\n if (color.startsWith(\"rgba(\")) {\n const parts = color.slice(5, -1).split(\",\");\n return [parseInt(parts[0], 10), parseInt(parts[1], 10), parseInt(parts[2], 10), parseFloat(parts[3])];\n }\n const m = color.match(/^color\\(srgb\\s+([\\d.]+)\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+|none))?\\)$/);\n if (m) {\n return [Math.round(parseFloat(m[1]) * 255), Math.round(parseFloat(m[2]) * 255), Math.round(parseFloat(m[3]) * 255), m[4] !== undefined && m[4] !== \"none\" ? parseFloat(m[4]) : 1];\n }\n return null;\n}\nfunction getRGB(color) {\n const rgba = getRGBA(color);\n if (!rgba) {\n warn(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n }\n return rgba.slice(0, 3);\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n span.style.colorScheme = \"only light\";\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 = FeatureTest.isCSSRoundSupported;\n const w = `var(--total-scale-factor) * ${pageWidth}px`,\n h = `var(--total-scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(down, ${w}, var(--scale-round-x))` : `calc(${w})`,\n heightStr = useRound ? `round(down, ${h}, var(--scale-round-y))` : `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 {\n pixelRatio\n } = OutputScale;\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 limitCanvas(width, height, maxPixels, maxDim, capAreaFactor = -1) {\n let maxAreaScale = Infinity,\n maxWidthScale = Infinity,\n maxHeightScale = Infinity;\n maxPixels = OutputScale.capPixels(maxPixels, capAreaFactor);\n if (maxPixels > 0) {\n maxAreaScale = Math.sqrt(maxPixels / (width * height));\n }\n if (maxDim !== -1) {\n maxWidthScale = maxDim / width;\n maxHeightScale = maxDim / height;\n }\n const maxScale = Math.min(maxAreaScale, maxWidthScale, maxHeightScale);\n if (this.sx > maxScale || this.sy > maxScale) {\n this.sx = maxScale;\n this.sy = maxScale;\n return true;\n }\n return false;\n }\n static get pixelRatio() {\n return globalThis.devicePixelRatio || 1;\n }\n static capPixels(maxPixels, capAreaFactor) {\n if (capAreaFactor >= 0) {\n const winPixels = Math.ceil(window.screen.availWidth * window.screen.availHeight * this.pixelRatio ** 2 * (1 + capAreaFactor / 100));\n return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;\n }\n return maxPixels;\n }\n}\nconst SupportedImageMimeTypes = [\"image/apng\", \"image/avif\", \"image/bmp\", \"image/gif\", \"image/jpeg\", \"image/png\", \"image/svg+xml\", \"image/webp\", \"image/x-icon\"];\nclass ColorScheme {\n static get isDarkMode() {\n return shadow(this, \"isDarkMode\", !!window?.matchMedia?.(\"(prefers-color-scheme: dark)\").matches);\n }\n}\nclass CSSConstants {\n static get commentForegroundColor() {\n const element = document.createElement(\"span\");\n element.classList.add(\"comment\", \"sidebar\");\n const {\n style\n } = element;\n style.width = style.height = \"0\";\n style.display = \"none\";\n style.color = \"var(--comment-fg-color)\";\n document.body.append(element);\n const {\n color\n } = window.getComputedStyle(element);\n element.remove();\n return shadow(this, \"commentForegroundColor\", getRGB(color));\n }\n}\nfunction applyOpacity(color, opacity) {\n opacity = MathClamp(opacity ?? 1, 0, 1);\n const white = 255 * (1 - opacity);\n return color.map(c => Math.round(c * opacity + white));\n}\nfunction RGBToHSL(rgb, output) {\n const r = rgb[0] / 255;\n const g = rgb[1] / 255;\n const b = rgb[2] / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (max === min) {\n output[0] = output[1] = 0;\n } else {\n const d = max - min;\n output[1] = l < 0.5 ? d / (max + min) : d / (2 - max - min);\n switch (max) {\n case r:\n output[0] = ((g - b) / d + (g < b ? 6 : 0)) * 60;\n break;\n case g:\n output[0] = ((b - r) / d + 2) * 60;\n break;\n case b:\n output[0] = ((r - g) / d + 4) * 60;\n break;\n }\n }\n output[2] = l;\n}\nfunction HSLToRGB(hsl, output) {\n const h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(h / 60 % 2 - 1));\n const m = l - c / 2;\n switch (Math.floor(h / 60)) {\n case 0:\n output[0] = c + m;\n output[1] = x + m;\n output[2] = m;\n break;\n case 1:\n output[0] = x + m;\n output[1] = c + m;\n output[2] = m;\n break;\n case 2:\n output[0] = m;\n output[1] = c + m;\n output[2] = x + m;\n break;\n case 3:\n output[0] = m;\n output[1] = x + m;\n output[2] = c + m;\n break;\n case 4:\n output[0] = x + m;\n output[1] = m;\n output[2] = c + m;\n break;\n case 5:\n case 6:\n output[0] = c + m;\n output[1] = m;\n output[2] = x + m;\n break;\n }\n}\nfunction computeLuminance(x) {\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n}\nfunction contrastRatio(hsl1, hsl2, output) {\n HSLToRGB(hsl1, output);\n output.map(computeLuminance);\n const lum1 = 0.2126 * output[0] + 0.7152 * output[1] + 0.0722 * output[2];\n HSLToRGB(hsl2, output);\n output.map(computeLuminance);\n const lum2 = 0.2126 * output[0] + 0.7152 * output[1] + 0.0722 * output[2];\n return lum1 > lum2 ? (lum1 + 0.05) / (lum2 + 0.05) : (lum2 + 0.05) / (lum1 + 0.05);\n}\nconst contrastCache = new Map();\nfunction findContrastColor(baseColor, fixedColor) {\n const key = baseColor[0] + baseColor[1] * 0x100 + baseColor[2] * 0x10000 + fixedColor[0] * 0x1000000 + fixedColor[1] * 0x100000000 + fixedColor[2] * 0x10000000000;\n let cachedValue = contrastCache.get(key);\n if (cachedValue) {\n return cachedValue;\n }\n const array = new Float32Array(9);\n const output = array.subarray(0, 3);\n const baseHSL = array.subarray(3, 6);\n RGBToHSL(baseColor, baseHSL);\n const fixedHSL = array.subarray(6, 9);\n RGBToHSL(fixedColor, fixedHSL);\n const isFixedColorDark = fixedHSL[2] < 0.5;\n const minContrast = isFixedColorDark ? 12 : 4.5;\n baseHSL[2] = isFixedColorDark ? Math.sqrt(baseHSL[2]) : 1 - Math.sqrt(1 - baseHSL[2]);\n if (contrastRatio(baseHSL, fixedHSL, output) < minContrast) {\n let start, end;\n if (isFixedColorDark) {\n start = baseHSL[2];\n end = 1;\n } else {\n start = 0;\n end = baseHSL[2];\n }\n const PRECISION = 0.005;\n while (end - start > PRECISION) {\n const mid = baseHSL[2] = (start + end) / 2;\n if (isFixedColorDark === contrastRatio(baseHSL, fixedHSL, output) < minContrast) {\n start = mid;\n } else {\n end = mid;\n }\n }\n baseHSL[2] = isFixedColorDark ? end : start;\n }\n HSLToRGB(baseHSL, output);\n cachedValue = Util.makeHexColor(Math.round(output[0] * 255), Math.round(output[1] * 255), Math.round(output[2] * 255));\n contrastCache.set(key, cachedValue);\n return cachedValue;\n}\nfunction renderRichText({\n html,\n dir,\n className\n}, container) {\n const fragment = document.createDocumentFragment();\n if (typeof html === \"string\") {\n const p = document.createElement(\"p\");\n p.dir = dir || \"auto\";\n const lines = html.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 fragment.append(p);\n } else {\n XfaLayer.render({\n xfaHtml: html,\n div: fragment,\n intent: \"richText\"\n });\n }\n fragment.firstElementChild.classList.add(\"richText\", className);\n container.append(fragment);\n}\nfunction makePathFromDrawOPS(data) {\n const path = new Path2D();\n if (!data) {\n return path;\n }\n for (let i = 0, ii = data.length; i < ii;) {\n switch (data[i++]) {\n case DrawOPS.moveTo:\n path.moveTo(data[i++], data[i++]);\n break;\n case DrawOPS.lineTo:\n path.lineTo(data[i++], data[i++]);\n break;\n case DrawOPS.curveTo:\n path.bezierCurveTo(data[i++], data[i++], data[i++], data[i++], data[i++], data[i++]);\n break;\n case DrawOPS.quadraticCurveTo:\n path.quadraticCurveTo(data[i++], data[i++], data[i++], data[i++]);\n break;\n case DrawOPS.closePath:\n path.closePath();\n break;\n default:\n warn(`Unrecognized drawing path operator: ${data[i - 1]}`);\n break;\n }\n }\n return path;\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.take.js\nvar es_iterator_take = __webpack_require__(4972);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.with-resolvers.js\nvar es_promise_with_resolvers = __webpack_require__(4628);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js\nvar es_set_difference_v2 = __webpack_require__(7642);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js\nvar es_set_intersection_v2 = __webpack_require__(8004);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js\nvar es_set_is_disjoint_from_v2 = __webpack_require__(3853);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js\nvar es_set_is_subset_of_v2 = __webpack_require__(5876);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js\nvar es_set_is_superset_of_v2 = __webpack_require__(2475);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js\nvar es_set_symmetric_difference_v2 = __webpack_require__(5024);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js\nvar es_set_union_v2 = __webpack_require__(1698);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.get-or-insert.js\nvar es_weak_map_get_or_insert = __webpack_require__(8454);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.get-or-insert-computed.js\nvar es_weak_map_get_or_insert_computed = __webpack_require__(9452);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-exception.stack.js\nvar web_dom_exception_stack = __webpack_require__(4979);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js\nvar es_iterator_some = __webpack_require__(3579);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.stringify.js\nvar es_json_stringify = __webpack_require__(3110);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.drop.js\nvar es_iterator_drop = __webpack_require__(9314);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js\nvar es_iterator_every = __webpack_require__(1148);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.parse.js\nvar es_json_parse = __webpack_require__(9112);\n;// ./src/display/editor/toolbar.js\n\nclass EditorToolbar {\n #toolbar = null;\n #colorPicker = null;\n #editor;\n #buttons = null;\n #altText = null;\n #comment = null;\n #commentButtonDivider = null;\n #signatureDescriptionButton = 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 signature: \"pdfjs-editor-remove-signature-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 if (signal instanceof AbortSignal && !signal.aborted) {\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n editToolbar.addEventListener(\"pointerdown\", EditorToolbar.#pointerDown, {\n signal\n });\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 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 stopEvent(e);\n }\n #focusOut(e) {\n this.#editor._focusEventsAllowed = true;\n stopEvent(e);\n }\n #addListenersToElement(element) {\n const signal = this.#editor._uiManager._signal;\n if (!(signal instanceof AbortSignal) || signal.aborted) {\n return false;\n }\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 return true;\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 this.#comment?.shown();\n }\n addDeleteButton() {\n const {\n editorType,\n _uiManager\n } = this.#editor;\n const button = document.createElement(\"button\");\n button.classList.add(\"basic\", \"deleteButton\");\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", EditorToolbar.#l10nRemove[editorType]);\n if (this.#addListenersToElement(button)) {\n button.addEventListener(\"click\", e => {\n _uiManager.delete();\n }, {\n signal: _uiManager._signal\n });\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.append(button, this.#divider);\n this.#altText = altText;\n }\n addComment(comment, beforeElement = null) {\n if (this.#comment) {\n return;\n }\n const button = comment.renderForToolbar();\n if (!button) {\n return;\n }\n this.#addListenersToElement(button);\n const divider = this.#commentButtonDivider = this.#divider;\n if (!beforeElement) {\n this.#buttons.append(button, divider);\n } else {\n this.#buttons.insertBefore(button, beforeElement);\n this.#buttons.insertBefore(divider, beforeElement);\n }\n this.#comment = comment;\n comment.toolbar = this;\n }\n addColorPicker(colorPicker) {\n if (this.#colorPicker) {\n return;\n }\n this.#colorPicker = colorPicker;\n const button = colorPicker.renderButton();\n this.#addListenersToElement(button);\n this.#buttons.append(button, this.#divider);\n }\n async addEditSignatureButton(signatureManager) {\n const button = this.#signatureDescriptionButton = await signatureManager.renderEditButton(this.#editor);\n this.#addListenersToElement(button);\n this.#buttons.append(button, this.#divider);\n }\n removeButton(name) {\n switch (name) {\n case \"comment\":\n this.#comment?.removeToolbarCommentButton();\n this.#comment = null;\n this.#commentButtonDivider?.remove();\n this.#commentButtonDivider = null;\n break;\n }\n }\n async addButton(name, tool) {\n switch (name) {\n case \"colorPicker\":\n if (tool) {\n this.addColorPicker(tool);\n }\n break;\n case \"altText\":\n if (tool) {\n await this.addAltText(tool);\n }\n break;\n case \"editSignature\":\n if (tool) {\n await this.addEditSignatureButton(tool);\n }\n break;\n case \"delete\":\n this.addDeleteButton();\n break;\n case \"comment\":\n if (tool) {\n this.addComment(tool);\n }\n break;\n }\n }\n async addButtonBefore(name, tool, beforeSelector) {\n if (!tool && name === \"comment\") {\n return;\n }\n const beforeElement = this.#buttons.querySelector(beforeSelector);\n if (!beforeElement) {\n return;\n }\n if (name === \"comment\") {\n this.addComment(tool, beforeElement);\n }\n }\n updateEditSignatureButton(description) {\n if (this.#signatureDescriptionButton) {\n this.#signatureDescriptionButton.title = description;\n }\n }\n remove() {\n this.#toolbar.remove();\n this.#colorPicker?.destroy();\n this.#colorPicker = null;\n }\n}\nclass FloatingToolbar {\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 const signal = this.#uiManager._signal;\n if (signal instanceof AbortSignal && !signal.aborted) {\n editToolbar.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n }\n const buttons = this.#buttons = document.createElement(\"div\");\n buttons.className = \"buttons\";\n editToolbar.append(buttons);\n if (this.#uiManager.hasCommentManager()) {\n this.#makeButton(\"commentButton\", `pdfjs-comment-floating-button`, \"pdfjs-comment-floating-button-label\", () => {\n this.#uiManager.commentSelection(\"floating_button\");\n });\n }\n this.#makeButton(\"highlightButton\", `pdfjs-highlight-floating-button1`, \"pdfjs-highlight-floating-button-label\", () => {\n this.#uiManager.highlightSelection(\"floating_button\");\n });\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 #makeButton(buttonClass, l10nId, labelL10nId, clickHandler) {\n const button = document.createElement(\"button\");\n button.classList.add(\"basic\", buttonClass);\n button.tabIndex = 0;\n button.setAttribute(\"data-l10n-id\", l10nId);\n const span = document.createElement(\"span\");\n button.append(span);\n span.className = \"visuallyHidden\";\n span.setAttribute(\"data-l10n-id\", labelL10nId);\n const signal = this.#uiManager._signal;\n if (signal instanceof AbortSignal && !signal.aborted) {\n button.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n button.addEventListener(\"click\", clickHandler, {\n signal\n });\n }\n this.#buttons.append(button);\n }\n}\n\n;// ./src/display/editor/tools.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nclass CurrentPointers {\n static #pointerId = NaN;\n static #pointerIds = null;\n static #moveTimestamp = NaN;\n static #pointerType = null;\n static initializeAndAddPointerId(pointerId) {\n (CurrentPointers.#pointerIds ||= new Set()).add(pointerId);\n }\n static setPointer(pointerType, pointerId) {\n CurrentPointers.#pointerId ||= pointerId;\n CurrentPointers.#pointerType ??= pointerType;\n }\n static setTimeStamp(timeStamp) {\n CurrentPointers.#moveTimestamp = timeStamp;\n }\n static isSamePointerId(pointerId) {\n return CurrentPointers.#pointerId === pointerId;\n }\n static isSamePointerIdOrRemove(pointerId) {\n if (CurrentPointers.#pointerId === pointerId) {\n return true;\n }\n CurrentPointers.#pointerIds?.delete(pointerId);\n return false;\n }\n static isSamePointerType(pointerType) {\n return CurrentPointers.#pointerType === pointerType;\n }\n static isInitializedAndDifferentPointerType(pointerType) {\n return CurrentPointers.#pointerType !== null && !CurrentPointers.isSamePointerType(pointerType);\n }\n static isSameTimeStamp(timeStamp) {\n return CurrentPointers.#moveTimestamp === timeStamp;\n }\n static isUsingMultiplePointers() {\n return CurrentPointers.#pointerIds?.size >= 1;\n }\n static clearPointerType() {\n CurrentPointers.#pointerType = null;\n }\n static clearPointerIds() {\n CurrentPointers.#pointerId = NaN;\n CurrentPointers.#pointerIds = null;\n }\n static clearTimeStamp() {\n CurrentPointers.#moveTimestamp = NaN;\n }\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 warn(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 cleanType(type) {\n if (this.#position === -1) {\n return;\n }\n for (let i = this.#position; i >= 0; i--) {\n if (this.#commands[i].type !== type) {\n this.#commands.splice(i + 1, this.#position - i);\n this.#position = i;\n return;\n }\n }\n this.#commands.length = 0;\n this.#position = -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 } = 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 stopEvent(event);\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 #allEditableAnnotations = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #savedAllLayers = null;\n #altTextManager = null;\n #annotationStorage = null;\n #changedExistingAnnotations = null;\n #commandManager = new CommandManager();\n #commentManager = null;\n #copyPasteAC = null;\n #currentDrawingSession = null;\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n _editorUndoBar = null;\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 #floatingToolbar = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isPointerDown = false;\n #isWaiting = false;\n #keyboardManagerAC = null;\n #lastActiveElement = null;\n #mainHighlightColorPicker = null;\n #missingCanvases = null;\n #mlManager = null;\n #mode = AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #selectedTextNode = null;\n #signatureManager = null;\n #pageColors = null;\n #showAllStates = null;\n #pdfDocument = 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 #viewerAlert = 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, viewerAlert, altTextManager, commentManager, signatureManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, enableNewAltTextWhenAddingImage, mlManager, editorUndoBar, supportsPinchToZoom) {\n const signal = this._signal = this.#abortController.signal;\n this.#container = container;\n this.#viewer = viewer;\n this.#viewerAlert = viewerAlert;\n this.#altTextManager = altTextManager;\n this.#commentManager = commentManager;\n this.#signatureManager = signatureManager;\n this.#pdfDocument = pdfDocument;\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 window.addEventListener(\"pointerdown\", () => {\n this.#isPointerDown = true;\n }, {\n capture: true,\n signal\n });\n window.addEventListener(\"pointerup\", () => {\n this.#isPointerDown = false;\n }, {\n capture: true,\n signal\n });\n window.addEventListener(\"beforeunload\", this.#beforeUnload.bind(this), {\n capture: true,\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 this._editorUndoBar = editorUndoBar || null;\n this._supportsPinchToZoom = supportsPinchToZoom !== false;\n commentManager?.setSidebarUiManager(this);\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.#missingCanvases?.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager?.destroy();\n this.#commentManager?.destroy();\n this.#signatureManager?.destroy();\n this.#floatingToolbar?.hide();\n this.#floatingToolbar = null;\n this.#mainHighlightColorPicker?.destroy();\n this.#mainHighlightColorPicker = null;\n this.#allEditableAnnotations = 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 this._editorUndoBar?.destroy();\n this.#pdfDocument = null;\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 => {\n pair = pair.split(\"=\").map(x => x.trim());\n pair[1] = pair[1].toUpperCase();\n return pair;\n })) : null);\n }\n get highlightColors() {\n const {\n _highlightColors\n } = this;\n if (!_highlightColors) {\n return shadow(this, \"highlightColors\", null);\n }\n const map = new Map();\n const hasHCM = !!this.#pageColors;\n for (const [name, color] of _highlightColors) {\n const isNameForHCM = name.endsWith(\"_HCM\");\n if (hasHCM && isNameForHCM) {\n map.set(name.replace(\"_HCM\", \"\"), color);\n continue;\n }\n if (!hasHCM && !isNameForHCM) {\n map.set(name, color);\n }\n }\n return shadow(this, \"highlightColors\", map);\n }\n get highlightColorNames() {\n return shadow(this, \"highlightColorNames\", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null);\n }\n getNonHCMColor(color) {\n if (!this._highlightColors) {\n return color;\n }\n const colorName = this.highlightColorNames.get(color);\n return this._highlightColors.get(colorName) || color;\n }\n getNonHCMColorName(color) {\n return this.highlightColorNames.get(color) || color;\n }\n setCurrentDrawingSession(layer) {\n if (layer) {\n this.unselectAll();\n this.disableUserSelect(true);\n } else {\n this.disableUserSelect(false);\n }\n this.#currentDrawingSession = layer;\n }\n setMainHighlightColorPicker(colorPicker) {\n this.#mainHighlightColorPicker = colorPicker;\n }\n editAltText(editor, firstTime = false) {\n this.#altTextManager?.editAltText(this, editor, firstTime);\n }\n hasCommentManager() {\n return !!this.#commentManager;\n }\n editComment(editor, posX, posY, options) {\n this.#commentManager?.showDialog(this, editor, posX, posY, options);\n }\n selectComment(pageIndex, uid) {\n const layer = this.#allLayers.get(pageIndex);\n const editor = layer?.getEditorByUID(uid);\n editor?.toggleComment(true, true);\n }\n updateComment(editor) {\n this.#commentManager?.updateComment(editor.getData());\n }\n updatePopupColor(editor) {\n this.#commentManager?.updatePopupColor(editor);\n }\n removeComment(editor) {\n this.#commentManager?.removeComments([editor.uid]);\n }\n deleteComment(editor, savedData) {\n const undo = () => {\n editor.comment = savedData;\n };\n const cmd = () => {\n this._editorUndoBar?.show(undo, \"comment\");\n this.toggleComment(null);\n editor.comment = null;\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n toggleComment(editor, isSelected, visibility = undefined) {\n this.#commentManager?.toggleCommentPopup(editor, isSelected, visibility);\n }\n makeCommentColor(color, opacity) {\n return color && this.#commentManager?.makeCommentColor(color, opacity) || null;\n }\n getCommentDialogElement() {\n return this.#commentManager?.dialogElement || null;\n }\n async waitForEditorsRendered(pageNumber) {\n if (this.#allLayers.has(pageNumber - 1)) {\n return;\n }\n const {\n resolve,\n promise\n } = Promise.withResolvers();\n const onEditorsRendered = evt => {\n if (evt.pageNumber === pageNumber) {\n this._eventBus._off(\"editorsrendered\", onEditorsRendered);\n resolve();\n }\n };\n this._eventBus.on(\"editorsrendered\", onEditorsRendered);\n await promise;\n }\n getSignature(editor) {\n this.#signatureManager?.getSignature({\n uiManager: this,\n editor\n });\n }\n get signatureManager() {\n return this.#signatureManager;\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 deletePage(id) {\n for (const editor of this.getEditors(id)) {\n editor.remove();\n }\n this.#allLayers.delete(id);\n if (this.#currentPageIndex === id) {\n this.#currentPageIndex = 0;\n }\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 this.#currentDrawingSession?.onScaleChanging();\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 = \"\", comment = false) {\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 const editor = 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 if (comment) {\n editor?.editComment();\n }\n };\n if (isNoneMode) {\n this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback);\n return;\n }\n callback();\n }\n commentSelection(methodOfCreation = \"\") {\n this.highlightSelection(methodOfCreation, true);\n }\n #beforeUnload(e) {\n this.commitOrRemove();\n this.currentLayer?.endDrawingSession(false);\n }\n #displayFloatingToolbar() {\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.#floatingToolbar ||= new FloatingToolbar(this);\n this.#floatingToolbar.show(textLayer, boxes, this.direction === \"ltr\");\n }\n getAndRemoveDataFromAnnotationStorage(annotationId) {\n if (!this.#annotationStorage) {\n return null;\n }\n const key = `${AnnotationEditorPrefix}${annotationId}`;\n const storedValue = this.#annotationStorage.getRawValue(key);\n if (storedValue) {\n this.#annotationStorage.remove(key);\n }\n return storedValue;\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 a11yAlert(messageId, args = null) {\n const viewerAlert = this.#viewerAlert;\n if (!viewerAlert) {\n return;\n }\n viewerAlert.setAttribute(\"data-l10n-id\", messageId);\n if (args) {\n viewerAlert.setAttribute(\"data-l10n-args\", JSON.stringify(args));\n } else {\n viewerAlert.removeAttribute(\"data-l10n-args\");\n }\n }\n #selectionChange() {\n const selection = document.getSelection();\n if (!selection || selection.isCollapsed) {\n if (this.#selectedTextNode) {\n this.#floatingToolbar?.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.#floatingToolbar?.hide();\n this.#selectedTextNode = null;\n this.#dispatchUpdateStates({\n hasSelectedText: false\n });\n }\n return;\n }\n this.#floatingToolbar?.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 if (this.#isPointerDown) {\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 } else {\n activeLayer?.toggleDrawing(true);\n this.#onSelectEnd(\"main_toolbar\");\n }\n }\n }\n #onSelectEnd(methodOfCreation = \"\") {\n if (this.#mode === AnnotationEditorType.HIGHLIGHT) {\n this.highlightSelection(methodOfCreation);\n } else if (this.#enableHighlightFloatingButton) {\n this.#displayFloatingToolbar();\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.setEditingState(true);\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.setEditingState(false);\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 case \"commentSelection\":\n this.commentSelection(\"context_menu\");\n break;\n }\n }\n updatePageIndex(oldPageIndex, newPageIndex) {\n for (const editor of this.getEditors(oldPageIndex)) {\n editor.pageIndex = newPageIndex;\n }\n const layer = this.#savedAllLayers.get(oldPageIndex);\n if (layer) {\n layer.pageIndex = newPageIndex;\n this.#allLayers.set(newPageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n }\n startUpdatePages() {\n this.#savedAllLayers = new Map(this.#allLayers);\n this.#allLayers.clear();\n }\n endUpdatePages() {\n this.#savedAllLayers = null;\n }\n clonePage(pageIndex, newPageIndex) {\n for (const editor of this.getEditors(pageIndex)) {\n const serialized = editor.serialize(editor.mode !== AnnotationEditorType.HIGHLIGHT);\n if (!serialized) {\n continue;\n }\n serialized.pageIndex = newPageIndex;\n serialized.id = this.getId();\n serialized.isClone = true;\n delete serialized.popupRef;\n this.#annotationStorage.setValue(serialized.id, serialized);\n }\n }\n findClonesForPage(layer) {\n const promises = [];\n const {\n pageIndex\n } = layer;\n for (const [id, editor] of this.#annotationStorage) {\n if (editor.pageIndex === pageIndex && editor.isClone) {\n this.#annotationStorage.remove(id);\n promises.push(layer.deserialize(editor).then(deserializedEditor => {\n if (deserializedEditor) {\n deserializedEditor.isClone = true;\n layer.addOrRebuild(deserializedEditor);\n }\n }));\n }\n }\n return Promise.all(promises);\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"editingstateschanged\", {\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, isFromUser = false, isFromKeyboard = false, mustEnterInEditMode = false, editComment = 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.#currentDrawingSession?.commitOrRemove();\n if (this.#mode === AnnotationEditorType.POPUP) {\n this.#commentManager?.hideSidebar();\n }\n this.#commentManager?.destroyPopup();\n this.#mode = mode;\n if (mode === AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n for (const editor of this.#allEditors.values()) {\n editor.hideStandaloneCommentButton();\n }\n this._editorUndoBar?.hide();\n this.toggleComment(null);\n this.#updateModeCapability.resolve();\n return;\n }\n for (const editor of this.#allEditors.values()) {\n editor.addStandaloneCommentButton();\n }\n if (mode === AnnotationEditorType.SIGNATURE) {\n await this.#signatureManager?.loadSignatures();\n }\n if (isFromUser) {\n CurrentPointers.clearPointerType();\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 (mode === AnnotationEditorType.POPUP) {\n this.#allEditableAnnotations ||= await this.#pdfDocument.getAnnotationsByType(new Set(this.#editorTypes.map(editorClass => editorClass._editorType)));\n const elementIds = new Set();\n const allComments = [];\n for (const editor of this.#allEditors.values()) {\n const {\n annotationElementId,\n hasComment,\n deleted\n } = editor;\n if (annotationElementId) {\n elementIds.add(annotationElementId);\n }\n if (hasComment && !deleted) {\n allComments.push(editor.getData());\n }\n }\n for (const annotation of this.#allEditableAnnotations) {\n const {\n id,\n popupRef,\n contentsObj\n } = annotation;\n if (popupRef && contentsObj?.str && !elementIds.has(id) && !this.#deletedAnnotationsElementIds.has(id)) {\n allComments.push(annotation);\n }\n }\n this.#commentManager?.showSidebar(allComments);\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.uid === editId) {\n this.setSelected(editor);\n if (editComment) {\n editor.editComment();\n } else if (mustEnterInEditMode) {\n editor.enterInEditMode();\n } else {\n editor.focus();\n }\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(options) {\n if (options.mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n ...options\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n switch (type) {\n case AnnotationEditorParamsType.CREATE:\n this.currentLayer.addNewEditor(value);\n return;\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 if (this.hasSelection) {\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n } else {\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\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 for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n yield editor;\n }\n }\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 if (editor.annotationElementId) {\n this.#missingCanvases?.delete(editor.annotationElementId);\n }\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 updateUIForDefaultProperties(editorType) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\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 this.updateToolbar({\n mode: editor.mode,\n editId: editor.uid\n });\n this.#currentDrawingSession?.commitOrRemove();\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#commentManager?.destroyPopup();\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 this._editorUndoBar?.hide();\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 cleanUndoStack(type) {\n this.#commandManager.cleanType(type);\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 const drawingEditor = this.currentLayer?.endDrawingSession(true);\n if (!this.hasSelection && !drawingEditor) {\n return;\n }\n const editors = drawingEditor ? [drawingEditor] : [...this.#selectedEditors];\n const cmd = () => {\n this._editorUndoBar?.show(undo, editors.length === 1 ? editors[0].editorType : editors.length);\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.#currentDrawingSession?.commitOrRemove()) {\n return;\n }\n this.#commentManager?.destroyPopup();\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 editor.translationDone();\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n editor.translationDone();\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n editor.translationDone();\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 isEditingMode() {\n return this.#mode !== AnnotationEditorType.NONE;\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 setMissingCanvas(annotationId, annotationElementId, canvas) {\n const editor = this.#missingCanvases?.get(annotationId);\n if (!editor) {\n return;\n }\n editor.setCanvas(annotationElementId, canvas);\n this.#missingCanvases.delete(annotationId);\n }\n addMissingCanvas(annotationId, editor) {\n (this.#missingCanvases ||= new Map()).set(annotationId, editor);\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.getElementForAltText();\n element?.setAttribute(\"aria-describedby\", tooltip.id);\n }\n}\n\n;// ./src/display/editor/comment.js\n\nclass Comment {\n #commentStandaloneButton = null;\n #commentToolbarButton = null;\n #commentWasFromKeyBoard = false;\n #editor = null;\n #initialText = null;\n #richText = null;\n #text = null;\n #date = null;\n #deleted = false;\n #popupPosition = null;\n constructor(editor) {\n this.#editor = editor;\n }\n renderForToolbar() {\n const button = this.#commentToolbarButton = document.createElement(\"button\");\n button.className = \"comment\";\n return this.#render(button, false);\n }\n renderForStandalone() {\n const button = this.#commentStandaloneButton = document.createElement(\"button\");\n button.className = \"annotationCommentButton\";\n const position = this.#editor.commentButtonPosition;\n if (position) {\n const {\n style\n } = button;\n style.insetInlineEnd = `calc(${100 * (this.#editor._uiManager.direction === \"ltr\" ? 1 - position[0] : position[0])}% - var(--comment-button-dim))`;\n style.top = `calc(${100 * position[1]}% - var(--comment-button-dim))`;\n const color = this.#editor.commentButtonColor;\n if (color) {\n style.backgroundColor = color;\n }\n }\n return this.#render(button, true);\n }\n focusButton() {\n setTimeout(() => {\n (this.#commentStandaloneButton ?? this.#commentToolbarButton)?.focus();\n }, 0);\n }\n onUpdatedColor() {\n if (!this.#commentStandaloneButton) {\n return;\n }\n const color = this.#editor.commentButtonColor;\n if (color) {\n this.#commentStandaloneButton.style.backgroundColor = color;\n }\n this.#editor._uiManager.updatePopupColor(this.#editor);\n }\n get commentButtonWidth() {\n return (this.#commentStandaloneButton?.getBoundingClientRect().width ?? 0) / this.#editor.parent.boundingClientRect.width;\n }\n get commentPopupPositionInLayer() {\n if (this.#popupPosition) {\n return this.#popupPosition;\n }\n if (!this.#commentStandaloneButton) {\n return null;\n }\n const {\n x,\n y,\n height\n } = this.#commentStandaloneButton.getBoundingClientRect();\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = this.#editor.parent.boundingClientRect;\n return [(x - parentX) / parentWidth, (y + height - parentY) / parentHeight];\n }\n set commentPopupPositionInLayer(pos) {\n this.#popupPosition = pos;\n }\n hasDefaultPopupPosition() {\n return this.#popupPosition === null;\n }\n removeStandaloneCommentButton() {\n this.#commentStandaloneButton?.remove();\n this.#commentStandaloneButton = null;\n }\n removeToolbarCommentButton() {\n this.#commentToolbarButton?.remove();\n this.#commentToolbarButton = null;\n }\n setCommentButtonStates({\n selected,\n hasPopup\n }) {\n if (!this.#commentStandaloneButton) {\n return;\n }\n this.#commentStandaloneButton.classList.toggle(\"selected\", selected);\n this.#commentStandaloneButton.ariaExpanded = hasPopup;\n }\n #render(comment, isStandalone) {\n if (!this.#editor._uiManager.hasCommentManager()) {\n return null;\n }\n comment.tabIndex = \"0\";\n comment.ariaHasPopup = \"dialog\";\n if (isStandalone) {\n comment.ariaControls = \"commentPopup\";\n comment.setAttribute(\"data-l10n-id\", \"pdfjs-show-comment-button\");\n } else {\n comment.ariaControlsElements = [this.#editor._uiManager.getCommentDialogElement()];\n comment.setAttribute(\"data-l10n-id\", \"pdfjs-editor-add-comment-button\");\n }\n const signal = this.#editor._uiManager._signal;\n if (!(signal instanceof AbortSignal) || signal.aborted) {\n return comment;\n }\n comment.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n if (isStandalone) {\n comment.addEventListener(\"focusin\", e => {\n this.#editor._focusEventsAllowed = false;\n stopEvent(e);\n }, {\n capture: true,\n signal\n });\n comment.addEventListener(\"focusout\", e => {\n this.#editor._focusEventsAllowed = true;\n stopEvent(e);\n }, {\n capture: true,\n signal\n });\n }\n comment.addEventListener(\"pointerdown\", event => event.stopPropagation(), {\n signal\n });\n const onClick = event => {\n event.preventDefault();\n if (comment === this.#commentToolbarButton) {\n this.edit();\n } else {\n this.#editor.toggleComment(true);\n }\n };\n comment.addEventListener(\"click\", onClick, {\n capture: true,\n signal\n });\n comment.addEventListener(\"keydown\", event => {\n if (event.target === comment && event.key === \"Enter\") {\n this.#commentWasFromKeyBoard = true;\n onClick(event);\n }\n }, {\n signal\n });\n comment.addEventListener(\"pointerenter\", () => {\n this.#editor.toggleComment(false, true);\n }, {\n signal\n });\n comment.addEventListener(\"pointerleave\", () => {\n this.#editor.toggleComment(false, false);\n }, {\n signal\n });\n return comment;\n }\n edit(options) {\n const position = this.commentPopupPositionInLayer;\n let posX, posY;\n if (position) {\n [posX, posY] = position;\n } else {\n [posX, posY] = this.#editor.commentButtonPosition;\n const {\n width,\n height,\n x,\n y\n } = this.#editor;\n posX = x + posX * width;\n posY = y + posY * height;\n }\n const parentDimensions = this.#editor.parent.boundingClientRect;\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = parentDimensions;\n this.#editor._uiManager.editComment(this.#editor, parentX + posX * parentWidth, parentY + posY * parentHeight, {\n ...options,\n parentDimensions\n });\n }\n finish() {\n if (!this.#commentToolbarButton) {\n return;\n }\n this.#commentToolbarButton.focus({\n focusVisible: this.#commentWasFromKeyBoard\n });\n this.#commentWasFromKeyBoard = false;\n }\n isDeleted() {\n return this.#deleted || this.#text === \"\";\n }\n isEmpty() {\n return this.#text === null;\n }\n hasBeenEdited() {\n return this.isDeleted() || this.#text !== this.#initialText;\n }\n serialize() {\n return this.data;\n }\n get data() {\n return {\n text: this.#text,\n richText: this.#richText,\n date: this.#date,\n deleted: this.isDeleted()\n };\n }\n set data(text) {\n if (text !== this.#text) {\n this.#richText = null;\n }\n if (text === null) {\n this.#text = \"\";\n this.#deleted = true;\n return;\n }\n this.#text = text;\n this.#date = new Date();\n this.#deleted = false;\n }\n restoreData({\n text,\n richText,\n date\n }) {\n this.#text = text;\n this.#richText = richText;\n this.#date = date;\n this.#deleted = false;\n }\n setInitialText(text, richText = null) {\n this.#initialText = text;\n this.data = text;\n this.#date = null;\n this.#richText = richText;\n }\n shown() {}\n destroy() {\n this.#commentToolbarButton?.remove();\n this.#commentToolbarButton = null;\n this.#commentStandaloneButton?.remove();\n this.#commentStandaloneButton = null;\n this.#text = \"\";\n this.#richText = null;\n this.#date = null;\n this.#editor = null;\n this.#commentWasFromKeyBoard = false;\n this.#deleted = false;\n }\n}\n\n;// ./src/display/touch_manager.js\n\nclass TouchManager {\n #container;\n #isPinching = false;\n #isPinchingStopped = null;\n #isPinchingDisabled;\n #onPinchStart;\n #onPinching;\n #onPinchEnd;\n #pointerDownAC = null;\n #signal;\n #touchInfo = null;\n #touchManagerAC;\n #touchMoveAC = null;\n constructor({\n container,\n isPinchingDisabled = null,\n isPinchingStopped = null,\n onPinchStart = null,\n onPinching = null,\n onPinchEnd = null,\n signal\n }) {\n this.#container = container;\n this.#isPinchingStopped = isPinchingStopped;\n this.#isPinchingDisabled = isPinchingDisabled;\n this.#onPinchStart = onPinchStart;\n this.#onPinching = onPinching;\n this.#onPinchEnd = onPinchEnd;\n this.#touchManagerAC = new AbortController();\n this.#signal = AbortSignal.any([signal, this.#touchManagerAC.signal]);\n container.addEventListener(\"touchstart\", this.#onTouchStart.bind(this), {\n passive: false,\n signal: this.#signal\n });\n }\n get MIN_TOUCH_DISTANCE_TO_PINCH() {\n return 35 / OutputScale.pixelRatio;\n }\n #onTouchStart(evt) {\n if (this.#isPinchingDisabled?.()) {\n return;\n }\n if (evt.touches.length === 1) {\n if (this.#pointerDownAC) {\n return;\n }\n const pointerDownAC = this.#pointerDownAC = new AbortController();\n const signal = AbortSignal.any([this.#signal, pointerDownAC.signal]);\n const container = this.#container;\n const opts = {\n capture: true,\n signal,\n passive: false\n };\n const cancelPointerDown = e => {\n if (e.pointerType === \"touch\") {\n this.#pointerDownAC?.abort();\n this.#pointerDownAC = null;\n }\n };\n container.addEventListener(\"pointerdown\", e => {\n if (e.pointerType === \"touch\") {\n stopEvent(e);\n cancelPointerDown(e);\n }\n }, opts);\n container.addEventListener(\"pointerup\", cancelPointerDown, opts);\n container.addEventListener(\"pointercancel\", cancelPointerDown, opts);\n return;\n }\n if (!this.#touchMoveAC) {\n this.#touchMoveAC = new AbortController();\n const signal = AbortSignal.any([this.#signal, this.#touchMoveAC.signal]);\n const container = this.#container;\n const opt = {\n signal,\n capture: false,\n passive: false\n };\n container.addEventListener(\"touchmove\", this.#onTouchMove.bind(this), opt);\n const onTouchEnd = this.#onTouchEnd.bind(this);\n container.addEventListener(\"touchend\", onTouchEnd, opt);\n container.addEventListener(\"touchcancel\", onTouchEnd, opt);\n opt.capture = true;\n container.addEventListener(\"pointerdown\", stopEvent, opt);\n container.addEventListener(\"pointermove\", stopEvent, opt);\n container.addEventListener(\"pointercancel\", stopEvent, opt);\n container.addEventListener(\"pointerup\", stopEvent, opt);\n this.#onPinchStart?.();\n }\n stopEvent(evt);\n if (evt.touches.length !== 2 || this.#isPinchingStopped?.()) {\n this.#touchInfo = null;\n return;\n }\n let [touch0, touch1] = evt.touches;\n if (touch0.identifier > touch1.identifier) {\n [touch0, touch1] = [touch1, touch0];\n }\n this.#touchInfo = {\n touch0X: touch0.screenX,\n touch0Y: touch0.screenY,\n touch1X: touch1.screenX,\n touch1Y: touch1.screenY\n };\n }\n #onTouchMove(evt) {\n if (!this.#touchInfo || evt.touches.length !== 2) {\n return;\n }\n stopEvent(evt);\n let [touch0, touch1] = evt.touches;\n if (touch0.identifier > touch1.identifier) {\n [touch0, touch1] = [touch1, touch0];\n }\n const {\n screenX: screen0X,\n screenY: screen0Y\n } = touch0;\n const {\n screenX: screen1X,\n screenY: screen1Y\n } = touch1;\n const touchInfo = this.#touchInfo;\n const {\n touch0X: pTouch0X,\n touch0Y: pTouch0Y,\n touch1X: pTouch1X,\n touch1Y: pTouch1Y\n } = touchInfo;\n const prevGapX = pTouch1X - pTouch0X;\n const prevGapY = pTouch1Y - pTouch0Y;\n const currGapX = screen1X - screen0X;\n const currGapY = screen1Y - screen0Y;\n const distance = Math.hypot(currGapX, currGapY) || 1;\n const pDistance = Math.hypot(prevGapX, prevGapY) || 1;\n if (!this.#isPinching && Math.abs(pDistance - distance) <= TouchManager.MIN_TOUCH_DISTANCE_TO_PINCH) {\n return;\n }\n touchInfo.touch0X = screen0X;\n touchInfo.touch0Y = screen0Y;\n touchInfo.touch1X = screen1X;\n touchInfo.touch1Y = screen1Y;\n if (!this.#isPinching) {\n this.#isPinching = true;\n return;\n }\n const origin = [(screen0X + screen1X) / 2, (screen0Y + screen1Y) / 2];\n this.#onPinching?.(origin, pDistance, distance);\n }\n #onTouchEnd(evt) {\n if (evt.touches.length >= 2) {\n return;\n }\n if (this.#touchMoveAC) {\n this.#touchMoveAC.abort();\n this.#touchMoveAC = null;\n this.#onPinchEnd?.();\n }\n if (!this.#touchInfo) {\n return;\n }\n stopEvent(evt);\n this.#touchInfo = null;\n this.#isPinching = false;\n }\n destroy() {\n this.#touchManagerAC?.abort();\n this.#touchManagerAC = null;\n this.#pointerDownAC?.abort();\n this.#pointerDownAC = null;\n }\n}\n\n;// ./src/display/editor/editor.js\n\n\n\n\n\n\n\n\n\n\nclass AnnotationEditor {\n #accessibilityData = null;\n #allResizerDivs = null;\n #altText = null;\n #comment = null;\n #commentStandaloneButton = null;\n #disabled = false;\n #dragPointerId = null;\n #dragPointerType = \"\";\n #resizersDiv = null;\n #lastPointerCoords = null;\n #savedDimensions = null;\n #fakeAnnotation = null;\n #focusAC = null;\n #focusedResizerName = \"\";\n #hasBeenClicked = false;\n #initialRect = null;\n #isEditing = false;\n #isInEditMode = false;\n #isResizerEnabledForKeyboard = false;\n #moveInDOMTimeout = null;\n #prevDragX = 0;\n #prevDragY = 0;\n #telemetryTimeouts = null;\n #touchManager = null;\n isSelected = false;\n _isCopy = false;\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 this.annotationElementId = parameters.annotationElementId || null;\n this.creationDate = parameters.creationDate || new Date();\n this.modificationDate = parameters.modificationDate || null;\n this.canAddComment = true;\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 updatePageIndex(newPageIndex) {\n this.pageIndex = newPageIndex;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n get mode() {\n return Object.getPrototypeOf(this).constructor._editorType;\n }\n static get isDrawer() {\n return false;\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._uiManager.getId(),\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 uid() {\n return this.annotationElementId || this.id;\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 this.#fakeAnnotation?.remove();\n this.#fakeAnnotation = null;\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 if (!this.isInEditMode()) {\n return;\n }\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 _moveAfterPaste(baseX, baseY) {\n if (this.isClone) {\n delete this.isClone;\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this._onTranslated();\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._onTranslating(this.x, this.y);\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#initialRect ||= [this.x, this.y, this.width, this.height];\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n translationDone() {\n this._onTranslated(this.x, this.y);\n }\n drag(tx, ty) {\n this.#initialRect ||= [this.x, this.y, this.width, this.height];\n const {\n div,\n parentDimensions: [parentWidth, parentHeight]\n } = this;\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 const {\n style\n } = div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this._onTranslating(x, y);\n div.scrollIntoView({\n block: \"nearest\"\n });\n }\n _onTranslating(x, y) {}\n _onTranslated(x, y) {}\n get _hasBeenMoved() {\n return !!this.#initialRect && (this.#initialRect[0] !== this.x || this.#initialRect[1] !== this.y);\n }\n get _hasBeenResized() {\n return !!this.#initialRect && (this.#initialRect[2] !== this.width || this.#initialRect[3] !== this.height);\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 {\n div: {\n style\n },\n pageDimensions: [pageWidth, pageHeight]\n } = this;\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 = MathClamp(x, 0, pageWidth - width);\n y = MathClamp(y, 0, pageHeight - height);\n break;\n case 90:\n x = MathClamp(x, 0, pageWidth - height);\n y = MathClamp(y, width, pageHeight);\n break;\n case 180:\n x = MathClamp(x, width, pageWidth);\n y = MathClamp(y, height, pageHeight);\n break;\n case 270:\n x = MathClamp(x, height, pageWidth);\n y = MathClamp(y, 0, pageHeight - width);\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 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() {\n const {\n div: {\n style\n },\n width,\n height\n } = this;\n style.width = `${(100 * width).toFixed(2)}%`;\n style.height = `${(100 * height).toFixed(2)}%`;\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 } = 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 this.#lastPointerCoords = [event.screenX, event.screenY];\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(\"touchmove\", stopEvent, {\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\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();\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n #resize(x, y, width, height) {\n this.width = width;\n this.height = height;\n this.x = x;\n this.y = y;\n this.setDims();\n this.fixAndSetPosition();\n this._onResized();\n }\n _onResized() {}\n #addResizeToUndoStack() {\n if (!this.#savedDimensions) {\n return;\n }\n const {\n savedX,\n savedY,\n savedWidth,\n savedHeight\n } = this.#savedDimensions;\n this.#savedDimensions = null;\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: this.#resize.bind(this, newX, newY, newWidth, newHeight),\n undo: this.#resize.bind(this, savedX, savedY, savedWidth, savedHeight),\n mustExec: true\n });\n }\n static _round(x) {\n return Math.round(x * 10000) / 10000;\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 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 = AnnotationEditor._round(savedX + transfOppositePoint[0]);\n const oppositeY = AnnotationEditor._round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let deltaX, deltaY;\n if (!event.fromKeyboard) {\n const {\n screenX,\n screenY\n } = event;\n const [lastScreenX, lastScreenY] = this.#lastPointerCoords;\n [deltaX, deltaY] = this.screenToPageTranslation(screenX - lastScreenX, screenY - lastScreenY);\n this.#lastPointerCoords[0] = screenX;\n this.#lastPointerCoords[1] = screenY;\n } else {\n ({\n deltaX,\n deltaY\n } = event);\n }\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 = MathClamp(Math.abs(oppositePoint[0] - point[0] - deltaX), minWidth, 1) / savedWidth;\n } else {\n ratioY = MathClamp(Math.abs(oppositePoint[1] - point[1] - deltaY), minHeight, 1) / savedHeight;\n }\n const newWidth = AnnotationEditor._round(savedWidth * ratioX);\n const newHeight = AnnotationEditor._round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.#initialRect ||= [this.x, this.y, this.width, this.height];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims();\n this.fixAndSetPosition();\n this._onResizing();\n }\n _onResizing() {}\n altTextFinish() {\n this.#altText?.finish();\n }\n get toolbarButtons() {\n return null;\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 const {\n toolbarButtons\n } = this;\n if (toolbarButtons) {\n for (const [name, tool] of toolbarButtons) {\n await this._editToolbar.addButton(name, tool);\n }\n }\n if (!this.hasComment) {\n this._editToolbar.addButton(\"comment\", this.addCommentButton());\n }\n this._editToolbar.addButton(\"delete\");\n return this._editToolbar;\n }\n addCommentButtonInToolbar() {\n this._editToolbar?.addButtonBefore(\"comment\", this.addCommentButton(), \".deleteButton\");\n }\n removeCommentButtonFromToolbar() {\n this._editToolbar?.removeButton(\"comment\");\n }\n removeEditToolbar() {\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 createAltText() {\n if (!this.#altText) {\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 }\n return this.#altText;\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 focusCommentButton() {\n this.#comment?.focusButton();\n }\n addCommentButton() {\n return this.canAddComment ? this.#comment ||= new Comment(this) : null;\n }\n addStandaloneCommentButton() {\n if (!this._uiManager.hasCommentManager()) {\n return;\n }\n if (this.#commentStandaloneButton) {\n if (this._uiManager.isEditingMode()) {\n this.#commentStandaloneButton.classList.remove(\"hidden\");\n }\n return;\n }\n if (!this.hasComment) {\n return;\n }\n this.#commentStandaloneButton = this.#comment.renderForStandalone();\n this.div.append(this.#commentStandaloneButton);\n }\n removeStandaloneCommentButton() {\n this.#comment.removeStandaloneCommentButton();\n this.#commentStandaloneButton = null;\n }\n hideStandaloneCommentButton() {\n this.#commentStandaloneButton?.classList.add(\"hidden\");\n }\n get comment() {\n if (!this.#comment) {\n return null;\n }\n const {\n data: {\n richText,\n text,\n date,\n deleted\n }\n } = this.#comment;\n return {\n text,\n richText,\n date,\n deleted,\n color: this.getNonHCMColor(),\n opacity: this.opacity ?? 1\n };\n }\n set comment(value) {\n this.#comment ||= new Comment(this);\n if (typeof value === \"object\" && value !== null) {\n this.#comment.restoreData(value);\n } else {\n this.#comment.data = value;\n }\n if (this.hasComment) {\n this.removeCommentButtonFromToolbar();\n this.addStandaloneCommentButton();\n this._uiManager.updateComment(this);\n } else {\n this.addCommentButtonInToolbar();\n this.removeStandaloneCommentButton();\n this._uiManager.removeComment(this);\n }\n }\n setCommentData({\n comment,\n popupRef,\n richText\n }) {\n if (!popupRef) {\n return;\n }\n this.#comment ||= new Comment(this);\n this.#comment.setInitialText(comment, richText);\n if (!this.annotationElementId) {\n return;\n }\n const storedData = this._uiManager.getAndRemoveDataFromAnnotationStorage(this.annotationElementId);\n if (storedData) {\n this.updateFromAnnotationLayer(storedData);\n }\n }\n get hasEditedComment() {\n return this.#comment?.hasBeenEdited();\n }\n get hasDeletedComment() {\n return this.#comment?.isDeleted();\n }\n get hasComment() {\n return !!this.#comment && !this.#comment.isEmpty() && !this.#comment.isDeleted();\n }\n async editComment(options) {\n this.#comment ||= new Comment(this);\n this.#comment.edit(options);\n }\n toggleComment(isSelected, visibility = undefined) {\n if (this.hasComment) {\n this._uiManager.toggleComment(this, isSelected, visibility);\n }\n }\n setSelectedCommentButton(selected) {\n this.#comment.setSelectedButton(selected);\n }\n addComment(serialized) {\n if (this.hasEditedComment) {\n const DEFAULT_POPUP_WIDTH = 180;\n const DEFAULT_POPUP_HEIGHT = 100;\n const [,,, trY] = serialized.rect;\n const [pageWidth] = this.pageDimensions;\n const [pageX] = this.pageTranslation;\n const blX = pageX + pageWidth + 1;\n const blY = trY - DEFAULT_POPUP_HEIGHT;\n const trX = blX + DEFAULT_POPUP_WIDTH;\n serialized.popup = {\n contents: this.comment.text,\n deleted: this.comment.deleted,\n rect: [blX, blY, trX, trY]\n };\n }\n }\n updateFromAnnotationLayer({\n popup: {\n contents,\n deleted\n }\n }) {\n this.#comment.data = deleted ? null : contents;\n }\n get parentBoundingClientRect() {\n return this.parent.boundingClientRect;\n }\n render() {\n const div = this.div = document.createElement(\"div\");\n div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n div.className = this.name;\n div.setAttribute(\"id\", this.id);\n div.tabIndex = this.#disabled ? -1 : 0;\n div.setAttribute(\"role\", \"application\");\n if (this.defaultL10nId) {\n div.setAttribute(\"data-l10n-id\", this.defaultL10nId);\n }\n if (!this._isVisible) {\n div.classList.add(\"hidden\");\n }\n this.setInForeground();\n this.#addFocusListeners();\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n bindEvents(this, div, [\"keydown\", \"pointerdown\", \"dblclick\"]);\n if (this.isResizable && this._uiManager._supportsPinchToZoom) {\n this.#touchManager ||= new TouchManager({\n container: div,\n isPinchingDisabled: () => !this.isSelected,\n onPinchStart: this.#touchPinchStartCallback.bind(this),\n onPinching: this.#touchPinchCallback.bind(this),\n onPinchEnd: this.#touchPinchEndCallback.bind(this),\n signal: this._uiManager._signal\n });\n }\n this.addStandaloneCommentButton();\n this._uiManager._editorUndoBar?.hide();\n return div;\n }\n #touchPinchStartCallback() {\n this.#savedDimensions = {\n savedX: this.x,\n savedY: this.y,\n savedWidth: this.width,\n savedHeight: this.height\n };\n this.#altText?.toggle(false);\n this.parent.togglePointerEvents(false);\n }\n #touchPinchCallback(_origin, prevDistance, distance) {\n const slowDownFactor = 0.7;\n let factor = slowDownFactor * (distance / prevDistance) + 1 - slowDownFactor;\n if (factor === 1) {\n return;\n }\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 [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 factor = Math.max(Math.min(factor, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n const newWidth = AnnotationEditor._round(savedWidth * factor);\n const newHeight = AnnotationEditor._round(savedHeight * factor);\n if (newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.#initialRect ||= [savedX, savedY, savedWidth, savedHeight];\n const transfCenterPoint = transf(savedWidth / 2, savedHeight / 2);\n const centerX = AnnotationEditor._round(savedX + transfCenterPoint[0]);\n const centerY = AnnotationEditor._round(savedY + transfCenterPoint[1]);\n const newTransfCenterPoint = transf(newWidth / 2, newHeight / 2);\n this.x = centerX - newTransfCenterPoint[0];\n this.y = centerY - newTransfCenterPoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.setDims();\n this.fixAndSetPosition();\n this._onResizing();\n }\n #touchPinchEndCallback() {\n this.#altText?.toggle(true);\n this.parent.togglePointerEvents(true);\n this.#addResizeToUndoStack();\n }\n pointerdown(event) {\n const {\n isMac\n } = 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 #selectOnPointerEvent(event) {\n const {\n isMac\n } = 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 let hasDraggingStarted = false;\n const ac = new AbortController();\n const signal = this._uiManager.combinedSignal(ac);\n const opts = {\n capture: true,\n passive: false,\n signal\n };\n const cancelDrag = e => {\n ac.abort();\n this.#dragPointerId = null;\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n this.#selectOnPointerEvent(e);\n }\n if (hasDraggingStarted) {\n this._onStopDragging();\n }\n };\n if (isSelected) {\n this.#prevDragX = event.clientX;\n this.#prevDragY = event.clientY;\n this.#dragPointerId = event.pointerId;\n this.#dragPointerType = event.pointerType;\n window.addEventListener(\"pointermove\", e => {\n if (!hasDraggingStarted) {\n hasDraggingStarted = true;\n this._uiManager.toggleComment(this, true, false);\n this._onStartDragging();\n }\n const {\n clientX: x,\n clientY: y,\n pointerId\n } = e;\n if (pointerId !== this.#dragPointerId) {\n stopEvent(e);\n return;\n }\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 }, opts);\n window.addEventListener(\"touchmove\", stopEvent, opts);\n window.addEventListener(\"pointerdown\", e => {\n if (e.pointerType === this.#dragPointerType) {\n if (this.#touchManager || e.isPrimary) {\n cancelDrag(e);\n }\n }\n stopEvent(e);\n }, opts);\n }\n const pointerUpCallback = e => {\n if (!this.#dragPointerId || this.#dragPointerId === e.pointerId) {\n cancelDrag(e);\n return;\n }\n stopEvent(e);\n };\n window.addEventListener(\"pointerup\", pointerUpCallback, {\n signal\n });\n window.addEventListener(\"blur\", pointerUpCallback, {\n signal\n });\n }\n _onStartDragging() {}\n _onStopDragging() {}\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 this._onTranslated();\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 getPDFRect() {\n return this.getRect(0, 0);\n }\n getNonHCMColor() {\n return this.color && AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));\n }\n onUpdatedColor() {\n this.#comment?.onUpdatedColor();\n }\n getData() {\n const {\n comment: {\n text: str,\n color,\n date,\n opacity,\n deleted,\n richText\n },\n uid: id,\n pageIndex,\n creationDate,\n modificationDate\n } = this;\n return {\n id,\n pageIndex,\n rect: this.getPDFRect(),\n richText,\n contentsObj: {\n str\n },\n creationDate,\n modificationDate: date || modificationDate,\n popupRef: !deleted,\n color,\n opacity\n };\n }\n onceAdded(focus) {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return false;\n }\n this.parent.setEditingState(false);\n this.#isInEditMode = true;\n return true;\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return false;\n }\n this.parent.setEditingState(true);\n this.#isInEditMode = false;\n return true;\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 get isOnScreen() {\n const {\n top,\n left,\n bottom,\n right\n } = this.getClientDimensions();\n const {\n innerHeight,\n innerWidth\n } = window;\n return left < innerWidth && right > 0 && top < innerHeight && bottom > 0;\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 resize() {}\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 return {\n annotationType: this.mode,\n pageIndex: this.pageIndex,\n rect: this.getPDFRect(),\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId,\n popupRef: this._initialData?.popupRef || \"\"\n };\n }\n static async deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: uiManager.getId(),\n uiManager,\n annotationElementId: data.annotationElementId,\n creationDate: data.creationDate,\n modificationDate: data.modificationDate\n });\n editor.rotation = data.rotation;\n editor.#accessibilityData = data.accessibilityData;\n editor._isCopy = data.isCopy || false;\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 this.hideCommentPopup();\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 this.#touchManager?.destroy();\n this.#touchManager = null;\n this.#fakeAnnotation?.remove();\n this.#fakeAnnotation = 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 }\n }\n get toolbarPosition() {\n return null;\n }\n get commentButtonPosition() {\n return this._uiManager.direction === \"ltr\" ? [1, 0] : [0, 0];\n }\n get commentButtonPositionInPage() {\n const {\n commentButtonPosition: [posX, posY]\n } = this;\n const [blX, blY, trX, trY] = this.getPDFRect();\n return [AnnotationEditor._round(blX + (trX - blX) * posX), AnnotationEditor._round(blY + (trY - blY) * (1 - posY))];\n }\n get commentButtonColor() {\n return this._uiManager.makeCommentColor(this.getNonHCMColor(), this.opacity);\n }\n get commentPopupPosition() {\n return this.#comment.commentPopupPositionInLayer;\n }\n set commentPopupPosition(pos) {\n this.#comment.commentPopupPositionInLayer = pos;\n }\n hasDefaultPopupPosition() {\n return this.#comment.hasDefaultPopupPosition();\n }\n get commentButtonWidth() {\n return this.#comment.commentButtonWidth;\n }\n get elementBeforePopup() {\n return this.div;\n }\n setCommentButtonStates(options) {\n this.#comment?.setCommentButtonStates(options);\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.firstElementChild);\n }\n } else if (nextFirstPosition > firstPosition) {\n for (let i = 0; i < nextFirstPosition - firstPosition; i++) {\n this.#resizersDiv.firstElementChild.before(this.#resizersDiv.lastElementChild);\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.firstElementChild.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 deltaX: x,\n deltaY: y,\n fromKeyboard: true\n });\n }\n #stopResizing() {\n this.#isResizerEnabledForKeyboard = false;\n this.#setResizerTabIndex(-1);\n this.#addResizeToUndoStack();\n }\n _stopResizingWithKeyboard() {\n this.#stopResizing();\n this.div.focus();\n }\n select() {\n if (this.isSelected && this._editToolbar) {\n this._editToolbar.show();\n return;\n }\n this.isSelected = true;\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 focus() {\n if (this.div && !this.div.contains(document.activeElement)) {\n setTimeout(() => this.div?.focus({\n preventScroll: true\n }), 0);\n }\n }\n unselect() {\n if (!this.isSelected) {\n return;\n }\n this.isSelected = false;\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 this.hideCommentPopup();\n }\n hideCommentPopup() {\n if (this.hasComment) {\n this._uiManager.toggleComment(null);\n }\n }\n updateParams(type, value) {}\n disableEditing() {}\n enableEditing() {}\n get canChangeContent() {\n return false;\n }\n enterInEditMode() {\n if (!this.canChangeContent) {\n return;\n }\n this.enableEditMode();\n this.div.focus();\n }\n dblclick(event) {\n if (event.target.nodeName === \"BUTTON\") {\n return;\n }\n this.enterInEditMode();\n this.parent.updateToolbar({\n mode: this.constructor._editorType,\n editId: this.uid\n });\n }\n getElementForAltText() {\n return this.div;\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 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 updateFakeAnnotationElement(annotationLayer) {\n if (!this.#fakeAnnotation && !this.deleted) {\n this.#fakeAnnotation = annotationLayer.addFakeAnnotation(this);\n return;\n }\n if (this.deleted) {\n this.#fakeAnnotation.remove();\n this.#fakeAnnotation = null;\n return;\n }\n if (this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized) {\n this.#fakeAnnotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this.comment\n });\n }\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\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 firstElementChild\n } = annotation.container;\n if (firstElementChild?.nodeName === \"DIV\" && firstElementChild.classList.contains(\"annotationContent\")) {\n firstElementChild.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\n\n\n\n\n\n\n\n\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\n\n\n\n\n\n\n\n\n\n\n\n\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 #editorsMap = null;\n #storage = new Map();\n onSetModified = null;\n onResetModified = null;\n onAnnotationEditor = null;\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 const storedValue = this.#storage.get(key);\n if (storedValue === undefined) {\n return;\n }\n if (storedValue instanceof AnnotationEditor) {\n this.#editorsMap.delete(storedValue.annotationElementId);\n }\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (this.#storage.values().some(v => v instanceof AnnotationEditor)) {\n return;\n }\n this.onAnnotationEditor?.(null);\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) {\n (this.#editorsMap ||= new Map()).set(value.annotationElementId, value);\n this.onAnnotationEditor?.(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n this.onSetModified?.();\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n this.onResetModified?.();\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 (val.page) {\n val.pageIndex = val.page._pageIndex;\n delete val.page;\n }\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 let numberOfEditedComments = 0;\n let numberOfDeletedComments = 0;\n for (const value of this.#storage.values()) {\n if (!(value instanceof AnnotationEditor)) {\n if (value.popup) {\n if (value.popup.deleted) {\n numberOfDeletedComments += 1;\n } else {\n numberOfEditedComments += 1;\n }\n }\n continue;\n }\n if (value.isCommentDeleted) {\n numberOfDeletedComments += 1;\n } else if (value.hasEditedComment) {\n numberOfEditedComments += 1;\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 const counters = map.getOrInsertComputed(key, makeMap);\n counters.set(val, (counters.get(val) ?? 0) + 1);\n }\n }\n if (numberOfDeletedComments > 0 || numberOfEditedComments > 0) {\n stats ||= Object.create(null);\n stats.comments = {\n deleted: numberOfDeletedComments,\n edited: numberOfEditedComments\n };\n }\n if (!stats) {\n return null;\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 updateEditor(annotationId, data) {\n const value = this.#editorsMap?.get(annotationId);\n if (value) {\n value.updateFromAnnotationLayer(data);\n return true;\n }\n return false;\n }\n getEditor(annotationId) {\n return this.#editorsMap?.get(annotationId) || null;\n }\n get modifiedIds() {\n if (this.#modifiedIds) {\n return this.#modifiedIds;\n }\n const ids = [];\n if (this.#editorsMap) {\n for (const value of this.#editorsMap.values()) {\n if (!value.serialize()) {\n continue;\n }\n ids.push(value.annotationElementId);\n }\n }\n let hash = \"\";\n if (ids.length) {\n const h = new MurmurHash3_64();\n h.update(ids.join(\",\"));\n hash = h.hexdigest();\n }\n return this.#modifiedIds = {\n ids: new Set(ids),\n hash\n };\n }\n [Symbol.iterator]() {\n return this.#storage.entries();\n }\n}\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable = SerializableEmpty;\n constructor(parent) {\n super();\n const {\n serializable\n } = parent;\n if (serializable === SerializableEmpty) {\n return;\n }\n const {\n map,\n hash,\n transfer\n } = 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// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js\nvar es_iterator_for_each = __webpack_require__(7588);\n;// ./src/display/canvas_dependency_tracker.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst FORCED_DEPENDENCY_LABEL = \"__forcedDependency\";\nconst {\n floor,\n ceil\n} = Math;\nfunction expandBBox(array, index, minX, minY, maxX, maxY) {\n array[index * 4 + 0] = Math.min(array[index * 4 + 0], minX);\n array[index * 4 + 1] = Math.min(array[index * 4 + 1], minY);\n array[index * 4 + 2] = Math.max(array[index * 4 + 2], maxX);\n array[index * 4 + 3] = Math.max(array[index * 4 + 3], maxY);\n}\nconst EMPTY_BBOX = new Uint32Array(new Uint8Array([255, 255, 0, 0]).buffer)[0];\nclass BBoxReader {\n #bboxes;\n #coords;\n constructor(bboxes, coords) {\n this.#bboxes = bboxes;\n this.#coords = coords;\n }\n get length() {\n return this.#bboxes.length;\n }\n isEmpty(i) {\n return this.#bboxes[i] === EMPTY_BBOX;\n }\n minX(i) {\n return this.#coords[i * 4 + 0] / 256;\n }\n minY(i) {\n return this.#coords[i * 4 + 1] / 256;\n }\n maxX(i) {\n return (this.#coords[i * 4 + 2] + 1) / 256;\n }\n maxY(i) {\n return (this.#coords[i * 4 + 3] + 1) / 256;\n }\n}\nconst ensureDebugMetadata = (map, key) => map?.getOrInsertComputed(key, () => ({\n dependencies: new Set(),\n isRenderingOperation: false\n}));\nclass CanvasBBoxTracker {\n #baseTransformStack = [[1, 0, 0, 1, 0, 0]];\n #clipBox = [-Infinity, -Infinity, Infinity, Infinity];\n #pendingBBox = new Float64Array(BBOX_INIT);\n _pendingBBoxIdx = -1;\n #canvasWidth;\n #canvasHeight;\n #bboxesCoords;\n #bboxes;\n _savesStack = [];\n _markedContentStack = [];\n constructor(canvas, operationsCount) {\n this.#canvasWidth = canvas.width;\n this.#canvasHeight = canvas.height;\n this.#initializeBBoxes(operationsCount);\n }\n growOperationsCount(operationsCount) {\n if (operationsCount >= this.#bboxes.length) {\n this.#initializeBBoxes(operationsCount, this.#bboxes);\n }\n }\n #initializeBBoxes(operationsCount, oldBBoxes) {\n const buffer = new ArrayBuffer(operationsCount * 4);\n this.#bboxesCoords = new Uint8ClampedArray(buffer);\n this.#bboxes = new Uint32Array(buffer);\n if (oldBBoxes && oldBBoxes.length > 0) {\n this.#bboxes.set(oldBBoxes);\n this.#bboxes.fill(EMPTY_BBOX, oldBBoxes.length);\n } else {\n this.#bboxes.fill(EMPTY_BBOX);\n }\n }\n get clipBox() {\n return this.#clipBox;\n }\n save(opIdx) {\n this.#clipBox = {\n __proto__: this.#clipBox\n };\n this._savesStack.push(opIdx);\n return this;\n }\n restore(opIdx, onSavePopped) {\n const previous = Object.getPrototypeOf(this.#clipBox);\n if (previous === null) {\n return this;\n }\n this.#clipBox = previous;\n const lastSave = this._savesStack.pop();\n if (lastSave !== undefined) {\n onSavePopped?.(lastSave, opIdx);\n this.#bboxes[opIdx] = this.#bboxes[lastSave];\n }\n return this;\n }\n recordOpenMarker(idx) {\n this._savesStack.push(idx);\n return this;\n }\n getOpenMarker() {\n if (this._savesStack.length === 0) {\n return null;\n }\n return this._savesStack.at(-1);\n }\n recordCloseMarker(opIdx, onSavePopped) {\n const lastSave = this._savesStack.pop();\n if (lastSave !== undefined) {\n onSavePopped?.(lastSave, opIdx);\n this.#bboxes[opIdx] = this.#bboxes[lastSave];\n }\n return this;\n }\n beginMarkedContent(opIdx) {\n this._markedContentStack.push(opIdx);\n return this;\n }\n endMarkedContent(opIdx, onSavePopped) {\n const lastSave = this._markedContentStack.pop();\n if (lastSave !== undefined) {\n onSavePopped?.(lastSave, opIdx);\n this.#bboxes[opIdx] = this.#bboxes[lastSave];\n }\n return this;\n }\n pushBaseTransform(ctx) {\n this.#baseTransformStack.push(Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform()));\n return this;\n }\n popBaseTransform() {\n if (this.#baseTransformStack.length > 1) {\n this.#baseTransformStack.pop();\n }\n return this;\n }\n resetBBox(idx) {\n if (this._pendingBBoxIdx !== idx) {\n this._pendingBBoxIdx = idx;\n this.#pendingBBox.set(BBOX_INIT, 0);\n }\n return this;\n }\n recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());\n const clipBox = BBOX_INIT.slice();\n Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, clipBox);\n const intersection = Util.intersect(this.#clipBox, clipBox);\n if (intersection) {\n this.#clipBox[0] = intersection[0];\n this.#clipBox[1] = intersection[1];\n this.#clipBox[2] = intersection[2];\n this.#clipBox[3] = intersection[3];\n } else {\n this.#clipBox[0] = this.#clipBox[1] = Infinity;\n this.#clipBox[2] = this.#clipBox[3] = -Infinity;\n }\n return this;\n }\n recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n const clipBox = this.#clipBox;\n if (clipBox[0] === Infinity) {\n return this;\n }\n const transform = Util.multiplyByDOMMatrix(this.#baseTransformStack.at(-1), ctx.getTransform());\n if (clipBox[0] === -Infinity) {\n Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, this.#pendingBBox);\n return this;\n }\n const bbox = BBOX_INIT.slice();\n Util.axialAlignedBoundingBox([minX, minY, maxX, maxY], transform, bbox);\n this.#pendingBBox[0] = MathClamp(bbox[0], clipBox[0], this.#pendingBBox[0]);\n this.#pendingBBox[1] = MathClamp(bbox[1], clipBox[1], this.#pendingBBox[1]);\n this.#pendingBBox[2] = MathClamp(bbox[2], this.#pendingBBox[2], clipBox[2]);\n this.#pendingBBox[3] = MathClamp(bbox[3], this.#pendingBBox[3], clipBox[3]);\n return this;\n }\n recordFullPageBBox(idx) {\n this.#pendingBBox[0] = Math.max(0, this.#clipBox[0]);\n this.#pendingBBox[1] = Math.max(0, this.#clipBox[1]);\n this.#pendingBBox[2] = Math.min(this.#canvasWidth, this.#clipBox[2]);\n this.#pendingBBox[3] = Math.min(this.#canvasHeight, this.#clipBox[3]);\n return this;\n }\n recordOperation(idx, preserve = false, dependencyLists) {\n if (this._pendingBBoxIdx !== idx) {\n return this;\n }\n const minX = floor(this.#pendingBBox[0] * 256 / this.#canvasWidth);\n const minY = floor(this.#pendingBBox[1] * 256 / this.#canvasHeight);\n const maxX = ceil(this.#pendingBBox[2] * 256 / this.#canvasWidth);\n const maxY = ceil(this.#pendingBBox[3] * 256 / this.#canvasHeight);\n expandBBox(this.#bboxesCoords, idx, minX, minY, maxX, maxY);\n if (dependencyLists) {\n for (const dependencies of dependencyLists) {\n for (const depIdx of dependencies) {\n if (depIdx !== idx) {\n expandBBox(this.#bboxesCoords, depIdx, minX, minY, maxX, maxY);\n }\n }\n }\n }\n if (!preserve) {\n this._pendingBBoxIdx = -1;\n }\n return this;\n }\n bboxToClipBoxDropOperation(idx) {\n if (this._pendingBBoxIdx === idx) {\n this._pendingBBoxIdx = -1;\n this.#clipBox[0] = Math.max(this.#clipBox[0], this.#pendingBBox[0]);\n this.#clipBox[1] = Math.max(this.#clipBox[1], this.#pendingBBox[1]);\n this.#clipBox[2] = Math.min(this.#clipBox[2], this.#pendingBBox[2]);\n this.#clipBox[3] = Math.min(this.#clipBox[3], this.#pendingBBox[3]);\n }\n return this;\n }\n take() {\n return new BBoxReader(this.#bboxes, this.#bboxesCoords);\n }\n takeDebugMetadata() {\n throw new Error(\"Unreachable\");\n }\n recordSimpleData(name, idx) {\n return this;\n }\n recordIncrementalData(name, idx) {\n return this;\n }\n resetIncrementalData(name, idx) {\n return this;\n }\n recordNamedData(name, idx) {\n return this;\n }\n recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n return this;\n }\n recordFutureForcedDependency(name, idx) {\n return this;\n }\n inheritSimpleDataAsFutureForcedDependencies(names) {\n return this;\n }\n inheritPendingDependenciesAsFutureForcedDependencies() {\n return this;\n }\n recordCharacterBBox(idx, ctx, font, scale = 1, x = 0, y = 0, getMeasure) {\n return this;\n }\n getSimpleIndex(dependencyName) {\n return undefined;\n }\n recordDependencies(idx, dependencyNames) {\n return this;\n }\n recordNamedDependency(idx, name) {\n return this;\n }\n recordShowTextOperation(idx, preserve = false) {\n return this;\n }\n}\nclass CanvasDependencyTracker {\n #simple = {\n __proto__: null\n };\n #incremental = {\n __proto__: null,\n transform: [],\n moveText: [],\n sameLineText: [],\n [FORCED_DEPENDENCY_LABEL]: []\n };\n #namedDependencies = new Map();\n #pendingDependencies = new Set();\n #fontBBoxTrustworthy = new Map();\n #debugMetadata;\n #recordDebugMetadataDepenencyAfterRestore;\n #bboxTracker;\n constructor(bboxTracker, recordDebugMetadata = false) {\n this.#bboxTracker = bboxTracker;\n if (recordDebugMetadata) {\n this.#debugMetadata = new Map();\n this.#recordDebugMetadataDepenencyAfterRestore = (lastSave, opIdx) => {\n ensureDebugMetadata(this.#debugMetadata, opIdx).dependencies.add(lastSave);\n };\n }\n }\n get clipBox() {\n return this.#bboxTracker.clipBox;\n }\n growOperationsCount(operationsCount) {\n this.#bboxTracker.growOperationsCount(operationsCount);\n }\n save(opIdx) {\n this.#simple = {\n __proto__: this.#simple\n };\n this.#incremental = {\n __proto__: this.#incremental,\n transform: {\n __proto__: this.#incremental.transform\n },\n moveText: {\n __proto__: this.#incremental.moveText\n },\n sameLineText: {\n __proto__: this.#incremental.sameLineText\n },\n [FORCED_DEPENDENCY_LABEL]: {\n __proto__: this.#incremental[FORCED_DEPENDENCY_LABEL]\n }\n };\n this.#bboxTracker.save(opIdx);\n return this;\n }\n restore(opIdx) {\n this.#bboxTracker.restore(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n const previous = Object.getPrototypeOf(this.#simple);\n if (previous === null) {\n return this;\n }\n this.#simple = previous;\n this.#incremental = Object.getPrototypeOf(this.#incremental);\n return this;\n }\n recordOpenMarker(opIdx) {\n this.#bboxTracker.recordOpenMarker(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n return this;\n }\n getOpenMarker() {\n return this.#bboxTracker.getOpenMarker();\n }\n recordCloseMarker(opIdx) {\n this.#bboxTracker.recordCloseMarker(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n return this;\n }\n beginMarkedContent(opIdx) {\n this.#bboxTracker.beginMarkedContent(opIdx);\n return this;\n }\n endMarkedContent(opIdx) {\n this.#bboxTracker.endMarkedContent(opIdx, this.#recordDebugMetadataDepenencyAfterRestore);\n return this;\n }\n pushBaseTransform(ctx) {\n this.#bboxTracker.pushBaseTransform(ctx);\n return this;\n }\n popBaseTransform() {\n this.#bboxTracker.popBaseTransform();\n return this;\n }\n recordSimpleData(name, idx) {\n this.#simple[name] = idx;\n return this;\n }\n recordIncrementalData(name, idx) {\n this.#incremental[name].push(idx);\n return this;\n }\n resetIncrementalData(name, idx) {\n this.#incremental[name].length = 0;\n return this;\n }\n recordNamedData(name, idx) {\n this.#namedDependencies.set(name, idx);\n return this;\n }\n recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n this.#simple[name] = this.#namedDependencies.get(depName) ?? fallbackIdx;\n }\n recordFutureForcedDependency(name, idx) {\n this.recordIncrementalData(FORCED_DEPENDENCY_LABEL, idx);\n return this;\n }\n inheritSimpleDataAsFutureForcedDependencies(names) {\n for (const name of names) {\n if (name in this.#simple) {\n this.recordFutureForcedDependency(name, this.#simple[name]);\n }\n }\n return this;\n }\n inheritPendingDependenciesAsFutureForcedDependencies() {\n for (const dep of this.#pendingDependencies) {\n this.recordFutureForcedDependency(FORCED_DEPENDENCY_LABEL, dep);\n }\n return this;\n }\n resetBBox(idx) {\n this.#bboxTracker.resetBBox(idx);\n return this;\n }\n recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n this.#bboxTracker.recordClipBox(idx, ctx, minX, maxX, minY, maxY);\n return this;\n }\n recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n this.#bboxTracker.recordBBox(idx, ctx, minX, maxX, minY, maxY);\n return this;\n }\n recordCharacterBBox(idx, ctx, font, scale = 1, x = 0, y = 0, getMeasure) {\n const fontBBox = font.bbox;\n let isBBoxTrustworthy;\n let computedBBox;\n if (fontBBox) {\n isBBoxTrustworthy = fontBBox[2] !== fontBBox[0] && fontBBox[3] !== fontBBox[1] && this.#fontBBoxTrustworthy.get(font);\n if (isBBoxTrustworthy !== false) {\n computedBBox = [0, 0, 0, 0];\n Util.axialAlignedBoundingBox(fontBBox, font.fontMatrix, computedBBox);\n if (scale !== 1 || x !== 0 || y !== 0) {\n Util.scaleMinMax([scale, 0, 0, -scale, x, y], computedBBox);\n }\n if (isBBoxTrustworthy) {\n return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);\n }\n }\n }\n if (!getMeasure) {\n return this.recordFullPageBBox(idx);\n }\n const measure = getMeasure();\n if (fontBBox && computedBBox && isBBoxTrustworthy === undefined) {\n isBBoxTrustworthy = computedBBox[0] <= x - measure.actualBoundingBoxLeft && computedBBox[2] >= x + measure.actualBoundingBoxRight && computedBBox[1] <= y - measure.actualBoundingBoxAscent && computedBBox[3] >= y + measure.actualBoundingBoxDescent;\n this.#fontBBoxTrustworthy.set(font, isBBoxTrustworthy);\n if (isBBoxTrustworthy) {\n return this.recordBBox(idx, ctx, computedBBox[0], computedBBox[2], computedBBox[1], computedBBox[3]);\n }\n }\n return this.recordBBox(idx, ctx, x - measure.actualBoundingBoxLeft, x + measure.actualBoundingBoxRight, y - measure.actualBoundingBoxAscent, y + measure.actualBoundingBoxDescent);\n }\n recordFullPageBBox(idx) {\n this.#bboxTracker.recordFullPageBBox(idx);\n return this;\n }\n getSimpleIndex(dependencyName) {\n return this.#simple[dependencyName];\n }\n recordDependencies(idx, dependencyNames) {\n const pendingDependencies = this.#pendingDependencies;\n const simple = this.#simple;\n const incremental = this.#incremental;\n for (const name of dependencyNames) {\n if (name in this.#simple) {\n pendingDependencies.add(simple[name]);\n } else if (name in incremental) {\n incremental[name].forEach(pendingDependencies.add, pendingDependencies);\n }\n }\n return this;\n }\n recordNamedDependency(idx, name) {\n if (this.#namedDependencies.has(name)) {\n this.#pendingDependencies.add(this.#namedDependencies.get(name));\n }\n return this;\n }\n recordOperation(idx, preserve = false) {\n this.recordDependencies(idx, [FORCED_DEPENDENCY_LABEL]);\n if (this.#debugMetadata) {\n const metadata = ensureDebugMetadata(this.#debugMetadata, idx);\n const {\n dependencies\n } = metadata;\n this.#pendingDependencies.forEach(dependencies.add, dependencies);\n this.#bboxTracker._savesStack.forEach(dependencies.add, dependencies);\n this.#bboxTracker._markedContentStack.forEach(dependencies.add, dependencies);\n dependencies.delete(idx);\n metadata.isRenderingOperation = true;\n }\n const needsCleanup = !preserve && idx === this.#bboxTracker._pendingBBoxIdx;\n this.#bboxTracker.recordOperation(idx, preserve, [this.#pendingDependencies, this.#bboxTracker._savesStack, this.#bboxTracker._markedContentStack]);\n if (needsCleanup) {\n this.#pendingDependencies.clear();\n }\n return this;\n }\n recordShowTextOperation(idx, preserve = false) {\n const deps = Array.from(this.#pendingDependencies);\n this.recordOperation(idx, preserve);\n this.recordIncrementalData(\"sameLineText\", idx);\n for (const dep of deps) {\n this.recordIncrementalData(\"sameLineText\", dep);\n }\n return this;\n }\n bboxToClipBoxDropOperation(idx, preserve = false) {\n const needsCleanup = !preserve && idx === this.#bboxTracker._pendingBBoxIdx;\n this.#bboxTracker.bboxToClipBoxDropOperation(idx);\n if (needsCleanup) {\n this.#pendingDependencies.clear();\n }\n return this;\n }\n take() {\n this.#fontBBoxTrustworthy.clear();\n return this.#bboxTracker.take();\n }\n takeDebugMetadata() {\n return this.#debugMetadata;\n }\n}\nclass CanvasNestedDependencyTracker {\n #dependencyTracker;\n #opIdx;\n #ignoreBBoxes;\n #nestingLevel = 0;\n #savesLevel = 0;\n constructor(dependencyTracker, opIdx, ignoreBBoxes) {\n if (dependencyTracker instanceof CanvasNestedDependencyTracker && dependencyTracker.#ignoreBBoxes === !!ignoreBBoxes) {\n return dependencyTracker;\n }\n this.#dependencyTracker = dependencyTracker;\n this.#opIdx = opIdx;\n this.#ignoreBBoxes = !!ignoreBBoxes;\n }\n get clipBox() {\n return this.#dependencyTracker.clipBox;\n }\n growOperationsCount() {\n throw new Error(\"Unreachable\");\n }\n save(opIdx) {\n this.#savesLevel++;\n this.#dependencyTracker.save(this.#opIdx);\n return this;\n }\n restore(opIdx) {\n if (this.#savesLevel > 0) {\n this.#dependencyTracker.restore(this.#opIdx);\n this.#savesLevel--;\n }\n return this;\n }\n recordOpenMarker(idx) {\n this.#nestingLevel++;\n return this;\n }\n getOpenMarker() {\n return this.#nestingLevel > 0 ? this.#opIdx : this.#dependencyTracker.getOpenMarker();\n }\n recordCloseMarker(idx) {\n this.#nestingLevel--;\n return this;\n }\n beginMarkedContent(opIdx) {\n return this;\n }\n endMarkedContent(opIdx) {\n return this;\n }\n pushBaseTransform(ctx) {\n this.#dependencyTracker.pushBaseTransform(ctx);\n return this;\n }\n popBaseTransform() {\n this.#dependencyTracker.popBaseTransform();\n return this;\n }\n recordSimpleData(name, idx) {\n this.#dependencyTracker.recordSimpleData(name, this.#opIdx);\n return this;\n }\n recordIncrementalData(name, idx) {\n this.#dependencyTracker.recordIncrementalData(name, this.#opIdx);\n return this;\n }\n resetIncrementalData(name, idx) {\n this.#dependencyTracker.resetIncrementalData(name, this.#opIdx);\n return this;\n }\n recordNamedData(name, idx) {\n return this;\n }\n recordSimpleDataFromNamed(name, depName, fallbackIdx) {\n this.#dependencyTracker.recordSimpleDataFromNamed(name, depName, this.#opIdx);\n return this;\n }\n recordFutureForcedDependency(name, idx) {\n this.#dependencyTracker.recordFutureForcedDependency(name, this.#opIdx);\n return this;\n }\n inheritSimpleDataAsFutureForcedDependencies(names) {\n this.#dependencyTracker.inheritSimpleDataAsFutureForcedDependencies(names);\n return this;\n }\n inheritPendingDependenciesAsFutureForcedDependencies() {\n this.#dependencyTracker.inheritPendingDependenciesAsFutureForcedDependencies();\n return this;\n }\n resetBBox(idx) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.resetBBox(this.#opIdx);\n }\n return this;\n }\n recordClipBox(idx, ctx, minX, maxX, minY, maxY) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordClipBox(this.#opIdx, ctx, minX, maxX, minY, maxY);\n }\n return this;\n }\n recordBBox(idx, ctx, minX, maxX, minY, maxY) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordBBox(this.#opIdx, ctx, minX, maxX, minY, maxY);\n }\n return this;\n }\n recordCharacterBBox(idx, ctx, font, scale, x, y, getMeasure) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordCharacterBBox(this.#opIdx, ctx, font, scale, x, y, getMeasure);\n }\n return this;\n }\n recordFullPageBBox(idx) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.recordFullPageBBox(this.#opIdx);\n }\n return this;\n }\n getSimpleIndex(dependencyName) {\n return this.#dependencyTracker.getSimpleIndex(dependencyName);\n }\n recordDependencies(idx, dependencyNames) {\n this.#dependencyTracker.recordDependencies(this.#opIdx, dependencyNames);\n return this;\n }\n recordNamedDependency(idx, name) {\n this.#dependencyTracker.recordNamedDependency(this.#opIdx, name);\n return this;\n }\n recordOperation(idx) {\n this.#dependencyTracker.recordOperation(this.#opIdx, true);\n return this;\n }\n recordShowTextOperation(idx) {\n this.#dependencyTracker.recordShowTextOperation(this.#opIdx, true);\n return this;\n }\n bboxToClipBoxDropOperation(idx) {\n if (!this.#ignoreBBoxes) {\n this.#dependencyTracker.bboxToClipBoxDropOperation(this.#opIdx, true);\n }\n return this;\n }\n take() {\n throw new Error(\"Unreachable\");\n }\n takeDebugMetadata() {\n throw new Error(\"Unreachable\");\n }\n}\nconst Dependencies = {\n stroke: [\"path\", \"transform\", \"filter\", \"strokeColor\", \"strokeAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"dash\"],\n fill: [\"path\", \"transform\", \"filter\", \"fillColor\", \"fillAlpha\", \"globalCompositeOperation\", \"SMask\"],\n imageXObject: [\"transform\", \"SMask\", \"filter\", \"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\"],\n rawFillPath: [\"filter\", \"fillColor\", \"fillAlpha\"],\n showText: [\"transform\", \"leading\", \"charSpacing\", \"wordSpacing\", \"hScale\", \"textRise\", \"moveText\", \"textMatrix\", \"font\", \"fontObj\", \"filter\", \"fillColor\", \"textRenderingMode\", \"SMask\", \"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\", \"sameLineText\"],\n transform: [\"transform\"],\n transformAndFill: [\"transform\", \"fillColor\"]\n};\nclass CanvasImagesTracker {\n #canvasWidth;\n #canvasHeight;\n #capacity = 4;\n #count = 0;\n #coords = new CanvasImagesTracker.#CoordsArray(this.#capacity * 6);\n static #CoordsArray = FeatureTest.isFloat16ArraySupported ? Float16Array : Float32Array;\n constructor(canvas) {\n this.#canvasWidth = canvas.width;\n this.#canvasHeight = canvas.height;\n }\n record(ctx, width, height, clipBox) {\n if (this.#count === this.#capacity) {\n this.#capacity *= 2;\n const newCoords = new CanvasImagesTracker.#CoordsArray(this.#capacity * 6);\n newCoords.set(this.#coords);\n this.#coords = newCoords;\n }\n const transform = Util.domMatrixToTransform(ctx.getTransform());\n let coords;\n if (clipBox[0] !== Infinity) {\n const bbox = BBOX_INIT.slice();\n Util.axialAlignedBoundingBox([0, -height, width, 0], transform, bbox);\n const finalBBox = Util.intersect(clipBox, bbox);\n if (!finalBBox) {\n return;\n }\n const [minX, minY, maxX, maxY] = finalBBox;\n if (minX !== bbox[0] || minY !== bbox[1] || maxX !== bbox[2] || maxY !== bbox[3]) {\n const rotationAngle = Math.atan2(transform[1], transform[0]);\n const sin = Math.abs(Math.sin(rotationAngle));\n const cos = Math.abs(Math.cos(rotationAngle));\n if (sin < 1e-6 || cos < 1e-6 || Math.abs(sin - cos) < 1e-6) {\n coords = [minX, minY, minX, maxY, maxX, minY];\n } else {\n const finalBBoxWidth = maxX - minX;\n const finalBBoxHeight = maxY - minY;\n const sin2 = sin * sin;\n const cos2 = cos * cos;\n const cosSin = cos * sin;\n const denom = cos2 - sin2;\n const a = (finalBBoxHeight * cos2 - finalBBoxWidth * cosSin) / denom;\n const b = (finalBBoxHeight * cosSin - finalBBoxWidth * sin2) / denom;\n coords = [minX + b, minY, minX, minY + a, maxX, maxY - a];\n }\n }\n }\n if (!coords) {\n coords = [0, -height, 0, 0, width, -height];\n Util.applyTransform(coords, transform, 0);\n Util.applyTransform(coords, transform, 2);\n Util.applyTransform(coords, transform, 4);\n }\n coords[0] /= this.#canvasWidth;\n coords[1] /= this.#canvasHeight;\n coords[2] /= this.#canvasWidth;\n coords[3] /= this.#canvasHeight;\n coords[4] /= this.#canvasWidth;\n coords[5] /= this.#canvasHeight;\n this.#coords.set(coords, this.#count * 6);\n this.#count++;\n }\n take() {\n return this.#coords.subarray(0, this.#count * 6);\n }\n}\n\n;// ./src/display/font_loader.js\n\n\n\n\n\n\n\n\n\n\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 disableFontFace,\n _inspectFont\n }) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n assert(!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 return shadow(this, \"isSyncFontLoadingSupported\", isNodeJS || FeatureTest.platform.isFirefox);\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 string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 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 compiledGlyphs = Object.create(null);\n #fontData;\n constructor(translatedData, inspectFont = null, charProcOperatorList, extra) {\n this.#fontData = translatedData;\n this._inspectFont = inspectFont;\n if (charProcOperatorList) {\n this.charProcOperatorList = charProcOperatorList;\n }\n if (extra) {\n Object.assign(this, extra);\n }\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,${this.data.toBase64()});`;\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 const objId = this.loadedName + \"_path_\" + character;\n let cmds;\n try {\n cmds = objs.get(objId);\n } catch (ex) {\n warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n }\n const path = makePathFromDrawOPS(cmds?.path);\n if (!this.fontExtraProperties) {\n objs.delete(objId);\n }\n return this.compiledGlyphs[character] = path;\n }\n get black() {\n return this.#fontData.black;\n }\n get bold() {\n return this.#fontData.bold;\n }\n get disableFontFace() {\n return this.#fontData.disableFontFace;\n }\n set disableFontFace(value) {\n shadow(this, \"disableFontFace\", !!value);\n }\n get fontExtraProperties() {\n return this.#fontData.fontExtraProperties;\n }\n get isInvalidPDFjsFont() {\n return this.#fontData.isInvalidPDFjsFont;\n }\n get isType3Font() {\n return this.#fontData.isType3Font;\n }\n get italic() {\n return this.#fontData.italic;\n }\n get missingFile() {\n return this.#fontData.missingFile;\n }\n get remeasure() {\n return this.#fontData.remeasure;\n }\n get vertical() {\n return this.#fontData.vertical;\n }\n get ascent() {\n return this.#fontData.ascent;\n }\n get defaultWidth() {\n return this.#fontData.defaultWidth;\n }\n get descent() {\n return this.#fontData.descent;\n }\n get bbox() {\n return this.#fontData.bbox;\n }\n get fontMatrix() {\n return this.#fontData.fontMatrix;\n }\n get fallbackName() {\n return this.#fontData.fallbackName;\n }\n get loadedName() {\n return this.#fontData.loadedName;\n }\n get mimetype() {\n return this.#fontData.mimetype;\n }\n get name() {\n return this.#fontData.name;\n }\n get data() {\n return this.#fontData.data;\n }\n clearData() {\n this.#fontData.clearData();\n }\n get cssFontInfo() {\n return this.#fontData.cssFontInfo;\n }\n get systemFontInfo() {\n return this.#fontData.systemFontInfo;\n }\n get defaultVMetrics() {\n return this.#fontData.defaultVMetrics;\n }\n}\n\n;// ./src/shared/obj_bin_transform_utils.js\nclass CSS_FONT_INFO {\n static strings = [\"fontFamily\", \"fontWeight\", \"italicAngle\"];\n}\nclass SYSTEM_FONT_INFO {\n static strings = [\"css\", \"loadedName\", \"baseFontName\", \"src\"];\n}\nclass FONT_INFO {\n static bools = [\"black\", \"bold\", \"disableFontFace\", \"fontExtraProperties\", \"isInvalidPDFjsFont\", \"isType3Font\", \"italic\", \"missingFile\", \"remeasure\", \"vertical\"];\n static numbers = [\"ascent\", \"defaultWidth\", \"descent\"];\n static strings = [\"fallbackName\", \"loadedName\", \"mimetype\", \"name\"];\n static OFFSET_NUMBERS = Math.ceil(this.bools.length * 2 / 8);\n static OFFSET_BBOX = this.OFFSET_NUMBERS + this.numbers.length * 8;\n static OFFSET_FONT_MATRIX = this.OFFSET_BBOX + 1 + 2 * 4;\n static OFFSET_DEFAULT_VMETRICS = this.OFFSET_FONT_MATRIX + 1 + 8 * 6;\n static OFFSET_STRINGS = this.OFFSET_DEFAULT_VMETRICS + 1 + 2 * 3;\n}\nclass PATTERN_INFO {\n static KIND = 0;\n static HAS_BBOX = 1;\n static HAS_BACKGROUND = 2;\n static SHADING_TYPE = 3;\n static N_COORD = 4;\n static N_COLOR = 8;\n static N_STOP = 12;\n static N_FIGURES = 16;\n}\n\n;// ./src/display/obj_bin_transform_display.js\n\n\n\n\n\n\n\n\n\n\n\nclass CssFontInfo {\n #buffer;\n #decoder = new TextDecoder();\n #view;\n constructor(buffer) {\n this.#buffer = buffer;\n this.#view = new DataView(buffer);\n }\n #readString(index) {\n assert(index < CSS_FONT_INFO.strings.length, \"Invalid string index\");\n let offset = 0;\n for (let i = 0; i < index; i++) {\n offset += this.#view.getUint32(offset) + 4;\n }\n const length = this.#view.getUint32(offset);\n return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n }\n get fontFamily() {\n return this.#readString(0);\n }\n get fontWeight() {\n return this.#readString(1);\n }\n get italicAngle() {\n return this.#readString(2);\n }\n}\nclass SystemFontInfo {\n #buffer;\n #decoder = new TextDecoder();\n #view;\n constructor(buffer) {\n this.#buffer = buffer;\n this.#view = new DataView(buffer);\n }\n get guessFallback() {\n return this.#view.getUint8(0) !== 0;\n }\n #readString(index) {\n assert(index < SYSTEM_FONT_INFO.strings.length, \"Invalid string index\");\n let offset = 5;\n for (let i = 0; i < index; i++) {\n offset += this.#view.getUint32(offset) + 4;\n }\n const length = this.#view.getUint32(offset);\n return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n }\n get css() {\n return this.#readString(0);\n }\n get loadedName() {\n return this.#readString(1);\n }\n get baseFontName() {\n return this.#readString(2);\n }\n get src() {\n return this.#readString(3);\n }\n get style() {\n let offset = 1;\n offset += 4 + this.#view.getUint32(offset);\n const styleLength = this.#view.getUint32(offset);\n const style = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, styleLength));\n offset += 4 + styleLength;\n const weightLength = this.#view.getUint32(offset);\n const weight = this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, weightLength));\n return {\n style,\n weight\n };\n }\n}\nclass FontInfo {\n #buffer;\n #decoder = new TextDecoder();\n #view;\n constructor({\n buffer,\n extra\n }) {\n this.#buffer = buffer;\n this.#view = new DataView(buffer);\n if (extra) {\n Object.assign(this, extra);\n }\n }\n #readBoolean(index) {\n assert(index < FONT_INFO.bools.length, \"Invalid boolean index\");\n const byteOffset = Math.floor(index / 4);\n const bitOffset = index * 2 % 8;\n const value = this.#view.getUint8(byteOffset) >> bitOffset & 0x03;\n return value === 0x00 ? undefined : value === 0x02;\n }\n get black() {\n return this.#readBoolean(0);\n }\n get bold() {\n return this.#readBoolean(1);\n }\n get disableFontFace() {\n return this.#readBoolean(2);\n }\n get fontExtraProperties() {\n return this.#readBoolean(3);\n }\n get isInvalidPDFjsFont() {\n return this.#readBoolean(4);\n }\n get isType3Font() {\n return this.#readBoolean(5);\n }\n get italic() {\n return this.#readBoolean(6);\n }\n get missingFile() {\n return this.#readBoolean(7);\n }\n get remeasure() {\n return this.#readBoolean(8);\n }\n get vertical() {\n return this.#readBoolean(9);\n }\n #readNumber(index) {\n assert(index < FONT_INFO.numbers.length, \"Invalid number index\");\n return this.#view.getFloat64(FONT_INFO.OFFSET_NUMBERS + index * 8);\n }\n get ascent() {\n return this.#readNumber(0);\n }\n get defaultWidth() {\n return this.#readNumber(1);\n }\n get descent() {\n return this.#readNumber(2);\n }\n #readArray(offset, arrLen, lookupName, increment) {\n const len = this.#view.getUint8(offset);\n if (len === 0) {\n return undefined;\n }\n assert(len === arrLen, \"Invalid array length.\");\n offset += 1;\n const arr = new Array(len);\n for (let i = 0; i < len; i++) {\n arr[i] = this.#view[lookupName](offset, true);\n offset += increment;\n }\n return arr;\n }\n get bbox() {\n return this.#readArray(FONT_INFO.OFFSET_BBOX, 4, \"getInt16\", 2);\n }\n get fontMatrix() {\n return this.#readArray(FONT_INFO.OFFSET_FONT_MATRIX, 6, \"getFloat64\", 8);\n }\n get defaultVMetrics() {\n return this.#readArray(FONT_INFO.OFFSET_DEFAULT_VMETRICS, 3, \"getInt16\", 2);\n }\n #readString(index) {\n assert(index < FONT_INFO.strings.length, \"Invalid string index\");\n let offset = FONT_INFO.OFFSET_STRINGS + 4;\n for (let i = 0; i < index; i++) {\n offset += this.#view.getUint32(offset) + 4;\n }\n const length = this.#view.getUint32(offset);\n return this.#decoder.decode(new Uint8Array(this.#buffer, offset + 4, length));\n }\n get fallbackName() {\n return this.#readString(0);\n }\n get loadedName() {\n return this.#readString(1);\n }\n get mimetype() {\n return this.#readString(2);\n }\n get name() {\n return this.#readString(3);\n }\n #getDataOffsets() {\n let offset = FONT_INFO.OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + systemFontInfoLength;\n const cssFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + cssFontInfoLength;\n const length = this.#view.getUint32(offset);\n return {\n offset,\n length\n };\n }\n get data() {\n const {\n offset,\n length\n } = this.#getDataOffsets();\n return length === 0 ? undefined : new Uint8Array(this.#buffer, offset + 4, length);\n }\n clearData() {\n const {\n offset,\n length\n } = this.#getDataOffsets();\n if (length === 0) {\n return;\n }\n this.#view.setUint32(offset, 0);\n this.#buffer = new Uint8Array(this.#buffer, 0, offset + 4).slice().buffer;\n this.#view = new DataView(this.#buffer);\n }\n get cssFontInfo() {\n let offset = FONT_INFO.OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n offset += 4 + systemFontInfoLength;\n const cssFontInfoLength = this.#view.getUint32(offset);\n if (cssFontInfoLength === 0) {\n return null;\n }\n const cssFontInfoData = new Uint8Array(cssFontInfoLength);\n cssFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, cssFontInfoLength));\n return new CssFontInfo(cssFontInfoData.buffer);\n }\n get systemFontInfo() {\n let offset = FONT_INFO.OFFSET_STRINGS;\n const stringsLength = this.#view.getUint32(offset);\n offset += 4 + stringsLength;\n const systemFontInfoLength = this.#view.getUint32(offset);\n if (systemFontInfoLength === 0) {\n return null;\n }\n const systemFontInfoData = new Uint8Array(systemFontInfoLength);\n systemFontInfoData.set(new Uint8Array(this.#buffer, offset + 4, systemFontInfoLength));\n return new SystemFontInfo(systemFontInfoData.buffer);\n }\n}\nclass PatternInfo {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(buffer);\n this.data = new Uint8Array(buffer);\n }\n getIR() {\n const dataView = this.view;\n const kind = this.data[PATTERN_INFO.KIND];\n const hasBBox = !!this.data[PATTERN_INFO.HAS_BBOX];\n const hasBackground = !!this.data[PATTERN_INFO.HAS_BACKGROUND];\n const nCoord = dataView.getUint32(PATTERN_INFO.N_COORD, true);\n const nColor = dataView.getUint32(PATTERN_INFO.N_COLOR, true);\n const nStop = dataView.getUint32(PATTERN_INFO.N_STOP, true);\n let offset = 20;\n const coords = new Float32Array(this.buffer, offset, nCoord * 2);\n offset += nCoord * 8;\n const colors = new Uint8Array(this.buffer, offset, nColor * 4);\n offset += nColor * 4;\n const stops = [];\n for (let i = 0; i < nStop; ++i) {\n const p = dataView.getFloat32(offset, true);\n offset += 4;\n const rgb = dataView.getUint32(offset, true);\n offset += 4;\n stops.push([p, `#${rgb.toString(16).padStart(6, \"0\")}`]);\n }\n let bbox = null;\n if (hasBBox) {\n bbox = [];\n for (let i = 0; i < 4; ++i) {\n bbox.push(dataView.getFloat32(offset, true));\n offset += 4;\n }\n }\n let background = null;\n if (hasBackground) {\n background = new Uint8Array(this.buffer, offset, 3);\n offset += 3;\n }\n if (kind === 1) {\n return [\"RadialAxial\", \"axial\", bbox, stops, Array.from(coords.slice(0, 2)), Array.from(coords.slice(2, 4)), null, null];\n }\n if (kind === 2) {\n return [\"RadialAxial\", \"radial\", bbox, stops, [coords[0], coords[1]], [coords[3], coords[4]], coords[2], coords[5]];\n }\n if (kind === 3) {\n const shadingType = this.data[PATTERN_INFO.SHADING_TYPE];\n let bounds = null;\n if (coords.length > 0) {\n bounds = BBOX_INIT.slice();\n for (let i = 0, ii = coords.length; i < ii; i += 2) {\n Util.pointBoundingBox(coords[i], coords[i + 1], bounds);\n }\n }\n return [\"Mesh\", shadingType, coords, colors, nCoord, bounds, bbox, background];\n }\n throw new Error(`Unsupported pattern kind: ${kind}`);\n }\n}\nclass FontPathInfo {\n #buffer;\n constructor(buffer) {\n this.#buffer = buffer;\n }\n get path() {\n if (FeatureTest.isFloat16ArraySupported) {\n return new Float16Array(this.#buffer);\n }\n return new Float32Array(this.#buffer);\n }\n}\n\n;// ./src/display/api_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val;\n }\n if (typeof val === \"string\") {\n if (isNodeJS) {\n if (/^[a-z][a-z0-9\\-+.]+:/i.test(val)) {\n return new URL(val);\n }\n const url = process.getBuiltinModule(\"url\");\n return new URL(url.pathToFileURL(val));\n }\n const url = URL.parse(val, window.location);\n if (url) {\n return url;\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 getFactoryUrlProp(val) {\n if (typeof val !== \"string\") {\n return null;\n }\n if (val.endsWith(\"/\")) {\n return val;\n }\n throw new Error(`Invalid factory url: \"${val}\" must include trailing slash.`);\n}\nconst isRefProxy = v => typeof v === \"object\" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;\nconst isNameProxy = v => typeof v === \"object\" && typeof v?.name === \"string\";\nconst isValidExplicitDest = _isValidExplicitDest.bind(null, isRefProxy, isNameProxy);\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}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.try.js\nvar es_promise_try = __webpack_require__(1689);\n;// ./src/shared/message_handler.js\n\n\n\nconst CallbackKind = {\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\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 onFn() {}\nfunction wrapReason(ex) {\n if (ex instanceof AbortException || ex instanceof InvalidPDFException || ex instanceof PasswordException || ex instanceof ResponseException || ex instanceof UnknownErrorException) {\n return ex;\n }\n if (!(ex instanceof Error || typeof ex === \"object\" && ex !== null)) {\n unreachable('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (ex.name) {\n case \"AbortException\":\n return new AbortException(ex.message);\n case \"InvalidPDFException\":\n return new InvalidPDFException(ex.message);\n case \"PasswordException\":\n return new PasswordException(ex.message, ex.code);\n case \"ResponseException\":\n return new ResponseException(ex.message, ex.status, ex.missing);\n case \"UnknownErrorException\":\n return new UnknownErrorException(ex.message, ex.details);\n }\n return new UnknownErrorException(ex.message, ex.toString());\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 Promise.try(action, data.data).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 Promise.try(action, data.data, streamSink).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 Promise.try(streamSink.onPull || onFn).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 const dataReason = wrapReason(data.reason);\n Promise.try(streamSink.onCancel || onFn, dataReason).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(dataReason);\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/binary_data_factory.js\n\n\n\n\n\n\n\n\n\n\nclass BaseBinaryDataFactory {\n #errorStr = Object.freeze({\n cMapUrl: \"CMap\",\n standardFontDataUrl: \"font\",\n wasmUrl: \"wasm\"\n });\n constructor({\n cMapUrl = null,\n standardFontDataUrl = null,\n wasmUrl = null\n }) {\n this.cMapUrl = cMapUrl;\n this.standardFontDataUrl = standardFontDataUrl;\n this.wasmUrl = wasmUrl;\n }\n async fetch({\n kind,\n filename\n }) {\n switch (kind) {\n case \"cMapUrl\":\n case \"standardFontDataUrl\":\n case \"wasmUrl\":\n break;\n default:\n unreachable(`Not implemented: ${kind}`);\n }\n const baseUrl = this[kind];\n if (!baseUrl) {\n throw new Error(`Ensure that the \\`${kind}\\` API parameter is provided.`);\n }\n const url = `${baseUrl}${filename}`;\n return this._fetch(url, kind).catch(reason => {\n throw new Error(`Unable to load ${this.#errorStr[kind]} data at: ${url}`);\n });\n }\n async _fetch(url, kind) {\n unreachable(\"Abstract method `_fetch` called.\");\n }\n}\nclass DOMBinaryDataFactory extends BaseBinaryDataFactory {\n async _fetch(url, kind) {\n const type = kind === \"cMapUrl\" && !url.endsWith(\".bcmap\") ? \"text\" : \"bytes\";\n const data = await fetchData(url, type);\n return data instanceof Uint8Array ? data : stringToBytes(data);\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({\n canvas\n }, width, height) {\n if (!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 canvas.width = width;\n canvas.height = height;\n }\n destroy(canvasAndContext) {\n const {\n canvas\n } = canvasAndContext;\n if (!canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvas.width = 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// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js\nvar es_iterator_filter = __webpack_require__(2489);\n;// ./src/display/filter_factory.js\n\n\n\n\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 = updateUrlHash(url, \"\");\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) {\n return;\n }\n this.#_defs?.parentNode.parentNode.remove();\n this.#_defs = null;\n this.#_cache?.clear();\n this.#_cache = null;\n this.#_hcmCache?.clear();\n this.#_hcmCache = null;\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/node_utils.js\n\n\n\n\n\n\n\n\n\n\n\n\nif (isNodeJS) {\n let canvas;\n try {\n const require = process.getBuiltinModule(\"module\").createRequire(import.meta.url);\n try {\n canvas = require(\"@napi-rs/canvas\");\n } catch (ex) {\n warn(`Cannot load \"@napi-rs/canvas\" package: \"${ex}\".`);\n }\n } catch (ex) {\n warn(`Cannot access the \\`require\\` function: \"${ex}\".`);\n }\n if (!globalThis.DOMMatrix) {\n if (canvas?.DOMMatrix) {\n globalThis.DOMMatrix = canvas.DOMMatrix;\n } else {\n warn(\"Cannot polyfill `DOMMatrix`, rendering may be broken.\");\n }\n }\n if (!globalThis.ImageData) {\n if (canvas?.ImageData) {\n globalThis.ImageData = canvas.ImageData;\n } else {\n warn(\"Cannot polyfill `ImageData`, rendering may be broken.\");\n }\n }\n if (!globalThis.Path2D) {\n if (canvas?.Path2D) {\n globalThis.Path2D = canvas.Path2D;\n } else {\n warn(\"Cannot polyfill `Path2D`, rendering may be broken.\");\n }\n }\n if (!globalThis.navigator?.language) {\n globalThis.navigator = {\n language: \"en-US\",\n platform: \"\",\n userAgent: \"\"\n };\n }\n}\nasync function node_utils_fetchData(url) {\n const fs = process.getBuiltinModule(\"fs/promises\");\n const data = await fs.readFile(url);\n return new Uint8Array(data);\n}\nclass NodeFilterFactory extends BaseFilterFactory {}\nclass NodeCanvasFactory extends BaseCanvasFactory {\n _createCanvas(width, height) {\n const require = process.getBuiltinModule(\"module\").createRequire(import.meta.url);\n const canvas = require(\"@napi-rs/canvas\");\n return canvas.createCanvas(width, height);\n }\n}\nclass NodeBinaryDataFactory extends BaseBinaryDataFactory {\n async _fetch(url, kind) {\n return node_utils_fetchData(url);\n }\n}\n\n;// ./src/display/webgpu.js\n\n\n\n\nconst MESH_WGSL = `\nstruct Uniforms {\n offsetX : f32,\n offsetY : f32,\n scaleX : f32,\n scaleY : f32,\n paddedWidth : f32,\n paddedHeight : f32,\n borderSize : f32,\n _pad : f32,\n};\n\n@group(0) @binding(0) var<uniform> u : Uniforms;\n\nstruct VertexInput {\n @location(0) position : vec2<f32>,\n @location(1) color : vec4<f32>,\n};\n\nstruct VertexOutput {\n @builtin(position) position : vec4<f32>,\n @location(0) color : vec3<f32>,\n};\n\n@vertex\nfn vs_main(in : VertexInput) -> VertexOutput {\n var out : VertexOutput;\n let cx = (in.position.x + u.offsetX) * u.scaleX;\n let cy = (in.position.y + u.offsetY) * u.scaleY;\n out.position = vec4<f32>(\n ((cx + u.borderSize) / u.paddedWidth) * 2.0 - 1.0,\n 1.0 - ((cy + u.borderSize) / u.paddedHeight) * 2.0,\n 0.0,\n 1.0\n );\n out.color = in.color.rgb;\n return out;\n}\n\n@fragment\nfn fs_main(in : VertexOutput) -> @location(0) vec4<f32> {\n return vec4<f32>(in.color, 1.0);\n}\n`;\nclass WebGPU {\n #initPromise = null;\n #device = null;\n #meshPipeline = null;\n #preferredFormat = null;\n async #initGPU() {\n if (!globalThis.navigator?.gpu) {\n return false;\n }\n try {\n const adapter = await navigator.gpu.requestAdapter();\n if (!adapter) {\n return false;\n }\n this.#preferredFormat = navigator.gpu.getPreferredCanvasFormat();\n this.#device = await adapter.requestDevice();\n return true;\n } catch {\n return false;\n }\n }\n init() {\n return this.#initPromise ||= this.#initGPU();\n }\n get isReady() {\n return this.#device !== null;\n }\n loadMeshShader() {\n if (!this.#device || this.#meshPipeline) {\n return;\n }\n const shaderModule = this.#device.createShaderModule({\n code: MESH_WGSL\n });\n this.#meshPipeline = this.#device.createRenderPipeline({\n layout: \"auto\",\n vertex: {\n module: shaderModule,\n entryPoint: \"vs_main\",\n buffers: [{\n arrayStride: 2 * 4,\n attributes: [{\n shaderLocation: 0,\n offset: 0,\n format: \"float32x2\"\n }]\n }, {\n arrayStride: 4,\n attributes: [{\n shaderLocation: 1,\n offset: 0,\n format: \"unorm8x4\"\n }]\n }]\n },\n fragment: {\n module: shaderModule,\n entryPoint: \"fs_main\",\n targets: [{\n format: this.#preferredFormat\n }]\n },\n primitive: {\n topology: \"triangle-list\"\n }\n });\n }\n draw(posData, colData, vertexCount, context, backgroundColor, paddedWidth, paddedHeight, borderSize) {\n this.loadMeshShader();\n const device = this.#device;\n const {\n offsetX,\n offsetY,\n scaleX,\n scaleY\n } = context;\n const posBuffer = device.createBuffer({\n size: Math.max(posData.byteLength, 4),\n usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST\n });\n if (posData.byteLength > 0) {\n device.queue.writeBuffer(posBuffer, 0, posData);\n }\n const colBuffer = device.createBuffer({\n size: Math.max(colData.byteLength, 4),\n usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST\n });\n if (colData.byteLength > 0) {\n device.queue.writeBuffer(colBuffer, 0, colData);\n }\n const uniformBuffer = device.createBuffer({\n size: 8 * 4,\n usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n });\n device.queue.writeBuffer(uniformBuffer, 0, new Float32Array([offsetX, offsetY, scaleX, scaleY, paddedWidth, paddedHeight, borderSize, 0]));\n const bindGroup = device.createBindGroup({\n layout: this.#meshPipeline.getBindGroupLayout(0),\n entries: [{\n binding: 0,\n resource: {\n buffer: uniformBuffer\n }\n }]\n });\n const offscreen = new OffscreenCanvas(paddedWidth, paddedHeight);\n const gpuCtx = offscreen.getContext(\"webgpu\");\n gpuCtx.configure({\n device,\n format: this.#preferredFormat,\n alphaMode: backgroundColor ? \"opaque\" : \"premultiplied\"\n });\n const clearValue = backgroundColor ? {\n r: backgroundColor[0] / 255,\n g: backgroundColor[1] / 255,\n b: backgroundColor[2] / 255,\n a: 1\n } : {\n r: 0,\n g: 0,\n b: 0,\n a: 0\n };\n const commandEncoder = device.createCommandEncoder();\n const renderPass = commandEncoder.beginRenderPass({\n colorAttachments: [{\n view: gpuCtx.getCurrentTexture().createView(),\n clearValue,\n loadOp: \"clear\",\n storeOp: \"store\"\n }]\n });\n if (vertexCount > 0) {\n renderPass.setPipeline(this.#meshPipeline);\n renderPass.setBindGroup(0, bindGroup);\n renderPass.setVertexBuffer(0, posBuffer);\n renderPass.setVertexBuffer(1, colBuffer);\n renderPass.draw(vertexCount);\n }\n renderPass.end();\n device.queue.submit([commandEncoder.finish()]);\n posBuffer.destroy();\n colBuffer.destroy();\n uniformBuffer.destroy();\n return offscreen.transferToImageBitmap();\n }\n}\nconst _webGPU = new WebGPU();\nfunction initGPU() {\n return _webGPU.init();\n}\nfunction isGPUReady() {\n return _webGPU.isReady;\n}\nfunction loadMeshShader() {\n _webGPU.loadMeshShader();\n}\nfunction drawMeshWithGPU(posData, colData, vertexCount, context, backgroundColor, paddedWidth, paddedHeight, borderSize) {\n return _webGPU.draw(posData, colData, vertexCount, context, backgroundColor, paddedWidth, paddedHeight, borderSize);\n}\n\n;// ./src/display/pattern_helper.js\n\n\n\n\n\n\n\n\n\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 isModifyingCurrentTransform() {\n return false;\n }\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 isOriginBased() {\n return this._p0[0] === 0 && this._p0[1] === 0 && (!this.isRadial() || this._p1[0] === 0 && this._p1[1] === 0);\n }\n isRadial() {\n return this._type === \"radial\";\n }\n areConic() {\n if (!this.isRadial()) {\n return false;\n }\n const dist = Math.hypot(this._p0[0] - this._p1[0], this._p0[1] - this._p1[1]);\n return dist + this._r1 > this._r0 && dist + this._r0 > this._r1;\n }\n _createGradient(ctx, transform = null) {\n let grad;\n let firstPoint = this._p0;\n let secondPoint = this._p1;\n if (transform) {\n firstPoint = firstPoint.slice();\n secondPoint = secondPoint.slice();\n Util.applyTransform(firstPoint, transform);\n Util.applyTransform(secondPoint, transform);\n }\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(firstPoint[0], firstPoint[1], secondPoint[0], secondPoint[1]);\n } else if (this._type === \"radial\") {\n let r0 = this._r0;\n let r1 = this._r1;\n if (transform) {\n const scale = new Float32Array(2);\n Util.singularValueDecompose2dScale(transform, scale);\n r0 *= scale[0];\n r1 *= scale[0];\n }\n grad = ctx.createRadialGradient(firstPoint[0], firstPoint[1], r0, secondPoint[0], secondPoint[1], r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n _createReversedGradient(ctx, transform = null) {\n let firstPoint = this._p1;\n let secondPoint = this._p0;\n if (transform) {\n firstPoint = firstPoint.slice();\n secondPoint = secondPoint.slice();\n Util.applyTransform(firstPoint, transform);\n Util.applyTransform(secondPoint, transform);\n }\n let r0 = this._r1;\n let r1 = this._r0;\n if (transform) {\n const scale = new Float32Array(2);\n Util.singularValueDecompose2dScale(transform, scale);\n r0 *= scale[0];\n r1 *= scale[0];\n }\n const grad = ctx.createRadialGradient(firstPoint[0], firstPoint[1], r0, secondPoint[0], secondPoint[1], r1);\n const reversedStops = this._colorStops.map(([t, c]) => [1 - t, c]).reverse();\n for (const [t, c] of reversedStops) {\n grad.addColorStop(t, c);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n if (this.isOriginBased()) {\n let transf = Util.transform(inverse, owner.baseTransform);\n if (this.matrix) {\n transf = Util.transform(transf, this.matrix);\n }\n const precision = 1e-3;\n const n1 = Math.hypot(transf[0], transf[1]);\n const n2 = Math.hypot(transf[2], transf[3]);\n const ps = (transf[0] * transf[2] + transf[1] * transf[3]) / (n1 * n2);\n if (Math.abs(ps) < precision) {\n if (this.isRadial()) {\n if (Math.abs(n1 - n2) < precision) {\n return this._createGradient(ctx, transf);\n }\n } else {\n return this._createGradient(ctx, transf);\n }\n }\n }\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.canvasFactory.create(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 if (this.areConic()) {\n tmpCtx.fillStyle = this._createReversedGradient(tmpCtx);\n tmpCtx.fill();\n }\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n owner.canvasFactory.destroy(tmpCanvas);\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n if (this.areConic()) {\n ctx.save();\n applyBoundingBox(ctx, this._bbox);\n ctx.fillStyle = this._createReversedGradient(ctx);\n ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n ctx.restore();\n }\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 * 2 + 1] > coords[p2 * 2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 * 2 + 1] > coords[p3 * 2 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 * 2 + 1] > coords[p2 * 2 + 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 * 2] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 * 2 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2 * 2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 * 2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3 * 2] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 * 2 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1 * 4],\n c1g = colors[c1 * 4 + 1],\n c1b = colors[c1 * 4 + 2];\n const c2r = colors[c2 * 4],\n c2g = colors[c2 * 4 + 1],\n c2b = colors[c2 * 4 + 2];\n const c3r = colors[c3 * 4],\n c3g = colors[c3 * 4 + 1],\n c3b = colors[c3 * 4 + 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}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._posData = IR[2];\n this._colData = IR[3];\n this._vertexCount = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[6];\n this._background = IR[7];\n this.matrix = null;\n loadMeshShader();\n }\n _createMeshCanvas(combinedScale, backgroundColor, canvasFactory) {\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) || 1;\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE) || 1;\n const scaleX = boundsWidth ? boundsWidth / width : 1;\n const scaleY = boundsHeight ? boundsHeight / height : 1;\n const context = {\n coords: this._posData,\n colors: this._colData,\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 = canvasFactory.create(paddedWidth, paddedHeight);\n if (isGPUReady() && this._vertexCount > 48) {\n tmpCanvas.context.drawImage(drawMeshWithGPU(this._posData, this._colData, this._vertexCount, context, backgroundColor, paddedWidth, paddedHeight, BORDER_SIZE), 0, 0);\n } else {\n const data = tmpCanvas.context.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 (let i = 0, ii = this._vertexCount; i < ii; i += 3) {\n drawTriangle(data, context, i, i + 1, i + 2, i, i + 1, i + 2);\n }\n tmpCanvas.context.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n }\n return {\n canvas: tmpCanvas.canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n isModifyingCurrentTransform() {\n return true;\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n const scale = new Float32Array(2);\n if (pathType === PathType.SHADING) {\n Util.singularValueDecompose2dScale(getCurrentTransform(ctx), scale);\n } else if (this.matrix) {\n Util.singularValueDecompose2dScale(this.matrix, scale);\n const [matrixScaleX, matrixScaleY] = scale;\n Util.singularValueDecompose2dScale(owner.baseTransform, scale);\n scale[0] *= matrixScaleX;\n scale[1] *= matrixScaleY;\n } else {\n Util.singularValueDecompose2dScale(owner.baseTransform, scale);\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.canvasFactory);\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 const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n owner.canvasFactory.destroy(temporaryPatternCanvas);\n return pattern;\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, ctx, canvasGraphicsFactory, baseTransform) {\n this.color = IR[1];\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.needsIsolation = IR[9] ?? true;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.patternBaseMatrix = this.matrix ? Util.transform(baseTransform, this.matrix) : baseTransform;\n }\n canSkipPatternCanvas([width, height, offsetX, offsetY]) {\n const [x0, y0, x1, y1] = this.bbox;\n const absXStep = Math.abs(this.xstep);\n const absYStep = Math.abs(this.ystep);\n if (width > absXStep + 1e-6 || height > absYStep + 1e-6) {\n return null;\n }\n const nXFirst = Math.floor((offsetX - x1) / absXStep) + 1;\n const nXLast = Math.ceil((offsetX + width - x0) / absXStep) - 1;\n const nYFirst = Math.floor((offsetY - y1) / absYStep) + 1;\n const nYLast = Math.ceil((offsetY + height - y0) / absYStep) - 1;\n return nXLast <= nXFirst && nYLast <= nYFirst ? [nXFirst, nYFirst] : null;\n }\n updatePatternDims(clippedBBox, dims) {\n const inv = Util.inverseTransform(this.patternBaseMatrix);\n const c1 = [clippedBBox[0], clippedBBox[1]];\n const c2 = [clippedBBox[2], clippedBBox[3]];\n Util.applyTransform(c1, inv);\n Util.applyTransform(c2, inv);\n dims[0] = Math.abs(c2[0] - c1[0]);\n dims[1] = Math.abs(c2[1] - c1[1]);\n dims[2] = Math.min(c1[0], c2[0]);\n dims[3] = Math.min(c1[1], c2[1]);\n }\n _renderTileCanvas(owner, opIdx, dimx, dimy) {\n const [x0, y0, x1, y1] = this.bbox;\n const tmpCanvas = owner.canvasFactory.create(dimx.size, dimy.size);\n const tmpCtx = tmpCanvas.context;\n const graphics = this.canvasGraphicsFactory.createCanvasGraphics(tmpCtx, opIdx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, this.paintType, this.color);\n tmpCtx.translate(-dimx.scale * x0, -dimy.scale * y0);\n graphics.transform(0, dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n graphics.dependencyTracker?.save();\n this.clipBbox(graphics, x0, y0, x1, y1);\n graphics.baseTransform = getCurrentTransform(graphics.ctx);\n graphics.executeOperatorList(this.operatorList);\n graphics.endDrawing();\n graphics.dependencyTracker?.restore();\n tmpCtx.restore();\n return tmpCanvas;\n }\n _getCombinedScales() {\n const scale = new Float32Array(2);\n Util.singularValueDecompose2dScale(this.matrix, scale);\n const [matrixScaleX, matrixScaleY] = scale;\n Util.singularValueDecompose2dScale(this.baseTransform, scale);\n return [matrixScaleX * scale[0], matrixScaleY * scale[1]];\n }\n drawPattern(owner, path, useEOFill = false, [n, m], opIdx) {\n const [x0, y0, x1, y1] = this.bbox;\n const dependencyTracker = owner.dependencyTracker;\n if (dependencyTracker) {\n owner.dependencyTracker = new CanvasNestedDependencyTracker(dependencyTracker, opIdx);\n }\n owner.save();\n if (useEOFill) {\n owner.ctx.clip(path, \"evenodd\");\n } else {\n owner.ctx.clip(path);\n }\n owner.ctx.setTransform(...this.patternBaseMatrix);\n owner.ctx.translate(n * this.xstep, m * this.ystep);\n if (this.needsIsolation || owner.ctx.globalAlpha !== 1 || owner.ctx.globalCompositeOperation !== \"source-over\" || owner.inSMaskMode) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n const [combinedScaleX, combinedScaleY] = this._getCombinedScales();\n const dimx = this.getSizeAndScale(bboxWidth, this.ctx.canvas.width, combinedScaleX);\n const dimy = this.getSizeAndScale(bboxHeight, this.ctx.canvas.height, combinedScaleY);\n const tmpCanvas = this._renderTileCanvas(owner, opIdx, dimx, dimy);\n owner.ctx.drawImage(tmpCanvas.canvas, x0, y0, bboxWidth, bboxHeight);\n owner.canvasFactory.destroy(tmpCanvas);\n } else {\n this.setFillAndStrokeStyleToContext(owner, this.paintType, this.color);\n this.clipBbox(owner, x0, y0, x1, y1);\n owner.baseTransformStack.push(owner.baseTransform);\n owner.baseTransform = getCurrentTransform(owner.ctx);\n owner.executeOperatorList(this.operatorList);\n owner.baseTransform = owner.baseTransformStack.pop();\n }\n owner.restore();\n if (dependencyTracker) {\n owner.dependencyTracker = dependencyTracker;\n }\n }\n createPatternCanvas(owner, opIdx) {\n const [x0, y0, x1, y1] = this.bbox;\n const width = x1 - x0;\n const height = y1 - y0;\n let {\n xstep,\n ystep\n } = this;\n xstep = Math.abs(xstep);\n ystep = Math.abs(ystep);\n info(\"TilingType: \" + this.tilingType);\n const [combinedScaleX, combinedScaleY] = this._getCombinedScales();\n let canvasWidth = width,\n canvasHeight = height,\n redrawHorizontally = false,\n redrawVertically = false;\n if (Math.ceil(xstep * combinedScaleX) >= Math.ceil(width * combinedScaleX)) {\n canvasWidth = xstep;\n } else {\n redrawHorizontally = true;\n }\n if (Math.ceil(ystep * combinedScaleY) >= Math.ceil(height * combinedScaleY)) {\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 = this._renderTileCanvas(owner, opIdx, dimx, dimy);\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.canvasFactory.create(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 owner.canvasFactory.destroy(tmpCanvas);\n return {\n canvas: tmpCanvas2.canvas,\n canvasEntry: tmpCanvas2,\n scaleX: dimx2.scale,\n scaleY: dimy2.scale,\n offsetX: x0,\n offsetY: y0\n };\n }\n return {\n canvas: tmpCanvas.canvas,\n canvasEntry: tmpCanvas,\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 const clip = new Path2D();\n clip.rect(x0, y0, bboxWidth, bboxHeight);\n Util.axialAlignedBoundingBox([x0, y0, x1, y1], getCurrentTransform(graphics.ctx), graphics.current.minMax);\n graphics.ctx.clip(clip);\n graphics.current.updateClipFromPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n current.patternFill = current.patternStroke = false;\n switch (paintType) {\n case PaintType.COLORED:\n const {\n fillStyle,\n strokeStyle\n } = this.ctx;\n context.fillStyle = current.fillColor = fillStyle;\n context.strokeStyle = current.strokeColor = strokeStyle;\n break;\n case PaintType.UNCOLORED:\n context.fillStyle = context.strokeStyle = color;\n current.fillColor = current.strokeColor = color;\n break;\n default:\n throw new FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n isModifyingCurrentTransform() {\n return false;\n }\n getPattern(ctx, owner, inverse, pathType, opIdx) {\n const matrix = pathType !== PathType.SHADING ? Util.transform(inverse, this.patternBaseMatrix) : inverse;\n const temporaryPatternCanvas = this.createPatternCanvas(owner, opIdx);\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 owner.canvasFactory.destroy(temporaryPatternCanvas.canvasEntry);\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\n\n;// ./src/shared/image_utils.js\n/* unused harmony import specifier */ var image_utils_ImageKind;\n/* unused harmony import specifier */ var image_utils_FeatureTest;\n\n\n\n\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case image_utils_ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case image_utils_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 = 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 xorMask = zeroMapping ^ oneMapping;\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, destPos += 8) {\n const elem = src[srcPos];\n dest[destPos] = zeroMapping ^ -(elem >> 7 & 1) & xorMask;\n dest[destPos + 1] = zeroMapping ^ -(elem >> 6 & 1) & xorMask;\n dest[destPos + 2] = zeroMapping ^ -(elem >> 5 & 1) & xorMask;\n dest[destPos + 3] = zeroMapping ^ -(elem >> 4 & 1) & xorMask;\n dest[destPos + 4] = zeroMapping ^ -(elem >> 3 & 1) & xorMask;\n dest[destPos + 5] = zeroMapping ^ -(elem >> 2 & 1) & xorMask;\n dest[destPos + 6] = zeroMapping ^ -(elem >> 1 & 1) & xorMask;\n dest[destPos + 7] = zeroMapping ^ -(elem & 1) & xorMask;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; ++j, ++destPos) {\n dest[destPos] = zeroMapping ^ -(elem >> 7 - j & 1) & xorMask;\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 len = width * height * 3;\n const len32 = len >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n const alphaMask = image_utils_FeatureTest.isLittleEndian ? 0xff000000 : 0xff;\n if (image_utils_FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i],\n s2 = src32[i + 1],\n s3 = src32[i + 2];\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | alphaMask;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | alphaMask;\n dest[destPos + 3] = s3 >>> 8 | alphaMask;\n }\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | alphaMask;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i],\n s2 = src32[i + 1],\n s3 = src32[i + 2];\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | alphaMask;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | alphaMask;\n dest[destPos + 3] = s3 << 8 | alphaMask;\n }\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | alphaMask;\n }\n }\n return {\n srcPos: srcPos + len,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (image_utils_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\n\n\n\n\n\n\n\n\n\n\n\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst FULL_CHUNK_HEIGHT = 16;\nconst SCALE_MATRIX = new DOMMatrix();\nconst XY = new Float32Array(2);\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 () {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function () {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function (x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function (x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function (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 (a, b, c, d, e, f) {\n if (b === undefined) {\n destCtx.setTransform(a);\n this.__originalSetTransform(a);\n } else {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n }\n };\n ctx.resetTransform = function () {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function (angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function (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}\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}\nclass CanvasExtraState {\n alphaIsShape = false;\n fontSize = 0;\n fontSizeScale = 1;\n textMatrix = null;\n textMatrixScale = 1;\n fontMatrix = FONT_IDENTITY_MATRIX;\n leading = 0;\n x = 0;\n y = 0;\n lineX = 0;\n lineY = 0;\n charSpacing = 0;\n wordSpacing = 0;\n textHScale = 1;\n textRenderingMode = TextRenderingMode.FILL;\n textRise = 0;\n fillColor = \"#000000\";\n strokeColor = \"#000000\";\n tilingPatternDims = null;\n patternFill = false;\n patternStroke = false;\n fillAlpha = 1;\n strokeAlpha = 1;\n lineWidth = 1;\n activeSMask = null;\n transferMaps = \"none\";\n minMax = F32_BBOX_INIT.slice();\n constructor(width, height) {\n this.clipBox = new Float32Array([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n clone.minMax = this.minMax.slice();\n clone.tilingPatternDims = this.tilingPatternDims?.slice();\n return clone;\n }\n getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n const box = this.minMax.slice();\n if (pathType === PathType.STROKE) {\n if (!transform) {\n unreachable(\"Stroke bounding box must include transform.\");\n }\n Util.singularValueDecompose2dScale(transform, XY);\n const xStrokePad = XY[0] * this.lineWidth / 2;\n const yStrokePad = XY[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.minMax[0] === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox.set(box, 0);\n this.minMax.set(F32_BBOX_INIT, 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 (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 === 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 = 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 === 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 === 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 const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n if (interpolate) {\n return true;\n }\n Util.singularValueDecompose2dScale(transform, XY);\n const actualScale = Math.fround(OutputScale.pixelRatio * PixelsPerInch.PDF_TO_CSS_UNITS);\n return XY[0] <= actualScale && XY[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, dependencyTracker, imagesTracker) {\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.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.tempSMask = null;\n this.smaskGroupCanvases = [];\n this.smaskPreparedEntry = null;\n this.smaskPreparedFor = null;\n this.smaskPreparedOffsetX = 0;\n this.smaskPreparedOffsetY = 0;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\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 this.dependencyTracker = dependencyTracker ?? null;\n this.imagesTracker = imagesTracker ?? null;\n }\n getObject(opIdx, data, fallback = null) {\n if (typeof data === \"string\") {\n this.dependencyTracker?.recordNamedDependency(opIdx, data);\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.transparentCanvasEntry = this.canvasFactory.create(width, height);\n this.compositeCtx = this.ctx;\n ({\n canvas: this.transparentCanvas,\n context: this.ctx\n } = transparentCanvas);\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[3];\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, operationsFilter) {\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, fnArgs;\n while (true) {\n if (stepper !== undefined) {\n if (i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n if (stepper.shouldSkip(i)) {\n if (++i === argsArrayLen) {\n return i;\n }\n continue;\n }\n }\n if (!operationsFilter || operationsFilter(i)) {\n fnId = fnArray[i];\n fnArgs = argsArray[i] ?? null;\n if (fnId !== OPS.dependency) {\n if (fnArgs === null) {\n this[fnId](i);\n } else {\n this[fnId](i, ...fnArgs);\n }\n } else {\n for (const depObjId of fnArgs) {\n this.dependencyTracker?.recordNamedData(depObjId, 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 }\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.canvasFactory.destroy(this.transparentCanvasEntry);\n this.transparentCanvas = null;\n this.transparentCanvasEntry = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n for (const canvas of this.smaskGroupCanvases) {\n this.canvasFactory.destroy(canvas);\n }\n this.smaskGroupCanvases.length = 0;\n this._clearPreparedSMask();\n this.tempSMask = null;\n this.smaskStack.length = 0;\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 const widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n const heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n const scaleSteps = [];\n let ws = widthScale,\n hs = heightScale,\n pw = width,\n ph = height;\n while (ws > 2 && pw > 1 || hs > 2 && ph > 1) {\n let nw = pw,\n nh = ph;\n if (ws > 2 && pw > 1) {\n nw = Math.ceil(pw / 2);\n ws /= pw / nw;\n }\n if (hs > 2 && ph > 1) {\n nh = Math.ceil(ph / 2);\n hs /= ph / nh;\n }\n scaleSteps.push({\n newWidth: nw,\n newHeight: nh\n });\n pw = nw;\n ph = nh;\n }\n if (scaleSteps.length === 0) {\n return {\n img,\n paintWidth: width,\n paintHeight: height,\n tmpCanvas: null\n };\n }\n if (scaleSteps.length === 1) {\n const {\n newWidth,\n newHeight\n } = scaleSteps[0];\n const tmpCanvas = this.canvasFactory.create(newWidth, newHeight);\n tmpCanvas.context.drawImage(img, 0, 0, width, height, 0, 0, newWidth, newHeight);\n return {\n img: tmpCanvas.canvas,\n paintWidth: newWidth,\n paintHeight: newHeight,\n tmpCanvas\n };\n }\n let readEntry = this.canvasFactory.create(1, 1);\n let writeEntry = this.canvasFactory.create(1, 1);\n let paintWidth = width,\n paintHeight = height;\n let source = img;\n for (const {\n newWidth,\n newHeight\n } of scaleSteps) {\n this.canvasFactory.reset(writeEntry, newWidth, newHeight);\n writeEntry.context.drawImage(source, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n [readEntry, writeEntry] = [writeEntry, readEntry];\n source = readEntry.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n }\n this.canvasFactory.destroy(writeEntry);\n return {\n img: readEntry.canvas,\n paintWidth,\n paintHeight,\n tmpCanvas: readEntry\n };\n }\n _createMaskCanvas(opIdx, 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.getOrInsertComputed(mainKey, makeMap);\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 this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.canvasFactory.create(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 minMax = F32_BBOX_INIT.slice();\n Util.axialAlignedBoundingBox([0, 0, width, height], maskToCanvas, minMax);\n const [minX, minY, maxX, maxY] = minMax;\n const drawnWidth = Math.round(maxX - minX) || 1;\n const drawnHeight = Math.round(maxY - minY) || 1;\n const fillCanvas = this.canvasFactory.create(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 let scaledEntry = null;\n if (!scaled) {\n const scaleResult = this._scaleImage(maskCanvas.canvas, getCurrentTransformInverse(fillCtx));\n scaled = scaleResult.img;\n scaledEntry = scaleResult.tmpCanvas;\n if (scaled !== maskCanvas.canvas) {\n this.canvasFactory.destroy(maskCanvas);\n maskCanvas = null;\n }\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n scaledEntry = null;\n maskCanvas = null;\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 if (scaledEntry) {\n this.canvasFactory.destroy(scaledEntry);\n }\n if (maskCanvas) {\n this.canvasFactory.destroy(maskCanvas);\n }\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, opIdx) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n cache.set(cacheKey, fillCanvas.canvas);\n }\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.transformAndFill);\n return {\n canvas: fillCanvas.canvas,\n canvasEntry: cache && !isPatternFill ? null : fillCanvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(opIdx, width) {\n this.dependencyTracker?.recordSimpleData(\"lineWidth\", opIdx);\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(opIdx, style) {\n this.dependencyTracker?.recordSimpleData(\"lineCap\", opIdx);\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(opIdx, style) {\n this.dependencyTracker?.recordSimpleData(\"lineJoin\", opIdx);\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(opIdx, limit) {\n this.dependencyTracker?.recordSimpleData(\"miterLimit\", opIdx);\n this.ctx.miterLimit = limit;\n }\n setDash(opIdx, dashArray, dashPhase) {\n this.dependencyTracker?.recordSimpleData(\"dash\", opIdx);\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(opIdx, intent) {}\n setFlatness(opIdx, flatness) {}\n setGState(opIdx, states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(opIdx, value);\n break;\n case \"LC\":\n this.setLineCap(opIdx, value);\n break;\n case \"LJ\":\n this.setLineJoin(opIdx, value);\n break;\n case \"ML\":\n this.setMiterLimit(opIdx, value);\n break;\n case \"D\":\n this.setDash(opIdx, value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(opIdx, value);\n break;\n case \"FL\":\n this.setFlatness(opIdx, value);\n break;\n case \"Font\":\n this.setFont(opIdx, value[0], value[1]);\n break;\n case \"CA\":\n this.dependencyTracker?.recordSimpleData(\"strokeAlpha\", opIdx);\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.dependencyTracker?.recordSimpleData(\"fillAlpha\", opIdx);\n this.ctx.globalAlpha = this.current.fillAlpha = value;\n break;\n case \"BM\":\n this.dependencyTracker?.recordSimpleData(\"globalCompositeOperation\", opIdx);\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.dependencyTracker?.recordSimpleData(\"SMask\", opIdx);\n this.current.activeSMask = value ? this.tempSMask : null;\n if (this.current.activeSMask) {\n this.current.activeSMask.blendMode = this.ctx.globalCompositeOperation;\n }\n this.tempSMask = null;\n this.checkSMaskState(opIdx);\n break;\n case \"TR\":\n this.dependencyTracker?.recordSimpleData(\"filter\", opIdx);\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 _clearPreparedSMask() {\n if (this.smaskPreparedEntry) {\n this.canvasFactory.destroy(this.smaskPreparedEntry);\n this.smaskPreparedEntry = null;\n }\n this.smaskPreparedFor = null;\n this.smaskPreparedOffsetX = 0;\n this.smaskPreparedOffsetY = 0;\n }\n _ensurePreparedSMask(smask, width, height) {\n if (smask === this.smaskPreparedFor) {\n return;\n }\n this._clearPreparedSMask();\n this._prepareSMaskCanvas(smask, width, height);\n }\n checkSMaskState(opIdx) {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode(opIdx);\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n } else if (this.current.activeSMask && inSMaskMode) {\n this._ensurePreparedSMask(this.current.activeSMask, this.ctx.canvas.width, this.ctx.canvas.height);\n }\n }\n _prepareSMaskCanvas(smask, width, height) {\n const {\n canvas: maskCanvas,\n subtype,\n backdrop,\n transferMap\n } = smask;\n const hasFilter = subtype === \"Luminosity\" || subtype === \"Alpha\" && transferMap;\n if (!backdrop && !hasFilter) {\n this.smaskPreparedFor = smask;\n return;\n }\n let preparedEntry, offsetX, offsetY;\n if (backdrop && hasFilter) {\n const srcEntry = this.canvasFactory.create(width, height);\n const sCtx = srcEntry.context;\n sCtx.drawImage(maskCanvas, smask.offsetX, smask.offsetY);\n sCtx.globalCompositeOperation = \"destination-atop\";\n sCtx.fillStyle = backdrop;\n sCtx.fillRect(0, 0, width, height);\n sCtx.globalCompositeOperation = \"source-over\";\n preparedEntry = this.canvasFactory.create(width, height);\n const pCtx = preparedEntry.context;\n pCtx.filter = subtype === \"Alpha\" ? this.filterFactory.addAlphaFilter(transferMap) : this.filterFactory.addLuminosityFilter(transferMap);\n pCtx.drawImage(srcEntry.canvas, 0, 0);\n pCtx.filter = \"none\";\n this.canvasFactory.destroy(srcEntry);\n offsetX = offsetY = 0;\n } else if (hasFilter) {\n preparedEntry = this.canvasFactory.create(maskCanvas.width, maskCanvas.height);\n const pCtx = preparedEntry.context;\n pCtx.filter = subtype === \"Alpha\" ? this.filterFactory.addAlphaFilter(transferMap) : this.filterFactory.addLuminosityFilter(transferMap);\n pCtx.drawImage(maskCanvas, 0, 0);\n pCtx.filter = \"none\";\n ({\n offsetX,\n offsetY\n } = smask);\n } else {\n preparedEntry = this.canvasFactory.create(width, height);\n const pCtx = preparedEntry.context;\n pCtx.drawImage(maskCanvas, smask.offsetX, smask.offsetY);\n pCtx.globalCompositeOperation = \"destination-atop\";\n pCtx.fillStyle = backdrop;\n pCtx.fillRect(0, 0, width, height);\n pCtx.globalCompositeOperation = \"source-over\";\n offsetX = offsetY = 0;\n }\n this.smaskPreparedEntry = preparedEntry;\n this.smaskPreparedFor = smask;\n this.smaskPreparedOffsetX = offsetX;\n this.smaskPreparedOffsetY = offsetY;\n }\n beginSMaskMode(opIdx) {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const {\n width: drawnWidth,\n height: drawnHeight\n } = this.ctx.canvas;\n const scratchCanvas = this.canvasFactory.create(drawnWidth, drawnHeight);\n this.smaskScratchCanvas = scratchCanvas;\n this.suspendedCtx = this.ctx;\n const ctx = this.ctx = scratchCanvas.context;\n ctx.setTransform(this.suspendedCtx.getTransform());\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this._ensurePreparedSMask(this.current.activeSMask, drawnWidth, drawnHeight);\n this.setGState(opIdx, [[\"BM\", \"source-over\"]]);\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 this.canvasFactory.destroy(this.smaskScratchCanvas);\n this.smaskScratchCanvas = null;\n this._clearPreparedSMask();\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(dirtyBox[0], dirtyBox[1], dirtyBox[2] - dirtyBox[0], dirtyBox[3] - dirtyBox[1]);\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 const preparedEntry = this.smaskPreparedEntry;\n if (preparedEntry) {\n const srcX = layerOffsetX - this.smaskPreparedOffsetX;\n const srcY = layerOffsetY - this.smaskPreparedOffsetY;\n layerCtx.save();\n layerCtx.globalAlpha = 1;\n layerCtx.setTransform(1, 0, 0, 1, 0, 0);\n const clip = new Path2D();\n clip.rect(layerOffsetX, layerOffsetY, layerWidth, layerHeight);\n layerCtx.clip(clip);\n layerCtx.globalCompositeOperation = \"destination-in\";\n layerCtx.drawImage(preparedEntry.canvas, srcX, srcY, layerWidth, layerHeight, layerOffsetX, layerOffsetY, layerWidth, layerHeight);\n layerCtx.restore();\n } else {\n this.genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n }\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = smask.blendMode || \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, layerOffsetX, layerOffsetY, layerWidth, layerHeight, layerOffsetX, layerOffsetY, layerWidth, layerHeight);\n ctx.restore();\n }\n genericComposeSMask(maskCtx, layerCtx, width, height, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const maskCanvas = maskCtx.canvas;\n const maskX = layerOffsetX - maskOffsetX;\n const maskY = layerOffsetY - maskOffsetY;\n layerCtx.save();\n layerCtx.globalAlpha = 1;\n layerCtx.setTransform(1, 0, 0, 1, 0, 0);\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(opIdx) {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n }\n this.ctx.save();\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.dependencyTracker?.save(opIdx);\n }\n restore(opIdx) {\n this.dependencyTracker?.restore(opIdx);\n if (this.stateStack.length === 0) {\n if (this.inSMaskMode) {\n this.endSMaskMode();\n }\n return;\n }\n this.current = this.stateStack.pop();\n this.ctx.restore();\n if (this.inSMaskMode) {\n copyCtxState(this.suspendedCtx, this.ctx);\n this.ctx.setTransform(this.suspendedCtx.getTransform());\n }\n this.checkSMaskState(opIdx);\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n transform(opIdx, a, b, c, d, e, f) {\n this.dependencyTracker?.recordIncrementalData(\"transform\", opIdx);\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(opIdx, op, data, minMax) {\n let [path] = data;\n if (!minMax) {\n path ||= data[0] = new Path2D();\n if (op !== OPS.stroke && op !== OPS.closeStroke) {\n this.current.tilingPatternDims = null;\n }\n this[op](opIdx, path);\n return;\n }\n if (this.dependencyTracker !== null) {\n const outerExtraSize = op === OPS.stroke ? this.current.lineWidth / 2 : 0;\n this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx, this.ctx, minMax[0] - outerExtraSize, minMax[2] + outerExtraSize, minMax[1] - outerExtraSize, minMax[3] + outerExtraSize).recordDependencies(opIdx, [\"transform\"]);\n }\n if (!(path instanceof Path2D)) {\n path = data[0] = makePathFromDrawOPS(path);\n }\n Util.axialAlignedBoundingBox(minMax, getCurrentTransform(this.ctx), this.current.minMax);\n const tilingDims = this.current.tilingPatternDims;\n if (tilingDims && op !== OPS.stroke && op !== OPS.closeStroke && this.current.fillColor instanceof TilingPattern) {\n const clippedBBox = Util.intersect(this.current.clipBox, this.current.minMax);\n if (!clippedBBox) {\n this.current.tilingPatternDims = null;\n } else {\n this.current.fillColor.updatePatternDims(clippedBBox, tilingDims);\n }\n }\n this[op](opIdx, path);\n this._pathStartIdx = opIdx;\n }\n closePath(opIdx) {\n this.ctx.closePath();\n }\n stroke(opIdx, path, 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 const baseTransform = strokeColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);\n if (baseTransform) {\n const newPath = new Path2D();\n newPath.addPath(path, ctx.getTransform().invertSelf().multiplySelf(baseTransform));\n path = newPath;\n }\n this.rescaleAndStroke(path, false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(path, true);\n }\n }\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.stroke);\n if (consumePath) {\n this.consumePath(opIdx, path, this.current.getClippedPathBoundingBox(PathType.STROKE, getCurrentTransform(this.ctx)));\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke(opIdx, path) {\n this.stroke(opIdx, path);\n }\n fill(opIdx, path, consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n const intersect = this.current.getClippedPathBoundingBox();\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.fill);\n if (isPatternFill) {\n const dims = this.current.tilingPatternDims;\n const tileIdx = dims && fillColor.canSkipPatternCanvas(dims);\n if (tileIdx) {\n fillColor.drawPattern(this, path, this.pendingEOFill, tileIdx, opIdx);\n this.pendingEOFill = false;\n if (consumePath) {\n this.consumePath(opIdx, path, intersect);\n }\n this.current.tilingPatternDims = null;\n return;\n }\n const baseTransform = fillColor.isModifyingCurrentTransform() ? ctx.getTransform() : null;\n this.dependencyTracker?.save(opIdx);\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);\n if (baseTransform) {\n const newPath = new Path2D();\n newPath.addPath(path, ctx.getTransform().invertSelf().multiplySelf(baseTransform));\n path = newPath;\n }\n needRestore = true;\n }\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(path, \"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill(path);\n }\n }\n if (needRestore) {\n ctx.restore();\n this.dependencyTracker?.restore(opIdx);\n }\n if (consumePath) {\n this.consumePath(opIdx, path, intersect);\n }\n }\n eoFill(opIdx, path) {\n this.pendingEOFill = true;\n this.fill(opIdx, path);\n }\n fillStroke(opIdx, path) {\n this.fill(opIdx, path, false);\n this.stroke(opIdx, path, false);\n this.consumePath(opIdx, path);\n }\n eoFillStroke(opIdx, path) {\n this.pendingEOFill = true;\n this.fillStroke(opIdx, path);\n }\n closeFillStroke(opIdx, path) {\n this.fillStroke(opIdx, path);\n }\n closeEOFillStroke(opIdx, path) {\n this.pendingEOFill = true;\n this.fillStroke(opIdx, path);\n }\n endPath(opIdx, path) {\n this.consumePath(opIdx, path);\n }\n rawFillPath(opIdx, path) {\n this.ctx.fill(path);\n this.dependencyTracker?.recordDependencies(opIdx, Dependencies.rawFillPath).recordOperation(opIdx);\n }\n clip(opIdx) {\n this.dependencyTracker?.recordFutureForcedDependency(\"clipMode\", opIdx);\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip(opIdx) {\n this.dependencyTracker?.recordFutureForcedDependency(\"clipMode\", opIdx);\n this.pendingClip = EO_CLIP;\n }\n beginText(opIdx) {\n this.current.textMatrix = null;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n this.dependencyTracker?.recordOpenMarker(opIdx).resetIncrementalData(\"sameLineText\").resetIncrementalData(\"moveText\", opIdx);\n }\n endText(opIdx) {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (this.dependencyTracker) {\n const {\n dependencyTracker\n } = this;\n if (paths !== undefined) {\n dependencyTracker.recordFutureForcedDependency(\"textClip\", dependencyTracker.getOpenMarker()).recordFutureForcedDependency(\"textClip\", opIdx);\n }\n dependencyTracker.recordCloseMarker(opIdx);\n }\n if (paths !== undefined) {\n const newPath = new Path2D();\n const invTransf = ctx.getTransform().invertSelf();\n for (const {\n transform,\n x,\n y,\n fontSize,\n path\n } of paths) {\n if (!path) {\n continue;\n }\n newPath.addPath(path, new DOMMatrix(transform).preMultiplySelf(invTransf).translate(x, y).scale(fontSize, -fontSize));\n }\n ctx.clip(newPath);\n }\n delete this.pendingTextPaths;\n }\n setCharSpacing(opIdx, spacing) {\n this.dependencyTracker?.recordSimpleData(\"charSpacing\", opIdx);\n this.current.charSpacing = spacing;\n }\n setWordSpacing(opIdx, spacing) {\n this.dependencyTracker?.recordSimpleData(\"wordSpacing\", opIdx);\n this.current.wordSpacing = spacing;\n }\n setHScale(opIdx, scale) {\n this.dependencyTracker?.recordSimpleData(\"hScale\", opIdx);\n this.current.textHScale = scale / 100;\n }\n setLeading(opIdx, leading) {\n this.dependencyTracker?.recordSimpleData(\"leading\", opIdx);\n this.current.leading = -leading;\n }\n setFont(opIdx, fontRefName, size) {\n this.dependencyTracker?.recordSimpleData(\"font\", opIdx).recordSimpleDataFromNamed(\"fontObj\", fontRefName, opIdx);\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(opIdx, mode) {\n this.dependencyTracker?.recordSimpleData(\"textRenderingMode\", opIdx);\n this.current.textRenderingMode = mode;\n }\n setTextRise(opIdx, rise) {\n this.dependencyTracker?.recordSimpleData(\"textRise\", opIdx);\n this.current.textRise = rise;\n }\n moveText(opIdx, x, y) {\n this.dependencyTracker?.resetIncrementalData(\"sameLineText\").recordIncrementalData(\"moveText\", opIdx);\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(opIdx, x, y) {\n this.setLeading(opIdx, -y);\n this.moveText(opIdx, x, y);\n }\n setTextMatrix(opIdx, matrix) {\n this.dependencyTracker?.resetIncrementalData(\"sameLineText\").recordSimpleData(\"textMatrix\", opIdx);\n const {\n current\n } = this;\n current.textMatrix = matrix;\n current.textMatrixScale = Math.hypot(matrix[0], matrix[1]);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n }\n nextLine(opIdx) {\n this.moveText(opIdx, 0, this.current.leading);\n this.dependencyTracker?.recordIncrementalData(\"moveText\", this.dependencyTracker.getSimpleIndex(\"leading\") ?? opIdx);\n }\n #getScaledPath(path, currentTransform, transform) {\n const newPath = new Path2D();\n newPath.addPath(path, new DOMMatrix(transform).invertSelf().multiplySelf(currentTransform));\n return newPath;\n }\n paintChar(opIdx, character, x, y, patternFillTransform, patternStrokeTransform) {\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 const patternStroke = current.patternStroke && !font.missingFile;\n let path;\n if ((font.disableFontFace || isAddToPathSet || patternFill || patternStroke) && !font.missingFile) {\n path = font.getPathGenerator(this.commonObjs, character);\n }\n if (path && (font.disableFontFace || patternFill || patternStroke)) {\n ctx.save();\n ctx.translate(x, y);\n ctx.scale(fontSize, -fontSize);\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font);\n let currentTransform;\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (patternFillTransform) {\n currentTransform = ctx.getTransform();\n ctx.setTransform(...patternFillTransform);\n const scaledPath = this.#getScaledPath(path, currentTransform, patternFillTransform);\n ctx.fill(scaledPath);\n } else {\n ctx.fill(path);\n }\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (patternStrokeTransform) {\n currentTransform ||= ctx.getTransform();\n ctx.setTransform(...patternStrokeTransform);\n const {\n a,\n b,\n c,\n d\n } = currentTransform;\n const invPatternTransform = Util.inverseTransform(patternStrokeTransform);\n const transf = Util.transform([a, b, c, d, 0, 0], invPatternTransform);\n Util.singularValueDecompose2dScale(transf, XY);\n ctx.lineWidth *= Math.max(XY[0], XY[1]) / fontSize;\n ctx.stroke(this.#getScaledPath(path, currentTransform, patternStrokeTransform));\n } else {\n ctx.lineWidth /= fontSize;\n ctx.stroke(path);\n }\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y, () => ctx.measureText(character));\n }\n if (fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n if (this.dependencyTracker) {\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y, () => ctx.measureText(character)).recordDependencies(opIdx, Dependencies.stroke);\n }\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 path\n });\n this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, font, fontSize, x, y);\n }\n }\n get isFontSubpixelAAEnabled() {\n const tmpCanvas = this.canvasFactory.create(10, 10);\n const ctx = tmpCanvas.context;\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n this.canvasFactory.destroy(tmpCanvas);\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(opIdx, glyphs) {\n if (this.dependencyTracker) {\n this.dependencyTracker.recordDependencies(opIdx, Dependencies.showText).resetBBox(opIdx);\n if (this.current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) {\n this.dependencyTracker.recordFutureForcedDependency(\"textClip\", opIdx).inheritPendingDependenciesAsFutureForcedDependencies();\n }\n }\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n this.showType3Text(opIdx, glyphs);\n this.dependencyTracker?.recordShowTextOperation(opIdx);\n return undefined;\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n this.dependencyTracker?.recordOperation(opIdx);\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 if (current.textMatrix) {\n ctx.transform(...current.textMatrix);\n }\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 patternFillTransform, patternStrokeTransform;\n const fillStrokeMode = current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n const needsFill = fillStrokeMode === TextRenderingMode.FILL || fillStrokeMode === TextRenderingMode.FILL_STROKE;\n const needsStroke = fillStrokeMode === TextRenderingMode.STROKE || fillStrokeMode === TextRenderingMode.FILL_STROKE;\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n if (needsStroke) {\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 (needsFill && current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx);\n patternFillTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n if (needsStroke && current.patternStroke) {\n ctx.save();\n const pattern = current.strokeColor.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.STROKE, opIdx);\n patternStrokeTransform = getCurrentTransform(ctx);\n ctx.restore();\n ctx.strokeStyle = pattern;\n }\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 const joinedChars = chars.join(\"\");\n ctx.fillText(joinedChars, 0, 0);\n if (this.dependencyTracker !== null) {\n const measure = ctx.measureText(joinedChars);\n this.dependencyTracker.recordBBox(opIdx, this.ctx, -measure.actualBoundingBoxLeft, measure.actualBoundingBoxRight, -measure.actualBoundingBoxAscent, measure.actualBoundingBoxDescent).recordShowTextOperation(opIdx);\n }\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 let measure;\n if (font.remeasure && width > 0) {\n measure = ctx.measureText(character);\n const measuredWidth = measure.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 this.dependencyTracker?.recordCharacterBBox(opIdx, ctx, measure ? {\n bbox: null\n } : font, fontSize / fontSizeScale, scaledX, scaledY, () => measure ?? ctx.measureText(character));\n } else {\n this.paintChar(opIdx, character, scaledX, scaledY, patternFillTransform, patternStrokeTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(opIdx, accent.fontChar, scaledAccentX, scaledAccentY, patternFillTransform, patternStrokeTransform);\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 this.dependencyTracker?.recordShowTextOperation(opIdx);\n return undefined;\n }\n showType3Text(opIdx, 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 if (current.textMatrix) {\n ctx.transform(...current.textMatrix);\n }\n ctx.translate(current.x, current.y + current.textRise);\n ctx.scale(textHScale, fontDirection);\n const dependencyTracker = this.dependencyTracker;\n this.dependencyTracker = dependencyTracker ? new CanvasNestedDependencyTracker(dependencyTracker, opIdx) : null;\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 } else if (this.contentVisible) {\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const p = [glyph.width, 0];\n Util.applyTransform(p, fontMatrix);\n width = p[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n if (dependencyTracker) {\n this.dependencyTracker = dependencyTracker;\n }\n }\n setCharWidth(opIdx, xWidth, yWidth) {}\n setCharWidthAndBounds(opIdx, xWidth, yWidth, llx, lly, urx, ury) {\n const clip = new Path2D();\n clip.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip(clip);\n this.dependencyTracker?.recordBBox(opIdx, this.ctx, llx, urx, lly, ury).recordClipBox(opIdx, this.ctx, llx, urx, lly, ury);\n this.endPath(opIdx);\n }\n getColorN_Pattern(opIdx, IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: (ctx, renderingOpIdx) => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n }, undefined, undefined, this.dependencyTracker ? new CanvasNestedDependencyTracker(this.dependencyTracker, renderingOpIdx, true) : null)\n };\n pattern = new TilingPattern(IR, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(opIdx, IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN(opIdx, ...args) {\n this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n this.current.strokeColor = this.getColorN_Pattern(opIdx, args);\n this.current.patternStroke = true;\n }\n setFillColorN(opIdx, ...args) {\n this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n const pattern = this.current.fillColor = this.getColorN_Pattern(opIdx, args);\n this.current.patternFill = true;\n this.current.tilingPatternDims = pattern instanceof TilingPattern ? [0, 0, 0, 0] : null;\n }\n setStrokeRGBColor(opIdx, color) {\n this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n this.ctx.strokeStyle = this.current.strokeColor = color;\n this.current.patternStroke = false;\n }\n setStrokeTransparent(opIdx) {\n this.dependencyTracker?.recordSimpleData(\"strokeColor\", opIdx);\n this.ctx.strokeStyle = this.current.strokeColor = \"transparent\";\n this.current.patternStroke = false;\n }\n setFillRGBColor(opIdx, color) {\n this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n this.ctx.fillStyle = this.current.fillColor = color;\n this.current.patternFill = false;\n this.current.tilingPatternDims = null;\n }\n setFillTransparent(opIdx) {\n this.dependencyTracker?.recordSimpleData(\"fillColor\", opIdx);\n this.ctx.fillStyle = this.current.fillColor = \"transparent\";\n this.current.patternFill = false;\n this.current.tilingPatternDims = null;\n }\n _getPattern(opIdx, 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(opIdx, objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(opIdx, objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save(opIdx);\n const pattern = this._getPattern(opIdx, objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, getCurrentTransformInverse(ctx), PathType.SHADING, opIdx);\n const inv = getCurrentTransformInverse(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const minMax = F32_BBOX_INIT.slice();\n Util.axialAlignedBoundingBox([0, 0, width, height], inv, minMax);\n const [x0, y0, x1, y1] = minMax;\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.dependencyTracker?.resetBBox(opIdx).recordFullPageBBox(opIdx).recordDependencies(opIdx, Dependencies.transform).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore(opIdx);\n }\n beginInlineImage() {\n unreachable(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n unreachable(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(opIdx, matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save(opIdx);\n this.baseTransformStack.push(this.baseTransform);\n if (matrix) {\n this.transform(opIdx, ...matrix);\n }\n this.baseTransform = getCurrentTransform(this.ctx);\n if (bbox) {\n Util.axialAlignedBoundingBox(bbox, this.baseTransform, this.current.minMax);\n const [x0, y0, x1, y1] = bbox;\n const clip = new Path2D();\n clip.rect(x0, y0, x1 - x0, y1 - y0);\n this.ctx.clip(clip);\n this.dependencyTracker?.recordClipBox(opIdx, this.ctx, x0, x1, y0, y1);\n this.endPath(opIdx);\n }\n }\n paintFormXObjectEnd(opIdx) {\n if (!this.contentVisible) {\n return;\n }\n this.restore(opIdx);\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(opIdx, group) {\n if (!this.contentVisible) {\n return;\n }\n this.save(opIdx);\n const {\n inSMaskMode\n } = this;\n if (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 if (!group.needsIsolation && currentCtx.globalAlpha === 1 && currentCtx.globalCompositeOperation === \"source-over\" && !inSMaskMode) {\n if (group.bbox) {\n let clip = new Path2D();\n const [x0, y0, x1, y1] = group.bbox;\n clip.rect(x0, y0, x1 - x0, y1 - y0);\n if (group.matrix) {\n const path = new Path2D();\n path.addPath(clip, new DOMMatrix(group.matrix));\n clip = path;\n }\n currentCtx.clip(clip);\n }\n this.groupStack.push(null);\n this.groupLevel++;\n return;\n }\n const currentTransform = getCurrentTransform(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n let bounds;\n if (group.bbox) {\n bounds = F32_BBOX_INIT.slice();\n Util.axialAlignedBoundingBox(group.bbox, getCurrentTransform(currentCtx), bounds);\n bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n } else {\n bounds = canvasBounds;\n }\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 const scratchCanvas = this.canvasFactory.create(drawnWidth, drawnHeight);\n if (group.smask) {\n this.smaskGroupCanvases.push(scratchCanvas);\n }\n const groupCtx = scratchCanvas.context;\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (!group.isolated && !group.smask && inSMaskMode && group.needsIsolation) {\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.drawImage(currentCtx.canvas, -offsetX, -offsetY);\n groupCtx.restore();\n }\n if (group.bbox) {\n let clip = new Path2D();\n const [x0, y0, x1, y1] = group.bbox;\n clip.rect(x0, y0, x1 - x0, y1 - y0);\n if (group.matrix) {\n const path = new Path2D();\n path.addPath(clip, new DOMMatrix(group.matrix));\n clip = path;\n }\n groupCtx.clip(clip);\n }\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 });\n }\n if (!group.smask || this.dependencyTracker) {\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.dependencyTracker?.inheritSimpleDataAsFutureForcedDependencies([\"fillAlpha\", \"strokeAlpha\", \"globalCompositeOperation\"]).pushBaseTransform(currentCtx);\n this.setGState(opIdx, [[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1], [\"TR\", null]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(opIdx, group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n if (ctx === null) {\n this.restore(opIdx);\n return;\n }\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n this.dependencyTracker?.popBaseTransform();\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore(opIdx);\n if (this.dependencyTracker) {\n this.ctx.restore();\n if (this.inSMaskMode) {\n this.ctx.setTransform(this.suspendedCtx.getTransform());\n }\n }\n } else {\n this.ctx.restore();\n const currentMtx = getCurrentTransform(this.ctx);\n this.restore(opIdx);\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = F32_BBOX_INIT.slice();\n Util.axialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx, dirtyBox);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.canvasFactory.destroy({\n canvas: groupCtx.canvas,\n context: groupCtx\n });\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(opIdx, id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save(opIdx);\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 Util.singularValueDecompose2dScale(getCurrentTransform(this.ctx), XY);\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(XY[0], 0, 0, -XY[1], 0, height * XY[1]);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.endPath(opIdx);\n const clip = new Path2D();\n clip.rect(rect[0], rect[1], width, height);\n this.ctx.clip(clip);\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.baseTransformStack.push(this.baseTransform);\n this.transform(opIdx, ...transform);\n this.transform(opIdx, ...matrix);\n this.baseTransform = getCurrentTransform(this.ctx);\n }\n endAnnotation(opIdx) {\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 this.baseTransform = this.baseTransformStack.pop();\n }\n paintImageMaskXObject(opIdx, img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(opIdx, img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const mask = this._createMaskCanvas(opIdx, 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 this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, mask.offsetX, mask.offsetX + maskCanvas.width, mask.offsetY, mask.offsetY + maskCanvas.height).recordOperation(opIdx);\n ctx.restore();\n if (mask.canvasEntry) {\n this.canvasFactory.destroy(mask.canvasEntry);\n }\n this.compose();\n }\n paintImageMaskXObjectRepeat(opIdx, img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(opIdx, 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(opIdx, img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n this.dependencyTracker?.resetBBox(opIdx);\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 ctx.drawImage(mask.canvas, trans[4], trans[5]);\n this.dependencyTracker?.recordBBox(opIdx, this.ctx, trans[4], trans[4] + mask.canvas.width, trans[5], trans[5] + mask.canvas.height);\n }\n ctx.restore();\n if (mask.canvasEntry) {\n this.canvasFactory.destroy(mask.canvasEntry);\n }\n this.compose();\n this.dependencyTracker?.recordOperation(opIdx);\n }\n paintImageMaskXObjectGroup(opIdx, 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 this.dependencyTracker?.resetBBox(opIdx).recordDependencies(opIdx, Dependencies.transformAndFill);\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.canvasFactory.create(width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(opIdx, data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, getCurrentTransformInverse(ctx), PathType.FILL, opIdx) : 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 this.canvasFactory.destroy(maskCanvas);\n this.dependencyTracker?.recordBBox(opIdx, ctx, 0, width, 0, height);\n ctx.restore();\n }\n this.compose();\n this.dependencyTracker?.recordOperation(opIdx);\n }\n paintImageXObject(opIdx, objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(opIdx, objId);\n if (!imgData) {\n warn(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(opIdx, imgData);\n }\n paintImageXObjectRepeat(opIdx, objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(opIdx, 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(opIdx, 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 {\n img: imgData.bitmap,\n canvasEntry: null\n };\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.canvasFactory.create(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 {\n img: tmpCanvas.canvas,\n canvasEntry: tmpCanvas\n };\n }\n paintInlineImageXObject(opIdx, 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(opIdx);\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n let inlineImgCanvas = null;\n if (imgData.bitmap) {\n const result = this.applyTransferMapsToBitmap(imgData);\n imgToPaint = result.img;\n inlineImgCanvas = result.canvasEntry;\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.canvasFactory.create(width, height);\n putBinaryImageData(tmpCanvas.context, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCanvas.context);\n inlineImgCanvas = tmpCanvas;\n }\n const scaled = this._scaleImage(imgToPaint, getCurrentTransformInverse(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(getCurrentTransform(ctx), imgData.interpolate);\n if (this.dependencyTracker) {\n this.dependencyTracker.resetBBox(opIdx).recordBBox(opIdx, ctx, 0, width, -height, 0).recordDependencies(opIdx, Dependencies.imageXObject).recordOperation(opIdx);\n this.imagesTracker?.record(ctx, width, height, this.dependencyTracker.clipBox);\n }\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n if (scaled.tmpCanvas) {\n this.canvasFactory.destroy(scaled.tmpCanvas);\n }\n if (inlineImgCanvas) {\n this.canvasFactory.destroy(inlineImgCanvas);\n }\n this.compose();\n this.restore(opIdx);\n }\n paintInlineImageXObjectGroup(opIdx, imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n let inlineImgCanvas = null;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.canvasFactory.create(w, h);\n putBinaryImageData(tmpCanvas.context, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCanvas.context);\n inlineImgCanvas = tmpCanvas;\n }\n this.dependencyTracker?.resetBBox(opIdx);\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 this.dependencyTracker?.recordBBox(opIdx, ctx, 0, 1, -1, 0);\n ctx.restore();\n }\n if (inlineImgCanvas) {\n this.canvasFactory.destroy(inlineImgCanvas);\n }\n this.dependencyTracker?.recordOperation(opIdx);\n this.compose();\n }\n paintSolidColorImageMask(opIdx) {\n if (!this.contentVisible) {\n return;\n }\n this.dependencyTracker?.resetBBox(opIdx).recordBBox(opIdx, this.ctx, 0, 1, 0, 1).recordDependencies(opIdx, Dependencies.fill).recordOperation(opIdx);\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(opIdx, tag) {}\n markPointProps(opIdx, tag, properties) {}\n beginMarkedContent(opIdx, tag) {\n this.dependencyTracker?.beginMarkedContent(opIdx);\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(opIdx, tag, properties) {\n this.dependencyTracker?.beginMarkedContent(opIdx);\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(opIdx) {\n this.dependencyTracker?.endMarkedContent(opIdx);\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat(opIdx) {}\n endCompat(opIdx) {}\n consumePath(opIdx, path, 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(path, \"evenodd\");\n } else {\n ctx.clip(path);\n }\n }\n this.pendingClip = null;\n this.dependencyTracker?.bboxToClipBoxDropOperation(opIdx).recordFutureForcedDependency(\"clipPath\", opIdx);\n } else {\n this.dependencyTracker?.recordOperation(opIdx);\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\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(path, saveRestore) {\n const {\n ctx,\n current: {\n lineWidth\n }\n } = this;\n const [scaleX, scaleY] = this.getScaleForStroking();\n if (scaleX === scaleY) {\n ctx.lineWidth = (lineWidth || 1) * scaleX;\n ctx.stroke(path);\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n SCALE_MATRIX.a = 1 / scaleX;\n SCALE_MATRIX.d = 1 / scaleY;\n const newPath = new Path2D();\n newPath.addPath(path, SCALE_MATRIX);\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.lineWidth = lineWidth || 1;\n ctx.stroke(newPath);\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/shared/base_pdf_stream.js\n\n\n\n\n\n\n\n\n\nclass BasePDFStream {\n #PDFStreamReader = null;\n #PDFStreamRangeReader = null;\n _fullReader = null;\n _rangeReaders = new Set();\n _source = null;\n constructor(source, PDFStreamReader, PDFStreamRangeReader) {\n this._source = source;\n this.#PDFStreamReader = PDFStreamReader;\n this.#PDFStreamRangeReader = PDFStreamRangeReader;\n }\n get _progressiveDataLength() {\n return this._fullReader?._loaded ?? 0;\n }\n getFullReader() {\n assert(!this._fullReader, \"BasePDFStream.getFullReader can only be called once.\");\n return this._fullReader = new this.#PDFStreamReader(this);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new this.#PDFStreamRangeReader(this, begin, end);\n this._rangeReaders.add(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullReader?.cancel(reason);\n for (const reader of new Set(this._rangeReaders)) {\n reader.cancel(reason);\n }\n }\n}\nclass BasePDFStreamReader {\n onProgress = null;\n _contentLength = 0;\n _filename = null;\n _headersCapability = Promise.withResolvers();\n _isRangeSupported = false;\n _isStreamingSupported = false;\n _loaded = 0;\n _stream = null;\n constructor(stream) {\n this._stream = stream;\n }\n _callOnProgress() {\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\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 unreachable(\"Abstract method `read` called\");\n }\n cancel(reason) {\n unreachable(\"Abstract method `cancel` called\");\n }\n}\nclass BasePDFStreamRangeReader {\n _stream = null;\n constructor(stream, begin, end) {\n this._stream = stream;\n }\n async read() {\n unreachable(\"Abstract method `read` called\");\n }\n cancel(reason) {\n unreachable(\"Abstract method `cancel` called\");\n }\n}\n\n;// ./src/display/content_disposition.js\n\n\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\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 getResponseOrigin(url) {\n return URL.parse(url)?.origin ?? null;\n}\nfunction validateRangeRequestCapabilities({\n responseHeaders,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const rv = {\n contentLength: 0,\n isRangeSupported: false\n };\n const length = parseInt(responseHeaders.get(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return rv;\n }\n rv.contentLength = length;\n if (length <= 2 * rangeChunkSize) {\n return rv;\n }\n if (disableRange || !isHttp) {\n return rv;\n }\n if (responseHeaders.get(\"Accept-Ranges\") !== \"bytes\") {\n return rv;\n }\n const contentEncoding = responseHeaders.get(\"Content-Encoding\") || \"identity\";\n if (contentEncoding === \"identity\") {\n rv.isRangeSupported = true;\n }\n return rv;\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 createResponseError(status, url) {\n return new ResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url.href}\".`, status, status === 404 || status === 0 && url.protocol === \"file:\");\n}\nfunction ensureResponseOrigin(rangeOrigin, origin) {\n if (rangeOrigin !== origin) {\n throw new Error(`Expected range response-origin \"${rangeOrigin}\" to match \"${origin}\".`);\n }\n}\n\n;// ./src/display/fetch_stream.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction fetchUrl(url, headers, withCredentials, abortController) {\n return fetch(url, {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n });\n}\nfunction ensureResponseStatus(status, url) {\n if (status !== 200 && status !== 206) {\n throw createResponseError(status, url);\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 throw new Error(`getArrayBuffer - unexpected data: ${val}`);\n}\nclass PDFFetchStream extends BasePDFStream {\n _responseOrigin = null;\n constructor(source) {\n super(source, PDFFetchStreamReader, PDFFetchStreamRangeReader);\n const {\n httpHeaders,\n url\n } = source;\n assert(/https?:/.test(url.protocol), \"PDFFetchStream only supports http(s):// URLs.\");\n this.headers = createHeaders(true, httpHeaders);\n }\n}\nclass PDFFetchStreamReader extends BasePDFStreamReader {\n _abortController = new AbortController();\n _reader = null;\n constructor(stream) {\n super(stream);\n const {\n disableRange,\n disableStream,\n rangeChunkSize,\n url,\n withCredentials\n } = stream._source;\n this._isStreamingSupported = !disableStream;\n const headers = new Headers(stream.headers);\n fetchUrl(url, headers, withCredentials, this._abortController).then(response => {\n stream._responseOrigin = getResponseOrigin(response.url);\n ensureResponseStatus(response.status, url);\n this._reader = response.body.getReader();\n const responseHeaders = response.headers;\n const {\n contentLength,\n isRangeSupported\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: true,\n rangeChunkSize,\n disableRange\n });\n this._contentLength = contentLength;\n this._isRangeSupported = isRangeSupported;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n this._headersCapability.resolve();\n }).catch(this._headersCapability.reject);\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._callOnProgress();\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 extends BasePDFStreamRangeReader {\n _abortController = new AbortController();\n _readCapability = Promise.withResolvers();\n _reader = null;\n constructor(stream, begin, end) {\n super(stream, begin, end);\n const {\n url,\n withCredentials\n } = stream._source;\n const headers = new Headers(stream.headers);\n headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n fetchUrl(url, headers, withCredentials, this._abortController).then(response => {\n const responseOrigin = getResponseOrigin(response.url);\n ensureResponseOrigin(responseOrigin, stream._responseOrigin);\n ensureResponseStatus(response.status, url);\n this._reader = response.body.getReader();\n this._readCapability.resolve();\n }).catch(this._readCapability.reject);\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 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// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js\nvar es_iterator_find = __webpack_require__(116);\n;// ./src/display/transport_stream.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction transport_stream_getArrayBuffer(val) {\n return val instanceof Uint8Array && val.byteLength === val.buffer.byteLength ? val.buffer : new Uint8Array(val).buffer;\n}\nfunction endRequests() {\n for (const capability of this._requests) {\n capability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n}\nclass PDFDataTransportStream extends BasePDFStream {\n _progressiveDone = false;\n _queuedChunks = [];\n constructor(source) {\n super(source, PDFDataTransportStreamReader, PDFDataTransportStreamRangeReader);\n const {\n pdfDataRangeTransport\n } = source;\n const {\n initialData,\n progressiveDone\n } = pdfDataRangeTransport;\n if (initialData?.length > 0) {\n const buffer = transport_stream_getArrayBuffer(initialData);\n this._queuedChunks.push(buffer);\n }\n this._progressiveDone = progressiveDone;\n const listener = args => {\n switch (args.type) {\n case \"range\":\n case \"progressiveRead\":\n this.#onReceiveData(args.begin, args.chunk);\n break;\n case \"progressiveDone\":\n this._fullReader?.progressiveDone();\n this._progressiveDone = true;\n break;\n }\n };\n pdfDataRangeTransport.transportReady(listener);\n }\n #onReceiveData(begin, chunk) {\n const buffer = transport_stream_getArrayBuffer(chunk);\n if (begin === undefined) {\n if (this._fullReader) {\n this._fullReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const rangeReader = this._rangeReaders.keys().find(r => r._begin === begin);\n assert(rangeReader, \"#onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n rangeReader._enqueue(buffer);\n }\n }\n getFullReader() {\n const reader = super.getFullReader();\n this._queuedChunks = null;\n return reader;\n }\n getRangeReader(begin, end) {\n const reader = super.getRangeReader(begin, end);\n if (reader) {\n reader.onDone = () => this._rangeReaders.delete(reader);\n this._source.pdfDataRangeTransport.requestDataRange(begin, end);\n }\n return reader;\n }\n cancelAllRequests(reason) {\n super.cancelAllRequests(reason);\n this._source.pdfDataRangeTransport.abort();\n }\n}\nclass PDFDataTransportStreamReader extends BasePDFStreamReader {\n #endRequests = endRequests.bind(this);\n _done = false;\n _queuedChunks = null;\n _requests = [];\n constructor(stream) {\n super(stream);\n const {\n pdfDataRangeTransport,\n disableRange,\n disableStream\n } = stream._source;\n const {\n length,\n contentDispositionFilename\n } = pdfDataRangeTransport;\n this._queuedChunks = stream._queuedChunks || [];\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._done = stream._progressiveDone;\n this._contentLength = length;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n if (isPdfFile(contentDispositionFilename)) {\n this._filename = contentDispositionFilename;\n }\n this._headersCapability.resolve();\n const loaded = this._loaded;\n Promise.resolve().then(() => {\n if (loaded > 0 && this._loaded === loaded) {\n this._callOnProgress();\n }\n });\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n this._callOnProgress();\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this.#endRequests();\n }\n progressiveDone() {\n this._done ||= true;\n if (this._queuedChunks.length === 0) {\n this.#endRequests();\n }\n }\n}\nclass PDFDataTransportStreamRangeReader extends BasePDFStreamRangeReader {\n #endRequests = endRequests.bind(this);\n onDone = null;\n _begin = -1;\n _done = false;\n _queuedChunk = null;\n _requests = [];\n constructor(stream, begin, end) {\n super(stream, begin, end);\n this._begin = begin;\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 capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n this.#endRequests();\n }\n this._done = true;\n this.onDone?.();\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this.#endRequests();\n this.onDone?.();\n }\n}\n\n;// ./src/display/network.js\n\n\n\n\n\n\n\n\n\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction network_getArrayBuffer(val) {\n return typeof val !== \"string\" ? val : stringToBytes(val).buffer;\n}\nclass PDFNetworkStream extends BasePDFStream {\n #pendingRequests = new WeakMap();\n _responseOrigin = null;\n constructor(source) {\n super(source, PDFNetworkStreamReader, PDFNetworkStreamRangeReader);\n const {\n httpHeaders,\n url\n } = source;\n this.url = url;\n this.isHttp = /https?:/.test(url.protocol);\n this.headers = createHeaders(this.isHttp, httpHeaders);\n }\n _request(args) {\n const xhr = new XMLHttpRequest();\n const pendingRequest = {\n validateStatus: null,\n onHeadersReceived: args.onHeadersReceived,\n onDone: args.onDone,\n onError: args.onError,\n onProgress: args.onProgress\n };\n this.#pendingRequests.set(xhr, pendingRequest);\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this._source.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.validateStatus = status => status === PARTIAL_CONTENT_RESPONSE || status === OK_RESPONSE;\n } else {\n pendingRequest.validateStatus = status => status === OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n assert(args.onError, \"Expected `onError` callback to be provided.\");\n xhr.onerror = () => args.onError(xhr.status);\n xhr.onreadystatechange = this.#onStateChange.bind(this, xhr);\n xhr.onprogress = this.#onProgress.bind(this, xhr);\n xhr.send(null);\n return xhr;\n }\n #onProgress(xhr, evt) {\n const pendingRequest = this.#pendingRequests.get(xhr);\n pendingRequest?.onProgress?.(evt);\n }\n #onStateChange(xhr, evt) {\n const pendingRequest = this.#pendingRequests.get(xhr);\n if (!pendingRequest) {\n return;\n }\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 (!this.#pendingRequests.has(xhr)) {\n return;\n }\n this.#pendingRequests.delete(xhr);\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n if (!pendingRequest.validateStatus(xhrStatus)) {\n pendingRequest.onError(xhr.status);\n return;\n }\n const chunk = network_getArrayBuffer(xhr.response);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n if (/bytes (\\d+)-(\\d+)\\/(\\d+)/.test(rangeHeader)) {\n pendingRequest.onDone(chunk);\n } else {\n warn(`Missing or invalid \"Content-Range\" header.`);\n pendingRequest.onError(0);\n }\n } else if (chunk) {\n pendingRequest.onDone(chunk);\n } else {\n pendingRequest.onError(xhr.status);\n }\n }\n _abortRequest(xhr) {\n if (this.#pendingRequests.has(xhr)) {\n this.#pendingRequests.delete(xhr);\n xhr.abort();\n }\n }\n getRangeReader(begin, end) {\n const reader = super.getRangeReader(begin, end);\n if (reader) {\n reader.onClosed = () => this._rangeReaders.delete(reader);\n }\n return reader;\n }\n}\nclass PDFNetworkStreamReader extends BasePDFStreamReader {\n #endRequests = endRequests.bind(this);\n _cachedChunks = [];\n _done = false;\n _requests = [];\n _storedError = null;\n constructor(stream) {\n super(stream);\n this._fullRequestXhr = stream._request({\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 }\n #onHeadersReceived() {\n const stream = this._stream;\n const {\n disableRange,\n rangeChunkSize\n } = stream._source;\n const fullRequestXhr = this._fullRequestXhr;\n stream._responseOrigin = getResponseOrigin(fullRequestXhr.responseURL);\n const rawResponseHeaders = fullRequestXhr.getAllResponseHeaders();\n const responseHeaders = new Headers(rawResponseHeaders ? rawResponseHeaders.trimStart().replace(/[^\\S ]+$/, \"\").split(/[\\r\\n]+/).map(x => {\n const [key, ...val] = x.split(\": \");\n return [key, val.join(\": \")];\n }) : []);\n const {\n contentLength,\n isRangeSupported\n } = validateRangeRequestCapabilities({\n responseHeaders,\n isHttp: stream.isHttp,\n rangeChunkSize,\n disableRange\n });\n this._contentLength = contentLength;\n this._isRangeSupported = isRangeSupported;\n this._filename = extractFilenameFromHeader(responseHeaders);\n if (this._isRangeSupported) {\n stream._abortRequest(fullRequestXhr);\n }\n this._headersCapability.resolve();\n }\n #onDone(chunk) {\n if (this._requests.length > 0) {\n const capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(chunk);\n }\n this._done = true;\n if (this._cachedChunks.length === 0) {\n this.#endRequests();\n }\n }\n #onError(status) {\n this._storedError = createResponseError(status, this._stream.url);\n this._headersCapability.reject(this._storedError);\n for (const capability of this._requests) {\n capability.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 async read() {\n await this._headersCapability.promise;\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersCapability.reject(reason);\n this.#endRequests();\n this._stream._abortRequest(this._fullRequestXhr);\n this._fullRequestXhr = null;\n }\n}\nclass PDFNetworkStreamRangeReader extends BasePDFStreamRangeReader {\n #endRequests = endRequests.bind(this);\n onClosed = null;\n _done = false;\n _queuedChunk = null;\n _requests = [];\n _storedError = null;\n constructor(stream, begin, end) {\n super(stream, begin, end);\n this._requestXhr = stream._request({\n begin,\n end,\n onHeadersReceived: this.#onHeadersReceived.bind(this),\n onDone: this.#onDone.bind(this),\n onError: this.#onError.bind(this),\n onProgress: null\n });\n }\n #onHeadersReceived() {\n const responseOrigin = getResponseOrigin(this._requestXhr?.responseURL);\n try {\n ensureResponseOrigin(responseOrigin, this._stream._responseOrigin);\n } catch (ex) {\n this._storedError = ex;\n this.#onError(0);\n }\n }\n #onDone(chunk) {\n if (this._requests.length > 0) {\n const capability = this._requests.shift();\n capability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n this.#endRequests();\n this.onClosed?.();\n }\n #onError(status) {\n this._storedError ??= createResponseError(status, this._stream.url);\n for (const capability of this._requests) {\n capability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\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 capability = Promise.withResolvers();\n this._requests.push(capability);\n return capability.promise;\n }\n cancel(reason) {\n this._done = true;\n this.#endRequests();\n this._stream._abortRequest(this._requestXhr);\n this.onClosed?.();\n }\n}\n\n;// ./src/display/node_stream.js\n\n\n\n\n\nfunction getReadableStream(url, opts = null) {\n const fs = process.getBuiltinModule(\"fs\");\n const {\n Readable\n } = process.getBuiltinModule(\"stream\");\n const readStream = fs.createReadStream(url, opts);\n return Readable.toWeb(readStream);\n}\nclass PDFNodeStream extends BasePDFStream {\n constructor(source) {\n super(source, PDFNodeStreamReader, PDFNodeStreamRangeReader);\n const {\n url\n } = source;\n assert(url.protocol === \"file:\", \"PDFNodeStream only supports file:// URLs.\");\n }\n}\nclass PDFNodeStreamReader extends BasePDFStreamReader {\n _reader = null;\n constructor(stream) {\n super(stream);\n const {\n disableRange,\n disableStream,\n rangeChunkSize,\n url\n } = stream._source;\n this._isStreamingSupported = !disableStream;\n const fs = process.getBuiltinModule(\"fs/promises\");\n fs.lstat(url).then(stat => {\n const readableStream = getReadableStream(url);\n this._reader = readableStream.getReader();\n const {\n size\n } = stat;\n this._contentLength = size;\n this._isRangeSupported = !disableRange && size > 2 * rangeChunkSize;\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new AbortException(\"Streaming is disabled.\"));\n }\n this._headersCapability.resolve();\n }).catch(error => {\n if (error.code === \"ENOENT\") {\n error = createResponseError(0, url);\n }\n this._headersCapability.reject(error);\n });\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._callOnProgress();\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n }\n}\nclass PDFNodeStreamRangeReader extends BasePDFStreamRangeReader {\n _readCapability = Promise.withResolvers();\n _reader = null;\n constructor(stream, begin, end) {\n super(stream, begin, end);\n const {\n url\n } = stream._source;\n try {\n const readableStream = getReadableStream(url, {\n start: begin,\n end: end - 1\n });\n this._reader = readableStream.getReader();\n this._readCapability.resolve();\n } catch (error) {\n this._readCapability.reject(error);\n }\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 return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n }\n}\n\n;// ./src/display/network_stream.js\n\n\n\n\n\nfunction getNetworkStream(url) {\n return isValidFetchUrl(url) ? PDFFetchStream : isNodeJS ? PDFNodeStream : PDFNetworkStream;\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/display/metadata.js\nclass Metadata {\n #map;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#map = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#map.get(name) ?? null;\n }\n [Symbol.iterator]() {\n return this.#map.entries();\n }\n}\n\n;// ./src/display/optional_content_config.js\n\n\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 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 [Symbol.iterator]() {\n return this.#groups.entries();\n }\n}\n\n;// ./src/display/pages_mapper.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass PagesMapper {\n #pageNumberToId = null;\n #prevPageNumbers = null;\n #pagesNumber = 0;\n #clipboard = null;\n #savedData = null;\n get pagesNumber() {\n return this.#pagesNumber;\n }\n set pagesNumber(n) {\n if (this.#pagesNumber === n) {\n return;\n }\n this.#pagesNumber = n;\n this.#pageNumberToId = null;\n this.#prevPageNumbers = null;\n }\n #ensureInit() {\n if (this.#pageNumberToId) {\n return;\n }\n const n = this.#pagesNumber;\n const pageNumberToId = this.#pageNumberToId = new Uint32Array(n);\n for (let i = 0; i < n; i++) {\n pageNumberToId[i] = i + 1;\n }\n this.#prevPageNumbers = new Int32Array(pageNumberToId);\n }\n #buildIdToPageNumber() {\n const idToPageNumber = new Map();\n const pageNumberToId = this.#pageNumberToId;\n for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n const id = pageNumberToId[i];\n const pageNumbers = idToPageNumber.get(id);\n if (pageNumbers) {\n pageNumbers.push(i + 1);\n } else {\n idToPageNumber.set(id, [i + 1]);\n }\n }\n return idToPageNumber;\n }\n movePages(selectedPages, pagesToMove, index) {\n this.#ensureInit();\n const pageNumberToId = this.#pageNumberToId;\n const prevIdToPageNumber = this.#buildIdToPageNumber();\n const movedCount = pagesToMove.length;\n const mappedPagesToMove = new Uint32Array(movedCount);\n let removedBeforeTarget = 0;\n for (let i = 0; i < movedCount; i++) {\n const pageIndex = pagesToMove[i] - 1;\n mappedPagesToMove[i] = pageNumberToId[pageIndex];\n if (pageIndex < index) {\n removedBeforeTarget++;\n }\n }\n const pagesNumber = this.#pagesNumber;\n const remainingLen = pagesNumber - movedCount;\n const adjustedTarget = MathClamp(index - removedBeforeTarget, 0, remainingLen);\n for (let i = 0, r = 0; i < pagesNumber; i++) {\n if (!selectedPages.has(i + 1)) {\n pageNumberToId[r++] = pageNumberToId[i];\n }\n }\n pageNumberToId.copyWithin(adjustedTarget + movedCount, adjustedTarget, remainingLen);\n pageNumberToId.set(mappedPagesToMove, adjustedTarget);\n this.#updatePrevPageNumbers(prevIdToPageNumber);\n if (pageNumberToId.every((id, i) => id === i + 1)) {\n this.#pageNumberToId = null;\n }\n }\n deletePages(pagesToDelete) {\n this.#ensureInit();\n const pageNumberToId = this.#pageNumberToId;\n const prevIdToPageNumber = this.#buildIdToPageNumber();\n this.#savedData = {\n pageNumberToId: pageNumberToId.slice(),\n pagesNumber: this.#pagesNumber,\n prevPageNumbers: this.#prevPageNumbers.slice()\n };\n const newN = this.#pagesNumber - pagesToDelete.length;\n this.#pagesNumber = newN;\n const newPageNumberToId = this.#pageNumberToId = new Uint32Array(newN);\n this.#prevPageNumbers = new Int32Array(newN);\n let sourceIndex = 0;\n let destIndex = 0;\n for (const pageNumber of pagesToDelete) {\n const pageIndex = pageNumber - 1;\n if (pageIndex !== sourceIndex) {\n newPageNumberToId.set(pageNumberToId.subarray(sourceIndex, pageIndex), destIndex);\n destIndex += pageIndex - sourceIndex;\n }\n sourceIndex = pageIndex + 1;\n }\n if (sourceIndex < pageNumberToId.length) {\n newPageNumberToId.set(pageNumberToId.subarray(sourceIndex), destIndex);\n }\n this.#updatePrevPageNumbers(prevIdToPageNumber, new Set(pagesToDelete));\n }\n cancelDelete() {\n if (this.#savedData) {\n this.#pageNumberToId = this.#savedData.pageNumberToId;\n this.#pagesNumber = this.#savedData.pagesNumber;\n this.#prevPageNumbers = this.#savedData.prevPageNumbers;\n this.#savedData = null;\n }\n }\n cleanSavedData() {\n this.#savedData = null;\n }\n copyPages(pagesToCopy) {\n this.#ensureInit();\n this.#clipboard = {\n pageNumbers: pagesToCopy,\n pageIds: pagesToCopy.map(n => this.#pageNumberToId[n - 1])\n };\n }\n cancelCopy() {\n this.#clipboard = null;\n }\n pastePages(index) {\n this.#ensureInit();\n const pageNumberToId = this.#pageNumberToId;\n const prevIdToPageNumber = this.#buildIdToPageNumber();\n const {\n pageNumbers: copiedPageNumbers,\n pageIds: copiedPageIds\n } = this.#clipboard;\n const newN = this.#pagesNumber + copiedPageNumbers.length;\n this.#pagesNumber = newN;\n const newPageNumberToId = this.#pageNumberToId = new Uint32Array(newN);\n this.#prevPageNumbers = new Int32Array(newN);\n newPageNumberToId.set(pageNumberToId.subarray(0, index), 0);\n newPageNumberToId.set(copiedPageIds, index);\n newPageNumberToId.set(pageNumberToId.subarray(index), index + copiedPageNumbers.length);\n this.#updatePrevPageNumbers(prevIdToPageNumber, null, index, copiedPageNumbers);\n this.#clipboard = null;\n }\n #updatePrevPageNumbers(prevIdToPageNumber, deletedPageNumbers = null, pasteIndex = -1, copiedPageNumbers = null) {\n const prevPageNumbers = this.#prevPageNumbers;\n const newPageNumberToId = this.#pageNumberToId;\n const pasteEnd = pasteIndex + (copiedPageNumbers?.length ?? 0);\n const idsIndices = new Map();\n for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n if (i >= pasteIndex && i < pasteEnd) {\n prevPageNumbers[i] = -copiedPageNumbers[i - pasteIndex];\n continue;\n }\n const id = newPageNumberToId[i];\n const oldPositions = prevIdToPageNumber.get(id);\n let j = idsIndices.get(id) || 0;\n if (deletedPageNumbers && oldPositions) {\n while (j < oldPositions.length && deletedPageNumbers.has(oldPositions[j])) {\n j++;\n }\n }\n prevPageNumbers[i] = oldPositions?.[j];\n idsIndices.set(id, j + 1);\n }\n }\n hasBeenAltered() {\n return this.#pageNumberToId !== null;\n }\n getPageMappingForSaving(idToPageNumber = null) {\n idToPageNumber ??= this.#buildIdToPageNumber();\n let nCopy = 0;\n for (const pageNumbers of idToPageNumber.values()) {\n nCopy = Math.max(nCopy, pageNumbers.length);\n }\n const extractParams = new Array(nCopy);\n for (let i = 0; i < nCopy; i++) {\n extractParams[i] = {\n document: null,\n pageIndices: [],\n includePages: []\n };\n }\n for (const [id, pageNumbers] of idToPageNumber) {\n for (let i = 0, ii = pageNumbers.length; i < ii; i++) {\n extractParams[i].includePages.push([id - 1, pageNumbers[i] - 1]);\n }\n }\n for (const {\n includePages,\n pageIndices\n } of extractParams) {\n includePages.sort((a, b) => a[0] - b[0]);\n for (let i = 0, ii = includePages.length; i < ii; i++) {\n pageIndices.push(includePages[i][1]);\n includePages[i] = includePages[i][0];\n }\n }\n return extractParams;\n }\n extractPages(extractedPageNumbers) {\n extractedPageNumbers = Array.from(extractedPageNumbers).sort((a, b) => a - b);\n const usedIds = new Map();\n for (let i = 0, ii = extractedPageNumbers.length; i < ii; i++) {\n const id = this.getPageId(extractedPageNumbers[i]);\n const usedPageNumbers = usedIds.getOrInsertComputed(id, makeArr);\n usedPageNumbers.push(i + 1);\n }\n return this.getPageMappingForSaving(usedIds);\n }\n getPrevPageNumber(pageNumber) {\n return this.#prevPageNumbers?.[pageNumber - 1] ?? 0;\n }\n getPageNumber(id) {\n if (!this.#pageNumberToId) {\n return id;\n }\n const pageNumberToId = this.#pageNumberToId;\n for (let i = 0, ii = this.#pagesNumber; i < ii; i++) {\n if (pageNumberToId[i] === id) {\n return i + 1;\n }\n }\n return 0;\n }\n getPageId(pageNumber) {\n return this.#pageNumberToId?.[pageNumber - 1] ?? pageNumber;\n }\n getMapping() {\n return this.#pageNumberToId?.subarray(0, this.pagesNumber);\n }\n}\n\n;// ./src/display/pdf_objects.js\n\n\n\nconst INITIAL_DATA = Symbol(\"INITIAL_DATA\");\nconst dataObj = () => ({\n ...Promise.withResolvers(),\n data: INITIAL_DATA\n});\nclass PDFObjects {\n #objs = new Map();\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#objs.getOrInsertComputed(objId, dataObj);\n obj.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs.get(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.get(objId);\n return !!obj && obj.data !== INITIAL_DATA;\n }\n delete(objId) {\n const obj = this.#objs.get(objId);\n if (!obj || obj.data === INITIAL_DATA) {\n return false;\n }\n this.#objs.delete(objId);\n return true;\n }\n resolve(objId, data = null) {\n const obj = this.#objs.getOrInsertComputed(objId, dataObj);\n if (obj.data !== INITIAL_DATA) {\n throw new Error(`Object already resolved ${objId}.`);\n }\n obj.data = data;\n obj.resolve();\n }\n clear() {\n for (const {\n data\n } of this.#objs.values()) {\n data?.bitmap?.close();\n }\n this.#objs.clear();\n }\n *[Symbol.iterator]() {\n for (const [objId, {\n data\n }] of this.#objs) {\n if (data !== INITIAL_DATA) {\n yield [objId, data];\n }\n }\n }\n}\n\n;// ./src/display/text_layer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nclass TextLayer {\n #capability = Promise.withResolvers();\n #container = null;\n #disableProcessItems = false;\n #fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n #imagesHandler = null;\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 images,\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.#imagesHandler = images;\n this.#scale = viewport.scale * OutputScale.pixelRatio;\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 container.style.setProperty(\"--min-font-size\", TextLayer.#minFontSize);\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 } = 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 if (this.#imagesHandler) {\n this.#container.append(this.#imagesHandler.render());\n }\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 * OutputScale.pixelRatio;\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) {\n this.#container.setAttribute(\"id\", `${item.id}`);\n }\n if (item.tag === \"Artifact\") {\n this.#container.ariaHidden = true;\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, style, 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 divStyle = textDiv.style;\n divStyle.left = `${(100 * left / this.#pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / this.#pageHeight).toFixed(2)}%`;\n divStyle.setProperty(\"--font-height\", `${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 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 style.setProperty(\"--scale-x\", canvasWidth * this.#scale / width);\n }\n }\n if (properties.angle !== 0) {\n style.setProperty(\"--rotate\", `${properties.angle}deg`);\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, style, 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 const ascent = metrics.fontBoundingBoxAscent;\n const descent = Math.abs(metrics.fontBoundingBoxDescent);\n ctx.canvas.width = ctx.canvas.height = 0;\n let ratio = 0.8;\n if (ascent) {\n ratio = ascent / (ascent + descent);\n } else {\n if (FeatureTest.platform.isFirefox) {\n warn(\"Enable the `dom.textMetrics.fontBoundingBox.enabled` preference \" + \"in `about:config` to improve TextLayer rendering.\");\n }\n if (style.ascent) {\n ratio = style.ascent;\n } else if (style.descent) {\n ratio = 1 + style.descent;\n }\n }\n this.#ascentCache.set(fontFamily, ratio);\n return ratio;\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst RENDERING_CANCELLED_TIMEOUT = 100;\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 : 2 ** 16;\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 = getFactoryUrlProp(src.cMapUrl);\n const cMapPacked = src.cMapPacked !== false;\n const iccUrl = getFactoryUrlProp(src.iccUrl);\n const standardFontDataUrl = getFactoryUrlProp(src.standardFontDataUrl);\n const wasmUrl = getFactoryUrlProp(src.wasmUrl);\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !isNodeJS;\n const isImageDecoderSupported = typeof src.isImageDecoderSupported === \"boolean\" ? src.isImageDecoderSupported : !isNodeJS && (FeatureTest.platform.isFirefox || !globalThis.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 || (isNodeJS ? NodeCanvasFactory : DOMCanvasFactory);\n const FilterFactory = src.FilterFactory || (isNodeJS ? NodeFilterFactory : DOMFilterFactory);\n const BinaryDataFactory = src.BinaryDataFactory || (isNodeJS ? NodeBinaryDataFactory : DOMBinaryDataFactory);\n const enableHWA = src.enableHWA === true;\n const enableWebGPU = src.enableWebGPU === true;\n const gpuPromise = enableWebGPU ? initGPU() : Promise.resolve(false);\n const useWasm = src.useWasm !== false;\n const pagesMapper = src.pagesMapper || new PagesMapper();\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : !!(BinaryDataFactory === DOMBinaryDataFactory && cMapUrl && cMapPacked && standardFontDataUrl && wasmUrl && isValidFetchUrl(cMapUrl, document.baseURI) && isValidFetchUrl(standardFontDataUrl, document.baseURI) && isValidFetchUrl(wasmUrl, document.baseURI));\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 binaryDataFactory: useWorkerFetch ? null : new BinaryDataFactory({\n cMapUrl,\n standardFontDataUrl,\n wasmUrl\n })\n };\n if (!worker) {\n worker = PDFWorker.create({\n verbosity,\n port: GlobalWorkerOptions.workerPort\n });\n task._worker = worker;\n }\n const docParams = {\n docId,\n apiVersion: \"5.7.284\",\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isOffscreenCanvasSupported,\n isImageDecoderSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n useWasm,\n useWorkerFetch,\n cMapUrl,\n cMapPacked,\n iccUrl,\n standardFontDataUrl,\n wasmUrl,\n hasGPU: false\n }\n };\n const transportParams = {\n ownerDocument,\n pdfBug,\n styleElement,\n enableHWA,\n loadingParams: {\n disableAutoFetch,\n enableXfa\n }\n };\n Promise.all([worker.promise, gpuPromise]).then(function ([, hasGPU]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n docParams.evaluatorOptions.hasGPU = hasGPU;\n const workerIdPromise = worker.messageHandler.sendWithPromise(\"GetDocRequest\", docParams, data ? [data.buffer] : null);\n let networkStream;\n if (data) {} else if (rangeTransport) {\n networkStream = new PDFDataTransportStream({\n pdfDataRangeTransport: rangeTransport,\n disableRange,\n disableStream\n });\n } else if (url) {\n const NetworkStream = getNetworkStream(url);\n networkStream = new NetworkStream({\n url,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n } else {\n throw new Error(\"getDocument - expected either `data`, `range`, or `url` parameter.\");\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, pagesMapper);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n _capability = Promise.withResolvers();\n _transport = null;\n _worker = null;\n docId = `d${PDFDocumentLoadingTask.#docId++}`;\n destroyed = false;\n onPassword = null;\n onProgress = null;\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 this._worker?.destroy();\n this._worker = null;\n }\n async getData() {\n return this._transport.getData();\n }\n}\nclass PDFDataRangeTransport {\n #capability = Promise.withResolvers();\n #listener = null;\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 Object.defineProperty(this, \"onDataProgress\", {\n value: () => {\n deprecated(\"`PDFDataRangeTransport.prototype.onDataProgress` - method was \" + \"removed, since loading progress is now reported automatically \" + \"through the `PDFDataTransportStream` class (and related code).\");\n }\n });\n }\n onDataRange(begin, chunk) {\n this.#listener({\n type: \"range\",\n begin,\n chunk\n });\n }\n onDataProgressiveRead(chunk) {\n this.#capability.promise.then(() => {\n this.#listener({\n type: \"progressiveRead\",\n chunk\n });\n });\n }\n onDataProgressiveDone() {\n this.#capability.promise.then(() => {\n this.#listener({\n type: \"progressiveDone\"\n });\n });\n }\n transportReady(listener) {\n this.#listener = listener;\n this.#capability.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 pagesMapper() {\n return this._transport.pagesMapper;\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 getAnnotationsByType(types, pageIndexesToSkip) {\n return this._transport.getAnnotationsByType(types, pageIndexesToSkip);\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 extractPages(pageInfos) {\n return this._transport.extractPages(pageInfos);\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n getRawData(data) {\n return this._transport.getRawData(data);\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 #pendingCleanup = false;\n #pagesMapper = null;\n constructor(pageIndex, pageInfo, transport, pagesMapper, 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._intentStates = new Map();\n this.destroyed = false;\n this.recordedBBoxes = null;\n this.#pagesMapper = pagesMapper;\n this.imageCoordinates = null;\n }\n clone(id) {\n const clone = new PDFPageProxy(id, this._pageInfo, this._transport, this.#pagesMapper, this._pdfBug);\n clone.clonedFromIndex = this.clonedFromIndex ?? this._pageIndex;\n this._transport.updatePage(clone);\n return clone;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n set pageNumber(value) {\n this._pageIndex = value - 1;\n this._transport.updatePage(this);\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 userUnit: this.userUnit,\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 canvas = canvasContext.canvas,\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 recordImages = false,\n recordOperations = false,\n operationsFilter = null\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 optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent);\n const intentState = this._intentStates.getOrInsertComputed(cacheKey, makeObj);\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 recordForDebugger = !!(this._pdfBug && globalThis.StepperManager?.enabled);\n const shouldRecordOperations = !!canvas && !this.recordedBBoxes && (recordOperations || recordForDebugger);\n const shouldRecordImages = !!canvas && !this.imageCoordinates && recordImages;\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (shouldRecordOperations) {\n const recordedBBoxes = internalRenderTask.gfx?.dependencyTracker.take();\n if (recordedBBoxes) {\n internalRenderTask.stepper?.setOperatorBBoxes(recordedBBoxes, internalRenderTask.gfx.dependencyTracker.takeDebugMetadata());\n if (recordOperations) {\n this.recordedBBoxes = recordedBBoxes;\n }\n }\n }\n if (shouldRecordImages && !error) {\n this.imageCoordinates = internalRenderTask.gfx?.imagesTracker.take();\n }\n if (intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup();\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 let dependencyTracker = null;\n let bboxTracker = null;\n if (shouldRecordOperations || shouldRecordImages) {\n bboxTracker = new CanvasBBoxTracker(canvas, intentState.operatorList.length);\n }\n if (shouldRecordOperations) {\n dependencyTracker = new CanvasDependencyTracker(bboxTracker, recordForDebugger);\n }\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvas,\n canvasContext,\n dependencyTracker: dependencyTracker ?? bboxTracker,\n imagesTracker: shouldRecordImages ? new CanvasImagesTracker(canvas) : null,\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 enableHWA: this._transport.enableHWA,\n operationsFilter\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 const intentState = this._intentStates.getOrInsertComputed(intentArgs.cacheKey, makeObj);\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 pageId: this.#pagesMapper.getPageId(this._pageIndex + 1) - 1,\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 async getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => XfaText.textContent(xfa));\n }\n const readableStream = this.streamTextContent(params);\n const textContent = {\n items: [],\n styles: Object.create(null),\n lang: null\n };\n for await (const value of readableStream) {\n textContent.lang ??= value.lang;\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n }\n return textContent;\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 return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup();\n if (resetStats && success) {\n this._stats &&= new StatTimer();\n }\n return success;\n }\n #tryCleanup() {\n if (!this.#pendingCleanup || this.destroyed) {\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 _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();\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 pageId: this.#pagesMapper.getPageId(this._pageIndex + 1) - 1,\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map,\n modifiedIds\n }, undefined, 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();\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 PDFWorker {\n #capability = Promise.withResolvers();\n #messageHandler = null;\n #port = null;\n #webWorker = null;\n static #fakeWorkerId = 0;\n static #isWorkerDisabled = false;\n static #workerPorts = new WeakMap();\n static {\n if (isNodeJS) {\n this.#isWorkerDisabled = true;\n GlobalWorkerOptions.workerSrc ||= \"./pdf.worker.mjs\";\n }\n this._isSameOrigin = (baseUrl, otherUrl) => {\n const base = URL.parse(baseUrl);\n if (!base?.origin || base.origin === \"null\") {\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 if (port) {\n if (PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n PDFWorker.#workerPorts.set(port, this);\n this.#initializeFromPort(port);\n } else {\n this.#initialize();\n }\n }\n get promise() {\n return this.#capability.promise;\n }\n #resolve() {\n this.#capability.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\", () => {});\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, 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.#capability.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.#capability.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.#capability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n this.#webWorker?.terminate();\n this.#webWorker = null;\n PDFWorker.#workerPorts.delete(this.#port);\n this.#port = null;\n this.#messageHandler?.destroy();\n this.#messageHandler = null;\n }\n static create(params) {\n const cachedPort = this.#workerPorts.get(params?.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.create - 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(\n /*webpackIgnore: true*/\n /*@vite-ignore*/\n this.workerSrc);\n return worker.WorkerMessageHandler;\n };\n return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nclass WorkerTransport {\n downloadInfoCapability = Promise.withResolvers();\n #fullReader = null;\n #methodPromises = new Map();\n #networkStream = null;\n #pageCache = new Map();\n #pagePromises = new Map();\n #pageRefCache = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory, pagesMapper) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.#networkStream = networkStream;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this.enableHWA = params.enableHWA;\n this.loadingParams = params.loadingParams;\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.binaryDataFactory = factory.binaryDataFactory;\n this.pagesMapper = pagesMapper;\n this.destroyed = false;\n this.destroyCapability = null;\n this.setupMessageHandler();\n }\n updatePage(page) {\n const {\n _pageIndex\n } = page;\n this.#pageCache.set(_pageIndex, page);\n this.#pagePromises.set(_pageIndex, Promise.resolve(page));\n }\n #cacheSimpleMethod(name, data = null) {\n return this.#methodPromises.getOrInsertComputed(name, () => this.messageHandler.sendWithPromise(name, data));\n }\n #onProgress({\n loaded,\n total\n }) {\n this.loadingTask.onProgress?.({\n loaded,\n total,\n percent: total ? MathClamp(Math.round(loaded / total * 100), 0, 100) : NaN\n });\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 (Object.hasOwn(this, \"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 this.messageHandler?.destroy();\n this.messageHandler = null;\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 `BasePDFStream` instance available.\");\n this.#fullReader = this.#networkStream.getFullReader();\n this.#fullReader.onProgress = evt => this.#onProgress(evt);\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 this.#fullReader.onProgress = null;\n }\n return {\n isStreamingSupported,\n isRangeSupported,\n contentLength\n };\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n assert(this.#networkStream, \"GetRangeReader - no `BasePDFStream` 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.pagesMapper.pagesNumber = pdfInfo.numPages;\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\", ex => {\n loadingTask._capability.reject(wrapReason(ex));\n });\n messageHandler.on(\"PasswordRequest\", ex => {\n this.#passwordCapability = Promise.withResolvers();\n try {\n if (!loadingTask.onPassword) {\n throw wrapReason(ex);\n }\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 loadingTask.onPassword(updatePassword, ex.code);\n } catch (err) {\n this.#passwordCapability.reject(err);\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n this.#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 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 fontData = new FontInfo(exportedData);\n const inspectFont = this._params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new FontFaceObject(fontData, inspectFont, exportedData.charProcOperatorList, exportedData.extra);\n this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise(\"FontFallback\", {\n id\n })).finally(() => {\n if (!font.fontExtraProperties) {\n font.clearData();\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 const copy = structuredClone(data);\n this.commonObjs.resolve(id, copy);\n return data.dataLen;\n }\n }\n break;\n case \"FontPath\":\n this.commonObjs.resolve(id, new FontPathInfo(exportedData));\n break;\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n case \"Pattern\":\n const pattern = new PatternInfo(exportedData);\n this.commonObjs.resolve(id, pattern.getIR());\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 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 this.#onProgress(data);\n });\n messageHandler.on(\"FetchBinaryData\", async data => {\n if (this.destroyed) {\n throw new Error(\"Worker was destroyed.\");\n }\n if (!this.binaryDataFactory) {\n throw new Error(\"`BinaryDataFactory` not initialized, see the `useWorkerFetch` parameter.\");\n }\n return this.binaryDataFactory.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 extractPages(pageInfos) {\n const params = {\n pageInfos\n };\n let transfer;\n if (this.annotationStorage.size > 0) {\n const {\n map,\n transfer: t\n } = this.annotationStorage.serializable;\n params.annotationStorage = map;\n transfer = t;\n }\n return this.messageHandler.sendWithPromise(\"ExtractPages\", params, transfer).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.pagesMapper.pagesNumber) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1;\n const newPageIndex = this.pagesMapper.getPageId(pageNumber) - 1;\n const cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex: newPageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n if (pageInfo.refStr) {\n this.#pageRefCache.set(pageInfo.refStr, newPageIndex);\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this.pagesMapper, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n async getPageIndex(ref) {\n if (!isRefProxy(ref)) {\n throw new Error(\"Invalid pageIndex request.\");\n }\n const index = await this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n const pageNumber = this.pagesMapper.getPageNumber(index + 1);\n if (pageNumber === 0) {\n throw new Error(\"GetPageIndex: page has been removed.\");\n }\n return pageNumber - 1;\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1,\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 getAnnotationsByType(types, pageIndexesToSkip) {\n return this.messageHandler.sendWithPromise(\"GetAnnotationsByType\", {\n types,\n pageIndexesToSkip\n });\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex: this.pagesMapper.getPageId(pageIndex + 1) - 1\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 return this.#methodPromises.getOrInsertComputed(name, () => 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 hasStructTree: results[2]\n })));\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n getRawData(data) {\n return this.messageHandler.sendWithPromise(\"GetRawData\", data);\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 const pageIndex = this.#pageRefCache.get(refStr);\n if (pageIndex >= 0) {\n const pageNumber = this.pagesMapper.getPageNumber(pageIndex + 1);\n if (pageNumber !== 0) {\n return pageNumber;\n }\n }\n return null;\n }\n}\nclass RenderTask {\n _internalRenderTask = null;\n onContinue = null;\n onError = null;\n constructor(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\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 get imageCoordinates() {\n return this._internalRenderTask.imageCoordinates || null;\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 enableHWA = false,\n operationsFilter = 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.canvas;\n this._canvasContext = params.canvas ? null : params.canvasContext;\n this._enableHWA = enableHWA;\n this._dependencyTracker = params.dependencyTracker;\n this._imagesTracker = params.imagesTracker;\n this._operationsFilter = operationsFilter;\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 viewport,\n transform,\n background,\n dependencyTracker,\n imagesTracker\n } = this.params;\n const canvasContext = this._canvasContext || this._canvas.getContext(\"2d\", {\n alpha: false,\n willReadFrequently: !this._enableHWA\n });\n this.gfx = new CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors, dependencyTracker, imagesTracker);\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 error ||= new RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay);\n this.callback(error);\n this.task.onError?.(error);\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.gfx.dependencyTracker?.growOperationsCount(this.operatorList.fnArray.length);\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, this._operationsFilter);\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 = \"5.7.284\";\nconst build = \"7e5b36c2d\";\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.math.sum-precise.js\nvar es_math_sum_precise = __webpack_require__(3068);\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 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.#editor = editor;\n } else {\n this.#isMainColorPicker = true;\n }\n this.#uiManager = editor?._uiManager || uiManager;\n this.#eventBus = this.#uiManager._eventBus;\n this.#defaultColor = editor?.color?.toUpperCase() || 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.ariaHasPopup = \"true\";\n if (this.#editor) {\n button.ariaControls = `${this.#editor.id}_colorpicker_dropdown`;\n }\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.ariaHidden = \"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.ariaOrientation = \"horizontal\";\n dropdown.ariaLabelledBy = \"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.ariaMultiSelectable = \"false\";\n div.ariaOrientation = \"vertical\";\n div.setAttribute(\"data-l10n-id\", \"pdfjs-editor-colorpicker-dropdown\");\n if (this.#editor) {\n div.id = `${this.#editor.id}_colorpicker_dropdown`;\n }\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.ariaSelected = 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: AnnotationEditorParamsType.HIGHLIGHT_COLOR,\n value: color\n });\n this.updateColor(color);\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.firstElementChild?.focus();\n return;\n }\n event.target.nextSibling?.focus();\n }\n _moveToPrevious(event) {\n if (event.target === this.#dropdown?.firstElementChild || 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.firstElementChild?.focus();\n }\n _moveToEnd(event) {\n if (!this.#isDropdownVisible) {\n this.#openDropdown(event);\n return;\n }\n this.#dropdown.lastElementChild?.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 this.#button.ariaExpanded = \"true\";\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.#button.ariaExpanded = \"false\";\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.ariaSelected = i.next().value === color.toUpperCase();\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}\nclass BasicColorPicker {\n #input = null;\n #hasAlpha = false;\n #editor = null;\n #uiManager = null;\n static #l10nColor = null;\n constructor(editor) {\n this.#editor = editor;\n this.#uiManager = editor._uiManager;\n BasicColorPicker.#l10nColor ||= Object.freeze({\n freetext: \"pdfjs-editor-color-picker-free-text-input\",\n ink: \"pdfjs-editor-color-picker-ink-input\"\n });\n }\n renderButton() {\n if (this.#input) {\n return this.#input;\n }\n const {\n editorType,\n colorType,\n colorAndOpacityType,\n opacityType,\n color,\n opacity\n } = this.#editor;\n const hasAlpha = this.#hasAlpha = FeatureTest.isAlphaColorInputSupported && opacityType !== undefined;\n const input = this.#input = document.createElement(\"input\");\n input.type = \"color\";\n if (hasAlpha) {\n input.setAttribute(\"alpha\", \"\");\n const alphaHex = Util.hexNums[Math.round((opacity ?? 1) * 255)];\n input.value = (color || \"#000000\") + alphaHex;\n } else {\n input.value = color || \"#000000\";\n }\n input.className = \"basicColorPicker\";\n input.tabIndex = 0;\n input.setAttribute(\"data-l10n-id\", BasicColorPicker.#l10nColor[editorType]);\n input.addEventListener(\"input\", () => {\n if (hasAlpha) {\n const rgba = getRGBA(input.value);\n if (!rgba) {\n return;\n }\n const [r, g, b, op] = rgba;\n const hex = Util.makeHexColor(r, g, b);\n if (colorAndOpacityType !== undefined) {\n this.#uiManager.updateParams(colorAndOpacityType, {\n color: hex,\n opacity: op\n });\n } else {\n this.#uiManager.updateParams(colorType, hex);\n this.#uiManager.updateParams(opacityType, op);\n }\n } else {\n this.#uiManager.updateParams(colorType, input.value);\n }\n }, {\n signal: this.#uiManager._signal\n });\n return input;\n }\n update(value) {\n if (!this.#input) {\n return;\n }\n if (this.#hasAlpha) {\n const alphaHex = Util.hexNums[Math.round(this.#editor.opacity * 255)];\n this.#input.value = value + alphaHex;\n } else {\n this.#input.value = value;\n }\n }\n updateOpacity(value) {\n if (!this.#input || !this.#hasAlpha) {\n return;\n }\n const alphaHex = Util.hexNums[Math.round(value * 255)];\n this.#input.value = this.#editor.color + alphaHex;\n }\n destroy() {\n this.#input?.remove();\n this.#input = null;\n }\n hideDropdown() {}\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js\nvar es_iterator_flat_map = __webpack_require__(531);\n;// ./src/shared/scripting_utils.js\n\n\n\nfunction makeColorComp(n) {\n return Math.floor(MathClamp(n, 0, 1) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return MathClamp(x, 0, 1) * 255;\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}\nconst DateFormats = (/* unused pure expression or super */ null && ([\"m/d\", \"m/d/yy\", \"mm/dd/yy\", \"mm/yy\", \"d-mmm\", \"d-mmm-yy\", \"dd-mmm-yy\", \"yy-mm-dd\", \"mmm-yy\", \"mmmm-yy\", \"mmm d, yyyy\", \"mmmm d, yyyy\", \"m/d/yy h:MM tt\", \"m/d/yy HH:MM\"]));\nconst TimeFormats = (/* unused pure expression or super */ null && ([\"HH:MM\", \"h:MM tt\", \"HH:MM:ss\", \"h:MM:ss tt\"]));\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/annotation_layer.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst annotation_layer_DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nconst TIMEZONE_OFFSET = new Date().getTimezoneOffset() * 60 * 1000;\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.enableComment = parameters.enableComment;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n this.hasOwnCommentButton = false;\n if (isRenderable) {\n this.contentElement = this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n contentsObj,\n richText\n }) {\n return !!(contentsObj?.str || richText?.str);\n }\n get _isEditable() {\n return this.data.isEditable;\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data) || this.enableComment && !!this.commentText;\n }\n get commentData() {\n const {\n data\n } = this;\n const editor = this.annotationStorage?.getEditor(data.id);\n if (editor) {\n return editor.getData();\n }\n return data;\n }\n get hasCommentButton() {\n return this.enableComment && this.hasPopupElement;\n }\n get commentButtonPosition() {\n const editor = this.annotationStorage?.getEditor(this.data.id);\n if (editor) {\n return editor.commentButtonPositionInPage;\n }\n const {\n quadPoints,\n inkLists,\n rect\n } = this.data;\n let maxX = -Infinity;\n let maxY = -Infinity;\n if (quadPoints?.length >= 8) {\n for (let i = 0; i < quadPoints.length; i += 8) {\n if (quadPoints[i + 1] > maxY) {\n maxY = quadPoints[i + 1];\n maxX = quadPoints[i + 2];\n } else if (quadPoints[i + 1] === maxY) {\n maxX = Math.max(maxX, quadPoints[i + 2]);\n }\n }\n return [maxX, maxY];\n }\n if (inkLists?.length >= 1) {\n for (const inkList of inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i += 2) {\n if (inkList[i + 1] > maxY) {\n maxY = inkList[i + 1];\n maxX = inkList[i];\n } else if (inkList[i + 1] === maxY) {\n maxX = Math.max(maxX, inkList[i]);\n }\n }\n }\n if (maxX !== Infinity) {\n return [maxX, maxY];\n }\n }\n if (rect) {\n return [rect[2], rect[3]];\n }\n return null;\n }\n _normalizePoint(point) {\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 point[1] = view[3] - point[1] + view[1];\n point[0] = 100 * (point[0] - pageX) / pageWidth;\n point[1] = 100 * (point[1] - pageY) / pageHeight;\n return point;\n }\n get commentText() {\n const {\n data\n } = this;\n return this.annotationStorage.getRawValue(`${AnnotationEditorPrefix}${data.id}`)?.popup?.contents || data.contentsObj?.str || \"\";\n }\n set commentText(text) {\n const {\n data\n } = this;\n const popup = {\n deleted: !text,\n contents: text || \"\"\n };\n if (!this.annotationStorage.updateEditor(data.id, {\n popup\n })) {\n this.annotationStorage.setValue(`${AnnotationEditorPrefix}${data.id}`, {\n id: data.id,\n annotationType: data.annotationType,\n page: this.parent.page,\n popup,\n popupRef: data.popupRef,\n modificationDate: new Date()\n });\n }\n if (!text) {\n this.removePopup();\n }\n }\n removePopup() {\n (this.#popupElement?.popup || this.popup)?.remove();\n this.#popupElement = this.popup = null;\n }\n updateEdited(params) {\n if (!this.container) {\n return;\n }\n if (params.rect) {\n this.#updates ||= {\n rect: this.data.rect.slice(0)\n };\n }\n const {\n rect,\n popup: newPopup\n } = params;\n if (rect) {\n this.#setRectEdited(rect);\n }\n let popup = this.#popupElement?.popup || this.popup;\n if (!popup && newPopup?.text) {\n this._createPopup(newPopup);\n popup = this.#popupElement.popup;\n }\n if (!popup) {\n return;\n }\n popup.updateEdited(params);\n if (newPopup?.deleted) {\n popup.remove();\n this.#popupElement = null;\n this.popup = null;\n }\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 style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`;\n if (rotation === 0) {\n style.width = `${100 * (rect[2] - rect[0]) / pageWidth}%`;\n style.height = `${100 * (rect[3] - rect[1]) / 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) && !(this instanceof LinkAnnotationElement)) {\n container.tabIndex = 0;\n }\n const {\n style\n } = container;\n style.zIndex = this.parent.zIndex;\n this.parent.zIndex += 2;\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 } = this;\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(--total-scale-factor)) / calc(${verticalRadius}px * var(--total-scale-factor))`;\n style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--total-scale-factor)) / calc(${height}px * var(--total-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);\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 let {\n width,\n height\n } = this;\n if (angle % 180 !== 0) {\n [width, height] = [height, width];\n }\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\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 svg.role = \"none\";\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(popupData = null) {\n const {\n data\n } = this;\n let contentsObj, modificationDate;\n if (popupData) {\n contentsObj = {\n str: popupData.text\n };\n modificationDate = popupData.date;\n } else {\n contentsObj = data.contentsObj;\n modificationDate = data.modificationDate;\n }\n this.#popupElement = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate,\n contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation,\n noRotate: true\n },\n linkService: this.linkService,\n parent: this.parent,\n elements: [this]\n });\n }\n get hasPopupElement() {\n return !!(this.#popupElement || this.popup || this.data.popupRef);\n }\n get extraPopupElement() {\n return this.#popupElement;\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 mustEnterInEditMode: true\n });\n });\n }\n get width() {\n return this.data.rect[2] - this.data.rect[0];\n }\n get height() {\n return this.data.rect[3] - this.data.rect[1];\n }\n}\nclass EditorAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.editor = parameters.editor;\n }\n render() {\n this.container.className = \"editorAnnotation\";\n return this.container;\n }\n createOrUpdatePopup() {\n const {\n editor\n } = this;\n if (!editor.hasComment) {\n return;\n }\n this._createPopup(editor.comment);\n }\n get hasCommentButton() {\n return this.enableComment && this.editor.hasComment;\n }\n get commentButtonPosition() {\n return this.editor.commentButtonPositionInPage;\n }\n get commentText() {\n return this.editor.comment.text;\n }\n set commentText(text) {\n this.editor.comment = text;\n if (!text) {\n this.removePopup();\n }\n }\n get commentData() {\n return this.editor.getData();\n }\n remove() {\n this.parent.removeAnnotation(this.data.id);\n this.container.remove();\n this.container = null;\n this.removePopup();\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, data.overlaidText);\n isBound = true;\n } else if (data.attachment) {\n this.#bindAttachment(link, data.attachment, data.overlaidText, data.attachmentDest);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState, data.overlaidText);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest, data.overlaidText);\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.contentElement = link;\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, overlaidText = \"\") {\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 if (overlaidText) {\n link.title = overlaidText;\n }\n }\n _bindNamedAction(link, action, overlaidText = \"\") {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n if (overlaidText) {\n link.title = overlaidText;\n }\n this.#setInternalLink();\n }\n #bindAttachment(link, attachment, overlaidText = \"\", dest = null) {\n link.href = this.linkService.getAnchorUrl(\"\");\n if (attachment.description) {\n link.title = attachment.description;\n } else if (overlaidText) {\n link.title = overlaidText;\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, overlaidText = \"\") {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n if (overlaidText) {\n link.title = overlaidText;\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 (data.overlaidText) {\n link.title = data.overlaidText;\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.hasOwnCommentButton = true;\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 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);\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(--total-scale-factor))`;\n style.color = Util.makeHexColor(...fontColor);\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 = this.data.password ? \"password\" : \"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 this.contentElement = element;\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = 0;\n const {\n datetimeFormat,\n datetimeType,\n timeStep\n } = this.data;\n const hasDateOrTime = !!datetimeType && this.enableScripting;\n if (datetimeFormat) {\n element.title = datetimeFormat;\n }\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 (hasDateOrTime) {\n target.type = datetimeType;\n if (timeStep) {\n target.step = timeStep;\n }\n }\n if (elementData.userValue) {\n const value = elementData.userValue;\n if (hasDateOrTime) {\n if (datetimeType === \"time\") {\n const date = new Date(value);\n const parts = [date.getHours(), date.getMinutes(), date.getSeconds()];\n target.value = parts.map(v => v.toString().padStart(2, \"0\")).join(\":\");\n } else {\n target.value = new Date(value - TIMEZONE_OFFSET).toISOString().split(datetimeType === \"date\" ? \"T\" : \".\", 1)[0];\n }\n } else {\n target.value = value;\n }\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 if (!hasDateOrTime) {\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\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 const data = {\n formattedValue\n };\n if (hasDateOrTime) {\n data.value = formattedValue;\n }\n storage.setValue(id, data);\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 target\n } = event;\n let {\n value\n } = target;\n if (hasDateOrTime) {\n if (value && datetimeType === \"time\") {\n const parts = value.split(\":\").map(v => parseInt(v, 10));\n value = new Date(2000, 0, 1, parts[0], parts[1], parts[2] || 0).valueOf();\n target.step = \"\";\n } else {\n if (!value.includes(\"T\")) {\n value = `${value}T00:00`;\n }\n value = new Date(value).valueOf();\n }\n target.type = \"text\";\n }\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(--total-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 = 0;\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 = 0;\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 = 0;\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 const fixDisplayValue = (option, value) => {\n const newValue = value.replaceAll(\" \", \"\\u00A0\");\n option.textContent = newValue;\n if (newValue !== value) {\n option.setAttribute(\"display-value\", value);\n }\n };\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n fixDisplayValue(optionElement, 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.getAttribute(\"display-value\") || 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 fixDisplayValue(optionElement, 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 fixDisplayValue(optionElement, 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 parent\n } = parameters;\n const hasCommentManager = !!parent._commentManager;\n super(parameters, {\n isRenderable: !hasCommentManager && AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n if (hasCommentManager && AnnotationElement._hasPopupData(data)) {\n const popup = this.popup = this.#createPopup();\n for (const element of elements) {\n element.popup = popup;\n }\n } else {\n this.popup = null;\n }\n }\n #createPopup() {\n return new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate || this.data.creationDate,\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 commentManager: this.parent._commentManager\n });\n }\n render() {\n const {\n container\n } = this;\n container.classList.add(\"popupAnnotation\");\n container.role = \"comment\";\n const popup = this.popup = this.#createPopup();\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 #commentManager = null;\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 #popupAbortController = null;\n #position = null;\n #commentButton = null;\n #commentButtonPosition = null;\n #popupPosition = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #updates = null;\n #wasVisible = false;\n #firstElement = null;\n #commentText = null;\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 commentManager = null\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.#commentManager = commentManager;\n this.#firstElement = elements[0];\n this.#dateObj = PDFDateString.toDateObject(modificationDate);\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n if (!commentManager) {\n this.#addEventListeners();\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n }\n #addEventListeners() {\n if (this.#popupAbortController) {\n return;\n }\n this.#popupAbortController = new AbortController();\n const {\n signal\n } = this.#popupAbortController;\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle, {\n signal\n });\n element.addEventListener(\"pointerenter\", this.#boundShow, {\n signal\n });\n element.addEventListener(\"pointerleave\", this.#boundHide, {\n signal\n });\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of this.#elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n }\n }\n #setCommentButtonPosition() {\n const element = this.#elements.find(e => e.hasCommentButton);\n if (!element) {\n return;\n }\n this.#commentButtonPosition = element._normalizePoint(element.commentButtonPosition);\n }\n renderCommentButton() {\n if (this.#commentButton) {\n if (!this.#commentButton.parentNode) {\n this.#firstElement.container.after(this.#commentButton);\n }\n return;\n }\n if (!this.#commentButtonPosition) {\n this.#setCommentButtonPosition();\n }\n if (!this.#commentButtonPosition) {\n return;\n }\n const {\n signal\n } = this.#popupAbortController = new AbortController();\n const hasOwnButton = this.#firstElement.hasOwnCommentButton;\n const togglePopup = () => {\n this.#commentManager.toggleCommentPopup(this, true, undefined, !hasOwnButton);\n };\n const showPopup = () => {\n this.#commentManager.toggleCommentPopup(this, false, true, !hasOwnButton);\n };\n const hidePopup = () => {\n this.#commentManager.toggleCommentPopup(this, false, false);\n };\n if (!hasOwnButton) {\n const button = this.#commentButton = document.createElement(\"button\");\n button.className = \"annotationCommentButton\";\n const parentContainer = this.#firstElement.container;\n button.style.zIndex = parseInt(parentContainer.style.zIndex, 10) + 1;\n button.tabIndex = 0;\n button.ariaHasPopup = \"dialog\";\n button.ariaControls = \"commentPopup\";\n button.setAttribute(\"data-l10n-id\", \"pdfjs-show-comment-button\");\n this.#updateColor();\n this.#updateCommentButtonPosition();\n button.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n button.addEventListener(\"click\", togglePopup, {\n signal\n });\n button.addEventListener(\"pointerenter\", showPopup, {\n signal\n });\n button.addEventListener(\"pointerleave\", hidePopup, {\n signal\n });\n parentContainer.after(button);\n } else {\n this.#commentButton = this.#firstElement.container;\n for (const element of this.trigger) {\n element.ariaHasPopup = \"dialog\";\n element.ariaControls = \"commentPopup\";\n element.addEventListener(\"keydown\", this.#boundKeyDown, {\n signal\n });\n element.addEventListener(\"click\", togglePopup, {\n signal\n });\n element.addEventListener(\"pointerenter\", showPopup, {\n signal\n });\n element.addEventListener(\"pointerleave\", hidePopup, {\n signal\n });\n element.classList.add(\"popupTriggerArea\");\n }\n }\n }\n #updateCommentButtonPosition() {\n if (this.#firstElement.extraPopupElement && !this.#firstElement.editor) {\n return;\n }\n if (!this.#commentButton) {\n this.renderCommentButton();\n }\n const [x, y] = this.#commentButtonPosition;\n const {\n style\n } = this.#commentButton;\n style.left = `calc(${x}%)`;\n style.top = `calc(${y}% - var(--comment-button-dim))`;\n }\n #updateColor() {\n if (this.#firstElement.extraPopupElement) {\n return;\n }\n if (!this.#commentButton) {\n this.renderCommentButton();\n }\n this.#commentButton.style.backgroundColor = this.commentButtonColor || \"\";\n }\n get commentButtonColor() {\n const {\n color,\n opacity\n } = this.#firstElement.commentData;\n if (!color) {\n return null;\n }\n return this.#parent._commentManager.makeCommentColor(color, opacity);\n }\n focusCommentButton() {\n setTimeout(() => {\n this.#commentButton?.focus();\n }, 0);\n }\n getData() {\n const {\n richText,\n color,\n opacity,\n creationDate,\n modificationDate\n } = this.#firstElement.commentData;\n return {\n contentsObj: {\n str: this.comment\n },\n richText,\n color,\n opacity,\n creationDate,\n modificationDate\n };\n }\n get elementBeforePopup() {\n return this.#commentButton;\n }\n get comment() {\n this.#commentText ||= this.#firstElement.commentText;\n return this.#commentText;\n }\n set comment(text) {\n if (text === this.comment) {\n return;\n }\n this.#firstElement.commentText = this.#commentText = text;\n }\n focus() {\n this.#firstElement.container?.focus();\n }\n get parentBoundingClientRect() {\n return this.#firstElement.layer.getBoundingClientRect();\n }\n setCommentButtonStates({\n selected,\n hasPopup\n }) {\n if (!this.#commentButton) {\n return;\n }\n this.#commentButton.classList.toggle(\"selected\", selected);\n this.#commentButton.ariaExpanded = hasPopup;\n }\n setSelectedCommentButton(selected) {\n this.#commentButton.classList.toggle(\"selected\", selected);\n }\n get commentPopupPosition() {\n if (this.#popupPosition) {\n return this.#popupPosition;\n }\n const {\n x,\n y,\n height\n } = this.#commentButton.getBoundingClientRect();\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = this.#firstElement.layer.getBoundingClientRect();\n return [(x - parentX) / parentWidth, (y + height - parentY) / parentHeight];\n }\n set commentPopupPosition(pos) {\n this.#popupPosition = pos;\n }\n hasDefaultPopupPosition() {\n return this.#popupPosition === null;\n }\n get commentButtonPosition() {\n return this.#commentButtonPosition;\n }\n get commentButtonWidth() {\n return this.#commentButton.getBoundingClientRect().width / this.parentBoundingClientRect.width;\n }\n editComment(options) {\n const [posX, posY] = this.#popupPosition || this.commentButtonPosition.map(x => x / 100);\n const parentDimensions = this.parentBoundingClientRect;\n const {\n x: parentX,\n y: parentY,\n width: parentWidth,\n height: parentHeight\n } = parentDimensions;\n this.#commentManager.showDialog(null, this, parentX + posX * parentWidth, parentY + posY * parentHeight, {\n ...options,\n parentDimensions\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 popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n if (this.#titleObj?.str) {\n const title = document.createElement(\"span\");\n title.className = \"title\";\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n }\n popup.append(header);\n if (this.#dateObj) {\n const modificationDate = document.createElement(\"time\");\n modificationDate.className = \"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 modificationDate.dateTime = this.#dateObj.toISOString();\n header.append(modificationDate);\n }\n renderRichText({\n html: this.#html || this.#contentsObj.str,\n dir: this.#contentsObj?.dir,\n className: \"popupContent\"\n }, popup);\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(--total-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 #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 popup,\n deleted\n }) {\n if (this.#commentManager) {\n if (deleted) {\n this.remove();\n this.#commentText = null;\n } else if (popup) {\n if (popup.deleted) {\n this.remove();\n } else {\n this.#updateColor();\n this.#commentText = popup.text;\n }\n }\n if (rect) {\n this.#commentButtonPosition = null;\n this.#setCommentButtonPosition();\n this.#updateCommentButtonPosition();\n }\n return;\n }\n if (deleted || popup?.deleted) {\n this.remove();\n return;\n }\n this.#addEventListeners();\n this.#updates ||= {\n contentsObj: this.#contentsObj,\n richText: this.#richText\n };\n if (rect) {\n this.#position = null;\n }\n if (popup && popup.text) {\n this.#richText = this.#makePopupContent(popup.text);\n this.#dateObj = PDFDateString.toDateObject(popup.date);\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 remove() {\n this.#popupAbortController?.abort();\n this.#popupAbortController = null;\n this.#popup?.remove();\n this.#popup = null;\n this.#wasVisible = false;\n this.#pinned = false;\n this.#commentButton?.remove();\n this.#commentButton = null;\n if (this.trigger) {\n for (const element of this.trigger) {\n element.classList.remove(\"popupTriggerArea\");\n }\n }\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 if (this.#commentManager) {\n this.#commentManager.toggleCommentPopup(this, false);\n return;\n }\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, 10) + 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, 10) - 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.#commentManager) {\n return;\n }\n this.#addEventListeners();\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 if (this.#commentManager) {\n return false;\n }\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 = this.contentElement = 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.hasOwnCommentButton = true;\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 {\n data,\n width,\n height\n } = this;\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.hasOwnCommentButton = true;\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 {\n data,\n width,\n height\n } = this;\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.hasOwnCommentButton = true;\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 {\n data,\n width,\n height\n } = this;\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.hasOwnCommentButton = true;\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 width,\n height\n } = this;\n if (!vertices) {\n return this.container;\n }\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.hasOwnCommentButton = true;\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.hasOwnCommentButton = true;\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylinesGroupElement = null;\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 #getTransform(rotation, rect) {\n switch (rotation) {\n case 90:\n return {\n transform: `rotate(90) translate(${-rect[0]},${rect[1]}) scale(1,-1)`,\n width: rect[3] - rect[1],\n height: rect[2] - rect[0]\n };\n case 180:\n return {\n transform: `rotate(180) translate(${-rect[2]},${rect[1]}) scale(1,-1)`,\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n case 270:\n return {\n transform: `rotate(270) translate(${-rect[2]},${rect[3]}) scale(1,-1)`,\n width: rect[3] - rect[1],\n height: rect[2] - rect[0]\n };\n default:\n return {\n transform: `translate(${-rect[0]},${rect[3]}) scale(1,-1)`,\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n }\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const {\n data: {\n rect,\n rotation,\n inkLists,\n borderStyle,\n popupRef\n }\n } = this;\n const {\n transform,\n width,\n height\n } = this.#getTransform(rotation, rect);\n const svg = this.svgFactory.create(width, height, true);\n const g = this.#polylinesGroupElement = this.svgFactory.createElement(\"svg:g\");\n svg.append(g);\n g.setAttribute(\"stroke-width\", borderStyle.width || 1);\n g.setAttribute(\"stroke-linecap\", \"round\");\n g.setAttribute(\"stroke-linejoin\", \"round\");\n g.setAttribute(\"stroke-miterlimit\", 10);\n g.setAttribute(\"stroke\", \"transparent\");\n g.setAttribute(\"fill\", \"transparent\");\n g.setAttribute(\"transform\", transform);\n for (let i = 0, ii = inkLists.length; i < ii; i++) {\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", inkLists[i].join(\",\"));\n g.append(polyline);\n }\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.append(svg);\n this._editOnDoubleClick();\n return this.container;\n }\n updateEdited(params) {\n super.updateEdited(params);\n const {\n thickness,\n points,\n rect\n } = params;\n const g = this.#polylinesGroupElement;\n if (thickness >= 0) {\n g.setAttribute(\"stroke-width\", thickness || 1);\n }\n if (points) {\n for (let i = 0, ii = this.#polylines.length; i < ii; i++) {\n this.#polylines[i].setAttribute(\"points\", points[i].join(\",\"));\n }\n }\n if (rect) {\n const {\n transform,\n width,\n height\n } = this.#getTransform(this.data.rotation, rect);\n const root = g.parentElement;\n root.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n g.setAttribute(\"transform\", transform);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n this._editOnDoubleClick();\n if (overlaidText) {\n const mark = document.createElement(\"mark\");\n mark.classList.add(\"overlaidText\");\n mark.textContent = overlaidText;\n this.container.append(mark);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n if (overlaidText) {\n const underline = document.createElement(\"u\");\n underline.classList.add(\"overlaidText\");\n underline.textContent = overlaidText;\n this.container.append(underline);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n if (overlaidText) {\n const underline = document.createElement(\"u\");\n underline.classList.add(\"overlaidText\");\n underline.textContent = overlaidText;\n this.container.append(underline);\n }\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 const {\n data: {\n overlaidText,\n popupRef\n }\n } = this;\n if (!popupRef && this.hasPopupData) {\n this.hasOwnCommentButton = true;\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n if (overlaidText) {\n const strikeout = document.createElement(\"s\");\n strikeout.classList.add(\"overlaidText\");\n strikeout.textContent = overlaidText;\n this.container.append(strikeout);\n }\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.hasOwnCommentButton = true;\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 } = 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.hasOwnCommentButton = true;\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 #annotationStorage = null;\n #editableAnnotations = new Map();\n #structTreeLayer = null;\n #linkService = null;\n #elements = [];\n #hasAriaAttributesFromStructTree = false;\n zIndex = 0;\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n annotationEditorUIManager,\n page,\n viewport,\n structTreeLayer,\n commentManager,\n linkService,\n annotationStorage\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.#structTreeLayer = structTreeLayer || null;\n this.#linkService = linkService || null;\n this.#annotationStorage = annotationStorage || new AnnotationStorage();\n this.page = page;\n this.viewport = viewport;\n this._annotationEditorUIManager = annotationEditorUIManager;\n this._commentManager = commentManager || null;\n }\n hasEditableAnnotations() {\n return this.#editableAnnotations.size > 0;\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 popupAnnotations = [];\n const elementParams = {\n data: null,\n layer,\n linkService: this.#linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new DOMSVGFactory(),\n annotationStorage: this.#annotationStorage,\n enableComment: params.enableComment === true,\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 if (data.rect[2] === data.rect[0] || data.rect[3] === data.rect[1]) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n if (!this._commentManager) {\n popupAnnotations.push(data);\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) {\n this.#elements.push(element);\n if (data.popupRef) {\n popupToElements.getOrInsertComputed(data.popupRef, makeArr).push(element);\n }\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n if (element._isEditable) {\n this.#editableAnnotations.set(element.data.id, element);\n this._annotationEditorUIManager?.renderAnnotationElement(element);\n }\n }\n await this.#addElementsToDOM();\n for (const data of popupAnnotations) {\n const elements = elementParams.elements = popupToElements.get(data.id);\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n const rendered = element.render();\n element.contentElement.id = `${AnnotationPrefix}${data.id}`;\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n elements.at(-1).container.after(rendered);\n }\n this.#setAnnotationCanvasMap();\n }\n async #addElementsToDOM() {\n if (this.#elements.length === 0) {\n return;\n }\n this.div.replaceChildren();\n const promises = [];\n if (!this.#hasAriaAttributesFromStructTree) {\n this.#hasAriaAttributesFromStructTree = true;\n for (const {\n contentElement,\n data: {\n id\n }\n } of this.#elements) {\n const annotationId = contentElement.id = `${AnnotationPrefix}${id}`;\n promises.push(this.#structTreeLayer?.getAriaAttributes(annotationId).then(ariaAttributes => {\n if (ariaAttributes) {\n for (const [key, value] of ariaAttributes) {\n contentElement.setAttribute(key, value);\n }\n }\n }));\n }\n }\n this.#elements.sort(({\n data: {\n rect: [a0, a1, a2, a3]\n }\n }, {\n data: {\n rect: [b0, b1, b2, b3]\n }\n }) => {\n if (a0 === a2 && a1 === a3) {\n return +1;\n }\n if (b0 === b2 && b1 === b3) {\n return -1;\n }\n const top1 = a3;\n const bot1 = a1;\n const mid1 = (a1 + a3) / 2;\n const top2 = b3;\n const bot2 = b1;\n const mid2 = (b1 + b3) / 2;\n if (mid1 >= top2 && mid2 <= bot1) {\n return -1;\n }\n if (mid2 >= top1 && mid1 <= bot2) {\n return +1;\n }\n const centerX1 = (a0 + a2) / 2;\n const centerX2 = (b0 + b2) / 2;\n return centerX1 - centerX2;\n });\n const fragment = document.createDocumentFragment();\n for (const element of this.#elements) {\n fragment.append(element.container);\n if (this._commentManager) {\n (element.extraPopupElement?.popup || element.popup)?.renderCommentButton();\n } else if (element.extraPopupElement) {\n fragment.append(element.extraPopupElement.render());\n }\n }\n this.div.append(fragment);\n await Promise.all(promises);\n if (this.#accessibilityManager) {\n for (const element of this.#elements) {\n this.#accessibilityManager.addPointerInTextLayer(element.contentElement, false);\n }\n }\n }\n async addLinkAnnotations(annotations) {\n const elementParams = {\n data: null,\n layer: this.div,\n linkService: this.#linkService,\n svgFactory: new DOMSVGFactory(),\n parent: this\n };\n for (const data of annotations) {\n data.borderStyle ||= AnnotationLayer._defaultBorderStyle;\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n element.render();\n element.contentElement.id = `${AnnotationPrefix}${data.id}`;\n this.#elements.push(element);\n }\n await this.#addElementsToDOM();\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 const editableAnnotation = this.#editableAnnotations.get(id);\n if (!editableAnnotation) {\n continue;\n }\n if (editableAnnotation._hasNoCanvas) {\n this._annotationEditorUIManager?.setMissingCanvas(id, element.id, canvas);\n editableAnnotation._hasNoCanvas = false;\n } else {\n editableAnnotation.canvas = canvas;\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return this.#editableAnnotations.values();\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n addFakeAnnotation(editor) {\n const {\n div\n } = this;\n const {\n id,\n rotation\n } = editor;\n const element = new EditorAnnotationElement({\n data: {\n id,\n rect: editor.getPDFRect(),\n rotation\n },\n editor,\n layer: div,\n parent: this,\n enableComment: !!this._commentManager,\n linkService: this.#linkService,\n annotationStorage: this.#annotationStorage\n });\n element.render();\n element.contentElement.id = `${AnnotationPrefix}${id}`;\n element.createOrUpdatePopup();\n this.#elements.push(element);\n return element;\n }\n removeAnnotation(id) {\n const index = this.#elements.findIndex(el => el.data.id === id);\n if (index < 0) {\n return;\n }\n const [element] = this.#elements.splice(index, 1);\n this.#accessibilityManager?.removePointerInTextLayer(element.contentElement);\n }\n updateFakeAnnotations(editors) {\n if (editors.length === 0) {\n return;\n }\n for (const editor of editors) {\n editor.updateFakeAnnotationElement(this);\n }\n this.#addElementsToDOM();\n }\n togglePointerEvents(enabled = false) {\n this.div.classList.toggle(\"disabled\", !enabled);\n }\n static get _defaultBorderStyle() {\n return shadow(this, \"_defaultBorderStyle\", Object.freeze({\n width: 1,\n rawWidth: 1,\n style: AnnotationBorderStyleType.SOLID,\n dashArray: [3],\n horizontalCornerRadius: 0,\n verticalCornerRadius: 0\n }));\n }\n}\n\n;// ./src/display/editor/freetext.js\n\n\n\n\n\n\n\n\n\n\nconst EOL_PATTERN = /\\r\\n?|\\n/g;\nclass FreeTextEditor extends AnnotationEditor {\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #editModeAC = null;\n #fontSize;\n _colorPicker = null;\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 if (!this.annotationElementId) {\n this._uiManager.a11yAlert(\"pdfjs-editor-freetext-added-alert\");\n }\n this.canAddComment = false;\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 get toolbarButtons() {\n this._colorPicker ||= new BasicColorPicker(this);\n return [[\"colorPicker\", this._colorPicker]];\n }\n get colorType() {\n return AnnotationEditorParamsType.FREETEXT_COLOR;\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--total-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 onUpdatedColor() {\n this.editorDiv.style.color = this.color;\n this._colorPicker?.update(this.color);\n super.onUpdatedColor();\n }\n #updateColor(color) {\n const setColor = col => {\n this.color = col;\n this.onUpdatedColor();\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 (!super.enableEditMode()) {\n return false;\n }\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 return true;\n }\n disableEditMode() {\n if (!super.disableEditMode()) {\n return false;\n }\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 return true;\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(focus) {\n if (this.width) {\n return;\n }\n this.enableEditMode();\n if (focus) {\n this.editorDiv.focus();\n }\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 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 get canChangeContent() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this._isCopy || this.annotationElementId) {\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(--total-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 if (this._isCopy || this.annotationElementId) {\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._moveAfterPaste(baseX, baseY);\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 = Math.sumPrecise(bufferBefore.map(line => line.length));\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 getPDFRect() {\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n return this.getRect(padding, padding);\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 richText,\n contentsObj,\n creationDate,\n modificationDate\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 annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n comment: contentsObj?.str || null,\n richText,\n creationDate,\n modificationDate\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._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\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 color = AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.color);\n const serialized = Object.assign(super.serialize(isForCopying), {\n color,\n fontSize: this.#fontSize,\n value: this.#serializeContent()\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.isCopy = true;\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.hasEditedComment || 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 (!content) {\n return null;\n }\n const {\n style\n } = content;\n style.fontSize = `calc(${this.#fontSize}px * var(--total-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 annotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this._uiManager.hasCommentManager() || this.hasEditedComment ? this.comment : {\n text: this.#content\n }\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\n\n\n\n\nclass Outline {\n static PRECISION = 1e-4;\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 static _rescale(src, tx, ty, sx, sy, dest) {\n dest ||= new Float32Array(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 static _rescaleAndSwap(src, tx, ty, sx, sy, dest) {\n dest ||= new Float32Array(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 static _translate(src, tx, ty, dest) {\n dest ||= new Float32Array(src.length);\n for (let i = 0, ii = src.length; i < ii; i += 2) {\n dest[i] = tx + src[i];\n dest[i + 1] = ty + src[i + 1];\n }\n return dest;\n }\n static svgRound(x) {\n return Math.round(x * 10000);\n }\n static _normalizePoint(x, y, parentWidth, parentHeight, rotation) {\n switch (rotation) {\n case 90:\n return [1 - y / parentWidth, x / parentHeight];\n case 180:\n return [1 - x / parentWidth, 1 - y / parentHeight];\n case 270:\n return [y / parentWidth, 1 - x / parentHeight];\n default:\n return [x / parentWidth, y / parentHeight];\n }\n }\n static _normalizePagePoint(x, y, rotation) {\n switch (rotation) {\n case 90:\n return [1 - y, x];\n case 180:\n return [1 - x, 1 - y];\n case 270:\n return [y, 1 - x];\n default:\n return [x, y];\n }\n }\n static createBezierPoints(x1, y1, x2, y2, x3, y3) {\n return [(x1 + 5 * x2) / 6, (y1 + 5 * y2) / 6, (5 * x2 + x3) / 6, (5 * y2 + y3) / 6, (x2 + x3) / 2, (y2 + y3) / 2];\n }\n}\n\n;// ./src/display/editor/drawers/freedraw.js\n\n\n\n\n\n\n\nclass FreeDrawOutliner {\n #box;\n #bottom = [];\n #innerMargin;\n #isLTR;\n #top = [];\n #last = new Float32Array(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 Float32Array((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 Float32Array(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 Float32Array(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 = new Float32Array(4);\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.firstPoint = [NaN, NaN];\n this.lastPoint = [NaN, NaN];\n this.#computeMinMax(isLTR);\n const [x, y, width, height] = 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 = Outline._rescale(this.#outline, blX, trY, width, -height);\n points = Outline._rescale(this.#points, blX, trY, width, -height);\n break;\n case 90:\n outline = Outline._rescaleAndSwap(this.#outline, blX, blY, width, height);\n points = Outline._rescaleAndSwap(this.#points, blX, blY, width, height);\n break;\n case 180:\n outline = Outline._rescale(this.#outline, trX, blY, -width, height);\n points = Outline._rescale(this.#points, trX, blY, -width, height);\n break;\n case 270:\n outline = Outline._rescaleAndSwap(this.#outline, trX, trY, -width, -height);\n points = Outline._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 #computeMinMax(isLTR) {\n const outline = this.#outline;\n let lastX = outline[4];\n let lastY = outline[5];\n const minMax = [lastX, lastY, lastX, lastY];\n let firstPointX = lastX;\n let firstPointY = lastY;\n let lastPointX = lastX;\n let lastPointY = lastY;\n const ltrCallback = isLTR ? Math.max : Math.min;\n const bezierBbox = new Float32Array(4);\n for (let i = 6, ii = outline.length; i < ii; i += 6) {\n const x = outline[i + 4],\n y = outline[i + 5];\n if (isNaN(outline[i])) {\n Util.pointBoundingBox(x, y, minMax);\n if (firstPointY > y) {\n firstPointX = x;\n firstPointY = y;\n } else if (firstPointY === y) {\n firstPointX = ltrCallback(firstPointX, x);\n }\n if (lastPointY < y) {\n lastPointX = x;\n lastPointY = y;\n } else if (lastPointY === y) {\n lastPointX = ltrCallback(lastPointX, x);\n }\n } else {\n bezierBbox.set(BBOX_INIT, 0);\n Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6), bezierBbox);\n Util.rectBoundingBox(...bezierBbox, minMax);\n if (firstPointY > bezierBbox[1]) {\n firstPointX = bezierBbox[0];\n firstPointY = bezierBbox[1];\n } else if (firstPointY === bezierBbox[1]) {\n firstPointX = ltrCallback(firstPointX, bezierBbox[0]);\n }\n if (lastPointY < bezierBbox[3]) {\n lastPointX = bezierBbox[2];\n lastPointY = bezierBbox[3];\n } else if (lastPointY === bezierBbox[3]) {\n lastPointX = ltrCallback(lastPointX, bezierBbox[2]);\n }\n }\n lastX = x;\n lastY = y;\n }\n const bbox = this.#bbox;\n bbox[0] = minMax[0] - this.#innerMargin;\n bbox[1] = minMax[1] - this.#innerMargin;\n bbox[2] = minMax[2] - minMax[0] + 2 * this.#innerMargin;\n bbox[3] = minMax[3] - minMax[1] + 2 * this.#innerMargin;\n this.firstPoint = [firstPointX, firstPointY];\n this.lastPoint = [lastPointX, lastPointY];\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 [x, y, width, height] = 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}\n\n;// ./src/display/editor/drawers/highlight.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass HighlightOutliner {\n #box;\n #firstPoint;\n #lastPoint;\n #verticalEdges = [];\n #intervals = [];\n constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) {\n const minMax = BBOX_INIT.slice();\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 Util.rectBoundingBox(x1, y1, x2, y2, minMax);\n }\n const bboxWidth = minMax[2] - minMax[0] + 2 * innerMargin;\n const bboxHeight = minMax[3] - minMax[1] + 2 * innerMargin;\n const shiftedMinX = minMax[0] - innerMargin;\n const shiftedMinY = minMax[1] - innerMargin;\n let firstPointX = isLTR ? -Infinity : Infinity;\n let firstPointY = Infinity;\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, left] = edge;\n if (!left && isLTR) {\n if (y1 < firstPointY) {\n firstPointY = y1;\n firstPointX = x;\n } else if (y1 === firstPointY) {\n firstPointX = Math.max(firstPointX, x);\n }\n } else if (left && !isLTR) {\n if (y1 < firstPointY) {\n firstPointY = y1;\n firstPointX = x;\n } else if (y1 === firstPointY) {\n firstPointX = Math.min(firstPointX, x);\n }\n }\n edge[0] = (x - shiftedMinX) / bboxWidth;\n edge[1] = (y1 - shiftedMinY) / bboxHeight;\n edge[2] = (y2 - shiftedMinY) / bboxHeight;\n }\n this.#box = new Float32Array([shiftedMinX, shiftedMinY, bboxWidth, bboxHeight]);\n this.#firstPoint = [firstPointX, firstPointY];\n this.#lastPoint = lastPoint;\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, this.#firstPoint, this.#lastPoint);\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, firstPoint, lastPoint) {\n super();\n this.#outlines = outlines;\n this.#box = box;\n this.firstPoint = firstPoint;\n this.lastPoint = lastPoint;\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 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}\nclass FreeHighlightOutline extends FreeDrawOutline {\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/highlight.js\n\n\n\n\n\n\n\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 #firstPoint = null;\n #lastPoint = null;\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 this.defaultL10nId = \"pdfjs-editor-highlight-editor\";\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 if (!this.annotationElementId) {\n this._uiManager.a11yAlert(\"pdfjs-editor-highlight-added-alert\");\n }\n }\n get telemetryInitialData() {\n return {\n action: \"added\",\n type: this.#isFreeHighlight ? \"free_highlight\" : \"highlight\",\n color: this._uiManager.getNonHCMColorName(this.color),\n thickness: this.#thickness,\n methodOfCreation: this.#methodOfCreation\n };\n }\n get telemetryFinalData() {\n return {\n type: \"highlight\",\n color: this._uiManager.getNonHCMColorName(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 [this.x, this.y, this.width, this.height] = 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 firstPoint\n } = this.#highlightOutlines;\n this.#firstPoint = [(firstPoint[0] - this.x) / this.width, (firstPoint[1] - this.y) / this.height];\n const {\n lastPoint\n } = this.#focusOutlines;\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.finalizeDraw(highlightId, {\n bbox: highlightOutlines.box,\n path: {\n d: highlightOutlines.toSVGPath()\n }\n });\n this.#outlineId = this.parent.drawLayer.drawOutline({\n rootClass: {\n highlightOutline: true,\n free: true\n },\n bbox: this.#focusOutlines.box,\n path: {\n d: this.#focusOutlines.toSVGPath()\n }\n }, true);\n } else if (this.parent) {\n const angle = this.parent.viewport.rotation;\n this.parent.drawLayer.updateProperties(this.#id, {\n bbox: HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360),\n path: {\n d: highlightOutlines.toSVGPath()\n }\n });\n this.parent.drawLayer.updateProperties(this.#outlineId, {\n bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),\n path: {\n d: this.#focusOutlines.toSVGPath()\n }\n });\n }\n const [x, y, width, height] = 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 firstPoint\n } = highlightOutlines;\n this.#firstPoint = [(firstPoint[0] - x) / width, (firstPoint[1] - y) / height];\n const {\n lastPoint\n } = this.#focusOutlines;\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_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 get commentButtonPosition() {\n return this.#firstPoint;\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_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 onUpdatedColor() {\n this.parent?.drawLayer.updateProperties(this.#id, {\n root: {\n fill: this.color,\n \"fill-opacity\": this.opacity\n }\n });\n this.#colorPicker?.updateColor(this.color);\n super.onUpdatedColor();\n }\n #updateColor(color) {\n const setColorAndOpacity = (col, opa) => {\n this.color = col;\n this.opacity = opa;\n this.onUpdatedColor();\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.getNonHCMColorName(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 get toolbarButtons() {\n if (this._uiManager.highlightColors) {\n const colorPicker = this.#colorPicker = new ColorPicker({\n editor: this\n });\n return [[\"colorPicker\", colorPicker]];\n }\n return super.toolbarButtons;\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(focus) {\n if (!this.annotationElementId) {\n this.parent.addUndoableEditor(this);\n }\n if (focus) {\n this.div.focus();\n }\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 this.setDims();\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({\n bbox: this.#highlightOutlines.box,\n root: {\n viewBox: \"0 0 1 1\",\n fill: this.color,\n \"fill-opacity\": this.opacity\n },\n rootClass: {\n highlight: true,\n free: this.#isFreeHighlight\n },\n path: {\n d: this.#highlightOutlines.toSVGPath()\n }\n }, false, true));\n this.#outlineId = parent.drawLayer.drawOutline({\n rootClass: {\n highlightOutline: true,\n free: this.#isFreeHighlight\n },\n bbox: this.#focusOutlines.box,\n path: {\n d: this.#focusOutlines.toSVGPath()\n }\n }, this.#isFreeHighlight);\n if (this.#highlightDiv) {\n this.#highlightDiv.style.clipPath = this.#clipPathId;\n }\n }\n static #rotateBbox([x, y, width, height], angle) {\n switch (angle) {\n case 90:\n return [1 - y - height, x, height, width];\n case 180:\n return [1 - x - width, 1 - y - height, width, height];\n case 270:\n return [y, 1 - x - width, height, width];\n }\n return [x, y, width, height];\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.x, this.y, this.width, this.height], angle);\n }\n drawLayer.updateProperties(this.#id, {\n bbox: box,\n root: {\n \"data-main-rotation\": angle\n }\n });\n drawLayer.updateProperties(this.#outlineId, {\n bbox: HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle),\n root: {\n \"data-main-rotation\": angle\n }\n });\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 this.setDims();\n bindEvents(this, this.#highlightDiv, [\"pointerover\", \"pointerleave\"]);\n this.enableEditing();\n return div;\n }\n pointerover() {\n if (!this.isSelected) {\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hovered: true\n }\n });\n }\n }\n pointerleave() {\n if (!this.isSelected) {\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hovered: false\n }\n });\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.updateProperties(this.#outlineId, {\n rootClass: {\n hovered: false,\n selected: true\n }\n });\n }\n unselect() {\n super.unselect();\n if (!this.#outlineId) {\n return;\n }\n this.parent?.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n selected: false\n }\n });\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.updateProperties(this.#id, {\n rootClass: {\n hidden: !visible\n }\n });\n this.parent.drawLayer.updateProperties(this.#outlineId, {\n rootClass: {\n hidden: !visible\n }\n });\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) * 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 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\", stopEvent, {\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({\n bbox: [0, 0, 1, 1],\n root: {\n viewBox: \"0 0 1 1\",\n fill: this._defaultColor,\n \"fill-opacity\": this._defaultOpacity\n },\n rootClass: {\n highlight: true,\n free: true\n },\n path: {\n d: this._freeHighlight.toSVGPath()\n }\n }, true, true));\n }\n static #highlightMove(parent, event) {\n if (this._freeHighlight.add(event)) {\n parent.drawLayer.updateProperties(this._freeHighlightId, {\n path: {\n d: this._freeHighlight.toSVGPath()\n }\n });\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 richText,\n contentsObj,\n creationDate,\n modificationDate\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 annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\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 richText,\n contentsObj,\n creationDate,\n modificationDate\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 annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\n };\n }\n const {\n color,\n quadPoints,\n inkLists,\n outlines,\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._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\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 || outlines) {\n editor.#isFreeHighlight = true;\n const points = (inkLists || outlines.points)[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({\n bbox: [0, 0, 1, 1],\n root: {\n viewBox: \"0 0 1 1\",\n fill: editor.color,\n \"fill-opacity\": editor._defaultOpacity\n },\n rootClass: {\n highlight: true,\n free: true\n },\n path: {\n d: outliner.toSVGPath()\n }\n }, true, true);\n editor.#createFreeOutlines({\n highlightOutlines: outliner.getOutlines(),\n highlightId: id,\n clipPathId\n });\n editor.#addToDrawLayer();\n editor.rotate(editor.parentRotation);\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 color = AnnotationEditor._colorManager.convert(this._uiManager.getNonHCMColor(this.color));\n const serialized = super.serialize(isForCopying);\n Object.assign(serialized, {\n color,\n opacity: this.opacity,\n thickness: this.#thickness,\n quadPoints: this.#serializeBoxes(),\n outlines: this.#serializeOutlines(serialized.rect)\n });\n this.addComment(serialized);\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 this.hasEditedComment || serialized.color.some((c, i) => c !== color[i]);\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n annotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this.comment\n });\n return null;\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// ./src/display/editor/draw.js\n\n\n\n\n\n\n\n\n\n\n\n\nclass DrawingOptions {\n #svgProperties = Object.create(null);\n updateProperty(name, value) {\n this[name] = value;\n this.updateSVGProperty(name, value);\n }\n updateProperties(properties) {\n if (!properties) {\n return;\n }\n for (const [name, value] of Object.entries(properties)) {\n if (!name.startsWith(\"_\")) {\n this.updateProperty(name, value);\n }\n }\n }\n updateSVGProperty(name, value) {\n this.#svgProperties[name] = value;\n }\n toSVGProperties() {\n const root = this.#svgProperties;\n this.#svgProperties = Object.create(null);\n return {\n root\n };\n }\n reset() {\n this.#svgProperties = Object.create(null);\n }\n updateAll(options = this) {\n this.updateProperties(options);\n }\n clone() {\n unreachable(\"Not implemented\");\n }\n}\nclass DrawingEditor extends AnnotationEditor {\n #drawOutlines = null;\n #mustBeCommitted;\n _colorPicker = null;\n _drawId = null;\n static _currentDrawId = -1;\n static _currentParent = null;\n static #currentDraw = null;\n static #currentDrawingAC = null;\n static #currentDrawingOptions = null;\n static _INNER_MARGIN = 3;\n constructor(params) {\n super(params);\n this.#mustBeCommitted = params.mustBeCommitted || false;\n this._addOutlines(params);\n }\n onUpdatedColor() {\n this._colorPicker?.update(this.color);\n super.onUpdatedColor();\n }\n onUpdatedOpacity() {\n this._colorPicker?.updateOpacity?.(this.opacity);\n }\n _addOutlines(params) {\n if (params.drawOutlines) {\n this.#createDrawOutlines(params);\n this.#addToDrawLayer();\n }\n }\n #createDrawOutlines({\n drawOutlines,\n drawId,\n drawingOptions\n }) {\n this.#drawOutlines = drawOutlines;\n this._drawingOptions ||= drawingOptions;\n if (!this.annotationElementId) {\n this._uiManager.a11yAlert(`pdfjs-editor-${this.editorType}-added-alert`);\n }\n if (drawId >= 0) {\n this._drawId = drawId;\n this.parent.drawLayer.finalizeDraw(drawId, drawOutlines.defaultProperties);\n } else {\n this._drawId = this.#createDrawing(drawOutlines, this.parent);\n }\n this.#updateBbox(drawOutlines.box);\n }\n #createDrawing(drawOutlines, parent) {\n const {\n id\n } = parent.drawLayer.draw(DrawingEditor._mergeSVGProperties(this._drawingOptions.toSVGProperties(), drawOutlines.defaultSVGProperties), false, false);\n return id;\n }\n static _mergeSVGProperties(p1, p2) {\n const p1Keys = new Set(Object.keys(p1));\n for (const [key, value] of Object.entries(p2)) {\n if (p1Keys.has(key)) {\n Object.assign(p1[key], value);\n } else {\n p1[key] = value;\n }\n }\n return p1;\n }\n static getDefaultDrawingOptions(_options) {\n unreachable(\"Not implemented\");\n }\n static get typesMap() {\n unreachable(\"Not implemented\");\n }\n static get isDrawer() {\n return true;\n }\n static get supportMultipleDrawings() {\n return false;\n }\n static updateDefaultParams(type, value) {\n const propertyName = this.typesMap.get(type);\n if (propertyName) {\n this._defaultDrawingOptions.updateProperty(propertyName, value);\n }\n if (this._currentParent) {\n DrawingEditor.#currentDraw.updateProperty(propertyName, value);\n this._currentParent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());\n }\n }\n updateParams(type, value) {\n const propertyName = this.constructor.typesMap.get(type);\n if (propertyName) {\n this._updateProperty(type, propertyName, value);\n }\n }\n static get defaultPropertiesToUpdate() {\n const properties = [];\n const options = this._defaultDrawingOptions;\n for (const [type, name] of this.typesMap) {\n properties.push([type, options[name]]);\n }\n return properties;\n }\n get propertiesToUpdate() {\n const properties = [];\n const {\n _drawingOptions\n } = this;\n for (const [type, name] of this.constructor.typesMap) {\n properties.push([type, _drawingOptions[name]]);\n }\n return properties;\n }\n _updateProperty(type, name, value) {\n const options = this._drawingOptions;\n const savedValue = options[name];\n const setter = val => {\n options.updateProperty(name, val);\n const bbox = this.#drawOutlines.updateProperty(name, val);\n if (bbox) {\n this.#updateBbox(bbox);\n }\n this.parent?.drawLayer.updateProperties(this._drawId, options.toSVGProperties());\n if (type === this.colorType) {\n this.onUpdatedColor();\n } else if (type === this.opacityType) {\n this.onUpdatedOpacity();\n }\n };\n this.addCommands({\n cmd: setter.bind(this, value),\n undo: setter.bind(this, savedValue),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _updateColorAndOpacity(color, opacity) {\n const colorName = this.constructor.typesMap.get(this.colorType);\n const opacityName = this.constructor.typesMap.get(this.opacityType);\n const options = this._drawingOptions;\n const savedColor = options[colorName];\n const savedOpacity = options[opacityName];\n const setter = (c, op) => {\n options.updateProperty(colorName, c);\n options.updateProperty(opacityName, op);\n this.#drawOutlines.updateProperty(colorName, c);\n this.#drawOutlines.updateProperty(opacityName, op);\n this.parent?.drawLayer.updateProperties(this._drawId, options.toSVGProperties());\n this.onUpdatedColor();\n this.onUpdatedOpacity();\n };\n this.addCommands({\n cmd: setter.bind(this, color, opacity),\n undo: setter.bind(this, savedColor, savedOpacity),\n post: this._uiManager.updateUI.bind(this._uiManager, this),\n mustExec: true,\n type: AnnotationEditorParamsType.INK_COLOR_AND_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _onResizing() {\n this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizingSVGProperties(this.#convertToDrawSpace()), {\n bbox: this.#rotateBox()\n }));\n }\n _onResized() {\n this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathResizedSVGProperties(this.#convertToDrawSpace()), {\n bbox: this.#rotateBox()\n }));\n }\n _onTranslating(_x, _y) {\n this.parent?.drawLayer.updateProperties(this._drawId, {\n bbox: this.#rotateBox()\n });\n }\n _onTranslated() {\n this.parent?.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties(this.#drawOutlines.getPathTranslatedSVGProperties(this.#convertToDrawSpace(), this.parentDimensions), {\n bbox: this.#rotateBox()\n }));\n }\n _onStartDragging() {\n this.parent?.drawLayer.updateProperties(this._drawId, {\n rootClass: {\n moving: true\n }\n });\n }\n _onStopDragging() {\n this.parent?.drawLayer.updateProperties(this._drawId, {\n rootClass: {\n moving: false\n }\n });\n }\n commit() {\n super.commit();\n this.disableEditMode();\n this.disableEditing();\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 getBaseTranslation() {\n return [0, 0];\n }\n get isResizable() {\n return true;\n }\n onceAdded(focus) {\n if (!this.annotationElementId) {\n this.parent.addUndoableEditor(this);\n }\n this._isDraggable = true;\n if (this.#mustBeCommitted) {\n this.#mustBeCommitted = false;\n this.commit();\n this.parent.setSelected(this);\n if (focus && this.isOnScreen) {\n this.div.focus();\n }\n }\n }\n remove() {\n this.#cleanDrawLayer();\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 this.#updateBbox(this.#drawOutlines.box);\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._uiManager.removeShouldRescale(this);\n this.#cleanDrawLayer();\n } else if (parent) {\n this._uiManager.addShouldRescale(this);\n this.#addToDrawLayer(parent);\n mustBeSelected = !this.parent && this.div?.classList.contains(\"selectedEditor\");\n }\n super.setParent(parent);\n if (mustBeSelected) {\n this.select();\n }\n }\n #cleanDrawLayer() {\n if (this._drawId === null || !this.parent) {\n return;\n }\n this.parent.drawLayer.remove(this._drawId);\n this._drawId = null;\n this._drawingOptions.reset();\n }\n #addToDrawLayer(parent = this.parent) {\n if (this._drawId !== null && this.parent === parent) {\n return;\n }\n if (this._drawId !== null) {\n this.parent.drawLayer.updateParent(this._drawId, parent.drawLayer);\n return;\n }\n this._drawingOptions.updateAll();\n this._drawId = this.#createDrawing(this.#drawOutlines, parent);\n }\n #convertToParentSpace([x, y, width, height]) {\n const {\n parentDimensions: [pW, pH],\n rotation\n } = this;\n switch (rotation) {\n case 90:\n return [y, 1 - x, width * (pH / pW), height * (pW / pH)];\n case 180:\n return [1 - x, 1 - y, width, height];\n case 270:\n return [1 - y, x, width * (pH / pW), height * (pW / pH)];\n default:\n return [x, y, width, height];\n }\n }\n #convertToDrawSpace() {\n const {\n x,\n y,\n width,\n height,\n parentDimensions: [pW, pH],\n rotation\n } = this;\n switch (rotation) {\n case 90:\n return [1 - y, x, width * (pW / pH), height * (pH / pW)];\n case 180:\n return [1 - x, 1 - y, width, height];\n case 270:\n return [y, 1 - x, width * (pW / pH), height * (pH / pW)];\n default:\n return [x, y, width, height];\n }\n }\n #updateBbox(bbox) {\n [this.x, this.y, this.width, this.height] = this.#convertToParentSpace(bbox);\n if (this.div) {\n this.fixAndSetPosition();\n this.setDims();\n }\n this._onResized();\n }\n #rotateBox() {\n const {\n x,\n y,\n width,\n height,\n rotation,\n parentRotation,\n parentDimensions: [pW, pH]\n } = this;\n switch ((rotation * 4 + parentRotation) / 90) {\n case 1:\n return [1 - y - height, x, height, width];\n case 2:\n return [1 - x - width, 1 - y - height, width, height];\n case 3:\n return [y, 1 - x - width, height, width];\n case 4:\n return [x, y - width * (pW / pH), height * (pH / pW), width * (pW / pH)];\n case 5:\n return [1 - y, x, width * (pW / pH), height * (pH / pW)];\n case 6:\n return [1 - x - height * (pH / pW), 1 - y, height * (pH / pW), width * (pW / pH)];\n case 7:\n return [y - width * (pW / pH), 1 - x - height * (pH / pW), width * (pW / pH), height * (pH / pW)];\n case 8:\n return [x - width, y - height, width, height];\n case 9:\n return [1 - y, x - width, height, width];\n case 10:\n return [1 - x, 1 - y, width, height];\n case 11:\n return [y - height, 1 - x, height, width];\n case 12:\n return [x - height * (pH / pW), y, height * (pH / pW), width * (pW / pH)];\n case 13:\n return [1 - y - width * (pW / pH), x - height * (pH / pW), width * (pW / pH), height * (pH / pW)];\n case 14:\n return [1 - x, 1 - y - width * (pW / pH), height * (pH / pW), width * (pW / pH)];\n case 15:\n return [y, 1 - x, width * (pW / pH), height * (pH / pW)];\n default:\n return [x, y, width, height];\n }\n }\n rotate() {\n if (!this.parent) {\n return;\n }\n this.parent.drawLayer.updateProperties(this._drawId, DrawingEditor._mergeSVGProperties({\n bbox: this.#rotateBox()\n }, this.#drawOutlines.updateRotation((this.parentRotation - this.rotation + 360) % 360)));\n }\n onScaleChanging() {\n if (!this.parent) {\n return;\n }\n this.#updateBbox(this.#drawOutlines.updateParentDimensions(this.parentDimensions, this.parent.scale));\n }\n static onScaleChangingWhenDrawing() {}\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this._isCopy) {\n baseX = this.x;\n baseY = this.y;\n }\n const div = super.render();\n div.classList.add(\"draw\");\n const drawDiv = document.createElement(\"div\");\n div.append(drawDiv);\n drawDiv.setAttribute(\"aria-hidden\", \"true\");\n drawDiv.className = \"internal\";\n this.setDims();\n this._uiManager.addShouldRescale(this);\n this.disableEditing();\n if (this._isCopy) {\n this._moveAfterPaste(baseX, baseY);\n }\n return div;\n }\n static createDrawerInstance(_x, _y, _parentWidth, _parentHeight, _rotation) {\n unreachable(\"Not implemented\");\n }\n static startDrawing(parent, uiManager, _isLTR, event) {\n const {\n target,\n offsetX: x,\n offsetY: y,\n pointerId,\n pointerType\n } = event;\n if (CurrentPointers.isInitializedAndDifferentPointerType(pointerType)) {\n return;\n }\n const {\n viewport: {\n rotation\n }\n } = parent;\n const {\n width: parentWidth,\n height: parentHeight\n } = target.getBoundingClientRect();\n const ac = DrawingEditor.#currentDrawingAC = new AbortController();\n const signal = parent.combinedSignal(ac);\n CurrentPointers.setPointer(pointerType, pointerId);\n window.addEventListener(\"pointerup\", e => {\n if (CurrentPointers.isSamePointerIdOrRemove(e.pointerId)) {\n this._endDraw(e);\n }\n }, {\n signal\n });\n window.addEventListener(\"pointercancel\", e => {\n if (CurrentPointers.isSamePointerIdOrRemove(e.pointerId)) {\n this._currentParent.endDrawingSession();\n }\n }, {\n signal\n });\n window.addEventListener(\"pointerdown\", e => {\n if (!CurrentPointers.isSamePointerType(e.pointerType)) {\n return;\n }\n CurrentPointers.initializeAndAddPointerId(e.pointerId);\n if (DrawingEditor.#currentDraw.isCancellable()) {\n DrawingEditor.#currentDraw.removeLastElement();\n if (DrawingEditor.#currentDraw.isEmpty()) {\n this._currentParent.endDrawingSession(true);\n } else {\n this._endDraw(null);\n }\n }\n }, {\n capture: true,\n passive: false,\n signal\n });\n window.addEventListener(\"contextmenu\", noContextMenu, {\n signal\n });\n target.addEventListener(\"pointermove\", this._drawMove.bind(this), {\n signal\n });\n target.addEventListener(\"touchmove\", e => {\n if (CurrentPointers.isSameTimeStamp(e.timeStamp)) {\n stopEvent(e);\n }\n }, {\n signal\n });\n parent.toggleDrawing();\n uiManager._editorUndoBar?.hide();\n if (DrawingEditor.#currentDraw) {\n parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.startNew(x, y, parentWidth, parentHeight, rotation));\n return;\n }\n uiManager.updateUIForDefaultProperties(this);\n DrawingEditor.#currentDraw = this.createDrawerInstance(x, y, parentWidth, parentHeight, rotation);\n DrawingEditor.#currentDrawingOptions = this.getDefaultDrawingOptions();\n this._currentParent = parent;\n ({\n id: this._currentDrawId\n } = parent.drawLayer.draw(this._mergeSVGProperties(DrawingEditor.#currentDrawingOptions.toSVGProperties(), DrawingEditor.#currentDraw.defaultSVGProperties), true, false));\n }\n static _drawMove(event) {\n CurrentPointers.isSameTimeStamp(event.timeStamp);\n if (!DrawingEditor.#currentDraw) {\n return;\n }\n const {\n offsetX,\n offsetY,\n pointerId\n } = event;\n if (!CurrentPointers.isSamePointerId(pointerId)) {\n return;\n }\n if (CurrentPointers.isUsingMultiplePointers()) {\n this._endDraw(event);\n return;\n }\n this._currentParent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.add(offsetX, offsetY));\n CurrentPointers.setTimeStamp(event.timeStamp);\n stopEvent(event);\n }\n static _cleanup(all) {\n if (all) {\n this._currentDrawId = -1;\n this._currentParent = null;\n DrawingEditor.#currentDraw = null;\n DrawingEditor.#currentDrawingOptions = null;\n CurrentPointers.clearTimeStamp();\n }\n if (DrawingEditor.#currentDrawingAC) {\n DrawingEditor.#currentDrawingAC.abort();\n DrawingEditor.#currentDrawingAC = null;\n CurrentPointers.clearPointerIds();\n }\n }\n static _endDraw(event) {\n const parent = this._currentParent;\n if (!parent) {\n return;\n }\n parent.toggleDrawing(true);\n this._cleanup(false);\n if (event?.target === parent.div) {\n parent.drawLayer.updateProperties(this._currentDrawId, DrawingEditor.#currentDraw.end(event.offsetX, event.offsetY));\n }\n if (this.supportMultipleDrawings) {\n const draw = DrawingEditor.#currentDraw;\n const drawId = this._currentDrawId;\n const lastElement = draw.getLastElement();\n parent.addCommands({\n cmd: () => {\n parent.drawLayer.updateProperties(drawId, draw.setLastElement(lastElement));\n },\n undo: () => {\n parent.drawLayer.updateProperties(drawId, draw.removeLastElement());\n },\n mustExec: false,\n type: AnnotationEditorParamsType.DRAW_STEP\n });\n return;\n }\n this.endDrawing(false);\n }\n static endDrawing(isAborted) {\n const parent = this._currentParent;\n if (!parent) {\n return null;\n }\n parent.toggleDrawing(true);\n parent.cleanUndoStack(AnnotationEditorParamsType.DRAW_STEP);\n if (!DrawingEditor.#currentDraw.isEmpty()) {\n const {\n pageDimensions: [pageWidth, pageHeight],\n scale\n } = parent;\n const editor = parent.createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false, {\n drawId: this._currentDrawId,\n drawOutlines: DrawingEditor.#currentDraw.getOutlines(pageWidth * scale, pageHeight * scale, scale, this._INNER_MARGIN),\n drawingOptions: DrawingEditor.#currentDrawingOptions,\n mustBeCommitted: !isAborted\n });\n this._cleanup(true);\n return editor;\n }\n parent.drawLayer.remove(this._currentDrawId);\n this._cleanup(true);\n return null;\n }\n createDrawingOptions(_data) {}\n static deserializeDraw(_pageX, _pageY, _pageWidth, _pageHeight, _innerWidth, _data) {\n unreachable(\"Not implemented\");\n }\n static async deserialize(data, parent, uiManager) {\n const {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = parent.viewport;\n const drawOutlines = this.deserializeDraw(pageX, pageY, pageWidth, pageHeight, this._INNER_MARGIN, data);\n const editor = await super.deserialize(data, parent, uiManager);\n editor.createDrawingOptions(data);\n editor.#createDrawOutlines({\n drawOutlines\n });\n editor.#addToDrawLayer();\n editor.onScaleChanging();\n editor.rotate();\n return editor;\n }\n serializeDraw(isForCopying) {\n const [pageX, pageY] = this.pageTranslation;\n const [pageWidth, pageHeight] = this.pageDimensions;\n return this.#drawOutlines.serialize([pageX, pageY, pageWidth, pageHeight], isForCopying);\n }\n renderAnnotationElement(annotation) {\n annotation.updateEdited({\n rect: this.getPDFRect()\n });\n return null;\n }\n static canCreateNewEmptyEditor() {\n return false;\n }\n}\n\n;// ./src/display/editor/drawers/inkdraw.js\n\n\n\n\n\n\n\n\n\n\nclass InkDrawOutliner {\n #last = new Float64Array(6);\n #line;\n #lines;\n #rotation;\n #thickness;\n #points;\n #lastSVGPath = \"\";\n #lastIndex = 0;\n #outlines = new InkDrawOutline();\n #parentWidth;\n #parentHeight;\n constructor(x, y, parentWidth, parentHeight, rotation, thickness) {\n this.#parentWidth = parentWidth;\n this.#parentHeight = parentHeight;\n this.#rotation = rotation;\n this.#thickness = thickness;\n [x, y] = this.#normalizePoint(x, y);\n const line = this.#line = [NaN, NaN, NaN, NaN, x, y];\n this.#points = [x, y];\n this.#lines = [{\n line,\n points: this.#points\n }];\n this.#last.set(line, 0);\n }\n updateProperty(name, value) {\n if (name === \"stroke-width\") {\n this.#thickness = value;\n }\n }\n #normalizePoint(x, y) {\n return Outline._normalizePoint(x, y, this.#parentWidth, this.#parentHeight, this.#rotation);\n }\n isEmpty() {\n return !this.#lines || this.#lines.length === 0;\n }\n isCancellable() {\n return this.#points.length <= 10;\n }\n add(x, y) {\n [x, y] = this.#normalizePoint(x, y);\n const [x1, y1, x2, y2] = this.#last.subarray(2, 6);\n const diffX = x - x2;\n const diffY = y - y2;\n const d = Math.hypot(this.#parentWidth * diffX, this.#parentHeight * diffY);\n if (d <= 2) {\n return null;\n }\n this.#points.push(x, y);\n if (isNaN(x1)) {\n this.#last.set([x2, y2, x, y], 2);\n this.#line.push(NaN, NaN, NaN, NaN, x, y);\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n if (isNaN(this.#last[0])) {\n this.#line.splice(6, 6);\n }\n this.#last.set([x1, y1, x2, y2, x, y], 0);\n this.#line.push(...Outline.createBezierPoints(x1, y1, x2, y2, x, y));\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n end(x, y) {\n const change = this.add(x, y);\n if (change) {\n return change;\n }\n if (this.#points.length === 2) {\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n return null;\n }\n startNew(x, y, parentWidth, parentHeight, rotation) {\n this.#parentWidth = parentWidth;\n this.#parentHeight = parentHeight;\n this.#rotation = rotation;\n [x, y] = this.#normalizePoint(x, y);\n const line = this.#line = [NaN, NaN, NaN, NaN, x, y];\n this.#points = [x, y];\n const last = this.#lines.at(-1);\n if (last) {\n last.line = new Float32Array(last.line);\n last.points = new Float32Array(last.points);\n }\n this.#lines.push({\n line,\n points: this.#points\n });\n this.#last.set(line, 0);\n this.#lastIndex = 0;\n this.toSVGPath();\n return null;\n }\n getLastElement() {\n return this.#lines.at(-1);\n }\n setLastElement(element) {\n if (!this.#lines) {\n return this.#outlines.setLastElement(element);\n }\n this.#lines.push(element);\n this.#line = element.line;\n this.#points = element.points;\n this.#lastIndex = 0;\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n removeLastElement() {\n if (!this.#lines) {\n return this.#outlines.removeLastElement();\n }\n this.#lines.pop();\n this.#lastSVGPath = \"\";\n for (let i = 0, ii = this.#lines.length; i < ii; i++) {\n const {\n line,\n points\n } = this.#lines[i];\n this.#line = line;\n this.#points = points;\n this.#lastIndex = 0;\n this.toSVGPath();\n }\n return {\n path: {\n d: this.#lastSVGPath\n }\n };\n }\n toSVGPath() {\n const firstX = Outline.svgRound(this.#line[4]);\n const firstY = Outline.svgRound(this.#line[5]);\n if (this.#points.length === 2) {\n this.#lastSVGPath = `${this.#lastSVGPath} M ${firstX} ${firstY} Z`;\n return this.#lastSVGPath;\n }\n if (this.#points.length <= 6) {\n const i = this.#lastSVGPath.lastIndexOf(\"M\");\n this.#lastSVGPath = `${this.#lastSVGPath.slice(0, i)} M ${firstX} ${firstY}`;\n this.#lastIndex = 6;\n }\n if (this.#points.length === 4) {\n const secondX = Outline.svgRound(this.#line[10]);\n const secondY = Outline.svgRound(this.#line[11]);\n this.#lastSVGPath = `${this.#lastSVGPath} L ${secondX} ${secondY}`;\n this.#lastIndex = 12;\n return this.#lastSVGPath;\n }\n const buffer = [];\n if (this.#lastIndex === 0) {\n buffer.push(`M ${firstX} ${firstY}`);\n this.#lastIndex = 6;\n }\n for (let i = this.#lastIndex, ii = this.#line.length; i < ii; i += 6) {\n const [c1x, c1y, c2x, c2y, x, y] = this.#line.slice(i, i + 6).map(Outline.svgRound);\n buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`);\n }\n this.#lastSVGPath += buffer.join(\" \");\n this.#lastIndex = this.#line.length;\n return this.#lastSVGPath;\n }\n getOutlines(parentWidth, parentHeight, scale, innerMargin) {\n const last = this.#lines.at(-1);\n last.line = new Float32Array(last.line);\n last.points = new Float32Array(last.points);\n this.#outlines.build(this.#lines, parentWidth, parentHeight, scale, this.#rotation, this.#thickness, innerMargin);\n this.#last = null;\n this.#line = null;\n this.#lines = null;\n this.#lastSVGPath = null;\n return this.#outlines;\n }\n get defaultSVGProperties() {\n return {\n root: {\n viewBox: \"0 0 10000 10000\"\n },\n rootClass: {\n draw: true\n },\n bbox: [0, 0, 1, 1]\n };\n }\n}\nclass InkDrawOutline extends Outline {\n #bbox;\n #currentRotation = 0;\n #innerMargin;\n #lines;\n #parentWidth;\n #parentHeight;\n #parentScale;\n #rotation;\n #thickness;\n build(lines, parentWidth, parentHeight, parentScale, rotation, thickness, innerMargin) {\n this.#parentWidth = parentWidth;\n this.#parentHeight = parentHeight;\n this.#parentScale = parentScale;\n this.#rotation = rotation;\n this.#thickness = thickness;\n this.#innerMargin = innerMargin ?? 0;\n this.#lines = lines;\n this.#computeBbox();\n }\n get thickness() {\n return this.#thickness;\n }\n setLastElement(element) {\n this.#lines.push(element);\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n removeLastElement() {\n this.#lines.pop();\n return {\n path: {\n d: this.toSVGPath()\n }\n };\n }\n toSVGPath() {\n const buffer = [];\n for (const {\n line\n } of this.#lines) {\n buffer.push(`M${Outline.svgRound(line[4])} ${Outline.svgRound(line[5])}`);\n if (line.length === 6) {\n buffer.push(\"Z\");\n continue;\n }\n if (line.length === 12 && isNaN(line[6])) {\n buffer.push(`L${Outline.svgRound(line[10])} ${Outline.svgRound(line[11])}`);\n continue;\n }\n for (let i = 6, ii = line.length; i < ii; i += 6) {\n const [c1x, c1y, c2x, c2y, x, y] = line.subarray(i, i + 6).map(Outline.svgRound);\n buffer.push(`C${c1x} ${c1y} ${c2x} ${c2y} ${x} ${y}`);\n }\n }\n return buffer.join(\"\");\n }\n serialize([pageX, pageY, pageWidth, pageHeight], isForCopying) {\n const serializedLines = [];\n const serializedPoints = [];\n const [x, y, width, height] = this.#getBBoxWithNoMargin();\n let tx, ty, sx, sy, x1, y1, x2, y2, rescaleFn;\n switch (this.#rotation) {\n case 0:\n rescaleFn = Outline._rescale;\n tx = pageX;\n ty = pageY + pageHeight;\n sx = pageWidth;\n sy = -pageHeight;\n x1 = pageX + x * pageWidth;\n y1 = pageY + (1 - y - height) * pageHeight;\n x2 = pageX + (x + width) * pageWidth;\n y2 = pageY + (1 - y) * pageHeight;\n break;\n case 90:\n rescaleFn = Outline._rescaleAndSwap;\n tx = pageX;\n ty = pageY;\n sx = pageWidth;\n sy = pageHeight;\n x1 = pageX + y * pageWidth;\n y1 = pageY + x * pageHeight;\n x2 = pageX + (y + height) * pageWidth;\n y2 = pageY + (x + width) * pageHeight;\n break;\n case 180:\n rescaleFn = Outline._rescale;\n tx = pageX + pageWidth;\n ty = pageY;\n sx = -pageWidth;\n sy = pageHeight;\n x1 = pageX + (1 - x - width) * pageWidth;\n y1 = pageY + y * pageHeight;\n x2 = pageX + (1 - x) * pageWidth;\n y2 = pageY + (y + height) * pageHeight;\n break;\n case 270:\n rescaleFn = Outline._rescaleAndSwap;\n tx = pageX + pageWidth;\n ty = pageY + pageHeight;\n sx = -pageWidth;\n sy = -pageHeight;\n x1 = pageX + (1 - y - height) * pageWidth;\n y1 = pageY + (1 - x - width) * pageHeight;\n x2 = pageX + (1 - y) * pageWidth;\n y2 = pageY + (1 - x) * pageHeight;\n break;\n }\n for (const {\n line,\n points\n } of this.#lines) {\n serializedLines.push(rescaleFn(line, tx, ty, sx, sy, isForCopying ? new Array(line.length) : null));\n serializedPoints.push(rescaleFn(points, tx, ty, sx, sy, isForCopying ? new Array(points.length) : null));\n }\n return {\n lines: serializedLines,\n points: serializedPoints,\n rect: [x1, y1, x2, y2]\n };\n }\n static deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, {\n paths: {\n lines,\n points\n },\n rotation,\n thickness\n }) {\n const newLines = [];\n let tx, ty, sx, sy, rescaleFn;\n switch (rotation) {\n case 0:\n rescaleFn = Outline._rescale;\n tx = -pageX / pageWidth;\n ty = pageY / pageHeight + 1;\n sx = 1 / pageWidth;\n sy = -1 / pageHeight;\n break;\n case 90:\n rescaleFn = Outline._rescaleAndSwap;\n tx = -pageY / pageHeight;\n ty = -pageX / pageWidth;\n sx = 1 / pageHeight;\n sy = 1 / pageWidth;\n break;\n case 180:\n rescaleFn = Outline._rescale;\n tx = pageX / pageWidth + 1;\n ty = -pageY / pageHeight;\n sx = -1 / pageWidth;\n sy = 1 / pageHeight;\n break;\n case 270:\n rescaleFn = Outline._rescaleAndSwap;\n tx = pageY / pageHeight + 1;\n ty = pageX / pageWidth + 1;\n sx = -1 / pageHeight;\n sy = -1 / pageWidth;\n break;\n }\n if (!lines) {\n lines = [];\n for (const point of points) {\n const len = point.length;\n if (len === 2) {\n lines.push(new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1]]));\n continue;\n }\n if (len === 4) {\n lines.push(new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1], NaN, NaN, NaN, NaN, point[2], point[3]]));\n continue;\n }\n const line = new Float32Array(3 * (len - 2));\n lines.push(line);\n let [x1, y1, x2, y2] = point.subarray(0, 4);\n line.set([NaN, NaN, NaN, NaN, x1, y1], 0);\n for (let i = 4; i < len; i += 2) {\n const x = point[i];\n const y = point[i + 1];\n line.set(Outline.createBezierPoints(x1, y1, x2, y2, x, y), (i - 2) * 3);\n [x1, y1, x2, y2] = [x2, y2, x, y];\n }\n }\n }\n for (let i = 0, ii = lines.length; i < ii; i++) {\n newLines.push({\n line: rescaleFn(lines[i].map(x => x ?? NaN), tx, ty, sx, sy),\n points: rescaleFn(points[i].map(x => x ?? NaN), tx, ty, sx, sy)\n });\n }\n const outlines = new this.prototype.constructor();\n outlines.build(newLines, pageWidth, pageHeight, 1, rotation, thickness, innerMargin);\n return outlines;\n }\n #getMarginComponents(thickness = this.#thickness) {\n const margin = this.#innerMargin + thickness / 2 * this.#parentScale;\n return this.#rotation % 180 === 0 ? [margin / this.#parentWidth, margin / this.#parentHeight] : [margin / this.#parentHeight, margin / this.#parentWidth];\n }\n #getBBoxWithNoMargin() {\n const [x, y, width, height] = this.#bbox;\n const [marginX, marginY] = this.#getMarginComponents(0);\n return [x + marginX, y + marginY, width - 2 * marginX, height - 2 * marginY];\n }\n #computeBbox() {\n const bbox = this.#bbox = F32_BBOX_INIT.slice();\n for (const {\n line\n } of this.#lines) {\n if (line.length <= 12) {\n for (let i = 4, ii = line.length; i < ii; i += 6) {\n Util.pointBoundingBox(line[i], line[i + 1], bbox);\n }\n continue;\n }\n let lastX = line[4],\n lastY = line[5];\n for (let i = 6, ii = line.length; i < ii; i += 6) {\n const [c1x, c1y, c2x, c2y, x, y] = line.subarray(i, i + 6);\n Util.bezierBoundingBox(lastX, lastY, c1x, c1y, c2x, c2y, x, y, bbox);\n lastX = x;\n lastY = y;\n }\n }\n const [marginX, marginY] = this.#getMarginComponents();\n bbox[0] = MathClamp(bbox[0] - marginX, 0, 1);\n bbox[1] = MathClamp(bbox[1] - marginY, 0, 1);\n bbox[2] = MathClamp(bbox[2] + marginX, 0, 1);\n bbox[3] = MathClamp(bbox[3] + marginY, 0, 1);\n bbox[2] -= bbox[0];\n bbox[3] -= bbox[1];\n }\n get box() {\n return this.#bbox;\n }\n updateProperty(name, value) {\n if (name === \"stroke-width\") {\n return this.#updateThickness(value);\n }\n return null;\n }\n #updateThickness(thickness) {\n const [oldMarginX, oldMarginY] = this.#getMarginComponents();\n this.#thickness = thickness;\n const [newMarginX, newMarginY] = this.#getMarginComponents();\n const [diffMarginX, diffMarginY] = [newMarginX - oldMarginX, newMarginY - oldMarginY];\n const bbox = this.#bbox;\n bbox[0] -= diffMarginX;\n bbox[1] -= diffMarginY;\n bbox[2] += 2 * diffMarginX;\n bbox[3] += 2 * diffMarginY;\n return bbox;\n }\n updateParentDimensions([width, height], scale) {\n const [oldMarginX, oldMarginY] = this.#getMarginComponents();\n this.#parentWidth = width;\n this.#parentHeight = height;\n this.#parentScale = scale;\n const [newMarginX, newMarginY] = this.#getMarginComponents();\n const diffMarginX = newMarginX - oldMarginX;\n const diffMarginY = newMarginY - oldMarginY;\n const bbox = this.#bbox;\n bbox[0] -= diffMarginX;\n bbox[1] -= diffMarginY;\n bbox[2] += 2 * diffMarginX;\n bbox[3] += 2 * diffMarginY;\n return bbox;\n }\n updateRotation(rotation) {\n this.#currentRotation = rotation;\n return {\n path: {\n transform: this.rotationTransform\n }\n };\n }\n get viewBox() {\n return this.#bbox.map(Outline.svgRound).join(\" \");\n }\n get defaultProperties() {\n const [x, y] = this.#bbox;\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n \"transform-origin\": `${Outline.svgRound(x)} ${Outline.svgRound(y)}`\n }\n };\n }\n get rotationTransform() {\n const [,, width, height] = this.#bbox;\n let a = 0,\n b = 0,\n c = 0,\n d = 0,\n e = 0,\n f = 0;\n switch (this.#currentRotation) {\n case 90:\n b = height / width;\n c = -width / height;\n e = width;\n break;\n case 180:\n a = -1;\n d = -1;\n e = width;\n f = height;\n break;\n case 270:\n b = -height / width;\n c = width / height;\n f = height;\n break;\n default:\n return \"\";\n }\n return `matrix(${a} ${b} ${c} ${d} ${Outline.svgRound(e)} ${Outline.svgRound(f)})`;\n }\n getPathResizingSVGProperties([newX, newY, newWidth, newHeight]) {\n const [marginX, marginY] = this.#getMarginComponents();\n const [x, y, width, height] = this.#bbox;\n if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {\n const tx = newX + newWidth / 2 - (x + width / 2);\n const ty = newY + newHeight / 2 - (y + height / 2);\n return {\n path: {\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n transform: `${this.rotationTransform} translate(${tx} ${ty})`\n }\n };\n }\n const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);\n const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);\n const s2x = width / newWidth;\n const s2y = height / newHeight;\n return {\n path: {\n \"transform-origin\": `${Outline.svgRound(x)} ${Outline.svgRound(y)}`,\n transform: `${this.rotationTransform} scale(${s2x} ${s2y}) ` + `translate(${Outline.svgRound(marginX)} ${Outline.svgRound(marginY)}) scale(${s1x} ${s1y}) ` + `translate(${Outline.svgRound(-marginX)} ${Outline.svgRound(-marginY)})`\n }\n };\n }\n getPathResizedSVGProperties([newX, newY, newWidth, newHeight]) {\n const [marginX, marginY] = this.#getMarginComponents();\n const bbox = this.#bbox;\n const [x, y, width, height] = bbox;\n bbox[0] = newX;\n bbox[1] = newY;\n bbox[2] = newWidth;\n bbox[3] = newHeight;\n if (Math.abs(width - marginX) <= Outline.PRECISION || Math.abs(height - marginY) <= Outline.PRECISION) {\n const tx = newX + newWidth / 2 - (x + width / 2);\n const ty = newY + newHeight / 2 - (y + height / 2);\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._translate(line, tx, ty, line);\n Outline._translate(points, tx, ty, points);\n }\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n transform: this.rotationTransform || null,\n d: this.toSVGPath()\n }\n };\n }\n const s1x = (newWidth - 2 * marginX) / (width - 2 * marginX);\n const s1y = (newHeight - 2 * marginY) / (height - 2 * marginY);\n const tx = -s1x * (x + marginX) + newX + marginX;\n const ty = -s1y * (y + marginY) + newY + marginY;\n if (s1x !== 1 || s1y !== 1 || tx !== 0 || ty !== 0) {\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._rescale(line, tx, ty, s1x, s1y, line);\n Outline._rescale(points, tx, ty, s1x, s1y, points);\n }\n }\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`,\n transform: this.rotationTransform || null,\n d: this.toSVGPath()\n }\n };\n }\n getPathTranslatedSVGProperties([newX, newY], parentDimensions) {\n const [newParentWidth, newParentHeight] = parentDimensions;\n const bbox = this.#bbox;\n const tx = newX - bbox[0];\n const ty = newY - bbox[1];\n if (this.#parentWidth === newParentWidth && this.#parentHeight === newParentHeight) {\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._translate(line, tx, ty, line);\n Outline._translate(points, tx, ty, points);\n }\n } else {\n const sx = this.#parentWidth / newParentWidth;\n const sy = this.#parentHeight / newParentHeight;\n this.#parentWidth = newParentWidth;\n this.#parentHeight = newParentHeight;\n for (const {\n line,\n points\n } of this.#lines) {\n Outline._rescale(line, tx, ty, sx, sy, line);\n Outline._rescale(points, tx, ty, sx, sy, points);\n }\n bbox[2] *= sx;\n bbox[3] *= sy;\n }\n bbox[0] = newX;\n bbox[1] = newY;\n return {\n root: {\n viewBox: this.viewBox\n },\n path: {\n d: this.toSVGPath(),\n \"transform-origin\": `${Outline.svgRound(newX)} ${Outline.svgRound(newY)}`\n }\n };\n }\n get defaultSVGProperties() {\n const bbox = this.#bbox;\n return {\n root: {\n viewBox: this.viewBox\n },\n rootClass: {\n draw: true\n },\n path: {\n d: this.toSVGPath(),\n \"transform-origin\": `${Outline.svgRound(bbox[0])} ${Outline.svgRound(bbox[1])}`,\n transform: this.rotationTransform || null\n },\n bbox\n };\n }\n}\n\n;// ./src/display/editor/ink.js\n\n\n\n\n\n\n\n\n\n\nclass InkDrawingOptions extends DrawingOptions {\n constructor(viewerParameters) {\n super();\n this._viewParameters = viewerParameters;\n super.updateProperties({\n fill: \"none\",\n stroke: AnnotationEditor._defaultLineColor,\n \"stroke-opacity\": 1,\n \"stroke-width\": 1,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-miterlimit\": 10\n });\n }\n updateSVGProperty(name, value) {\n if (name === \"stroke-width\") {\n value ??= this[\"stroke-width\"];\n value *= this._viewParameters.realScale;\n }\n super.updateSVGProperty(name, value);\n }\n clone() {\n const clone = new InkDrawingOptions(this._viewParameters);\n clone.updateAll(this);\n return clone;\n }\n}\nclass InkEditor extends DrawingEditor {\n static _type = \"ink\";\n static _editorType = AnnotationEditorType.INK;\n static _defaultDrawingOptions = null;\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this._willKeepAspectRatio = true;\n this.defaultL10nId = \"pdfjs-editor-ink-editor\";\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n this._defaultDrawingOptions = new InkDrawingOptions(uiManager.viewParameters);\n }\n static getDefaultDrawingOptions(options) {\n const clone = this._defaultDrawingOptions.clone();\n clone.updateProperties(options);\n return clone;\n }\n static get supportMultipleDrawings() {\n return true;\n }\n static get typesMap() {\n return shadow(this, \"typesMap\", new Map([[AnnotationEditorParamsType.INK_THICKNESS, \"stroke-width\"], [AnnotationEditorParamsType.INK_COLOR, \"stroke\"], [AnnotationEditorParamsType.INK_OPACITY, \"stroke-opacity\"]]));\n }\n static createDrawerInstance(x, y, parentWidth, parentHeight, rotation) {\n return new InkDrawOutliner(x, y, parentWidth, parentHeight, rotation, this._defaultDrawingOptions[\"stroke-width\"]);\n }\n static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {\n return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n }\n static async deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof InkAnnotationElement) {\n const {\n data: {\n inkLists,\n rect,\n rotation,\n id,\n color,\n opacity,\n borderStyle: {\n rawWidth: thickness\n },\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\n },\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n initialData = data = {\n annotationType: AnnotationEditorType.INK,\n color: Array.from(color),\n thickness,\n opacity,\n paths: {\n points: inkLists\n },\n boxes: null,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\n };\n }\n const editor = await super.deserialize(data, parent, uiManager);\n editor._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\n return editor;\n }\n get toolbarButtons() {\n this._colorPicker ||= new BasicColorPicker(this);\n return [[\"colorPicker\", this._colorPicker]];\n }\n get colorType() {\n return AnnotationEditorParamsType.INK_COLOR;\n }\n get colorAndOpacityType() {\n return AnnotationEditorParamsType.INK_COLOR_AND_OPACITY;\n }\n get opacityType() {\n return AnnotationEditorParamsType.INK_OPACITY;\n }\n updateParams(type, value) {\n if (type === AnnotationEditorParamsType.INK_COLOR_AND_OPACITY) {\n this._updateColorAndOpacity(value.color, value.opacity);\n return;\n }\n super.updateParams(type, value);\n }\n static updateDefaultParams(type, value) {\n if (type === AnnotationEditorParamsType.INK_COLOR_AND_OPACITY) {\n super.updateDefaultParams(AnnotationEditorParamsType.INK_COLOR, value.color);\n super.updateDefaultParams(AnnotationEditorParamsType.INK_OPACITY, value.opacity);\n return;\n }\n super.updateDefaultParams(type, value);\n }\n get color() {\n return this._drawingOptions.stroke;\n }\n get opacity() {\n return this._drawingOptions[\"stroke-opacity\"];\n }\n onScaleChanging() {\n if (!this.parent) {\n return;\n }\n super.onScaleChanging();\n const {\n _drawId,\n _drawingOptions,\n parent\n } = this;\n _drawingOptions.updateSVGProperty(\"stroke-width\");\n parent.drawLayer.updateProperties(_drawId, _drawingOptions.toSVGProperties());\n }\n static onScaleChangingWhenDrawing() {\n const parent = this._currentParent;\n if (!parent) {\n return;\n }\n super.onScaleChangingWhenDrawing();\n this._defaultDrawingOptions.updateSVGProperty(\"stroke-width\");\n parent.drawLayer.updateProperties(this._currentDrawId, this._defaultDrawingOptions.toSVGProperties());\n }\n createDrawingOptions({\n color,\n thickness,\n opacity\n }) {\n this._drawingOptions = InkEditor.getDefaultDrawingOptions({\n stroke: Util.makeHexColor(...color),\n \"stroke-width\": thickness,\n \"stroke-opacity\": opacity\n });\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return this.serializeDeleted();\n }\n const {\n lines,\n points\n } = this.serializeDraw(isForCopying);\n const {\n _drawingOptions: {\n stroke,\n \"stroke-opacity\": opacity,\n \"stroke-width\": thickness\n }\n } = this;\n const serialized = Object.assign(super.serialize(isForCopying), {\n color: AnnotationEditor._colorManager.convert(stroke),\n opacity,\n thickness,\n paths: {\n lines,\n points\n }\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.isCopy = true;\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 color,\n thickness,\n opacity,\n pageIndex\n } = this._initialData;\n return this.hasEditedComment || this._hasBeenMoved || this._hasBeenResized || serialized.color.some((c, i) => c !== color[i]) || serialized.thickness !== thickness || serialized.opacity !== opacity || serialized.pageIndex !== pageIndex;\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n const {\n points,\n rect\n } = this.serializeDraw(false);\n annotation.updateEdited({\n rect,\n thickness: this._drawingOptions[\"stroke-width\"],\n points,\n popup: this.comment\n });\n return null;\n }\n}\n\n;// ./src/display/editor/drawers/contour.js\n\nclass ContourDrawOutline extends InkDrawOutline {\n toSVGPath() {\n let path = super.toSVGPath();\n if (!path.endsWith(\"Z\")) {\n path += \"Z\";\n }\n return path;\n }\n}\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.from-base64.js\nvar es_uint8_array_from_base64 = __webpack_require__(5213);\n;// ./src/display/editor/drawers/signaturedraw.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst BASE_HEADER_LENGTH = 8;\nconst POINTS_PROPERTIES_NUMBER = 3;\nclass SignatureExtractor {\n static #PARAMETERS = {\n maxDim: 512,\n sigmaSFactor: 0.02,\n sigmaR: 25,\n kernelSize: 16\n };\n static #neighborIndexToId(i0, j0, i, j) {\n i -= i0;\n j -= j0;\n if (i === 0) {\n return j > 0 ? 0 : 4;\n }\n if (i === 1) {\n return j + 6;\n }\n return 2 - j;\n }\n static #neighborIdToIndex = new Int32Array([0, 1, -1, 1, -1, 0, -1, -1, 0, -1, 1, -1, 1, 0, 1, 1]);\n static #clockwiseNonZero(buf, width, i0, j0, i, j, offset) {\n const id = this.#neighborIndexToId(i0, j0, i, j);\n for (let k = 0; k < 8; k++) {\n const kk = (-k + id - offset + 16) % 8;\n const shiftI = this.#neighborIdToIndex[2 * kk];\n const shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {\n return kk;\n }\n }\n return -1;\n }\n static #counterClockwiseNonZero(buf, width, i0, j0, i, j, offset) {\n const id = this.#neighborIndexToId(i0, j0, i, j);\n for (let k = 0; k < 8; k++) {\n const kk = (k + id + offset + 16) % 8;\n const shiftI = this.#neighborIdToIndex[2 * kk];\n const shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n if (buf[(i0 + shiftI) * width + (j0 + shiftJ)] !== 0) {\n return kk;\n }\n }\n return -1;\n }\n static #findContours(buf, width, height, threshold) {\n const N = buf.length;\n const types = new Int32Array(N);\n for (let i = 0; i < N; i++) {\n types[i] = buf[i] <= threshold ? 1 : 0;\n }\n for (let i = 1; i < height - 1; i++) {\n types[i * width] = types[i * width + width - 1] = 0;\n }\n for (let i = 0; i < width; i++) {\n types[i] = types[width * height - 1 - i] = 0;\n }\n let nbd = 1;\n let lnbd;\n const contours = [];\n for (let i = 1; i < height - 1; i++) {\n lnbd = 1;\n for (let j = 1; j < width - 1; j++) {\n const ij = i * width + j;\n const pix = types[ij];\n if (pix === 0) {\n continue;\n }\n let i2 = i;\n let j2 = j;\n if (pix === 1 && types[ij - 1] === 0) {\n nbd += 1;\n j2 -= 1;\n } else if (pix >= 1 && types[ij + 1] === 0) {\n nbd += 1;\n j2 += 1;\n if (pix > 1) {\n lnbd = pix;\n }\n } else {\n if (pix !== 1) {\n lnbd = Math.abs(pix);\n }\n continue;\n }\n const points = [j, i];\n const isHole = j2 === j + 1;\n const contour = {\n isHole,\n points,\n id: nbd,\n parent: 0\n };\n contours.push(contour);\n let contour0;\n for (const c of contours) {\n if (c.id === lnbd) {\n contour0 = c;\n break;\n }\n }\n if (!contour0) {\n contour.parent = isHole ? lnbd : 0;\n } else if (contour0.isHole) {\n contour.parent = isHole ? contour0.parent : lnbd;\n } else {\n contour.parent = isHole ? lnbd : contour0.parent;\n }\n const k = this.#clockwiseNonZero(types, width, i, j, i2, j2, 0);\n if (k === -1) {\n types[ij] = -nbd;\n if (types[ij] !== 1) {\n lnbd = Math.abs(types[ij]);\n }\n continue;\n }\n let shiftI = this.#neighborIdToIndex[2 * k];\n let shiftJ = this.#neighborIdToIndex[2 * k + 1];\n const i1 = i + shiftI;\n const j1 = j + shiftJ;\n i2 = i1;\n j2 = j1;\n let i3 = i;\n let j3 = j;\n while (true) {\n const kk = this.#counterClockwiseNonZero(types, width, i3, j3, i2, j2, 1);\n shiftI = this.#neighborIdToIndex[2 * kk];\n shiftJ = this.#neighborIdToIndex[2 * kk + 1];\n const i4 = i3 + shiftI;\n const j4 = j3 + shiftJ;\n points.push(j4, i4);\n const ij3 = i3 * width + j3;\n if (types[ij3 + 1] === 0) {\n types[ij3] = -nbd;\n } else if (types[ij3] === 1) {\n types[ij3] = nbd;\n }\n if (i4 === i && j4 === j && i3 === i1 && j3 === j1) {\n if (types[ij] !== 1) {\n lnbd = Math.abs(types[ij]);\n }\n break;\n } else {\n i2 = i3;\n j2 = j3;\n i3 = i4;\n j3 = j4;\n }\n }\n }\n }\n return contours;\n }\n static #douglasPeuckerHelper(points, start, end, output) {\n if (end - start <= 4) {\n for (let i = start; i < end - 2; i += 2) {\n output.push(points[i], points[i + 1]);\n }\n return;\n }\n const ax = points[start];\n const ay = points[start + 1];\n const abx = points[end - 4] - ax;\n const aby = points[end - 3] - ay;\n const dist = Math.hypot(abx, aby);\n const nabx = abx / dist;\n const naby = aby / dist;\n const aa = nabx * ay - naby * ax;\n const m = aby / abx;\n const invS = 1 / dist;\n const phi = Math.atan(m);\n const cosPhi = Math.cos(phi);\n const sinPhi = Math.sin(phi);\n const tmax = invS * (Math.abs(cosPhi) + Math.abs(sinPhi));\n const poly = invS * (1 - tmax + tmax ** 2);\n const partialPhi = Math.max(Math.atan(Math.abs(sinPhi + cosPhi) * poly), Math.atan(Math.abs(sinPhi - cosPhi) * poly));\n let dmax = 0;\n let index = start;\n for (let i = start + 2; i < end - 2; i += 2) {\n const d = Math.abs(aa - nabx * points[i + 1] + naby * points[i]);\n if (d > dmax) {\n index = i;\n dmax = d;\n }\n }\n if (dmax > (dist * partialPhi) ** 2) {\n this.#douglasPeuckerHelper(points, start, index + 2, output);\n this.#douglasPeuckerHelper(points, index, end, output);\n } else {\n output.push(ax, ay);\n }\n }\n static #douglasPeucker(points) {\n const output = [];\n const len = points.length;\n this.#douglasPeuckerHelper(points, 0, len, output);\n output.push(points[len - 2], points[len - 1]);\n return output.length <= 4 ? null : output;\n }\n static #bilateralFilter(buf, width, height, sigmaS, sigmaR, kernelSize) {\n const kernel = new Float32Array(kernelSize ** 2);\n const sigmaS2 = -2 * sigmaS ** 2;\n const halfSize = kernelSize >> 1;\n for (let i = 0; i < kernelSize; i++) {\n const x = (i - halfSize) ** 2;\n for (let j = 0; j < kernelSize; j++) {\n kernel[i * kernelSize + j] = Math.exp((x + (j - halfSize) ** 2) / sigmaS2);\n }\n }\n const rangeValues = new Float32Array(256);\n const sigmaR2 = -2 * sigmaR ** 2;\n for (let i = 0; i < 256; i++) {\n rangeValues[i] = Math.exp(i ** 2 / sigmaR2);\n }\n const N = buf.length;\n const out = new Uint8Array(N);\n const histogram = new Uint32Array(256);\n for (let i = 0; i < height; i++) {\n for (let j = 0; j < width; j++) {\n const ij = i * width + j;\n const center = buf[ij];\n let sum = 0;\n let norm = 0;\n for (let k = 0; k < kernelSize; k++) {\n const y = i + k - halfSize;\n if (y < 0 || y >= height) {\n continue;\n }\n for (let l = 0; l < kernelSize; l++) {\n const x = j + l - halfSize;\n if (x < 0 || x >= width) {\n continue;\n }\n const neighbour = buf[y * width + x];\n const w = kernel[k * kernelSize + l] * rangeValues[Math.abs(neighbour - center)];\n sum += neighbour * w;\n norm += w;\n }\n }\n const pix = out[ij] = Math.round(sum / norm);\n histogram[pix]++;\n }\n }\n return [out, histogram];\n }\n static #getHistogram(buf) {\n const histogram = new Uint32Array(256);\n for (const g of buf) {\n histogram[g]++;\n }\n return histogram;\n }\n static #toUint8(buf) {\n const N = buf.length;\n const out = new Uint8ClampedArray(N >> 2);\n let max = -Infinity;\n let min = Infinity;\n for (let i = 0, ii = out.length; i < ii; i++) {\n const pix = out[i] = buf[i << 2];\n max = Math.max(max, pix);\n min = Math.min(min, pix);\n }\n const ratio = 255 / (max - min);\n for (let i = 0, ii = out.length; i < ii; i++) {\n out[i] = (out[i] - min) * ratio;\n }\n return out;\n }\n static #guessThreshold(histogram) {\n let i;\n let M = -Infinity;\n let L = -Infinity;\n const min = histogram.findIndex(v => v !== 0);\n let pos = min;\n let spos = min;\n for (i = min; i < 256; i++) {\n const v = histogram[i];\n if (v > M) {\n if (i - pos > L) {\n L = i - pos;\n spos = i - 1;\n }\n M = v;\n pos = i;\n }\n }\n for (i = spos - 1; i >= 0; i--) {\n if (histogram[i] > histogram[i + 1]) {\n break;\n }\n }\n return i;\n }\n static #getGrayPixels(bitmap) {\n const originalBitmap = bitmap;\n const {\n width,\n height\n } = bitmap;\n const {\n maxDim\n } = this.#PARAMETERS;\n let newWidth = width;\n let newHeight = height;\n if (width > maxDim || height > maxDim) {\n let prevWidth = width;\n let prevHeight = height;\n let steps = Math.log2(Math.max(width, height) / maxDim);\n const isteps = Math.floor(steps);\n steps = steps === isteps ? isteps - 1 : isteps;\n for (let i = 0; i < steps; i++) {\n newWidth = Math.ceil(prevWidth / 2);\n newHeight = Math.ceil(prevHeight / 2);\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 prevWidth = newWidth;\n prevHeight = newHeight;\n if (bitmap !== originalBitmap) {\n bitmap.close();\n }\n bitmap = offscreen.transferToImageBitmap();\n }\n const ratio = Math.min(maxDim / newWidth, maxDim / newHeight);\n newWidth = Math.round(newWidth * ratio);\n newHeight = Math.round(newHeight * ratio);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\", {\n willReadFrequently: true\n });\n ctx.fillStyle = \"white\";\n ctx.fillRect(0, 0, newWidth, newHeight);\n ctx.filter = \"grayscale(1)\";\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, newWidth, newHeight);\n const grayImage = ctx.getImageData(0, 0, newWidth, newHeight).data;\n const uint8Buf = this.#toUint8(grayImage);\n return [uint8Buf, newWidth, newHeight];\n }\n static extractContoursFromText(text, {\n fontFamily,\n fontStyle,\n fontWeight\n }, pageWidth, pageHeight, rotation, innerMargin) {\n let canvas = new OffscreenCanvas(1, 1);\n let ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n const fontSize = 200;\n const font = ctx.font = `${fontStyle} ${fontWeight} ${fontSize}px ${fontFamily}`;\n const {\n actualBoundingBoxLeft,\n actualBoundingBoxRight,\n actualBoundingBoxAscent,\n actualBoundingBoxDescent,\n fontBoundingBoxAscent,\n fontBoundingBoxDescent,\n width\n } = ctx.measureText(text);\n const SCALE = 1.5;\n const canvasWidth = Math.ceil(Math.max(Math.abs(actualBoundingBoxLeft) + Math.abs(actualBoundingBoxRight) || 0, width) * SCALE);\n const canvasHeight = Math.ceil(Math.max(Math.abs(actualBoundingBoxAscent) + Math.abs(actualBoundingBoxDescent) || fontSize, Math.abs(fontBoundingBoxAscent) + Math.abs(fontBoundingBoxDescent) || fontSize) * SCALE);\n canvas = new OffscreenCanvas(canvasWidth, canvasHeight);\n ctx = canvas.getContext(\"2d\", {\n alpha: true,\n willReadFrequently: true\n });\n ctx.font = font;\n ctx.filter = \"grayscale(1)\";\n ctx.fillStyle = \"white\";\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\n ctx.fillStyle = \"black\";\n ctx.fillText(text, canvasWidth * (SCALE - 1) / 2, canvasHeight * (3 - SCALE) / 2);\n const uint8Buf = this.#toUint8(ctx.getImageData(0, 0, canvasWidth, canvasHeight).data);\n const histogram = this.#getHistogram(uint8Buf);\n const threshold = this.#guessThreshold(histogram);\n const contourList = this.#findContours(uint8Buf, canvasWidth, canvasHeight, threshold);\n return this.processDrawnLines({\n lines: {\n curves: contourList,\n width: canvasWidth,\n height: canvasHeight\n },\n pageWidth,\n pageHeight,\n rotation,\n innerMargin,\n mustSmooth: true,\n areContours: true\n });\n }\n static process(bitmap, pageWidth, pageHeight, rotation, innerMargin) {\n const [uint8Buf, width, height] = this.#getGrayPixels(bitmap);\n const [buffer, histogram] = this.#bilateralFilter(uint8Buf, width, height, Math.hypot(width, height) * this.#PARAMETERS.sigmaSFactor, this.#PARAMETERS.sigmaR, this.#PARAMETERS.kernelSize);\n const threshold = this.#guessThreshold(histogram);\n const contourList = this.#findContours(buffer, width, height, threshold);\n return this.processDrawnLines({\n lines: {\n curves: contourList,\n width,\n height\n },\n pageWidth,\n pageHeight,\n rotation,\n innerMargin,\n mustSmooth: true,\n areContours: true\n });\n }\n static processDrawnLines({\n lines,\n pageWidth,\n pageHeight,\n rotation,\n innerMargin,\n mustSmooth,\n areContours\n }) {\n if (rotation % 180 !== 0) {\n [pageWidth, pageHeight] = [pageHeight, pageWidth];\n }\n const {\n curves,\n width,\n height\n } = lines;\n const thickness = lines.thickness ?? 0;\n const linesAndPoints = [];\n const ratio = Math.min(pageWidth / width, pageHeight / height);\n const xScale = ratio / pageWidth;\n const yScale = ratio / pageHeight;\n const newCurves = [];\n for (const {\n points\n } of curves) {\n const reducedPoints = mustSmooth ? this.#douglasPeucker(points) : points;\n if (!reducedPoints) {\n continue;\n }\n newCurves.push(reducedPoints);\n const len = reducedPoints.length;\n const newPoints = new Float32Array(len);\n const line = new Float32Array(3 * (len === 2 ? 2 : len - 2));\n linesAndPoints.push({\n line,\n points: newPoints\n });\n if (len === 2) {\n newPoints[0] = reducedPoints[0] * xScale;\n newPoints[1] = reducedPoints[1] * yScale;\n line.set([NaN, NaN, NaN, NaN, newPoints[0], newPoints[1]], 0);\n continue;\n }\n let [x1, y1, x2, y2] = reducedPoints;\n x1 *= xScale;\n y1 *= yScale;\n x2 *= xScale;\n y2 *= yScale;\n newPoints.set([x1, y1, x2, y2], 0);\n line.set([NaN, NaN, NaN, NaN, x1, y1], 0);\n for (let i = 4; i < len; i += 2) {\n const x = newPoints[i] = reducedPoints[i] * xScale;\n const y = newPoints[i + 1] = reducedPoints[i + 1] * yScale;\n line.set(Outline.createBezierPoints(x1, y1, x2, y2, x, y), (i - 2) * 3);\n [x1, y1, x2, y2] = [x2, y2, x, y];\n }\n }\n if (linesAndPoints.length === 0) {\n return null;\n }\n const outline = areContours ? new ContourDrawOutline() : new InkDrawOutline();\n outline.build(linesAndPoints, pageWidth, pageHeight, 1, rotation, areContours ? 0 : thickness, innerMargin);\n return {\n outline,\n newCurves,\n areContours,\n thickness,\n width,\n height\n };\n }\n static async compressSignature({\n outlines,\n areContours,\n thickness,\n width,\n height\n }) {\n let minDiff = Infinity;\n let maxDiff = -Infinity;\n let outlinesLength = 0;\n for (const points of outlines) {\n outlinesLength += points.length;\n for (let i = 2, ii = points.length; i < ii; i++) {\n const dx = points[i] - points[i - 2];\n minDiff = Math.min(minDiff, dx);\n maxDiff = Math.max(maxDiff, dx);\n }\n }\n let bufferType;\n if (minDiff >= -128 && maxDiff <= 127) {\n bufferType = Int8Array;\n } else if (minDiff >= -32768 && maxDiff <= 32767) {\n bufferType = Int16Array;\n } else {\n bufferType = Int32Array;\n }\n const len = outlines.length;\n const headerLength = BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * len;\n const header = new Uint32Array(headerLength);\n let offset = 0;\n header[offset++] = headerLength * Uint32Array.BYTES_PER_ELEMENT + (outlinesLength - 2 * len) * bufferType.BYTES_PER_ELEMENT;\n header[offset++] = 0;\n header[offset++] = width;\n header[offset++] = height;\n header[offset++] = areContours ? 0 : 1;\n header[offset++] = Math.max(0, Math.floor(thickness ?? 0));\n header[offset++] = len;\n header[offset++] = bufferType.BYTES_PER_ELEMENT;\n for (const points of outlines) {\n header[offset++] = points.length - 2;\n header[offset++] = points[0];\n header[offset++] = points[1];\n }\n const cs = new CompressionStream(\"deflate-raw\");\n const writer = cs.writable.getWriter();\n await writer.ready;\n writer.write(header);\n const BufferCtor = bufferType.prototype.constructor;\n for (const points of outlines) {\n const diffs = new BufferCtor(points.length - 2);\n for (let i = 2, ii = points.length; i < ii; i++) {\n diffs[i - 2] = points[i] - points[i - 2];\n }\n writer.write(diffs);\n }\n writer.close();\n const bytes = await new Response(cs.readable).bytes();\n return bytes.toBase64();\n }\n static async decompressSignature(signatureData) {\n try {\n const bytes = Uint8Array.fromBase64(signatureData);\n const {\n readable,\n writable\n } = new DecompressionStream(\"deflate-raw\");\n const writer = writable.getWriter();\n await writer.ready;\n writer.write(bytes).then(async () => {\n await writer.ready;\n await writer.close();\n }).catch(() => {});\n let data = null;\n let offset = 0;\n for await (const chunk of readable) {\n data ||= new Uint8Array(new Uint32Array(chunk.buffer, 0, 4)[0]);\n data.set(chunk, offset);\n offset += chunk.length;\n }\n const header = new Uint32Array(data.buffer, 0, data.length >> 2);\n const version = header[1];\n if (version !== 0) {\n throw new Error(`Invalid version: ${version}`);\n }\n const width = header[2];\n const height = header[3];\n const areContours = header[4] === 0;\n const thickness = header[5];\n const numberOfDrawings = header[6];\n const bufferType = header[7];\n const outlines = [];\n const diffsOffset = (BASE_HEADER_LENGTH + POINTS_PROPERTIES_NUMBER * numberOfDrawings) * Uint32Array.BYTES_PER_ELEMENT;\n let diffs;\n switch (bufferType) {\n case Int8Array.BYTES_PER_ELEMENT:\n diffs = new Int8Array(data.buffer, diffsOffset);\n break;\n case Int16Array.BYTES_PER_ELEMENT:\n diffs = new Int16Array(data.buffer, diffsOffset);\n break;\n case Int32Array.BYTES_PER_ELEMENT:\n diffs = new Int32Array(data.buffer, diffsOffset);\n break;\n }\n offset = 0;\n for (let i = 0; i < numberOfDrawings; i++) {\n const len = header[POINTS_PROPERTIES_NUMBER * i + BASE_HEADER_LENGTH];\n const points = new Float32Array(len + 2);\n outlines.push(points);\n for (let j = 0; j < POINTS_PROPERTIES_NUMBER - 1; j++) {\n points[j] = header[POINTS_PROPERTIES_NUMBER * i + BASE_HEADER_LENGTH + j + 1];\n }\n for (let j = 0; j < len; j++) {\n points[j + 2] = points[j] + diffs[offset++];\n }\n }\n return {\n areContours,\n thickness,\n outlines,\n width,\n height\n };\n } catch (e) {\n warn(`decompressSignature: ${e}`);\n return null;\n }\n }\n}\n\n;// ./src/display/editor/signature.js\n\n\n\n\n\n\n\n\n\n\n\n\nclass SignatureOptions extends DrawingOptions {\n constructor() {\n super();\n super.updateProperties({\n fill: AnnotationEditor._defaultLineColor,\n \"stroke-width\": 0\n });\n }\n clone() {\n const clone = new SignatureOptions();\n clone.updateAll(this);\n return clone;\n }\n}\nclass DrawnSignatureOptions extends InkDrawingOptions {\n constructor(viewerParameters) {\n super(viewerParameters);\n super.updateProperties({\n stroke: AnnotationEditor._defaultLineColor,\n \"stroke-width\": 1\n });\n }\n clone() {\n const clone = new DrawnSignatureOptions(this._viewParameters);\n clone.updateAll(this);\n return clone;\n }\n}\nclass SignatureEditor extends DrawingEditor {\n #isExtracted = false;\n #description = null;\n #signatureData = null;\n #signatureUUID = null;\n static _type = \"signature\";\n static _editorType = AnnotationEditorType.SIGNATURE;\n static _defaultDrawingOptions = null;\n constructor(params) {\n super({\n ...params,\n mustBeCommitted: true,\n name: \"signatureEditor\"\n });\n this._willKeepAspectRatio = true;\n this.#signatureData = params.signatureData || null;\n this.#description = null;\n this.defaultL10nId = \"pdfjs-editor-signature-editor1\";\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n this._defaultDrawingOptions = new SignatureOptions();\n this._defaultDrawnSignatureOptions = new DrawnSignatureOptions(uiManager.viewParameters);\n }\n static getDefaultDrawingOptions(options) {\n const clone = this._defaultDrawingOptions.clone();\n clone.updateProperties(options);\n return clone;\n }\n static get supportMultipleDrawings() {\n return false;\n }\n static get typesMap() {\n return shadow(this, \"typesMap\", new Map());\n }\n static get isDrawer() {\n return false;\n }\n get telemetryFinalData() {\n return {\n type: \"signature\",\n hasDescription: !!this.#description\n };\n }\n static computeTelemetryFinalData(data) {\n const hasDescriptionStats = data.get(\"hasDescription\");\n return {\n hasAltText: hasDescriptionStats.get(true) ?? 0,\n hasNoAltText: hasDescriptionStats.get(false) ?? 0\n };\n }\n get isResizable() {\n return true;\n }\n onScaleChanging() {\n if (this._drawId === null) {\n return;\n }\n super.onScaleChanging();\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n const {\n _isCopy\n } = this;\n if (_isCopy) {\n this._isCopy = false;\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n if (this._drawId === null) {\n if (this.#signatureData) {\n const {\n lines,\n mustSmooth,\n areContours,\n description,\n uuid,\n heightInPage\n } = this.#signatureData;\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n const outline = SignatureExtractor.processDrawnLines({\n lines,\n pageWidth,\n pageHeight,\n rotation,\n innerMargin: SignatureEditor._INNER_MARGIN,\n mustSmooth,\n areContours\n });\n this.addSignature(outline, heightInPage, description, uuid);\n } else {\n this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n description: \"\"\n }));\n this.div.hidden = true;\n this._uiManager.getSignature(this);\n }\n } else {\n this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n description: this.#description || \"\"\n }));\n }\n if (_isCopy) {\n this._isCopy = true;\n this._moveAfterPaste(baseX, baseY);\n }\n return this.div;\n }\n setUuid(uuid) {\n this.#signatureUUID = uuid;\n this.addEditToolbar();\n }\n getUuid() {\n return this.#signatureUUID;\n }\n get description() {\n return this.#description;\n }\n set description(description) {\n this.#description = description;\n if (!this.div) {\n return;\n }\n this.div.setAttribute(\"data-l10n-args\", JSON.stringify({\n description\n }));\n super.addEditToolbar().then(toolbar => {\n toolbar?.updateEditSignatureButton(description);\n });\n }\n getSignaturePreview() {\n const {\n newCurves,\n areContours,\n thickness,\n width,\n height\n } = this.#signatureData;\n const maxDim = Math.max(width, height);\n const outlineData = SignatureExtractor.processDrawnLines({\n lines: {\n curves: newCurves.map(points => ({\n points\n })),\n thickness,\n width,\n height\n },\n pageWidth: maxDim,\n pageHeight: maxDim,\n rotation: 0,\n innerMargin: 0,\n mustSmooth: false,\n areContours\n });\n return {\n areContours,\n outline: outlineData.outline\n };\n }\n get toolbarButtons() {\n if (this._uiManager.signatureManager) {\n return [[\"editSignature\", this._uiManager.signatureManager]];\n }\n return super.toolbarButtons;\n }\n addSignature(data, heightInPage, description, uuid) {\n const {\n x: savedX,\n y: savedY\n } = this;\n const {\n outline\n } = this.#signatureData = data;\n this.#isExtracted = outline instanceof ContourDrawOutline;\n this.description = description;\n let drawingOptions;\n if (this.#isExtracted) {\n drawingOptions = SignatureEditor.getDefaultDrawingOptions();\n } else {\n drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();\n drawingOptions.updateProperties({\n \"stroke-width\": outline.thickness\n });\n }\n this._addOutlines({\n drawOutlines: outline,\n drawingOptions\n });\n const [, pageHeight] = this.pageDimensions;\n let newHeight = heightInPage / pageHeight;\n newHeight = newHeight >= 1 ? 0.5 : newHeight;\n this.width *= newHeight / this.height;\n if (this.width >= 1) {\n newHeight *= 0.9 / this.width;\n this.width = 0.9;\n }\n this.height = newHeight;\n this.setDims();\n this.x = savedX;\n this.y = savedY;\n this.center();\n this._onResized();\n this.onScaleChanging();\n this.rotate();\n this._uiManager.addToAnnotationStorage(this);\n this.setUuid(uuid);\n this._reportTelemetry({\n action: \"pdfjs.signature.inserted\",\n data: {\n hasBeenSaved: !!uuid,\n hasDescription: !!description\n }\n });\n this.div.hidden = false;\n }\n getFromImage(bitmap) {\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n return SignatureExtractor.process(bitmap, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);\n }\n getFromText(text, fontInfo) {\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n return SignatureExtractor.extractContoursFromText(text, fontInfo, pageWidth, pageHeight, rotation, SignatureEditor._INNER_MARGIN);\n }\n getDrawnSignature(curves) {\n const {\n rawDims: {\n pageWidth,\n pageHeight\n },\n rotation\n } = this.parent.viewport;\n return SignatureExtractor.processDrawnLines({\n lines: curves,\n pageWidth,\n pageHeight,\n rotation,\n innerMargin: SignatureEditor._INNER_MARGIN,\n mustSmooth: false,\n areContours: false\n });\n }\n createDrawingOptions({\n areContours,\n thickness\n }) {\n if (areContours) {\n this._drawingOptions = SignatureEditor.getDefaultDrawingOptions();\n } else {\n this._drawingOptions = SignatureEditor._defaultDrawnSignatureOptions.clone();\n this._drawingOptions.updateProperties({\n \"stroke-width\": thickness\n });\n }\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n const {\n lines,\n points\n } = this.serializeDraw(isForCopying);\n const {\n _drawingOptions: {\n \"stroke-width\": thickness\n }\n } = this;\n const serialized = Object.assign(super.serialize(isForCopying), {\n isSignature: true,\n areContours: this.#isExtracted,\n color: [0, 0, 0],\n thickness: this.#isExtracted ? 0 : thickness\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.paths = {\n lines,\n points\n };\n serialized.uuid = this.#signatureUUID;\n serialized.isCopy = true;\n } else {\n serialized.lines = lines;\n }\n if (this.#description) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: this.#description\n };\n }\n return serialized;\n }\n static deserializeDraw(pageX, pageY, pageWidth, pageHeight, innerMargin, data) {\n if (data.areContours) {\n return ContourDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n }\n return InkDrawOutline.deserialize(pageX, pageY, pageWidth, pageHeight, innerMargin, data);\n }\n static async deserialize(data, parent, uiManager) {\n const editor = await super.deserialize(data, parent, uiManager);\n editor.#isExtracted = data.areContours;\n editor.description = data.accessibilityData?.alt || \"\";\n editor.#signatureUUID = data.uuid;\n return editor;\n }\n}\n\n;// ./src/display/editor/stamp.js\n\n\n\n\n\n\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 #missingCanvas = false;\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 this.defaultL10nId = \"pdfjs-editor-stamp-editor\";\n }\n static initialize(l10n, uiManager) {\n AnnotationEditor.initialize(l10n, uiManager);\n }\n static isHandlingMimeForPasting(mime) {\n return SupportedImageMimeTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor({\n mode: AnnotationEditorType.STAMP\n }, {\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.addEditToolbar().then(() => {\n this._editToolbar.hide();\n this._uiManager.editAltText(this, true);\n });\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 = SupportedImageMimeTypes.join(\",\");\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 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(focus) {\n this._isDraggable = true;\n if (focus) {\n this.div.focus();\n }\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId || this.#missingCanvas);\n }\n get toolbarButtons() {\n return [[\"altText\", this.createAltText()]];\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._isCopy) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n this.createAltText();\n if (!this.#missingCanvas) {\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n }\n if (this._isCopy) {\n this._moveAfterPaste(baseX, baseY);\n }\n this._uiManager.addShouldRescale(this);\n return this.div;\n }\n setCanvas(annotationElementId, canvas) {\n const {\n id: bitmapId,\n bitmap\n } = this._uiManager.imageManager.getFromCanvas(annotationElementId, canvas);\n canvas.remove();\n if (bitmapId && this._uiManager.imageManager.isValidId(bitmapId)) {\n this.#bitmapId = bitmapId;\n if (bitmap) {\n this.#bitmap = bitmap;\n }\n this.#missingCanvas = false;\n this.#createCanvas();\n }\n }\n _onResized() {\n this.onScaleChanging();\n }\n onScaleChanging() {\n if (!this.parent) {\n return;\n }\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();\n }, TIME_TO_WAIT);\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 this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n canvas.setAttribute(\"role\", \"img\");\n this.addContainer(canvas);\n this.width = width / pageWidth;\n this.height = height / pageHeight;\n this.setDims();\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (!this._uiManager.useNewAltTextWhenAddingImage || !this._uiManager.useNewAltTextFlow || this.annotationElementId) {\n div.hidden = false;\n }\n this.#drawBitmap();\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 this.div.setAttribute(\"aria-description\", this.#bitmapFileName);\n }\n if (!this.annotationElementId) {\n this._uiManager.a11yAlert(\"pdfjs-editor-stamp-added-alert\");\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 (ColorScheme.isDarkMode) {\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 #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 = Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = 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() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n width,\n height\n } = this;\n const outputScale = new OutputScale();\n const scaledWidth = Math.ceil(width * parentWidth * outputScale.sx);\n const scaledHeight = Math.ceil(height * parentHeight * 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 #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 static async deserialize(data, parent, uiManager) {\n let initialData = null;\n let missingCanvas = false;\n if (data instanceof StampAnnotationElement) {\n const {\n data: {\n rect,\n rotation,\n id,\n structParent,\n popupRef,\n richText,\n contentsObj,\n creationDate,\n modificationDate\n },\n container,\n parent: {\n page: {\n pageNumber\n }\n },\n canvas\n } = data;\n let bitmapId, bitmap;\n if (canvas) {\n delete data.canvas;\n ({\n id: bitmapId,\n bitmap\n } = uiManager.imageManager.getFromCanvas(container.id, canvas));\n canvas.remove();\n } else {\n missingCanvas = true;\n data._hasNoCanvas = true;\n }\n const altText = (await parent._structTree.getAriaAttributes(`${AnnotationPrefix}${id}`))?.get(\"aria-label\") || \"\";\n initialData = data = {\n annotationType: AnnotationEditorType.STAMP,\n bitmapId,\n bitmap,\n pageIndex: pageNumber - 1,\n rect: rect.slice(0),\n rotation,\n annotationElementId: id,\n id,\n deleted: false,\n accessibilityData: {\n decorative: false,\n altText\n },\n isSvg: false,\n structParent,\n popupRef,\n richText,\n comment: contentsObj?.str || null,\n creationDate,\n modificationDate\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 (missingCanvas) {\n uiManager.addMissingCanvas(data.id, editor);\n editor.#missingCanvas = true;\n } else 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 if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n editor._initialData = initialData;\n if (data.comment) {\n editor.setCommentData(data);\n }\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 = Object.assign(super.serialize(isForCopying), {\n bitmapId: this.#bitmapId,\n isSvg: this.#isSvg\n });\n this.addComment(serialized);\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.serializeAltText(true);\n serialized.isCopy = 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 serialized.id = this.annotationElementId;\n delete serialized.bitmapId;\n return serialized;\n }\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 pageIndex,\n accessibilityData: {\n altText\n }\n } = this._initialData;\n const isSamePageIndex = serialized.pageIndex === pageIndex;\n const isSameAltText = (serialized.accessibilityData?.alt || \"\") === altText;\n return {\n isSame: !this.hasEditedComment && !this._hasBeenMoved && !this._hasBeenResized && isSamePageIndex && isSameAltText,\n isSameAltText\n };\n }\n renderAnnotationElement(annotation) {\n if (this.deleted) {\n annotation.hide();\n return null;\n }\n annotation.updateEdited({\n rect: this.getPDFRect(),\n popup: this.comment\n });\n return null;\n }\n}\n\n;// ./src/display/editor/annotation_editor_layer.js\n\n\n\n\n\n\n\n\n\n\n\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 #isDisabling = false;\n #isEnabling = false;\n #drawingAC = null;\n #focusedElement = null;\n #textLayer = null;\n #textSelectionAC = null;\n #textLayerDblClickAC = null;\n #lastPointerDownTimestamp = -1;\n #uiManager;\n static _initialized = false;\n static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor, SignatureEditor].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(options) {\n this.#uiManager.updateToolbar(options);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n switch (mode) {\n case AnnotationEditorType.NONE:\n this.div.classList.toggle(\"nonEditing\", true);\n this.disableTextSelection();\n this.togglePointerEvents(false);\n this.toggleAnnotationLayerPointerEvents(true);\n this.disableClick();\n return;\n case AnnotationEditorType.INK:\n this.disableTextSelection();\n this.togglePointerEvents(true);\n this.enableClick();\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 classList.toggle(\"nonEditing\", false);\n if (mode === AnnotationEditorType.POPUP) {\n classList.toggle(\"commentEditing\", true);\n } else {\n classList.toggle(\"commentEditing\", false);\n for (const editorType of AnnotationEditorLayer.#editorTypes.values()) {\n classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType);\n }\n }\n this.div.hidden = false;\n }\n hasTextLayer(textLayer) {\n return textLayer === this.#textLayer?.div;\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n cleanUndoStack(type) {\n this.#uiManager.cleanUndoStack(type);\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?.togglePointerEvents(enabled);\n }\n get #allEditorsIterator() {\n return this.#editors.size !== 0 ? this.#editors.values() : this.#uiManager.getEditors(this.pageIndex);\n }\n async enable() {\n this.#isEnabling = true;\n this.div.tabIndex = 0;\n this.togglePointerEvents(true);\n this.div.classList.toggle(\"nonEditing\", false);\n this.#textLayerDblClickAC?.abort();\n this.#textLayerDblClickAC = null;\n const annotationElementIds = new Set();\n for (const editor of this.#allEditorsIterator) {\n editor.enableEditing();\n editor.show(true);\n if (editor.annotationElementId) {\n this.#uiManager.removeChangedExistingAnnotation(editor);\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n const annotationLayer = this.#annotationLayer;\n if (annotationLayer) {\n for (const editable of annotationLayer.getEditableAnnotations()) {\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 this.#isEnabling = false;\n this.#uiManager._eventBus.dispatch(\"editorsrendered\", {\n source: this,\n pageNumber: this.pageIndex + 1\n });\n }\n disable() {\n this.#isDisabling = true;\n this.div.tabIndex = -1;\n this.togglePointerEvents(false);\n this.div.classList.toggle(\"nonEditing\", true);\n if (this.#textLayer && !this.#textLayerDblClickAC) {\n this.#textLayerDblClickAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#textLayerDblClickAC);\n this.#textLayer.div.addEventListener(\"pointerdown\", e => {\n const DBL_CLICK_THRESHOLD = 500;\n const {\n clientX,\n clientY,\n timeStamp\n } = e;\n const lastPointerDownTimestamp = this.#lastPointerDownTimestamp;\n if (timeStamp - lastPointerDownTimestamp > DBL_CLICK_THRESHOLD) {\n this.#lastPointerDownTimestamp = timeStamp;\n return;\n }\n this.#lastPointerDownTimestamp = -1;\n const {\n classList\n } = this.div;\n classList.toggle(\"getElements\", true);\n const elements = document.elementsFromPoint(clientX, clientY);\n classList.toggle(\"getElements\", false);\n if (!this.div.contains(elements[0])) {\n return;\n }\n let id;\n const regex = new RegExp(`^${AnnotationEditorPrefix}[0-9]+$`);\n for (const element of elements) {\n if (regex.test(element.id)) {\n id = element.id;\n break;\n }\n }\n if (!id) {\n return;\n }\n const editor = this.#editors.get(id);\n if (editor?.annotationElementId === null) {\n stopEvent(e);\n editor.dblclick(e);\n }\n }, {\n signal,\n capture: true\n });\n }\n const annotationLayer = this.#annotationLayer;\n const needFakeAnnotation = [];\n if (annotationLayer) {\n const changedAnnotations = new Map();\n const resetAnnotations = new Map();\n for (const editor of this.#allEditorsIterator) {\n editor.disableEditing();\n if (!editor.annotationElementId) {\n needFakeAnnotation.push(editor);\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 for (const editable of annotationLayer.getEditableAnnotations()) {\n const {\n id\n } = editable.data;\n if (this.#uiManager.isDeletedAnnotationElement(id)) {\n editable.updateEdited({\n deleted: true\n });\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 annotationLayer?.updateFakeAnnotations(needFakeAnnotation);\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\") || target.classList.contains(\"textLayerImagePlaceholder\")) && this.#textLayer.div.contains(target)) {\n const {\n isMac\n } = 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 const pointerup = this.pointerup.bind(this);\n this.div.addEventListener(\"pointerup\", pointerup, {\n signal\n });\n this.div.addEventListener(\"pointercancel\", pointerup, {\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 }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.parent && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\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(!this.#isEnabling);\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 getEditorByUID(uid) {\n for (const editor of this.#editors.values()) {\n if (editor.uid === uid) {\n return editor;\n }\n }\n return null;\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 async pasteEditor(options, params) {\n this.updateToolbar(options);\n await this.#uiManager.updateMode(options.mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.#uiManager.getId();\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.#uiManager.getId();\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 get boundingClientRect() {\n return this.div.getBoundingClientRect();\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.boundingClientRect;\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(data = {}) {\n this.createAndAddNewEditor(this.#getCenterPoint(), true, data);\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 } = 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.#currentEditorType?.isDrawer && this.#currentEditorType.supportMultipleDrawings) {\n return;\n }\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n const currentMode = this.#uiManager.getMode();\n if (currentMode === AnnotationEditorType.STAMP || currentMode === AnnotationEditorType.POPUP || currentMode === AnnotationEditorType.SIGNATURE) {\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 } = 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 if (this.#currentEditorType?.isDrawer) {\n this.startDrawingSession(event);\n return;\n }\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n startDrawingSession(event) {\n this.div.focus({\n preventScroll: true\n });\n if (this.#drawingAC) {\n this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);\n return;\n }\n this.#uiManager.setCurrentDrawingSession(this);\n this.#drawingAC = new AbortController();\n const signal = this.#uiManager.combinedSignal(this.#drawingAC);\n this.div.addEventListener(\"blur\", ({\n relatedTarget\n }) => {\n if (relatedTarget && !this.div.contains(relatedTarget)) {\n this.#focusedElement = null;\n this.commitOrRemove();\n }\n }, {\n signal\n });\n this.#currentEditorType.startDrawing(this, this.#uiManager, false, event);\n }\n pause(on) {\n if (on) {\n const {\n activeElement\n } = document;\n if (this.div.contains(activeElement)) {\n this.#focusedElement = activeElement;\n }\n return;\n }\n if (this.#focusedElement) {\n setTimeout(() => {\n this.#focusedElement?.focus();\n this.#focusedElement = null;\n }, 0);\n }\n }\n endDrawingSession(isAborted = false) {\n if (!this.#drawingAC) {\n return null;\n }\n this.#uiManager.setCurrentDrawingSession(null);\n this.#drawingAC.abort();\n this.#drawingAC = null;\n this.#focusedElement = null;\n return this.#currentEditorType.endDrawing(isAborted);\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 commitOrRemove() {\n if (this.#drawingAC) {\n this.endDrawingSession();\n return true;\n }\n return false;\n }\n onScaleChanging() {\n if (!this.#drawingAC) {\n return;\n }\n this.#currentEditorType.onScaleChangingWhenDrawing(this);\n }\n destroy() {\n this.commitOrRemove();\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 for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n }\n async 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 await this.#uiManager.findClonesForPage(this);\n this.div.hidden = this.isEmpty;\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 }\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\n\n\nclass DrawLayer {\n #parent = null;\n #mapping = new Map();\n #toUpdate = new Map();\n static #id = 0;\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, [x, y, width, height]) {\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() {\n const svg = DrawLayer._svgFactory.create(1, 1, true);\n this.#parent.append(svg);\n svg.setAttribute(\"aria-hidden\", true);\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 #updateProperties(element, properties) {\n for (const [key, value] of Object.entries(properties)) {\n if (value === null) {\n element.removeAttribute(key);\n } else {\n element.setAttribute(key, value);\n }\n }\n }\n draw(properties, isPathUpdatable = false, hasClip = false) {\n const id = DrawLayer.#id++;\n const root = this.#createSVG();\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_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n if (isPathUpdatable) {\n this.#toUpdate.set(id, path);\n }\n const clipPathId = hasClip ? this.#createClipPath(defs, pathId) : null;\n const use = DrawLayer._svgFactory.createElement(\"use\");\n root.append(use);\n use.setAttribute(\"href\", `#${pathId}`);\n this.updateProperties(root, properties);\n this.#mapping.set(id, root);\n return {\n id,\n clipPathId: `url(#${clipPathId})`\n };\n }\n drawOutline(properties, mustRemoveSelfIntersections) {\n const id = DrawLayer.#id++;\n const root = this.#createSVG();\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_${id}`;\n path.setAttribute(\"id\", pathId);\n path.setAttribute(\"vector-effect\", \"non-scaling-stroke\");\n let maskId;\n if (mustRemoveSelfIntersections) {\n const mask = DrawLayer._svgFactory.createElement(\"mask\");\n defs.append(mask);\n maskId = `mask_${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.updateProperties(root, properties);\n this.#mapping.set(id, root);\n return id;\n }\n finalizeDraw(id, properties) {\n this.#toUpdate.delete(id);\n this.updateProperties(id, properties);\n }\n updateProperties(elementOrId, properties) {\n if (!properties) {\n return;\n }\n const {\n root,\n bbox,\n rootClass,\n path\n } = properties;\n const element = typeof elementOrId === \"number\" ? this.#mapping.get(elementOrId) : elementOrId;\n if (!element) {\n return;\n }\n if (root) {\n this.#updateProperties(element, root);\n }\n if (bbox) {\n DrawLayer.#setBox(element, bbox);\n }\n if (rootClass) {\n const {\n classList\n } = element;\n for (const [className, value] of Object.entries(rootClass)) {\n classList.toggle(className, value);\n }\n }\n if (path) {\n const defs = element.firstElementChild;\n const pathElement = defs.firstElementChild;\n this.#updateProperties(pathElement, path);\n }\n }\n updateParent(id, layer) {\n if (layer === this) {\n return;\n }\n const root = this.#mapping.get(id);\n if (!root) {\n return;\n }\n layer.#parent.append(root);\n this.#mapping.delete(id);\n layer.#mapping.set(id, root);\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/display/text_layer_images.js\n\n\n\nfunction percentage(value) {\n return `${(value * 100).toFixed(2)}%`;\n}\nclass TextLayerImages {\n #coordinates = [];\n #coordinatesByElement = new Map();\n #getPageCanvas = null;\n #minSize = 0;\n #pageWidth = 0;\n #pageHeight = 0;\n static #activeImage = null;\n constructor(minSize, coordinates, viewport, getPageCanvas) {\n this.#minSize = minSize;\n this.#coordinates = coordinates;\n this.#pageWidth = viewport.rawDims.pageWidth;\n this.#pageHeight = viewport.rawDims.pageHeight;\n this.#getPageCanvas = getPageCanvas;\n }\n render() {\n const container = document.createElement(\"div\");\n container.className = \"textLayerImages\";\n for (let i = 0; i < this.#coordinates.length; i += 6) {\n const el = this.#createImagePlaceholder(this.#coordinates.subarray(i, i + 6));\n if (el) {\n container.append(el);\n }\n }\n container.addEventListener(\"contextmenu\", event => {\n if (!(event.target instanceof HTMLCanvasElement)) {\n return;\n }\n const imgElement = event.target;\n const coords = this.#coordinatesByElement.get(imgElement);\n if (!coords) {\n return;\n }\n const activeImage = TextLayerImages.#activeImage?.deref();\n if (activeImage === imgElement) {\n return;\n }\n if (activeImage) {\n activeImage.width = 0;\n activeImage.height = 0;\n }\n TextLayerImages.#activeImage = new WeakRef(imgElement);\n const {\n inverseTransform,\n x1,\n y1,\n width,\n height\n } = coords;\n const pageCanvas = this.#getPageCanvas();\n const imageX1 = Math.ceil(x1 * pageCanvas.width);\n const imageY1 = Math.ceil(y1 * pageCanvas.height);\n const imageX2 = Math.floor((x1 + width / this.#pageWidth) * pageCanvas.width);\n const imageY2 = Math.floor((y1 + height / this.#pageHeight) * pageCanvas.height);\n imgElement.width = imageX2 - imageX1;\n imgElement.height = imageY2 - imageY1;\n const ctx = imgElement.getContext(\"2d\");\n ctx.setTransform(...inverseTransform);\n ctx.translate(-imageX1, -imageY1);\n ctx.drawImage(pageCanvas, 0, 0);\n });\n return container;\n }\n #createImagePlaceholder([x1, y1, x2, y2, x3, y3]) {\n const width = Math.hypot((x3 - x1) * this.#pageWidth, (y3 - y1) * this.#pageHeight);\n const height = Math.hypot((x2 - x1) * this.#pageWidth, (y2 - y1) * this.#pageHeight);\n if (width < this.#minSize || height < this.#minSize) {\n return null;\n }\n const transform = [(x3 - x1) * this.#pageWidth / width, (y3 - y1) * this.#pageHeight / width, (x2 - x1) * this.#pageWidth / height, (y2 - y1) * this.#pageHeight / height, 0, 0];\n const inverseTransform = Util.inverseTransform(transform);\n const imgElement = document.createElement(\"canvas\");\n imgElement.className = \"textLayerImagePlaceholder\";\n imgElement.width = 0;\n imgElement.height = 0;\n Object.assign(imgElement.style, {\n opacity: 0,\n position: \"absolute\",\n left: percentage(x1),\n top: percentage(y1),\n width: percentage(width / this.#pageWidth),\n height: percentage(height / this.#pageHeight),\n transformOrigin: \"0% 0%\",\n transform: `matrix(${transform.join(\",\")})`\n });\n this.#coordinatesByElement.set(imgElement, {\n inverseTransform,\n width,\n height,\n x1,\n y1\n });\n return imgElement;\n }\n}\n\n;// ./src/pdf.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{\n globalThis._pdfjsTestingUtils = {\n HighlightOutliner: HighlightOutliner\n };\n}\nglobalThis.pdfjsLib = {\n AbortException: AbortException,\n AnnotationEditorLayer: AnnotationEditorLayer,\n AnnotationEditorParamsType: AnnotationEditorParamsType,\n AnnotationEditorType: AnnotationEditorType,\n AnnotationEditorUIManager: AnnotationEditorUIManager,\n AnnotationLayer: AnnotationLayer,\n AnnotationMode: AnnotationMode,\n AnnotationType: AnnotationType,\n applyOpacity: applyOpacity,\n build: build,\n ColorPicker: ColorPicker,\n createValidAbsoluteUrl: createValidAbsoluteUrl,\n CSSConstants: CSSConstants,\n DOMSVGFactory: DOMSVGFactory,\n DrawLayer: DrawLayer,\n FeatureTest: FeatureTest,\n fetchData: fetchData,\n findContrastColor: findContrastColor,\n getDocument: getDocument,\n getFilenameFromUrl: getFilenameFromUrl,\n getPdfFilenameFromUrl: getPdfFilenameFromUrl,\n getRGB: getRGB,\n getRGBA: getRGBA,\n getUuid: getUuid,\n getXfaPageViewport: getXfaPageViewport,\n GlobalWorkerOptions: GlobalWorkerOptions,\n ImageKind: ImageKind,\n InvalidPDFException: InvalidPDFException,\n isDataScheme: isDataScheme,\n isPdfFile: isPdfFile,\n isValidExplicitDest: isValidExplicitDest,\n makeArr: makeArr,\n makeMap: makeMap,\n makeObj: makeObj,\n MathClamp: MathClamp,\n noContextMenu: noContextMenu,\n normalizeUnicode: normalizeUnicode,\n OPS: OPS,\n OutputScale: OutputScale,\n PasswordResponses: PasswordResponses,\n PDFDataRangeTransport: PDFDataRangeTransport,\n PDFDateString: PDFDateString,\n PDFWorker: PDFWorker,\n PermissionFlag: PermissionFlag,\n PixelsPerInch: PixelsPerInch,\n RenderingCancelledException: RenderingCancelledException,\n renderRichText: renderRichText,\n ResponseException: ResponseException,\n setLayerDimensions: setLayerDimensions,\n shadow: shadow,\n SignatureExtractor: SignatureExtractor,\n stopEvent: stopEvent,\n SupportedImageMimeTypes: SupportedImageMimeTypes,\n TextLayer: TextLayer,\n TextLayerImages: TextLayerImages,\n TouchManager: TouchManager,\n updateUrlHash: updateUrlHash,\n Util: Util,\n VerbosityLevel: VerbosityLevel,\n version: version,\n XfaLayer: XfaLayer\n};\n\nexport { AbortException, AnnotationEditorLayer, AnnotationEditorParamsType, AnnotationEditorType, AnnotationEditorUIManager, AnnotationLayer, AnnotationMode, AnnotationType, CSSConstants, ColorPicker, DOMSVGFactory, DrawLayer, FeatureTest, GlobalWorkerOptions, ImageKind, InvalidPDFException, MathClamp, OPS, OutputScale, PDFDataRangeTransport, PDFDateString, PDFWorker, PasswordResponses, PermissionFlag, PixelsPerInch, RenderingCancelledException, ResponseException, SignatureExtractor, SupportedImageMimeTypes, TextLayer, TextLayerImages, TouchManager, Util, VerbosityLevel, XfaLayer, applyOpacity, build, createValidAbsoluteUrl, fetchData, findContrastColor, getDocument, getFilenameFromUrl, getPdfFilenameFromUrl, getRGB, getRGBA, getUuid, getXfaPageViewport, isDataScheme, isPdfFile, isValidExplicitDest, makeArr, makeMap, makeObj, noContextMenu, normalizeUnicode, renderRichText, setLayerDimensions, shadow, stopEvent, updateUrlHash, version };\n\n//# sourceMappingURL=pdf.mjs.map"],"names":["__webpack_modules__","module","__unused_webpack_exports","__webpack_require__","isCallable","tryToString","$TypeError","argument","isPossiblePrototype","$String","has","it","WeakMapHelpers","weakmap","set","remove","key","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","isPrototypeOf","Prototype","isObject","classof","globalThis","uncurryThisAccessor","ArrayBuffer","TypeError","O","NATIVE_ARRAY_BUFFER","arrayBufferByteLength","DataView","isDetached","uncurryThis","toIndex","notDetached","detachTransferable","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","max","min","ArrayBufferPrototype","DataViewPrototype","slice","isResizable","maxByteLength","getInt8","setInt8","arrayBuffer","newLength","preserveResizability","byteLength","newByteLength","fixedLength","newBuffer","options","a","b","copyLength","i","DESCRIPTORS","hasOwn","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","getPrototypeOf","setPrototypeOf","uid","InternalStateModule","enforceInternalState","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG_REQUIRED","NAME","Constructor","TypedArrayConstructorsList","BigIntArrayConstructorsList","isView","klass","getTypedArrayConstructor","proto","state","isTypedArray","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","lengthOfArrayLike","list","$length","index","length","result","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","value","isArray","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","error","commonAlphabet","base64Alphabet","base64UrlAlphabet","inverse","characters","anObject","iteratorClose","iterator","fn","ENTRIES","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","tag","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","fails","F","done","createPropertyDescriptor","object","bitmap","makeBuiltIn","name","descriptor","defineGlobalProperty","simple","src","getBuiltInNodeModule","$ArrayBuffer","$MessageChannel","detach","WorkerThreads","channel","buffer","$detach","transferable","document","EXISTS","MAX_SAFE_INTEGER","ENVIRONMENT","navigator","userAgent","process","Deno","versions","v8","match","version","userAgentStartsWith","string","$Error","replace","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","stack","dropEntries","copyConstructorProperties","isForced","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","exec","NATIVE_BIND","FunctionPrototype","apply","call","aCallable","bind","that","test","getDescriptor","PROPER","CONFIGURABLE","method","uncurryThisWithBind","alphabet","IS_NODE","aFunction","namespace","obj","getIteratorDirect","getIteratorMethod","stringHandling","getMethod","isNullOrUndefined","Iterators","ITERATOR","usingIterator","iteratorMethod","V","P","func","toIntegerOrInfinity","INVALID_SIZE","$RangeError","SetRecord","intSize","numSize","check","toObject","hasOwnProperty","getBuiltIn","createElement","split","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","get","enforce","getterFor","TYPE","metadata","STATE","documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","record","ITERATOR_INSTEAD_OF_RECORD","next","step","isArrayIteratorMethod","getIterator","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","$iterator","callFn","iters","kind","innerResult","innerError","defineBuiltIns","IteratorPrototype","createIterResultObject","iteratorCloseAll","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","NORMAL","THROW","setInternalState","createIteratorProxyPrototype","returnMethod","WrapForValidIteratorPrototype","IteratorHelperPrototype","nextHandler","RETURN_HANDLER_RESULT","IteratorProxy","methodName","METHOD_NAME","ExpectedError","Iterator","CLOSED","IS_PURE","BUGGY_SAFARI_ITERATORS","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","toLength","CONFIGURABLE_FUNCTION_NAME","inspectSource","join","CONFIGURABLE_LENGTH","TEMPLATE","MapPrototype","ceil","floor","x","n","unsafeInt","raw","PromiseCapability","resolve","reject","$$resolve","$$reject","$default","definePropertiesModule","enumBugKeys","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","NullProtoObject","Properties","__unused_webpack_module","exports","V8_PROTOTYPE_DEFINE_BUG","objectKeys","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","constructor","indexOf","push","names","$propertyIsEnumerable","NASHORN_BUG","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","setter","input","pref","val","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","concat","getOwnPropertySymbols","$SyntaxError","$parseInt","fromCharCode","at","codePoints","IS_4_HEX_DIGITS","IS_C0_CONTROL_CODE","unterminated","chr","twoChars","fourHexDigits","SetHelpers","iterate","Set","add","aSet","clone","size","getSetRecord","iterateSet","iterateSimple","other","otherRec","e","SetPrototype","forEach","interruptible","createSetLike","createSetLikeWithInfinitySize","callback","baseSet","setLike","keysIter","SHARED","V8","V8_VERSION","symbol","integer","toPrimitive","prim","number","IndexedObject","trunc","len","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","id","postfix","anObjectOrUndefined","aString","base64Map","getAlphabetOption","SyntaxError","skipAsciiWhitespace","decodeBase64Chunk","chunk","throwOnExtraBits","chunkLength","triplet","chunkBytes","writeBytes","bytes","elements","written","elementsLength","into","maxLength","lastChunkHandling","stringLength","read","remainingBytes","Uint8Array","stringMatch","segments","url","params","params2","NATIVE_SYMBOL","passed","required","WeakMapPrototype","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","$","$transfer","$includes","addToUnscopables","BROKEN_ON_SPARSE","BROKEN_ON_SPARSE_WITH_FROM_INDEX","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","item","argCount","anInstance","createProperty","CONSTRUCTOR","NativeIterator","IteratorConstructor","defineIteratorPrototypeAccessor","notANaN","toPositiveInteger","createIteratorProxy","iteratorHelperThrowsOnInvalidIterator","iteratorHelperWithoutClosingOnEarlyError","DROP_WITHOUT_THROWING_ON_INVALID_ITERATOR","dropWithoutClosingOnEarlyError","limit","remaining","everyWithoutClosingOnEarlyError","predicate","counter","callWithSafeIterationClosing","FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR","filterWithoutClosingOnEarlyError","findWithoutClosingOnEarlyError","getIteratorFlattenable","throwsOnIteratorWithoutReturn","v","FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR","flatMapWithoutClosingOnEarlyError","mapper","inner","forEachWithoutClosingOnEarlyError","MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR","mapWithoutClosingOnEarlyError","someWithoutClosingOnEarlyError","TAKE_WITHOUT_THROWING_ON_INVALID_ITERATOR","takeWithoutClosingOnEarlyError","parseJSONString","JSON","Number","nativeParse","enumerableOwnProperties","IS_DIGIT","IS_NON_ZERO_DIGIT","IS_NUMBER_START","IS_WHITESPACE","PRIMITIVE","OBJECT","$parse","reviver","context","Context","root","endIndex","internalize","holder","node","unmodified","elementRecordsLen","nodeIsArray","nodes","internalizeProperty","Node","end","nextIndex","fork","type","start","expectKeypair","closed","expectElement","array","parsed","startIndex","fractionStartIndex","exponentStartIndex","keyword","regex","j","NO_SOURCE_SUPPORT","PROPER_BASE_PARSE","text","isRawJSON","arraySlice","NATIVE_RAW_JSON","$stringify","charAt","charCodeAt","numberToString","surrogates","leadingSurrogates","trailingSurrogates","MARK","MARK_LENGTH","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithProperSymbolsConversion","replacer","args","$replacer","getReplacerFunction","fixIllFormedJSON","offset","prev","rawLength","element","keysLength","space","replacerFunction","rawStrings","json","MapHelpers","callbackfn","hasKey","$Infinity","$NaN","abs","pow","POW_2_1023","MAX_DOUBLE","MAX_ULP","NOT_A_NUMBER","MINUS_INFINITY","PLUS_INFINITY","MINUS_ZERO","FINITE","twosum","y","hi","lo","items","numbers","count","partials","overflow","sum","tmp","actuallyUsedPartials","sign","newPromiseCapabilityModule","perform","Promise","ACCEPT_ARGUMENTS","promiseCapability","difference","setMethodAcceptSetLike","SET_LIKE_INCORRECT_BEHAVIOR","intersection","INCORRECT","isDisjointFrom","isSubsetOf","isSupersetOf","symmetricDifference","setMethodGetKeysBeforeCloning","union","ArrayBufferViewCore","isBigIntArray","toBigInt","PROPER_ORDER","THROW_ON_NEGATIVE_FRACTIONAL_INDEX","relativeIndex","actualIndex","numericValue","A","k","arrayFromConstructorAndList","$fromBase64","INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS","anUint8Array","$fromHex","throwsOnLengthTrackingView","rab","omitPadding","shift","$Array","hex","aWeakMap","aWeakKey","inheritIfRequired","normalizeStringArgument","DOMExceptionConstants","clearErrorStack","DOM_EXCEPTION","Error","NativeDOMException","$DOMException","DOMExceptionPrototype","argumentsLength","message","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","validateArgumentsLength","$URLSearchParams","URLSearchParamsPrototype","append","$delete","$value","entries","entriesLength","entry","getAll","$has","values","USE_NATIVE_URL","URL","urlString","base","__webpack_module_cache__","moduleId","cachedModule","definition","prop","isNodeJS","BBOX_INIT","F32_BBOX_INIT","FONT_IDENTITY_MATRIX","LINE_FACTOR","RenderingIntentFlag","AnnotationMode","AnnotationEditorPrefix","AnnotationEditorType","AnnotationEditorParamsType","PermissionFlag","TextRenderingMode","ImageKind","AnnotationType","AnnotationBorderStyleType","VerbosityLevel","OPS","DrawOPS","PasswordResponses","verbosity","setVerbosityLevel","level","getVerbosityLevel","info","msg","warn","unreachable","assert","cond","_isValidProtocol","createValidAbsoluteUrl","baseUrl","dots","stringToUTF8String","absoluteUrl","updateUrlHash","hash","allowRel","res","stripPath","str","shadow","nonSerializable","BaseException","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","status","missing","FormatError","AbortException","bytesToString","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","stringToBytes","isLittleEndian","buffer8","FeatureTest","platform","_a","_b","_Util_static","getExtremumOnCurve_fn","getExtremum_fn","Util","r","g","dm","transform","minMax","m1","m2","m","md","p","pos","p0","p1","m0","m3","m4","m5","pI","pI1","d","rect","output","r0","r1","r2","r3","a0","a2","a1","a3","b0","b2","b1","b3","m1r0","m1r2","m2r1","m2r3","matrix","c","first","second","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","__privateMethod","t","mt","tt","ttt","delta","sqrtDelta","__privateAdd","NormalizeRegex","NormalizationMap","normalizeUnicode","_","p2","getUuid","buf","AnnotationPrefix","_isValidExplicitDest","validRef","validName","dest","page","zoom","argsLen","allowNull","makeArr","makeMap","makeObj","ac","signal","MathClamp","XfaText","xfa","walk","child","XfaLayer","storage","intent","storedData","event","option","linkService","attributes","isHTMLAnchorElement","parameters","rootHtml","isNotForRichText","rootDiv","textDivs","parent","childHtml","SVG_NS","_PixelsPerInch","__publicField","PixelsPerInch","fetchData","isValidFetchUrl","response","request","PageViewport","viewBox","userUnit","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","width","height","dims","topLeft","bottomRight","RenderingCancelledException","extraDelay","isDataScheme","ii","isPdfFile","filename","getFilenameFromUrl","getPdfFilenameFromUrl","defaultFilename","newURL","decode","decoded","pdfRegex","getLast","hashFilename","_started","StatTimer","__privateGet","longest","noContextMenu","stopEvent","deprecated","_regex","PDFDateString","__privateSet","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","getXfaPageViewport","xfaPage","getRGBA","color","parts","getRGB","rgba","getColorValues","colors","span","computedColor","getCurrentTransform","ctx","f","getCurrentTransformInverse","setLayerDimensions","div","viewport","mustFlip","mustRotate","pageWidth","pageHeight","style","useRound","w","widthStr","heightStr","OutputScale","pixelRatio","maxPixels","maxDim","capAreaFactor","maxAreaScale","maxWidthScale","maxHeightScale","maxScale","winPixels","SupportedImageMimeTypes","ColorScheme","CSSConstants","applyOpacity","opacity","white","RGBToHSL","rgb","l","HSLToRGB","hsl","h","computeLuminance","contrastRatio","hsl1","hsl2","lum1","lum2","contrastCache","findContrastColor","baseColor","fixedColor","cachedValue","baseHSL","fixedHSL","isFixedColorDark","minContrast","PRECISION","mid","renderRichText","dir","className","container","fragment","lines","line","makePathFromDrawOPS","path","_toolbar","_colorPicker","_editor","_buttons","_altText","_comment","_commentButtonDivider","_signatureDescriptionButton","_l10nRemove","_EditorToolbar_static","pointerDown_fn","_EditorToolbar_instances","focusIn_fn","focusOut_fn","addListenersToElement_fn","divider_get","_EditorToolbar","editor","editToolbar","buttons","position","editorType","_uiManager","button","altText","comment","beforeElement","divider","colorPicker","signatureManager","tool","beforeSelector","description","EditorToolbar","_FloatingToolbar_instances","render_fn","getLastPoint_fn","makeButton_fn","FloatingToolbar","uiManager","boxes","isLTR","lastY","lastX","box","buttonClass","l10nId","labelL10nId","clickHandler","bindEvents","_pointerId","_pointerIds","_moveTimestamp","_pointerType","_CurrentPointers","pointerId","pointerType","timeStamp","CurrentPointers","_id","IdManager","__privateWrapper","_baseId","_cache","_ImageManager_instances","get_fn","_ImageManager","svg","image","promise","file","lastModified","blobPromise","blob","canvas","offscreen","rawData","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","ImageManager","_commands","_locked","_maxSize","_position","CommandManager","maxSize","cmd","undo","post","mustExec","overwriteIfSameType","keepUndo","save","_KeyboardManager_instances","serialize_fn","KeyboardManager","callbacks","isMac","isMacKey","self","bubbles","checker","_ColorManager","RGB","ColorManager","_abortController","_activeEditor","_allEditableAnnotations","_allEditors","_allLayers","_savedAllLayers","_altTextManager","_annotationStorage","_changedExistingAnnotations","_commandManager","_commentManager","_copyPasteAC","_currentDrawingSession","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_enableHighlightFloatingButton","_enableUpdatedAddImage","_enableNewAltTextWhenAddingImage","_filterFactory","_focusMainContainerTimeoutId","_focusManagerAC","_highlightColors","_highlightWhenShiftUp","_floatingToolbar","_idManager","_isEnabled","_isPointerDown","_isWaiting","_keyboardManagerAC","_lastActiveElement","_mainHighlightColorPicker","_missingCanvases","_mlManager","_mode","_selectedEditors","_selectedTextNode","_signatureManager","_pageColors","_showAllStates","_pdfDocument","_previousStates","_translation","_translationTimeoutId","_container","_viewer","_viewerAlert","_updateModeCapability","_AnnotationEditorUIManager_instances","getAnchorElementForSelection_fn","getLayerForTextLayer_fn","beforeUnload_fn","displayFloatingToolbar_fn","selectionChange_fn","onSelectEnd_fn","addSelectionListener_fn","addFocusManager_fn","removeFocusManager_fn","addKeyboardManager_fn","removeKeyboardManager_fn","addCopyPasteListeners_fn","removeCopyPasteListeners_fn","addDragAndDropListeners_fn","dispatchUpdateStates_fn","dispatchUpdateUI_fn","enableAll_fn","disableAll_fn","addEditorToLayer_fn","lastSelectedEditor_get","isEmpty_fn","selectEditors_fn","_AnnotationEditorUIManager","viewer","viewerAlert","altTextManager","commentManager","eventBus","pdfDocument","pageColors","highlightColors","enableHighlightFloatingButton","enableUpdatedAddImage","enableNewAltTextWhenAddingImage","mlManager","editorUndoBar","supportsPinchToZoom","evt","arrowChecker","textInputChecker","_self","small","big","_c","_d","_e","_f","_g","_h","_i","layer","pair","map","hasHCM","isNameForHCM","colorName","firstTime","posX","posY","pageIndex","savedData","isSelected","visibility","pageNumber","onEditorsRendered","mode","layerX","layerY","pagesRotation","methodOfCreation","selection","anchorNode","anchorOffset","focusNode","focusOffset","textLayer","isNoneMode","annotationId","storedValue","messageId","activeElement","lastEditor","lastActiveElement","editors","serialized","clipboardData","ex","newEditors","deserializedEditor","oldPageIndex","newPageIndex","promises","isEditing","types","editId","isFromUser","isFromKeyboard","mustEnterInEditMode","editComment","editorClass","elementIds","allComments","annotationElementId","hasComment","deleted","annotation","popupRef","contentsObj","visible","updateButton","mustWait","ed","drawingEditor","noCommit","totalX","totalY","TIME_TO_WAIT","mustBeAddedInUndoStack","move","newX","newY","savedX","savedY","savedPageIndex","tx","ty","parentWidth","parentHeight","rotator","range","editorId","currentLayer","activeLayer","pointerup","AnnotationEditorUIManager","_altTextDecorative","_altTextButton","_altTextButtonLabel","_altTextTooltip","_altTextTooltipTimeout","_altTextWasFromKeyBoard","_badge","_guessedText","_textWithDisclaimer","_useNewAltTextFlow","_l10nNewButton","_AltText_instances","label_get","setState_fn","_AltText","l10n","label","onClick","guessedText","badge","isForCopying","decorative","textWithDisclaimer","cancel","enabled","tooltip","DELAY_TO_SHOW_TOOLTIP","AltText","_commentStandaloneButton","_commentToolbarButton","_commentWasFromKeyBoard","_initialText","_richText","_text","_date","_deleted","_popupPosition","_Comment_instances","Comment","parentX","parentY","selected","hasPopup","parentDimensions","richText","date","isStandalone","_isPinching","_isPinchingStopped","_isPinchingDisabled","_onPinchStart","_onPinching","_onPinchEnd","_pointerDownAC","_signal","_touchInfo","_touchManagerAC","_touchMoveAC","_TouchManager_instances","onTouchStart_fn","onTouchMove_fn","onTouchEnd_fn","_TouchManager","isPinchingDisabled","isPinchingStopped","onPinchStart","onPinching","onPinchEnd","pointerDownAC","opts","cancelPointerDown","opt","onTouchEnd","touch0","touch1","screen0X","screen0Y","screen1X","screen1Y","touchInfo","pTouch0X","pTouch0Y","pTouch1X","pTouch1Y","prevGapX","prevGapY","currGapX","currGapY","distance","pDistance","origin","TouchManager","_accessibilityData","_allResizerDivs","_disabled","_dragPointerId","_dragPointerType","_resizersDiv","_lastPointerCoords","_savedDimensions","_fakeAnnotation","_focusAC","_focusedResizerName","_hasBeenClicked","_initialRect","_isEditing","_isInEditMode","_isResizerEnabledForKeyboard","_moveInDOMTimeout","_prevDragX","_prevDragY","_telemetryTimeouts","_touchManager","_isDraggable","_zIndex","_AnnotationEditor_instances","translate_fn","_AnnotationEditor_static","rotatePoint_fn","getRotationMatrix_fn","createResizers_fn","resizerPointerdown_fn","resize_fn","addResizeToUndoStack_fn","resizerPointermove_fn","touchPinchStartCallback_fn","touchPinchCallback_fn","touchPinchEndCallback_fn","selectOnPointerEvent_fn","setUpDragSession_fn","addFocusListeners_fn","resizerKeydown_fn","resizerBlur_fn","resizerFocus_fn","setResizerTabIndex_fn","stopResizing_fn","_AnnotationEditor","pageX","pageY","resize","fakeEditor","FakeEditor","_type","_value","mime","baseX","baseY","bx","by","_borderLineWidth","parentScale","toolbarButtons","editToolbarDiv","trY","blX","blY","trX","contents","shiftX","shiftY","creationDate","modificationDate","focus","top","left","bottom","right","innerHeight","innerWidth","_angle","timeout","children","boundResizerKeydown","boundResizerBlur","firstPosition","nextFirstPosition","action","annotationLayer","firstElementChild","angle","classes","savedDraggable","savedParentCursor","savedCursor","pointerUpCallback","savedWidth","savedHeight","newWidth","newHeight","minWidth","minHeight","rotationMatrix","transf","invRotationMatrix","invTransf","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","screenX","screenY","lastScreenX","lastScreenY","oldDiag","_origin","prevDistance","factor","transfCenterPoint","newTransfCenterPoint","hasDraggingStarted","cancelDrag","AnnotationEditor","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","SerializableEmpty","_modified","_modifiedIds","_editorsMap","_storage","_AnnotationStorage_instances","setModified_fn","AnnotationStorage","defaultValue","modified","PrintAnnotationStorage","transfer","hasBitmap","stats","typeToEditor","numberOfEditedComments","numberOfDeletedComments","editorStats","counters","ids","_serializable","serializable","FORCED_DEPENDENCY_LABEL","expandBBox","minX","minY","maxX","maxY","EMPTY_BBOX","_bboxes","_coords","BBoxReader","bboxes","coords","ensureDebugMetadata","_baseTransformStack","_clipBox","_pendingBBox","_canvasWidth","_canvasHeight","_bboxesCoords","_CanvasBBoxTracker_instances","initializeBBoxes_fn","CanvasBBoxTracker","operationsCount","opIdx","onSavePopped","previous","lastSave","idx","clipBox","bbox","preserve","dependencyLists","dependencies","depIdx","depName","fallbackIdx","font","getMeasure","dependencyName","dependencyNames","oldBBoxes","_simple","_incremental","_namedDependencies","_pendingDependencies","_fontBBoxTrustworthy","_debugMetadata","_recordDebugMetadataDepenencyAfterRestore","_bboxTracker","CanvasDependencyTracker","bboxTracker","recordDebugMetadata","dep","fontBBox","isBBoxTrustworthy","computedBBox","measure","pendingDependencies","incremental","needsCleanup","deps","_dependencyTracker","_opIdx","_ignoreBBoxes","_nestingLevel","_savesLevel","_CanvasNestedDependencyTracker","dependencyTracker","ignoreBBoxes","CanvasNestedDependencyTracker","Dependencies","_capacity","_count","_CoordsArray","_CanvasImagesTracker","newCoords","finalBBox","rotationAngle","sin","cos","finalBBoxWidth","finalBBoxHeight","sin2","cos2","cosSin","denom","CanvasImagesTracker","_systemFonts","FontLoader","ownerDocument","styleElement","nativeFontFace","rule","styleSheet","disableFontFace","_inspectFont","loadedName","fontFace","hasFonts","completeRequest","loadingRequests","otherRequest","testFont","int32","string32","spliceString","s","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","_fontData","FontFaceObject","translatedData","inspectFont","charProcOperatorList","extra","css","objs","character","objId","cmds","CSS_FONT_INFO","SYSTEM_FONT_INFO","_FONT_INFO","FONT_INFO","PATTERN_INFO","_buffer","_decoder","_view","_CssFontInfo_instances","readString_fn","CssFontInfo","_SystemFontInfo_instances","SystemFontInfo","styleLength","weightLength","weight","_FontInfo_instances","readBoolean_fn","readNumber_fn","readArray_fn","getDataOffsets_fn","FontInfo","stringsLength","systemFontInfoLength","cssFontInfoLength","cssFontInfoData","systemFontInfoData","byteOffset","bitOffset","arrLen","lookupName","increment","arr","PatternInfo","dataView","hasBBox","hasBackground","nCoord","nColor","nStop","stops","background","shadingType","bounds","FontPathInfo","getUrlProp","getDataProp","getFactoryUrlProp","isRefProxy","isNameProxy","isValidExplicitDest","_listeners","_deferred","LoopbackPort","listener","rmAbort","onAbort","CallbackKind","StreamKind","onFn","wrapReason","_messageAC","_MessageHandler_instances","onMessage_fn","createStreamSink_fn","processStreamMessage_fn","deleteStreamController_fn","MessageHandler","sourceName","targetName","comObj","actionName","handler","ah","transfers","callbackId","capability","queueingStrategy","streamId","controller","startCapability","pullCapability","reason","cancelCapability","streamSink","lastDesiredSize","streamController","dataReason","_errorStr","BaseBinaryDataFactory","cMapUrl","standardFontDataUrl","wasmUrl","DOMBinaryDataFactory","_enableHWA","BaseCanvasFactory","enableHWA","canvasAndContext","DOMCanvasFactory","BaseFilterFactory","maps","fgColor","bgColor","filterName","newFgColor","newBgColor","keepHCM","_baseUrl","__cache","__defs","_docId","_document","__hcmCache","_DOMFilterFactory_instances","cache_get","hcmCache_get","defs_get","createTables_fn","createUrl_fn","addLuminosityConversion_fn","addGrayConversion_fn","createFilter_fn","appendFeFunc_fn","addTransferMapConversion_fn","addTransferMapAlphaConversion_fn","getRGB_fn","DOMFilterFactory","docId","tableR","tableG","tableB","filter","fgRGB","bgRGB","table","getSteps","tableA","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","newStart","newStep","mapR","mapG","mapB","bufferR","bufferG","bufferB","feColorMatrix","feComponentTransfer","feFunc","rTable","gTable","bTable","aTable","require","node_utils_fetchData","NodeFilterFactory","NodeCanvasFactory","NodeBinaryDataFactory","MESH_WGSL","_initPromise","_device","_meshPipeline","_preferredFormat","_WebGPU_instances","initGPU_fn","WebGPU","shaderModule","posData","colData","vertexCount","backgroundColor","paddedWidth","paddedHeight","borderSize","device","scaleX","scaleY","posBuffer","colBuffer","uniformBuffer","bindGroup","gpuCtx","clearValue","commandEncoder","renderPass","adapter","_webGPU","initGPU","isGPUReady","loadMeshShader","drawMeshWithGPU","PathType","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","IR","dist","grad","firstPoint","secondPoint","colorStop","reversedStops","owner","pathType","pattern","precision","n1","n2","ps","ownerBBox","tmpCanvas","tmpCtx","domMatrix","drawTriangle","p3","c1","c2","c3","rowSize","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","MeshShadingPattern","combinedScale","canvasFactory","boundsWidth","boundsHeight","matrixScaleX","matrixScaleY","temporaryPatternCanvas","DummyShadingPattern","getShadingPattern","PaintType","_TilingPattern","canvasGraphicsFactory","baseTransform","absXStep","absYStep","nXFirst","nXLast","nYFirst","nYLast","clippedBBox","inv","dimx","dimy","graphics","useEOFill","bboxWidth","bboxHeight","combinedScaleX","combinedScaleY","xstep","ystep","canvasWidth","canvasHeight","redrawHorizontally","redrawVertically","dimx2","dimy2","xSize","ySize","tmpCanvas2","tmpCtx2","jj","realOutputSize","clip","paintType","fillStyle","strokeStyle","TilingPattern","convertBlackAndWhiteToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","destPos","elem","MIN_FONT_SIZE","MAX_FONT_SIZE","EXECUTION_TIME","EXECUTION_STEPS","FULL_CHUNK_HEIGHT","SCALE_MATRIX","XY","mirrorContextOperations","destCtx","cp1x","cp1y","cp2x","cp2y","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","CanvasExtraState","xStrokePad","yStrokePad","intersect","putBinaryImageData","imgData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","thisChunkHeight","elemsInThisChunk","dest32","dest32DataLength","fullSrcDiff","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","properties","resetCtxToDefault","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics_instances","restoreInitialState_fn","drawFilter_fn","getScaledPath_fn","_CanvasGraphics","canvasCtx","commonObjs","filterFactory","optionalContentConfig","markedContentStack","annotationCanvasMap","imagesTracker","fallback","transparency","savedFillStyle","transparentCanvas","operatorList","executionStartIdx","continueCallback","stepper","operationsFilter","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","steps","fnId","fnArgs","depObjId","objsPool","cache","img","inverseTransform","widthScale","heightScale","scaleSteps","ws","hs","pw","ph","nw","nh","readEntry","writeEntry","paintWidth","paintHeight","fillColor","isPatternFill","currentTransform","cacheKey","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","drawnWidth","drawnHeight","fillCanvas","fillCtx","scaledEntry","scaleResult","dashArray","dashPhase","flatness","states","smask","inSMaskMode","subtype","backdrop","transferMap","hasFilter","preparedEntry","srcEntry","sCtx","pCtx","scratchCanvas","dirtyBox","suspendedCtx","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","maskOffsetX","maskOffsetY","maskX","maskY","old","op","outerExtraSize","tilingDims","consumePath","strokeColor","newPath","needRestore","tileIdx","paths","fontSize","spacing","leading","fontRefName","fontObj","typeface","bold","italic","browserFontSize","rise","patternFillTransform","patternStrokeTransform","textRenderingMode","fillStrokeMode","isAddToPathSet","patternFill","patternStroke","scaledPath","invPatternTransform","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","needsFill","needsStroke","lineWidth","chars","glyph","joinedChars","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","renderingOpIdx","group","currentCtx","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","skewX","skewY","positions","trans","images","imgToPaint","inlineImgCanvas","isEmpty","absDet","normX","normY","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","CanvasGraphics","_PDFStreamReader","_PDFStreamRangeReader","BasePDFStream","PDFStreamReader","PDFStreamRangeReader","begin","reader","BasePDFStreamReader","stream","BasePDFStreamRangeReader","getFilenameFromContentDispositionHeader","contentDisposition","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","encoding","decoder","contentDispositionStr","iter","quot","part","quotindex","extvalue","encodingend","charset","createHeaders","isHttp","httpHeaders","headers","getResponseOrigin","validateRangeRequestCapabilities","responseHeaders","rangeChunkSize","disableRange","rv","extractFilenameFromHeader","createResponseError","ensureResponseOrigin","rangeOrigin","fetchUrl","withCredentials","abortController","ensureResponseStatus","getArrayBuffer","PDFFetchStream","PDFFetchStreamReader","PDFFetchStreamRangeReader","disableStream","contentLength","isRangeSupported","responseOrigin","transport_stream_getArrayBuffer","endRequests","_PDFDataTransportStream_instances","onReceiveData_fn","PDFDataTransportStream","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","pdfDataRangeTransport","initialData","progressiveDone","rangeReader","_endRequests","contentDispositionFilename","loaded","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","network_getArrayBuffer","_pendingRequests","_PDFNetworkStream_instances","onProgress_fn","onStateChange_fn","PDFNetworkStream","PDFNetworkStreamReader","PDFNetworkStreamRangeReader","xhr","pendingRequest","xhrStatus","rangeHeader","_PDFNetworkStreamReader_instances","onHeadersReceived_fn","onDone_fn","onError_fn","fullRequestXhr","rawResponseHeaders","_PDFNetworkStreamRangeReader_instances","getReadableStream","fs","Readable","readStream","PDFNodeStream","PDFNodeStreamReader","PDFNodeStreamRangeReader","stat","readableStream","getNetworkStream","_port","_src","GlobalWorkerOptions","_map","_data","Metadata","parsedData","INTERNAL","_isDisplay","_isPrint","_userSet","_visible","OptionalContentGroup","renderingIntent","usage","rbGroups","print","view","internal","userSet","_cachedGetHash","_groups","_initialHash","_order","_OptionalContentConfig_instances","evaluateVisibilityExpression_fn","OptionalContentConfig","on","off","preserveRB","rbGroup","otherId","operator","_pageNumberToId","_prevPageNumbers","_pagesNumber","_clipboard","_savedData","_PagesMapper_instances","ensureInit_fn","buildIdToPageNumber_fn","updatePrevPageNumbers_fn","PagesMapper","selectedPages","pagesToMove","pageNumberToId","prevIdToPageNumber","movedCount","mappedPagesToMove","removedBeforeTarget","pagesNumber","remainingLen","adjustedTarget","pagesToDelete","newN","newPageNumberToId","sourceIndex","destIndex","pagesToCopy","copiedPageNumbers","copiedPageIds","idToPageNumber","nCopy","pageNumbers","extractParams","includePages","pageIndices","extractedPageNumbers","usedIds","deletedPageNumbers","pasteIndex","prevPageNumbers","pasteEnd","idsIndices","oldPositions","INITIAL_DATA","dataObj","_objs","PDFObjects","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","_capability","_disableProcessItems","_fontInspectorEnabled","_imagesHandler","_lang","_layoutTextParams","_pageHeight","_pageWidth","_reader","_rootContainer","_rotation","_scale","_styleCache","_textContentItemsStr","_textContentSource","_textDivs","_textDivProperties","_transform","_ascentCache","_canvasContexts","_canvasCtxFonts","_minFontSize","_pendingTextLayers","_TextLayer_instances","processItems_fn","appendText_fn","layout_fn","_TextLayer_static","getCtx_fn","ensureCtxFont_fn","ensureMinFontSizeComputed_fn","getAscent_fn","_TextLayer","textContentSource","isWindows","isFirefox","pump","onBefore","abortEx","textContentItemsStr","geom","textDiv","textDivProperties","fontFamily","fontHeight","fontAscent","divStyle","shouldScaleText","absScaleX","absScaleY","br","lang","family","cached","cachedAscent","metrics","ascent","descent","ratio","TextLayer","RENDERING_CANCELLED_TIMEOUT","getDocument","task","PDFDocumentLoadingTask","password","rangeTransport","PDFDataRangeTransport","worker","PDFWorker","docBaseUrl","cMapPacked","iccUrl","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","isImageDecoderSupported","canvasMaxAreaInBytes","fontExtraProperties","enableXfa","disableAutoFetch","pdfBug","CanvasFactory","FilterFactory","BinaryDataFactory","gpuPromise","useWasm","pagesMapper","useSystemFonts","useWorkerFetch","transportFactory","docParams","transportParams","hasGPU","workerIdPromise","networkStream","NetworkStream","workerId","messageHandler","transport","WorkerTransport","_PDFDocumentLoadingTask","_listener","PDFDocumentProxy","pdfInfo","ref","pageIndexesToSkip","pageInfos","keepLoadedFonts","_pendingCleanup","_pagesMapper","_PDFPageProxy_instances","tryCleanup_fn","_PDFPageProxy","pageInfo","canvasContext","annotationMode","optionalContentConfigPromise","printAnnotationStorage","recordImages","recordOperations","intentArgs","intentState","intentPrint","recordForDebugger","shouldRecordOperations","shouldRecordImages","complete","internalRenderTask","recordedBBoxes","InternalRenderTask","renderTask","operatorListChanged","opListTask","includeMarkedContent","disableNormalization","textContent","waitOn","resetStats","success","operatorListChunk","annotationStorageSerializable","modifiedIds","force","delay","curCacheKey","curIntentState","renderTasks","PDFPageProxy","_messageHandler","_webWorker","_fakeWorkerId","_isWorkerDisabled","_workerPorts","_PDFWorker_instances","resolve_fn","initializeFromPort_fn","initialize_fn","setupFakeWorker_fn","_PDFWorker_static","mainThreadWorkerMessageHandler_get","_PDFWorker","port","cachedPort","workerSrc","terminateEarly","sendTest","testObj","WorkerMessageHandler","workerHandler","otherUrl","wrapper","_fullReader","_methodPromises","_networkStream","_pageCache","_pagePromises","_pageRefCache","_passwordCapability","_WorkerTransport_instances","cacheSimpleMethod_fn","loadingTask","factory","_pageIndex","isOpList","annotationStorage","modifiedIdsHash","cacheKeyBuf","terminated","sink","readyReason","isStreamingSupported","updatePassword","err","exportedData","exportedError","fontData","imageRef","pageProxy","copy","imageData","cachedPromise","results","refStr","total","RenderTask","separateAnnots","_rAF","_canvasInUse","_InternalRenderTask","useRequestAnimationFrame","build","_button","_buttonSwatch","_defaultColor","_dropdown","_dropdownWasFromKeyboard","_isMainColorPicker","_eventBus","_openDropdownAC","_l10nColor","_ColorPicker_instances","getDropdownRoot_fn","colorSelect_fn","keyDown_fn","openDropdown_fn","isDropdownVisible_get","_ColorPicker","swatch","dropdown","ColorPicker","_input","_hasAlpha","_BasicColorPicker","colorType","colorAndOpacityType","opacityType","hasAlpha","alphaHex","BasicColorPicker","makeColorComp","scaleAndClamp","ColorConverters","G","components","BaseSVGFactory","skipDimensions","DOMSVGFactory","annotation_layer_DEFAULT_FONT_SIZE","GetElementsByNameSet","TIMEZONE_OFFSET","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","_updates","_hasBorder","_popupElement","_AnnotationElement_instances","setRectEdited_fn","_AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","quadPoints","inkLists","inkList","popup","newPopup","horizontalRadius","verticalRadius","radius","borderColor","setColor","jsName","styleName","colorArray","display","hidden","actions","jsEvent","commonActions","detail","eventProxy","rectBlX","rectBlY","rectTrX","rectTrY","svgBuffer","borderWidth","svgFactory","defs","clipPath","rectWidth","rectHeight","popupData","skipId","fields","fieldObj","exportValues","exportValue","domElement","triggers","currentRect","EditorAnnotationElement","_LinkAnnotationElement_instances","setInternalLink_fn","bindAttachment_fn","bindSetOCGState_fn","link","isBound","destination","overlaidText","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","datetimeFormat","datetimeType","timeStep","hasDateOrTime","blurListener","formattedValue","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","linkElement","selectElement","addAnEmptyEntry","fixDisplayValue","newValue","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","displayValue","selectChild","indices","change","_PopupAnnotationElement_instances","createPopup_fn","hasCommentManager","PopupElement","_boundKeyDown","_boundHide","_boundShow","_boundToggle","_color","_contentsObj","_dateObj","_elements","_parent","_parentRect","_pinned","_popup","_popupAbortController","_commentButton","_commentButtonPosition","_rect","_titleObj","_wasVisible","_firstElement","_commentText","_PopupElement_instances","addEventListeners_fn","setCommentButtonPosition_fn","updateCommentButtonPosition_fn","updateColor_fn","html_get","fontSize_get","fontColor_get","makePopupContent_fn","setPosition_fn","toggle_fn","show_fn","hide_fn","titleObj","parentRect","open","hasOwnButton","togglePopup","showPopup","hidePopup","parentContainer","header","title","popupLines","popupContent","lineAttributes","useParentRect","normalizedRect","popupLeft","popupTop","lineSpan","_line","_square","square","_circle","circle","_polyline","vertices","borderStyle","points","polyline","_polylinesGroupElement","_polylines","_InkAnnotationElement_instances","getTransform_fn","thickness","mark","underline","strikeout","_trigger","_FileAttachmentAnnotationElement_instances","download_fn","trigger","_accessibilityManager","_annotationCanvasMap","_editableAnnotations","_structTreeLayer","_linkService","_hasAriaAttributesFromStructTree","_AnnotationLayer_instances","addElementsToDOM_fn","setAnnotationCanvasMap_fn","_AnnotationLayer","accessibilityManager","annotationEditorUIManager","structTreeLayer","annotations","popupToElements","popupAnnotations","elementParams","isPopupAnnotation","rendered","contentElement","ariaAttributes","top1","bot1","mid1","top2","bot2","mid2","centerX1","centerX2","firstChild","editableAnnotation","AnnotationLayer","EOL_PATTERN","_content","_editorDivId","_editModeAC","_fontSize","_FreeTextEditor_instances","updateFontSize_fn","extractText_fn","setEditorDimensions_fn","_FreeTextEditor_static","getNodeContent_fn","setContent_fn","serializeContent_fn","deserializeContent_fn","hasElementChanged_fn","_FreeTextEditor","savedText","newText","setText","paste","startContainer","startOffset","bufferBefore","bufferAfter","newRange","beforeLength","padding","textPosition","setFontsize","savedFontsize","col","savedColor","prevChild","savedDisplay","savedVisibility","FreeTextEditor","Outline","_bbox","sx","sy","_box","_bottom","_innerMargin","_isLTR","_top","_last","_lastX","_lastY","_min","_min_dist","_scaleFactor","_thickness","_points","_MIN_DIST","_MIN_DIFF","_MIN","_FreeDrawOutliner_instances","getLastCoords_fn","toSVGPathTwoPoints_fn","toSVGPathStart_fn","toSVGPathEnd_fn","getOutlineTwoPoints_fn","getOutlineStart_fn","getOutlineEnd_fn","_FreeDrawOutliner","scaleFactor","innerMargin","diffX","diffY","diffD","K","nX","nY","thX","thY","outline","FreeDrawOutline","last","N","lastTop","lastBottom","lastTopX","lastTopY","lastBottomX","lastBottomY","FreeDrawOutliner","_outline","_FreeDrawOutline_instances","computeMinMax_fn","outliner","firstPointX","firstPointY","lastPointX","lastPointY","ltrCallback","bezierBbox","_firstPoint","_lastPoint","_verticalEdges","_intervals","_HighlightOutliner_instances","getOutlines_fn","binarySearch_fn","insert_fn","remove_fn","breakEdge_fn","HighlightOutliner","EPSILON","shiftedMinX","shiftedMinY","lastEdge","lastPoint","edge","outlineVerticalEdges","edges","allEdges","edge1","edge2","outlines","HighlightOutline","middle","y4","_outlines","polygon","prevX","prevY","FreeHighlightOutliner","FreeHighlightOutline","_anchorNode","_anchorOffset","_boxes","_clipPathId","_focusOutlines","_focusNode","_focusOffset","_highlightDiv","_highlightOutlines","_isFreeHighlight","_outlineId","_methodOfCreation","_HighlightEditor_instances","createOutlines_fn","createFreeOutlines_fn","updateThickness_fn","changeThickness_fn","cleanDrawLayer_fn","addToDrawLayer_fn","_HighlightEditor_static","rotateBbox_fn","keydown_fn","setCaret_fn","getRotation_fn","serializeBoxes_fn","serializeOutlines_fn","highlightMove_fn","endHighlight_fn","_HighlightEditor","mustBeSelected","drawLayer","highlightDiv","direction","clipPathId","outlinerForOutline","highlightOutlines","highlightId","setColorAndOpacity","opa","savedOpacity","savedThickness","setThickness","th","HighlightEditor","_svgProperties","DrawingOptions","_drawOutlines","_mustBeCommitted","_currentDraw","_currentDrawingAC","_currentDrawingOptions","_DrawingEditor_instances","createDrawOutlines_fn","createDrawing_fn","convertToParentSpace_fn","convertToDrawSpace_fn","updateBbox_fn","rotateBox_fn","_DrawingEditor","p1Keys","_options","propertyName","_drawingOptions","savedValue","opacityName","_x","_y","drawDiv","_parentWidth","_parentHeight","all","draw","drawId","lastElement","isAborted","_pageX","_pageY","_innerWidth","drawOutlines","drawingOptions","pW","pH","parentRotation","DrawingEditor","_lines","_lastSVGPath","_lastIndex","_InkDrawOutliner_instances","normalizePoint_fn","InkDrawOutliner","InkDrawOutline","firstX","firstY","secondX","secondY","c1x","c1y","c2x","c2y","_currentRotation","_parentScale","_InkDrawOutline_instances","getMarginComponents_fn","getBBoxWithNoMargin_fn","computeBbox_fn","serializedLines","serializedPoints","rescaleFn","newLines","oldMarginX","oldMarginY","newMarginX","newMarginY","diffMarginX","diffMarginY","marginX","marginY","s1x","s1y","s2x","s2y","newParentWidth","newParentHeight","margin","InkDrawingOptions","viewerParameters","_InkEditor_instances","_InkEditor","_drawId","stroke","InkEditor","ContourDrawOutline","BASE_HEADER_LENGTH","POINTS_PROPERTIES_NUMBER","_PARAMETERS","_SignatureExtractor_static","neighborIndexToId_fn","_neighborIdToIndex","clockwiseNonZero_fn","counterClockwiseNonZero_fn","findContours_fn","douglasPeuckerHelper_fn","douglasPeucker_fn","bilateralFilter_fn","getHistogram_fn","toUint8_fn","guessThreshold_fn","getGrayPixels_fn","SignatureExtractor","fontStyle","fontWeight","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","fontBoundingBoxAscent","fontBoundingBoxDescent","SCALE","uint8Buf","histogram","threshold","contourList","mustSmooth","areContours","curves","linesAndPoints","xScale","yScale","newCurves","reducedPoints","newPoints","minDiff","maxDiff","outlinesLength","dx","bufferType","headerLength","cs","writer","BufferCtor","diffs","signatureData","readable","writable","numberOfDrawings","diffsOffset","i0","j0","kk","shiftI","shiftJ","nbd","lnbd","contours","ij","pix","i2","j2","isHole","contour","contour0","i1","j1","i3","j3","i4","j4","ij3","ax","ay","abx","aby","nabx","naby","aa","invS","phi","cosPhi","sinPhi","tmax","poly","partialPhi","dmax","sigmaS","sigmaR","kernelSize","kernel","sigmaS2","halfSize","rangeValues","sigmaR2","out","center","norm","neighbour","M","L","spos","originalBitmap","prevWidth","prevHeight","isteps","grayImage","SignatureOptions","DrawnSignatureOptions","_isExtracted","_description","_signatureData","_signatureUUID","_SignatureEditor","hasDescriptionStats","_isCopy","uuid","heightInPage","toolbar","outlineData","fontInfo","SignatureEditor","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_bitmapFileName","_canvas","_missingCanvas","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","_StampEditor_instances","getBitmapFetched_fn","getBitmapDone_fn","getBitmap_fn","createCanvas_fn","scaleBitmap_fn","drawBitmap_fn","serializeBitmap_fn","StampEditor","hasAltTextStats","updateAltTextData","bitmapId","maxDataDimension","maxPreviewDimension","createImageData","bitmapWidth","bitmapHeight","outputScale","scaledWidth","scaledHeight","boxDim","boxDimWidth","boxDimHeight","patternCtx","dataWidth","dataHeight","offscreenCtx","missingCanvas","structParent","bitmapUrl","isSvg","accessibilityData","changes","area","prevData","fromId","MAX_RATIO","toUrl","isSamePageIndex","isSameAltText","_allowClick","_annotationLayer","_clickAC","_editorFocusTimeoutId","_editors","_hadPointerDown","_isDisabling","_isEnabling","_drawingAC","_focusedElement","_textLayer","_textSelectionAC","_textLayerDblClickAC","_lastPointerDownTimestamp","_AnnotationEditorLayer_instances","allEditorsIterator_get","textLayerPointerDown_fn","currentEditorType_get","createNewEditor_fn","getCenterPoint_fn","cleanup_fn","_AnnotationEditorLayer","editorTypes","classList","annotationElementIds","editable","clientX","clientY","lastPointerDownTimestamp","needFakeAnnotation","changedAnnotations","resetAnnotations","isCentered","currentMode","relatedTarget","oldRotation","AnnotationEditorLayer","_mapping","_toUpdate","_DrawLayer_static","setBox_fn","_DrawLayer_instances","createSVG_fn","createClipPath_fn","updateProperties_fn","_DrawLayer","isPathUpdatable","hasClip","pathId","use","mustRemoveSelfIntersections","maskId","use1","use2","elementOrId","rootClass","pathElement","clipPathUse","DrawLayer","percentage","_coordinates","_coordinatesByElement","_getPageCanvas","_minSize","_activeImage","_TextLayerImages_instances","createImagePlaceholder_fn","_TextLayerImages","minSize","coordinates","getPageCanvas","imgElement","activeImage","pageCanvas","imageX1","imageY1","imageX2","imageY2","TextLayerImages"],"mappings":"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","x_google_ignoreList":[0]}
|