From 4382351e63792f0ac6f58a8be544bfa3cd293416 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 4 Nov 2022 18:21:06 +0100 Subject: [PATCH] wait #5566 @1.5 --- app/Models/ELearningMedia.php | 1 + resources/elearningmedia/js/app.js | 43 +- resources/elearningmedia/js/bootstrap.js | 11 +- resources/elearningmedia/js/spectrum.js | 0 resources/elearningmedia/webpack.mix.js | 2 +- resources/pdfjs-legacy/build/pdf.js | 36746 ++-- resources/pdfjs-legacy/build/pdf.js.map | 2 +- resources/pdfjs-legacy/build/pdf.sandbox.js | 457 +- .../pdfjs-legacy/build/pdf.sandbox.js.map | 2 +- resources/pdfjs-legacy/build/pdf.worker.js | 147921 ++++++--------- .../pdfjs-legacy/build/pdf.worker.js.map | 2 +- resources/pdfjs-legacy/web/debugger.css | 10 + resources/pdfjs-legacy/web/debugger.js | 99 +- .../web/images/cursor-editorInk.svg | 4 + .../web/images/findbarButton-next.svg | 7 +- .../web/images/findbarButton-previous.svg | 7 +- ...ondaryToolbarButton-documentProperties.svg | 18 +- .../secondaryToolbarButton-firstPage.svg | 4 +- .../secondaryToolbarButton-handTool.svg | 4 +- .../secondaryToolbarButton-lastPage.svg | 4 +- .../secondaryToolbarButton-rotateCcw.svg | 4 +- .../secondaryToolbarButton-rotateCw.svg | 7 +- ...econdaryToolbarButton-scrollHorizontal.svg | 4 +- .../secondaryToolbarButton-scrollPage.svg | 4 +- .../secondaryToolbarButton-scrollVertical.svg | 4 +- .../secondaryToolbarButton-scrollWrapped.svg | 4 +- .../secondaryToolbarButton-selectTool.svg | 7 +- .../secondaryToolbarButton-spreadEven.svg | 4 +- .../secondaryToolbarButton-spreadNone.svg | 4 +- .../secondaryToolbarButton-spreadOdd.svg | 4 +- .../web/images/toolbarButton-bookmark.svg | 4 +- .../toolbarButton-currentOutlineItem.svg | 4 +- .../web/images/toolbarButton-download.svg | 8 +- .../images/toolbarButton-editorFreeText.svg | 3 + .../web/images/toolbarButton-editorInk.svg | 4 + .../web/images/toolbarButton-menuArrow.svg | 4 +- .../web/images/toolbarButton-openFile.svg | 7 +- .../web/images/toolbarButton-pageDown.svg | 10 +- .../web/images/toolbarButton-pageUp.svg | 15 +- .../images/toolbarButton-presentationMode.svg | 4 +- .../web/images/toolbarButton-print.svg | 7 +- .../web/images/toolbarButton-search.svg | 7 +- .../toolbarButton-secondaryToolbarToggle.svg | 7 +- .../images/toolbarButton-sidebarToggle.svg | 7 +- .../images/toolbarButton-viewAttachments.svg | 4 +- .../web/images/toolbarButton-viewLayers.svg | 4 +- .../web/images/toolbarButton-viewOutline.svg | 4 +- .../images/toolbarButton-viewThumbnail.svg | 7 +- .../web/images/toolbarButton-zoomIn.svg | 7 +- .../web/images/toolbarButton-zoomOut.svg | 7 +- .../web/locale/ach/viewer.properties | 1 + .../web/locale/af/viewer.properties | 1 + .../web/locale/an/viewer.properties | 1 + .../web/locale/ar/viewer.properties | 1 + .../web/locale/az/viewer.properties | 1 + .../web/locale/be/viewer.properties | 27 +- .../web/locale/bg/viewer.properties | 1 + .../web/locale/bn/viewer.properties | 5 +- .../web/locale/bo/viewer.properties | 1 + .../web/locale/br/viewer.properties | 1 + .../web/locale/brx/viewer.properties | 1 + .../web/locale/bs/viewer.properties | 1 + .../web/locale/ca/viewer.properties | 1 + .../web/locale/cak/viewer.properties | 1 + .../web/locale/ckb/viewer.properties | 1 + .../web/locale/cs/viewer.properties | 25 +- .../web/locale/cy/viewer.properties | 34 + .../web/locale/da/viewer.properties | 34 + .../web/locale/de/viewer.properties | 34 + .../web/locale/dsb/viewer.properties | 34 + .../web/locale/el/viewer.properties | 34 + .../web/locale/en-CA/viewer.properties | 34 + .../web/locale/en-GB/viewer.properties | 34 + .../web/locale/en-US/viewer.properties | 44 +- .../web/locale/eo/viewer.properties | 34 + .../web/locale/es-AR/viewer.properties | 34 + .../web/locale/es-CL/viewer.properties | 34 + .../web/locale/es-ES/viewer.properties | 34 + .../web/locale/es-MX/viewer.properties | 34 + .../web/locale/et/viewer.properties | 11 + .../web/locale/eu/viewer.properties | 23 +- .../web/locale/fa/viewer.properties | 1 + .../web/locale/ff/viewer.properties | 1 + .../web/locale/fi/viewer.properties | 39 +- .../web/locale/fr/viewer.properties | 34 + .../web/locale/fy-NL/viewer.properties | 27 +- .../web/locale/ga-IE/viewer.properties | 1 + .../web/locale/gd/viewer.properties | 1 + .../web/locale/gl/viewer.properties | 1 + .../web/locale/gn/viewer.properties | 23 +- .../web/locale/gu-IN/viewer.properties | 1 + .../web/locale/he/viewer.properties | 35 + .../web/locale/hi-IN/viewer.properties | 1 + .../web/locale/hr/viewer.properties | 1 + .../web/locale/hsb/viewer.properties | 34 + .../web/locale/hu/viewer.properties | 34 + .../web/locale/hy-AM/viewer.properties | 1 + .../web/locale/hye/viewer.properties | 1 + .../web/locale/ia/viewer.properties | 36 +- .../web/locale/id/viewer.properties | 34 + .../web/locale/is/viewer.properties | 34 + .../web/locale/it/viewer.properties | 22 +- .../web/locale/ja/viewer.properties | 34 + .../web/locale/ka/viewer.properties | 50 +- .../web/locale/kab/viewer.properties | 34 + .../web/locale/kk/viewer.properties | 23 +- .../web/locale/km/viewer.properties | 1 + .../web/locale/kn/viewer.properties | 1 + .../web/locale/ko/viewer.properties | 23 +- .../web/locale/lij/viewer.properties | 1 + .../web/locale/lt/viewer.properties | 10 + .../web/locale/ltg/viewer.properties | 1 + .../web/locale/lv/viewer.properties | 1 + .../web/locale/mk/viewer.properties | 1 + .../web/locale/mr/viewer.properties | 1 + .../web/locale/ms/viewer.properties | 1 + .../web/locale/my/viewer.properties | 1 + .../web/locale/nb-NO/viewer.properties | 34 + .../web/locale/ne-NP/viewer.properties | 1 + .../web/locale/nl/viewer.properties | 34 + .../web/locale/nn-NO/viewer.properties | 34 + .../web/locale/oc/viewer.properties | 36 +- .../web/locale/pa-IN/viewer.properties | 34 + .../web/locale/pl/viewer.properties | 36 +- .../web/locale/pt-BR/viewer.properties | 36 +- .../web/locale/pt-PT/viewer.properties | 34 + .../web/locale/rm/viewer.properties | 34 + .../web/locale/ro/viewer.properties | 1 + .../web/locale/ru/viewer.properties | 34 + .../web/locale/sat/viewer.properties | 1 + .../web/locale/sc/viewer.properties | 3 + .../web/locale/sco/viewer.properties | 1 + .../web/locale/si/viewer.properties | 180 +- .../web/locale/sk/viewer.properties | 36 +- .../web/locale/sl/viewer.properties | 34 + .../web/locale/son/viewer.properties | 1 + .../web/locale/sq/viewer.properties | 1 + .../web/locale/sr/viewer.properties | 7 +- .../web/locale/sv-SE/viewer.properties | 38 +- .../web/locale/szl/viewer.properties | 9 +- .../web/locale/ta/viewer.properties | 1 + .../web/locale/te/viewer.properties | 20 + .../web/locale/tg/viewer.properties | 121 + .../web/locale/th/viewer.properties | 22 + .../web/locale/tl/viewer.properties | 1 + .../web/locale/tr/viewer.properties | 25 +- .../web/locale/uk/viewer.properties | 36 +- .../web/locale/ur/viewer.properties | 1 + .../web/locale/uz/viewer.properties | 1 + .../web/locale/vi/viewer.properties | 34 + .../web/locale/wo/viewer.properties | 1 + .../web/locale/xh/viewer.properties | 1 + .../web/locale/zh-CN/viewer.properties | 34 + .../web/locale/zh-TW/viewer.properties | 34 + resources/pdfjs-legacy/web/viewer.css | 669 +- resources/pdfjs-legacy/web/viewer.html | 103 +- resources/pdfjs-legacy/web/viewer.js | 28159 +-- resources/pdfjs-legacy/web/viewer.js.map | 2 +- resources/pdfjs/build/pdf.js | 10502 +- resources/pdfjs/build/pdf.js.map | 2 +- resources/pdfjs/build/pdf.sandbox.js | 63 +- resources/pdfjs/build/pdf.sandbox.js.map | 2 +- resources/pdfjs/build/pdf.worker.js | 106623 +++++------ resources/pdfjs/build/pdf.worker.js.map | 2 +- resources/pdfjs/web/debugger.css | 10 + resources/pdfjs/web/debugger.js | 99 +- .../pdfjs/web/images/cursor-editorInk.svg | 4 + .../pdfjs/web/images/findbarButton-next.svg | 7 +- .../web/images/findbarButton-previous.svg | 7 +- ...ondaryToolbarButton-documentProperties.svg | 18 +- .../secondaryToolbarButton-firstPage.svg | 4 +- .../secondaryToolbarButton-handTool.svg | 4 +- .../secondaryToolbarButton-lastPage.svg | 4 +- .../secondaryToolbarButton-rotateCcw.svg | 4 +- .../secondaryToolbarButton-rotateCw.svg | 7 +- ...econdaryToolbarButton-scrollHorizontal.svg | 4 +- .../secondaryToolbarButton-scrollPage.svg | 4 +- .../secondaryToolbarButton-scrollVertical.svg | 4 +- .../secondaryToolbarButton-scrollWrapped.svg | 4 +- .../secondaryToolbarButton-selectTool.svg | 7 +- .../secondaryToolbarButton-spreadEven.svg | 4 +- .../secondaryToolbarButton-spreadNone.svg | 4 +- .../secondaryToolbarButton-spreadOdd.svg | 4 +- .../web/images/toolbarButton-bookmark.svg | 4 +- .../toolbarButton-currentOutlineItem.svg | 4 +- .../web/images/toolbarButton-download.svg | 8 +- .../images/toolbarButton-editorFreeText.svg | 3 + .../web/images/toolbarButton-editorInk.svg | 4 + .../web/images/toolbarButton-menuArrow.svg | 4 +- .../web/images/toolbarButton-openFile.svg | 7 +- .../web/images/toolbarButton-pageDown.svg | 10 +- .../pdfjs/web/images/toolbarButton-pageUp.svg | 15 +- .../images/toolbarButton-presentationMode.svg | 4 +- .../pdfjs/web/images/toolbarButton-print.svg | 7 +- .../pdfjs/web/images/toolbarButton-search.svg | 7 +- .../toolbarButton-secondaryToolbarToggle.svg | 7 +- .../images/toolbarButton-sidebarToggle.svg | 7 +- .../images/toolbarButton-viewAttachments.svg | 4 +- .../web/images/toolbarButton-viewLayers.svg | 4 +- .../web/images/toolbarButton-viewOutline.svg | 4 +- .../images/toolbarButton-viewThumbnail.svg | 7 +- .../pdfjs/web/images/toolbarButton-zoomIn.svg | 7 +- .../web/images/toolbarButton-zoomOut.svg | 7 +- .../pdfjs/web/locale/ach/viewer.properties | 1 + .../pdfjs/web/locale/af/viewer.properties | 1 + .../pdfjs/web/locale/an/viewer.properties | 1 + .../pdfjs/web/locale/ar/viewer.properties | 1 + .../pdfjs/web/locale/az/viewer.properties | 1 + .../pdfjs/web/locale/be/viewer.properties | 27 +- .../pdfjs/web/locale/bg/viewer.properties | 1 + .../pdfjs/web/locale/bn/viewer.properties | 5 +- .../pdfjs/web/locale/bo/viewer.properties | 1 + .../pdfjs/web/locale/br/viewer.properties | 1 + .../pdfjs/web/locale/brx/viewer.properties | 1 + .../pdfjs/web/locale/bs/viewer.properties | 1 + .../pdfjs/web/locale/ca/viewer.properties | 1 + .../pdfjs/web/locale/cak/viewer.properties | 1 + .../pdfjs/web/locale/ckb/viewer.properties | 1 + .../pdfjs/web/locale/cs/viewer.properties | 25 +- .../pdfjs/web/locale/cy/viewer.properties | 34 + .../pdfjs/web/locale/da/viewer.properties | 34 + .../pdfjs/web/locale/de/viewer.properties | 34 + .../pdfjs/web/locale/dsb/viewer.properties | 34 + .../pdfjs/web/locale/el/viewer.properties | 34 + .../pdfjs/web/locale/en-CA/viewer.properties | 34 + .../pdfjs/web/locale/en-GB/viewer.properties | 34 + .../pdfjs/web/locale/en-US/viewer.properties | 44 +- .../pdfjs/web/locale/eo/viewer.properties | 34 + .../pdfjs/web/locale/es-AR/viewer.properties | 34 + .../pdfjs/web/locale/es-CL/viewer.properties | 34 + .../pdfjs/web/locale/es-ES/viewer.properties | 34 + .../pdfjs/web/locale/es-MX/viewer.properties | 34 + .../pdfjs/web/locale/et/viewer.properties | 11 + .../pdfjs/web/locale/eu/viewer.properties | 23 +- .../pdfjs/web/locale/fa/viewer.properties | 1 + .../pdfjs/web/locale/ff/viewer.properties | 1 + .../pdfjs/web/locale/fi/viewer.properties | 39 +- .../pdfjs/web/locale/fr/viewer.properties | 34 + .../pdfjs/web/locale/fy-NL/viewer.properties | 27 +- .../pdfjs/web/locale/ga-IE/viewer.properties | 1 + .../pdfjs/web/locale/gd/viewer.properties | 1 + .../pdfjs/web/locale/gl/viewer.properties | 1 + .../pdfjs/web/locale/gn/viewer.properties | 23 +- .../pdfjs/web/locale/gu-IN/viewer.properties | 1 + .../pdfjs/web/locale/he/viewer.properties | 35 + .../pdfjs/web/locale/hi-IN/viewer.properties | 1 + .../pdfjs/web/locale/hr/viewer.properties | 1 + .../pdfjs/web/locale/hsb/viewer.properties | 34 + .../pdfjs/web/locale/hu/viewer.properties | 34 + .../pdfjs/web/locale/hy-AM/viewer.properties | 1 + .../pdfjs/web/locale/hye/viewer.properties | 1 + .../pdfjs/web/locale/ia/viewer.properties | 36 +- .../pdfjs/web/locale/id/viewer.properties | 34 + .../pdfjs/web/locale/is/viewer.properties | 34 + .../pdfjs/web/locale/it/viewer.properties | 22 +- .../pdfjs/web/locale/ja/viewer.properties | 34 + .../pdfjs/web/locale/ka/viewer.properties | 50 +- .../pdfjs/web/locale/kab/viewer.properties | 34 + .../pdfjs/web/locale/kk/viewer.properties | 23 +- .../pdfjs/web/locale/km/viewer.properties | 1 + .../pdfjs/web/locale/kn/viewer.properties | 1 + .../pdfjs/web/locale/ko/viewer.properties | 23 +- .../pdfjs/web/locale/lij/viewer.properties | 1 + .../pdfjs/web/locale/lt/viewer.properties | 10 + .../pdfjs/web/locale/ltg/viewer.properties | 1 + .../pdfjs/web/locale/lv/viewer.properties | 1 + .../pdfjs/web/locale/mk/viewer.properties | 1 + .../pdfjs/web/locale/mr/viewer.properties | 1 + .../pdfjs/web/locale/ms/viewer.properties | 1 + .../pdfjs/web/locale/my/viewer.properties | 1 + .../pdfjs/web/locale/nb-NO/viewer.properties | 34 + .../pdfjs/web/locale/ne-NP/viewer.properties | 1 + .../pdfjs/web/locale/nl/viewer.properties | 34 + .../pdfjs/web/locale/nn-NO/viewer.properties | 34 + .../pdfjs/web/locale/oc/viewer.properties | 36 +- .../pdfjs/web/locale/pa-IN/viewer.properties | 34 + .../pdfjs/web/locale/pl/viewer.properties | 36 +- .../pdfjs/web/locale/pt-BR/viewer.properties | 36 +- .../pdfjs/web/locale/pt-PT/viewer.properties | 34 + .../pdfjs/web/locale/rm/viewer.properties | 34 + .../pdfjs/web/locale/ro/viewer.properties | 1 + .../pdfjs/web/locale/ru/viewer.properties | 34 + .../pdfjs/web/locale/sat/viewer.properties | 1 + .../pdfjs/web/locale/sc/viewer.properties | 3 + .../pdfjs/web/locale/sco/viewer.properties | 1 + .../pdfjs/web/locale/si/viewer.properties | 180 +- .../pdfjs/web/locale/sk/viewer.properties | 36 +- .../pdfjs/web/locale/sl/viewer.properties | 34 + .../pdfjs/web/locale/son/viewer.properties | 1 + .../pdfjs/web/locale/sq/viewer.properties | 1 + .../pdfjs/web/locale/sr/viewer.properties | 7 +- .../pdfjs/web/locale/sv-SE/viewer.properties | 38 +- .../pdfjs/web/locale/szl/viewer.properties | 9 +- .../pdfjs/web/locale/ta/viewer.properties | 1 + .../pdfjs/web/locale/te/viewer.properties | 20 + .../pdfjs/web/locale/tg/viewer.properties | 121 + .../pdfjs/web/locale/th/viewer.properties | 22 + .../pdfjs/web/locale/tl/viewer.properties | 1 + .../pdfjs/web/locale/tr/viewer.properties | 25 +- .../pdfjs/web/locale/uk/viewer.properties | 36 +- .../pdfjs/web/locale/ur/viewer.properties | 1 + .../pdfjs/web/locale/uz/viewer.properties | 1 + .../pdfjs/web/locale/vi/viewer.properties | 34 + .../pdfjs/web/locale/wo/viewer.properties | 1 + .../pdfjs/web/locale/xh/viewer.properties | 1 + .../pdfjs/web/locale/zh-CN/viewer.properties | 34 + .../pdfjs/web/locale/zh-TW/viewer.properties | 34 + resources/pdfjs/web/viewer.css | 669 +- resources/pdfjs/web/viewer.html | 103 +- resources/pdfjs/web/viewer.js | 11711 +- resources/pdfjs/web/viewer.js.map | 2 +- 311 files changed, 150480 insertions(+), 198157 deletions(-) delete mode 100644 resources/elearningmedia/js/spectrum.js create mode 100644 resources/pdfjs-legacy/web/images/cursor-editorInk.svg create mode 100644 resources/pdfjs-legacy/web/images/toolbarButton-editorFreeText.svg create mode 100644 resources/pdfjs-legacy/web/images/toolbarButton-editorInk.svg create mode 100644 resources/pdfjs/web/images/cursor-editorInk.svg create mode 100644 resources/pdfjs/web/images/toolbarButton-editorFreeText.svg create mode 100644 resources/pdfjs/web/images/toolbarButton-editorInk.svg diff --git a/app/Models/ELearningMedia.php b/app/Models/ELearningMedia.php index a7e5fd124..bd279baab 100644 --- a/app/Models/ELearningMedia.php +++ b/app/Models/ELearningMedia.php @@ -121,6 +121,7 @@ class ELearningMedia extends ToolboxModel $css .= '#viewBookmark,#print,#download{display:none !important}'; $css .= '#viewLayers,#viewAttachments{display:none !important}'; $css .= '#documentProperties,#cursorSelectTool,#cursorHandTool,#cursorHandTool + .horizontalToolbarSeparator,.horizontalToolbarSeparator.spreadModeButtons,#cursorToolButtons+.horizontalToolbarSeparator{display:none !important}'; + $css .= '#editorModeButtons,#editorModeSeparator{display:none !important}'; // $popup = '.annotationLayer .popupAnnotation .popupWrapper .popup'; // $css .= $popup . ' h1,' . $popup . ' span{display:none !important;}'; // $css .= $popup . ' p{border:0 !important;margin-top:0 !important;}'; diff --git a/resources/elearningmedia/js/app.js b/resources/elearningmedia/js/app.js index 20f20b28d..7805b058c 100644 --- a/resources/elearningmedia/js/app.js +++ b/resources/elearningmedia/js/app.js @@ -1,5 +1,6 @@ require('./bootstrap'); -import {SCORM} from 'pipwerks-scorm-api-wrapper'; +require('../../scorm/scorm'); + import Plyr from 'plyr'; window.openTime = Date.now(); @@ -26,12 +27,7 @@ document.addEventListener("DOMContentLoaded", function () { }); } - SCORM.init(); - - SCORM.set('cmi.exit', 'suspend'); - if (SCORM.get('cmi.completion_status') !== 'completed') { - SCORM.set('cmi.completion_status', 'incomplete'); - } + initScorm(); var pc = (parseInt(window.progressComplete) / 100); var interval; @@ -79,41 +75,10 @@ document.addEventListener("DOMContentLoaded", function () { }); function markComplete(interval) { - SCORM.set('cmi.completion_status', 'completed'); - SCORM.set('cmi.success_status', 'passed'); - SCORM.save(); + scormMarkAsComplete(); clearInterval(interval); } -function setSessionTime() { - var endTime = Date.now(); - SCORM.set('cmi.session_time', scormSecondsToTimeInterval((endTime - window.openTime) / 1000)); -} - -function scormSecondsToTimeInterval(diff) { - diff = Math.round(diff); - var h = Math.floor(diff / 3600); - diff = diff % 3600; - var m = Math.floor(diff / 60); - var s = diff % 60; - return 'PT' + h + 'H' + m + 'M' + s + 'S'; -} - -function finishScorm(quit) { - if (quit === undefined) { - quit = true; - } - - setSessionTime(); - SCORM.save(); - if (quit) { - SCORM.quit(); - } -} - -window.addEventListener('unload', function (event) { - finishScorm(); -}); function Spectrum(element) { this.started = false; diff --git a/resources/elearningmedia/js/bootstrap.js b/resources/elearningmedia/js/bootstrap.js index 2e6b51198..b58532ecb 100644 --- a/resources/elearningmedia/js/bootstrap.js +++ b/resources/elearningmedia/js/bootstrap.js @@ -1,10 +1 @@ -window._ = require('lodash'); - -/** - * We'll load the axios HTTP library which allows us to easily issue requests - * to our Laravel back-end. This library automatically handles sending the - * CSRF token as a header based on the value of the "XSRF" token cookie. - */ - -window.axios = require('axios'); -window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; +window.$ = window.jQuery = require('jquery'); diff --git a/resources/elearningmedia/js/spectrum.js b/resources/elearningmedia/js/spectrum.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/resources/elearningmedia/webpack.mix.js b/resources/elearningmedia/webpack.mix.js index dc3b2ab22..4aaa61233 100644 --- a/resources/elearningmedia/webpack.mix.js +++ b/resources/elearningmedia/webpack.mix.js @@ -1,4 +1,4 @@ const mix = require("laravel-mix"); -mix.setPublicPath('resources/elearningmedia/dist').js(['resources/elearningmedia/js/app.js', 'resources/elearningmedia/js/spectrum.js'], 'js') +mix.setPublicPath('resources/elearningmedia/dist').js('resources/elearningmedia/js/app.js', 'js') .sass('resources/elearningmedia/sass/app.sass', 'css').version(); diff --git a/resources/pdfjs-legacy/build/pdf.js b/resources/pdfjs-legacy/build/pdf.js index 2553f88f1..473b64c09 100644 --- a/resources/pdfjs-legacy/build/pdf.js +++ b/resources/pdfjs-legacy/build/pdf.js @@ -29,7 +29,7 @@ exports["pdfjs-dist/build/pdf"] = factory(); else root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); -})(this, () => { +})(globalThis, () => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ([ /* 0 */, @@ -42,7 +42,7 @@ return /******/ (() => { // webpackBootstrap Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; +exports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; exports.arrayByteLength = arrayByteLength; exports.arraysToBytes = arraysToBytes; exports.assert = assert; @@ -68,58 +68,19 @@ exports.stringToUTF8String = stringToUTF8String; exports.unreachable = unreachable; exports.utf8StringToString = utf8StringToString; exports.warn = warn; - -__w_pdfjs_require__(2); - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +if (!globalThis._pdfjsCompatibilityChecked) { + globalThis._pdfjsCompatibilityChecked = true; + __w_pdfjs_require__(2); +} +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; -var RenderingIntentFlag = { +const LINE_FACTOR = 1.35; +exports.LINE_FACTOR = LINE_FACTOR; +const LINE_DESCENT_FACTOR = 0.35; +exports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR; +const RenderingIntentFlag = { ANY: 0x01, DISPLAY: 0x02, PRINT: 0x04, @@ -129,14 +90,32 @@ var RenderingIntentFlag = { OPLIST: 0x100 }; exports.RenderingIntentFlag = RenderingIntentFlag; -var AnnotationMode = { +const AnnotationMode = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3 }; exports.AnnotationMode = AnnotationMode; -var PermissionFlag = { +const AnnotationEditorPrefix = "pdfjs_internal_editor_"; +exports.AnnotationEditorPrefix = AnnotationEditorPrefix; +const AnnotationEditorType = { + DISABLE: -1, + NONE: 0, + FREETEXT: 3, + INK: 15 +}; +exports.AnnotationEditorType = AnnotationEditorType; +const AnnotationEditorParamsType = { + FREETEXT_SIZE: 1, + FREETEXT_COLOR: 2, + FREETEXT_OPACITY: 3, + INK_COLOR: 11, + INK_THICKNESS: 12, + INK_OPACITY: 13 +}; +exports.AnnotationEditorParamsType = AnnotationEditorParamsType; +const PermissionFlag = { PRINT: 0x04, MODIFY_CONTENTS: 0x08, COPY: 0x10, @@ -147,7 +126,7 @@ var PermissionFlag = { PRINT_HIGH_QUALITY: 0x800 }; exports.PermissionFlag = PermissionFlag; -var TextRenderingMode = { +const TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, @@ -160,13 +139,13 @@ var TextRenderingMode = { ADD_TO_PATH_FLAG: 4 }; exports.TextRenderingMode = TextRenderingMode; -var ImageKind = { +const ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; exports.ImageKind = ImageKind; -var AnnotationType = { +const AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, @@ -195,17 +174,17 @@ var AnnotationType = { REDACT: 26 }; exports.AnnotationType = AnnotationType; -var AnnotationStateModelType = { +const AnnotationStateModelType = { MARKED: "Marked", REVIEW: "Review" }; exports.AnnotationStateModelType = AnnotationStateModelType; -var AnnotationMarkedState = { +const AnnotationMarkedState = { MARKED: "Marked", UNMARKED: "Unmarked" }; exports.AnnotationMarkedState = AnnotationMarkedState; -var AnnotationReviewState = { +const AnnotationReviewState = { ACCEPTED: "Accepted", REJECTED: "Rejected", CANCELLED: "Cancelled", @@ -213,12 +192,12 @@ var AnnotationReviewState = { NONE: "None" }; exports.AnnotationReviewState = AnnotationReviewState; -var AnnotationReplyType = { +const AnnotationReplyType = { GROUP: "Group", REPLY: "R" }; exports.AnnotationReplyType = AnnotationReplyType; -var AnnotationFlag = { +const AnnotationFlag = { INVISIBLE: 0x01, HIDDEN: 0x02, PRINT: 0x04, @@ -231,7 +210,7 @@ var AnnotationFlag = { LOCKEDCONTENTS: 0x200 }; exports.AnnotationFlag = AnnotationFlag; -var AnnotationFieldFlag = { +const AnnotationFieldFlag = { READONLY: 0x0000001, REQUIRED: 0x0000002, NOEXPORT: 0x0000004, @@ -253,7 +232,7 @@ var AnnotationFieldFlag = { COMMITONSELCHANGE: 0x4000000 }; exports.AnnotationFieldFlag = AnnotationFieldFlag; -var AnnotationBorderStyleType = { +const AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, @@ -261,7 +240,7 @@ var AnnotationBorderStyleType = { UNDERLINE: 5 }; exports.AnnotationBorderStyleType = AnnotationBorderStyleType; -var AnnotationActionEventType = { +const AnnotationActionEventType = { E: "Mouse Enter", X: "Mouse Exit", D: "Mouse Down", @@ -278,7 +257,7 @@ var AnnotationActionEventType = { C: "Calculate" }; exports.AnnotationActionEventType = AnnotationActionEventType; -var DocumentActionEventType = { +const DocumentActionEventType = { WC: "WillClose", WS: "WillSave", DS: "DidSave", @@ -286,12 +265,12 @@ var DocumentActionEventType = { DP: "DidPrint" }; exports.DocumentActionEventType = DocumentActionEventType; -var PageActionEventType = { +const PageActionEventType = { O: "PageOpen", C: "PageClose" }; exports.PageActionEventType = PageActionEventType; -var StreamType = { +const StreamType = { UNKNOWN: "UNKNOWN", FLATE: "FLATE", LZW: "LZW", @@ -304,7 +283,7 @@ var StreamType = { RLX: "RLX" }; exports.StreamType = StreamType; -var FontType = { +const FontType = { UNKNOWN: "UNKNOWN", TYPE1: "TYPE1", TYPE1STANDARD: "TYPE1STANDARD", @@ -319,19 +298,18 @@ var FontType = { MMTYPE1: "MMTYPE1" }; exports.FontType = FontType; -var VerbosityLevel = { +const VerbosityLevel = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; exports.VerbosityLevel = VerbosityLevel; -var CMapCompressionType = { +const CMapCompressionType = { NONE: 0, - BINARY: 1, - STREAM: 2 + BINARY: 1 }; exports.CMapCompressionType = CMapCompressionType; -var OPS = { +const OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, @@ -409,11 +387,8 @@ var OPS = { paintFormXObjectEnd: 75, beginGroup: 76, endGroup: 77, - beginAnnotations: 78, - endAnnotations: 79, beginAnnotation: 80, endAnnotation: 81, - paintJpegXObject: 82, paintImageMaskXObject: 83, paintImageMaskXObjectGroup: 84, paintImageXObject: 85, @@ -425,14 +400,12 @@ var OPS = { constructPath: 91 }; exports.OPS = OPS; -var UNSUPPORTED_FEATURES = { - unknown: "unknown", +const UNSUPPORTED_FEATURES = { forms: "forms", javaScript: "javaScript", signatures: "signatures", smask: "smask", shadingPattern: "shadingPattern", - font: "font", errorTilingPattern: "errorTilingPattern", errorExtGState: "errorExtGState", errorXObject: "errorXObject", @@ -450,50 +423,42 @@ var UNSUPPORTED_FEATURES = { errorContentSubStream: "errorContentSubStream" }; exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; -var PasswordResponses = { +const PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; exports.PasswordResponses = PasswordResponses; -var verbosity = VerbosityLevel.WARNINGS; - +let verbosity = VerbosityLevel.WARNINGS; function setVerbosityLevel(level) { if (Number.isInteger(level)) { verbosity = level; } } - function getVerbosityLevel() { return verbosity; } - function info(msg) { if (verbosity >= VerbosityLevel.INFOS) { - console.log("Info: ".concat(msg)); + console.log(`Info: ${msg}`); } } - function warn(msg) { if (verbosity >= VerbosityLevel.WARNINGS) { - console.log("Warning: ".concat(msg)); + console.log(`Warning: ${msg}`); } } - function unreachable(msg) { throw new Error(msg); } - function assert(cond, msg) { if (!cond) { unreachable(msg); } } - function _isValidProtocol(url) { if (!url) { return false; } - switch (url.protocol) { case "http:": case "https:": @@ -501,267 +466,154 @@ function _isValidProtocol(url) { case "mailto:": case "tel:": return true; - default: return false; } } - function createValidAbsoluteUrl(url) { - var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - + let baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; if (!url) { return null; } - try { if (options && typeof url === "string") { if (options.addDefaultProtocol && url.startsWith("www.")) { - var dots = url.match(/\./g); - + const dots = url.match(/\./g); if (dots && dots.length >= 2) { - url = "http://".concat(url); + url = `http://${url}`; } } - if (options.tryConvertEncoding) { try { url = stringToUTF8String(url); } catch (ex) {} } } - - var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); - + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); if (_isValidProtocol(absoluteUrl)) { return absoluteUrl; } } catch (ex) {} - return null; } - function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { - value: value, + value, enumerable: true, configurable: true, writable: false }); return value; } - -var BaseException = function BaseExceptionClosure() { +const BaseException = function BaseExceptionClosure() { function BaseException(message, name) { if (this.constructor === BaseException) { unreachable("Cannot initialize BaseException."); } - this.message = message; this.name = name; } - BaseException.prototype = new Error(); BaseException.constructor = BaseException; return BaseException; }(); - exports.BaseException = BaseException; - -var PasswordException = /*#__PURE__*/function (_BaseException) { - _inherits(PasswordException, _BaseException); - - var _super = _createSuper(PasswordException); - - function PasswordException(msg, code) { - var _this; - - _classCallCheck(this, PasswordException); - - _this = _super.call(this, msg, "PasswordException"); - _this.code = code; - return _this; +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg, "PasswordException"); + this.code = code; } - - return _createClass(PasswordException); -}(BaseException); - +} exports.PasswordException = PasswordException; - -var UnknownErrorException = /*#__PURE__*/function (_BaseException2) { - _inherits(UnknownErrorException, _BaseException2); - - var _super2 = _createSuper(UnknownErrorException); - - function UnknownErrorException(msg, details) { - var _this2; - - _classCallCheck(this, UnknownErrorException); - - _this2 = _super2.call(this, msg, "UnknownErrorException"); - _this2.details = details; - return _this2; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg, "UnknownErrorException"); + this.details = details; } - - return _createClass(UnknownErrorException); -}(BaseException); - +} exports.UnknownErrorException = UnknownErrorException; - -var InvalidPDFException = /*#__PURE__*/function (_BaseException3) { - _inherits(InvalidPDFException, _BaseException3); - - var _super3 = _createSuper(InvalidPDFException); - - function InvalidPDFException(msg) { - _classCallCheck(this, InvalidPDFException); - - return _super3.call(this, msg, "InvalidPDFException"); +class InvalidPDFException extends BaseException { + constructor(msg) { + super(msg, "InvalidPDFException"); } - - return _createClass(InvalidPDFException); -}(BaseException); - +} exports.InvalidPDFException = InvalidPDFException; - -var MissingPDFException = /*#__PURE__*/function (_BaseException4) { - _inherits(MissingPDFException, _BaseException4); - - var _super4 = _createSuper(MissingPDFException); - - function MissingPDFException(msg) { - _classCallCheck(this, MissingPDFException); - - return _super4.call(this, msg, "MissingPDFException"); +class MissingPDFException extends BaseException { + constructor(msg) { + super(msg, "MissingPDFException"); } - - return _createClass(MissingPDFException); -}(BaseException); - +} exports.MissingPDFException = MissingPDFException; - -var UnexpectedResponseException = /*#__PURE__*/function (_BaseException5) { - _inherits(UnexpectedResponseException, _BaseException5); - - var _super5 = _createSuper(UnexpectedResponseException); - - function UnexpectedResponseException(msg, status) { - var _this3; - - _classCallCheck(this, UnexpectedResponseException); - - _this3 = _super5.call(this, msg, "UnexpectedResponseException"); - _this3.status = status; - return _this3; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg, "UnexpectedResponseException"); + this.status = status; } - - return _createClass(UnexpectedResponseException); -}(BaseException); - +} exports.UnexpectedResponseException = UnexpectedResponseException; - -var FormatError = /*#__PURE__*/function (_BaseException6) { - _inherits(FormatError, _BaseException6); - - var _super6 = _createSuper(FormatError); - - function FormatError(msg) { - _classCallCheck(this, FormatError); - - return _super6.call(this, msg, "FormatError"); +class FormatError extends BaseException { + constructor(msg) { + super(msg, "FormatError"); } - - return _createClass(FormatError); -}(BaseException); - +} exports.FormatError = FormatError; - -var AbortException = /*#__PURE__*/function (_BaseException7) { - _inherits(AbortException, _BaseException7); - - var _super7 = _createSuper(AbortException); - - function AbortException(msg) { - _classCallCheck(this, AbortException); - - return _super7.call(this, msg, "AbortException"); +class AbortException extends BaseException { + constructor(msg) { + super(msg, "AbortException"); } - - return _createClass(AbortException); -}(BaseException); - +} exports.AbortException = AbortException; - function bytesToString(bytes) { - if (_typeof(bytes) !== "object" || bytes === null || bytes.length === undefined) { + if (typeof bytes !== "object" || bytes === null || bytes.length === undefined) { unreachable("Invalid argument for bytesToString"); } - - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; - + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; if (length < MAX_ARGUMENT_COUNT) { return String.fromCharCode.apply(null, bytes); } - - var strBuf = []; - - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); + const strBuf = []; + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); strBuf.push(String.fromCharCode.apply(null, chunk)); } - return strBuf.join(""); } - function stringToBytes(str) { if (typeof str !== "string") { unreachable("Invalid argument for stringToBytes"); } - - var length = str.length; - var bytes = new Uint8Array(length); - - for (var i = 0; i < length; ++i) { + const length = str.length; + const bytes = new Uint8Array(length); + for (let i = 0; i < length; ++i) { bytes[i] = str.charCodeAt(i) & 0xff; } - return bytes; } - function arrayByteLength(arr) { if (arr.length !== undefined) { return arr.length; } - if (arr.byteLength !== undefined) { return arr.byteLength; } - unreachable("Invalid argument for arrayByteLength"); } - function arraysToBytes(arr) { - var length = arr.length; - + const length = arr.length; if (length === 1 && arr[0] instanceof Uint8Array) { return arr[0]; } - - var resultLength = 0; - - for (var i = 0; i < length; i++) { + let resultLength = 0; + for (let i = 0; i < length; i++) { resultLength += arrayByteLength(arr[i]); } - - var pos = 0; - var data = new Uint8Array(resultLength); - - for (var _i = 0; _i < length; _i++) { - var item = arr[_i]; - + let pos = 0; + const data = new Uint8Array(resultLength); + for (let i = 0; i < length; i++) { + let item = arr[i]; if (!(item instanceof Uint8Array)) { if (typeof item === "string") { item = stringToBytes(item); @@ -769,53 +621,31 @@ function arraysToBytes(arr) { item = new Uint8Array(item); } } - - var itemLength = item.byteLength; + const itemLength = item.byteLength; data.set(item, pos); pos += itemLength; } - return data; } - function string32(value) { return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } - function objectSize(obj) { return Object.keys(obj).length; } - function objectFromMap(map) { - var obj = Object.create(null); - - var _iterator = _createForOfIteratorHelper(map), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _step$value = _slicedToArray(_step.value, 2), - key = _step$value[0], - value = _step$value[1]; - - obj[key] = value; - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); + const obj = Object.create(null); + for (const [key, value] of map) { + obj[key] = value; } - return obj; } - function isLittleEndian() { - var buffer8 = new Uint8Array(4); + const buffer8 = new Uint8Array(4); buffer8[0] = 1; - var view32 = new Uint32Array(buffer8.buffer, 0, 1); + const view32 = new Uint32Array(buffer8.buffer, 0, 1); return view32[0] === 1; } - function isEvalSupported() { try { new Function(""); @@ -824,275 +654,189 @@ function isEvalSupported() { return false; } } - -var FeatureTest = /*#__PURE__*/function () { - function FeatureTest() { - _classCallCheck(this, FeatureTest); +class FeatureTest { + static get isLittleEndian() { + return shadow(this, "isLittleEndian", isLittleEndian()); } - - _createClass(FeatureTest, null, [{ - key: "isLittleEndian", - get: function get() { - return shadow(this, "isLittleEndian", isLittleEndian()); - } - }, { - key: "isEvalSupported", - get: function get() { - return shadow(this, "isEvalSupported", isEvalSupported()); - } - }, { - key: "isOffscreenCanvasSupported", - get: function get() { - return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); - } - }]); - - return FeatureTest; -}(); - -exports.FeatureTest = FeatureTest; - -var hexNumbers = _toConsumableArray(Array(256).keys()).map(function (n) { - return n.toString(16).padStart(2, "0"); -}); - -var Util = /*#__PURE__*/function () { - function Util() { - _classCallCheck(this, Util); + static get isEvalSupported() { + return shadow(this, "isEvalSupported", isEvalSupported()); } - - _createClass(Util, null, [{ - key: "makeHexColor", - value: function makeHexColor(r, g, b) { - return "#".concat(hexNumbers[r]).concat(hexNumbers[g]).concat(hexNumbers[b]); - } - }, { - key: "scaleMinMax", - value: function scaleMinMax(transform, minMax) { - var temp; - - if (transform[0]) { - if (transform[0] < 0) { - temp = minMax[0]; - minMax[0] = minMax[1]; - minMax[1] = temp; - } - - minMax[0] *= transform[0]; - minMax[1] *= transform[0]; - - if (transform[3] < 0) { - temp = minMax[2]; - minMax[2] = minMax[3]; - minMax[3] = temp; - } - - minMax[2] *= transform[3]; - minMax[3] *= transform[3]; - } else { + static get isOffscreenCanvasSupported() { + return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); + } +} +exports.FeatureTest = FeatureTest; +const hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, "0")); +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; + } + static scaleMinMax(transform, minMax) { + let temp; + if (transform[0]) { + if (transform[0] < 0) { temp = minMax[0]; - minMax[0] = minMax[2]; - minMax[2] = temp; - temp = minMax[1]; - minMax[1] = minMax[3]; + minMax[0] = minMax[1]; + minMax[1] = temp; + } + minMax[0] *= transform[0]; + minMax[1] *= transform[0]; + if (transform[3] < 0) { + temp = minMax[2]; + minMax[2] = minMax[3]; minMax[3] = temp; - - if (transform[1] < 0) { - temp = minMax[2]; - minMax[2] = minMax[3]; - minMax[3] = temp; - } - - minMax[2] *= transform[1]; - minMax[3] *= transform[1]; - - if (transform[2] < 0) { - temp = minMax[0]; - minMax[0] = minMax[1]; - minMax[1] = temp; - } - - minMax[0] *= transform[2]; - minMax[1] *= transform[2]; - } - - minMax[0] += transform[4]; - minMax[1] += transform[4]; - minMax[2] += transform[5]; - minMax[3] += transform[5]; - } - }, { - key: "transform", - value: function transform(m1, m2) { - return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; - } - }, { - key: "applyTransform", - value: function applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - } - }, { - key: "applyInverseTransform", - value: function applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - } - }, { - key: "getAxialAlignedBoundingBox", - value: function getAxialAlignedBoundingBox(r, m) { - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); - return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; - } - }, { - key: "inverseTransform", - value: function inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - } - }, { - key: "apply3dTransform", - value: function apply3dTransform(m, v) { - return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; - } - }, { - key: "singularValueDecompose2dScale", - value: function singularValueDecompose2dScale(m) { - var transpose = [m[0], m[2], m[1], m[3]]; - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - var first = (a + d) / 2; - var second = Math.sqrt(Math.pow(a + d, 2) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; - return [Math.sqrt(sx), Math.sqrt(sy)]; - } - }, { - key: "normalizeRect", - value: function normalizeRect(rect) { - var r = rect.slice(0); - - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - - return r; - } - }, { - key: "intersect", - value: function intersect(rect1, rect2) { - var xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); - var xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); - - if (xLow > xHigh) { - return null; - } - - var yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); - var yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); - - if (yLow > yHigh) { - return null; - } - - return [xLow, yLow, xHigh, yHigh]; - } - }, { - key: "bezierBoundingBox", - value: function bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) { - var tvalues = [], - bounds = [[], []]; - var a, b, c, t, t1, t2, b2ac, sqrtb2ac; - - for (var i = 0; i < 2; ++i) { - if (i === 0) { - b = 6 * x0 - 12 * x1 + 6 * x2; - a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; - c = 3 * x1 - 3 * x0; - } else { - b = 6 * y0 - 12 * y1 + 6 * y2; - a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; - c = 3 * y1 - 3 * y0; - } - - if (Math.abs(a) < 1e-12) { - if (Math.abs(b) < 1e-12) { - continue; - } - - t = -c / b; - - if (0 < t && t < 1) { - tvalues.push(t); - } - - continue; - } - - b2ac = b * b - 4 * c * a; - sqrtb2ac = Math.sqrt(b2ac); - - if (b2ac < 0) { + } + minMax[2] *= transform[3]; + minMax[3] *= transform[3]; + } else { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + if (transform[1] < 0) { + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + } + minMax[2] *= transform[1]; + minMax[3] *= transform[1]; + if (transform[2] < 0) { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + } + minMax[0] *= transform[2]; + minMax[1] *= transform[2]; + } + minMax[0] += transform[4]; + minMax[1] += transform[4]; + minMax[2] += transform[5]; + minMax[3] += transform[5]; + } + static transform(m1, m2) { + return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; + } + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + } + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + } + static getAxialAlignedBoundingBox(r, m) { + const p1 = Util.applyTransform(r, m); + const p2 = Util.applyTransform(r.slice(2, 4), m); + const p3 = Util.applyTransform([r[0], r[3]], m); + const p4 = Util.applyTransform([r[2], r[1]], m); + return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; + } + static inverseTransform(m) { + const d = m[0] * m[3] - m[1] * m[2]; + return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; + } + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + } + static normalizeRect(rect) { + const r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + } + static intersect(rect1, rect2) { + const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); + const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); + if (xLow > xHigh) { + return null; + } + const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); + const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); + if (yLow > yHigh) { + return null; + } + return [xLow, yLow, xHigh, yHigh]; + } + static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) { + const tvalues = [], + bounds = [[], []]; + let a, b, c, t, t1, t2, b2ac, sqrtb2ac; + for (let i = 0; i < 2; ++i) { + if (i === 0) { + b = 6 * x0 - 12 * x1 + 6 * x2; + a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; + c = 3 * x1 - 3 * x0; + } else { + b = 6 * y0 - 12 * y1 + 6 * y2; + a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; + c = 3 * y1 - 3 * y0; + } + if (Math.abs(a) < 1e-12) { + if (Math.abs(b) < 1e-12) { continue; } - - t1 = (-b + sqrtb2ac) / (2 * a); - - if (0 < t1 && t1 < 1) { - tvalues.push(t1); - } - - t2 = (-b - sqrtb2ac) / (2 * a); - - if (0 < t2 && t2 < 1) { - tvalues.push(t2); + t = -c / b; + if (0 < t && t < 1) { + tvalues.push(t); } + continue; } - - var j = tvalues.length, - mt; - var jlen = j; - - while (j--) { - t = tvalues[j]; - mt = 1 - t; - bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3; - bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3; + b2ac = b * b - 4 * c * a; + sqrtb2ac = Math.sqrt(b2ac); + if (b2ac < 0) { + continue; + } + t1 = (-b + sqrtb2ac) / (2 * a); + if (0 < t1 && t1 < 1) { + tvalues.push(t1); + } + t2 = (-b - sqrtb2ac) / (2 * a); + if (0 < t2 && t2 < 1) { + tvalues.push(t2); } - - bounds[0][jlen] = x0; - bounds[1][jlen] = y0; - bounds[0][jlen + 1] = x3; - bounds[1][jlen + 1] = y3; - bounds[0].length = bounds[1].length = jlen + 2; - return [Math.min.apply(Math, _toConsumableArray(bounds[0])), Math.min.apply(Math, _toConsumableArray(bounds[1])), Math.max.apply(Math, _toConsumableArray(bounds[0])), Math.max.apply(Math, _toConsumableArray(bounds[1]))]; } - }]); - - return Util; -}(); - + let j = tvalues.length, + mt; + const jlen = j; + while (j--) { + t = tvalues[j]; + mt = 1 - t; + bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3; + bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3; + } + bounds[0][jlen] = x0; + bounds[1][jlen] = y0; + bounds[0][jlen + 1] = x3; + bounds[1][jlen + 1] = y3; + bounds[0].length = bounds[1].length = jlen + 2; + return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])]; + } +} exports.Util = Util; -var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]; - +const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]; function stringToPDFString(str) { if (str[0] >= "\xEF") { - var encoding; - + let encoding; if (str[0] === "\xFE" && str[1] === "\xFF") { encoding = "utf-16be"; } else if (str[0] === "\xFF" && str[1] === "\xFE") { @@ -1100,95 +844,76 @@ function stringToPDFString(str) { } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { encoding = "utf-8"; } - if (encoding) { try { - var decoder = new TextDecoder(encoding, { + const decoder = new TextDecoder(encoding, { fatal: true }); - var buffer = stringToBytes(str); + const buffer = stringToBytes(str); return decoder.decode(buffer); } catch (ex) { - warn("stringToPDFString: \"".concat(ex, "\".")); + warn(`stringToPDFString: "${ex}".`); } } } - - var strBuf = []; - - for (var i = 0, ii = str.length; i < ii; i++) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; + const strBuf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); } - return strBuf.join(""); } - function escapeString(str) { - return str.replace(/([()\\\n\r])/g, function (match) { + return str.replace(/([()\\\n\r])/g, match => { if (match === "\n") { return "\\n"; } else if (match === "\r") { return "\\r"; } - - return "\\".concat(match); + return `\\${match}`; }); } - function isAscii(str) { return /^[\x00-\x7F]*$/.test(str); } - function stringToUTF16BEString(str) { - var buf = ["\xFE\xFF"]; - - for (var i = 0, ii = str.length; i < ii; i++) { - var _char = str.charCodeAt(i); - - buf.push(String.fromCharCode(_char >> 8 & 0xff), String.fromCharCode(_char & 0xff)); + const buf = ["\xFE\xFF"]; + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff)); } - return buf.join(""); } - function stringToUTF8String(str) { return decodeURIComponent(escape(str)); } - function utf8StringToString(str) { return unescape(encodeURIComponent(str)); } - function isArrayBuffer(v) { - return _typeof(v) === "object" && v !== null && v.byteLength !== undefined; + return typeof v === "object" && v !== null && v.byteLength !== undefined; } - function isArrayEqual(arr1, arr2) { if (arr1.length !== arr2.length) { return false; } - - for (var i = 0, ii = arr1.length; i < ii; i++) { + for (let i = 0, ii = arr1.length; i < ii; i++) { if (arr1[i] !== arr2[i]) { return false; } } - return true; } - function getModificationDate() { - var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); - var 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")]; + let date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; return buffer.join(""); } - function createPromiseCapability() { - var capability = Object.create(null); - var isSettled = false; + const capability = Object.create(null); + let isSettled = false; Object.defineProperty(capability, "settled", { - get: function get() { + get() { return isSettled; } }); @@ -1197,7 +922,6 @@ function createPromiseCapability() { isSettled = true; resolve(data); }; - capability.reject = function (reason) { isSettled = true; reject(reason); @@ -1214,62 +938,52 @@ function createPromiseCapability() { var _is_node = __w_pdfjs_require__(3); - -if (!globalThis._pdfjsCompatibilityChecked) { - globalThis._pdfjsCompatibilityChecked = true; - - (function checkNodeBtoa() { - if (globalThis.btoa || !_is_node.isNodeJS) { - return; - } - - globalThis.btoa = function (chars) { - return Buffer.from(chars, "binary").toString("base64"); - }; - })(); - - (function checkNodeAtob() { - if (globalThis.atob || !_is_node.isNodeJS) { - return; - } - - globalThis.atob = function (input) { - return Buffer.from(input, "base64").toString("binary"); - }; - })(); - - (function checkDOMMatrix() { - if (globalThis.DOMMatrix || !_is_node.isNodeJS) { - return; - } - - globalThis.DOMMatrix = require("dommatrix/dist/dommatrix.js"); - })(); - - (function checkPromise() { - if (globalThis.Promise.allSettled) { - return; - } - - globalThis.Promise = __w_pdfjs_require__(4); - })(); - - (function checkReadableStream() { - if (globalThis.ReadableStream || !_is_node.isNodeJS) { - return; - } - - globalThis.ReadableStream = require("web-streams-polyfill/dist/ponyfill.js").ReadableStream; - })(); - - (function checkStructuredClone() { - if (globalThis.structuredClone) { - return; - } - - __w_pdfjs_require__(137); - })(); -} +(function checkNodeBtoa() { + if (globalThis.btoa || !_is_node.isNodeJS) { + return; + } + globalThis.btoa = function (chars) { + return Buffer.from(chars, "binary").toString("base64"); + }; +})(); +(function checkNodeAtob() { + if (globalThis.atob || !_is_node.isNodeJS) { + return; + } + globalThis.atob = function (input) { + return Buffer.from(input, "base64").toString("binary"); + }; +})(); +(function checkDOMMatrix() { + if (globalThis.DOMMatrix || !_is_node.isNodeJS) { + return; + } + globalThis.DOMMatrix = require("canvas").DOMMatrix; +})(); +(function checkReadableStream() { + if (globalThis.ReadableStream || !_is_node.isNodeJS) { + return; + } + globalThis.ReadableStream = require("web-streams-polyfill/dist/ponyfill.js").ReadableStream; +})(); +(function checkArrayAt() { + if (Array.prototype.at) { + return; + } + __w_pdfjs_require__(4); +})(); +(function checkTypedArrayAt() { + if (Uint8Array.prototype.at) { + return; + } + __w_pdfjs_require__(79); +})(); +(function checkStructuredClone() { + if (globalThis.structuredClone) { + return; + } + __w_pdfjs_require__(89); +})(); /***/ }), /* 3 */ @@ -1282,10 +996,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.isNodeJS = void 0; - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -var isNodeJS = (typeof process === "undefined" ? "undefined" : _typeof(process)) === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); exports.isNodeJS = isNodeJS; /***/ }), @@ -1293,88 +1004,45 @@ exports.isNodeJS = isNodeJS; /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { __w_pdfjs_require__(5); -__w_pdfjs_require__(91); -__w_pdfjs_require__(97); -__w_pdfjs_require__(99); -__w_pdfjs_require__(131); -__w_pdfjs_require__(132); -__w_pdfjs_require__(133); -__w_pdfjs_require__(134); -var path = __w_pdfjs_require__(136); -module.exports = path.Promise; +var entryUnbind = __w_pdfjs_require__(78); +module.exports = entryUnbind('Array', 'at'); /***/ }), /* 5 */ /***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -__w_pdfjs_require__(6); - -/***/ }), -/* 6 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - "use strict"; -var $ = __w_pdfjs_require__(7); -var global = __w_pdfjs_require__(8); -var isPrototypeOf = __w_pdfjs_require__(27); -var getPrototypeOf = __w_pdfjs_require__(69); -var setPrototypeOf = __w_pdfjs_require__(71); -var copyConstructorProperties = __w_pdfjs_require__(57); -var create = __w_pdfjs_require__(73); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -var createPropertyDescriptor = __w_pdfjs_require__(15); -var clearErrorStack = __w_pdfjs_require__(77); -var installErrorCause = __w_pdfjs_require__(78); -var iterate = __w_pdfjs_require__(79); -var normalizeStringArgument = __w_pdfjs_require__(88); -var wellKnownSymbol = __w_pdfjs_require__(36); -var ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(90); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var Error = global.Error; -var push = [].push; -var $AggregateError = function AggregateError(errors, message) { - var options = arguments.length > 2 ? arguments[2] : undefined; - var isInstance = isPrototypeOf(AggregateErrorPrototype, this); - var that; - if (setPrototypeOf) { - that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype); - } else { - that = isInstance ? this : create(AggregateErrorPrototype); - createNonEnumerableProperty(that, TO_STRING_TAG, 'Error'); +var $ = __w_pdfjs_require__(6); +var toObject = __w_pdfjs_require__(44); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var toIntegerOrInfinity = __w_pdfjs_require__(66); +var addToUnscopables = __w_pdfjs_require__(73); +$({ + target: 'Array', + proto: true +}, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return k < 0 || k >= len ? undefined : O[k]; } - if (message !== undefined) - createNonEnumerableProperty(that, 'message', normalizeStringArgument(message)); - if (ERROR_STACK_INSTALLABLE) - createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1)); - installErrorCause(that, options); - var errorsArray = []; - iterate(errors, push, { that: errorsArray }); - createNonEnumerableProperty(that, 'errors', errorsArray); - return that; -}; -if (setPrototypeOf) - setPrototypeOf($AggregateError, Error); -else - copyConstructorProperties($AggregateError, Error, { name: true }); -var AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, { - constructor: createPropertyDescriptor(1, $AggregateError), - message: createPropertyDescriptor(1, ''), - name: createPropertyDescriptor(1, 'AggregateError') }); -$({ global: true }, { AggregateError: $AggregateError }); +addToUnscopables('at'); /***/ }), -/* 7 */ +/* 6 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var getOwnPropertyDescriptor = (__w_pdfjs_require__(9).f); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -var redefine = __w_pdfjs_require__(50); -var setGlobal = __w_pdfjs_require__(40); -var copyConstructorProperties = __w_pdfjs_require__(57); -var isForced = __w_pdfjs_require__(68); +var global = __w_pdfjs_require__(7); +var getOwnPropertyDescriptor = (__w_pdfjs_require__(8).f); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var defineBuiltIn = __w_pdfjs_require__(52); +var defineGlobalProperty = __w_pdfjs_require__(42); +var copyConstructorProperties = __w_pdfjs_require__(60); +var isForced = __w_pdfjs_require__(72); module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; @@ -1383,14 +1051,14 @@ module.exports = function (options, source) { if (GLOBAL) { target = global; } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); + target = global[TARGET] || defineGlobalProperty(TARGET, {}); } else { target = (global[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; - if (options.noTargetGet) { + if (options.dontCallGetSet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else @@ -1404,12 +1072,12 @@ module.exports = function (options, source) { if (options.sham || targetProperty && targetProperty.sham) { createNonEnumerableProperty(sourceProperty, 'sham', true); } - redefine(target, key, sourceProperty, options); + defineBuiltIn(target, key, sourceProperty, options); } }; /***/ }), -/* 8 */ +/* 7 */ /***/ ((module) => { var check = function (it) { @@ -1420,17 +1088,17 @@ module.exports = check(typeof globalThis == 'object' && globalThis) || check(typ }()) || Function('return this')(); /***/ }), -/* 9 */ +/* 8 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var DESCRIPTORS = __w_pdfjs_require__(10); -var call = __w_pdfjs_require__(12); -var propertyIsEnumerableModule = __w_pdfjs_require__(14); -var createPropertyDescriptor = __w_pdfjs_require__(15); -var toIndexedObject = __w_pdfjs_require__(16); -var toPropertyKey = __w_pdfjs_require__(21); -var hasOwn = __w_pdfjs_require__(41); -var IE8_DOM_DEFINE = __w_pdfjs_require__(44); +var DESCRIPTORS = __w_pdfjs_require__(9); +var call = __w_pdfjs_require__(11); +var propertyIsEnumerableModule = __w_pdfjs_require__(13); +var createPropertyDescriptor = __w_pdfjs_require__(14); +var toIndexedObject = __w_pdfjs_require__(15); +var toPropertyKey = __w_pdfjs_require__(22); +var hasOwn = __w_pdfjs_require__(43); +var IE8_DOM_DEFINE = __w_pdfjs_require__(46); var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); @@ -1445,10 +1113,10 @@ exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDes }; /***/ }), -/* 10 */ +/* 9 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var fails = __w_pdfjs_require__(11); +var fails = __w_pdfjs_require__(10); module.exports = !fails(function () { return Object.defineProperty({}, 1, { get: function () { @@ -1458,7 +1126,7 @@ module.exports = !fails(function () { }); /***/ }), -/* 11 */ +/* 10 */ /***/ ((module) => { module.exports = function (exec) { @@ -1470,20 +1138,20 @@ module.exports = function (exec) { }; /***/ }), -/* 12 */ +/* 11 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var NATIVE_BIND = __w_pdfjs_require__(13); +var NATIVE_BIND = __w_pdfjs_require__(12); var call = Function.prototype.call; module.exports = NATIVE_BIND ? call.bind(call) : function () { return call.apply(call, arguments); }; /***/ }), -/* 13 */ +/* 12 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var fails = __w_pdfjs_require__(11); +var fails = __w_pdfjs_require__(10); module.exports = !fails(function () { var test = function () { }.bind(); @@ -1491,7 +1159,7 @@ module.exports = !fails(function () { }); /***/ }), -/* 14 */ +/* 13 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -1505,7 +1173,7 @@ exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { } : $propertyIsEnumerable; /***/ }), -/* 15 */ +/* 14 */ /***/ ((module) => { module.exports = function (bitmap, value) { @@ -1518,94 +1186,108 @@ module.exports = function (bitmap, value) { }; /***/ }), -/* 16 */ +/* 15 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var IndexedObject = __w_pdfjs_require__(17); +var IndexedObject = __w_pdfjs_require__(16); var requireObjectCoercible = __w_pdfjs_require__(20); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), -/* 17 */ +/* 16 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var uncurryThis = __w_pdfjs_require__(18); -var fails = __w_pdfjs_require__(11); -var classof = __w_pdfjs_require__(19); -var Object = global.Object; +var uncurryThis = __w_pdfjs_require__(17); +var fails = __w_pdfjs_require__(10); +var classof = __w_pdfjs_require__(18); +var $Object = Object; var split = uncurryThis(''.split); module.exports = fails(function () { - return !Object('z').propertyIsEnumerable(0); + return !$Object('z').propertyIsEnumerable(0); }) ? function (it) { - return classof(it) == 'String' ? split(it, '') : Object(it); -} : Object; + return classof(it) == 'String' ? split(it, '') : $Object(it); +} : $Object; /***/ }), -/* 18 */ +/* 17 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var NATIVE_BIND = __w_pdfjs_require__(13); -var FunctionPrototype = Function.prototype; -var bind = FunctionPrototype.bind; -var call = FunctionPrototype.call; -var uncurryThis = NATIVE_BIND && bind.bind(call, call); -module.exports = NATIVE_BIND ? function (fn) { - return fn && uncurryThis(fn); -} : function (fn) { - return fn && function () { - return call.apply(fn, arguments); - }; +var classofRaw = __w_pdfjs_require__(18); +var uncurryThisRaw = __w_pdfjs_require__(19); +module.exports = function (fn) { + if (classofRaw(fn) === 'Function') + return uncurryThisRaw(fn); }; /***/ }), -/* 19 */ +/* 18 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var toString = uncurryThis({}.toString); -var stringSlice = uncurryThis(''.slice); +var uncurryThisRaw = __w_pdfjs_require__(19); +var toString = uncurryThisRaw({}.toString); +var stringSlice = uncurryThisRaw(''.slice); module.exports = function (it) { return stringSlice(toString(it), 8, -1); }; +/***/ }), +/* 19 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var NATIVE_BIND = __w_pdfjs_require__(12); +var FunctionPrototype = Function.prototype; +var call = FunctionPrototype.call; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + /***/ }), /* 20 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var TypeError = global.TypeError; +var isNullOrUndefined = __w_pdfjs_require__(21); +var $TypeError = TypeError; module.exports = function (it) { - if (it == undefined) - throw TypeError("Can't call method on " + it); + if (isNullOrUndefined(it)) + throw $TypeError("Can't call method on " + it); return it; }; /***/ }), /* 21 */ +/***/ ((module) => { + +module.exports = function (it) { + return it === null || it === undefined; +}; + +/***/ }), +/* 22 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var toPrimitive = __w_pdfjs_require__(22); -var isSymbol = __w_pdfjs_require__(25); +var toPrimitive = __w_pdfjs_require__(23); +var isSymbol = __w_pdfjs_require__(27); module.exports = function (argument) { var key = toPrimitive(argument, 'string'); return isSymbol(key) ? key : key + ''; }; /***/ }), -/* 22 */ +/* 23 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var call = __w_pdfjs_require__(12); -var isObject = __w_pdfjs_require__(23); -var isSymbol = __w_pdfjs_require__(25); -var getMethod = __w_pdfjs_require__(32); -var ordinaryToPrimitive = __w_pdfjs_require__(35); -var wellKnownSymbol = __w_pdfjs_require__(36); -var TypeError = global.TypeError; +var call = __w_pdfjs_require__(11); +var isObject = __w_pdfjs_require__(24); +var isSymbol = __w_pdfjs_require__(27); +var getMethod = __w_pdfjs_require__(34); +var ordinaryToPrimitive = __w_pdfjs_require__(37); +var wellKnownSymbol = __w_pdfjs_require__(38); +var $TypeError = TypeError; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); module.exports = function (input, pref) { if (!isObject(input) || isSymbol(input)) @@ -1618,7 +1300,7 @@ module.exports = function (input, pref) { result = call(exoticToPrim, input, pref); if (!isObject(result) || isSymbol(result)) return result; - throw TypeError("Can't convert object to primitive value"); + throw $TypeError("Can't convert object to primitive value"); } if (pref === undefined) pref = 'number'; @@ -1626,45 +1308,63 @@ module.exports = function (input, pref) { }; /***/ }), -/* 23 */ +/* 24 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var isCallable = __w_pdfjs_require__(24); -module.exports = function (it) { +var isCallable = __w_pdfjs_require__(25); +var $documentAll = __w_pdfjs_require__(26); +var documentAll = $documentAll.all; +module.exports = $documentAll.IS_HTMLDDA ? function (it) { + return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll; +} : function (it) { return typeof it == 'object' ? it !== null : isCallable(it); }; /***/ }), -/* 24 */ -/***/ ((module) => { +/* 25 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -module.exports = function (argument) { +var $documentAll = __w_pdfjs_require__(26); +var documentAll = $documentAll.all; +module.exports = $documentAll.IS_HTMLDDA ? function (argument) { + return typeof argument == 'function' || argument === documentAll; +} : function (argument) { return typeof argument == 'function'; }; /***/ }), -/* 25 */ +/* 26 */ +/***/ ((module) => { + +var documentAll = typeof document == 'object' && document.all; +var IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined; +module.exports = { + all: documentAll, + IS_HTMLDDA: IS_HTMLDDA +}; + +/***/ }), +/* 27 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var getBuiltIn = __w_pdfjs_require__(26); -var isCallable = __w_pdfjs_require__(24); -var isPrototypeOf = __w_pdfjs_require__(27); -var USE_SYMBOL_AS_UID = __w_pdfjs_require__(28); -var Object = global.Object; +var getBuiltIn = __w_pdfjs_require__(28); +var isCallable = __w_pdfjs_require__(25); +var isPrototypeOf = __w_pdfjs_require__(29); +var USE_SYMBOL_AS_UID = __w_pdfjs_require__(30); +var $Object = Object; module.exports = USE_SYMBOL_AS_UID ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn('Symbol'); - return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); + return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it)); }; /***/ }), -/* 26 */ +/* 28 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isCallable = __w_pdfjs_require__(24); +var global = __w_pdfjs_require__(7); +var isCallable = __w_pdfjs_require__(25); var aFunction = function (argument) { return isCallable(argument) ? argument : undefined; }; @@ -1673,36 +1373,36 @@ module.exports = function (namespace, method) { }; /***/ }), -/* 27 */ +/* 29 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); +var uncurryThis = __w_pdfjs_require__(17); module.exports = uncurryThis({}.isPrototypeOf); /***/ }), -/* 28 */ +/* 30 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var NATIVE_SYMBOL = __w_pdfjs_require__(29); +var NATIVE_SYMBOL = __w_pdfjs_require__(31); module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; /***/ }), -/* 29 */ +/* 31 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var V8_VERSION = __w_pdfjs_require__(30); -var fails = __w_pdfjs_require__(11); +var V8_VERSION = __w_pdfjs_require__(32); +var fails = __w_pdfjs_require__(10); module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol(); return !String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); /***/ }), -/* 30 */ +/* 32 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var userAgent = __w_pdfjs_require__(31); +var global = __w_pdfjs_require__(7); +var userAgent = __w_pdfjs_require__(33); var process = global.process; var Deno = global.Deno; var versions = process && process.versions || Deno && Deno.version; @@ -1723,59 +1423,57 @@ if (!version && userAgent) { module.exports = version; /***/ }), -/* 31 */ +/* 33 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var getBuiltIn = __w_pdfjs_require__(26); +var getBuiltIn = __w_pdfjs_require__(28); module.exports = getBuiltIn('navigator', 'userAgent') || ''; /***/ }), -/* 32 */ +/* 34 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var aCallable = __w_pdfjs_require__(33); +var aCallable = __w_pdfjs_require__(35); +var isNullOrUndefined = __w_pdfjs_require__(21); module.exports = function (V, P) { var func = V[P]; - return func == null ? undefined : aCallable(func); + return isNullOrUndefined(func) ? undefined : aCallable(func); }; /***/ }), -/* 33 */ +/* 35 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isCallable = __w_pdfjs_require__(24); -var tryToString = __w_pdfjs_require__(34); -var TypeError = global.TypeError; +var isCallable = __w_pdfjs_require__(25); +var tryToString = __w_pdfjs_require__(36); +var $TypeError = TypeError; module.exports = function (argument) { if (isCallable(argument)) return argument; - throw TypeError(tryToString(argument) + ' is not a function'); + throw $TypeError(tryToString(argument) + ' is not a function'); }; /***/ }), -/* 34 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { +/* 36 */ +/***/ ((module) => { -var global = __w_pdfjs_require__(8); -var String = global.String; +var $String = String; module.exports = function (argument) { try { - return String(argument); + return $String(argument); } catch (error) { return 'Object'; } }; /***/ }), -/* 35 */ +/* 37 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var call = __w_pdfjs_require__(12); -var isCallable = __w_pdfjs_require__(24); -var isObject = __w_pdfjs_require__(23); -var TypeError = global.TypeError; +var call = __w_pdfjs_require__(11); +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var $TypeError = TypeError; module.exports = function (input, pref) { var fn, val; if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) @@ -1784,19 +1482,19 @@ module.exports = function (input, pref) { return val; if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; - throw TypeError("Can't convert object to primitive value"); + throw $TypeError("Can't convert object to primitive value"); }; /***/ }), -/* 36 */ +/* 38 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var shared = __w_pdfjs_require__(37); -var hasOwn = __w_pdfjs_require__(41); -var uid = __w_pdfjs_require__(43); -var NATIVE_SYMBOL = __w_pdfjs_require__(29); -var USE_SYMBOL_AS_UID = __w_pdfjs_require__(28); +var global = __w_pdfjs_require__(7); +var shared = __w_pdfjs_require__(39); +var hasOwn = __w_pdfjs_require__(43); +var uid = __w_pdfjs_require__(45); +var NATIVE_SYMBOL = __w_pdfjs_require__(31); +var USE_SYMBOL_AS_UID = __w_pdfjs_require__(30); var WellKnownSymbolsStore = shared('wks'); var Symbol = global.Symbol; var symbolFor = Symbol && Symbol['for']; @@ -1816,42 +1514,42 @@ module.exports = function (name) { }; /***/ }), -/* 37 */ +/* 39 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var IS_PURE = __w_pdfjs_require__(38); -var store = __w_pdfjs_require__(39); +var IS_PURE = __w_pdfjs_require__(40); +var store = __w_pdfjs_require__(41); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ - version: '3.22.3', + version: '3.26.0', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)', - license: 'https://github.com/zloirock/core-js/blob/v3.22.3/LICENSE', + license: 'https://github.com/zloirock/core-js/blob/v3.26.0/LICENSE', source: 'https://github.com/zloirock/core-js' }); /***/ }), -/* 38 */ +/* 40 */ /***/ ((module) => { module.exports = false; /***/ }), -/* 39 */ +/* 41 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var setGlobal = __w_pdfjs_require__(40); +var global = __w_pdfjs_require__(7); +var defineGlobalProperty = __w_pdfjs_require__(42); var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); +var store = global[SHARED] || defineGlobalProperty(SHARED, {}); module.exports = store; /***/ }), -/* 40 */ +/* 42 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); +var global = __w_pdfjs_require__(7); var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { @@ -1867,32 +1565,31 @@ module.exports = function (key, value) { }; /***/ }), -/* 41 */ +/* 43 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var toObject = __w_pdfjs_require__(42); +var uncurryThis = __w_pdfjs_require__(17); +var toObject = __w_pdfjs_require__(44); var hasOwnProperty = uncurryThis({}.hasOwnProperty); module.exports = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject(it), key); }; /***/ }), -/* 42 */ +/* 44 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); var requireObjectCoercible = __w_pdfjs_require__(20); -var Object = global.Object; +var $Object = Object; module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); + return $Object(requireObjectCoercible(argument)); }; /***/ }), -/* 43 */ +/* 45 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); +var uncurryThis = __w_pdfjs_require__(17); var id = 0; var postfix = Math.random(); var toString = uncurryThis(1.0.toString); @@ -1901,12 +1598,12 @@ module.exports = function (key) { }; /***/ }), -/* 44 */ +/* 46 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var DESCRIPTORS = __w_pdfjs_require__(10); -var fails = __w_pdfjs_require__(11); -var createElement = __w_pdfjs_require__(45); +var DESCRIPTORS = __w_pdfjs_require__(9); +var fails = __w_pdfjs_require__(10); +var createElement = __w_pdfjs_require__(47); module.exports = !DESCRIPTORS && !fails(function () { return Object.defineProperty(createElement('div'), 'a', { get: function () { @@ -1916,11 +1613,11 @@ module.exports = !DESCRIPTORS && !fails(function () { }); /***/ }), -/* 45 */ +/* 47 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isObject = __w_pdfjs_require__(23); +var global = __w_pdfjs_require__(7); +var isObject = __w_pdfjs_require__(24); var document = global.document; var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { @@ -1928,12 +1625,12 @@ module.exports = function (it) { }; /***/ }), -/* 46 */ +/* 48 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var DESCRIPTORS = __w_pdfjs_require__(10); -var definePropertyModule = __w_pdfjs_require__(47); -var createPropertyDescriptor = __w_pdfjs_require__(15); +var DESCRIPTORS = __w_pdfjs_require__(9); +var definePropertyModule = __w_pdfjs_require__(49); +var createPropertyDescriptor = __w_pdfjs_require__(14); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { @@ -1942,16 +1639,15 @@ module.exports = DESCRIPTORS ? function (object, key, value) { }; /***/ }), -/* 47 */ +/* 49 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var DESCRIPTORS = __w_pdfjs_require__(10); -var IE8_DOM_DEFINE = __w_pdfjs_require__(44); -var V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(48); -var anObject = __w_pdfjs_require__(49); -var toPropertyKey = __w_pdfjs_require__(21); -var TypeError = global.TypeError; +var DESCRIPTORS = __w_pdfjs_require__(9); +var IE8_DOM_DEFINE = __w_pdfjs_require__(46); +var V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(50); +var anObject = __w_pdfjs_require__(51); +var toPropertyKey = __w_pdfjs_require__(22); +var $TypeError = TypeError; var $defineProperty = Object.defineProperty; var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ENUMERABLE = 'enumerable'; @@ -1983,18 +1679,18 @@ exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P } catch (error) { } if ('get' in Attributes || 'set' in Attributes) - throw TypeError('Accessors not supported'); + throw $TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), -/* 48 */ +/* 50 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var DESCRIPTORS = __w_pdfjs_require__(10); -var fails = __w_pdfjs_require__(11); +var DESCRIPTORS = __w_pdfjs_require__(9); +var fails = __w_pdfjs_require__(10); module.exports = DESCRIPTORS && fails(function () { return Object.defineProperty(function () { }, 'prototype', { @@ -2004,78 +1700,141 @@ module.exports = DESCRIPTORS && fails(function () { }); /***/ }), -/* 49 */ +/* 51 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isObject = __w_pdfjs_require__(23); -var String = global.String; -var TypeError = global.TypeError; +var isObject = __w_pdfjs_require__(24); +var $String = String; +var $TypeError = TypeError; module.exports = function (argument) { if (isObject(argument)) return argument; - throw TypeError(String(argument) + ' is not an object'); + throw $TypeError($String(argument) + ' is not an object'); }; /***/ }), -/* 50 */ +/* 52 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isCallable = __w_pdfjs_require__(24); -var hasOwn = __w_pdfjs_require__(41); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -var setGlobal = __w_pdfjs_require__(40); -var inspectSource = __w_pdfjs_require__(51); -var InternalStateModule = __w_pdfjs_require__(52); -var CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(56).CONFIGURABLE); -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - var name = options && options.name !== undefined ? options.name : key; - var state; - if (isCallable(value)) { - if (String(name).slice(0, 7) === 'Symbol(') { - name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; - } - if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) { - createNonEnumerableProperty(value, 'name', name); - } - state = enforceInternalState(value); - if (!state.source) { - state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); +var isCallable = __w_pdfjs_require__(25); +var definePropertyModule = __w_pdfjs_require__(49); +var makeBuiltIn = __w_pdfjs_require__(53); +var defineGlobalProperty = __w_pdfjs_require__(42); +module.exports = function (O, key, value, options) { + if (!options) + options = {}; + var simple = options.enumerable; + var name = options.name !== undefined ? options.name : key; + if (isCallable(value)) + makeBuiltIn(value, name, options); + if (options.global) { + if (simple) + O[key] = value; + else + defineGlobalProperty(key, value); + } else { + try { + if (!options.unsafe) + delete O[key]; + else if (O[key]) + simple = true; + } catch (error) { } - } - if (O === global) { if (simple) O[key] = value; else - setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; + definePropertyModule.f(O, key, { + value: value, + enumerable: false, + configurable: !options.nonConfigurable, + writable: !options.nonWritable + }); } - if (simple) - O[key] = value; - else - createNonEnumerableProperty(O, key, value); -})(Function.prototype, 'toString', function toString() { - return isCallable(this) && getInternalState(this).source || inspectSource(this); + return O; +}; + +/***/ }), +/* 53 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var hasOwn = __w_pdfjs_require__(43); +var DESCRIPTORS = __w_pdfjs_require__(9); +var CONFIGURABLE_FUNCTION_NAME = (__w_pdfjs_require__(54).CONFIGURABLE); +var inspectSource = __w_pdfjs_require__(55); +var InternalStateModule = __w_pdfjs_require__(56); +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var defineProperty = Object.defineProperty; +var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () { + return defineProperty(function () { + }, 'length', { value: 8 }).length !== 8; }); +var TEMPLATE = String(String).split('String'); +var makeBuiltIn = module.exports = function (value, name, options) { + if (String(name).slice(0, 7) === 'Symbol(') { + name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (options && options.getter) + name = 'get ' + name; + if (options && options.setter) + name = 'set ' + name; + if (!hasOwn(value, 'name') || CONFIGURABLE_FUNCTION_NAME && value.name !== name) { + if (DESCRIPTORS) + defineProperty(value, 'name', { + value: name, + configurable: true + }); + else + value.name = name; + } + if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) { + defineProperty(value, 'length', { value: options.arity }); + } + try { + if (options && hasOwn(options, 'constructor') && options.constructor) { + if (DESCRIPTORS) + defineProperty(value, 'prototype', { writable: false }); + } else if (value.prototype) + value.prototype = undefined; + } catch (error) { + } + var state = enforceInternalState(value); + if (!hasOwn(state, 'source')) { + state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); + } + return value; +}; +Function.prototype.toString = makeBuiltIn(function toString() { + return isCallable(this) && getInternalState(this).source || inspectSource(this); +}, 'toString'); /***/ }), -/* 51 */ +/* 54 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var DESCRIPTORS = __w_pdfjs_require__(9); +var hasOwn = __w_pdfjs_require__(43); +var FunctionPrototype = Function.prototype; +var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; +var EXISTS = hasOwn(FunctionPrototype, 'name'); +var PROPER = EXISTS && function something() { +}.name === 'something'; +var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable); +module.exports = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE +}; + +/***/ }), +/* 55 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var isCallable = __w_pdfjs_require__(24); -var store = __w_pdfjs_require__(39); +var uncurryThis = __w_pdfjs_require__(17); +var isCallable = __w_pdfjs_require__(25); +var store = __w_pdfjs_require__(41); var functionToString = uncurryThis(Function.toString); if (!isCallable(store.inspectSource)) { store.inspectSource = function (it) { @@ -2085,18 +1844,17 @@ if (!isCallable(store.inspectSource)) { module.exports = store.inspectSource; /***/ }), -/* 52 */ +/* 56 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var NATIVE_WEAK_MAP = __w_pdfjs_require__(53); -var global = __w_pdfjs_require__(8); -var uncurryThis = __w_pdfjs_require__(18); -var isObject = __w_pdfjs_require__(23); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -var hasOwn = __w_pdfjs_require__(41); -var shared = __w_pdfjs_require__(39); -var sharedKey = __w_pdfjs_require__(54); -var hiddenKeys = __w_pdfjs_require__(55); +var NATIVE_WEAK_MAP = __w_pdfjs_require__(57); +var global = __w_pdfjs_require__(7); +var isObject = __w_pdfjs_require__(24); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var hasOwn = __w_pdfjs_require__(43); +var shared = __w_pdfjs_require__(41); +var sharedKey = __w_pdfjs_require__(58); +var hiddenKeys = __w_pdfjs_require__(59); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; var TypeError = global.TypeError; var WeakMap = global.WeakMap; @@ -2115,28 +1873,28 @@ var getterFor = function (TYPE) { }; if (NATIVE_WEAK_MAP || shared.state) { var store = shared.state || (shared.state = new WeakMap()); - var wmget = uncurryThis(store.get); - var wmhas = uncurryThis(store.has); - var wmset = uncurryThis(store.set); + store.get = store.get; + store.has = store.has; + store.set = store.set; set = function (it, metadata) { - if (wmhas(store, it)) - throw new TypeError(OBJECT_ALREADY_INITIALIZED); + if (store.has(it)) + throw TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; - wmset(store, it, metadata); + store.set(it, metadata); return metadata; }; get = function (it) { - return wmget(store, it) || {}; + return store.get(it) || {}; }; has = function (it) { - return wmhas(store, it); + return store.has(it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { if (hasOwn(it, STATE)) - throw new TypeError(OBJECT_ALREADY_INITIALIZED); + throw TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; createNonEnumerableProperty(it, STATE, metadata); return metadata; @@ -2157,58 +1915,39 @@ module.exports = { }; /***/ }), -/* 53 */ +/* 57 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isCallable = __w_pdfjs_require__(24); -var inspectSource = __w_pdfjs_require__(51); +var global = __w_pdfjs_require__(7); +var isCallable = __w_pdfjs_require__(25); var WeakMap = global.WeakMap; -module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); /***/ }), -/* 54 */ +/* 58 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var shared = __w_pdfjs_require__(37); -var uid = __w_pdfjs_require__(43); +var shared = __w_pdfjs_require__(39); +var uid = __w_pdfjs_require__(45); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }), -/* 55 */ +/* 59 */ /***/ ((module) => { module.exports = {}; /***/ }), -/* 56 */ +/* 60 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var DESCRIPTORS = __w_pdfjs_require__(10); -var hasOwn = __w_pdfjs_require__(41); -var FunctionPrototype = Function.prototype; -var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; -var EXISTS = hasOwn(FunctionPrototype, 'name'); -var PROPER = EXISTS && function something() { -}.name === 'something'; -var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable); -module.exports = { - EXISTS: EXISTS, - PROPER: PROPER, - CONFIGURABLE: CONFIGURABLE -}; - -/***/ }), -/* 57 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var hasOwn = __w_pdfjs_require__(41); -var ownKeys = __w_pdfjs_require__(58); -var getOwnPropertyDescriptorModule = __w_pdfjs_require__(9); -var definePropertyModule = __w_pdfjs_require__(47); +var hasOwn = __w_pdfjs_require__(43); +var ownKeys = __w_pdfjs_require__(61); +var getOwnPropertyDescriptorModule = __w_pdfjs_require__(8); +var definePropertyModule = __w_pdfjs_require__(49); module.exports = function (target, source, exceptions) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; @@ -2222,14 +1961,14 @@ module.exports = function (target, source, exceptions) { }; /***/ }), -/* 58 */ +/* 61 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var getBuiltIn = __w_pdfjs_require__(26); -var uncurryThis = __w_pdfjs_require__(18); -var getOwnPropertyNamesModule = __w_pdfjs_require__(59); -var getOwnPropertySymbolsModule = __w_pdfjs_require__(67); -var anObject = __w_pdfjs_require__(49); +var getBuiltIn = __w_pdfjs_require__(28); +var uncurryThis = __w_pdfjs_require__(17); +var getOwnPropertyNamesModule = __w_pdfjs_require__(62); +var getOwnPropertySymbolsModule = __w_pdfjs_require__(71); +var anObject = __w_pdfjs_require__(51); var concat = uncurryThis([].concat); module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject(it)); @@ -2238,25 +1977,25 @@ module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { }; /***/ }), -/* 59 */ +/* 62 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var internalObjectKeys = __w_pdfjs_require__(60); -var enumBugKeys = __w_pdfjs_require__(66); +var internalObjectKeys = __w_pdfjs_require__(63); +var enumBugKeys = __w_pdfjs_require__(70); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }), -/* 60 */ +/* 63 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var hasOwn = __w_pdfjs_require__(41); -var toIndexedObject = __w_pdfjs_require__(16); -var indexOf = (__w_pdfjs_require__(61).indexOf); -var hiddenKeys = __w_pdfjs_require__(55); +var uncurryThis = __w_pdfjs_require__(17); +var hasOwn = __w_pdfjs_require__(43); +var toIndexedObject = __w_pdfjs_require__(15); +var indexOf = (__w_pdfjs_require__(64).indexOf); +var hiddenKeys = __w_pdfjs_require__(59); var push = uncurryThis([].push); module.exports = function (object, names) { var O = toIndexedObject(object); @@ -2273,12 +2012,12 @@ module.exports = function (object, names) { }; /***/ }), -/* 61 */ +/* 64 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var toIndexedObject = __w_pdfjs_require__(16); -var toAbsoluteIndex = __w_pdfjs_require__(62); -var lengthOfArrayLike = __w_pdfjs_require__(64); +var toIndexedObject = __w_pdfjs_require__(15); +var toAbsoluteIndex = __w_pdfjs_require__(65); +var lengthOfArrayLike = __w_pdfjs_require__(68); var createMethod = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject($this); @@ -2305,10 +2044,10 @@ module.exports = { }; /***/ }), -/* 62 */ +/* 65 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var toIntegerOrInfinity = __w_pdfjs_require__(63); +var toIntegerOrInfinity = __w_pdfjs_require__(66); var max = Math.max; var min = Math.min; module.exports = function (index, length) { @@ -2317,37 +2056,47 @@ module.exports = function (index, length) { }; /***/ }), -/* 63 */ +/* 66 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +var trunc = __w_pdfjs_require__(67); +module.exports = function (argument) { + var number = +argument; + return number !== number || number === 0 ? 0 : trunc(number); +}; + +/***/ }), +/* 67 */ /***/ ((module) => { var ceil = Math.ceil; var floor = Math.floor; -module.exports = function (argument) { - var number = +argument; - return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); +module.exports = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil)(n); }; /***/ }), -/* 64 */ +/* 68 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var toLength = __w_pdfjs_require__(65); +var toLength = __w_pdfjs_require__(69); module.exports = function (obj) { return toLength(obj.length); }; /***/ }), -/* 65 */ +/* 69 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var toIntegerOrInfinity = __w_pdfjs_require__(63); +var toIntegerOrInfinity = __w_pdfjs_require__(66); var min = Math.min; module.exports = function (argument) { return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; }; /***/ }), -/* 66 */ +/* 70 */ /***/ ((module) => { module.exports = [ @@ -2361,17 +2110,17 @@ module.exports = [ ]; /***/ }), -/* 67 */ +/* 71 */ /***/ ((__unused_webpack_module, exports) => { exports.f = Object.getOwnPropertySymbols; /***/ }), -/* 68 */ +/* 72 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var fails = __w_pdfjs_require__(11); -var isCallable = __w_pdfjs_require__(24); +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; @@ -2386,94 +2135,35 @@ var POLYFILL = isForced.POLYFILL = 'P'; module.exports = isForced; /***/ }), -/* 69 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var global = __w_pdfjs_require__(8); -var hasOwn = __w_pdfjs_require__(41); -var isCallable = __w_pdfjs_require__(24); -var toObject = __w_pdfjs_require__(42); -var sharedKey = __w_pdfjs_require__(54); -var CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(70); -var IE_PROTO = sharedKey('IE_PROTO'); -var Object = global.Object; -var ObjectPrototype = Object.prototype; -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - var object = toObject(O); - if (hasOwn(object, IE_PROTO)) - return object[IE_PROTO]; - var constructor = object.constructor; - if (isCallable(constructor) && object instanceof constructor) { - return constructor.prototype; - } - return object instanceof Object ? ObjectPrototype : null; -}; - -/***/ }), -/* 70 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var fails = __w_pdfjs_require__(11); -module.exports = !fails(function () { - function F() { - } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; -}); - -/***/ }), -/* 71 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var uncurryThis = __w_pdfjs_require__(18); -var anObject = __w_pdfjs_require__(49); -var aPossiblePrototype = __w_pdfjs_require__(72); -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); - setter(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { - } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) - setter(O, proto); - else - O.__proto__ = proto; - return O; - }; -}()) : undefined); - -/***/ }), -/* 72 */ +/* 73 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var isCallable = __w_pdfjs_require__(24); -var String = global.String; -var TypeError = global.TypeError; -module.exports = function (argument) { - if (typeof argument == 'object' || isCallable(argument)) - return argument; - throw TypeError("Can't set " + String(argument) + ' as a prototype'); +var wellKnownSymbol = __w_pdfjs_require__(38); +var create = __w_pdfjs_require__(74); +var defineProperty = (__w_pdfjs_require__(49).f); +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; +if (ArrayPrototype[UNSCOPABLES] == undefined) { + defineProperty(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; }; /***/ }), -/* 73 */ +/* 74 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var anObject = __w_pdfjs_require__(49); -var definePropertiesModule = __w_pdfjs_require__(74); -var enumBugKeys = __w_pdfjs_require__(66); -var hiddenKeys = __w_pdfjs_require__(55); -var html = __w_pdfjs_require__(76); -var documentCreateElement = __w_pdfjs_require__(45); -var sharedKey = __w_pdfjs_require__(54); +var anObject = __w_pdfjs_require__(51); +var definePropertiesModule = __w_pdfjs_require__(75); +var enumBugKeys = __w_pdfjs_require__(70); +var hiddenKeys = __w_pdfjs_require__(59); +var html = __w_pdfjs_require__(77); +var documentCreateElement = __w_pdfjs_require__(47); +var sharedKey = __w_pdfjs_require__(58); var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; @@ -2530,15 +2220,15 @@ module.exports = Object.create || function create(O, Properties) { }; /***/ }), -/* 74 */ +/* 75 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var DESCRIPTORS = __w_pdfjs_require__(10); -var V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(48); -var definePropertyModule = __w_pdfjs_require__(47); -var anObject = __w_pdfjs_require__(49); -var toIndexedObject = __w_pdfjs_require__(16); -var objectKeys = __w_pdfjs_require__(75); +var DESCRIPTORS = __w_pdfjs_require__(9); +var V8_PROTOTYPE_DEFINE_BUG = __w_pdfjs_require__(50); +var definePropertyModule = __w_pdfjs_require__(49); +var anObject = __w_pdfjs_require__(51); +var toIndexedObject = __w_pdfjs_require__(15); +var objectKeys = __w_pdfjs_require__(76); exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var props = toIndexedObject(Properties); @@ -2552,303 +2242,393 @@ exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : }; /***/ }), -/* 75 */ +/* 76 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var internalObjectKeys = __w_pdfjs_require__(60); -var enumBugKeys = __w_pdfjs_require__(66); +var internalObjectKeys = __w_pdfjs_require__(63); +var enumBugKeys = __w_pdfjs_require__(70); module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), -/* 76 */ +/* 77 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var getBuiltIn = __w_pdfjs_require__(26); +var getBuiltIn = __w_pdfjs_require__(28); module.exports = getBuiltIn('document', 'documentElement'); /***/ }), -/* 77 */ +/* 78 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var $Error = Error; -var replace = uncurryThis(''.replace); -var TEST = function (arg) { - return String($Error(arg).stack); -}('zxcasd'); -var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; -var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); -module.exports = function (stack, dropEntries) { - if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { - while (dropEntries--) - stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); - } - return stack; +var global = __w_pdfjs_require__(7); +var uncurryThis = __w_pdfjs_require__(17); +module.exports = function (CONSTRUCTOR, METHOD) { + return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]); }; /***/ }), -/* 78 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { +/* 79 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -var isObject = __w_pdfjs_require__(23); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -module.exports = function (O, options) { - if (isObject(options) && 'cause' in options) { - createNonEnumerableProperty(O, 'cause', options.cause); - } -}; +__w_pdfjs_require__(80); /***/ }), -/* 79 */ +/* 80 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var ArrayBufferViewCore = __w_pdfjs_require__(81); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var toIntegerOrInfinity = __w_pdfjs_require__(66); +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +exportTypedArrayMethod('at', function at(index) { + var O = aTypedArray(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return k < 0 || k >= len ? undefined : O[k]; +}); + +/***/ }), +/* 81 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var bind = __w_pdfjs_require__(80); -var call = __w_pdfjs_require__(12); -var anObject = __w_pdfjs_require__(49); -var tryToString = __w_pdfjs_require__(34); -var isArrayIteratorMethod = __w_pdfjs_require__(81); -var lengthOfArrayLike = __w_pdfjs_require__(64); -var isPrototypeOf = __w_pdfjs_require__(27); -var getIterator = __w_pdfjs_require__(83); -var getIteratorMethod = __w_pdfjs_require__(84); -var iteratorClose = __w_pdfjs_require__(87); +"use strict"; + +var NATIVE_ARRAY_BUFFER = __w_pdfjs_require__(82); +var DESCRIPTORS = __w_pdfjs_require__(9); +var global = __w_pdfjs_require__(7); +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var hasOwn = __w_pdfjs_require__(43); +var classof = __w_pdfjs_require__(83); +var tryToString = __w_pdfjs_require__(36); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var defineBuiltIn = __w_pdfjs_require__(52); +var defineProperty = (__w_pdfjs_require__(49).f); +var isPrototypeOf = __w_pdfjs_require__(29); +var getPrototypeOf = __w_pdfjs_require__(85); +var setPrototypeOf = __w_pdfjs_require__(87); +var wellKnownSymbol = __w_pdfjs_require__(38); +var uid = __w_pdfjs_require__(45); +var InternalStateModule = __w_pdfjs_require__(56); +var enforceInternalState = InternalStateModule.enforce; +var getInternalState = InternalStateModule.get; +var Int8Array = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; var TypeError = global.TypeError; -var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); +var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor'; +var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera'; +var TYPED_ARRAY_TAG_REQUIRED = false; +var NAME, Constructor, Prototype; +var TypedArrayConstructorsList = { + Int8Array: 1, + Uint8Array: 1, + Uint8ClampedArray: 1, + Int16Array: 2, + Uint16Array: 2, + Int32Array: 4, + Uint32Array: 4, + Float32Array: 4, + Float64Array: 8 }; -var ResultPrototype = Result.prototype; -module.exports = function (iterable, unboundFunction, options) { - var that = options && options.that; - var AS_ENTRIES = !!(options && options.AS_ENTRIES); - var IS_ITERATOR = !!(options && options.IS_ITERATOR); - var INTERRUPTED = !!(options && options.INTERRUPTED); - var fn = bind(unboundFunction, that); - var iterator, iterFn, index, length, result, next, step; - var stop = function (condition) { - if (iterator) - iteratorClose(iterator, 'normal', condition); - return new Result(true, condition); - }; - var callFn = function (value) { - if (AS_ENTRIES) { - anObject(value); - return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); +var BigIntArrayConstructorsList = { + BigInt64Array: 8, + BigUint64Array: 8 +}; +var isView = function isView(it) { + if (!isObject(it)) + return false; + var klass = classof(it); + return klass === 'DataView' || hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass); +}; +var getTypedArrayConstructor = function (it) { + var proto = getPrototypeOf(it); + if (!isObject(proto)) + return; + var state = getInternalState(proto); + return state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto); +}; +var isTypedArray = function (it) { + if (!isObject(it)) + return false; + var klass = classof(it); + return hasOwn(TypedArrayConstructorsList, klass) || hasOwn(BigIntArrayConstructorsList, klass); +}; +var aTypedArray = function (it) { + if (isTypedArray(it)) + return it; + throw TypeError('Target is not a typed array'); +}; +var aTypedArrayConstructor = function (C) { + if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) + return C; + throw TypeError(tryToString(C) + ' is not a typed array constructor'); +}; +var exportTypedArrayMethod = function (KEY, property, forced, options) { + if (!DESCRIPTORS) + return; + if (forced) + for (var ARRAY in TypedArrayConstructorsList) { + var TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) + try { + delete TypedArrayConstructor.prototype[KEY]; + } catch (error) { + try { + TypedArrayConstructor.prototype[KEY] = property; + } catch (error2) { + } + } } - return INTERRUPTED ? fn(value, stop) : fn(value); - }; - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (!iterFn) - throw TypeError(tryToString(iterable) + ' is not iterable'); - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { - result = callFn(iterable[index]); - if (result && isPrototypeOf(ResultPrototype, result)) - return result; + if (!TypedArrayPrototype[KEY] || forced) { + defineBuiltIn(TypedArrayPrototype, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options); + } +}; +var exportTypedArrayStaticMethod = function (KEY, property, forced) { + var ARRAY, TypedArrayConstructor; + if (!DESCRIPTORS) + return; + if (setPrototypeOf) { + if (forced) + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) + try { + delete TypedArrayConstructor[KEY]; + } catch (error) { + } } - return new Result(false); - } - iterator = getIterator(iterable, iterFn); + if (!TypedArray[KEY] || forced) { + try { + return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property); + } catch (error) { + } + } else + return; } - next = iterator.next; - while (!(step = call(next, iterator)).done) { - try { - result = callFn(step.value); - } catch (error) { - iteratorClose(iterator, 'throw', error); + for (ARRAY in TypedArrayConstructorsList) { + TypedArrayConstructor = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); } - if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) - return result; } - return new Result(false); }; - -/***/ }), -/* 80 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var uncurryThis = __w_pdfjs_require__(18); -var aCallable = __w_pdfjs_require__(33); -var NATIVE_BIND = __w_pdfjs_require__(13); -var bind = uncurryThis(uncurryThis.bind); -module.exports = function (fn, that) { - aCallable(fn); - return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () { - return fn.apply(that, arguments); +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) + enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else + NATIVE_ARRAY_BUFFER_VIEWS = false; +} +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) + enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; +} +if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) { + TypedArray = function TypedArray() { + throw TypeError('Incorrect invocation'); }; -}; - -/***/ }), -/* 81 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var wellKnownSymbol = __w_pdfjs_require__(36); -var Iterators = __w_pdfjs_require__(82); -var ITERATOR = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + if (NATIVE_ARRAY_BUFFER_VIEWS) + for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) + setPrototypeOf(global[NAME], TypedArray); + } +} +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) + for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) + setPrototypeOf(global[NAME].prototype, TypedArrayPrototype); + } +} +if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) { + setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); +} +if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) { + TYPED_ARRAY_TAG_REQUIRED = true; + defineProperty(TypedArrayPrototype, TO_STRING_TAG, { + get: function () { + return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; + } + }); + for (NAME in TypedArrayConstructorsList) + if (global[NAME]) { + createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME); + } +} +module.exports = { + NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS, + TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG, + aTypedArray: aTypedArray, + aTypedArrayConstructor: aTypedArrayConstructor, + exportTypedArrayMethod: exportTypedArrayMethod, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod, + getTypedArrayConstructor: getTypedArrayConstructor, + isView: isView, + isTypedArray: isTypedArray, + TypedArray: TypedArray, + TypedArrayPrototype: TypedArrayPrototype }; /***/ }), /* 82 */ /***/ ((module) => { -module.exports = {}; +module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; /***/ }), /* 83 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var call = __w_pdfjs_require__(12); -var aCallable = __w_pdfjs_require__(33); -var anObject = __w_pdfjs_require__(49); -var tryToString = __w_pdfjs_require__(34); -var getIteratorMethod = __w_pdfjs_require__(84); -var TypeError = global.TypeError; -module.exports = function (argument, usingIterator) { - var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; - if (aCallable(iteratorMethod)) - return anObject(call(iteratorMethod, argument)); - throw TypeError(tryToString(argument) + ' is not iterable'); +var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(84); +var isCallable = __w_pdfjs_require__(25); +var classofRaw = __w_pdfjs_require__(18); +var wellKnownSymbol = __w_pdfjs_require__(38); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var $Object = Object; +var CORRECT_ARGUMENTS = classofRaw((function () { + return arguments; +}())) == 'Arguments'; +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { + } }; - -/***/ }), +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; +}; + +/***/ }), /* 84 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var classof = __w_pdfjs_require__(85); -var getMethod = __w_pdfjs_require__(32); -var Iterators = __w_pdfjs_require__(82); -var wellKnownSymbol = __w_pdfjs_require__(36); -var ITERATOR = wellKnownSymbol('iterator'); -module.exports = function (it) { - if (it != undefined) - return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)]; -}; +var wellKnownSymbol = __w_pdfjs_require__(38); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; +test[TO_STRING_TAG] = 'z'; +module.exports = String(test) === '[object z]'; /***/ }), /* 85 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(86); -var isCallable = __w_pdfjs_require__(24); -var classofRaw = __w_pdfjs_require__(19); -var wellKnownSymbol = __w_pdfjs_require__(36); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var Object = global.Object; -var CORRECT_ARGUMENTS = classofRaw((function () { - return arguments; -}())) == 'Arguments'; -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { +var hasOwn = __w_pdfjs_require__(43); +var isCallable = __w_pdfjs_require__(25); +var toObject = __w_pdfjs_require__(44); +var sharedKey = __w_pdfjs_require__(58); +var CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(86); +var IE_PROTO = sharedKey('IE_PROTO'); +var $Object = Object; +var ObjectPrototype = $Object.prototype; +module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwn(object, IE_PROTO)) + return object[IE_PROTO]; + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; } -}; -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; + return object instanceof $Object ? ObjectPrototype : null; }; /***/ }), /* 86 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var wellKnownSymbol = __w_pdfjs_require__(36); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; -test[TO_STRING_TAG] = 'z'; -module.exports = String(test) === '[object z]'; +var fails = __w_pdfjs_require__(10); +module.exports = !fails(function () { + function F() { + } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; +}); /***/ }), /* 87 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var call = __w_pdfjs_require__(12); -var anObject = __w_pdfjs_require__(49); -var getMethod = __w_pdfjs_require__(32); -module.exports = function (iterator, kind, value) { - var innerResult, innerError; - anObject(iterator); +var uncurryThis = __w_pdfjs_require__(17); +var anObject = __w_pdfjs_require__(51); +var aPossiblePrototype = __w_pdfjs_require__(88); +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? (function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; try { - innerResult = getMethod(iterator, 'return'); - if (!innerResult) { - if (kind === 'throw') - throw value; - return value; - } - innerResult = call(innerResult, iterator); + setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); + setter(test, []); + CORRECT_SETTER = test instanceof Array; } catch (error) { - innerError = true; - innerResult = error; } - if (kind === 'throw') - throw value; - if (innerError) - throw innerResult; - anObject(innerResult); - return value; -}; + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) + setter(O, proto); + else + O.__proto__ = proto; + return O; + }; +}()) : undefined); /***/ }), /* 88 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var toString = __w_pdfjs_require__(89); -module.exports = function (argument, $default) { - return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +var isCallable = __w_pdfjs_require__(25); +var $String = String; +var $TypeError = TypeError; +module.exports = function (argument) { + if (typeof argument == 'object' || isCallable(argument)) + return argument; + throw $TypeError("Can't set " + $String(argument) + ' as a prototype'); }; /***/ }), /* 89 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var classof = __w_pdfjs_require__(85); -var String = global.String; -module.exports = function (argument) { - if (classof(argument) === 'Symbol') - throw TypeError('Cannot convert a Symbol value to a string'); - return String(argument); -}; +__w_pdfjs_require__(90); +__w_pdfjs_require__(97); +__w_pdfjs_require__(99); +__w_pdfjs_require__(121); +__w_pdfjs_require__(123); +var path = __w_pdfjs_require__(132); +module.exports = path.structuredClone; /***/ }), /* 90 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var fails = __w_pdfjs_require__(11); -var createPropertyDescriptor = __w_pdfjs_require__(15); -module.exports = !fails(function () { - var error = Error('a'); - if (!('stack' in error)) - return true; - Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); - return error.stack !== 7; -}); - -/***/ }), -/* 91 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - "use strict"; -var toIndexedObject = __w_pdfjs_require__(16); -var addToUnscopables = __w_pdfjs_require__(92); -var Iterators = __w_pdfjs_require__(82); -var InternalStateModule = __w_pdfjs_require__(52); -var defineProperty = (__w_pdfjs_require__(47).f); -var defineIterator = __w_pdfjs_require__(93); -var IS_PURE = __w_pdfjs_require__(38); -var DESCRIPTORS = __w_pdfjs_require__(10); +var toIndexedObject = __w_pdfjs_require__(15); +var addToUnscopables = __w_pdfjs_require__(73); +var Iterators = __w_pdfjs_require__(91); +var InternalStateModule = __w_pdfjs_require__(56); +var defineProperty = (__w_pdfjs_require__(49).f); +var defineIterator = __w_pdfjs_require__(92); +var createIterResultObject = __w_pdfjs_require__(96); +var IS_PURE = __w_pdfjs_require__(40); +var DESCRIPTORS = __w_pdfjs_require__(9); var ARRAY_ITERATOR = 'Array Iterator'; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); @@ -2866,28 +2646,16 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) { var index = state.index++; if (!target || index >= target.length) { state.target = undefined; - return { - value: undefined, - done: true - }; + return createIterResultObject(undefined, true); } if (kind == 'keys') - return { - value: index, - done: false - }; + return createIterResultObject(index, false); if (kind == 'values') - return { - value: target[index], - done: false - }; - return { - value: [ - index, - target[index] - ], - done: false - }; + return createIterResultObject(target[index], false); + return createIterResultObject([ + index, + target[index] + ], false); }, 'values'); var values = Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); @@ -2900,44 +2668,31 @@ if (!IS_PURE && DESCRIPTORS && values.name !== 'values') } /***/ }), -/* 92 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { +/* 91 */ +/***/ ((module) => { -var wellKnownSymbol = __w_pdfjs_require__(36); -var create = __w_pdfjs_require__(73); -var definePropertyModule = __w_pdfjs_require__(47); -var UNSCOPABLES = wellKnownSymbol('unscopables'); -var ArrayPrototype = Array.prototype; -if (ArrayPrototype[UNSCOPABLES] == undefined) { - definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: create(null) - }); -} -module.exports = function (key) { - ArrayPrototype[UNSCOPABLES][key] = true; -}; +module.exports = {}; /***/ }), -/* 93 */ +/* 92 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { "use strict"; -var $ = __w_pdfjs_require__(7); -var call = __w_pdfjs_require__(12); -var IS_PURE = __w_pdfjs_require__(38); -var FunctionName = __w_pdfjs_require__(56); -var isCallable = __w_pdfjs_require__(24); -var createIteratorConstructor = __w_pdfjs_require__(94); -var getPrototypeOf = __w_pdfjs_require__(69); -var setPrototypeOf = __w_pdfjs_require__(71); -var setToStringTag = __w_pdfjs_require__(96); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -var redefine = __w_pdfjs_require__(50); -var wellKnownSymbol = __w_pdfjs_require__(36); -var Iterators = __w_pdfjs_require__(82); -var IteratorsCore = __w_pdfjs_require__(95); +var $ = __w_pdfjs_require__(6); +var call = __w_pdfjs_require__(11); +var IS_PURE = __w_pdfjs_require__(40); +var FunctionName = __w_pdfjs_require__(54); +var isCallable = __w_pdfjs_require__(25); +var createIteratorConstructor = __w_pdfjs_require__(93); +var getPrototypeOf = __w_pdfjs_require__(85); +var setPrototypeOf = __w_pdfjs_require__(87); +var setToStringTag = __w_pdfjs_require__(95); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var defineBuiltIn = __w_pdfjs_require__(52); +var wellKnownSymbol = __w_pdfjs_require__(38); +var Iterators = __w_pdfjs_require__(91); +var IteratorsCore = __w_pdfjs_require__(94); var PROPER_FUNCTION_NAME = FunctionName.PROPER; var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; var IteratorPrototype = IteratorsCore.IteratorPrototype; @@ -2988,7 +2743,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I if (setPrototypeOf) { setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { - redefine(CurrentIteratorPrototype, ITERATOR, returnThis); + defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis); } } setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); @@ -3015,7 +2770,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I if (FORCED) for (KEY in methods) { if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); + defineBuiltIn(IterablePrototype, KEY, methods[KEY]); } } else @@ -3026,23 +2781,23 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I }, methods); } if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { - redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); + defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); } Iterators[NAME] = defaultIterator; return methods; }; /***/ }), -/* 94 */ +/* 93 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { "use strict"; -var IteratorPrototype = (__w_pdfjs_require__(95).IteratorPrototype); -var create = __w_pdfjs_require__(73); -var createPropertyDescriptor = __w_pdfjs_require__(15); -var setToStringTag = __w_pdfjs_require__(96); -var Iterators = __w_pdfjs_require__(82); +var IteratorPrototype = (__w_pdfjs_require__(94).IteratorPrototype); +var create = __w_pdfjs_require__(74); +var createPropertyDescriptor = __w_pdfjs_require__(14); +var setToStringTag = __w_pdfjs_require__(95); +var Iterators = __w_pdfjs_require__(91); var returnThis = function () { return this; }; @@ -3055,18 +2810,19 @@ module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { }; /***/ }), -/* 95 */ +/* 94 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { "use strict"; -var fails = __w_pdfjs_require__(11); -var isCallable = __w_pdfjs_require__(24); -var create = __w_pdfjs_require__(73); -var getPrototypeOf = __w_pdfjs_require__(69); -var redefine = __w_pdfjs_require__(50); -var wellKnownSymbol = __w_pdfjs_require__(36); -var IS_PURE = __w_pdfjs_require__(38); +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var create = __w_pdfjs_require__(74); +var getPrototypeOf = __w_pdfjs_require__(85); +var defineBuiltIn = __w_pdfjs_require__(52); +var wellKnownSymbol = __w_pdfjs_require__(38); +var IS_PURE = __w_pdfjs_require__(40); var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; @@ -3080,7 +2836,7 @@ if ([].keys) { IteratorPrototype = PrototypeOfArrayIteratorPrototype; } } -var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { +var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () { var test = {}; return IteratorPrototype[ITERATOR].call(test) !== test; }); @@ -3089,7 +2845,7 @@ if (NEW_ITERATOR_PROTOTYPE) else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); if (!isCallable(IteratorPrototype[ITERATOR])) { - redefine(IteratorPrototype, ITERATOR, function () { + defineBuiltIn(IteratorPrototype, ITERATOR, function () { return this; }); } @@ -3099,12 +2855,12 @@ module.exports = { }; /***/ }), -/* 96 */ +/* 95 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var defineProperty = (__w_pdfjs_require__(47).f); -var hasOwn = __w_pdfjs_require__(41); -var wellKnownSymbol = __w_pdfjs_require__(36); +var defineProperty = (__w_pdfjs_require__(49).f); +var hasOwn = __w_pdfjs_require__(43); +var wellKnownSymbol = __w_pdfjs_require__(38); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); module.exports = function (target, TAG, STATIC) { if (target && !STATIC) @@ -3117,15 +2873,26 @@ module.exports = function (target, TAG, STATIC) { } }; +/***/ }), +/* 96 */ +/***/ ((module) => { + +module.exports = function (value, done) { + return { + value: value, + done: done + }; +}; + /***/ }), /* 97 */ /***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(86); -var redefine = __w_pdfjs_require__(50); +var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(84); +var defineBuiltIn = __w_pdfjs_require__(52); var toString = __w_pdfjs_require__(98); if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { unsafe: true }); + defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true }); } /***/ }), @@ -3134,8 +2901,8 @@ if (!TO_STRING_TAG_SUPPORT) { "use strict"; -var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(86); -var classof = __w_pdfjs_require__(85); +var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(84); +var classof = __w_pdfjs_require__(83); module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { return '[object ' + classof(this) + ']'; }; @@ -3145,11 +2912,6 @@ module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { /***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { __w_pdfjs_require__(100); -__w_pdfjs_require__(123); -__w_pdfjs_require__(126); -__w_pdfjs_require__(127); -__w_pdfjs_require__(128); -__w_pdfjs_require__(129); /***/ }), /* 100 */ @@ -3157,857 +2919,480 @@ __w_pdfjs_require__(129); "use strict"; -var $ = __w_pdfjs_require__(7); -var IS_PURE = __w_pdfjs_require__(38); -var IS_NODE = __w_pdfjs_require__(101); -var global = __w_pdfjs_require__(8); -var call = __w_pdfjs_require__(12); -var redefine = __w_pdfjs_require__(50); -var redefineAll = __w_pdfjs_require__(102); -var setPrototypeOf = __w_pdfjs_require__(71); -var setToStringTag = __w_pdfjs_require__(96); -var setSpecies = __w_pdfjs_require__(103); -var aCallable = __w_pdfjs_require__(33); -var isCallable = __w_pdfjs_require__(24); -var isObject = __w_pdfjs_require__(23); -var anInstance = __w_pdfjs_require__(104); -var speciesConstructor = __w_pdfjs_require__(105); -var task = (__w_pdfjs_require__(108).set); -var microtask = __w_pdfjs_require__(113); -var hostReportErrors = __w_pdfjs_require__(116); -var perform = __w_pdfjs_require__(117); -var Queue = __w_pdfjs_require__(118); -var InternalStateModule = __w_pdfjs_require__(52); -var NativePromiseConstructor = __w_pdfjs_require__(119); -var PromiseConstructorDetection = __w_pdfjs_require__(120); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var PROMISE = 'Promise'; -var FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR; -var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; -var NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING; -var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); -var setInternalState = InternalStateModule.set; -var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; -var PromiseConstructor = NativePromiseConstructor; -var PromisePrototype = NativePromisePrototype; -var TypeError = global.TypeError; -var document = global.document; -var process = global.process; -var newPromiseCapability = newPromiseCapabilityModule.f; -var newGenericPromiseCapability = newPromiseCapability; -var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); -var UNHANDLED_REJECTION = 'unhandledrejection'; -var REJECTION_HANDLED = 'rejectionhandled'; -var PENDING = 0; -var FULFILLED = 1; -var REJECTED = 2; -var HANDLED = 1; -var UNHANDLED = 2; -var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; -var isThenable = function (it) { - var then; - return isObject(it) && isCallable(then = it.then) ? then : false; -}; -var callReaction = function (reaction, state) { - var value = state.value; - var ok = state.state == FULFILLED; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) - onHandleUnhandled(state); - state.rejection = HANDLED; - } - if (handler === true) - result = value; - else { - if (domain) - domain.enter(); - result = handler(value); - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - call(then, result, resolve, reject); - } else - resolve(result); - } else - reject(value); - } catch (error) { - if (domain && !exited) - domain.exit(); - reject(error); - } -}; -var notify = function (state, isReject) { - if (state.notified) - return; - state.notified = true; - microtask(function () { - var reactions = state.reactions; - var reaction; - while (reaction = reactions.get()) { - callReaction(reaction, state); - } - state.notified = false; - if (isReject && !state.rejection) - onUnhandled(state); - }); -}; -var dispatchEvent = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT) { - event = document.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global.dispatchEvent(event); - } else - event = { - promise: promise, - reason: reason - }; - if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) - handler(event); - else if (name === UNHANDLED_REJECTION) - hostReportErrors('Unhandled promise rejection', reason); -}; -var onUnhandled = function (state) { - call(task, global, function () { - var promise = state.facade; - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - if (IS_UNHANDLED) { - result = perform(function () { - if (IS_NODE) { - process.emit('unhandledRejection', value, promise); - } else - dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); - state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) - throw result.value; - } - }); -}; -var isUnhandled = function (state) { - return state.rejection !== HANDLED && !state.parent; -}; -var onHandleUnhandled = function (state) { - call(task, global, function () { - var promise = state.facade; - if (IS_NODE) { - process.emit('rejectionHandled', promise); - } else - dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); -}; -var bind = function (fn, state, unwrap) { - return function (value) { - fn(state, value, unwrap); - }; -}; -var internalReject = function (state, value, unwrap) { - if (state.done) - return; - state.done = true; - if (unwrap) - state = unwrap; - state.value = value; - state.state = REJECTED; - notify(state, true); -}; -var internalResolve = function (state, value, unwrap) { - if (state.done) - return; - state.done = true; - if (unwrap) - state = unwrap; - try { - if (state.facade === value) - throw TypeError("Promise can't be resolved itself"); - var then = isThenable(value); - if (then) { - microtask(function () { - var wrapper = { done: false }; - try { - call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state)); - } catch (error) { - internalReject(wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify(state, false); - } - } catch (error) { - internalReject({ done: false }, error, state); - } -}; -if (FORCED_PROMISE_CONSTRUCTOR) { - PromiseConstructor = function Promise(executor) { - anInstance(this, PromisePrototype); - aCallable(executor); - call(Internal, this); - var state = getInternalPromiseState(this); - try { - executor(bind(internalResolve, state), bind(internalReject, state)); - } catch (error) { - internalReject(state, error); - } - }; - PromisePrototype = PromiseConstructor.prototype; - Internal = function Promise(executor) { - setInternalState(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: new Queue(), - rejection: false, - state: PENDING, - value: undefined - }); - }; - Internal.prototype = redefineAll(PromisePrototype, { - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); - state.parent = true; - reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; - reaction.fail = isCallable(onRejected) && onRejected; - reaction.domain = IS_NODE ? process.domain : undefined; - if (state.state == PENDING) - state.reactions.add(reaction); - else - microtask(function () { - callReaction(reaction, state); - }); - return reaction.promise; - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - var state = getInternalPromiseState(promise); - this.promise = promise; - this.resolve = bind(internalResolve, state); - this.reject = bind(internalReject, state); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); +var collection = __w_pdfjs_require__(101); +var collectionStrong = __w_pdfjs_require__(118); +collection('Map', function (init) { + return function Map() { + return init(this, arguments.length ? arguments[0] : undefined); }; - if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { - nativeThen = NativePromisePrototype.then; - if (!NATIVE_PROMISE_SUBCLASSING) { - redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - call(nativeThen, that, resolve, reject); - }).then(onFulfilled, onRejected); - }, { unsafe: true }); - } - try { - delete NativePromisePrototype.constructor; - } catch (error) { - } - if (setPrototypeOf) { - setPrototypeOf(NativePromisePrototype, PromisePrototype); - } - } -} -$({ - global: true, - wrap: true, - forced: FORCED_PROMISE_CONSTRUCTOR -}, { Promise: PromiseConstructor }); -setToStringTag(PromiseConstructor, PROMISE, false, true); -setSpecies(PROMISE); +}, collectionStrong); /***/ }), /* 101 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var classof = __w_pdfjs_require__(19); -var global = __w_pdfjs_require__(8); -module.exports = classof(global.process) == 'process'; - -/***/ }), -/* 102 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var redefine = __w_pdfjs_require__(50); -module.exports = function (target, src, options) { - for (var key in src) - redefine(target, key, src[key], options); - return target; -}; - -/***/ }), -/* 103 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - "use strict"; -var getBuiltIn = __w_pdfjs_require__(26); -var definePropertyModule = __w_pdfjs_require__(47); -var wellKnownSymbol = __w_pdfjs_require__(36); -var DESCRIPTORS = __w_pdfjs_require__(10); -var SPECIES = wellKnownSymbol('species'); -module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function () { - return this; - } +var $ = __w_pdfjs_require__(6); +var global = __w_pdfjs_require__(7); +var uncurryThis = __w_pdfjs_require__(17); +var isForced = __w_pdfjs_require__(72); +var defineBuiltIn = __w_pdfjs_require__(52); +var InternalMetadataModule = __w_pdfjs_require__(102); +var iterate = __w_pdfjs_require__(109); +var anInstance = __w_pdfjs_require__(115); +var isCallable = __w_pdfjs_require__(25); +var isNullOrUndefined = __w_pdfjs_require__(21); +var isObject = __w_pdfjs_require__(24); +var fails = __w_pdfjs_require__(10); +var checkCorrectnessOfIteration = __w_pdfjs_require__(116); +var setToStringTag = __w_pdfjs_require__(95); +var inheritIfRequired = __w_pdfjs_require__(117); +module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { + var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; + var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; + var ADDER = IS_MAP ? 'set' : 'add'; + var NativeConstructor = global[CONSTRUCTOR_NAME]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + var Constructor = NativeConstructor; + var exported = {}; + var fixMethod = function (KEY) { + var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); + defineBuiltIn(NativePrototype, KEY, KEY == 'add' ? function add(value) { + uncurriedNativeMethod(this, value === 0 ? 0 : value); + return this; + } : KEY == 'delete' ? function (key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'get' ? function get(key) { + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : KEY == 'has' ? function has(key) { + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); + } : function set(key, value) { + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); + return this; }); - } -}; - -/***/ }), -/* 104 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var global = __w_pdfjs_require__(8); -var isPrototypeOf = __w_pdfjs_require__(27); -var TypeError = global.TypeError; -module.exports = function (it, Prototype) { - if (isPrototypeOf(Prototype, it)) - return it; - throw TypeError('Incorrect invocation'); + }; + var REPLACE = isForced(CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + new NativeConstructor().entries().next(); + }))); + if (REPLACE) { + Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); + InternalMetadataModule.enable(); + } else if (isForced(CONSTRUCTOR_NAME, true)) { + var instance = new Constructor(); + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); + var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { + new NativeConstructor(iterable); + }); + var BUGGY_ZERO = !IS_WEAK && fails(function () { + var $instance = new NativeConstructor(); + var index = 5; + while (index--) + $instance[ADDER](index, index); + return !$instance.has(-0); + }); + if (!ACCEPT_ITERABLES) { + Constructor = wrapper(function (dummy, iterable) { + anInstance(dummy, NativePrototype); + var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); + if (!isNullOrUndefined(iterable)) + iterate(iterable, that[ADDER], { + that: that, + AS_ENTRIES: IS_MAP + }); + return that; + }); + Constructor.prototype = NativePrototype; + NativePrototype.constructor = Constructor; + } + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if (BUGGY_ZERO || HASNT_CHAINING) + fixMethod(ADDER); + if (IS_WEAK && NativePrototype.clear) + delete NativePrototype.clear; + } + exported[CONSTRUCTOR_NAME] = Constructor; + $({ + global: true, + constructor: true, + forced: Constructor != NativeConstructor + }, exported); + setToStringTag(Constructor, CONSTRUCTOR_NAME); + if (!IS_WEAK) + common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); + return Constructor; }; /***/ }), -/* 105 */ +/* 102 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var anObject = __w_pdfjs_require__(49); -var aConstructor = __w_pdfjs_require__(106); -var wellKnownSymbol = __w_pdfjs_require__(36); -var SPECIES = wellKnownSymbol('species'); -module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S); +var $ = __w_pdfjs_require__(6); +var uncurryThis = __w_pdfjs_require__(17); +var hiddenKeys = __w_pdfjs_require__(59); +var isObject = __w_pdfjs_require__(24); +var hasOwn = __w_pdfjs_require__(43); +var defineProperty = (__w_pdfjs_require__(49).f); +var getOwnPropertyNamesModule = __w_pdfjs_require__(62); +var getOwnPropertyNamesExternalModule = __w_pdfjs_require__(103); +var isExtensible = __w_pdfjs_require__(106); +var uid = __w_pdfjs_require__(45); +var FREEZING = __w_pdfjs_require__(108); +var REQUIRED = false; +var METADATA = uid('meta'); +var id = 0; +var setMetadata = function (it) { + defineProperty(it, METADATA, { + value: { + objectID: 'O' + id++, + weakData: {} + } + }); }; - -/***/ }), -/* 106 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var global = __w_pdfjs_require__(8); -var isConstructor = __w_pdfjs_require__(107); -var tryToString = __w_pdfjs_require__(34); -var TypeError = global.TypeError; -module.exports = function (argument) { - if (isConstructor(argument)) - return argument; - throw TypeError(tryToString(argument) + ' is not a constructor'); +var fastKey = function (it, create) { + if (!isObject(it)) + return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!hasOwn(it, METADATA)) { + if (!isExtensible(it)) + return 'F'; + if (!create) + return 'E'; + setMetadata(it); + } + return it[METADATA].objectID; +}; +var getWeakData = function (it, create) { + if (!hasOwn(it, METADATA)) { + if (!isExtensible(it)) + return true; + if (!create) + return false; + setMetadata(it); + } + return it[METADATA].weakData; +}; +var onFreeze = function (it) { + if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) + setMetadata(it); + return it; +}; +var enable = function () { + meta.enable = function () { + }; + REQUIRED = true; + var getOwnPropertyNames = getOwnPropertyNamesModule.f; + var splice = uncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + if (getOwnPropertyNames(test).length) { + getOwnPropertyNamesModule.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } + return result; + }; + $({ + target: 'Object', + stat: true, + forced: true + }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f }); + } +}; +var meta = module.exports = { + enable: enable, + fastKey: fastKey, + getWeakData: getWeakData, + onFreeze: onFreeze }; +hiddenKeys[METADATA] = true; /***/ }), -/* 107 */ +/* 103 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var fails = __w_pdfjs_require__(11); -var isCallable = __w_pdfjs_require__(24); -var classof = __w_pdfjs_require__(85); -var getBuiltIn = __w_pdfjs_require__(26); -var inspectSource = __w_pdfjs_require__(51); -var noop = function () { -}; -var empty = []; -var construct = getBuiltIn('Reflect', 'construct'); -var constructorRegExp = /^\s*(?:class|function)\b/; -var exec = uncurryThis(constructorRegExp.exec); -var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); -var isConstructorModern = function isConstructor(argument) { - if (!isCallable(argument)) - return false; +var classof = __w_pdfjs_require__(18); +var toIndexedObject = __w_pdfjs_require__(15); +var $getOwnPropertyNames = (__w_pdfjs_require__(62).f); +var arraySlice = __w_pdfjs_require__(104); +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; +var getWindowNames = function (it) { try { - construct(noop, empty, argument); - return true; + return $getOwnPropertyNames(it); } catch (error) { - return false; + return arraySlice(windowNames); } }; -var isConstructorLegacy = function isConstructor(argument) { - if (!isCallable(argument)) - return false; - switch (classof(argument)) { - case 'AsyncFunction': - case 'GeneratorFunction': - case 'AsyncGeneratorFunction': - return false; - } - try { - return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); - } catch (error) { - return true; - } +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it)); }; -isConstructorLegacy.sham = true; -module.exports = !construct || fails(function () { - var called; - return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () { - called = true; - }) || called; -}) ? isConstructorLegacy : isConstructorModern; /***/ }), -/* 108 */ +/* 104 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var apply = __w_pdfjs_require__(109); -var bind = __w_pdfjs_require__(80); -var isCallable = __w_pdfjs_require__(24); -var hasOwn = __w_pdfjs_require__(41); -var fails = __w_pdfjs_require__(11); -var html = __w_pdfjs_require__(76); -var arraySlice = __w_pdfjs_require__(110); -var createElement = __w_pdfjs_require__(45); -var validateArgumentsLength = __w_pdfjs_require__(111); -var IS_IOS = __w_pdfjs_require__(112); -var IS_NODE = __w_pdfjs_require__(101); -var set = global.setImmediate; -var clear = global.clearImmediate; -var process = global.process; -var Dispatch = global.Dispatch; -var Function = global.Function; -var MessageChannel = global.MessageChannel; -var String = global.String; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var location, defer, channel, port; -try { - location = global.location; -} catch (error) { -} -var run = function (id) { - if (hasOwn(queue, id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var runner = function (id) { - return function () { - run(id); - }; -}; -var listener = function (event) { - run(event.data); -}; -var post = function (id) { - global.postMessage(String(id), location.protocol + '//' + location.host); +var toAbsoluteIndex = __w_pdfjs_require__(65); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var createProperty = __w_pdfjs_require__(105); +var $Array = Array; +var max = Math.max; +module.exports = function (O, start, end) { + var length = lengthOfArrayLike(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + var result = $Array(max(fin - k, 0)); + for (var n = 0; k < fin; k++, n++) + createProperty(result, n, O[k]); + result.length = n; + return result; }; -if (!set || !clear) { - set = function setImmediate(handler) { - validateArgumentsLength(arguments.length, 1); - var fn = isCallable(handler) ? handler : Function(handler); - var args = arraySlice(arguments, 1); - queue[++counter] = function () { - apply(fn, undefined, args); - }; - defer(counter); - return counter; - }; - clear = function clearImmediate(id) { - delete queue[id]; - }; - if (IS_NODE) { - defer = function (id) { - process.nextTick(runner(id)); - }; - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(runner(id)); - }; - } else if (MessageChannel && !IS_IOS) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = bind(port.postMessage, port); - } else if (global.addEventListener && isCallable(global.postMessage) && !global.importScripts && location && location.protocol !== 'file:' && !fails(post)) { - defer = post; - global.addEventListener('message', listener, false); - } else if (ONREADYSTATECHANGE in createElement('script')) { - defer = function (id) { - html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run(id); - }; - }; - } else { - defer = function (id) { - setTimeout(runner(id), 0); - }; - } -} -module.exports = { - set: set, - clear: clear + +/***/ }), +/* 105 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { + +"use strict"; + +var toPropertyKey = __w_pdfjs_require__(22); +var definePropertyModule = __w_pdfjs_require__(49); +var createPropertyDescriptor = __w_pdfjs_require__(14); +module.exports = function (object, key, value) { + var propertyKey = toPropertyKey(key); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; }; /***/ }), -/* 109 */ +/* 106 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var NATIVE_BIND = __w_pdfjs_require__(13); -var FunctionPrototype = Function.prototype; -var apply = FunctionPrototype.apply; -var call = FunctionPrototype.call; -module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () { - return call.apply(apply, arguments); +var fails = __w_pdfjs_require__(10); +var isObject = __w_pdfjs_require__(24); +var classof = __w_pdfjs_require__(18); +var ARRAY_BUFFER_NON_EXTENSIBLE = __w_pdfjs_require__(107); +var $isExtensible = Object.isExtensible; +var FAILS_ON_PRIMITIVES = fails(function () { + $isExtensible(1); }); +module.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function isExtensible(it) { + if (!isObject(it)) + return false; + if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') + return false; + return $isExtensible ? $isExtensible(it) : true; +} : $isExtensible; /***/ }), -/* 110 */ +/* 107 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -module.exports = uncurryThis([].slice); +var fails = __w_pdfjs_require__(10); +module.exports = fails(function () { + if (typeof ArrayBuffer == 'function') { + var buffer = new ArrayBuffer(8); + if (Object.isExtensible(buffer)) + Object.defineProperty(buffer, 'a', { value: 8 }); + } +}); /***/ }), -/* 111 */ +/* 108 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var TypeError = global.TypeError; -module.exports = function (passed, required) { - if (passed < required) - throw TypeError('Not enough arguments'); - return passed; -}; - -/***/ }), -/* 112 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var userAgent = __w_pdfjs_require__(31); -module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); +var fails = __w_pdfjs_require__(10); +module.exports = !fails(function () { + return Object.isExtensible(Object.preventExtensions({})); +}); /***/ }), -/* 113 */ +/* 109 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -var bind = __w_pdfjs_require__(80); -var getOwnPropertyDescriptor = (__w_pdfjs_require__(9).f); -var macrotask = (__w_pdfjs_require__(108).set); -var IS_IOS = __w_pdfjs_require__(112); -var IS_IOS_PEBBLE = __w_pdfjs_require__(114); -var IS_WEBOS_WEBKIT = __w_pdfjs_require__(115); -var IS_NODE = __w_pdfjs_require__(101); -var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; -var document = global.document; -var process = global.process; -var Promise = global.Promise; -var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); -var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; -var flush, head, last, notify, toggle, node, promise, then; -if (!queueMicrotask) { - flush = function () { - var parent, fn; - if (IS_NODE && (parent = process.domain)) - parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (error) { - if (head) - notify(); - else - last = undefined; - throw error; - } +var bind = __w_pdfjs_require__(110); +var call = __w_pdfjs_require__(11); +var anObject = __w_pdfjs_require__(51); +var tryToString = __w_pdfjs_require__(36); +var isArrayIteratorMethod = __w_pdfjs_require__(111); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var isPrototypeOf = __w_pdfjs_require__(29); +var getIterator = __w_pdfjs_require__(112); +var getIteratorMethod = __w_pdfjs_require__(113); +var iteratorClose = __w_pdfjs_require__(114); +var $TypeError = TypeError; +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; +var ResultPrototype = Result.prototype; +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + var stop = function (condition) { + if (iterator) + iteratorClose(iterator, 'normal', condition); + return new Result(true, condition); + }; + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); } - last = undefined; - if (parent) - parent.enter(); + return INTERRUPTED ? fn(value, stop) : fn(value); }; - if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { - toggle = true; - node = document.createTextNode(''); - new MutationObserver(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { - promise = Promise.resolve(undefined); - promise.constructor = Promise; - then = bind(promise.then, promise); - notify = function () { - then(flush); - }; - } else if (IS_NODE) { - notify = function () { - process.nextTick(flush); - }; + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; } else { - macrotask = bind(macrotask, global); - notify = function () { - macrotask(flush); - }; + iterFn = getIteratorMethod(iterable); + if (!iterFn) + throw $TypeError(tryToString(iterable) + ' is not iterable'); + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf(ResultPrototype, result)) + return result; + } + return new Result(false); + } + iterator = getIterator(iterable, iterFn); } -} -module.exports = queueMicrotask || function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) - last.next = task; - if (!head) { - head = task; - notify(); + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) + return result; } - last = task; + return new Result(false); }; /***/ }), -/* 114 */ +/* 110 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var userAgent = __w_pdfjs_require__(31); -var global = __w_pdfjs_require__(8); -module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined; +var uncurryThis = __w_pdfjs_require__(17); +var aCallable = __w_pdfjs_require__(35); +var NATIVE_BIND = __w_pdfjs_require__(12); +var bind = uncurryThis(uncurryThis.bind); +module.exports = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function () { + return fn.apply(that, arguments); + }; +}; /***/ }), -/* 115 */ +/* 111 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var userAgent = __w_pdfjs_require__(31); -module.exports = /web0s(?!.*chrome)/i.test(userAgent); +var wellKnownSymbol = __w_pdfjs_require__(38); +var Iterators = __w_pdfjs_require__(91); +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); +}; /***/ }), -/* 116 */ +/* 112 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -module.exports = function (a, b) { - var console = global.console; - if (console && console.error) { - arguments.length == 1 ? console.error(a) : console.error(a, b); - } +var call = __w_pdfjs_require__(11); +var aCallable = __w_pdfjs_require__(35); +var anObject = __w_pdfjs_require__(51); +var tryToString = __w_pdfjs_require__(36); +var getIteratorMethod = __w_pdfjs_require__(113); +var $TypeError = TypeError; +module.exports = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) + return anObject(call(iteratorMethod, argument)); + throw $TypeError(tryToString(argument) + ' is not iterable'); }; /***/ }), -/* 117 */ -/***/ ((module) => { +/* 113 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -module.exports = function (exec) { - try { - return { - error: false, - value: exec() - }; - } catch (error) { - return { - error: true, - value: error - }; - } +var classof = __w_pdfjs_require__(83); +var getMethod = __w_pdfjs_require__(34); +var isNullOrUndefined = __w_pdfjs_require__(21); +var Iterators = __w_pdfjs_require__(91); +var wellKnownSymbol = __w_pdfjs_require__(38); +var ITERATOR = wellKnownSymbol('iterator'); +module.exports = function (it) { + if (!isNullOrUndefined(it)) + return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)]; }; /***/ }), -/* 118 */ -/***/ ((module) => { +/* 114 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var Queue = function () { - this.head = null; - this.tail = null; -}; -Queue.prototype = { - add: function (item) { - var entry = { - item: item, - next: null - }; - if (this.head) - this.tail.next = entry; - else - this.head = entry; - this.tail = entry; - }, - get: function () { - var entry = this.head; - if (entry) { - this.head = entry.next; - if (this.tail === entry) - this.tail = null; - return entry.item; +var call = __w_pdfjs_require__(11); +var anObject = __w_pdfjs_require__(51); +var getMethod = __w_pdfjs_require__(34); +module.exports = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') + throw value; + return value; } + innerResult = call(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; } + if (kind === 'throw') + throw value; + if (innerError) + throw innerResult; + anObject(innerResult); + return value; }; -module.exports = Queue; - -/***/ }), -/* 119 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var global = __w_pdfjs_require__(8); -module.exports = global.Promise; - -/***/ }), -/* 120 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var global = __w_pdfjs_require__(8); -var NativePromiseConstructor = __w_pdfjs_require__(119); -var isCallable = __w_pdfjs_require__(24); -var isForced = __w_pdfjs_require__(68); -var inspectSource = __w_pdfjs_require__(51); -var wellKnownSymbol = __w_pdfjs_require__(36); -var IS_BROWSER = __w_pdfjs_require__(121); -var IS_PURE = __w_pdfjs_require__(38); -var V8_VERSION = __w_pdfjs_require__(30); -var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; -var SPECIES = wellKnownSymbol('species'); -var SUBCLASSING = false; -var NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); -var FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () { - var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor); - var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor); - if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) - return true; - if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) - return true; - if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) - return false; - var promise = new NativePromiseConstructor(function (resolve) { - resolve(1); - }); - var FakePromise = function (exec) { - exec(function () { - }, function () { - }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES] = FakePromise; - SUBCLASSING = promise.then(function () { - }) instanceof FakePromise; - if (!SUBCLASSING) - return true; - return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_PROMISE_REJECTION_EVENT; -}); -module.exports = { - CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR, - REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT, - SUBCLASSING: SUBCLASSING -}; - -/***/ }), -/* 121 */ -/***/ ((module) => { - -module.exports = typeof window == 'object' && typeof Deno != 'object'; /***/ }), -/* 122 */ +/* 115 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -"use strict"; - -var aCallable = __w_pdfjs_require__(33); -var PromiseCapability = function (C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) - throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aCallable(resolve); - this.reject = aCallable(reject); -}; -module.exports.f = function (C) { - return new PromiseCapability(C); +var isPrototypeOf = __w_pdfjs_require__(29); +var $TypeError = TypeError; +module.exports = function (it, Prototype) { + if (isPrototypeOf(Prototype, it)) + return it; + throw $TypeError('Incorrect invocation'); }; /***/ }), -/* 123 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var call = __w_pdfjs_require__(12); -var aCallable = __w_pdfjs_require__(33); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var perform = __w_pdfjs_require__(117); -var iterate = __w_pdfjs_require__(79); -var PROMISE_STATICS_INCORRECT_ITERATION = __w_pdfjs_require__(124); -$({ - target: 'Promise', - stat: true, - forced: PROMISE_STATICS_INCORRECT_ITERATION -}, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapabilityModule.f(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aCallable(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - remaining++; - call($promiseResolve, C, promise).then(function (value) { - if (alreadyCalled) - return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) - reject(result.value); - return capability.promise; - } -}); - -/***/ }), -/* 124 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var NativePromiseConstructor = __w_pdfjs_require__(119); -var checkCorrectnessOfIteration = __w_pdfjs_require__(125); -var FORCED_PROMISE_CONSTRUCTOR = (__w_pdfjs_require__(120).CONSTRUCTOR); -module.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) { - NativePromiseConstructor.all(iterable).then(undefined, function () { - }); -}); - -/***/ }), -/* 125 */ +/* 116 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var wellKnownSymbol = __w_pdfjs_require__(36); +var wellKnownSymbol = __w_pdfjs_require__(38); var ITERATOR = wellKnownSymbol('iterator'); var SAFE_CLOSING = false; try { @@ -4048,6783 +3433,3034 @@ module.exports = function (exec, SKIP_CLOSING) { }; /***/ }), -/* 126 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var IS_PURE = __w_pdfjs_require__(38); -var FORCED_PROMISE_CONSTRUCTOR = (__w_pdfjs_require__(120).CONSTRUCTOR); -var NativePromiseConstructor = __w_pdfjs_require__(119); -var getBuiltIn = __w_pdfjs_require__(26); -var isCallable = __w_pdfjs_require__(24); -var redefine = __w_pdfjs_require__(50); -var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; -$({ - target: 'Promise', - proto: true, - forced: FORCED_PROMISE_CONSTRUCTOR, - real: true -}, { - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } -}); -if (!IS_PURE && isCallable(NativePromiseConstructor)) { - var method = getBuiltIn('Promise').prototype['catch']; - if (NativePromisePrototype['catch'] !== method) { - redefine(NativePromisePrototype, 'catch', method, { unsafe: true }); - } -} - -/***/ }), -/* 127 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var call = __w_pdfjs_require__(12); -var aCallable = __w_pdfjs_require__(33); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var perform = __w_pdfjs_require__(117); -var iterate = __w_pdfjs_require__(79); -var PROMISE_STATICS_INCORRECT_ITERATION = __w_pdfjs_require__(124); -$({ - target: 'Promise', - stat: true, - forced: PROMISE_STATICS_INCORRECT_ITERATION -}, { - race: function race(iterable) { - var C = this; - var capability = newPromiseCapabilityModule.f(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aCallable(C.resolve); - iterate(iterable, function (promise) { - call($promiseResolve, C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) - reject(result.value); - return capability.promise; - } -}); - -/***/ }), -/* 128 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var call = __w_pdfjs_require__(12); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var FORCED_PROMISE_CONSTRUCTOR = (__w_pdfjs_require__(120).CONSTRUCTOR); -$({ - target: 'Promise', - stat: true, - forced: FORCED_PROMISE_CONSTRUCTOR -}, { - reject: function reject(r) { - var capability = newPromiseCapabilityModule.f(this); - call(capability.reject, undefined, r); - return capability.promise; - } -}); - -/***/ }), -/* 129 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var getBuiltIn = __w_pdfjs_require__(26); -var IS_PURE = __w_pdfjs_require__(38); -var NativePromiseConstructor = __w_pdfjs_require__(119); -var FORCED_PROMISE_CONSTRUCTOR = (__w_pdfjs_require__(120).CONSTRUCTOR); -var promiseResolve = __w_pdfjs_require__(130); -var PromiseConstructorWrapper = getBuiltIn('Promise'); -var CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR; -$({ - target: 'Promise', - stat: true, - forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR -}, { - resolve: function resolve(x) { - return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x); - } -}); - -/***/ }), -/* 130 */ +/* 117 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var anObject = __w_pdfjs_require__(49); -var isObject = __w_pdfjs_require__(23); -var newPromiseCapability = __w_pdfjs_require__(122); -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) - return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; +var isCallable = __w_pdfjs_require__(25); +var isObject = __w_pdfjs_require__(24); +var setPrototypeOf = __w_pdfjs_require__(87); +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) + setPrototypeOf($this, NewTargetPrototype); + return $this; }; /***/ }), -/* 131 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { +/* 118 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { "use strict"; -var $ = __w_pdfjs_require__(7); -var call = __w_pdfjs_require__(12); -var aCallable = __w_pdfjs_require__(33); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var perform = __w_pdfjs_require__(117); -var iterate = __w_pdfjs_require__(79); -$({ - target: 'Promise', - stat: true -}, { - allSettled: function allSettled(iterable) { - var C = this; - var capability = newPromiseCapabilityModule.f(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var promiseResolve = aCallable(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - remaining++; - call(promiseResolve, C, promise).then(function (value) { - if (alreadyCalled) - return; - alreadyCalled = true; - values[index] = { - status: 'fulfilled', - value: value - }; - --remaining || resolve(values); - }, function (error) { - if (alreadyCalled) - return; - alreadyCalled = true; - values[index] = { - status: 'rejected', - reason: error - }; - --remaining || resolve(values); - }); +var defineProperty = (__w_pdfjs_require__(49).f); +var create = __w_pdfjs_require__(74); +var defineBuiltIns = __w_pdfjs_require__(119); +var bind = __w_pdfjs_require__(110); +var anInstance = __w_pdfjs_require__(115); +var isNullOrUndefined = __w_pdfjs_require__(21); +var iterate = __w_pdfjs_require__(109); +var defineIterator = __w_pdfjs_require__(92); +var createIterResultObject = __w_pdfjs_require__(96); +var setSpecies = __w_pdfjs_require__(120); +var DESCRIPTORS = __w_pdfjs_require__(9); +var fastKey = (__w_pdfjs_require__(102).fastKey); +var InternalStateModule = __w_pdfjs_require__(56); +var setInternalState = InternalStateModule.set; +var internalStateGetterFor = InternalStateModule.getterFor; +module.exports = { + getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState(that, { + type: CONSTRUCTOR_NAME, + index: create(null), + first: undefined, + last: undefined, + size: 0 }); - --remaining || resolve(values); - }); - if (result.error) - reject(result.value); - return capability.promise; - } -}); - -/***/ }), -/* 132 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var call = __w_pdfjs_require__(12); -var aCallable = __w_pdfjs_require__(33); -var getBuiltIn = __w_pdfjs_require__(26); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var perform = __w_pdfjs_require__(117); -var iterate = __w_pdfjs_require__(79); -var PROMISE_ANY_ERROR = 'No one promise resolved'; -$({ - target: 'Promise', - stat: true -}, { - any: function any(iterable) { - var C = this; - var AggregateError = getBuiltIn('AggregateError'); - var capability = newPromiseCapabilityModule.f(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var promiseResolve = aCallable(C.resolve); - var errors = []; - var counter = 0; - var remaining = 1; - var alreadyResolved = false; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyRejected = false; - remaining++; - call(promiseResolve, C, promise).then(function (value) { - if (alreadyRejected || alreadyResolved) - return; - alreadyResolved = true; - resolve(value); - }, function (error) { - if (alreadyRejected || alreadyResolved) - return; - alreadyRejected = true; - errors[index] = error; - --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + if (!DESCRIPTORS) + that.size = 0; + if (!isNullOrUndefined(iterable)) + iterate(iterable, that[ADDER], { + that: that, + AS_ENTRIES: IS_MAP }); - }); - --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); }); - if (result.error) - reject(result.value); - return capability.promise; - } -}); - -/***/ }), -/* 133 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var $ = __w_pdfjs_require__(7); -var IS_PURE = __w_pdfjs_require__(38); -var NativePromiseConstructor = __w_pdfjs_require__(119); -var fails = __w_pdfjs_require__(11); -var getBuiltIn = __w_pdfjs_require__(26); -var isCallable = __w_pdfjs_require__(24); -var speciesConstructor = __w_pdfjs_require__(105); -var promiseResolve = __w_pdfjs_require__(130); -var redefine = __w_pdfjs_require__(50); -var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; -var NON_GENERIC = !!NativePromiseConstructor && fails(function () { - NativePromisePrototype['finally'].call({ - then: function () { - } - }, function () { - }); -}); -$({ - target: 'Promise', - proto: true, - real: true, - forced: NON_GENERIC -}, { - 'finally': function (onFinally) { - var C = speciesConstructor(this, getBuiltIn('Promise')); - var isFunction = isCallable(onFinally); - return this.then(isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { - return x; + var Prototype = Constructor.prototype; + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); + var define = function (that, key, value) { + var state = getInternalState(that); + var entry = getEntry(that, key); + var previous, index; + if (entry) { + entry.value = value; + } else { + state.last = entry = { + index: index = fastKey(key, true), + key: key, + value: value, + previous: previous = state.last, + next: undefined, + removed: false + }; + if (!state.first) + state.first = entry; + if (previous) + previous.next = entry; + if (DESCRIPTORS) + state.size++; + else + that.size++; + if (index !== 'F') + state.index[index] = entry; + } + return that; + }; + var getEntry = function (that, key) { + var state = getInternalState(that); + var index = fastKey(key); + var entry; + if (index !== 'F') + return state.index[index]; + for (entry = state.first; entry; entry = entry.next) { + if (entry.key == key) + return entry; + } + }; + defineBuiltIns(Prototype, { + clear: function clear() { + var that = this; + var state = getInternalState(that); + var data = state.index; + var entry = state.first; + while (entry) { + entry.removed = true; + if (entry.previous) + entry.previous = entry.previous.next = undefined; + delete data[entry.index]; + entry = entry.next; + } + state.first = state.last = undefined; + if (DESCRIPTORS) + state.size = 0; + else + that.size = 0; + }, + 'delete': function (key) { + var that = this; + var state = getInternalState(that); + var entry = getEntry(that, key); + if (entry) { + var next = entry.next; + var prev = entry.previous; + delete state.index[entry.index]; + entry.removed = true; + if (prev) + prev.next = next; + if (next) + next.previous = prev; + if (state.first == entry) + state.first = next; + if (state.last == entry) + state.last = prev; + if (DESCRIPTORS) + state.size--; + else + that.size--; + } + return !!entry; + }, + forEach: function forEach(callbackfn) { + var state = getInternalState(this); + var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); + var entry; + while (entry = entry ? entry.next : state.first) { + boundFunction(entry.value, entry.key, this); + while (entry && entry.removed) + entry = entry.previous; + } + }, + has: function has(key) { + return !!getEntry(this, key); + } + }); + defineBuiltIns(Prototype, IS_MAP ? { + get: function get(key) { + var entry = getEntry(this, key); + return entry && entry.value; + }, + set: function set(key, value) { + return define(this, key === 0 ? 0 : key, value); + } + } : { + add: function add(value) { + return define(this, value = value === 0 ? 0 : value, value); + } + }); + if (DESCRIPTORS) + defineProperty(Prototype, 'size', { + get: function () { + return getInternalState(this).size; + } }); - } : onFinally, isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { - throw e; + return Constructor; + }, + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { + var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; + var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); + var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState(this, { + type: ITERATOR_NAME, + target: iterated, + state: getInternalCollectionState(iterated), + kind: kind, + last: undefined }); - } : onFinally); - } -}); -if (!IS_PURE && isCallable(NativePromiseConstructor)) { - var method = getBuiltIn('Promise').prototype['finally']; - if (NativePromisePrototype['finally'] !== method) { - redefine(NativePromisePrototype, 'finally', method, { unsafe: true }); + }, function () { + var state = getInternalIteratorState(this); + var kind = state.kind; + var entry = state.last; + while (entry && entry.removed) + entry = entry.previous; + if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { + state.target = undefined; + return createIterResultObject(undefined, true); + } + if (kind == 'keys') + return createIterResultObject(entry.key, false); + if (kind == 'values') + return createIterResultObject(entry.value, false); + return createIterResultObject([ + entry.key, + entry.value + ], false); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + setSpecies(CONSTRUCTOR_NAME); } -} - -/***/ }), -/* 134 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var charAt = (__w_pdfjs_require__(135).charAt); -var toString = __w_pdfjs_require__(89); -var InternalStateModule = __w_pdfjs_require__(52); -var defineIterator = __w_pdfjs_require__(93); -var STRING_ITERATOR = 'String Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); -defineIterator(String, 'String', function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: toString(iterated), - index: 0 - }); -}, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) - return { - value: undefined, - done: true - }; - point = charAt(string, index); - state.index += point.length; - return { - value: point, - done: false - }; -}); +}; /***/ }), -/* 135 */ +/* 119 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var uncurryThis = __w_pdfjs_require__(18); -var toIntegerOrInfinity = __w_pdfjs_require__(63); -var toString = __w_pdfjs_require__(89); -var requireObjectCoercible = __w_pdfjs_require__(20); -var charAt = uncurryThis(''.charAt); -var charCodeAt = uncurryThis(''.charCodeAt); -var stringSlice = uncurryThis(''.slice); -var createMethod = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = toString(requireObjectCoercible($this)); - var position = toIntegerOrInfinity(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) - return CONVERT_TO_STRING ? '' : undefined; - first = charCodeAt(S, position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt(S, position) : first : CONVERT_TO_STRING ? stringSlice(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; -module.exports = { - codeAt: createMethod(false), - charAt: createMethod(true) +var defineBuiltIn = __w_pdfjs_require__(52); +module.exports = function (target, src, options) { + for (var key in src) + defineBuiltIn(target, key, src[key], options); + return target; }; /***/ }), -/* 136 */ +/* 120 */ /***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -var global = __w_pdfjs_require__(8); -module.exports = global; - -/***/ }), -/* 137 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { +"use strict"; -__w_pdfjs_require__(91); -__w_pdfjs_require__(97); -__w_pdfjs_require__(138); -__w_pdfjs_require__(150); -__w_pdfjs_require__(152); -var path = __w_pdfjs_require__(136); -module.exports = path.structuredClone; +var getBuiltIn = __w_pdfjs_require__(28); +var definePropertyModule = __w_pdfjs_require__(49); +var wellKnownSymbol = __w_pdfjs_require__(38); +var DESCRIPTORS = __w_pdfjs_require__(9); +var SPECIES = wellKnownSymbol('species'); +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + var defineProperty = definePropertyModule.f; + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineProperty(Constructor, SPECIES, { + configurable: true, + get: function () { + return this; + } + }); + } +}; /***/ }), -/* 138 */ +/* 121 */ /***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -__w_pdfjs_require__(139); +__w_pdfjs_require__(122); /***/ }), -/* 139 */ +/* 122 */ /***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { "use strict"; -var collection = __w_pdfjs_require__(140); -var collectionStrong = __w_pdfjs_require__(149); -collection('Map', function (init) { - return function Map() { +var collection = __w_pdfjs_require__(101); +var collectionStrong = __w_pdfjs_require__(118); +collection('Set', function (init) { + return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionStrong); /***/ }), -/* 140 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; +/* 123 */ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -var $ = __w_pdfjs_require__(7); -var global = __w_pdfjs_require__(8); -var uncurryThis = __w_pdfjs_require__(18); -var isForced = __w_pdfjs_require__(68); -var redefine = __w_pdfjs_require__(50); -var InternalMetadataModule = __w_pdfjs_require__(141); -var iterate = __w_pdfjs_require__(79); -var anInstance = __w_pdfjs_require__(104); -var isCallable = __w_pdfjs_require__(24); -var isObject = __w_pdfjs_require__(23); -var fails = __w_pdfjs_require__(11); -var checkCorrectnessOfIteration = __w_pdfjs_require__(125); -var setToStringTag = __w_pdfjs_require__(96); -var inheritIfRequired = __w_pdfjs_require__(148); -module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { - var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; - var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; - var ADDER = IS_MAP ? 'set' : 'add'; - var NativeConstructor = global[CONSTRUCTOR_NAME]; - var NativePrototype = NativeConstructor && NativeConstructor.prototype; - var Constructor = NativeConstructor; - var exported = {}; - var fixMethod = function (KEY) { - var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); - redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) { - uncurriedNativeMethod(this, value === 0 ? 0 : value); - return this; - } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); - } : function set(key, value) { - uncurriedNativeMethod(this, key === 0 ? 0 : key, value); - return this; - }); - }; - var REPLACE = isForced(CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { - new NativeConstructor().entries().next(); - }))); - if (REPLACE) { - Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - InternalMetadataModule.enable(); - } else if (isForced(CONSTRUCTOR_NAME, true)) { - var instance = new Constructor(); - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); - var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { - new NativeConstructor(iterable); - }); - var BUGGY_ZERO = !IS_WEAK && fails(function () { - var $instance = new NativeConstructor(); - var index = 5; - while (index--) - $instance[ADDER](index, index); - return !$instance.has(-0); - }); - if (!ACCEPT_ITERABLES) { - Constructor = wrapper(function (dummy, iterable) { - anInstance(dummy, NativePrototype); - var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); - if (iterable != undefined) - iterate(iterable, that[ADDER], { - that: that, - AS_ENTRIES: IS_MAP - }); - return that; - }); - Constructor.prototype = NativePrototype; - NativePrototype.constructor = Constructor; - } - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - if (BUGGY_ZERO || HASNT_CHAINING) - fixMethod(ADDER); - if (IS_WEAK && NativePrototype.clear) - delete NativePrototype.clear; - } - exported[CONSTRUCTOR_NAME] = Constructor; - $({ - global: true, - forced: Constructor != NativeConstructor - }, exported); - setToStringTag(Constructor, CONSTRUCTOR_NAME); - if (!IS_WEAK) - common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); - return Constructor; +var IS_PURE = __w_pdfjs_require__(40); +var $ = __w_pdfjs_require__(6); +var global = __w_pdfjs_require__(7); +var getBuiltin = __w_pdfjs_require__(28); +var uncurryThis = __w_pdfjs_require__(17); +var fails = __w_pdfjs_require__(10); +var uid = __w_pdfjs_require__(45); +var isCallable = __w_pdfjs_require__(25); +var isConstructor = __w_pdfjs_require__(124); +var isNullOrUndefined = __w_pdfjs_require__(21); +var isObject = __w_pdfjs_require__(24); +var isSymbol = __w_pdfjs_require__(27); +var iterate = __w_pdfjs_require__(109); +var anObject = __w_pdfjs_require__(51); +var classof = __w_pdfjs_require__(83); +var hasOwn = __w_pdfjs_require__(43); +var createProperty = __w_pdfjs_require__(105); +var createNonEnumerableProperty = __w_pdfjs_require__(48); +var lengthOfArrayLike = __w_pdfjs_require__(68); +var validateArgumentsLength = __w_pdfjs_require__(125); +var getRegExpFlags = __w_pdfjs_require__(126); +var ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(128); +var V8 = __w_pdfjs_require__(32); +var IS_BROWSER = __w_pdfjs_require__(129); +var IS_DENO = __w_pdfjs_require__(130); +var IS_NODE = __w_pdfjs_require__(131); +var Object = global.Object; +var Date = global.Date; +var Error = global.Error; +var EvalError = global.EvalError; +var RangeError = global.RangeError; +var ReferenceError = global.ReferenceError; +var SyntaxError = global.SyntaxError; +var TypeError = global.TypeError; +var URIError = global.URIError; +var PerformanceMark = global.PerformanceMark; +var WebAssembly = global.WebAssembly; +var CompileError = WebAssembly && WebAssembly.CompileError || Error; +var LinkError = WebAssembly && WebAssembly.LinkError || Error; +var RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error; +var DOMException = getBuiltin('DOMException'); +var Set = getBuiltin('Set'); +var Map = getBuiltin('Map'); +var MapPrototype = Map.prototype; +var mapHas = uncurryThis(MapPrototype.has); +var mapGet = uncurryThis(MapPrototype.get); +var mapSet = uncurryThis(MapPrototype.set); +var setAdd = uncurryThis(Set.prototype.add); +var objectKeys = getBuiltin('Object', 'keys'); +var push = uncurryThis([].push); +var thisBooleanValue = uncurryThis(true.valueOf); +var thisNumberValue = uncurryThis(1.0.valueOf); +var thisStringValue = uncurryThis(''.valueOf); +var thisTimeValue = uncurryThis(Date.prototype.getTime); +var PERFORMANCE_MARK = uid('structuredClone'); +var DATA_CLONE_ERROR = 'DataCloneError'; +var TRANSFERRING = 'Transferring'; +var checkBasicSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var set1 = new global.Set([7]); + var set2 = structuredCloneImplementation(set1); + var number = structuredCloneImplementation(Object(7)); + return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7; + }) && structuredCloneImplementation; }; - -/***/ }), -/* 141 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var $ = __w_pdfjs_require__(7); -var uncurryThis = __w_pdfjs_require__(18); -var hiddenKeys = __w_pdfjs_require__(55); -var isObject = __w_pdfjs_require__(23); -var hasOwn = __w_pdfjs_require__(41); -var defineProperty = (__w_pdfjs_require__(47).f); -var getOwnPropertyNamesModule = __w_pdfjs_require__(59); -var getOwnPropertyNamesExternalModule = __w_pdfjs_require__(142); -var isExtensible = __w_pdfjs_require__(145); -var uid = __w_pdfjs_require__(43); -var FREEZING = __w_pdfjs_require__(147); -var REQUIRED = false; -var METADATA = uid('meta'); -var id = 0; -var setMetadata = function (it) { - defineProperty(it, METADATA, { - value: { - objectID: 'O' + id++, - weakData: {} - } +var checkErrorsCloning = function (structuredCloneImplementation, $Error) { + return !fails(function () { + var error = new $Error(); + var test = structuredCloneImplementation({ + a: error, + b: error + }); + return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack); }); }; -var fastKey = function (it, create) { - if (!isObject(it)) - return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!hasOwn(it, METADATA)) { - if (!isExtensible(it)) - return 'F'; - if (!create) - return 'E'; - setMetadata(it); - } - return it[METADATA].objectID; -}; -var getWeakData = function (it, create) { - if (!hasOwn(it, METADATA)) { - if (!isExtensible(it)) - return true; - if (!create) - return false; - setMetadata(it); - } - return it[METADATA].weakData; -}; -var onFreeze = function (it) { - if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) - setMetadata(it); - return it; +var checkNewErrorsCloningSemantic = function (structuredCloneImplementation) { + return !fails(function () { + var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); + return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3; + }); }; -var enable = function () { - meta.enable = function () { - }; - REQUIRED = true; - var getOwnPropertyNames = getOwnPropertyNamesModule.f; - var splice = uncurryThis([].splice); - var test = {}; - test[METADATA] = 1; - if (getOwnPropertyNames(test).length) { - getOwnPropertyNamesModule.f = function (it) { - var result = getOwnPropertyNames(it); - for (var i = 0, length = result.length; i < length; i++) { - if (result[i] === METADATA) { - splice(result, i, 1); - break; - } - } - return result; - }; - $({ - target: 'Object', - stat: true, - forced: true - }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f }); - } +var nativeStructuredClone = global.structuredClone; +var FORCED_REPLACEMENT = IS_PURE || !checkErrorsCloning(nativeStructuredClone, Error) || !checkErrorsCloning(nativeStructuredClone, DOMException) || !checkNewErrorsCloningSemantic(nativeStructuredClone); +var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { + return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; +}); +var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; +var throwUncloneable = function (type) { + throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); }; -var meta = module.exports = { - enable: enable, - fastKey: fastKey, - getWeakData: getWeakData, - onFreeze: onFreeze +var throwUnpolyfillable = function (type, action) { + throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); }; -hiddenKeys[METADATA] = true; - -/***/ }), -/* 142 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var classof = __w_pdfjs_require__(19); -var toIndexedObject = __w_pdfjs_require__(16); -var $getOwnPropertyNames = (__w_pdfjs_require__(59).f); -var arraySlice = __w_pdfjs_require__(143); -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; -var getWindowNames = function (it) { +var createDataTransfer = function () { + var dataTransfer; try { - return $getOwnPropertyNames(it); + dataTransfer = new global.DataTransfer(); } catch (error) { - return arraySlice(windowNames); + try { + dataTransfer = new global.ClipboardEvent('').clipboardData; + } catch (error2) { + } } + return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null; }; -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it)); -}; - -/***/ }), -/* 143 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var global = __w_pdfjs_require__(8); -var toAbsoluteIndex = __w_pdfjs_require__(62); -var lengthOfArrayLike = __w_pdfjs_require__(64); -var createProperty = __w_pdfjs_require__(144); -var Array = global.Array; -var max = Math.max; -module.exports = function (O, start, end) { - var length = lengthOfArrayLike(O); - var k = toAbsoluteIndex(start, length); - var fin = toAbsoluteIndex(end === undefined ? length : end, length); - var result = Array(max(fin - k, 0)); - for (var n = 0; k < fin; k++, n++) - createProperty(result, n, O[k]); - result.length = n; - return result; -}; - -/***/ }), -/* 144 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var toPropertyKey = __w_pdfjs_require__(21); -var definePropertyModule = __w_pdfjs_require__(47); -var createPropertyDescriptor = __w_pdfjs_require__(15); -module.exports = function (object, key, value) { - var propertyKey = toPropertyKey(key); - if (propertyKey in object) - definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else - object[propertyKey] = value; -}; - -/***/ }), -/* 145 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var fails = __w_pdfjs_require__(11); -var isObject = __w_pdfjs_require__(23); -var classof = __w_pdfjs_require__(19); -var ARRAY_BUFFER_NON_EXTENSIBLE = __w_pdfjs_require__(146); -var $isExtensible = Object.isExtensible; -var FAILS_ON_PRIMITIVES = fails(function () { - $isExtensible(1); -}); -module.exports = FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE ? function isExtensible(it) { - if (!isObject(it)) - return false; - if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') - return false; - return $isExtensible ? $isExtensible(it) : true; -} : $isExtensible; - -/***/ }), -/* 146 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var fails = __w_pdfjs_require__(11); -module.exports = fails(function () { - if (typeof ArrayBuffer == 'function') { - var buffer = new ArrayBuffer(8); - if (Object.isExtensible(buffer)) - Object.defineProperty(buffer, 'a', { value: 8 }); - } -}); - -/***/ }), -/* 147 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var fails = __w_pdfjs_require__(11); -module.exports = !fails(function () { - return Object.isExtensible(Object.preventExtensions({})); -}); - -/***/ }), -/* 148 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var isCallable = __w_pdfjs_require__(24); -var isObject = __w_pdfjs_require__(23); -var setPrototypeOf = __w_pdfjs_require__(71); -module.exports = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if (setPrototypeOf && isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) - setPrototypeOf($this, NewTargetPrototype); - return $this; -}; - -/***/ }), -/* 149 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var defineProperty = (__w_pdfjs_require__(47).f); -var create = __w_pdfjs_require__(73); -var redefineAll = __w_pdfjs_require__(102); -var bind = __w_pdfjs_require__(80); -var anInstance = __w_pdfjs_require__(104); -var iterate = __w_pdfjs_require__(79); -var defineIterator = __w_pdfjs_require__(93); -var setSpecies = __w_pdfjs_require__(103); -var DESCRIPTORS = __w_pdfjs_require__(10); -var fastKey = (__w_pdfjs_require__(141).fastKey); -var InternalStateModule = __w_pdfjs_require__(52); -var setInternalState = InternalStateModule.set; -var internalStateGetterFor = InternalStateModule.getterFor; -module.exports = { - getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var Constructor = wrapper(function (that, iterable) { - anInstance(that, Prototype); - setInternalState(that, { - type: CONSTRUCTOR_NAME, - index: create(null), - first: undefined, - last: undefined, - size: 0 - }); - if (!DESCRIPTORS) - that.size = 0; - if (iterable != undefined) - iterate(iterable, that[ADDER], { - that: that, - AS_ENTRIES: IS_MAP - }); - }); - var Prototype = Constructor.prototype; - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - var define = function (that, key, value) { - var state = getInternalState(that); - var entry = getEntry(that, key); - var previous, index; - if (entry) { - entry.value = value; - } else { - state.last = entry = { - index: index = fastKey(key, true), - key: key, - value: value, - previous: previous = state.last, - next: undefined, - removed: false - }; - if (!state.first) - state.first = entry; - if (previous) - previous.next = entry; - if (DESCRIPTORS) - state.size++; - else - that.size++; - if (index !== 'F') - state.index[index] = entry; - } - return that; - }; - var getEntry = function (that, key) { - var state = getInternalState(that); - var index = fastKey(key); - var entry; - if (index !== 'F') - return state.index[index]; - for (entry = state.first; entry; entry = entry.next) { - if (entry.key == key) - return entry; - } - }; - redefineAll(Prototype, { - clear: function clear() { - var that = this; - var state = getInternalState(that); - var data = state.index; - var entry = state.first; - while (entry) { - entry.removed = true; - if (entry.previous) - entry.previous = entry.previous.next = undefined; - delete data[entry.index]; - entry = entry.next; - } - state.first = state.last = undefined; - if (DESCRIPTORS) - state.size = 0; - else - that.size = 0; - }, - 'delete': function (key) { - var that = this; - var state = getInternalState(that); - var entry = getEntry(that, key); - if (entry) { - var next = entry.next; - var prev = entry.previous; - delete state.index[entry.index]; - entry.removed = true; - if (prev) - prev.next = next; - if (next) - next.previous = prev; - if (state.first == entry) - state.first = next; - if (state.last == entry) - state.last = prev; - if (DESCRIPTORS) - state.size--; - else - that.size--; - } - return !!entry; - }, - forEach: function forEach(callbackfn) { - var state = getInternalState(this); - var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); - var entry; - while (entry = entry ? entry.next : state.first) { - boundFunction(entry.value, entry.key, this); - while (entry && entry.removed) - entry = entry.previous; - } - }, - has: function has(key) { - return !!getEntry(this, key); - } - }); - redefineAll(Prototype, IS_MAP ? { - get: function get(key) { - var entry = getEntry(this, key); - return entry && entry.value; - }, - set: function set(key, value) { - return define(this, key === 0 ? 0 : key, value); - } - } : { - add: function add(value) { - return define(this, value = value === 0 ? 0 : value, value); - } - }); - if (DESCRIPTORS) - defineProperty(Prototype, 'size', { - get: function () { - return getInternalState(this).size; - } - }); - return Constructor; - }, - setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { - var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; - var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); - var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); - defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { - setInternalState(this, { - type: ITERATOR_NAME, - target: iterated, - state: getInternalCollectionState(iterated), - kind: kind, - last: undefined - }); - }, function () { - var state = getInternalIteratorState(this); - var kind = state.kind; - var entry = state.last; - while (entry && entry.removed) - entry = entry.previous; - if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { - state.target = undefined; - return { - value: undefined, - done: true - }; - } - if (kind == 'keys') - return { - value: entry.key, - done: false - }; - if (kind == 'values') - return { - value: entry.value, - done: false - }; - return { - value: [ - entry.key, - entry.value - ], - done: false - }; - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - setSpecies(CONSTRUCTOR_NAME); - } -}; - -/***/ }), -/* 150 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -__w_pdfjs_require__(151); - -/***/ }), -/* 151 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var collection = __w_pdfjs_require__(140); -var collectionStrong = __w_pdfjs_require__(149); -collection('Set', function (init) { - return function Set() { - return init(this, arguments.length ? arguments[0] : undefined); - }; -}, collectionStrong); - -/***/ }), -/* 152 */ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var IS_PURE = __w_pdfjs_require__(38); -var $ = __w_pdfjs_require__(7); -var global = __w_pdfjs_require__(8); -var getBuiltin = __w_pdfjs_require__(26); -var uncurryThis = __w_pdfjs_require__(18); -var fails = __w_pdfjs_require__(11); -var uid = __w_pdfjs_require__(43); -var isCallable = __w_pdfjs_require__(24); -var isConstructor = __w_pdfjs_require__(107); -var isObject = __w_pdfjs_require__(23); -var isSymbol = __w_pdfjs_require__(25); -var iterate = __w_pdfjs_require__(79); -var anObject = __w_pdfjs_require__(49); -var classof = __w_pdfjs_require__(85); -var hasOwn = __w_pdfjs_require__(41); -var createProperty = __w_pdfjs_require__(144); -var createNonEnumerableProperty = __w_pdfjs_require__(46); -var lengthOfArrayLike = __w_pdfjs_require__(64); -var validateArgumentsLength = __w_pdfjs_require__(111); -var getRegExpFlags = __w_pdfjs_require__(153); -var ERROR_STACK_INSTALLABLE = __w_pdfjs_require__(90); -var Object = global.Object; -var Date = global.Date; -var Error = global.Error; -var EvalError = global.EvalError; -var RangeError = global.RangeError; -var ReferenceError = global.ReferenceError; -var SyntaxError = global.SyntaxError; -var TypeError = global.TypeError; -var URIError = global.URIError; -var PerformanceMark = global.PerformanceMark; -var WebAssembly = global.WebAssembly; -var CompileError = WebAssembly && WebAssembly.CompileError || Error; -var LinkError = WebAssembly && WebAssembly.LinkError || Error; -var RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error; -var DOMException = getBuiltin('DOMException'); -var Set = getBuiltin('Set'); -var Map = getBuiltin('Map'); -var MapPrototype = Map.prototype; -var mapHas = uncurryThis(MapPrototype.has); -var mapGet = uncurryThis(MapPrototype.get); -var mapSet = uncurryThis(MapPrototype.set); -var setAdd = uncurryThis(Set.prototype.add); -var objectKeys = getBuiltin('Object', 'keys'); -var push = uncurryThis([].push); -var booleanValueOf = uncurryThis(true.valueOf); -var numberValueOf = uncurryThis(1.0.valueOf); -var stringValueOf = uncurryThis(''.valueOf); -var getTime = uncurryThis(Date.prototype.getTime); -var PERFORMANCE_MARK = uid('structuredClone'); -var DATA_CLONE_ERROR = 'DataCloneError'; -var TRANSFERRING = 'Transferring'; -var checkBasicSemantic = function (structuredCloneImplementation) { - return !fails(function () { - var set1 = new global.Set([7]); - var set2 = structuredCloneImplementation(set1); - var number = structuredCloneImplementation(Object(7)); - return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7; - }) && structuredCloneImplementation; -}; -var checkNewErrorsSemantic = function (structuredCloneImplementation) { - return !fails(function () { - var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 })); - return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3; - }) && structuredCloneImplementation; -}; -var nativeStructuredClone = global.structuredClone; -var FORCED_REPLACEMENT = IS_PURE || !checkNewErrorsSemantic(nativeStructuredClone); -var structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) { - return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail; -}); -var nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark; -var throwUncloneable = function (type) { - throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR); -}; -var throwUnpolyfillable = function (type, kind) { - throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR); -}; -var structuredCloneInternal = function (value, map) { - if (isSymbol(value)) - throwUncloneable('Symbol'); - if (!isObject(value)) - return value; - if (map) { - if (mapHas(map, value)) - return mapGet(map, value); - } else - map = new Map(); - var type = classof(value); - var deep = false; - var C, name, cloned, dataTransfer, i, length, keys, key, source, target; - switch (type) { - case 'Array': - cloned = []; - deep = true; - break; - case 'Object': - cloned = {}; - deep = true; - break; - case 'Map': - cloned = new Map(); - deep = true; - break; - case 'Set': - cloned = new Set(); - deep = true; - break; - case 'RegExp': - cloned = new RegExp(value.source, getRegExpFlags(value)); - break; - case 'Error': - name = value.name; - switch (name) { - case 'AggregateError': - cloned = getBuiltin('AggregateError')([]); - break; - case 'EvalError': - cloned = EvalError(); - break; - case 'RangeError': - cloned = RangeError(); - break; - case 'ReferenceError': - cloned = ReferenceError(); - break; - case 'SyntaxError': - cloned = SyntaxError(); - break; - case 'TypeError': - cloned = TypeError(); - break; - case 'URIError': - cloned = URIError(); - break; - case 'CompileError': - cloned = CompileError(); - break; - case 'LinkError': - cloned = LinkError(); - break; - case 'RuntimeError': - cloned = RuntimeError(); - break; - default: - cloned = Error(); - } - deep = true; - break; - case 'DOMException': - cloned = new DOMException(value.message, value.name); - deep = true; - break; - case 'DataView': - case 'Int8Array': - case 'Uint8Array': - case 'Uint8ClampedArray': - case 'Int16Array': - case 'Uint16Array': - case 'Int32Array': - case 'Uint32Array': - case 'Float32Array': - case 'Float64Array': - case 'BigInt64Array': - case 'BigUint64Array': - C = global[type]; - if (!isObject(C)) - throwUnpolyfillable(type); - cloned = new C(structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length); - break; - case 'DOMQuad': - try { - cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map)); - } catch (error) { - if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else - throwUnpolyfillable(type); - } - break; - case 'FileList': - C = global.DataTransfer; - if (isConstructor(C)) { - dataTransfer = new C(); - for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { - dataTransfer.items.add(structuredCloneInternal(value[i], map)); - } - cloned = dataTransfer.files; - } else if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else - throwUnpolyfillable(type); - break; - case 'ImageData': - try { - cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, { colorSpace: value.colorSpace }); - } catch (error) { - if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else - throwUnpolyfillable(type); - } - break; - default: - if (nativeRestrictedStructuredClone) { - cloned = nativeRestrictedStructuredClone(value); - } else - switch (type) { - case 'BigInt': - cloned = Object(value.valueOf()); - break; - case 'Boolean': - cloned = Object(booleanValueOf(value)); - break; - case 'Number': - cloned = Object(numberValueOf(value)); - break; - case 'String': - cloned = Object(stringValueOf(value)); - break; - case 'Date': - cloned = new Date(getTime(value)); - break; - case 'ArrayBuffer': - C = global.DataView; - if (!C && typeof value.slice != 'function') - throwUnpolyfillable(type); - try { - if (typeof value.slice == 'function') { - cloned = value.slice(0); - } else { - length = value.byteLength; - cloned = new ArrayBuffer(length); - source = new C(value); - target = new C(cloned); - for (i = 0; i < length; i++) { - target.setUint8(i, source.getUint8(i)); - } - } - } catch (error) { - throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); - } - break; - case 'SharedArrayBuffer': - cloned = value; - break; - case 'Blob': - try { - cloned = value.slice(0, value.size, value.type); - } catch (error) { - throwUnpolyfillable(type); - } - break; - case 'DOMPoint': - case 'DOMPointReadOnly': - C = global[type]; - try { - cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w); - } catch (error) { - throwUnpolyfillable(type); - } - break; - case 'DOMRect': - case 'DOMRectReadOnly': - C = global[type]; - try { - cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height); - } catch (error) { - throwUnpolyfillable(type); - } - break; - case 'DOMMatrix': - case 'DOMMatrixReadOnly': - C = global[type]; - try { - cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value); - } catch (error) { - throwUnpolyfillable(type); - } - break; - case 'AudioData': - case 'VideoFrame': - if (!isCallable(value.clone)) - throwUnpolyfillable(type); - try { - cloned = value.clone(); - } catch (error) { - throwUncloneable(type); - } - break; - case 'File': - try { - cloned = new File([value], value.name, value); - } catch (error) { - throwUnpolyfillable(type); - } - break; - case 'CryptoKey': - case 'GPUCompilationMessage': - case 'GPUCompilationInfo': - case 'ImageBitmap': - case 'RTCCertificate': - case 'WebAssembly.Module': - throwUnpolyfillable(type); - default: - throwUncloneable(type); - } - } - mapSet(map, value, cloned); - if (deep) - switch (type) { - case 'Array': - case 'Object': - keys = objectKeys(value); - for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { - key = keys[i]; - createProperty(cloned, key, structuredCloneInternal(value[key], map)); - } - break; - case 'Map': - value.forEach(function (v, k) { - mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); - }); - break; - case 'Set': - value.forEach(function (v) { - setAdd(cloned, structuredCloneInternal(v, map)); - }); - break; - case 'Error': - createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); - if (hasOwn(value, 'cause')) { - createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); - } - if (name == 'AggregateError') { - cloned.errors = structuredCloneInternal(value.errors, map); - } - case 'DOMException': - if (ERROR_STACK_INSTALLABLE) { - createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); - } - } - return cloned; -}; -var PROPER_TRANSFER = nativeStructuredClone && !fails(function () { - var buffer = new ArrayBuffer(8); - var clone = nativeStructuredClone(buffer, { transfer: [buffer] }); - return buffer.byteLength != 0 || clone.byteLength != 8; -}); -var tryToTransfer = function (rawTransfer, map) { - if (!isObject(rawTransfer)) - throw TypeError('Transfer option cannot be converted to a sequence'); - var transfer = []; - iterate(rawTransfer, function (value) { - push(transfer, anObject(value)); - }); - var i = 0; - var length = lengthOfArrayLike(transfer); - var value, type, C, transferredArray, transferred, canvas, context; - if (PROPER_TRANSFER) { - transferredArray = nativeStructuredClone(transfer, { transfer: transfer }); - while (i < length) - mapSet(map, transfer[i], transferredArray[i++]); - } else - while (i < length) { - value = transfer[i++]; - if (mapHas(map, value)) - throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); - type = classof(value); - switch (type) { - case 'ImageBitmap': - C = global.OffscreenCanvas; - if (!isConstructor(C)) - throwUnpolyfillable(type, TRANSFERRING); - try { - canvas = new C(value.width, value.height); - context = canvas.getContext('bitmaprenderer'); - context.transferFromImageBitmap(value); - transferred = canvas.transferToImageBitmap(); - } catch (error) { - } - break; - case 'AudioData': - case 'VideoFrame': - if (!isCallable(value.clone) || !isCallable(value.close)) - throwUnpolyfillable(type, TRANSFERRING); - try { - transferred = value.clone(); - value.close(); - } catch (error) { - } - break; - case 'ArrayBuffer': - case 'MessagePort': - case 'OffscreenCanvas': - case 'ReadableStream': - case 'TransformStream': - case 'WritableStream': - throwUnpolyfillable(type, TRANSFERRING); - } - if (transferred === undefined) - throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); - mapSet(map, value, transferred); - } -}; -$({ - global: true, - enumerable: true, - sham: !PROPER_TRANSFER, - forced: FORCED_REPLACEMENT -}, { - structuredClone: function structuredClone(value) { - var options = validateArgumentsLength(arguments.length, 1) > 1 && arguments[1] != null ? anObject(arguments[1]) : undefined; - var transfer = options ? options.transfer : undefined; - var map; - if (transfer !== undefined) { - map = new Map(); - tryToTransfer(transfer, map); - } - return structuredCloneInternal(value, map); - } -}); - -/***/ }), -/* 153 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -var call = __w_pdfjs_require__(12); -var hasOwn = __w_pdfjs_require__(41); -var isPrototypeOf = __w_pdfjs_require__(27); -var regExpFlags = __w_pdfjs_require__(154); -var RegExpPrototype = RegExp.prototype; -module.exports = function (R) { - var flags = R.flags; - return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags; -}; - -/***/ }), -/* 154 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - -var anObject = __w_pdfjs_require__(49); -module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.hasIndices) - result += 'd'; - if (that.global) - result += 'g'; - if (that.ignoreCase) - result += 'i'; - if (that.multiline) - result += 'm'; - if (that.dotAll) - result += 's'; - if (that.unicode) - result += 'u'; - if (that.sticky) - result += 'y'; - return result; -}; - -/***/ }), -/* 155 */ -/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0; -exports.getDocument = getDocument; -exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; -exports.version = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - -var _util = __w_pdfjs_require__(1); - -var _display_utils = __w_pdfjs_require__(158); - -var _font_loader = __w_pdfjs_require__(160); - -var _annotation_storage = __w_pdfjs_require__(161); - -var _canvas = __w_pdfjs_require__(163); - -var _worker_options = __w_pdfjs_require__(166); - -var _is_node = __w_pdfjs_require__(3); - -var _message_handler = __w_pdfjs_require__(167); - -var _metadata = __w_pdfjs_require__(168); - -var _optional_content_config = __w_pdfjs_require__(169); - -var _transport_stream = __w_pdfjs_require__(170); - -var _xfa_text = __w_pdfjs_require__(171); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } - -function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } - -function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } - -function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } - -function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } - -function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } - -function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } - -function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } - -function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "get"); return _classApplyDescriptorGet(receiver, descriptor); } - -function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError("attempted to " + action + " private static field before its declaration"); } } - -function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } - -function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -var DEFAULT_RANGE_CHUNK_SIZE = 65536; -var RENDERING_CANCELLED_TIMEOUT = 100; -var DefaultCanvasFactory = _display_utils.DOMCanvasFactory; -exports.DefaultCanvasFactory = DefaultCanvasFactory; -var DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory; -exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory; -var DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory; -exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory; - -if (_is_node.isNodeJS) { - var _require = __w_pdfjs_require__(172), - NodeCanvasFactory = _require.NodeCanvasFactory, - NodeCMapReaderFactory = _require.NodeCMapReaderFactory, - NodeStandardFontDataFactory = _require.NodeStandardFontDataFactory; - - exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory; - exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory; - exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory; -} - -var createPDFNetworkStream; - -function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { - createPDFNetworkStream = pdfNetworkStreamFactory; -} - -function getDocument(src) { - var task = new PDFDocumentLoadingTask(); - var source; - - if (typeof src === "string" || src instanceof URL) { - source = { - url: src - }; - } else if ((0, _util.isArrayBuffer)(src)) { - source = { - data: src - }; - } else if (src instanceof PDFDataRangeTransport) { - source = { - range: src - }; - } else { - if (_typeof(src) !== "object") { - throw new Error("Invalid parameter in getDocument, " + "need either string, URL, Uint8Array, or parameter object."); - } - - if (!src.url && !src.data && !src.range) { - throw new Error("Invalid parameter object: need either .data, .range or .url"); - } - - source = src; - } - - var params = Object.create(null); - var rangeTransport = null, - worker = null; - - for (var key in source) { - var value = source[key]; - - switch (key) { - case "url": - if (typeof window !== "undefined") { - try { - params[key] = new URL(value, window.location).href; - continue; - } catch (ex) { - (0, _util.warn)("Cannot create valid URL: \"".concat(ex, "\".")); - } - } else if (typeof value === "string" || value instanceof URL) { - params[key] = value.toString(); - continue; - } - - throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); - - case "range": - rangeTransport = value; - continue; - - case "worker": - worker = value; - continue; - - case "data": - if (_is_node.isNodeJS && typeof Buffer !== "undefined" && value instanceof Buffer) { - params[key] = new Uint8Array(value); - } else if (value instanceof Uint8Array) { - break; - } else if (typeof value === "string") { - params[key] = (0, _util.stringToBytes)(value); - } else if (_typeof(value) === "object" && value !== null && !isNaN(value.length)) { - params[key] = new Uint8Array(value); - } else if ((0, _util.isArrayBuffer)(value)) { - params[key] = new Uint8Array(value); - } else { - throw new Error("Invalid PDF binary data: either typed array, " + "string, or array-like object is expected in the data property."); - } - - continue; - } - - params[key] = value; - } - - params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory; - params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory; - params.ignoreErrors = params.stopAtErrors !== true; - params.fontExtraProperties = params.fontExtraProperties === true; - params.pdfBug = params.pdfBug === true; - params.enableXfa = params.enableXfa === true; - - if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) { - params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE; - } - - if (typeof params.docBaseUrl !== "string" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) { - params.docBaseUrl = null; - } - - if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) { - params.maxImageSize = -1; - } - - if (typeof params.cMapUrl !== "string") { - params.cMapUrl = null; - } - - if (typeof params.standardFontDataUrl !== "string") { - params.standardFontDataUrl = null; - } - - if (typeof params.useWorkerFetch !== "boolean") { - params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory; - } - - if (typeof params.isEvalSupported !== "boolean") { - params.isEvalSupported = true; - } - - if (typeof params.disableFontFace !== "boolean") { - params.disableFontFace = _is_node.isNodeJS; - } - - if (typeof params.useSystemFonts !== "boolean") { - params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace; - } - - if (_typeof(params.ownerDocument) !== "object" || params.ownerDocument === null) { - params.ownerDocument = globalThis.document; - } - - if (typeof params.disableRange !== "boolean") { - params.disableRange = false; - } - - if (typeof params.disableStream !== "boolean") { - params.disableStream = false; - } - - if (typeof params.disableAutoFetch !== "boolean") { - params.disableAutoFetch = false; - } - - (0, _util.setVerbosityLevel)(params.verbosity); - - if (!worker) { - var workerParams = { - verbosity: params.verbosity, - port: _worker_options.GlobalWorkerOptions.workerPort - }; - worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); - task._worker = worker; - } - - var docId = task.docId; - worker.promise.then(function () { - if (task.destroyed) { - throw new Error("Loading aborted"); - } - - var workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId); - - var networkStreamPromise = new Promise(function (resolve) { - var networkStream; - - if (rangeTransport) { - networkStream = new _transport_stream.PDFDataTransportStream({ - length: params.length, - initialData: params.initialData, - progressiveDone: params.progressiveDone, - contentDispositionFilename: params.contentDispositionFilename, - disableRange: params.disableRange, - disableStream: params.disableStream - }, rangeTransport); - } else if (!params.data) { - networkStream = createPDFNetworkStream({ - url: params.url, - length: params.length, - httpHeaders: params.httpHeaders, - withCredentials: params.withCredentials, - rangeChunkSize: params.rangeChunkSize, - disableRange: params.disableRange, - disableStream: params.disableStream - }); - } - - resolve(networkStream); - }); - return Promise.all([workerIdPromise, networkStreamPromise]).then(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - workerId = _ref2[0], - networkStream = _ref2[1]; - - if (task.destroyed) { - throw new Error("Loading aborted"); - } - - var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); - var transport = new WorkerTransport(messageHandler, task, networkStream, params); - task._transport = transport; - messageHandler.send("Ready", null); - }); - })["catch"](task._capability.reject); - return task; -} - -function _fetchDocument(_x, _x2, _x3, _x4) { - return _fetchDocument2.apply(this, arguments); -} - -function _fetchDocument2() { - _fetchDocument2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee7(worker, source, pdfDataRangeTransport, docId) { - var workerId; - return _regenerator["default"].wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - if (!worker.destroyed) { - _context7.next = 2; - break; - } - - throw new Error("Worker was destroyed"); - - case 2: - if (pdfDataRangeTransport) { - source.length = pdfDataRangeTransport.length; - source.initialData = pdfDataRangeTransport.initialData; - source.progressiveDone = pdfDataRangeTransport.progressiveDone; - source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename; - } - - _context7.next = 5; - return worker.messageHandler.sendWithPromise("GetDocRequest", { - docId: docId, - apiVersion: '2.14.305', - source: { - data: source.data, - url: source.url, - password: source.password, - disableAutoFetch: source.disableAutoFetch, - rangeChunkSize: source.rangeChunkSize, - length: source.length - }, - maxImageSize: source.maxImageSize, - disableFontFace: source.disableFontFace, - docBaseUrl: source.docBaseUrl, - ignoreErrors: source.ignoreErrors, - isEvalSupported: source.isEvalSupported, - fontExtraProperties: source.fontExtraProperties, - enableXfa: source.enableXfa, - useSystemFonts: source.useSystemFonts, - cMapUrl: source.useWorkerFetch ? source.cMapUrl : null, - standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null - }); - - case 5: - workerId = _context7.sent; - - if (!worker.destroyed) { - _context7.next = 8; - break; - } - - throw new Error("Worker was destroyed"); - - case 8: - return _context7.abrupt("return", workerId); - - case 9: - case "end": - return _context7.stop(); - } - } - }, _callee7); - })); - return _fetchDocument2.apply(this, arguments); -} - -var PDFDocumentLoadingTask = /*#__PURE__*/function () { - function PDFDocumentLoadingTask() { - var _PDFDocumentLoadingTa, _PDFDocumentLoadingTa2; - - _classCallCheck(this, PDFDocumentLoadingTask); - - this._capability = (0, _util.createPromiseCapability)(); - this._transport = null; - this._worker = null; - this.docId = "d".concat((_classStaticPrivateFieldSpecSet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId, (_PDFDocumentLoadingTa = _classStaticPrivateFieldSpecGet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId), _PDFDocumentLoadingTa2 = _PDFDocumentLoadingTa++, _PDFDocumentLoadingTa)), _PDFDocumentLoadingTa2)); - this.destroyed = false; - this.onPassword = null; - this.onProgress = null; - this.onUnsupportedFeature = null; - } - - _createClass(PDFDocumentLoadingTask, [{ - key: "promise", - get: function get() { - return this._capability.promise; - } - }, { - key: "destroy", - value: function () { - var _destroy = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var _this$_transport; - - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.destroyed = true; - _context.next = 3; - return (_this$_transport = this._transport) === null || _this$_transport === void 0 ? void 0 : _this$_transport.destroy(); - - case 3: - this._transport = null; - - if (this._worker) { - this._worker.destroy(); - - this._worker = null; - } - - case 5: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function destroy() { - return _destroy.apply(this, arguments); - } - - return destroy; - }() - }]); - - return PDFDocumentLoadingTask; -}(); - -exports.PDFDocumentLoadingTask = PDFDocumentLoadingTask; -var _docId = { - writable: true, - value: 0 -}; - -var PDFDataRangeTransport = /*#__PURE__*/function () { - function PDFDataRangeTransport(length, initialData) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - - _classCallCheck(this, PDFDataRangeTransport); - - this.length = length; - this.initialData = initialData; - this.progressiveDone = progressiveDone; - this.contentDispositionFilename = contentDispositionFilename; - this._rangeListeners = []; - this._progressListeners = []; - this._progressiveReadListeners = []; - this._progressiveDoneListeners = []; - this._readyCapability = (0, _util.createPromiseCapability)(); - } - - _createClass(PDFDataRangeTransport, [{ - key: "addRangeListener", - value: function addRangeListener(listener) { - this._rangeListeners.push(listener); - } - }, { - key: "addProgressListener", - value: function addProgressListener(listener) { - this._progressListeners.push(listener); - } - }, { - key: "addProgressiveReadListener", - value: function addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - } - }, { - key: "addProgressiveDoneListener", - value: function addProgressiveDoneListener(listener) { - this._progressiveDoneListeners.push(listener); - } - }, { - key: "onDataRange", - value: function onDataRange(begin, chunk) { - var _iterator = _createForOfIteratorHelper(this._rangeListeners), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var listener = _step.value; - listener(begin, chunk); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - }, { - key: "onDataProgress", - value: function onDataProgress(loaded, total) { - var _this = this; - - this._readyCapability.promise.then(function () { - var _iterator2 = _createForOfIteratorHelper(_this._progressListeners), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var listener = _step2.value; - listener(loaded, total); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - }); - } - }, { - key: "onDataProgressiveRead", - value: function onDataProgressiveRead(chunk) { - var _this2 = this; - - this._readyCapability.promise.then(function () { - var _iterator3 = _createForOfIteratorHelper(_this2._progressiveReadListeners), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var listener = _step3.value; - listener(chunk); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - }); - } - }, { - key: "onDataProgressiveDone", - value: function onDataProgressiveDone() { - var _this3 = this; - - this._readyCapability.promise.then(function () { - var _iterator4 = _createForOfIteratorHelper(_this3._progressiveDoneListeners), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var listener = _step4.value; - listener(); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - }); - } - }, { - key: "transportReady", - value: function transportReady() { - this._readyCapability.resolve(); - } - }, { - key: "requestDataRange", - value: function requestDataRange(begin, end) { - (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); - } - }, { - key: "abort", - value: function abort() {} - }]); - - return PDFDataRangeTransport; -}(); - -exports.PDFDataRangeTransport = PDFDataRangeTransport; - -var PDFDocumentProxy = /*#__PURE__*/function () { - function PDFDocumentProxy(pdfInfo, transport) { - var _this4 = this; - - _classCallCheck(this, PDFDocumentProxy); - - this._pdfInfo = pdfInfo; - this._transport = transport; - Object.defineProperty(this, "fingerprint", { - get: function get() { - (0, _display_utils.deprecated)("`PDFDocumentProxy.fingerprint`, " + "please use `PDFDocumentProxy.fingerprints` instead."); - return this.fingerprints[0]; - } - }); - Object.defineProperty(this, "getStats", { - value: function () { - var _value = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - (0, _display_utils.deprecated)("`PDFDocumentProxy.getStats`, " + "please use the `PDFDocumentProxy.stats`-getter instead."); - return _context2.abrupt("return", _this4.stats || { - streamTypes: {}, - fontTypes: {} - }); - - case 2: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function value() { - return _value.apply(this, arguments); - } - - return value; - }() - }); - } - - _createClass(PDFDocumentProxy, [{ - key: "annotationStorage", - get: function get() { - return this._transport.annotationStorage; - } - }, { - key: "numPages", - get: function get() { - return this._pdfInfo.numPages; - } - }, { - key: "fingerprints", - get: function get() { - return this._pdfInfo.fingerprints; - } - }, { - key: "stats", - get: function get() { - return this._transport.stats; - } - }, { - key: "isPureXfa", - get: function get() { - return !!this._transport._htmlForXfa; - } - }, { - key: "allXfaHtml", - get: function get() { - return this._transport._htmlForXfa; - } - }, { - key: "getPage", - value: function getPage(pageNumber) { - return this._transport.getPage(pageNumber); - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this._transport.getPageIndex(ref); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this._transport.getDestinations(); - } - }, { - key: "getDestination", - value: function getDestination(id) { - return this._transport.getDestination(id); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this._transport.getPageLabels(); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this._transport.getPageLayout(); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this._transport.getPageMode(); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this._transport.getViewerPreferences(); - } - }, { - key: "getOpenAction", - value: function getOpenAction() { - return this._transport.getOpenAction(); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this._transport.getAttachments(); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this._transport.getJavaScript(); - } - }, { - key: "getJSActions", - value: function getJSActions() { - return this._transport.getDocJSActions(); - } - }, { - key: "getOutline", - value: function getOutline() { - return this._transport.getOutline(); - } - }, { - key: "getOptionalContentConfig", - value: function getOptionalContentConfig() { - return this._transport.getOptionalContentConfig(); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this._transport.getPermissions(); - } - }, { - key: "getMetadata", - value: function getMetadata() { - return this._transport.getMetadata(); - } - }, { - key: "getMarkInfo", - value: function getMarkInfo() { - return this._transport.getMarkInfo(); - } - }, { - key: "getData", - value: function getData() { - return this._transport.getData(); - } - }, { - key: "getDownloadInfo", - value: function getDownloadInfo() { - return this._transport.downloadInfoCapability.promise; - } - }, { - key: "cleanup", - value: function cleanup() { - var keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa); - } - }, { - key: "destroy", - value: function destroy() { - return this.loadingTask.destroy(); - } - }, { - key: "loadingParams", - get: function get() { - return this._transport.loadingParams; - } - }, { - key: "loadingTask", - get: function get() { - return this._transport.loadingTask; - } - }, { - key: "saveDocument", - value: function saveDocument() { - if (this._transport.annotationStorage.size <= 0) { - (0, _display_utils.deprecated)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); - } - - return this._transport.saveDocument(); - } - }, { - key: "getFieldObjects", - value: function getFieldObjects() { - return this._transport.getFieldObjects(); - } - }, { - key: "hasJSActions", - value: function hasJSActions() { - return this._transport.hasJSActions(); - } - }, { - key: "getCalculationOrderIds", - value: function getCalculationOrderIds() { - return this._transport.getCalculationOrderIds(); - } - }]); - - return PDFDocumentProxy; -}(); - -exports.PDFDocumentProxy = PDFDocumentProxy; - -var PDFPageProxy = /*#__PURE__*/function () { - function PDFPageProxy(pageIndex, pageInfo, transport, ownerDocument) { - var pdfBug = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - _classCallCheck(this, PDFPageProxy); - - this._pageIndex = pageIndex; - this._pageInfo = pageInfo; - this._ownerDocument = ownerDocument; - this._transport = transport; - this._stats = pdfBug ? new _display_utils.StatTimer() : null; - this._pdfBug = pdfBug; - this.commonObjs = transport.commonObjs; - this.objs = new PDFObjects(); - this._bitmaps = new Set(); - this.cleanupAfterRender = false; - this.pendingCleanup = false; - this._intentStates = new Map(); - this._annotationPromises = new Map(); - this.destroyed = false; - } - - _createClass(PDFPageProxy, [{ - key: "pageNumber", - get: function get() { - return this._pageIndex + 1; - } - }, { - key: "rotate", - get: function get() { - return this._pageInfo.rotate; - } - }, { - key: "ref", - get: function get() { - return this._pageInfo.ref; - } - }, { - key: "userUnit", - get: function get() { - return this._pageInfo.userUnit; - } - }, { - key: "view", - get: function get() { - return this._pageInfo.view; - } - }, { - key: "getViewport", - value: function getViewport() { - var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - scale = _ref3.scale, - _ref3$rotation = _ref3.rotation, - rotation = _ref3$rotation === void 0 ? this.rotate : _ref3$rotation, - _ref3$offsetX = _ref3.offsetX, - offsetX = _ref3$offsetX === void 0 ? 0 : _ref3$offsetX, - _ref3$offsetY = _ref3.offsetY, - offsetY = _ref3$offsetY === void 0 ? 0 : _ref3$offsetY, - _ref3$dontFlip = _ref3.dontFlip, - dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip; - - return new _display_utils.PageViewport({ - viewBox: this.view, - scale: scale, - rotation: rotation, - offsetX: offsetX, - offsetY: offsetY, - dontFlip: dontFlip - }); - } - }, { - key: "getAnnotations", - value: function getAnnotations() { - var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref4$intent = _ref4.intent, - intent = _ref4$intent === void 0 ? "display" : _ref4$intent; - - var intentArgs = this._transport.getRenderingIntent(intent); - - var promise = this._annotationPromises.get(intentArgs.cacheKey); - - if (!promise) { - promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent); - - this._annotationPromises.set(intentArgs.cacheKey, promise); - - promise = promise.then(function (annotations) { - var _iterator5 = _createForOfIteratorHelper(annotations), - _step5; - - try { - var _loop = function _loop() { - var annotation = _step5.value; - - if (annotation.titleObj !== undefined) { - Object.defineProperty(annotation, "title", { - get: function get() { - (0, _display_utils.deprecated)("`title`-property on annotation, please use `titleObj` instead."); - return annotation.titleObj.str; - } - }); - } - - if (annotation.contentsObj !== undefined) { - Object.defineProperty(annotation, "contents", { - get: function get() { - (0, _display_utils.deprecated)("`contents`-property on annotation, please use `contentsObj` instead."); - return annotation.contentsObj.str; - } - }); - } - }; - - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - _loop(); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - return annotations; - }); - } - - return promise; - } - }, { - key: "getJSActions", - value: function getJSActions() { - return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex)); - } - }, { - key: "getXfa", - value: function () { - var _getXfa = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { - var _this$_transport$_htm; - - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", ((_this$_transport$_htm = this._transport._htmlForXfa) === null || _this$_transport$_htm === void 0 ? void 0 : _this$_transport$_htm.children[this._pageIndex]) || null); - - case 1: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function getXfa() { - return _getXfa.apply(this, arguments); - } - - return getXfa; - }() - }, { - key: "render", - value: function render(_ref5) { - var _arguments$, - _arguments$2, - _this5 = this, - _intentState; - - var canvasContext = _ref5.canvasContext, - viewport = _ref5.viewport, - _ref5$intent = _ref5.intent, - intent = _ref5$intent === void 0 ? "display" : _ref5$intent, - _ref5$annotationMode = _ref5.annotationMode, - annotationMode = _ref5$annotationMode === void 0 ? _util.AnnotationMode.ENABLE : _ref5$annotationMode, - _ref5$transform = _ref5.transform, - transform = _ref5$transform === void 0 ? null : _ref5$transform, - _ref5$imageLayer = _ref5.imageLayer, - imageLayer = _ref5$imageLayer === void 0 ? null : _ref5$imageLayer, - _ref5$canvasFactory = _ref5.canvasFactory, - canvasFactory = _ref5$canvasFactory === void 0 ? null : _ref5$canvasFactory, - _ref5$background = _ref5.background, - background = _ref5$background === void 0 ? null : _ref5$background, - _ref5$optionalContent = _ref5.optionalContentConfigPromise, - optionalContentConfigPromise = _ref5$optionalContent === void 0 ? null : _ref5$optionalContent, - _ref5$annotationCanva = _ref5.annotationCanvasMap, - annotationCanvasMap = _ref5$annotationCanva === void 0 ? null : _ref5$annotationCanva, - _ref5$pageColors = _ref5.pageColors, - pageColors = _ref5$pageColors === void 0 ? null : _ref5$pageColors; - - if (((_arguments$ = arguments[0]) === null || _arguments$ === void 0 ? void 0 : _arguments$.renderInteractiveForms) !== undefined) { - (0, _display_utils.deprecated)("render no longer accepts the `renderInteractiveForms`-option, " + "please use the `annotationMode`-option instead."); - - if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) { - annotationMode = _util.AnnotationMode.ENABLE_FORMS; - } - } - - if (((_arguments$2 = arguments[0]) === null || _arguments$2 === void 0 ? void 0 : _arguments$2.includeAnnotationStorage) !== undefined) { - (0, _display_utils.deprecated)("render no longer accepts the `includeAnnotationStorage`-option, " + "please use the `annotationMode`-option instead."); - - if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) { - annotationMode = _util.AnnotationMode.ENABLE_STORAGE; - } - } - - if (this._stats) { - this._stats.time("Overall"); - } - - var intentArgs = this._transport.getRenderingIntent(intent, annotationMode); - - this.pendingCleanup = false; - - if (!optionalContentConfigPromise) { - optionalContentConfigPromise = this._transport.getOptionalContentConfig(); - } - - var intentState = this._intentStates.get(intentArgs.cacheKey); - - if (!intentState) { - intentState = Object.create(null); - - this._intentStates.set(intentArgs.cacheKey, intentState); - } - - if (intentState.streamReaderCancelTimeout) { - clearTimeout(intentState.streamReaderCancelTimeout); - intentState.streamReaderCancelTimeout = null; - } - - var canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({ - ownerDocument: this._ownerDocument - }); - var intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT); - - if (!intentState.displayReadyCapability) { - intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - if (this._stats) { - this._stats.time("Page Request"); - } - - this._pumpOperatorList(intentArgs); - } - - var complete = function complete(error) { - intentState.renderTasks["delete"](internalRenderTask); - - if (_this5.cleanupAfterRender || intentPrint) { - _this5.pendingCleanup = true; - } - - _this5._tryCleanup(); - - if (error) { - internalRenderTask.capability.reject(error); - - _this5._abortOperatorList({ - intentState: intentState, - reason: error instanceof Error ? error : new Error(error) - }); - } else { - internalRenderTask.capability.resolve(); - } - - if (_this5._stats) { - _this5._stats.timeEnd("Rendering"); - - _this5._stats.timeEnd("Overall"); - } - }; - - var internalRenderTask = new InternalRenderTask({ - callback: complete, - params: { - canvasContext: canvasContext, - viewport: viewport, - transform: transform, - imageLayer: imageLayer, - background: background - }, - objs: this.objs, - commonObjs: this.commonObjs, - annotationCanvasMap: annotationCanvasMap, - operatorList: intentState.operatorList, - pageIndex: this._pageIndex, - canvasFactory: canvasFactoryInstance, - useRequestAnimationFrame: !intentPrint, - pdfBug: this._pdfBug, - pageColors: pageColors - }); - ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask); - var renderTask = internalRenderTask.task; - Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 2), - transparency = _ref7[0], - optionalContentConfig = _ref7[1]; - - if (_this5.pendingCleanup) { - complete(); - return; - } - - if (_this5._stats) { - _this5._stats.time("Rendering"); - } - - internalRenderTask.initializeGraphics({ - transparency: transparency, - optionalContentConfig: optionalContentConfig - }); - internalRenderTask.operatorListChanged(); - })["catch"](complete); - return renderTask; - } - }, { - key: "getOperatorList", - value: function getOperatorList() { - var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref8$intent = _ref8.intent, - intent = _ref8$intent === void 0 ? "display" : _ref8$intent, - _ref8$annotationMode = _ref8.annotationMode, - annotationMode = _ref8$annotationMode === void 0 ? _util.AnnotationMode.ENABLE : _ref8$annotationMode; - - function operatorListChanged() { - if (intentState.operatorList.lastChunk) { - intentState.opListReadCapability.resolve(intentState.operatorList); - intentState.renderTasks["delete"](opListTask); - } - } - - var intentArgs = this._transport.getRenderingIntent(intent, annotationMode, true); - - var intentState = this._intentStates.get(intentArgs.cacheKey); - - if (!intentState) { - intentState = Object.create(null); - - this._intentStates.set(intentArgs.cacheKey, intentState); - } - - var opListTask; - - if (!intentState.opListReadCapability) { - var _intentState2; - - opListTask = Object.create(null); - opListTask.operatorListChanged = operatorListChanged; - intentState.opListReadCapability = (0, _util.createPromiseCapability)(); - ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - if (this._stats) { - this._stats.time("Page Request"); - } - - this._pumpOperatorList(intentArgs); - } - - return intentState.opListReadCapability.promise; - } - }, { - key: "streamTextContent", - value: function streamTextContent() { - var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref9$disableCombineT = _ref9.disableCombineTextItems, - disableCombineTextItems = _ref9$disableCombineT === void 0 ? false : _ref9$disableCombineT, - _ref9$includeMarkedCo = _ref9.includeMarkedContent, - includeMarkedContent = _ref9$includeMarkedCo === void 0 ? false : _ref9$includeMarkedCo; - - var TEXT_CONTENT_CHUNK_SIZE = 100; - return this._transport.messageHandler.sendWithStream("GetTextContent", { - pageIndex: this._pageIndex, - combineTextItems: disableCombineTextItems !== true, - includeMarkedContent: includeMarkedContent === true - }, { - highWaterMark: TEXT_CONTENT_CHUNK_SIZE, - size: function size(textContent) { - return textContent.items.length; - } - }); - } - }, { - key: "getTextContent", - value: function getTextContent() { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - if (this._transport._htmlForXfa) { - return this.getXfa().then(function (xfa) { - return _xfa_text.XfaText.textContent(xfa); - }); - } - - var readableStream = this.streamTextContent(params); - return new Promise(function (resolve, reject) { - function pump() { - reader.read().then(function (_ref10) { - var _textContent$items; - - var value = _ref10.value, - done = _ref10.done; - - if (done) { - resolve(textContent); - return; - } - - Object.assign(textContent.styles, value.styles); - - (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); - - pump(); - }, reject); - } - - var reader = readableStream.getReader(); - var textContent = { - items: [], - styles: Object.create(null) - }; - pump(); - }); - } - }, { - key: "getStructTree", - value: function getStructTree() { - return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex)); - } - }, { - key: "_destroy", - value: function _destroy() { - this.destroyed = true; - var waitOn = []; - - var _iterator6 = _createForOfIteratorHelper(this._intentStates.values()), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var intentState = _step6.value; - - this._abortOperatorList({ - intentState: intentState, - reason: new Error("Page was destroyed."), - force: true - }); - - if (intentState.opListReadCapability) { - continue; - } - - var _iterator8 = _createForOfIteratorHelper(intentState.renderTasks), - _step8; - - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var internalRenderTask = _step8.value; - waitOn.push(internalRenderTask.completed); - internalRenderTask.cancel(); - } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); - } - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - - this.objs.clear(); - - var _iterator7 = _createForOfIteratorHelper(this._bitmaps), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var bitmap = _step7.value; - bitmap.close(); - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - - this._bitmaps.clear(); - - this._annotationPromises.clear(); - - this._jsActionsPromise = null; - this._structTreePromise = null; - this.pendingCleanup = false; - return Promise.all(waitOn); - } - }, { - key: "cleanup", - value: function cleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.pendingCleanup = true; - return this._tryCleanup(resetStats); - } - }, { - key: "_tryCleanup", - value: function _tryCleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this.pendingCleanup) { - return false; - } - - var _iterator9 = _createForOfIteratorHelper(this._intentStates.values()), - _step9; - - try { - for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { - var _step9$value = _step9.value, - renderTasks = _step9$value.renderTasks, - operatorList = _step9$value.operatorList; - - if (renderTasks.size > 0 || !operatorList.lastChunk) { - return false; - } - } - } catch (err) { - _iterator9.e(err); - } finally { - _iterator9.f(); - } - - this._intentStates.clear(); - - this.objs.clear(); - - this._annotationPromises.clear(); - - this._jsActionsPromise = null; - this._structTreePromise = null; - - if (resetStats && this._stats) { - this._stats = new _display_utils.StatTimer(); - } - - var _iterator10 = _createForOfIteratorHelper(this._bitmaps), - _step10; - - try { - for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) { - var bitmap = _step10.value; - bitmap.close(); - } - } catch (err) { - _iterator10.e(err); - } finally { - _iterator10.f(); - } - - this._bitmaps.clear(); - - this.pendingCleanup = false; - return true; - } - }, { - key: "_startRenderPage", - value: function _startRenderPage(transparency, cacheKey) { - var intentState = this._intentStates.get(cacheKey); - - if (!intentState) { - return; - } - - if (this._stats) { - this._stats.timeEnd("Page Request"); - } - - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.resolve(transparency); - } - } - }, { - key: "_renderPageChunk", - value: function _renderPageChunk(operatorListChunk, intentState) { - for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); - } - - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; - - var _iterator11 = _createForOfIteratorHelper(intentState.renderTasks), - _step11; - - try { - for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) { - var internalRenderTask = _step11.value; - internalRenderTask.operatorListChanged(); - } - } catch (err) { - _iterator11.e(err); - } finally { - _iterator11.f(); - } - - if (operatorListChunk.lastChunk) { - this._tryCleanup(); - } - } - }, { - key: "_pumpOperatorList", - value: function _pumpOperatorList(_ref11) { - var _this6 = this; - - var renderingIntent = _ref11.renderingIntent, - cacheKey = _ref11.cacheKey; - - var readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", { - pageIndex: this._pageIndex, - intent: renderingIntent, - cacheKey: cacheKey, - annotationStorage: renderingIntent & _util.RenderingIntentFlag.ANNOTATIONS_STORAGE ? this._transport.annotationStorage.serializable : null - }); - - var reader = readableStream.getReader(); - - var intentState = this._intentStates.get(cacheKey); - - intentState.streamReader = reader; - - var pump = function pump() { - reader.read().then(function (_ref12) { - var value = _ref12.value, - done = _ref12.done; - - if (done) { - intentState.streamReader = null; - return; - } - - if (_this6._transport.destroyed) { - return; - } - - _this6._renderPageChunk(value, intentState); - - pump(); - }, function (reason) { - intentState.streamReader = null; - - if (_this6._transport.destroyed) { - return; - } - - if (intentState.operatorList) { - intentState.operatorList.lastChunk = true; - - var _iterator12 = _createForOfIteratorHelper(intentState.renderTasks), - _step12; - - try { - for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) { - var internalRenderTask = _step12.value; - internalRenderTask.operatorListChanged(); - } - } catch (err) { - _iterator12.e(err); - } finally { - _iterator12.f(); - } - - _this6._tryCleanup(); - } - - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(reason); - } else if (intentState.opListReadCapability) { - intentState.opListReadCapability.reject(reason); - } else { - throw reason; - } - }); - }; - - pump(); - } - }, { - key: "_abortOperatorList", - value: function _abortOperatorList(_ref13) { - var _this7 = this; - - var intentState = _ref13.intentState, - reason = _ref13.reason, - _ref13$force = _ref13.force, - force = _ref13$force === void 0 ? false : _ref13$force; - - if (!intentState.streamReader) { - return; - } - - if (!force) { - if (intentState.renderTasks.size > 0) { - return; - } - - if (reason instanceof _display_utils.RenderingCancelledException) { - intentState.streamReaderCancelTimeout = setTimeout(function () { - _this7._abortOperatorList({ - intentState: intentState, - reason: reason, - force: true - }); - - intentState.streamReaderCancelTimeout = null; - }, RENDERING_CANCELLED_TIMEOUT); - return; - } - } - - intentState.streamReader.cancel(new _util.AbortException(reason.message))["catch"](function () {}); - intentState.streamReader = null; - - if (this._transport.destroyed) { - return; - } - - var _iterator13 = _createForOfIteratorHelper(this._intentStates), - _step13; - - try { - for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) { - var _step13$value = _slicedToArray(_step13.value, 2), - curCacheKey = _step13$value[0], - curIntentState = _step13$value[1]; - - if (curIntentState === intentState) { - this._intentStates["delete"](curCacheKey); - - break; - } - } - } catch (err) { - _iterator13.e(err); - } finally { - _iterator13.f(); - } - - this.cleanup(); - } - }, { - key: "stats", - get: function get() { - return this._stats; - } - }]); - - return PDFPageProxy; -}(); - -exports.PDFPageProxy = PDFPageProxy; - -var LoopbackPort = /*#__PURE__*/function () { - function LoopbackPort() { - _classCallCheck(this, LoopbackPort); - - this._listeners = []; - this._deferred = Promise.resolve(); - } - - _createClass(LoopbackPort, [{ - key: "postMessage", - value: function postMessage(obj, transfers) { - var _this8 = this; - - var event = { - data: structuredClone(obj, transfers) - }; - - this._deferred.then(function () { - var _iterator14 = _createForOfIteratorHelper(_this8._listeners), - _step14; - - try { - for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) { - var listener = _step14.value; - listener.call(_this8, event); - } - } catch (err) { - _iterator14.e(err); - } finally { - _iterator14.f(); - } - }); - } - }, { - key: "addEventListener", - value: function addEventListener(name, listener) { - this._listeners.push(listener); - } - }, { - key: "removeEventListener", - value: function removeEventListener(name, listener) { - var i = this._listeners.indexOf(listener); - - this._listeners.splice(i, 1); - } - }, { - key: "terminate", - value: function terminate() { - this._listeners.length = 0; - } - }]); - - return LoopbackPort; -}(); - -exports.LoopbackPort = LoopbackPort; -var PDFWorkerUtil = { - isWorkerDisabled: false, - fallbackWorkerSrc: null, - fakeWorkerId: 0 -}; -exports.PDFWorkerUtil = PDFWorkerUtil; -{ - if (_is_node.isNodeJS && typeof require === "function") { - PDFWorkerUtil.isWorkerDisabled = true; - PDFWorkerUtil.fallbackWorkerSrc = "./pdf.worker.js"; - } else if ((typeof document === "undefined" ? "undefined" : _typeof(document)) === "object") { - var _document, _document$currentScri; - - var pdfjsFilePath = (_document = document) === null || _document === void 0 ? void 0 : (_document$currentScri = _document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.src; - - if (pdfjsFilePath) { - PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); - } - } - - PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) { - var base; - - try { - base = new URL(baseUrl); - - if (!base.origin || base.origin === "null") { - return false; - } - } catch (e) { - return false; - } - - var other = new URL(otherUrl, base); - return base.origin === other.origin; - }; - - PDFWorkerUtil.createCDNWrapper = function (url) { - var wrapper = "importScripts(\"".concat(url, "\");"); - return URL.createObjectURL(new Blob([wrapper])); - }; -} - -var PDFWorker = /*#__PURE__*/function () { - function PDFWorker() { - var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref14$name = _ref14.name, - name = _ref14$name === void 0 ? null : _ref14$name, - _ref14$port = _ref14.port, - port = _ref14$port === void 0 ? null : _ref14$port, - _ref14$verbosity = _ref14.verbosity, - verbosity = _ref14$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref14$verbosity; - - _classCallCheck(this, PDFWorker); - - if (port && _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).has(port)) { - throw new Error("Cannot use more than one PDFWorker per port."); - } - - this.name = name; - this.destroyed = false; - this.verbosity = verbosity; - this._readyCapability = (0, _util.createPromiseCapability)(); - this._port = null; - this._webWorker = null; - this._messageHandler = null; - - if (port) { - _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).set(port, this); - - this._initializeFromPort(port); - - return; - } - - this._initialize(); - } - - _createClass(PDFWorker, [{ - key: "promise", - get: function get() { - return this._readyCapability.promise; - } - }, { - key: "port", - get: function get() { - return this._port; - } - }, { - key: "messageHandler", - get: function get() { - return this._messageHandler; - } - }, { - key: "_initializeFromPort", - value: function _initializeFromPort(port) { - this._port = port; - this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); - - this._messageHandler.on("ready", function () {}); - - this._readyCapability.resolve(); - } - }, { - key: "_initialize", - value: function _initialize() { - var _this9 = this; - - if (typeof Worker !== "undefined" && !PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) { - var workerSrc = PDFWorker.workerSrc; - - try { - if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) { - workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href); - } - - var worker = new Worker(workerSrc); - var messageHandler = new _message_handler.MessageHandler("main", "worker", worker); - - var terminateEarly = function terminateEarly() { - worker.removeEventListener("error", onWorkerError); - messageHandler.destroy(); - worker.terminate(); - - if (_this9.destroyed) { - _this9._readyCapability.reject(new Error("Worker was destroyed")); - } else { - _this9._setupFakeWorker(); - } - }; - - var onWorkerError = function onWorkerError() { - if (!_this9._webWorker) { - terminateEarly(); - } - }; - - worker.addEventListener("error", onWorkerError); - messageHandler.on("test", function (data) { - worker.removeEventListener("error", onWorkerError); - - if (_this9.destroyed) { - terminateEarly(); - return; - } - - if (data) { - _this9._messageHandler = messageHandler; - _this9._port = worker; - _this9._webWorker = worker; - - _this9._readyCapability.resolve(); - - messageHandler.send("configure", { - verbosity: _this9.verbosity - }); - } else { - _this9._setupFakeWorker(); - - messageHandler.destroy(); - worker.terminate(); - } - }); - messageHandler.on("ready", function (data) { - worker.removeEventListener("error", onWorkerError); - - if (_this9.destroyed) { - terminateEarly(); - return; - } - - try { - sendTest(); - } catch (e) { - _this9._setupFakeWorker(); - } - }); - - var sendTest = function sendTest() { - var testObj = new Uint8Array(); - messageHandler.send("test", testObj, [testObj.buffer]); - }; - - sendTest(); - return; - } catch (e) { - (0, _util.info)("The worker has been disabled."); - } - } - - this._setupFakeWorker(); - } - }, { - key: "_setupFakeWorker", - value: function _setupFakeWorker() { - var _this10 = this; - - if (!PDFWorkerUtil.isWorkerDisabled) { - (0, _util.warn)("Setting up fake worker."); - PDFWorkerUtil.isWorkerDisabled = true; - } - - PDFWorker._setupFakeWorkerGlobal.then(function (WorkerMessageHandler) { - if (_this10.destroyed) { - _this10._readyCapability.reject(new Error("Worker was destroyed")); - - return; - } - - var port = new LoopbackPort(); - _this10._port = port; - var id = "fake".concat(PDFWorkerUtil.fakeWorkerId++); - var workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); - WorkerMessageHandler.setup(workerHandler, port); - var messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); - _this10._messageHandler = messageHandler; - - _this10._readyCapability.resolve(); - - messageHandler.send("configure", { - verbosity: _this10.verbosity - }); - })["catch"](function (reason) { - _this10._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); - }); - } - }, { - key: "destroy", - value: function destroy() { - this.destroyed = true; - - if (this._webWorker) { - this._webWorker.terminate(); - - this._webWorker = null; - } - - _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts)["delete"](this._port); - - this._port = null; - - if (this._messageHandler) { - this._messageHandler.destroy(); - - this._messageHandler = null; - } - } - }], [{ - key: "fromPort", - value: function fromPort(params) { - if (!(params !== null && params !== void 0 && params.port)) { - throw new Error("PDFWorker.fromPort - invalid method signature."); - } - - if (_classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).has(params.port)) { - return _classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).get(params.port); - } - - return new PDFWorker(params); - } - }, { - key: "workerSrc", - get: function get() { - if (_worker_options.GlobalWorkerOptions.workerSrc) { - return _worker_options.GlobalWorkerOptions.workerSrc; - } - - if (PDFWorkerUtil.fallbackWorkerSrc !== null) { - if (!_is_node.isNodeJS) { - (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); - } - - return PDFWorkerUtil.fallbackWorkerSrc; - } - - throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); - } - }, { - key: "_mainThreadWorkerMessageHandler", - get: function get() { - try { - var _globalThis$pdfjsWork; - - return ((_globalThis$pdfjsWork = globalThis.pdfjsWorker) === null || _globalThis$pdfjsWork === void 0 ? void 0 : _globalThis$pdfjsWork.WorkerMessageHandler) || null; - } catch (ex) { - return null; - } - } - }, { - key: "_setupFakeWorkerGlobal", - get: function get() { - var _this11 = this; - - var loader = /*#__PURE__*/function () { - var _ref15 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { - var mainWorkerMessageHandler, worker; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - mainWorkerMessageHandler = _this11._mainThreadWorkerMessageHandler; - - if (!mainWorkerMessageHandler) { - _context4.next = 3; - break; - } - - return _context4.abrupt("return", mainWorkerMessageHandler); - - case 3: - if (!(_is_node.isNodeJS && typeof require === "function")) { - _context4.next = 6; - break; - } - - worker = eval("require")(_this11.workerSrc); - return _context4.abrupt("return", worker.WorkerMessageHandler); - - case 6: - _context4.next = 8; - return (0, _display_utils.loadScript)(_this11.workerSrc); - - case 8: - return _context4.abrupt("return", window.pdfjsWorker.WorkerMessageHandler); - - case 9: - case "end": - return _context4.stop(); - } - } - }, _callee4); - })); - - return function loader() { - return _ref15.apply(this, arguments); - }; - }(); - - return (0, _util.shadow)(this, "_setupFakeWorkerGlobal", loader()); - } - }]); - - return PDFWorker; -}(); - -exports.PDFWorker = PDFWorker; -var _workerPorts = { - writable: true, - value: new WeakMap() -}; -{ - PDFWorker.getWorkerSrc = function () { - (0, _display_utils.deprecated)("`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead."); - return this.workerSrc; - }; -} - -var _docStats = /*#__PURE__*/new WeakMap(); - -var _pageCache = /*#__PURE__*/new WeakMap(); - -var _pagePromises = /*#__PURE__*/new WeakMap(); - -var _metadataPromise = /*#__PURE__*/new WeakMap(); - -var WorkerTransport = /*#__PURE__*/function () { - function WorkerTransport(messageHandler, loadingTask, networkStream, params) { - _classCallCheck(this, WorkerTransport); - - _classPrivateFieldInitSpec(this, _docStats, { - writable: true, - value: null - }); - - _classPrivateFieldInitSpec(this, _pageCache, { - writable: true, - value: new Map() - }); - - _classPrivateFieldInitSpec(this, _pagePromises, { - writable: true, - value: new Map() - }); - - _classPrivateFieldInitSpec(this, _metadataPromise, { - writable: true, - value: null - }); - - this.messageHandler = messageHandler; - this.loadingTask = loadingTask; - this.commonObjs = new PDFObjects(); - this.fontLoader = new _font_loader.FontLoader({ - docId: loadingTask.docId, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this), - ownerDocument: params.ownerDocument, - styleElement: params.styleElement - }); - this._params = params; - - if (!params.useWorkerFetch) { - this.CMapReaderFactory = new params.CMapReaderFactory({ - baseUrl: params.cMapUrl, - isCompressed: params.cMapPacked - }); - this.StandardFontDataFactory = new params.StandardFontDataFactory({ - baseUrl: params.standardFontDataUrl - }); - } - - this.destroyed = false; - this.destroyCapability = null; - this._passwordCapability = null; - this._networkStream = networkStream; - this._fullReader = null; - this._lastProgress = null; - this.downloadInfoCapability = (0, _util.createPromiseCapability)(); - this.setupMessageHandler(); - } - - _createClass(WorkerTransport, [{ - key: "annotationStorage", - get: function get() { - return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); - } - }, { - key: "stats", - get: function get() { - return _classPrivateFieldGet(this, _docStats); - } - }, { - key: "getRenderingIntent", - value: function getRenderingIntent(intent) { - var annotationMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.AnnotationMode.ENABLE; - var isOpList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var renderingIntent = _util.RenderingIntentFlag.DISPLAY; - var annotationHash = ""; - - switch (intent) { - case "any": - renderingIntent = _util.RenderingIntentFlag.ANY; - break; - - case "display": - break; - - case "print": - renderingIntent = _util.RenderingIntentFlag.PRINT; - break; - - default: - (0, _util.warn)("getRenderingIntent - invalid intent: ".concat(intent)); - } - - switch (annotationMode) { - case _util.AnnotationMode.DISABLE: - renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE; - break; - - case _util.AnnotationMode.ENABLE: - break; - - case _util.AnnotationMode.ENABLE_FORMS: - renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS; - break; - - case _util.AnnotationMode.ENABLE_STORAGE: - renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE; - annotationHash = this.annotationStorage.hash; - break; - - default: - (0, _util.warn)("getRenderingIntent - invalid annotationMode: ".concat(annotationMode)); - } - - if (isOpList) { - renderingIntent += _util.RenderingIntentFlag.OPLIST; - } - - return { - renderingIntent: renderingIntent, - cacheKey: "".concat(renderingIntent, "_").concat(annotationHash) - }; - } - }, { - key: "destroy", - value: function destroy() { - var _this12 = this; - - if (this.destroyCapability) { - return this.destroyCapability.promise; - } - - this.destroyed = true; - this.destroyCapability = (0, _util.createPromiseCapability)(); - - if (this._passwordCapability) { - this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); - } - - var waitOn = []; - - var _iterator15 = _createForOfIteratorHelper(_classPrivateFieldGet(this, _pageCache).values()), - _step15; - - try { - for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) { - var page = _step15.value; - waitOn.push(page._destroy()); - } - } catch (err) { - _iterator15.e(err); - } finally { - _iterator15.f(); - } - - _classPrivateFieldGet(this, _pageCache).clear(); - - _classPrivateFieldGet(this, _pagePromises).clear(); - - if (this.hasOwnProperty("annotationStorage")) { - this.annotationStorage.resetModified(); - } - - var terminated = this.messageHandler.sendWithPromise("Terminate", null); - waitOn.push(terminated); - Promise.all(waitOn).then(function () { - _this12.commonObjs.clear(); - - _this12.fontLoader.clear(); - - _classPrivateFieldSet(_this12, _metadataPromise, null); - - _this12._getFieldObjectsPromise = null; - _this12._hasJSActionsPromise = null; - - if (_this12._networkStream) { - _this12._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); - } - - if (_this12.messageHandler) { - _this12.messageHandler.destroy(); - - _this12.messageHandler = null; - } - - _this12.destroyCapability.resolve(); - }, this.destroyCapability.reject); - return this.destroyCapability.promise; - } - }, { - key: "setupMessageHandler", - value: function setupMessageHandler() { - var _this13 = this; - - var messageHandler = this.messageHandler, - loadingTask = this.loadingTask; - messageHandler.on("GetReader", function (data, sink) { - (0, _util.assert)(_this13._networkStream, "GetReader - no `IPDFStream` instance available."); - _this13._fullReader = _this13._networkStream.getFullReader(); - - _this13._fullReader.onProgress = function (evt) { - _this13._lastProgress = { - loaded: evt.loaded, - total: evt.total - }; - }; - - sink.onPull = function () { - _this13._fullReader.read().then(function (_ref16) { - var value = _ref16.value, - done = _ref16.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer."); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - _this13._fullReader.cancel(reason); - - sink.ready["catch"](function (readyReason) { - if (_this13.destroyed) { - return; - } - - throw readyReason; - }); - }; - }); - messageHandler.on("ReaderHeadersReady", function (data) { - var headersCapability = (0, _util.createPromiseCapability)(); - var fullReader = _this13._fullReader; - fullReader.headersReady.then(function () { - if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { - if (_this13._lastProgress) { - var _loadingTask$onProgre; - - (_loadingTask$onProgre = loadingTask.onProgress) === null || _loadingTask$onProgre === void 0 ? void 0 : _loadingTask$onProgre.call(loadingTask, _this13._lastProgress); - } - - fullReader.onProgress = function (evt) { - var _loadingTask$onProgre2; - - (_loadingTask$onProgre2 = loadingTask.onProgress) === null || _loadingTask$onProgre2 === void 0 ? void 0 : _loadingTask$onProgre2.call(loadingTask, { - loaded: evt.loaded, - total: evt.total - }); - }; - } - - headersCapability.resolve({ - isStreamingSupported: fullReader.isStreamingSupported, - isRangeSupported: fullReader.isRangeSupported, - contentLength: fullReader.contentLength - }); - }, headersCapability.reject); - return headersCapability.promise; - }); - messageHandler.on("GetRangeReader", function (data, sink) { - (0, _util.assert)(_this13._networkStream, "GetRangeReader - no `IPDFStream` instance available."); - - var rangeReader = _this13._networkStream.getRangeReader(data.begin, data.end); - - if (!rangeReader) { - sink.close(); - return; - } - - sink.onPull = function () { - rangeReader.read().then(function (_ref17) { - var value = _ref17.value, - done = _ref17.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer."); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - rangeReader.cancel(reason); - sink.ready["catch"](function (readyReason) { - if (_this13.destroyed) { - return; - } - - throw readyReason; - }); - }; - }); - messageHandler.on("GetDoc", function (_ref18) { - var pdfInfo = _ref18.pdfInfo; - _this13._numPages = pdfInfo.numPages; - _this13._htmlForXfa = pdfInfo.htmlForXfa; - delete pdfInfo.htmlForXfa; - - loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this13)); - }); - messageHandler.on("DocException", function (ex) { - var reason; - - switch (ex.name) { - case "PasswordException": - reason = new _util.PasswordException(ex.message, ex.code); - break; - - case "InvalidPDFException": - reason = new _util.InvalidPDFException(ex.message); - break; - - case "MissingPDFException": - reason = new _util.MissingPDFException(ex.message); - break; - - case "UnexpectedResponseException": - reason = new _util.UnexpectedResponseException(ex.message, ex.status); - break; - - case "UnknownErrorException": - reason = new _util.UnknownErrorException(ex.message, ex.details); - break; - - default: - (0, _util.unreachable)("DocException - expected a valid Error."); - } - - loadingTask._capability.reject(reason); - }); - messageHandler.on("PasswordRequest", function (exception) { - _this13._passwordCapability = (0, _util.createPromiseCapability)(); - - if (loadingTask.onPassword) { - var updatePassword = function updatePassword(password) { - if (password instanceof Error) { - _this13._passwordCapability.reject(password); - } else { - _this13._passwordCapability.resolve({ - password: password - }); - } - }; - - try { - loadingTask.onPassword(updatePassword, exception.code); - } catch (ex) { - _this13._passwordCapability.reject(ex); - } - } else { - _this13._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); - } - - return _this13._passwordCapability.promise; - }); - messageHandler.on("DataLoaded", function (data) { - var _loadingTask$onProgre3; - - (_loadingTask$onProgre3 = loadingTask.onProgress) === null || _loadingTask$onProgre3 === void 0 ? void 0 : _loadingTask$onProgre3.call(loadingTask, { - loaded: data.length, - total: data.length - }); - - _this13.downloadInfoCapability.resolve(data); - }); - messageHandler.on("StartRenderPage", function (data) { - if (_this13.destroyed) { - return; - } - - var page = _classPrivateFieldGet(_this13, _pageCache).get(data.pageIndex); - - page._startRenderPage(data.transparency, data.cacheKey); - }); - messageHandler.on("commonobj", function (_ref19) { - var _globalThis$FontInspe; - - var _ref20 = _slicedToArray(_ref19, 3), - id = _ref20[0], - type = _ref20[1], - exportedData = _ref20[2]; - - if (_this13.destroyed) { - return; - } - - if (_this13.commonObjs.has(id)) { - return; - } - - switch (type) { - case "Font": - var params = _this13._params; - - if ("error" in exportedData) { - var exportedError = exportedData.error; - (0, _util.warn)("Error during font loading: ".concat(exportedError)); - - _this13.commonObjs.resolve(id, exportedError); - - break; - } - - var fontRegistry = null; - - if (params.pdfBug && (_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled) { - fontRegistry = { - registerFont: function registerFont(font, url) { - globalThis.FontInspector.fontAdded(font, url); - } - }; - } - - var font = new _font_loader.FontFaceObject(exportedData, { - isEvalSupported: params.isEvalSupported, - disableFontFace: params.disableFontFace, - ignoreErrors: params.ignoreErrors, - onUnsupportedFeature: _this13._onUnsupportedFeature.bind(_this13), - fontRegistry: fontRegistry - }); - - _this13.fontLoader.bind(font)["catch"](function (reason) { - return messageHandler.sendWithPromise("FontFallback", { - id: id - }); - })["finally"](function () { - if (!params.fontExtraProperties && font.data) { - font.data = null; - } - - _this13.commonObjs.resolve(id, font); - }); - - break; - - case "FontPath": - case "Image": - _this13.commonObjs.resolve(id, exportedData); - - break; - - default: - throw new Error("Got unknown common object type ".concat(type)); - } - }); - messageHandler.on("obj", function (_ref21) { - var _ref22 = _slicedToArray(_ref21, 4), - id = _ref22[0], - pageIndex = _ref22[1], - type = _ref22[2], - imageData = _ref22[3]; - - if (_this13.destroyed) { - return; - } - - var pageProxy = _classPrivateFieldGet(_this13, _pageCache).get(pageIndex); - - if (pageProxy.objs.has(id)) { - return; - } - - switch (type) { - case "Image": - pageProxy.objs.resolve(id, imageData); - var MAX_IMAGE_SIZE_TO_STORE = 8000000; - - if (imageData) { - var length; - - if (imageData.bitmap) { - var bitmap = imageData.bitmap, - width = imageData.width, - height = imageData.height; - length = width * height * 4; - - pageProxy._bitmaps.add(bitmap); - } else { - var _imageData$data; - - length = ((_imageData$data = imageData.data) === null || _imageData$data === void 0 ? void 0 : _imageData$data.length) || 0; - } - - if (length > MAX_IMAGE_SIZE_TO_STORE) { - pageProxy.cleanupAfterRender = true; - } - } - - break; - - case "Pattern": - pageProxy.objs.resolve(id, imageData); - break; - - default: - throw new Error("Got unknown object type ".concat(type)); - } - }); - messageHandler.on("DocProgress", function (data) { - var _loadingTask$onProgre4; - - if (_this13.destroyed) { - return; - } - - (_loadingTask$onProgre4 = loadingTask.onProgress) === null || _loadingTask$onProgre4 === void 0 ? void 0 : _loadingTask$onProgre4.call(loadingTask, { - loaded: data.loaded, - total: data.total - }); - }); - messageHandler.on("DocStats", function (data) { - if (_this13.destroyed) { - return; - } - - _classPrivateFieldSet(_this13, _docStats, Object.freeze({ - streamTypes: Object.freeze(data.streamTypes), - fontTypes: Object.freeze(data.fontTypes) - })); - }); - messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); - messageHandler.on("FetchBuiltInCMap", function (data) { - if (_this13.destroyed) { - return Promise.reject(new Error("Worker was destroyed.")); - } - - if (!_this13.CMapReaderFactory) { - return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")); - } - - return _this13.CMapReaderFactory.fetch(data); - }); - messageHandler.on("FetchStandardFontData", function (data) { - if (_this13.destroyed) { - return Promise.reject(new Error("Worker was destroyed.")); - } - - if (!_this13.StandardFontDataFactory) { - return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.")); - } - - return _this13.StandardFontDataFactory.fetch(data); - }); - } - }, { - key: "_onUnsupportedFeature", - value: function _onUnsupportedFeature(_ref23) { - var _this$loadingTask$onU, _this$loadingTask; - - var featureId = _ref23.featureId; - - if (this.destroyed) { - return; - } - - (_this$loadingTask$onU = (_this$loadingTask = this.loadingTask).onUnsupportedFeature) === null || _this$loadingTask$onU === void 0 ? void 0 : _this$loadingTask$onU.call(_this$loadingTask, featureId); - } - }, { - key: "getData", - value: function getData() { - return this.messageHandler.sendWithPromise("GetData", null); - } - }, { - key: "getPage", - value: function getPage(pageNumber) { - var _this14 = this; - - if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { - return Promise.reject(new Error("Invalid page request.")); - } - - var pageIndex = pageNumber - 1, - cachedPromise = _classPrivateFieldGet(this, _pagePromises).get(pageIndex); - - if (cachedPromise) { - return cachedPromise; - } - - var promise = this.messageHandler.sendWithPromise("GetPage", { - pageIndex: pageIndex - }).then(function (pageInfo) { - if (_this14.destroyed) { - throw new Error("Transport destroyed"); - } - - var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.ownerDocument, _this14._params.pdfBug); - - _classPrivateFieldGet(_this14, _pageCache).set(pageIndex, page); - - return page; - }); - - _classPrivateFieldGet(this, _pagePromises).set(pageIndex, promise); - - return promise; - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - if (_typeof(ref) !== "object" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) { - return Promise.reject(new Error("Invalid pageIndex request.")); +var structuredCloneInternal = function (value, map) { + if (isSymbol(value)) + throwUncloneable('Symbol'); + if (!isObject(value)) + return value; + if (map) { + if (mapHas(map, value)) + return mapGet(map, value); + } else + map = new Map(); + var type = classof(value); + var deep = false; + var C, name, cloned, dataTransfer, i, length, keys, key, source, target; + switch (type) { + case 'Array': + cloned = []; + deep = true; + break; + case 'Object': + cloned = {}; + deep = true; + break; + case 'Map': + cloned = new Map(); + deep = true; + break; + case 'Set': + cloned = new Set(); + deep = true; + break; + case 'RegExp': + cloned = new RegExp(value.source, getRegExpFlags(value)); + break; + case 'Error': + name = value.name; + switch (name) { + case 'AggregateError': + cloned = getBuiltin('AggregateError')([]); + break; + case 'EvalError': + cloned = EvalError(); + break; + case 'RangeError': + cloned = RangeError(); + break; + case 'ReferenceError': + cloned = ReferenceError(); + break; + case 'SyntaxError': + cloned = SyntaxError(); + break; + case 'TypeError': + cloned = TypeError(); + break; + case 'URIError': + cloned = URIError(); + break; + case 'CompileError': + cloned = CompileError(); + break; + case 'LinkError': + cloned = LinkError(); + break; + case 'RuntimeError': + cloned = RuntimeError(); + break; + default: + cloned = Error(); + } + deep = true; + break; + case 'DOMException': + cloned = new DOMException(value.message, value.name); + deep = true; + break; + case 'DataView': + case 'Int8Array': + case 'Uint8Array': + case 'Uint8ClampedArray': + case 'Int16Array': + case 'Uint16Array': + case 'Int32Array': + case 'Uint32Array': + case 'Float32Array': + case 'Float64Array': + case 'BigInt64Array': + case 'BigUint64Array': + C = global[type]; + if (!isObject(C)) + throwUnpolyfillable(type); + cloned = new C(structuredCloneInternal(value.buffer, map), value.byteOffset, type === 'DataView' ? value.byteLength : value.length); + break; + case 'DOMQuad': + try { + cloned = new DOMQuad(structuredCloneInternal(value.p1, map), structuredCloneInternal(value.p2, map), structuredCloneInternal(value.p3, map), structuredCloneInternal(value.p4, map)); + } catch (error) { + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + throwUnpolyfillable(type); + } + break; + case 'FileList': + dataTransfer = createDataTransfer(); + if (dataTransfer) { + for (i = 0, length = lengthOfArrayLike(value); i < length; i++) { + dataTransfer.items.add(structuredCloneInternal(value[i], map)); + } + cloned = dataTransfer.files; + } else if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + throwUnpolyfillable(type); + break; + case 'ImageData': + try { + cloned = new ImageData(structuredCloneInternal(value.data, map), value.width, value.height, { colorSpace: value.colorSpace }); + } catch (error) { + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + throwUnpolyfillable(type); + } + break; + default: + if (nativeRestrictedStructuredClone) { + cloned = nativeRestrictedStructuredClone(value); + } else + switch (type) { + case 'BigInt': + cloned = Object(value.valueOf()); + break; + case 'Boolean': + cloned = Object(thisBooleanValue(value)); + break; + case 'Number': + cloned = Object(thisNumberValue(value)); + break; + case 'String': + cloned = Object(thisStringValue(value)); + break; + case 'Date': + cloned = new Date(thisTimeValue(value)); + break; + case 'ArrayBuffer': + C = global.DataView; + if (!C && typeof value.slice != 'function') + throwUnpolyfillable(type); + try { + if (typeof value.slice == 'function') { + cloned = value.slice(0); + } else { + length = value.byteLength; + cloned = new ArrayBuffer(length); + source = new C(value); + target = new C(cloned); + for (i = 0; i < length; i++) { + target.setUint8(i, source.getUint8(i)); } - - return this.messageHandler.sendWithPromise("GetPageIndex", { - num: ref.num, - gen: ref.gen - }); - } - }, { - key: "getAnnotations", - value: function getAnnotations(pageIndex, intent) { - return this.messageHandler.sendWithPromise("GetAnnotations", { - pageIndex: pageIndex, - intent: intent - }); - } - }, { - key: "saveDocument", - value: function saveDocument() { - var _this$_fullReader$fil, - _this$_fullReader, - _this15 = this; - - return this.messageHandler.sendWithPromise("SaveDocument", { - isPureXfa: !!this._htmlForXfa, - numPages: this._numPages, - annotationStorage: this.annotationStorage.serializable, - filename: (_this$_fullReader$fil = (_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) !== null && _this$_fullReader$fil !== void 0 ? _this$_fullReader$fil : null - })["finally"](function () { - _this15.annotationStorage.resetModified(); - }); - } - }, { - key: "getFieldObjects", - value: function getFieldObjects() { - return this._getFieldObjectsPromise || (this._getFieldObjectsPromise = this.messageHandler.sendWithPromise("GetFieldObjects", null)); - } - }, { - key: "hasJSActions", - value: function hasJSActions() { - return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise("HasJSActions", null)); - } - }, { - key: "getCalculationOrderIds", - value: function getCalculationOrderIds() { - return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this.messageHandler.sendWithPromise("GetDestinations", null); + } + } catch (error) { + throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR); } - }, { - key: "getDestination", - value: function getDestination(id) { - if (typeof id !== "string") { - return Promise.reject(new Error("Invalid destination request.")); - } - - return this.messageHandler.sendWithPromise("GetDestination", { - id: id - }); + break; + case 'SharedArrayBuffer': + cloned = value; + break; + case 'Blob': + try { + cloned = value.slice(0, value.size, value.type); + } catch (error) { + throwUnpolyfillable(type); } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this.messageHandler.sendWithPromise("GetPageLabels", null); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this.messageHandler.sendWithPromise("GetPageLayout", null); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this.messageHandler.sendWithPromise("GetPageMode", null); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this.messageHandler.sendWithPromise("GetViewerPreferences", null); - } - }, { - key: "getOpenAction", - value: function getOpenAction() { - return this.messageHandler.sendWithPromise("GetOpenAction", null); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this.messageHandler.sendWithPromise("GetAttachments", null); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this.messageHandler.sendWithPromise("GetJavaScript", null); - } - }, { - key: "getDocJSActions", - value: function getDocJSActions() { - return this.messageHandler.sendWithPromise("GetDocJSActions", null); - } - }, { - key: "getPageJSActions", - value: function getPageJSActions(pageIndex) { - return this.messageHandler.sendWithPromise("GetPageJSActions", { - pageIndex: pageIndex - }); + break; + case 'DOMPoint': + case 'DOMPointReadOnly': + C = global[type]; + try { + cloned = C.fromPoint ? C.fromPoint(value) : new C(value.x, value.y, value.z, value.w); + } catch (error) { + throwUnpolyfillable(type); } - }, { - key: "getStructTree", - value: function getStructTree(pageIndex) { - return this.messageHandler.sendWithPromise("GetStructTree", { - pageIndex: pageIndex - }); + break; + case 'DOMRect': + case 'DOMRectReadOnly': + C = global[type]; + try { + cloned = C.fromRect ? C.fromRect(value) : new C(value.x, value.y, value.width, value.height); + } catch (error) { + throwUnpolyfillable(type); } - }, { - key: "getOutline", - value: function getOutline() { - return this.messageHandler.sendWithPromise("GetOutline", null); + break; + case 'DOMMatrix': + case 'DOMMatrixReadOnly': + C = global[type]; + try { + cloned = C.fromMatrix ? C.fromMatrix(value) : new C(value); + } catch (error) { + throwUnpolyfillable(type); } - }, { - key: "getOptionalContentConfig", - value: function getOptionalContentConfig() { - return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(function (results) { - return new _optional_content_config.OptionalContentConfig(results); - }); + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone)) + throwUnpolyfillable(type); + try { + cloned = value.clone(); + } catch (error) { + throwUncloneable(type); } - }, { - key: "getPermissions", - value: function getPermissions() { - return this.messageHandler.sendWithPromise("GetPermissions", null); + break; + case 'File': + try { + cloned = new File([value], value.name, value); + } catch (error) { + throwUnpolyfillable(type); } - }, { - key: "getMetadata", - value: function getMetadata() { - var _this16 = this; - - return _classPrivateFieldGet(this, _metadataPromise) || _classPrivateFieldSet(this, _metadataPromise, this.messageHandler.sendWithPromise("GetMetadata", null).then(function (results) { - var _this16$_fullReader$f, _this16$_fullReader, _this16$_fullReader$c, _this16$_fullReader2; - - return { - info: results[0], - metadata: results[1] ? new _metadata.Metadata(results[1]) : null, - contentDispositionFilename: (_this16$_fullReader$f = (_this16$_fullReader = _this16._fullReader) === null || _this16$_fullReader === void 0 ? void 0 : _this16$_fullReader.filename) !== null && _this16$_fullReader$f !== void 0 ? _this16$_fullReader$f : null, - contentLength: (_this16$_fullReader$c = (_this16$_fullReader2 = _this16._fullReader) === null || _this16$_fullReader2 === void 0 ? void 0 : _this16$_fullReader2.contentLength) !== null && _this16$_fullReader$c !== void 0 ? _this16$_fullReader$c : null - }; - })); + break; + case 'CropTarget': + case 'CryptoKey': + case 'FileSystemDirectoryHandle': + case 'FileSystemFileHandle': + case 'FileSystemHandle': + case 'GPUCompilationInfo': + case 'GPUCompilationMessage': + case 'ImageBitmap': + case 'RTCCertificate': + case 'WebAssembly.Module': + throwUnpolyfillable(type); + default: + throwUncloneable(type); + } + } + mapSet(map, value, cloned); + if (deep) + switch (type) { + case 'Array': + case 'Object': + keys = objectKeys(value); + for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) { + key = keys[i]; + createProperty(cloned, key, structuredCloneInternal(value[key], map)); + } + break; + case 'Map': + value.forEach(function (v, k) { + mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map)); + }); + break; + case 'Set': + value.forEach(function (v) { + setAdd(cloned, structuredCloneInternal(v, map)); + }); + break; + case 'Error': + createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map)); + if (hasOwn(value, 'cause')) { + createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map)); + } + if (name == 'AggregateError') { + cloned.errors = structuredCloneInternal(value.errors, map); + } + case 'DOMException': + if (ERROR_STACK_INSTALLABLE) { + createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map)); + } + } + return cloned; +}; +var PROPER_TRANSFER = nativeStructuredClone && !fails(function () { + if (IS_DENO && V8 > 92 || IS_NODE && V8 > 94 || IS_BROWSER && V8 > 97) + return false; + var buffer = new ArrayBuffer(8); + var clone = nativeStructuredClone(buffer, { transfer: [buffer] }); + return buffer.byteLength != 0 || clone.byteLength != 8; +}); +var tryToTransfer = function (rawTransfer, map) { + if (!isObject(rawTransfer)) + throw TypeError('Transfer option cannot be converted to a sequence'); + var transfer = []; + iterate(rawTransfer, function (value) { + push(transfer, anObject(value)); + }); + var i = 0; + var length = lengthOfArrayLike(transfer); + var value, type, C, transferredArray, transferred, canvas, context; + if (PROPER_TRANSFER) { + transferredArray = nativeStructuredClone(transfer, { transfer: transfer }); + while (i < length) + mapSet(map, transfer[i], transferredArray[i++]); + } else + while (i < length) { + value = transfer[i++]; + if (mapHas(map, value)) + throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR); + type = classof(value); + switch (type) { + case 'ImageBitmap': + C = global.OffscreenCanvas; + if (!isConstructor(C)) + throwUnpolyfillable(type, TRANSFERRING); + try { + canvas = new C(value.width, value.height); + context = canvas.getContext('bitmaprenderer'); + context.transferFromImageBitmap(value); + transferred = canvas.transferToImageBitmap(); + } catch (error) { } - }, { - key: "getMarkInfo", - value: function getMarkInfo() { - return this.messageHandler.sendWithPromise("GetMarkInfo", null); - } - }, { - key: "startCleanup", - value: function () { - var _startCleanup = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { - var keepLoadedFonts, - _iterator16, - _step16, - page, - cleanupSuccessful, - _args5 = arguments; - - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - keepLoadedFonts = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : false; - _context5.next = 3; - return this.messageHandler.sendWithPromise("Cleanup", null); - - case 3: - if (!this.destroyed) { - _context5.next = 5; - break; - } - - return _context5.abrupt("return"); - - case 5: - _iterator16 = _createForOfIteratorHelper(_classPrivateFieldGet(this, _pageCache).values()); - _context5.prev = 6; - - _iterator16.s(); - - case 8: - if ((_step16 = _iterator16.n()).done) { - _context5.next = 15; - break; - } - - page = _step16.value; - cleanupSuccessful = page.cleanup(); - - if (cleanupSuccessful) { - _context5.next = 13; - break; - } - - throw new Error("startCleanup: Page ".concat(page.pageNumber, " is currently rendering.")); - - case 13: - _context5.next = 8; - break; - - case 15: - _context5.next = 20; - break; - - case 17: - _context5.prev = 17; - _context5.t0 = _context5["catch"](6); - - _iterator16.e(_context5.t0); - - case 20: - _context5.prev = 20; - - _iterator16.f(); - - return _context5.finish(20); - - case 23: - this.commonObjs.clear(); - - if (!keepLoadedFonts) { - this.fontLoader.clear(); - } - - _classPrivateFieldSet(this, _metadataPromise, null); - - this._getFieldObjectsPromise = null; - this._hasJSActionsPromise = null; - - case 28: - case "end": - return _context5.stop(); - } - } - }, _callee5, this, [[6, 17, 20, 23]]); - })); - - function startCleanup() { - return _startCleanup.apply(this, arguments); - } - - return startCleanup; - }() - }, { - key: "loadingParams", - get: function get() { - var params = this._params; - return (0, _util.shadow)(this, "loadingParams", { - disableAutoFetch: params.disableAutoFetch, - enableXfa: params.enableXfa - }); + break; + case 'AudioData': + case 'VideoFrame': + if (!isCallable(value.clone) || !isCallable(value.close)) + throwUnpolyfillable(type, TRANSFERRING); + try { + transferred = value.clone(); + value.close(); + } catch (error) { } - }]); - - return WorkerTransport; -}(); - -var _objs = /*#__PURE__*/new WeakMap(); - -var _ensureObj = /*#__PURE__*/new WeakSet(); - -var PDFObjects = /*#__PURE__*/function () { - function PDFObjects() { - _classCallCheck(this, PDFObjects); - - _classPrivateMethodInitSpec(this, _ensureObj); - - _classPrivateFieldInitSpec(this, _objs, { - writable: true, - value: Object.create(null) - }); + break; + case 'ArrayBuffer': + case 'MediaSourceHandle': + case 'MessagePort': + case 'OffscreenCanvas': + case 'ReadableStream': + case 'TransformStream': + case 'WritableStream': + throwUnpolyfillable(type, TRANSFERRING); + } + if (transferred === undefined) + throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR); + mapSet(map, value, transferred); + } +}; +$({ + global: true, + enumerable: true, + sham: !PROPER_TRANSFER, + forced: FORCED_REPLACEMENT +}, { + structuredClone: function structuredClone(value) { + var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined; + var transfer = options ? options.transfer : undefined; + var map; + if (transfer !== undefined) { + map = new Map(); + tryToTransfer(transfer, map); } + return structuredCloneInternal(value, map); + } +}); + +/***/ }), +/* 124 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - _createClass(PDFObjects, [{ - key: "get", - value: function get(objId) { - var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; +var uncurryThis = __w_pdfjs_require__(17); +var fails = __w_pdfjs_require__(10); +var isCallable = __w_pdfjs_require__(25); +var classof = __w_pdfjs_require__(83); +var getBuiltIn = __w_pdfjs_require__(28); +var inspectSource = __w_pdfjs_require__(55); +var noop = function () { +}; +var empty = []; +var construct = getBuiltIn('Reflect', 'construct'); +var constructorRegExp = /^\s*(?:class|function)\b/; +var exec = uncurryThis(constructorRegExp.exec); +var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); +var isConstructorModern = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + try { + construct(noop, empty, argument); + return true; + } catch (error) { + return false; + } +}; +var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable(argument)) + return false; + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': + return false; + } + try { + return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); + } catch (error) { + return true; + } +}; +isConstructorLegacy.sham = true; +module.exports = !construct || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () { + called = true; + }) || called; +}) ? isConstructorLegacy : isConstructorModern; - if (callback) { - var _obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId); +/***/ }), +/* 125 */ +/***/ ((module) => { - _obj.capability.promise.then(function () { - return callback(_obj.data); - }); +var $TypeError = TypeError; +module.exports = function (passed, required) { + if (passed < required) + throw $TypeError('Not enough arguments'); + return passed; +}; - return null; - } +/***/ }), +/* 126 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - var obj = _classPrivateFieldGet(this, _objs)[objId]; +var call = __w_pdfjs_require__(11); +var hasOwn = __w_pdfjs_require__(43); +var isPrototypeOf = __w_pdfjs_require__(29); +var regExpFlags = __w_pdfjs_require__(127); +var RegExpPrototype = RegExp.prototype; +module.exports = function (R) { + var flags = R.flags; + return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R) ? call(regExpFlags, R) : flags; +}; - if (!(obj !== null && obj !== void 0 && obj.capability.settled)) { - throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); - } +/***/ }), +/* 127 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - return obj.data; - } - }, { - key: "has", - value: function has(objId) { - var obj = _classPrivateFieldGet(this, _objs)[objId]; +"use strict"; - return (obj === null || obj === void 0 ? void 0 : obj.capability.settled) || false; - } - }, { - key: "resolve", - value: function resolve(objId) { - var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; +var anObject = __w_pdfjs_require__(51); +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) + result += 'd'; + if (that.global) + result += 'g'; + if (that.ignoreCase) + result += 'i'; + if (that.multiline) + result += 'm'; + if (that.dotAll) + result += 's'; + if (that.unicode) + result += 'u'; + if (that.unicodeSets) + result += 'v'; + if (that.sticky) + result += 'y'; + return result; +}; - var obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId); +/***/ }), +/* 128 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - obj.data = data; - obj.capability.resolve(); - } - }, { - key: "clear", - value: function clear() { - _classPrivateFieldSet(this, _objs, Object.create(null)); - } - }]); +var fails = __w_pdfjs_require__(10); +var createPropertyDescriptor = __w_pdfjs_require__(14); +module.exports = !fails(function () { + var error = Error('a'); + if (!('stack' in error)) + return true; + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; +}); - return PDFObjects; -}(); +/***/ }), +/* 129 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { -function _ensureObj2(objId) { - var obj = _classPrivateFieldGet(this, _objs)[objId]; +var IS_DENO = __w_pdfjs_require__(130); +var IS_NODE = __w_pdfjs_require__(131); +module.exports = !IS_DENO && !IS_NODE && typeof window == 'object' && typeof document == 'object'; - if (obj) { - return obj; - } +/***/ }), +/* 130 */ +/***/ ((module) => { - return _classPrivateFieldGet(this, _objs)[objId] = { - capability: (0, _util.createPromiseCapability)(), - data: null - }; -} +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; -var RenderTask = /*#__PURE__*/function () { - function RenderTask(internalRenderTask) { - _classCallCheck(this, RenderTask); +/***/ }), +/* 131 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - this._internalRenderTask = internalRenderTask; - this.onContinue = null; - } +var classof = __w_pdfjs_require__(18); +var global = __w_pdfjs_require__(7); +module.exports = classof(global.process) == 'process'; - _createClass(RenderTask, [{ - key: "promise", - get: function get() { - return this._internalRenderTask.capability.promise; - } - }, { - key: "cancel", - value: function cancel() { - this._internalRenderTask.cancel(); - } - }]); +/***/ }), +/* 132 */ +/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - return RenderTask; -}(); +var global = __w_pdfjs_require__(7); +module.exports = global; -exports.RenderTask = RenderTask; +/***/ }), +/* 133 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var InternalRenderTask = /*#__PURE__*/function () { - function InternalRenderTask(_ref24) { - var callback = _ref24.callback, - params = _ref24.params, - objs = _ref24.objs, - commonObjs = _ref24.commonObjs, - annotationCanvasMap = _ref24.annotationCanvasMap, - operatorList = _ref24.operatorList, - pageIndex = _ref24.pageIndex, - canvasFactory = _ref24.canvasFactory, - _ref24$useRequestAnim = _ref24.useRequestAnimationFrame, - useRequestAnimationFrame = _ref24$useRequestAnim === void 0 ? false : _ref24$useRequestAnim, - _ref24$pdfBug = _ref24.pdfBug, - pdfBug = _ref24$pdfBug === void 0 ? false : _ref24$pdfBug, - _ref24$pageColors = _ref24.pageColors, - pageColors = _ref24$pageColors === void 0 ? null : _ref24$pageColors; - - _classCallCheck(this, InternalRenderTask); +"use strict"; - this.callback = callback; - this.params = params; - this.objs = objs; - this.commonObjs = commonObjs; - this.annotationCanvasMap = annotationCanvasMap; - this.operatorListIdx = null; - this.operatorList = operatorList; - this._pageIndex = pageIndex; - this.canvasFactory = canvasFactory; - this._pdfBug = pdfBug; - this.pageColors = pageColors; - this.running = false; - this.graphicsReadyCallback = null; - this.graphicsReady = false; - this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; - this.cancelled = false; - this.capability = (0, _util.createPromiseCapability)(); - this.task = new RenderTask(this); - this._cancelBound = this.cancel.bind(this); - this._continueBound = this._continue.bind(this); - this._scheduleNextBound = this._scheduleNext.bind(this); - this._nextBound = this._next.bind(this); - this._canvas = params.canvasContext.canvas; - } - _createClass(InternalRenderTask, [{ - key: "completed", - get: function get() { - return this.capability.promise["catch"](function () {}); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0; +exports.getDocument = getDocument; +exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; +exports.version = void 0; +var _util = __w_pdfjs_require__(1); +var _annotation_storage = __w_pdfjs_require__(134); +var _display_utils = __w_pdfjs_require__(137); +var _font_loader = __w_pdfjs_require__(140); +var _canvas = __w_pdfjs_require__(141); +var _worker_options = __w_pdfjs_require__(144); +var _is_node = __w_pdfjs_require__(3); +var _message_handler = __w_pdfjs_require__(145); +var _metadata = __w_pdfjs_require__(146); +var _optional_content_config = __w_pdfjs_require__(147); +var _transport_stream = __w_pdfjs_require__(148); +var _xfa_text = __w_pdfjs_require__(149); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { if (descriptor === undefined) { throw new TypeError("attempted to " + action + " private static field before its declaration"); } } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +const DEFAULT_RANGE_CHUNK_SIZE = 65536; +const RENDERING_CANCELLED_TIMEOUT = 100; +let DefaultCanvasFactory = _display_utils.DOMCanvasFactory; +exports.DefaultCanvasFactory = DefaultCanvasFactory; +let DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory; +exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory; +let DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory; +exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory; +if (_is_node.isNodeJS) { + const { + NodeCanvasFactory, + NodeCMapReaderFactory, + NodeStandardFontDataFactory + } = __w_pdfjs_require__(150); + exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory; + exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory; + exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory; +} +let createPDFNetworkStream; +function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { + createPDFNetworkStream = pdfNetworkStreamFactory; +} +function getDocument(src) { + const task = new PDFDocumentLoadingTask(); + let source; + if (typeof src === "string" || src instanceof URL) { + source = { + url: src + }; + } else if ((0, _util.isArrayBuffer)(src)) { + source = { + data: src + }; + } else if (src instanceof PDFDataRangeTransport) { + source = { + range: src + }; + } else { + if (typeof src !== "object") { + throw new Error("Invalid parameter in getDocument, " + "need either string, URL, TypedArray, or parameter object."); } - }, { - key: "initializeGraphics", - value: function initializeGraphics(_ref25) { - var _globalThis$StepperMa; - - var _ref25$transparency = _ref25.transparency, - transparency = _ref25$transparency === void 0 ? false : _ref25$transparency, - optionalContentConfig = _ref25.optionalContentConfig; - - if (this.cancelled) { - return; - } - - if (this._canvas) { - if (_classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).has(this._canvas)) { - throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); + if (!src.url && !src.data && !src.range) { + throw new Error("Invalid parameter object: need either .data, .range or .url"); + } + source = src; + } + const params = Object.create(null); + let rangeTransport = null, + worker = null; + for (const key in source) { + const value = source[key]; + switch (key) { + case "url": + if (typeof window !== "undefined") { + try { + params[key] = new URL(value, window.location).href; + continue; + } catch (ex) { + (0, _util.warn)(`Cannot create valid URL: "${ex}".`); + } + } else if (typeof value === "string" || value instanceof URL) { + params[key] = value.toString(); + continue; } - - _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).add(this._canvas); - } - - if (this._pdfBug && (_globalThis$StepperMa = globalThis.StepperManager) !== null && _globalThis$StepperMa !== void 0 && _globalThis$StepperMa.enabled) { - this.stepper = globalThis.StepperManager.create(this._pageIndex); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } - - var _this$params = this.params, - canvasContext = _this$params.canvasContext, - viewport = _this$params.viewport, - transform = _this$params.transform, - imageLayer = _this$params.imageLayer, - background = _this$params.background; - this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig, this.annotationCanvasMap, this.pageColors); - this.gfx.beginDrawing({ - transform: transform, - viewport: viewport, - transparency: transparency, - background: background - }); - this.operatorListIdx = 0; - this.graphicsReady = true; - - if (this.graphicsReadyCallback) { - this.graphicsReadyCallback(); - } + throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); + case "range": + rangeTransport = value; + continue; + case "worker": + worker = value; + continue; + case "data": + if (_is_node.isNodeJS && typeof Buffer !== "undefined" && value instanceof Buffer) { + params[key] = new Uint8Array(value); + } else if (value instanceof Uint8Array) { + break; + } else if (typeof value === "string") { + params[key] = (0, _util.stringToBytes)(value); + } else if (typeof value === "object" && value !== null && !isNaN(value.length)) { + params[key] = new Uint8Array(value); + } else if ((0, _util.isArrayBuffer)(value)) { + params[key] = new Uint8Array(value); + } else { + throw new Error("Invalid PDF binary data: either TypedArray, " + "string, or array-like object is expected in the data property."); + } + continue; } - }, { - key: "cancel", - value: function cancel() { - var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - this.running = false; - this.cancelled = true; - - if (this.gfx) { - this.gfx.endDrawing(); - } - - if (this._canvas) { - _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse)["delete"](this._canvas); - } - - this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this._pageIndex + 1), "canvas")); + params[key] = value; + } + params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory; + params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory; + params.ignoreErrors = params.stopAtErrors !== true; + params.fontExtraProperties = params.fontExtraProperties === true; + params.pdfBug = params.pdfBug === true; + params.enableXfa = params.enableXfa === true; + if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) { + params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE; + } + if (typeof params.docBaseUrl !== "string" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) { + params.docBaseUrl = null; + } + if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) { + params.maxImageSize = -1; + } + if (typeof params.cMapUrl !== "string") { + params.cMapUrl = null; + } + if (typeof params.standardFontDataUrl !== "string") { + params.standardFontDataUrl = null; + } + if (typeof params.useWorkerFetch !== "boolean") { + params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory; + } + if (typeof params.isEvalSupported !== "boolean") { + params.isEvalSupported = true; + } + if (typeof params.isOffscreenCanvasSupported !== "boolean") { + params.isOffscreenCanvasSupported = !_is_node.isNodeJS; + } + if (typeof params.disableFontFace !== "boolean") { + params.disableFontFace = _is_node.isNodeJS; + } + if (typeof params.useSystemFonts !== "boolean") { + params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace; + } + if (typeof params.ownerDocument !== "object" || params.ownerDocument === null) { + params.ownerDocument = globalThis.document; + } + if (typeof params.disableRange !== "boolean") { + params.disableRange = false; + } + if (typeof params.disableStream !== "boolean") { + params.disableStream = false; + } + if (typeof params.disableAutoFetch !== "boolean") { + params.disableAutoFetch = false; + } + (0, _util.setVerbosityLevel)(params.verbosity); + if (!worker) { + const workerParams = { + verbosity: params.verbosity, + port: _worker_options.GlobalWorkerOptions.workerPort + }; + worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); + task._worker = worker; + } + const docId = task.docId; + worker.promise.then(function () { + if (task.destroyed) { + throw new Error("Loading aborted"); } - }, { - key: "operatorListChanged", - value: function operatorListChanged() { - if (!this.graphicsReady) { - if (!this.graphicsReadyCallback) { - this.graphicsReadyCallback = this._continueBound; - } - - return; - } - - if (this.stepper) { - this.stepper.updateOperatorList(this.operatorList); + const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId); + const networkStreamPromise = new Promise(function (resolve) { + let networkStream; + if (rangeTransport) { + networkStream = new _transport_stream.PDFDataTransportStream({ + length: params.length, + initialData: params.initialData, + progressiveDone: params.progressiveDone, + contentDispositionFilename: params.contentDispositionFilename, + disableRange: params.disableRange, + disableStream: params.disableStream + }, rangeTransport); + } else if (!params.data) { + networkStream = createPDFNetworkStream({ + url: params.url, + length: params.length, + httpHeaders: params.httpHeaders, + withCredentials: params.withCredentials, + rangeChunkSize: params.rangeChunkSize, + disableRange: params.disableRange, + disableStream: params.disableStream + }); } - - if (this.running) { - return; + resolve(networkStream); + }); + return Promise.all([workerIdPromise, networkStreamPromise]).then(function (_ref) { + let [workerId, networkStream] = _ref; + if (task.destroyed) { + throw new Error("Loading aborted"); } - - this._continue(); + const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); + const transport = new WorkerTransport(messageHandler, task, networkStream, params); + task._transport = transport; + messageHandler.send("Ready", null); + }); + }).catch(task._capability.reject); + return task; +} +async function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { + if (worker.destroyed) { + throw new Error("Worker was destroyed"); + } + if (pdfDataRangeTransport) { + source.length = pdfDataRangeTransport.length; + source.initialData = pdfDataRangeTransport.initialData; + source.progressiveDone = pdfDataRangeTransport.progressiveDone; + source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename; + } + const workerId = await worker.messageHandler.sendWithPromise("GetDocRequest", { + docId, + apiVersion: '3.0.279', + data: source.data, + password: source.password, + disableAutoFetch: source.disableAutoFetch, + rangeChunkSize: source.rangeChunkSize, + length: source.length, + docBaseUrl: source.docBaseUrl, + enableXfa: source.enableXfa, + evaluatorOptions: { + maxImageSize: source.maxImageSize, + disableFontFace: source.disableFontFace, + ignoreErrors: source.ignoreErrors, + isEvalSupported: source.isEvalSupported, + isOffscreenCanvasSupported: source.isOffscreenCanvasSupported, + fontExtraProperties: source.fontExtraProperties, + useSystemFonts: source.useSystemFonts, + cMapUrl: source.useWorkerFetch ? source.cMapUrl : null, + standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null } - }, { - key: "_continue", - value: function _continue() { - this.running = true; - - if (this.cancelled) { - return; - } - - if (this.task.onContinue) { - this.task.onContinue(this._scheduleNextBound); - } else { - this._scheduleNext(); - } + }); + if (source.data) { + source.data = null; + } + if (worker.destroyed) { + throw new Error("Worker was destroyed"); + } + return workerId; +} +class PDFDocumentLoadingTask { + constructor() { + var _PDFDocumentLoadingTa, _PDFDocumentLoadingTa2; + this._capability = (0, _util.createPromiseCapability)(); + this._transport = null; + this._worker = null; + this.docId = `d${(_classStaticPrivateFieldSpecSet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId, (_PDFDocumentLoadingTa = _classStaticPrivateFieldSpecGet(PDFDocumentLoadingTask, PDFDocumentLoadingTask, _docId), _PDFDocumentLoadingTa2 = _PDFDocumentLoadingTa++, _PDFDocumentLoadingTa)), _PDFDocumentLoadingTa2)}`; + this.destroyed = false; + this.onPassword = null; + this.onProgress = null; + this.onUnsupportedFeature = null; + } + get promise() { + return this._capability.promise; + } + async destroy() { + var _this$_transport; + this.destroyed = true; + await ((_this$_transport = this._transport) === null || _this$_transport === void 0 ? void 0 : _this$_transport.destroy()); + this._transport = null; + if (this._worker) { + this._worker.destroy(); + this._worker = null; } - }, { - key: "_scheduleNext", - value: function _scheduleNext() { - var _this17 = this; - - if (this._useRequestAnimationFrame) { - window.requestAnimationFrame(function () { - _this17._nextBound()["catch"](_this17._cancelBound); - }); - } else { - Promise.resolve().then(this._nextBound)["catch"](this._cancelBound); - } - } - }, { - key: "_next", - value: function () { - var _next2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - if (!this.cancelled) { - _context6.next = 2; - break; - } - - return _context6.abrupt("return"); - - case 2: - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); - - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = false; - - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - - if (this._canvas) { - _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse)["delete"](this._canvas); - } - - this.callback(); - } - } - - case 4: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function _next() { - return _next2.apply(this, arguments); - } - - return _next; - }() - }]); - - return InternalRenderTask; -}(); - -var _canvasInUse = { + } +} +exports.PDFDocumentLoadingTask = PDFDocumentLoadingTask; +var _docId = { writable: true, - value: new WeakSet() + value: 0 }; -var version = '2.14.305'; -exports.version = version; -var build = 'eaaa8b4ad'; -exports.build = build; - -/***/ }), -/* 156 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; - - -module.exports = __w_pdfjs_require__(157); - -/***/ }), -/* 157 */ -/***/ ((module, __unused_webpack_exports, __w_pdfjs_require__) => { - -"use strict"; -/* module decorator */ module = __w_pdfjs_require__.nmd(module); - - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function define(obj, key, value) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - return obj[key]; - } - - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; +class PDFDataRangeTransport { + constructor(length, initialData) { + let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + this.length = length; + this.initialData = initialData; + this.progressiveDone = progressiveDone; + this.contentDispositionFilename = contentDispositionFilename; + this._rangeListeners = []; + this._progressListeners = []; + this._progressiveReadListeners = []; + this._progressiveDoneListeners = []; + this._readyCapability = (0, _util.createPromiseCapability)(); } - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; + addRangeListener(listener) { + this._rangeListeners.push(listener); } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } + addProgressListener(listener) { + this._progressListeners.push(listener); } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; + addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = GeneratorFunctionPrototype; - define(Gp, "constructor", GeneratorFunctionPrototype); - define(GeneratorFunctionPrototype, "constructor", GeneratorFunction); - GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); + addProgressiveDoneListener(listener) { + this._progressiveDoneListeners.push(listener); } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - define(genFun, toStringTagSymbol, "GeneratorFunction"); - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + onDataRange(begin, chunk) { + for (const listener of this._rangeListeners) { + listener(begin, chunk); } - - this._invoke = enqueue; } - - defineIteratorMethods(AsyncIterator.prototype); - define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }); - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) PromiseImpl = Promise; - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); + onDataProgress(loaded, total) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressListeners) { + listener(loaded, total); } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); + }); + } + onDataProgressiveRead(chunk) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveReadListeners) { + listener(chunk); } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } + }); + } + onDataProgressiveDone() { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveDoneListeners) { + listener(); } - }; + }); + } + transportReady() { + this._readyCapability.resolve(); + } + requestDataRange(begin, end) { + (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); + } + abort() {} +} +exports.PDFDataRangeTransport = PDFDataRangeTransport; +class PDFDocumentProxy { + constructor(pdfInfo, transport) { + this._pdfInfo = pdfInfo; + this._transport = transport; + } + get annotationStorage() { + return this._transport.annotationStorage; + } + get numPages() { + return this._pdfInfo.numPages; + } + get fingerprints() { + return this._pdfInfo.fingerprints; + } + get stats() { + return this._transport.stats; + } + get isPureXfa() { + return !!this._transport._htmlForXfa; + } + get allXfaHtml() { + return this._transport._htmlForXfa; + } + getPage(pageNumber) { + return this._transport.getPage(pageNumber); + } + getPageIndex(ref) { + return this._transport.getPageIndex(ref); + } + getDestinations() { + return this._transport.getDestinations(); + } + getDestination(id) { + return this._transport.getDestination(id); + } + getPageLabels() { + return this._transport.getPageLabels(); + } + getPageLayout() { + return this._transport.getPageLayout(); + } + getPageMode() { + return this._transport.getPageMode(); + } + getViewerPreferences() { + return this._transport.getViewerPreferences(); + } + getOpenAction() { + return this._transport.getOpenAction(); + } + getAttachments() { + return this._transport.getAttachments(); + } + getJavaScript() { + return this._transport.getJavaScript(); + } + getJSActions() { + return this._transport.getDocJSActions(); + } + getOutline() { + return this._transport.getOutline(); + } + getOptionalContentConfig() { + return this._transport.getOptionalContentConfig(); + } + getPermissions() { + return this._transport.getPermissions(); + } + getMetadata() { + return this._transport.getMetadata(); + } + getMarkInfo() { + return this._transport.getMarkInfo(); + } + getData() { + return this._transport.getData(); + } + saveDocument() { + return this._transport.saveDocument(); + } + getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; + cleanup() { + let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa); } - - defineIteratorMethods(Gp); - define(Gp, toStringTagSymbol, "Generator"); - define(Gp, iteratorSymbol, function () { - return this; - }); - define(Gp, "toString", function () { - return "[object Generator]"; - }); - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); + destroy() { + return this.loadingTask.destroy(); } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; + get loadingParams() { + return this._transport.loadingParams; } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); + get loadingTask() { + return this._transport.loadingTask; } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; + getFieldObjects() { + return this._transport.getFieldObjects(); } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; + hasJSActions() { + return this._transport.hasJSActions(); } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? 0 : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); + getCalculationOrderIds() { + return this._transport.getCalculationOrderIds(); } } - -/***/ }), -/* 158 */ -/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - -"use strict"; - - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0; -exports.deprecated = deprecated; -exports.getFilenameFromUrl = getFilenameFromUrl; -exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl; -exports.getXfaPageViewport = getXfaPageViewport; -exports.isDataScheme = isDataScheme; -exports.isPdfFile = isPdfFile; -exports.isValidFetchUrl = isValidFetchUrl; -exports.loadScript = loadScript; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - -var _base_factory = __w_pdfjs_require__(159); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var SVG_NS = "http://www.w3.org/2000/svg"; - -var PixelsPerInch = /*#__PURE__*/_createClass(function PixelsPerInch() { - _classCallCheck(this, PixelsPerInch); -}); - -exports.PixelsPerInch = PixelsPerInch; - -_defineProperty(PixelsPerInch, "CSS", 96.0); - -_defineProperty(PixelsPerInch, "PDF", 72.0); - -_defineProperty(PixelsPerInch, "PDF_TO_CSS_UNITS", PixelsPerInch.CSS / PixelsPerInch.PDF); - -var DOMCanvasFactory = /*#__PURE__*/function (_BaseCanvasFactory) { - _inherits(DOMCanvasFactory, _BaseCanvasFactory); - - var _super = _createSuper(DOMCanvasFactory); - - function DOMCanvasFactory() { - var _this; - - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$ownerDocument = _ref.ownerDocument, - ownerDocument = _ref$ownerDocument === void 0 ? globalThis.document : _ref$ownerDocument; - - _classCallCheck(this, DOMCanvasFactory); - - _this = _super.call(this); - _this._document = ownerDocument; - return _this; +exports.PDFDocumentProxy = PDFDocumentProxy; +class PDFPageProxy { + constructor(pageIndex, pageInfo, transport, ownerDocument) { + let pdfBug = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + this._pageIndex = pageIndex; + this._pageInfo = pageInfo; + this._ownerDocument = ownerDocument; + this._transport = transport; + this._stats = pdfBug ? new _display_utils.StatTimer() : null; + this._pdfBug = pdfBug; + this.commonObjs = transport.commonObjs; + this.objs = new PDFObjects(); + this._bitmaps = new Set(); + this.cleanupAfterRender = false; + this.pendingCleanup = false; + this._intentStates = new Map(); + this._annotationPromises = new Map(); + this.destroyed = false; } - - _createClass(DOMCanvasFactory, [{ - key: "_createCanvas", - value: function _createCanvas(width, height) { - var canvas = this._document.createElement("canvas"); - - canvas.width = width; - canvas.height = height; - return canvas; + get pageNumber() { + return this._pageIndex + 1; + } + get rotate() { + return this._pageInfo.rotate; + } + get ref() { + return this._pageInfo.ref; + } + get userUnit() { + return this._pageInfo.userUnit; + } + get view() { + return this._pageInfo.view; + } + getViewport() { + let { + scale, + rotation = this.rotate, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return new _display_utils.PageViewport({ + viewBox: this.view, + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + getAnnotations() { + let { + intent = "display" + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + const intentArgs = this._transport.getRenderingIntent(intent); + let promise = this._annotationPromises.get(intentArgs.cacheKey); + if (!promise) { + promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent); + this._annotationPromises.set(intentArgs.cacheKey, promise); + } + return promise; + } + getJSActions() { + return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex)); + } + async getXfa() { + var _this$_transport$_htm; + return ((_this$_transport$_htm = this._transport._htmlForXfa) === null || _this$_transport$_htm === void 0 ? void 0 : _this$_transport$_htm.children[this._pageIndex]) || null; + } + render(_ref2) { + var _this$_stats, _intentState; + let { + canvasContext, + viewport, + intent = "display", + annotationMode = _util.AnnotationMode.ENABLE, + transform = null, + canvasFactory = null, + background = null, + optionalContentConfigPromise = null, + annotationCanvasMap = null, + pageColors = null, + printAnnotationStorage = null + } = _ref2; + (_this$_stats = this._stats) === null || _this$_stats === void 0 ? void 0 : _this$_stats.time("Overall"); + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage); + this.pendingCleanup = false; + if (!optionalContentConfigPromise) { + optionalContentConfigPromise = this._transport.getOptionalContentConfig(); } - }]); - - return DOMCanvasFactory; -}(_base_factory.BaseCanvasFactory); - -exports.DOMCanvasFactory = DOMCanvasFactory; - -function fetchData(_x) { - return _fetchData.apply(this, arguments); -} - -function _fetchData() { - _fetchData = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(url) { - var asTypedArray, - response, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - asTypedArray = _args.length > 1 && _args[1] !== undefined ? _args[1] : false; - - if (!isValidFetchUrl(url, document.baseURI)) { - _context.next = 21; - break; - } - - _context.next = 4; - return fetch(url); - - case 4: - response = _context.sent; - - if (response.ok) { - _context.next = 7; - break; - } - - throw new Error(response.statusText); - - case 7: - if (!asTypedArray) { - _context.next = 15; - break; - } - - _context.t1 = Uint8Array; - _context.next = 11; - return response.arrayBuffer(); - - case 11: - _context.t2 = _context.sent; - _context.t0 = new _context.t1(_context.t2); - _context.next = 20; - break; - - case 15: - _context.t3 = _util.stringToBytes; - _context.next = 18; - return response.text(); - - case 18: - _context.t4 = _context.sent; - _context.t0 = (0, _context.t3)(_context.t4); - - case 20: - return _context.abrupt("return", _context.t0); - - case 21: - return _context.abrupt("return", new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open("GET", url, true); - - if (asTypedArray) { - request.responseType = "arraybuffer"; - } - - request.onreadystatechange = function () { - if (request.readyState !== XMLHttpRequest.DONE) { - return; - } - - if (request.status === 200 || request.status === 0) { - var data; - - if (asTypedArray && request.response) { - data = new Uint8Array(request.response); - } else if (!asTypedArray && request.responseText) { - data = (0, _util.stringToBytes)(request.responseText); - } - - if (data) { - resolve(data); - return; - } - } - - reject(new Error(request.statusText)); - }; - - request.send(null); - })); - - case 22: - case "end": - return _context.stop(); - } + let intentState = this._intentStates.get(intentArgs.cacheKey); + if (!intentState) { + intentState = Object.create(null); + this._intentStates.set(intentArgs.cacheKey, intentState); + } + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } + const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({ + ownerDocument: this._ownerDocument + }); + const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT); + if (!intentState.displayReadyCapability) { + var _this$_stats2; + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false, + separateAnnots: null + }; + (_this$_stats2 = this._stats) === null || _this$_stats2 === void 0 ? void 0 : _this$_stats2.time("Page Request"); + this._pumpOperatorList(intentArgs); + } + const complete = error => { + var _this$_stats3, _this$_stats4; + intentState.renderTasks.delete(internalRenderTask); + if (this.cleanupAfterRender || intentPrint) { + this.pendingCleanup = true; + } + this._tryCleanup(); + if (error) { + internalRenderTask.capability.reject(error); + this._abortOperatorList({ + intentState, + reason: error instanceof Error ? error : new Error(error) + }); + } else { + internalRenderTask.capability.resolve(); } - }, _callee); - })); - return _fetchData.apply(this, arguments); -} - -var DOMCMapReaderFactory = /*#__PURE__*/function (_BaseCMapReaderFactor) { - _inherits(DOMCMapReaderFactory, _BaseCMapReaderFactor); - - var _super2 = _createSuper(DOMCMapReaderFactory); - - function DOMCMapReaderFactory() { - _classCallCheck(this, DOMCMapReaderFactory); - - return _super2.apply(this, arguments); + (_this$_stats3 = this._stats) === null || _this$_stats3 === void 0 ? void 0 : _this$_stats3.timeEnd("Rendering"); + (_this$_stats4 = this._stats) === null || _this$_stats4 === void 0 ? void 0 : _this$_stats4.timeEnd("Overall"); + }; + const internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext, + viewport, + transform, + background + }, + objs: this.objs, + commonObjs: this.commonObjs, + annotationCanvasMap, + operatorList: intentState.operatorList, + pageIndex: this._pageIndex, + canvasFactory: canvasFactoryInstance, + useRequestAnimationFrame: !intentPrint, + pdfBug: this._pdfBug, + pageColors + }); + ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask); + const renderTask = internalRenderTask.task; + Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(_ref3 => { + var _this$_stats5; + let [transparency, optionalContentConfig] = _ref3; + if (this.pendingCleanup) { + complete(); + return; + } + (_this$_stats5 = this._stats) === null || _this$_stats5 === void 0 ? void 0 : _this$_stats5.time("Rendering"); + internalRenderTask.initializeGraphics({ + transparency, + optionalContentConfig + }); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + } + getOperatorList() { + let { + intent = "display", + annotationMode = _util.AnnotationMode.ENABLE, + printAnnotationStorage = null + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + intentState.renderTasks.delete(opListTask); + } + } + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true); + let intentState = this._intentStates.get(intentArgs.cacheKey); + if (!intentState) { + intentState = Object.create(null); + this._intentStates.set(intentArgs.cacheKey, intentState); + } + let opListTask; + if (!intentState.opListReadCapability) { + var _intentState2, _this$_stats6; + opListTask = Object.create(null); + opListTask.operatorListChanged = operatorListChanged; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false, + separateAnnots: null + }; + (_this$_stats6 = this._stats) === null || _this$_stats6 === void 0 ? void 0 : _this$_stats6.time("Page Request"); + this._pumpOperatorList(intentArgs); + } + return intentState.opListReadCapability.promise; + } + streamTextContent() { + let { + disableCombineTextItems = false, + includeMarkedContent = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + const TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream("GetTextContent", { + pageIndex: this._pageIndex, + combineTextItems: disableCombineTextItems !== true, + includeMarkedContent: includeMarkedContent === true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + size(textContent) { + return textContent.items.length; + } + }); } - - _createClass(DOMCMapReaderFactory, [{ - key: "_fetchData", - value: function _fetchData(url, compressionType) { - return fetchData(url, this.isCompressed).then(function (data) { - return { - cMapData: data, - compressionType: compressionType - }; + getTextContent() { + let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (this._transport._htmlForXfa) { + return this.getXfa().then(xfa => { + return _xfa_text.XfaText.textContent(xfa); }); } - }]); - - return DOMCMapReaderFactory; -}(_base_factory.BaseCMapReaderFactory); - -exports.DOMCMapReaderFactory = DOMCMapReaderFactory; - -var DOMStandardFontDataFactory = /*#__PURE__*/function (_BaseStandardFontData) { - _inherits(DOMStandardFontDataFactory, _BaseStandardFontData); - - var _super3 = _createSuper(DOMStandardFontDataFactory); - - function DOMStandardFontDataFactory() { - _classCallCheck(this, DOMStandardFontDataFactory); - - return _super3.apply(this, arguments); + const readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function (_ref4) { + let { + value, + done + } = _ref4; + if (done) { + resolve(textContent); + return; + } + Object.assign(textContent.styles, value.styles); + textContent.items.push(...value.items); + pump(); + }, reject); + } + const reader = readableStream.getReader(); + const textContent = { + items: [], + styles: Object.create(null) + }; + pump(); + }); } - - _createClass(DOMStandardFontDataFactory, [{ - key: "_fetchData", - value: function _fetchData(url) { - return fetchData(url, true); + getStructTree() { + return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex)); + } + _destroy() { + this.destroyed = true; + const waitOn = []; + for (const intentState of this._intentStates.values()) { + this._abortOperatorList({ + intentState, + reason: new Error("Page was destroyed."), + force: true + }); + if (intentState.opListReadCapability) { + continue; + } + for (const internalRenderTask of intentState.renderTasks) { + waitOn.push(internalRenderTask.completed); + internalRenderTask.cancel(); + } } - }]); - - return DOMStandardFontDataFactory; -}(_base_factory.BaseStandardFontDataFactory); - -exports.DOMStandardFontDataFactory = DOMStandardFontDataFactory; - -var DOMSVGFactory = /*#__PURE__*/function (_BaseSVGFactory) { - _inherits(DOMSVGFactory, _BaseSVGFactory); - - var _super4 = _createSuper(DOMSVGFactory); - - function DOMSVGFactory() { - _classCallCheck(this, DOMSVGFactory); - - return _super4.apply(this, arguments); + this.objs.clear(); + for (const bitmap of this._bitmaps) { + bitmap.close(); + } + this._bitmaps.clear(); + this._annotationPromises.clear(); + this._jsActionsPromise = null; + this._structTreePromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); } - - _createClass(DOMSVGFactory, [{ - key: "_createSVG", - value: function _createSVG(type) { - return document.createElementNS(SVG_NS, type); + cleanup() { + let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + this.pendingCleanup = true; + return this._tryCleanup(resetStats); + } + _tryCleanup() { + let resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!this.pendingCleanup) { + return false; } - }]); - - return DOMSVGFactory; -}(_base_factory.BaseSVGFactory); - -exports.DOMSVGFactory = DOMSVGFactory; - -var PageViewport = /*#__PURE__*/function () { - function PageViewport(_ref2) { - var viewBox = _ref2.viewBox, - scale = _ref2.scale, - rotation = _ref2.rotation, - _ref2$offsetX = _ref2.offsetX, - offsetX = _ref2$offsetX === void 0 ? 0 : _ref2$offsetX, - _ref2$offsetY = _ref2.offsetY, - offsetY = _ref2$offsetY === void 0 ? 0 : _ref2$offsetY, - _ref2$dontFlip = _ref2.dontFlip, - dontFlip = _ref2$dontFlip === void 0 ? false : _ref2$dontFlip; - - _classCallCheck(this, PageViewport); - - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation %= 360; - - if (rotation < 0) { - rotation += 360; + for (const { + renderTasks, + operatorList + } of this._intentStates.values()) { + if (renderTasks.size > 0 || !operatorList.lastChunk) { + return false; + } } - - switch (rotation) { - case 180: - rotateA = -1; - rotateB = 0; - rotateC = 0; - rotateD = 1; - break; - - case 90: - rotateA = 0; - rotateB = 1; - rotateC = 1; - rotateD = 0; - break; - - case 270: - rotateA = 0; - rotateB = -1; - rotateC = -1; - rotateD = 0; - break; - - case 0: - rotateA = 1; - rotateB = 0; - rotateC = 0; - rotateD = -1; + this._intentStates.clear(); + this.objs.clear(); + this._annotationPromises.clear(); + this._jsActionsPromise = null; + this._structTreePromise = null; + if (resetStats && this._stats) { + this._stats = new _display_utils.StatTimer(); + } + for (const bitmap of this._bitmaps) { + bitmap.close(); + } + this._bitmaps.clear(); + this.pendingCleanup = false; + return true; + } + _startRenderPage(transparency, cacheKey) { + var _this$_stats7, _intentState$displayR; + const intentState = this._intentStates.get(cacheKey); + if (!intentState) { + return; + } + (_this$_stats7 = this._stats) === null || _this$_stats7 === void 0 ? void 0 : _this$_stats7.timeEnd("Page Request"); + (_intentState$displayR = intentState.displayReadyCapability) === null || _intentState$displayR === void 0 ? void 0 : _intentState$displayR.resolve(transparency); + } + _renderPageChunk(operatorListChunk, intentState) { + for (let i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots; + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + if (operatorListChunk.lastChunk) { + this._tryCleanup(); + } + } + _pumpOperatorList(_ref5) { + let { + renderingIntent, + cacheKey, + annotationStorageMap + } = _ref5; + const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", { + pageIndex: this._pageIndex, + intent: renderingIntent, + cacheKey, + annotationStorage: annotationStorageMap + }); + const reader = readableStream.getReader(); + const intentState = this._intentStates.get(cacheKey); + intentState.streamReader = reader; + const pump = () => { + reader.read().then(_ref6 => { + let { + value, + done + } = _ref6; + if (done) { + intentState.streamReader = null; + return; + } + if (this._transport.destroyed) { + return; + } + this._renderPageChunk(value, intentState); + pump(); + }, reason => { + intentState.streamReader = null; + if (this._transport.destroyed) { + return; + } + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + this._tryCleanup(); + } + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(reason); + } else if (intentState.opListReadCapability) { + intentState.opListReadCapability.reject(reason); + } else { + throw reason; + } + }); + }; + pump(); + } + _abortOperatorList(_ref7) { + let { + intentState, + reason, + force = false + } = _ref7; + if (!intentState.streamReader) { + return; + } + if (!force) { + if (intentState.renderTasks.size > 0) { + return; + } + if (reason instanceof _display_utils.RenderingCancelledException) { + intentState.streamReaderCancelTimeout = setTimeout(() => { + this._abortOperatorList({ + intentState, + reason, + force: true + }); + intentState.streamReaderCancelTimeout = null; + }, RENDERING_CANCELLED_TIMEOUT); + return; + } + } + intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {}); + intentState.streamReader = null; + if (this._transport.destroyed) { + return; + } + for (const [curCacheKey, curIntentState] of this._intentStates) { + if (curIntentState === intentState) { + this._intentStates.delete(curCacheKey); break; - - default: - throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); + } } - - if (dontFlip) { - rotateC = -rotateC; - rotateD = -rotateD; + this.cleanup(); + } + get stats() { + return this._stats; + } +} +exports.PDFPageProxy = PDFPageProxy; +var _listeners = /*#__PURE__*/new WeakMap(); +var _deferred = /*#__PURE__*/new WeakMap(); +class LoopbackPort { + constructor() { + _classPrivateFieldInitSpec(this, _listeners, { + writable: true, + value: [] + }); + _classPrivateFieldInitSpec(this, _deferred, { + writable: true, + value: Promise.resolve() + }); + } + postMessage(obj, transfers) { + const event = { + data: structuredClone(obj, transfers) + }; + _classPrivateFieldGet(this, _deferred).then(() => { + for (const listener of _classPrivateFieldGet(this, _listeners)) { + listener.call(this, event); + } + }); + } + addEventListener(name, listener) { + _classPrivateFieldGet(this, _listeners).push(listener); + } + removeEventListener(name, listener) { + const i = _classPrivateFieldGet(this, _listeners).indexOf(listener); + _classPrivateFieldGet(this, _listeners).splice(i, 1); + } + terminate() { + _classPrivateFieldGet(this, _listeners).length = 0; + } +} +exports.LoopbackPort = LoopbackPort; +const PDFWorkerUtil = { + isWorkerDisabled: false, + fallbackWorkerSrc: null, + fakeWorkerId: 0 +}; +exports.PDFWorkerUtil = PDFWorkerUtil; +{ + if (_is_node.isNodeJS && typeof require === "function") { + PDFWorkerUtil.isWorkerDisabled = true; + PDFWorkerUtil.fallbackWorkerSrc = "./pdf.worker.js"; + } else if (typeof document === "object") { + var _document, _document$currentScri; + const pdfjsFilePath = (_document = document) === null || _document === void 0 ? void 0 : (_document$currentScri = _document.currentScript) === null || _document$currentScri === void 0 ? void 0 : _document$currentScri.src; + if (pdfjsFilePath) { + PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); } - - var offsetCanvasX, offsetCanvasY; - var width, height; - - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) { + let base; + try { + base = new URL(baseUrl); + if (!base.origin || base.origin === "null") { + return false; + } + } catch (e) { + return false; } - - this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; - this.width = width; - this.height = height; + const other = new URL(otherUrl, base); + return base.origin === other.origin; + }; + PDFWorkerUtil.createCDNWrapper = function (url) { + const wrapper = `importScripts("${url}");`; + return URL.createObjectURL(new Blob([wrapper])); + }; +} +class PDFWorker { + constructor() { + let { + name = null, + port = null, + verbosity = (0, _util.getVerbosityLevel)() + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + if (port && _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).has(port)) { + throw new Error("Cannot use more than one PDFWorker per port."); + } + this.name = name; + this.destroyed = false; + this.verbosity = verbosity; + this._readyCapability = (0, _util.createPromiseCapability)(); + this._port = null; + this._webWorker = null; + this._messageHandler = null; + if (port) { + _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).set(port, this); + this._initializeFromPort(port); + return; + } + this._initialize(); } - - _createClass(PageViewport, [{ - key: "clone", - value: function clone() { - var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref3$scale = _ref3.scale, - scale = _ref3$scale === void 0 ? this.scale : _ref3$scale, - _ref3$rotation = _ref3.rotation, - rotation = _ref3$rotation === void 0 ? this.rotation : _ref3$rotation, - _ref3$offsetX = _ref3.offsetX, - offsetX = _ref3$offsetX === void 0 ? this.offsetX : _ref3$offsetX, - _ref3$offsetY = _ref3.offsetY, - offsetY = _ref3$offsetY === void 0 ? this.offsetY : _ref3$offsetY, - _ref3$dontFlip = _ref3.dontFlip, - dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip; - - return new PageViewport({ - viewBox: this.viewBox.slice(), - scale: scale, - rotation: rotation, - offsetX: offsetX, - offsetY: offsetY, - dontFlip: dontFlip + get promise() { + return this._readyCapability.promise; + } + get port() { + return this._port; + } + get messageHandler() { + return this._messageHandler; + } + _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); + this._messageHandler.on("ready", function () {}); + this._readyCapability.resolve(); + this._messageHandler.send("configure", { + verbosity: this.verbosity + }); + } + _initialize() { + if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) { + let { + workerSrc + } = PDFWorker; + try { + if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) { + workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href); + } + const worker = new Worker(workerSrc); + const messageHandler = new _message_handler.MessageHandler("main", "worker", worker); + const terminateEarly = () => { + worker.removeEventListener("error", onWorkerError); + messageHandler.destroy(); + worker.terminate(); + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + } else { + this._setupFakeWorker(); + } + }; + const onWorkerError = () => { + if (!this._webWorker) { + terminateEarly(); + } + }; + worker.addEventListener("error", onWorkerError); + messageHandler.on("test", data => { + worker.removeEventListener("error", onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + if (data) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + this._readyCapability.resolve(); + messageHandler.send("configure", { + verbosity: this.verbosity + }); + } else { + this._setupFakeWorker(); + messageHandler.destroy(); + worker.terminate(); + } + }); + messageHandler.on("ready", data => { + worker.removeEventListener("error", onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + try { + sendTest(); + } catch (e) { + this._setupFakeWorker(); + } + }); + const sendTest = () => { + const testObj = new Uint8Array(); + messageHandler.send("test", testObj, [testObj.buffer]); + }; + sendTest(); + return; + } catch (e) { + (0, _util.info)("The worker has been disabled."); + } + } + this._setupFakeWorker(); + } + _setupFakeWorker() { + if (!PDFWorkerUtil.isWorkerDisabled) { + (0, _util.warn)("Setting up fake worker."); + PDFWorkerUtil.isWorkerDisabled = true; + } + PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => { + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + return; + } + const port = new LoopbackPort(); + this._port = port; + const id = `fake${PDFWorkerUtil.fakeWorkerId++}`; + const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); + WorkerMessageHandler.setup(workerHandler, port); + const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); + this._messageHandler = messageHandler; + this._readyCapability.resolve(); + messageHandler.send("configure", { + verbosity: this.verbosity }); + }).catch(reason => { + this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`)); + }); + } + destroy() { + this.destroyed = true; + if (this._webWorker) { + this._webWorker.terminate(); + this._webWorker = null; } - }, { - key: "convertToViewportPoint", - value: function convertToViewportPoint(x, y) { - return _util.Util.applyTransform([x, y], this.transform); + _classStaticPrivateFieldSpecGet(PDFWorker, PDFWorker, _workerPorts).delete(this._port); + this._port = null; + if (this._messageHandler) { + this._messageHandler.destroy(); + this._messageHandler = null; } - }, { - key: "convertToViewportRectangle", - value: function convertToViewportRectangle(rect) { - var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); - - var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); - - return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + static fromPort(params) { + if (!(params !== null && params !== void 0 && params.port)) { + throw new Error("PDFWorker.fromPort - invalid method signature."); } - }, { - key: "convertToPdfPoint", - value: function convertToPdfPoint(x, y) { - return _util.Util.applyInverseTransform([x, y], this.transform); + if (_classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).has(params.port)) { + return _classStaticPrivateFieldSpecGet(this, PDFWorker, _workerPorts).get(params.port); } - }]); - - return PageViewport; -}(); - -exports.PageViewport = PageViewport; - -var RenderingCancelledException = /*#__PURE__*/function (_BaseException) { - _inherits(RenderingCancelledException, _BaseException); - - var _super5 = _createSuper(RenderingCancelledException); - - function RenderingCancelledException(msg, type) { - var _this2; - - _classCallCheck(this, RenderingCancelledException); - - _this2 = _super5.call(this, msg, "RenderingCancelledException"); - _this2.type = type; - return _this2; - } - - return _createClass(RenderingCancelledException); -}(_util.BaseException); - -exports.RenderingCancelledException = RenderingCancelledException; - -function isDataScheme(url) { - var ii = url.length; - var i = 0; - - while (i < ii && url[i].trim() === "") { - i++; - } - - return url.substring(i, i + 5).toLowerCase() === "data:"; -} - -function isPdfFile(filename) { - return typeof filename === "string" && /\.pdf$/i.test(filename); -} - -function getFilenameFromUrl(url) { - var anchor = url.indexOf("#"); - var query = url.indexOf("?"); - var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); - return url.substring(url.lastIndexOf("/", end) + 1, end); -} - -function getPdfFilenameFromUrl(url) { - var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "document.pdf"; - - if (typeof url !== "string") { - return defaultFilename; - } - - if (isDataScheme(url)) { - (0, _util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'); - return defaultFilename; + return new PDFWorker(params); } - - var reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; - var reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i; - var splitURI = reURI.exec(url); - var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); - - if (suggestedFilename) { - suggestedFilename = suggestedFilename[0]; - - if (suggestedFilename.includes("%")) { - try { - suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; - } catch (ex) {} + static get workerSrc() { + if (_worker_options.GlobalWorkerOptions.workerSrc) { + return _worker_options.GlobalWorkerOptions.workerSrc; + } + if (PDFWorkerUtil.fallbackWorkerSrc !== null) { + if (!_is_node.isNodeJS) { + (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); + } + return PDFWorkerUtil.fallbackWorkerSrc; } + throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); } - - return suggestedFilename || defaultFilename; -} - -var StatTimer = /*#__PURE__*/function () { - function StatTimer() { - _classCallCheck(this, StatTimer); - - this.started = Object.create(null); - this.times = []; + static get _mainThreadWorkerMessageHandler() { + try { + var _globalThis$pdfjsWork; + return ((_globalThis$pdfjsWork = globalThis.pdfjsWorker) === null || _globalThis$pdfjsWork === void 0 ? void 0 : _globalThis$pdfjsWork.WorkerMessageHandler) || null; + } catch (ex) { + return null; + } } - - _createClass(StatTimer, [{ - key: "time", - value: function time(name) { - if (name in this.started) { - (0, _util.warn)("Timer is already running for ".concat(name)); + static get _setupFakeWorkerGlobal() { + const loader = async () => { + const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler; + if (mainWorkerMessageHandler) { + return mainWorkerMessageHandler; } - - this.started[name] = Date.now(); - } - }, { - key: "timeEnd", - value: function timeEnd(name) { - if (!(name in this.started)) { - (0, _util.warn)("Timer has not been started for ".concat(name)); + if (_is_node.isNodeJS && typeof require === "function") { + const worker = eval("require")(this.workerSrc); + return worker.WorkerMessageHandler; } - - this.times.push({ - name: name, - start: this.started[name], - end: Date.now() + await (0, _display_utils.loadScript)(this.workerSrc); + return window.pdfjsWorker.WorkerMessageHandler; + }; + return (0, _util.shadow)(this, "_setupFakeWorkerGlobal", loader()); + } +} +exports.PDFWorker = PDFWorker; +var _workerPorts = { + writable: true, + value: new WeakMap() +}; +var _docStats = /*#__PURE__*/new WeakMap(); +var _pageCache = /*#__PURE__*/new WeakMap(); +var _pagePromises = /*#__PURE__*/new WeakMap(); +var _metadataPromise = /*#__PURE__*/new WeakMap(); +class WorkerTransport { + constructor(messageHandler, loadingTask, networkStream, params) { + _classPrivateFieldInitSpec(this, _docStats, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _pageCache, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _pagePromises, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _metadataPromise, { + writable: true, + value: null + }); + this.messageHandler = messageHandler; + this.loadingTask = loadingTask; + this.commonObjs = new PDFObjects(); + this.fontLoader = new _font_loader.FontLoader({ + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + ownerDocument: params.ownerDocument, + styleElement: params.styleElement + }); + this._params = params; + if (!params.useWorkerFetch) { + this.CMapReaderFactory = new params.CMapReaderFactory({ + baseUrl: params.cMapUrl, + isCompressed: params.cMapPacked + }); + this.StandardFontDataFactory = new params.StandardFontDataFactory({ + baseUrl: params.standardFontDataUrl }); - delete this.started[name]; } - }, { - key: "toString", - value: function toString() { - var outBuf = []; - var longest = 0; - - var _iterator = _createForOfIteratorHelper(this.times), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var time = _step.value; - var name = time.name; - - if (name.length > longest) { - longest = name.length; + this.destroyed = false; + this.destroyCapability = null; + this._passwordCapability = null; + this._networkStream = networkStream; + this._fullReader = null; + this._lastProgress = null; + this.downloadInfoCapability = (0, _util.createPromiseCapability)(); + this.setupMessageHandler(); + } + get annotationStorage() { + return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); + } + get stats() { + return _classPrivateFieldGet(this, _docStats); + } + getRenderingIntent(intent) { + let annotationMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.AnnotationMode.ENABLE; + let printAnnotationStorage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + let isOpList = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + let renderingIntent = _util.RenderingIntentFlag.DISPLAY; + let annotationMap = null; + switch (intent) { + case "any": + renderingIntent = _util.RenderingIntentFlag.ANY; + break; + case "display": + break; + case "print": + renderingIntent = _util.RenderingIntentFlag.PRINT; + break; + default: + (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`); + } + switch (annotationMode) { + case _util.AnnotationMode.DISABLE: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE; + break; + case _util.AnnotationMode.ENABLE: + break; + case _util.AnnotationMode.ENABLE_FORMS: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS; + break; + case _util.AnnotationMode.ENABLE_STORAGE: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE; + const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage; + annotationMap = annotationStorage.serializable; + break; + default: + (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`); + } + if (isOpList) { + renderingIntent += _util.RenderingIntentFlag.OPLIST; + } + return { + renderingIntent, + cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`, + annotationStorageMap: annotationMap + }; + } + destroy() { + if (this.destroyCapability) { + return this.destroyCapability.promise; + } + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); + if (this._passwordCapability) { + this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); + } + const waitOn = []; + for (const page of _classPrivateFieldGet(this, _pageCache).values()) { + waitOn.push(page._destroy()); + } + _classPrivateFieldGet(this, _pageCache).clear(); + _classPrivateFieldGet(this, _pagePromises).clear(); + if (this.hasOwnProperty("annotationStorage")) { + this.annotationStorage.resetModified(); + } + const terminated = this.messageHandler.sendWithPromise("Terminate", null); + waitOn.push(terminated); + Promise.all(waitOn).then(() => { + this.commonObjs.clear(); + this.fontLoader.clear(); + _classPrivateFieldSet(this, _metadataPromise, null); + this._getFieldObjectsPromise = null; + this._hasJSActionsPromise = null; + if (this._networkStream) { + this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); + } + if (this.messageHandler) { + this.messageHandler.destroy(); + this.messageHandler = null; + } + this.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + } + setupMessageHandler() { + const { + messageHandler, + loadingTask + } = this; + messageHandler.on("GetReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); + this._fullReader = this._networkStream.getFullReader(); + this._fullReader.onProgress = evt => { + this._lastProgress = { + loaded: evt.loaded, + total: evt.total + }; + }; + sink.onPull = () => { + this._fullReader.read().then(function (_ref8) { + let { + value, + done + } = _ref8; + if (done) { + sink.close(); + return; + } + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + sink.onCancel = reason => { + this._fullReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; } + throw readyReason; + }); + }; + }); + messageHandler.on("ReaderHeadersReady", data => { + const headersCapability = (0, _util.createPromiseCapability)(); + const fullReader = this._fullReader; + fullReader.headersReady.then(() => { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (this._lastProgress) { + var _loadingTask$onProgre; + (_loadingTask$onProgre = loadingTask.onProgress) === null || _loadingTask$onProgre === void 0 ? void 0 : _loadingTask$onProgre.call(loadingTask, this._lastProgress); + } + fullReader.onProgress = evt => { + var _loadingTask$onProgre2; + (_loadingTask$onProgre2 = loadingTask.onProgress) === null || _loadingTask$onProgre2 === void 0 ? void 0 : _loadingTask$onProgre2.call(loadingTask, { + loaded: evt.loaded, + total: evt.total + }); + }; } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }); + messageHandler.on("GetRangeReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); + const rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + if (!rangeReader) { + sink.close(); + return; } - - var _iterator2 = _createForOfIteratorHelper(this.times), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var _time = _step2.value; - var duration = _time.end - _time.start; - outBuf.push("".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n")); + sink.onPull = () => { + rangeReader.read().then(function (_ref9) { + let { + value, + done + } = _ref9; + if (done) { + sink.close(); + return; + } + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + sink.onCancel = reason => { + rangeReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + throw readyReason; + }); + }; + }); + messageHandler.on("GetDoc", _ref10 => { + let { + pdfInfo + } = _ref10; + this._numPages = pdfInfo.numPages; + this._htmlForXfa = pdfInfo.htmlForXfa; + delete pdfInfo.htmlForXfa; + loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); + }); + messageHandler.on("DocException", function (ex) { + let reason; + switch (ex.name) { + case "PasswordException": + reason = new _util.PasswordException(ex.message, ex.code); + break; + case "InvalidPDFException": + reason = new _util.InvalidPDFException(ex.message); + break; + case "MissingPDFException": + reason = new _util.MissingPDFException(ex.message); + break; + case "UnexpectedResponseException": + reason = new _util.UnexpectedResponseException(ex.message, ex.status); + break; + case "UnknownErrorException": + reason = new _util.UnknownErrorException(ex.message, ex.details); + break; + default: + (0, _util.unreachable)("DocException - expected a valid Error."); + } + loadingTask._capability.reject(reason); + }); + messageHandler.on("PasswordRequest", exception => { + this._passwordCapability = (0, _util.createPromiseCapability)(); + if (loadingTask.onPassword) { + const updatePassword = password => { + if (password instanceof Error) { + this._passwordCapability.reject(password); + } else { + this._passwordCapability.resolve({ + password + }); + } + }; + try { + loadingTask.onPassword(updatePassword, exception.code); + } catch (ex) { + this._passwordCapability.reject(ex); } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); } - - return outBuf.join(""); - } - }]); - - return StatTimer; -}(); - -exports.StatTimer = StatTimer; - -function isValidFetchUrl(url, baseUrl) { - try { - var _ref4 = baseUrl ? new URL(url, baseUrl) : new URL(url), - protocol = _ref4.protocol; - - return protocol === "http:" || protocol === "https:"; - } catch (ex) { - return false; - } -} - -function loadScript(src) { - var removeScriptElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - return new Promise(function (resolve, reject) { - var script = document.createElement("script"); - script.src = src; - - script.onload = function (evt) { - if (removeScriptElement) { - script.remove(); + return this._passwordCapability.promise; + }); + messageHandler.on("DataLoaded", data => { + var _loadingTask$onProgre3; + (_loadingTask$onProgre3 = loadingTask.onProgress) === null || _loadingTask$onProgre3 === void 0 ? void 0 : _loadingTask$onProgre3.call(loadingTask, { + loaded: data.length, + total: data.length + }); + this.downloadInfoCapability.resolve(data); + }); + messageHandler.on("StartRenderPage", data => { + if (this.destroyed) { + return; + } + const page = _classPrivateFieldGet(this, _pageCache).get(data.pageIndex); + page._startRenderPage(data.transparency, data.cacheKey); + }); + messageHandler.on("commonobj", _ref11 => { + var _globalThis$FontInspe; + let [id, type, exportedData] = _ref11; + if (this.destroyed) { + return; + } + if (this.commonObjs.has(id)) { + return; + } + switch (type) { + case "Font": + const params = this._params; + if ("error" in exportedData) { + const exportedError = exportedData.error; + (0, _util.warn)(`Error during font loading: ${exportedError}`); + this.commonObjs.resolve(id, exportedError); + break; + } + let fontRegistry = null; + if (params.pdfBug && (_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled) { + fontRegistry = { + registerFont(font, url) { + globalThis.FontInspector.fontAdded(font, url); + } + }; + } + const font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + fontRegistry + }); + this.fontLoader.bind(font).catch(reason => { + return messageHandler.sendWithPromise("FontFallback", { + id + }); + }).finally(() => { + if (!params.fontExtraProperties && font.data) { + font.data = null; + } + this.commonObjs.resolve(id, font); + }); + break; + case "FontPath": + case "Image": + this.commonObjs.resolve(id, exportedData); + break; + default: + throw new Error(`Got unknown common object type ${type}`); + } + }); + messageHandler.on("obj", _ref12 => { + let [id, pageIndex, type, imageData] = _ref12; + if (this.destroyed) { + return; + } + const pageProxy = _classPrivateFieldGet(this, _pageCache).get(pageIndex); + if (pageProxy.objs.has(id)) { + return; + } + switch (type) { + case "Image": + pageProxy.objs.resolve(id, imageData); + const MAX_IMAGE_SIZE_TO_STORE = 8000000; + if (imageData) { + let length; + if (imageData.bitmap) { + const { + bitmap, + width, + height + } = imageData; + length = width * height * 4; + pageProxy._bitmaps.add(bitmap); + } else { + var _imageData$data; + length = ((_imageData$data = imageData.data) === null || _imageData$data === void 0 ? void 0 : _imageData$data.length) || 0; + } + if (length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + } + break; + case "Pattern": + pageProxy.objs.resolve(id, imageData); + break; + default: + throw new Error(`Got unknown object type ${type}`); + } + }); + messageHandler.on("DocProgress", data => { + var _loadingTask$onProgre4; + if (this.destroyed) { + return; + } + (_loadingTask$onProgre4 = loadingTask.onProgress) === null || _loadingTask$onProgre4 === void 0 ? void 0 : _loadingTask$onProgre4.call(loadingTask, { + loaded: data.loaded, + total: data.total + }); + }); + messageHandler.on("DocStats", data => { + if (this.destroyed) { + return; } - - resolve(evt); - }; - - script.onerror = function () { - reject(new Error("Cannot load script at: ".concat(script.src))); - }; - - (document.head || document.documentElement).appendChild(script); - }); -} - -function deprecated(details) { - console.log("Deprecated API usage: " + details); -} - -var pdfDateStringRegex; - -var PDFDateString = /*#__PURE__*/function () { - function PDFDateString() { - _classCallCheck(this, PDFDateString); - } - - _createClass(PDFDateString, null, [{ - key: "toDateObject", - value: function toDateObject(input) { - if (!input || typeof input !== "string") { - return null; + _classPrivateFieldSet(this, _docStats, Object.freeze({ + streamTypes: Object.freeze(data.streamTypes), + fontTypes: Object.freeze(data.fontTypes) + })); + }); + messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); + messageHandler.on("FetchBuiltInCMap", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); } - - if (!pdfDateStringRegex) { - pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); + if (!this.CMapReaderFactory) { + return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")); } - - var matches = pdfDateStringRegex.exec(input); - - if (!matches) { - return null; + return this.CMapReaderFactory.fetch(data); + }); + messageHandler.on("FetchStandardFontData", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); } - - var year = parseInt(matches[1], 10); - var month = parseInt(matches[2], 10); - month = month >= 1 && month <= 12 ? month - 1 : 0; - var day = parseInt(matches[3], 10); - day = day >= 1 && day <= 31 ? day : 1; - var hour = parseInt(matches[4], 10); - hour = hour >= 0 && hour <= 23 ? hour : 0; - var minute = parseInt(matches[5], 10); - minute = minute >= 0 && minute <= 59 ? minute : 0; - var second = parseInt(matches[6], 10); - second = second >= 0 && second <= 59 ? second : 0; - var universalTimeRelation = matches[7] || "Z"; - var offsetHour = parseInt(matches[8], 10); - offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; - var offsetMinute = parseInt(matches[9], 10) || 0; - offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; - - if (universalTimeRelation === "-") { - hour += offsetHour; - minute += offsetMinute; - } else if (universalTimeRelation === "+") { - hour -= offsetHour; - minute -= offsetMinute; + if (!this.StandardFontDataFactory) { + return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.")); } - - return new Date(Date.UTC(year, month, day, hour, minute, second)); + return this.StandardFontDataFactory.fetch(data); + }); + } + _onUnsupportedFeature(_ref13) { + var _this$loadingTask$onU, _this$loadingTask; + let { + featureId + } = _ref13; + if (this.destroyed) { + return; } - }]); - - return PDFDateString; -}(); - -exports.PDFDateString = PDFDateString; - -function getXfaPageViewport(xfaPage, _ref5) { - var _ref5$scale = _ref5.scale, - scale = _ref5$scale === void 0 ? 1 : _ref5$scale, - _ref5$rotation = _ref5.rotation, - rotation = _ref5$rotation === void 0 ? 0 : _ref5$rotation; - var _xfaPage$attributes$s = xfaPage.attributes.style, - width = _xfaPage$attributes$s.width, - height = _xfaPage$attributes$s.height; - var viewBox = [0, 0, parseInt(width), parseInt(height)]; - return new PageViewport({ - viewBox: viewBox, - scale: scale, - rotation: rotation - }); -} - -/***/ }), -/* 159 */ -/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var BaseCanvasFactory = /*#__PURE__*/function () { - function BaseCanvasFactory() { - _classCallCheck(this, BaseCanvasFactory); - - if (this.constructor === BaseCanvasFactory) { - (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); + (_this$loadingTask$onU = (_this$loadingTask = this.loadingTask).onUnsupportedFeature) === null || _this$loadingTask$onU === void 0 ? void 0 : _this$loadingTask$onU.call(_this$loadingTask, featureId); + } + getData() { + return this.messageHandler.sendWithPromise("GetData", null); + } + saveDocument() { + var _this$_fullReader; + if (this.annotationStorage.size <= 0) { + (0, _util.warn)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); } + return this.messageHandler.sendWithPromise("SaveDocument", { + isPureXfa: !!this._htmlForXfa, + numPages: this._numPages, + annotationStorage: this.annotationStorage.serializable, + filename: ((_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) ?? null + }).finally(() => { + this.annotationStorage.resetModified(); + }); } - - _createClass(BaseCanvasFactory, [{ - key: "create", - value: function create(width, height) { - if (width <= 0 || height <= 0) { - throw new Error("Invalid canvas size"); + getPage(pageNumber) { + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error("Invalid page request.")); + } + const pageIndex = pageNumber - 1, + cachedPromise = _classPrivateFieldGet(this, _pagePromises).get(pageIndex); + if (cachedPromise) { + return cachedPromise; + } + const promise = this.messageHandler.sendWithPromise("GetPage", { + pageIndex + }).then(pageInfo => { + if (this.destroyed) { + throw new Error("Transport destroyed"); } - - var canvas = this._createCanvas(width, height); - + const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug); + _classPrivateFieldGet(this, _pageCache).set(pageIndex, page); + return page; + }); + _classPrivateFieldGet(this, _pagePromises).set(pageIndex, promise); + return promise; + } + getPageIndex(ref) { + if (typeof ref !== "object" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) { + return Promise.reject(new Error("Invalid pageIndex request.")); + } + return this.messageHandler.sendWithPromise("GetPageIndex", { + num: ref.num, + gen: ref.gen + }); + } + getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise("GetAnnotations", { + pageIndex, + intent + }); + } + getFieldObjects() { + return this._getFieldObjectsPromise || (this._getFieldObjectsPromise = this.messageHandler.sendWithPromise("GetFieldObjects", null)); + } + hasJSActions() { + return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise("HasJSActions", null)); + } + getCalculationOrderIds() { + return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null); + } + getDestinations() { + return this.messageHandler.sendWithPromise("GetDestinations", null); + } + getDestination(id) { + if (typeof id !== "string") { + return Promise.reject(new Error("Invalid destination request.")); + } + return this.messageHandler.sendWithPromise("GetDestination", { + id + }); + } + getPageLabels() { + return this.messageHandler.sendWithPromise("GetPageLabels", null); + } + getPageLayout() { + return this.messageHandler.sendWithPromise("GetPageLayout", null); + } + getPageMode() { + return this.messageHandler.sendWithPromise("GetPageMode", null); + } + getViewerPreferences() { + return this.messageHandler.sendWithPromise("GetViewerPreferences", null); + } + getOpenAction() { + return this.messageHandler.sendWithPromise("GetOpenAction", null); + } + getAttachments() { + return this.messageHandler.sendWithPromise("GetAttachments", null); + } + getJavaScript() { + return this.messageHandler.sendWithPromise("GetJavaScript", null); + } + getDocJSActions() { + return this.messageHandler.sendWithPromise("GetDocJSActions", null); + } + getPageJSActions(pageIndex) { + return this.messageHandler.sendWithPromise("GetPageJSActions", { + pageIndex + }); + } + getStructTree(pageIndex) { + return this.messageHandler.sendWithPromise("GetStructTree", { + pageIndex + }); + } + getOutline() { + return this.messageHandler.sendWithPromise("GetOutline", null); + } + getOptionalContentConfig() { + return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(results => { + return new _optional_content_config.OptionalContentConfig(results); + }); + } + getPermissions() { + return this.messageHandler.sendWithPromise("GetPermissions", null); + } + getMetadata() { + return _classPrivateFieldGet(this, _metadataPromise) || _classPrivateFieldSet(this, _metadataPromise, this.messageHandler.sendWithPromise("GetMetadata", null).then(results => { + var _this$_fullReader2, _this$_fullReader3; return { - canvas: canvas, - context: canvas.getContext("2d") + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: ((_this$_fullReader2 = this._fullReader) === null || _this$_fullReader2 === void 0 ? void 0 : _this$_fullReader2.filename) ?? null, + contentLength: ((_this$_fullReader3 = this._fullReader) === null || _this$_fullReader3 === void 0 ? void 0 : _this$_fullReader3.contentLength) ?? null }; + })); + } + getMarkInfo() { + return this.messageHandler.sendWithPromise("GetMarkInfo", null); + } + async startCleanup() { + let keepLoadedFonts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.destroyed) { + return; } - }, { - key: "reset", - value: function reset(canvasAndContext, width, height) { - if (!canvasAndContext.canvas) { - throw new Error("Canvas is not specified"); - } - - if (width <= 0 || height <= 0) { - throw new Error("Invalid canvas size"); + await this.messageHandler.sendWithPromise("Cleanup", null); + for (const page of _classPrivateFieldGet(this, _pageCache).values()) { + const cleanupSuccessful = page.cleanup(); + if (!cleanupSuccessful) { + throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`); } - - canvasAndContext.canvas.width = width; - canvasAndContext.canvas.height = height; } - }, { - key: "destroy", - value: function destroy(canvasAndContext) { - if (!canvasAndContext.canvas) { - throw new Error("Canvas is not specified"); - } - - canvasAndContext.canvas.width = 0; - canvasAndContext.canvas.height = 0; - canvasAndContext.canvas = null; - canvasAndContext.context = null; + this.commonObjs.clear(); + if (!keepLoadedFonts) { + this.fontLoader.clear(); + } + _classPrivateFieldSet(this, _metadataPromise, null); + this._getFieldObjectsPromise = null; + this._hasJSActionsPromise = null; + } + get loadingParams() { + const params = this._params; + return (0, _util.shadow)(this, "loadingParams", { + disableAutoFetch: params.disableAutoFetch, + enableXfa: params.enableXfa + }); + } +} +var _objs = /*#__PURE__*/new WeakMap(); +var _ensureObj = /*#__PURE__*/new WeakSet(); +class PDFObjects { + constructor() { + _classPrivateMethodInitSpec(this, _ensureObj); + _classPrivateFieldInitSpec(this, _objs, { + writable: true, + value: Object.create(null) + }); + } + get(objId) { + let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (callback) { + const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId); + obj.capability.promise.then(() => callback(obj.data)); + return null; } - }, { - key: "_createCanvas", - value: function _createCanvas(width, height) { - (0, _util.unreachable)("Abstract method `_createCanvas` called."); + const obj = _classPrivateFieldGet(this, _objs)[objId]; + if (!(obj !== null && obj !== void 0 && obj.capability.settled)) { + throw new Error(`Requesting object that isn't resolved yet ${objId}.`); } - }]); - - return BaseCanvasFactory; -}(); - -exports.BaseCanvasFactory = BaseCanvasFactory; - -var BaseCMapReaderFactory = /*#__PURE__*/function () { - function BaseCMapReaderFactory(_ref) { - var _ref$baseUrl = _ref.baseUrl, - baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, - _ref$isCompressed = _ref.isCompressed, - isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; - - _classCallCheck(this, BaseCMapReaderFactory); - - if (this.constructor === BaseCMapReaderFactory) { - (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory."); + return obj.data; + } + has(objId) { + const obj = _classPrivateFieldGet(this, _objs)[objId]; + return (obj === null || obj === void 0 ? void 0 : obj.capability.settled) || false; + } + resolve(objId) { + let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const obj = _classPrivateMethodGet(this, _ensureObj, _ensureObj2).call(this, objId); + obj.data = data; + obj.capability.resolve(); + } + clear() { + _classPrivateFieldSet(this, _objs, Object.create(null)); + } +} +function _ensureObj2(objId) { + const obj = _classPrivateFieldGet(this, _objs)[objId]; + if (obj) { + return obj; + } + return _classPrivateFieldGet(this, _objs)[objId] = { + capability: (0, _util.createPromiseCapability)(), + data: null + }; +} +var _internalRenderTask = /*#__PURE__*/new WeakMap(); +class RenderTask { + constructor(internalRenderTask) { + _classPrivateFieldInitSpec(this, _internalRenderTask, { + writable: true, + value: null + }); + _classPrivateFieldSet(this, _internalRenderTask, internalRenderTask); + this.onContinue = null; + } + get promise() { + return _classPrivateFieldGet(this, _internalRenderTask).capability.promise; + } + cancel() { + _classPrivateFieldGet(this, _internalRenderTask).cancel(); + } + get separateAnnots() { + const { + separateAnnots + } = _classPrivateFieldGet(this, _internalRenderTask).operatorList; + if (!separateAnnots) { + return false; } - - this.baseUrl = baseUrl; - this.isCompressed = isCompressed; + const { + annotationCanvasMap + } = _classPrivateFieldGet(this, _internalRenderTask); + return separateAnnots.form || separateAnnots.canvas && (annotationCanvasMap === null || annotationCanvasMap === void 0 ? void 0 : annotationCanvasMap.size) > 0; } - - _createClass(BaseCMapReaderFactory, [{ - key: "fetch", - value: function () { - var _fetch = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref2) { - var _this = this; - - var name, url, compressionType; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - name = _ref2.name; - - if (this.baseUrl) { - _context.next = 3; - break; - } - - throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); - - case 3: - if (name) { - _context.next = 5; - break; - } - - throw new Error("CMap name must be specified."); - - case 5: - url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); - compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; - return _context.abrupt("return", this._fetchData(url, compressionType)["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? "binary " : "", "CMap at: ").concat(url)); - })); - - case 8: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function fetch(_x) { - return _fetch.apply(this, arguments); - } - - return fetch; - }() - }, { - key: "_fetchData", - value: function _fetchData(url, compressionType) { - (0, _util.unreachable)("Abstract method `_fetchData` called."); +} +exports.RenderTask = RenderTask; +class InternalRenderTask { + constructor(_ref14) { + let { + callback, + params, + objs, + commonObjs, + annotationCanvasMap, + operatorList, + pageIndex, + canvasFactory, + useRequestAnimationFrame = false, + pdfBug = false, + pageColors = null + } = _ref14; + this.callback = callback; + this.params = params; + this.objs = objs; + this.commonObjs = commonObjs; + this.annotationCanvasMap = annotationCanvasMap; + this.operatorListIdx = null; + this.operatorList = operatorList; + this._pageIndex = pageIndex; + this.canvasFactory = canvasFactory; + this._pdfBug = pdfBug; + this.pageColors = pageColors; + this.running = false; + this.graphicsReadyCallback = null; + this.graphicsReady = false; + this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; + this.cancelled = false; + this.capability = (0, _util.createPromiseCapability)(); + this.task = new RenderTask(this); + this._cancelBound = this.cancel.bind(this); + this._continueBound = this._continue.bind(this); + this._scheduleNextBound = this._scheduleNext.bind(this); + this._nextBound = this._next.bind(this); + this._canvas = params.canvasContext.canvas; + } + get completed() { + return this.capability.promise.catch(function () {}); + } + initializeGraphics(_ref15) { + var _globalThis$StepperMa, _this$graphicsReadyCa; + let { + transparency = false, + optionalContentConfig + } = _ref15; + if (this.cancelled) { + return; } - }]); - - return BaseCMapReaderFactory; -}(); - -exports.BaseCMapReaderFactory = BaseCMapReaderFactory; - -var BaseStandardFontDataFactory = /*#__PURE__*/function () { - function BaseStandardFontDataFactory(_ref3) { - var _ref3$baseUrl = _ref3.baseUrl, - baseUrl = _ref3$baseUrl === void 0 ? null : _ref3$baseUrl; - - _classCallCheck(this, BaseStandardFontDataFactory); - - if (this.constructor === BaseStandardFontDataFactory) { - (0, _util.unreachable)("Cannot initialize BaseStandardFontDataFactory."); + if (this._canvas) { + if (_classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).has(this._canvas)) { + throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); + } + _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).add(this._canvas); + } + if (this._pdfBug && (_globalThis$StepperMa = globalThis.StepperManager) !== null && _globalThis$StepperMa !== void 0 && _globalThis$StepperMa.enabled) { + this.stepper = globalThis.StepperManager.create(this._pageIndex); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + const { + canvasContext, + viewport, + transform, + background + } = this.params; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, optionalContentConfig, this.annotationCanvasMap, this.pageColors); + this.gfx.beginDrawing({ + transform, + viewport, + transparency, + background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + (_this$graphicsReadyCa = this.graphicsReadyCallback) === null || _this$graphicsReadyCa === void 0 ? void 0 : _this$graphicsReadyCa.call(this); + } + cancel() { + var _this$gfx; + let error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + this.running = false; + this.cancelled = true; + (_this$gfx = this.gfx) === null || _this$gfx === void 0 ? void 0 : _this$gfx.endDrawing(); + if (this._canvas) { + _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas); } - - this.baseUrl = baseUrl; + this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, "canvas")); } - - _createClass(BaseStandardFontDataFactory, [{ - key: "fetch", - value: function () { - var _fetch2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref4) { - var filename, url; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - filename = _ref4.filename; - - if (this.baseUrl) { - _context2.next = 3; - break; - } - - throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.'); - - case 3: - if (filename) { - _context2.next = 5; - break; - } - - throw new Error("Font filename must be specified."); - - case 5: - url = "".concat(this.baseUrl).concat(filename); - return _context2.abrupt("return", this._fetchData(url)["catch"](function (reason) { - throw new Error("Unable to load font data at: ".concat(url)); - })); - - case 7: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function fetch(_x2) { - return _fetch2.apply(this, arguments); + operatorListChanged() { + var _this$stepper; + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; } - - return fetch; - }() - }, { - key: "_fetchData", - value: function _fetchData(url) { - (0, _util.unreachable)("Abstract method `_fetchData` called."); + return; } - }]); - - return BaseStandardFontDataFactory; -}(); - -exports.BaseStandardFontDataFactory = BaseStandardFontDataFactory; - -var BaseSVGFactory = /*#__PURE__*/function () { - function BaseSVGFactory() { - _classCallCheck(this, BaseSVGFactory); - - if (this.constructor === BaseSVGFactory) { - (0, _util.unreachable)("Cannot initialize BaseSVGFactory."); + (_this$stepper = this.stepper) === null || _this$stepper === void 0 ? void 0 : _this$stepper.updateOperatorList(this.operatorList); + if (this.running) { + return; + } + this._continue(); + } + _continue() { + this.running = true; + if (this.cancelled) { + return; + } + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + } + _scheduleNext() { + if (this._useRequestAnimationFrame) { + window.requestAnimationFrame(() => { + this._nextBound().catch(this._cancelBound); + }); + } else { + Promise.resolve().then(this._nextBound).catch(this._cancelBound); } } - - _createClass(BaseSVGFactory, [{ - key: "create", - value: function create(width, height) { - if (width <= 0 || height <= 0) { - throw new Error("Invalid SVG dimensions"); - } - - var svg = this._createSVG("svg:svg"); - - svg.setAttribute("version", "1.1"); - svg.setAttribute("width", "".concat(width, "px")); - svg.setAttribute("height", "".concat(height, "px")); - svg.setAttribute("preserveAspectRatio", "none"); - svg.setAttribute("viewBox", "0 0 ".concat(width, " ").concat(height)); - return svg; + async _next() { + if (this.cancelled) { + return; } - }, { - key: "createElement", - value: function createElement(type) { - if (typeof type !== "string") { - throw new Error("Invalid SVG element type"); + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + if (this.operatorListIdx === this.operatorList.argsArray.length) { + this.running = false; + if (this.operatorList.lastChunk) { + this.gfx.endDrawing(); + if (this._canvas) { + _classStaticPrivateFieldSpecGet(InternalRenderTask, InternalRenderTask, _canvasInUse).delete(this._canvas); + } + this.callback(); } - - return this._createSVG(type); } - }, { - key: "_createSVG", - value: function _createSVG(type) { - (0, _util.unreachable)("Abstract method `_createSVG` called."); - } - }]); - - return BaseSVGFactory; -}(); - -exports.BaseSVGFactory = BaseSVGFactory; + } +} +var _canvasInUse = { + writable: true, + value: new WeakSet() +}; +const version = '3.0.279'; +exports.version = version; +const build = 'd0823066c'; +exports.build = build; /***/ }), -/* 160 */ +/* 134 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FontLoader = exports.FontFaceObject = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - +exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0; var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var BaseFontLoader = /*#__PURE__*/function () { - function BaseFontLoader(_ref) { - var docId = _ref.docId, - onUnsupportedFeature = _ref.onUnsupportedFeature, - _ref$ownerDocument = _ref.ownerDocument, - ownerDocument = _ref$ownerDocument === void 0 ? globalThis.document : _ref$ownerDocument, - _ref$styleElement = _ref.styleElement, - styleElement = _ref$styleElement === void 0 ? null : _ref$styleElement; - - _classCallCheck(this, BaseFontLoader); - - if (this.constructor === BaseFontLoader) { - (0, _util.unreachable)("Cannot initialize BaseFontLoader."); - } - - this.docId = docId; - this._onUnsupportedFeature = onUnsupportedFeature; - this._document = ownerDocument; - this.nativeFontFaces = []; - this.styleElement = null; +var _editor = __w_pdfjs_require__(135); +var _murmurhash = __w_pdfjs_require__(139); +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +var _setModified = /*#__PURE__*/new WeakSet(); +class AnnotationStorage { + constructor() { + _classPrivateMethodInitSpec(this, _setModified); + this._storage = new Map(); + this._modified = false; + this.onSetModified = null; + this.onResetModified = null; + this.onAnnotationEditor = null; } - - _createClass(BaseFontLoader, [{ - key: "addNativeFontFace", - value: function addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.push(nativeFontFace); - - this._document.fonts.add(nativeFontFace); + getValue(key, defaultValue) { + const value = this._storage.get(key); + if (value === undefined) { + return defaultValue; } - }, { - key: "insertRule", - value: function insertRule(rule) { - var styleElement = this.styleElement; - - if (!styleElement) { - styleElement = this.styleElement = this._document.createElement("style"); - styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); - - this._document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement); - } - - var styleSheet = styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); + return Object.assign(defaultValue, value); + } + getRawValue(key) { + return this._storage.get(key); + } + remove(key) { + this._storage.delete(key); + if (this._storage.size === 0) { + this.resetModified(); } - }, { - key: "clear", - value: function clear() { - var _iterator = _createForOfIteratorHelper(this.nativeFontFaces), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var nativeFontFace = _step.value; - - this._document.fonts["delete"](nativeFontFace); + if (typeof this.onAnnotationEditor === "function") { + for (const value of this._storage.values()) { + if (value instanceof _editor.AnnotationEditor) { + return; } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - this.nativeFontFaces.length = 0; - - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null; } + this.onAnnotationEditor(null); } - }, { - key: "bind", - value: function () { - var _bind = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(font) { - var _this = this; - - var nativeFontFace, rule; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(font.attached || font.missingFile)) { - _context.next = 2; - break; - } - - return _context.abrupt("return"); - - case 2: - font.attached = true; - - if (!this.isFontLoadingAPISupported) { - _context.next = 19; - break; - } - - nativeFontFace = font.createNativeFontFace(); - - if (!nativeFontFace) { - _context.next = 18; - break; - } - - this.addNativeFontFace(nativeFontFace); - _context.prev = 7; - _context.next = 10; - return nativeFontFace.loaded; - - case 10: - _context.next = 18; - break; - - case 12: - _context.prev = 12; - _context.t0 = _context["catch"](7); - - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative - }); - - (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); - font.disableFontFace = true; - throw _context.t0; - - case 18: - return _context.abrupt("return"); - - case 19: - rule = font.createFontFaceRule(); - - if (!rule) { - _context.next = 26; - break; - } - - this.insertRule(rule); - - if (!this.isSyncFontLoadingSupported) { - _context.next = 24; - break; - } - - return _context.abrupt("return"); - - case 24: - _context.next = 26; - return new Promise(function (resolve) { - var request = _this._queueLoadingCallback(resolve); - - _this._prepareFontLoadEvent([rule], [font], request); - }); - - case 26: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[7, 12]]); - })); - - function bind(_x) { - return _bind.apply(this, arguments); + } + setValue(key, value) { + const obj = this._storage.get(key); + let modified = false; + if (obj !== undefined) { + for (const [entry, val] of Object.entries(value)) { + if (obj[entry] !== val) { + modified = true; + obj[entry] = val; + } } - - return bind; - }() - }, { - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - (0, _util.unreachable)("Abstract method `_queueLoadingCallback`."); - } - }, { - key: "isFontLoadingAPISupported", - get: function get() { - var _this$_document; - - var hasFonts = !!((_this$_document = this._document) !== null && _this$_document !== void 0 && _this$_document.fonts); - return (0, _util.shadow)(this, "isFontLoadingAPISupported", hasFonts); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`."); - } - }, { - key: "_loadTestFont", - get: function get() { - (0, _util.unreachable)("Abstract method `_loadTestFont`."); - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { - (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`."); + } else { + modified = true; + this._storage.set(key, value); } - }]); - - return BaseFontLoader; -}(); - -var FontLoader; -exports.FontLoader = FontLoader; -{ - exports.FontLoader = FontLoader = /*#__PURE__*/function (_BaseFontLoader) { - _inherits(GenericFontLoader, _BaseFontLoader); - - var _super = _createSuper(GenericFontLoader); - - function GenericFontLoader(params) { - var _this2; - - _classCallCheck(this, GenericFontLoader); - - _this2 = _super.call(this, params); - _this2.loadingContext = { - requests: [], - nextRequestId: 0 - }; - _this2.loadTestFontId = 0; - return _this2; + if (modified) { + _classPrivateMethodGet(this, _setModified, _setModified2).call(this); } - - _createClass(GenericFontLoader, [{ - key: "isSyncFontLoadingSupported", - get: function get() { - var supported = false; - - if (typeof navigator === "undefined") { - supported = true; - } else { - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - - if ((m === null || m === void 0 ? void 0 : m[1]) >= 14) { - supported = true; - } - } - - return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); - } - }, { - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - function completeRequest() { - (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); - request.done = true; - - while (context.requests.length > 0 && context.requests[0].done) { - var otherRequest = context.requests.shift(); - setTimeout(otherRequest.callback, 0); - } - } - - var context = this.loadingContext; - var request = { - id: "pdfjs-font-loading-".concat(context.nextRequestId++), - done: false, - complete: completeRequest, - callback: callback - }; - context.requests.push(request); - return request; - } - }, { - key: "_loadTestFont", - get: function get() { - var getLoadTestFont = function getLoadTestFont() { - return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="); - }; - - return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont()); - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fonts, request) { - function int32(data, offset) { - return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; - } - - function spliceString(s, offset, remove, insert) { - var chunk1 = s.substring(0, offset); - var chunk2 = s.substring(offset + remove); - return chunk1 + insert + chunk2; - } - - var i, ii; - - var canvas = this._document.createElement("canvas"); - - canvas.width = 1; - canvas.height = 1; - var ctx = canvas.getContext("2d"); - var called = 0; - - function isFontReady(name, callback) { - called++; - - if (called > 30) { - (0, _util.warn)("Load test font never loaded."); - callback(); - return; - } - - ctx.font = "30px " + name; - ctx.fillText(".", 0, 20); - var imageData = ctx.getImageData(0, 0, 1, 1); - - if (imageData.data[3] > 0) { - callback(); - return; - } - - setTimeout(isFontReady.bind(null, name, callback)); - } - - var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++); - var data = this._loadTestFont; - var COMMENT_OFFSET = 976; - data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); - var CFF_CHECKSUM_OFFSET = 16; - var XXXX_VALUE = 0x58585858; - var checksum = int32(data, CFF_CHECKSUM_OFFSET); - - for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; - } - - if (i < loadTestFontId.length) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; - } - - data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); - var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}"); - this.insertRule(rule); - var names = []; - - var _iterator2 = _createForOfIteratorHelper(fonts), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var font = _step2.value; - names.push(font.loadedName); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - names.push(loadTestFontId); - - var div = this._document.createElement("div"); - - div.style.visibility = "hidden"; - div.style.width = div.style.height = "10px"; - div.style.position = "absolute"; - div.style.top = div.style.left = "0px"; - - for (var _i = 0, _names = names; _i < _names.length; _i++) { - var name = _names[_i]; - - var span = this._document.createElement("span"); - - span.textContent = "Hi"; - span.style.fontFamily = name; - div.appendChild(span); - } - - this._document.body.appendChild(div); - - isFontReady(loadTestFontId, function () { - div.remove(); - request.complete(); - }); - } - }]); - - return GenericFontLoader; - }(BaseFontLoader); -} - -var FontFaceObject = /*#__PURE__*/function () { - function FontFaceObject(translatedData, _ref2) { - var _ref2$isEvalSupported = _ref2.isEvalSupported, - isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, - _ref2$disableFontFace = _ref2.disableFontFace, - disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, - _ref2$ignoreErrors = _ref2.ignoreErrors, - ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, - onUnsupportedFeature = _ref2.onUnsupportedFeature, - _ref2$fontRegistry = _ref2.fontRegistry, - fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; - - _classCallCheck(this, FontFaceObject); - - this.compiledGlyphs = Object.create(null); - - for (var i in translatedData) { - this[i] = translatedData[i]; + if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === "function") { + this.onAnnotationEditor(value.constructor._type); } - - this.isEvalSupported = isEvalSupported !== false; - this.disableFontFace = disableFontFace === true; - this.ignoreErrors = ignoreErrors === true; - this._onUnsupportedFeature = onUnsupportedFeature; - this.fontRegistry = fontRegistry; } - - _createClass(FontFaceObject, [{ - key: "createNativeFontFace", - value: function createNativeFontFace() { - if (!this.data || this.disableFontFace) { - return null; - } - - var nativeFontFace; - - if (!this.cssFontInfo) { - nativeFontFace = new FontFace(this.loadedName, this.data, {}); - } else { - var css = { - weight: this.cssFontInfo.fontWeight - }; - - if (this.cssFontInfo.italicAngle) { - css.style = "oblique ".concat(this.cssFontInfo.italicAngle, "deg"); - } - - nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); - } - - if (this.fontRegistry) { - this.fontRegistry.registerFont(this); + has(key) { + return this._storage.has(key); + } + getAll() { + return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null; + } + get size() { + return this._storage.size; + } + resetModified() { + if (this._modified) { + this._modified = false; + if (typeof this.onResetModified === "function") { + this.onResetModified(); } - - return nativeFontFace; } - }, { - key: "createFontFaceRule", - value: function createFontFaceRule() { - if (!this.data || this.disableFontFace) { - return null; - } - - var data = (0, _util.bytesToString)(this.data); - var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); - var rule; - - if (!this.cssFontInfo) { - rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); - } else { - var css = "font-weight: ".concat(this.cssFontInfo.fontWeight, ";"); - - if (this.cssFontInfo.italicAngle) { - css += "font-style: oblique ".concat(this.cssFontInfo.italicAngle, "deg;"); - } - - rule = "@font-face {font-family:\"".concat(this.cssFontInfo.fontFamily, "\";").concat(css, "src:").concat(url, "}"); - } - - if (this.fontRegistry) { - this.fontRegistry.registerFont(this, url); - } - - return rule; + } + get print() { + return new PrintAnnotationStorage(this); + } + get serializable() { + if (this._storage.size === 0) { + return null; } - }, { - key: "getPathGenerator", - value: function getPathGenerator(objs, character) { - if (this.compiledGlyphs[character] !== undefined) { - return this.compiledGlyphs[character]; - } - - var cmds; - - try { - cmds = objs.get(this.loadedName + "_path_" + character); - } catch (ex) { - if (!this.ignoreErrors) { - throw ex; - } - - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath - }); - - (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); - return this.compiledGlyphs[character] = function (c, size) {}; - } - - if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) { - var jsBuf = []; - - var _iterator3 = _createForOfIteratorHelper(cmds), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var current = _step3.value; - var args = current.args !== undefined ? current.args.join(",") : ""; - jsBuf.push("c.", current.cmd, "(", args, ");\n"); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - return this.compiledGlyphs[character] = new Function("c", "size", jsBuf.join("")); + const clone = new Map(); + for (const [key, val] of this._storage) { + const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val; + if (serialized) { + clone.set(key, serialized); } - - return this.compiledGlyphs[character] = function (c, size) { - var _iterator4 = _createForOfIteratorHelper(cmds), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var _current = _step4.value; - - if (_current.cmd === "scale") { - _current.args = [size, -size]; - } - - c[_current.cmd].apply(c, _current.args); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - }; } - }]); - - return FontFaceObject; -}(); - -exports.FontFaceObject = FontFaceObject; + return clone; + } + static getHash(map) { + if (!map) { + return ""; + } + const hash = new _murmurhash.MurmurHash3_64(); + for (const [key, val] of map) { + hash.update(`${key}:${JSON.stringify(val)}`); + } + return hash.hexdigest(); + } +} +exports.AnnotationStorage = AnnotationStorage; +function _setModified2() { + if (!this._modified) { + this._modified = true; + if (typeof this.onSetModified === "function") { + this.onSetModified(); + } + } +} +var _serializable = /*#__PURE__*/new WeakMap(); +class PrintAnnotationStorage extends AnnotationStorage { + constructor(parent) { + super(); + _classPrivateFieldInitSpec(this, _serializable, { + writable: true, + value: null + }); + _classPrivateFieldSet(this, _serializable, structuredClone(parent.serializable)); + } + get print() { + (0, _util.unreachable)("Should not call PrintAnnotationStorage.print"); + } + get serializable() { + return _classPrivateFieldGet(this, _serializable); + } +} +exports.PrintAnnotationStorage = PrintAnnotationStorage; /***/ }), -/* 161 */ +/* 135 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -10833,3712 +6469,4414 @@ exports.FontFaceObject = FontFaceObject; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AnnotationStorage = void 0; - -var _murmurhash = __w_pdfjs_require__(162); - +exports.AnnotationEditor = void 0; +var _tools = __w_pdfjs_require__(136); var _util = __w_pdfjs_require__(1); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +var _boundFocusin = /*#__PURE__*/new WeakMap(); +var _boundFocusout = /*#__PURE__*/new WeakMap(); +var _hasBeenSelected = /*#__PURE__*/new WeakMap(); +var _isEditing = /*#__PURE__*/new WeakMap(); +var _isInEditMode = /*#__PURE__*/new WeakMap(); +var _zIndex = /*#__PURE__*/new WeakMap(); +class AnnotationEditor { + constructor(parameters) { + _classPrivateFieldInitSpec(this, _boundFocusin, { + writable: true, + value: this.focusin.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundFocusout, { + writable: true, + value: this.focusout.bind(this) + }); + _classPrivateFieldInitSpec(this, _hasBeenSelected, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isEditing, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isInEditMode, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _zIndex, { + writable: true, + value: AnnotationEditor._zIndex++ + }); + if (this.constructor === AnnotationEditor) { + (0, _util.unreachable)("Cannot initialize AnnotationEditor."); + } + this.parent = parameters.parent; + this.id = parameters.id; + this.width = this.height = null; + this.pageIndex = parameters.parent.pageIndex; + this.name = parameters.name; + this.div = null; + const [width, height] = this.parent.viewportBaseDimensions; + this.x = parameters.x / width; + this.y = parameters.y / height; + this.rotation = this.parent.viewport.rotation; + this.isAttachedToDOM = false; + } + static get _defaultLineColor() { + return (0, _util.shadow)(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText")); + } + setInBackground() { + this.div.style.zIndex = 0; + } + setInForeground() { + this.div.style.zIndex = _classPrivateFieldGet(this, _zIndex); + } + focusin(event) { + if (!_classPrivateFieldGet(this, _hasBeenSelected)) { + this.parent.setSelected(this); + } else { + _classPrivateFieldSet(this, _hasBeenSelected, false); + } + } + focusout(event) { + if (!this.isAttachedToDOM) { + return; + } + const target = event.relatedTarget; + if (target !== null && target !== void 0 && target.closest(`#${this.id}`)) { + return; + } + event.preventDefault(); + if (!this.parent.isMultipleSelection) { + this.commitOrRemove(); + } + } + commitOrRemove() { + if (this.isEmpty()) { + this.remove(); + } else { + this.commit(); + } + } + commit() { + this.parent.addToAnnotationStorage(this); + } + dragstart(event) { + const rect = this.parent.div.getBoundingClientRect(); + this.startX = event.clientX - rect.x; + this.startY = event.clientY - rect.y; + event.dataTransfer.setData("text/plain", this.id); + event.dataTransfer.effectAllowed = "move"; + } + setAt(x, y, tx, ty) { + const [width, height] = this.parent.viewportBaseDimensions; + [tx, ty] = this.screenToPageTranslation(tx, ty); + this.x = (x + tx) / width; + this.y = (y + ty) / height; + this.div.style.left = `${100 * this.x}%`; + this.div.style.top = `${100 * this.y}%`; + } + translate(x, y) { + const [width, height] = this.parent.viewportBaseDimensions; + [x, y] = this.screenToPageTranslation(x, y); + this.x += x / width; + this.y += y / height; + this.div.style.left = `${100 * this.x}%`; + this.div.style.top = `${100 * this.y}%`; + } + screenToPageTranslation(x, y) { + const { + rotation + } = this.parent.viewport; + switch (rotation) { + case 90: + return [y, -x]; + case 180: + return [-x, -y]; + case 270: + return [-y, x]; + default: + return [x, y]; + } + } + setDims(width, height) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.div.style.width = `${100 * width / parentWidth}%`; + this.div.style.height = `${100 * height / parentHeight}%`; + } + fixDims() { + const { + style + } = this.div; + const { + height, + width + } = style; + const widthPercent = width.endsWith("%"); + const heightPercent = height.endsWith("%"); + if (widthPercent && heightPercent) { + return; + } + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + if (!widthPercent) { + style.width = `${100 * parseFloat(width) / parentWidth}%`; + } + if (!heightPercent) { + style.height = `${100 * parseFloat(height) / parentHeight}%`; + } + } + getInitialTranslation() { + return [0, 0]; + } + render() { + this.div = document.createElement("div"); + this.div.setAttribute("data-editor-rotation", (360 - this.rotation) % 360); + this.div.className = this.name; + this.div.setAttribute("id", this.id); + this.div.setAttribute("tabIndex", 0); + this.setInForeground(); + this.div.addEventListener("focusin", _classPrivateFieldGet(this, _boundFocusin)); + this.div.addEventListener("focusout", _classPrivateFieldGet(this, _boundFocusout)); + const [tx, ty] = this.getInitialTranslation(); + this.translate(tx, ty); + (0, _tools.bindEvents)(this, this.div, ["dragstart", "pointerdown"]); + return this.div; + } + pointerdown(event) { + const isMac = _tools.KeyboardManager.platform.isMac; + if (event.button !== 0 || event.ctrlKey && isMac) { + event.preventDefault(); + return; + } + if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) { + this.parent.toggleSelected(this); + } else { + this.parent.setSelected(this); + } + _classPrivateFieldSet(this, _hasBeenSelected, true); + } + getRect(tx, ty) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + const [pageWidth, pageHeight] = this.parent.pageDimensions; + const shiftX = pageWidth * tx / parentWidth; + const shiftY = pageHeight * ty / parentHeight; + const x = this.x * pageWidth; + const y = this.y * pageHeight; + const width = this.width * pageWidth; + const height = this.height * pageHeight; + switch (this.rotation) { + case 0: + return [x + shiftX, pageHeight - y - shiftY - height, x + shiftX + width, pageHeight - y - shiftY]; + case 90: + return [x + shiftY, pageHeight - y + shiftX, x + shiftY + height, pageHeight - y + shiftX + width]; + case 180: + return [x - shiftX - width, pageHeight - y + shiftY, x - shiftX, pageHeight - y + shiftY + height]; + case 270: + return [x - shiftY - height, pageHeight - y - shiftX - width, x - shiftY, pageHeight - y - shiftX]; + default: + throw new Error("Invalid rotation"); + } + } + getRectInCurrentCoords(rect, pageHeight) { + const [x1, y1, x2, y2] = rect; + const width = x2 - x1; + const height = y2 - y1; + switch (this.rotation) { + case 0: + return [x1, pageHeight - y2, width, height]; + case 90: + return [x1, pageHeight - y1, height, width]; + case 180: + return [x2, pageHeight - y1, width, height]; + case 270: + return [x2, pageHeight - y2, height, width]; + default: + throw new Error("Invalid rotation"); + } + } + onceAdded() {} + isEmpty() { + return false; + } + enableEditMode() { + _classPrivateFieldSet(this, _isInEditMode, true); + } + disableEditMode() { + _classPrivateFieldSet(this, _isInEditMode, false); + } + isInEditMode() { + return _classPrivateFieldGet(this, _isInEditMode); + } + shouldGetKeyboardEvents() { + return false; + } + needsToBeRebuilt() { + return this.div && !this.isAttachedToDOM; + } + rebuild() { + var _this$div; + (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.addEventListener("focusin", _classPrivateFieldGet(this, _boundFocusin)); + } + serialize() { + (0, _util.unreachable)("An editor must be serializable"); + } + static deserialize(data, parent) { + const editor = new this.prototype.constructor({ + parent, + id: parent.getNextId() + }); + editor.rotation = data.rotation; + const [pageWidth, pageHeight] = parent.pageDimensions; + const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight); + editor.x = x / pageWidth; + editor.y = y / pageHeight; + editor.width = width / pageWidth; + editor.height = height / pageHeight; + return editor; + } + remove() { + this.div.removeEventListener("focusin", _classPrivateFieldGet(this, _boundFocusin)); + this.div.removeEventListener("focusout", _classPrivateFieldGet(this, _boundFocusout)); + if (!this.isEmpty()) { + this.commit(); + } + this.parent.remove(this); + } + select() { + var _this$div2; + (_this$div2 = this.div) === null || _this$div2 === void 0 ? void 0 : _this$div2.classList.add("selectedEditor"); + } + unselect() { + var _this$div3; + (_this$div3 = this.div) === null || _this$div3 === void 0 ? void 0 : _this$div3.classList.remove("selectedEditor"); + } + updateParams(type, value) {} + disableEditing() {} + enableEditing() {} + get propertiesToUpdate() { + return {}; + } + get contentDiv() { + return this.div; + } + get isEditing() { + return _classPrivateFieldGet(this, _isEditing); + } + set isEditing(value) { + _classPrivateFieldSet(this, _isEditing, value); + if (value) { + this.parent.setSelected(this); + this.parent.setActiveEditor(this); + } else { + this.parent.setActiveEditor(null); + } + } +} +exports.AnnotationEditor = AnnotationEditor; +_defineProperty(AnnotationEditor, "_colorManager", new _tools.ColorManager()); +_defineProperty(AnnotationEditor, "_zIndex", 1); -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +/***/ }), +/* 136 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +"use strict"; -var AnnotationStorage = /*#__PURE__*/function () { - function AnnotationStorage() { - _classCallCheck(this, AnnotationStorage); - this._storage = new Map(); - this._modified = false; - this.onSetModified = null; - this.onResetModified = null; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0; +exports.bindEvents = bindEvents; +exports.opacityToHex = opacityToHex; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function bindEvents(obj, element, names) { + for (const name of names) { + element.addEventListener(name, obj[name].bind(obj)); } - - _createClass(AnnotationStorage, [{ - key: "getValue", - value: function getValue(key, defaultValue) { - var value = this._storage.get(key); - - if (value === undefined) { - return defaultValue; +} +function opacityToHex(opacity) { + return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, "0"); +} +var _id = /*#__PURE__*/new WeakMap(); +class IdManager { + constructor() { + _classPrivateFieldInitSpec(this, _id, { + writable: true, + value: 0 + }); + } + getId() { + var _this$id, _this$id2; + return `${_util.AnnotationEditorPrefix}${(_classPrivateFieldSet(this, _id, (_this$id = _classPrivateFieldGet(this, _id), _this$id2 = _this$id++, _this$id)), _this$id2)}`; + } +} +var _commands = /*#__PURE__*/new WeakMap(); +var _locked = /*#__PURE__*/new WeakMap(); +var _maxSize = /*#__PURE__*/new WeakMap(); +var _position = /*#__PURE__*/new WeakMap(); +class CommandManager { + constructor() { + let maxSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 128; + _classPrivateFieldInitSpec(this, _commands, { + writable: true, + value: [] + }); + _classPrivateFieldInitSpec(this, _locked, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _maxSize, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _position, { + writable: true, + value: -1 + }); + _classPrivateFieldSet(this, _maxSize, maxSize); + } + add(_ref) { + let { + cmd, + undo, + mustExec, + type = NaN, + overwriteIfSameType = false, + keepUndo = false + } = _ref; + if (mustExec) { + cmd(); + } + if (_classPrivateFieldGet(this, _locked)) { + return; + } + const save = { + cmd, + undo, + type + }; + if (_classPrivateFieldGet(this, _position) === -1) { + if (_classPrivateFieldGet(this, _commands).length > 0) { + _classPrivateFieldGet(this, _commands).length = 0; } - - return Object.assign(defaultValue, value); + _classPrivateFieldSet(this, _position, 0); + _classPrivateFieldGet(this, _commands).push(save); + return; } - }, { - key: "getRawValue", - value: function getRawValue(key) { - return this._storage.get(key); + if (overwriteIfSameType && _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].type === type) { + if (keepUndo) { + save.undo = _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo; + } + _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)] = save; + return; } - }, { - key: "setValue", - value: function setValue(key, value) { - var obj = this._storage.get(key); - - var modified = false; - - if (obj !== undefined) { - for (var _i = 0, _Object$entries = Object.entries(value); _i < _Object$entries.length; _i++) { - var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), - entry = _Object$entries$_i[0], - val = _Object$entries$_i[1]; - - if (obj[entry] !== val) { - modified = true; - obj[entry] = val; - } + const next = _classPrivateFieldGet(this, _position) + 1; + if (next === _classPrivateFieldGet(this, _maxSize)) { + _classPrivateFieldGet(this, _commands).splice(0, 1); + } else { + _classPrivateFieldSet(this, _position, next); + if (next < _classPrivateFieldGet(this, _commands).length) { + _classPrivateFieldGet(this, _commands).splice(next); + } + } + _classPrivateFieldGet(this, _commands).push(save); + } + undo() { + if (_classPrivateFieldGet(this, _position) === -1) { + return; + } + _classPrivateFieldSet(this, _locked, true); + _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].undo(); + _classPrivateFieldSet(this, _locked, false); + _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) - 1); + } + redo() { + if (_classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1) { + _classPrivateFieldSet(this, _position, _classPrivateFieldGet(this, _position) + 1); + _classPrivateFieldSet(this, _locked, true); + _classPrivateFieldGet(this, _commands)[_classPrivateFieldGet(this, _position)].cmd(); + _classPrivateFieldSet(this, _locked, false); + } + } + hasSomethingToUndo() { + return _classPrivateFieldGet(this, _position) !== -1; + } + hasSomethingToRedo() { + return _classPrivateFieldGet(this, _position) < _classPrivateFieldGet(this, _commands).length - 1; + } + destroy() { + _classPrivateFieldSet(this, _commands, null); + } +} +exports.CommandManager = CommandManager; +var _serialize = /*#__PURE__*/new WeakSet(); +class KeyboardManager { + constructor(callbacks) { + _classPrivateMethodInitSpec(this, _serialize); + this.buffer = []; + this.callbacks = new Map(); + this.allKeys = new Set(); + const isMac = KeyboardManager.platform.isMac; + for (const [keys, callback] of callbacks) { + for (const key of keys) { + const isMacKey = key.startsWith("mac+"); + if (isMac && isMacKey) { + this.callbacks.set(key.slice(4), callback); + this.allKeys.add(key.split("+").at(-1)); + } else if (!isMac && !isMacKey) { + this.callbacks.set(key, callback); + this.allKeys.add(key.split("+").at(-1)); + } + } + } + } + static get platform() { + const platform = typeof navigator !== "undefined" ? navigator.platform : ""; + return (0, _util.shadow)(this, "platform", { + isWin: platform.includes("Win"), + isMac: platform.includes("Mac") + }); + } + exec(self, event) { + if (!this.allKeys.has(event.key)) { + return; + } + const callback = this.callbacks.get(_classPrivateMethodGet(this, _serialize, _serialize2).call(this, event)); + if (!callback) { + return; + } + callback.bind(self)(); + event.stopPropagation(); + event.preventDefault(); + } +} +exports.KeyboardManager = KeyboardManager; +function _serialize2(event) { + if (event.altKey) { + this.buffer.push("alt"); + } + if (event.ctrlKey) { + this.buffer.push("ctrl"); + } + if (event.metaKey) { + this.buffer.push("meta"); + } + if (event.shiftKey) { + this.buffer.push("shift"); + } + this.buffer.push(event.key); + const str = this.buffer.join("+"); + this.buffer.length = 0; + return str; +} +class ColorManager { + get _colors() { + const colors = new Map([["CanvasText", null], ["Canvas", null]]); + (0, _display_utils.getColorValues)(colors); + return (0, _util.shadow)(this, "_colors", colors); + } + convert(color) { + const rgb = (0, _display_utils.getRGB)(color); + if (!window.matchMedia("(forced-colors: active)").matches) { + return rgb; + } + for (const [name, RGB] of this._colors) { + if (RGB.every((x, i) => x === rgb[i])) { + return ColorManager._colorsMapping.get(name); + } + } + return rgb; + } + getHexCode(name) { + const rgb = this._colors.get(name); + if (!rgb) { + return name; + } + return _util.Util.makeHexColor(...rgb); + } +} +exports.ColorManager = ColorManager; +_defineProperty(ColorManager, "_colorsMapping", new Map([["CanvasText", [0, 0, 0]], ["Canvas", [255, 255, 255]]])); +var _activeEditor = /*#__PURE__*/new WeakMap(); +var _allEditors = /*#__PURE__*/new WeakMap(); +var _allLayers = /*#__PURE__*/new WeakMap(); +var _commandManager = /*#__PURE__*/new WeakMap(); +var _currentPageIndex = /*#__PURE__*/new WeakMap(); +var _editorTypes = /*#__PURE__*/new WeakMap(); +var _eventBus = /*#__PURE__*/new WeakMap(); +var _idManager = /*#__PURE__*/new WeakMap(); +var _isEnabled = /*#__PURE__*/new WeakMap(); +var _mode = /*#__PURE__*/new WeakMap(); +var _selectedEditors = /*#__PURE__*/new WeakMap(); +var _boundCopy = /*#__PURE__*/new WeakMap(); +var _boundCut = /*#__PURE__*/new WeakMap(); +var _boundPaste = /*#__PURE__*/new WeakMap(); +var _boundKeydown = /*#__PURE__*/new WeakMap(); +var _boundOnEditingAction = /*#__PURE__*/new WeakMap(); +var _boundOnPageChanging = /*#__PURE__*/new WeakMap(); +var _previousStates = /*#__PURE__*/new WeakMap(); +var _container = /*#__PURE__*/new WeakMap(); +var _addKeyboardManager = /*#__PURE__*/new WeakSet(); +var _removeKeyboardManager = /*#__PURE__*/new WeakSet(); +var _addCopyPasteListeners = /*#__PURE__*/new WeakSet(); +var _removeCopyPasteListeners = /*#__PURE__*/new WeakSet(); +var _dispatchUpdateStates = /*#__PURE__*/new WeakSet(); +var _dispatchUpdateUI = /*#__PURE__*/new WeakSet(); +var _enableAll = /*#__PURE__*/new WeakSet(); +var _disableAll = /*#__PURE__*/new WeakSet(); +var _addEditorToLayer = /*#__PURE__*/new WeakSet(); +var _isEmpty = /*#__PURE__*/new WeakSet(); +var _selectEditors = /*#__PURE__*/new WeakSet(); +class AnnotationEditorUIManager { + constructor(container, eventBus) { + _classPrivateMethodInitSpec(this, _selectEditors); + _classPrivateMethodInitSpec(this, _isEmpty); + _classPrivateMethodInitSpec(this, _addEditorToLayer); + _classPrivateMethodInitSpec(this, _disableAll); + _classPrivateMethodInitSpec(this, _enableAll); + _classPrivateMethodInitSpec(this, _dispatchUpdateUI); + _classPrivateMethodInitSpec(this, _dispatchUpdateStates); + _classPrivateMethodInitSpec(this, _removeCopyPasteListeners); + _classPrivateMethodInitSpec(this, _addCopyPasteListeners); + _classPrivateMethodInitSpec(this, _removeKeyboardManager); + _classPrivateMethodInitSpec(this, _addKeyboardManager); + _classPrivateFieldInitSpec(this, _activeEditor, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _allEditors, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _allLayers, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _commandManager, { + writable: true, + value: new CommandManager() + }); + _classPrivateFieldInitSpec(this, _currentPageIndex, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _editorTypes, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _eventBus, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _idManager, { + writable: true, + value: new IdManager() + }); + _classPrivateFieldInitSpec(this, _isEnabled, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _mode, { + writable: true, + value: _util.AnnotationEditorType.NONE + }); + _classPrivateFieldInitSpec(this, _selectedEditors, { + writable: true, + value: new Set() + }); + _classPrivateFieldInitSpec(this, _boundCopy, { + writable: true, + value: this.copy.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCut, { + writable: true, + value: this.cut.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundPaste, { + writable: true, + value: this.paste.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundKeydown, { + writable: true, + value: this.keydown.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundOnEditingAction, { + writable: true, + value: this.onEditingAction.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundOnPageChanging, { + writable: true, + value: this.onPageChanging.bind(this) + }); + _classPrivateFieldInitSpec(this, _previousStates, { + writable: true, + value: { + isEditing: false, + isEmpty: true, + hasSomethingToUndo: false, + hasSomethingToRedo: false, + hasSelectedEditor: false + } + }); + _classPrivateFieldInitSpec(this, _container, { + writable: true, + value: null + }); + _classPrivateFieldSet(this, _container, container); + _classPrivateFieldSet(this, _eventBus, eventBus); + _classPrivateFieldGet(this, _eventBus)._on("editingaction", _classPrivateFieldGet(this, _boundOnEditingAction)); + _classPrivateFieldGet(this, _eventBus)._on("pagechanging", _classPrivateFieldGet(this, _boundOnPageChanging)); + } + destroy() { + _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this); + _classPrivateFieldGet(this, _eventBus)._off("editingaction", _classPrivateFieldGet(this, _boundOnEditingAction)); + _classPrivateFieldGet(this, _eventBus)._off("pagechanging", _classPrivateFieldGet(this, _boundOnPageChanging)); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.destroy(); + } + _classPrivateFieldGet(this, _allLayers).clear(); + _classPrivateFieldGet(this, _allEditors).clear(); + _classPrivateFieldSet(this, _activeEditor, null); + _classPrivateFieldGet(this, _selectedEditors).clear(); + _classPrivateFieldGet(this, _commandManager).destroy(); + } + onPageChanging(_ref2) { + let { + pageNumber + } = _ref2; + _classPrivateFieldSet(this, _currentPageIndex, pageNumber - 1); + } + focusMainContainer() { + _classPrivateFieldGet(this, _container).focus(); + } + copy(event) { + event.preventDefault(); + if (_classPrivateFieldGet(this, _activeEditor)) { + _classPrivateFieldGet(this, _activeEditor).commitOrRemove(); + } + if (!this.hasSelection) { + return; + } + const editors = []; + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + if (!editor.isEmpty()) { + editors.push(editor.serialize()); + } + } + if (editors.length === 0) { + return; + } + event.clipboardData.setData("application/pdfjs", JSON.stringify(editors)); + } + cut(event) { + this.copy(event); + this.delete(); + } + paste(event) { + event.preventDefault(); + let data = event.clipboardData.getData("application/pdfjs"); + if (!data) { + return; + } + try { + data = JSON.parse(data); + } catch (ex) { + (0, _util.warn)(`paste: "${ex.message}".`); + return; + } + if (!Array.isArray(data)) { + return; + } + this.unselectAll(); + const layer = _classPrivateFieldGet(this, _allLayers).get(_classPrivateFieldGet(this, _currentPageIndex)); + try { + const newEditors = []; + for (const editor of data) { + const deserializedEditor = layer.deserialize(editor); + if (!deserializedEditor) { + return; } - } else { - modified = true; - - this._storage.set(key, value); - } - - if (modified) { - this._setModified(); + newEditors.push(deserializedEditor); } + const cmd = () => { + for (const editor of newEditors) { + _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor); + } + _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, newEditors); + }; + const undo = () => { + for (const editor of newEditors) { + editor.remove(); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } catch (ex) { + (0, _util.warn)(`paste: "${ex.message}".`); } - }, { - key: "getAll", - value: function getAll() { - return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null; + } + keydown(event) { + var _this$getActive; + if (!((_this$getActive = this.getActive()) !== null && _this$getActive !== void 0 && _this$getActive.shouldGetKeyboardEvents())) { + AnnotationEditorUIManager._keyboardManager.exec(this, event); } - }, { - key: "size", - get: function get() { - return this._storage.size; + } + onEditingAction(details) { + if (["undo", "redo", "delete", "selectAll"].includes(details.name)) { + this[details.name](); } - }, { - key: "_setModified", - value: function _setModified() { - if (!this._modified) { - this._modified = true; - - if (typeof this.onSetModified === "function") { - this.onSetModified(); - } - } + } + setEditingState(isEditing) { + if (isEditing) { + _classPrivateMethodGet(this, _addKeyboardManager, _addKeyboardManager2).call(this); + _classPrivateMethodGet(this, _addCopyPasteListeners, _addCopyPasteListeners2).call(this); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + isEditing: _classPrivateFieldGet(this, _mode) !== _util.AnnotationEditorType.NONE, + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this), + hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(), + hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(), + hasSelectedEditor: false + }); + } else { + _classPrivateMethodGet(this, _removeKeyboardManager, _removeKeyboardManager2).call(this); + _classPrivateMethodGet(this, _removeCopyPasteListeners, _removeCopyPasteListeners2).call(this); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + isEditing: false + }); } - }, { - key: "resetModified", - value: function resetModified() { - if (this._modified) { - this._modified = false; - - if (typeof this.onResetModified === "function") { - this.onResetModified(); - } - } + } + registerEditorTypes(types) { + if (_classPrivateFieldGet(this, _editorTypes)) { + return; } - }, { - key: "serializable", - get: function get() { - return this._storage.size > 0 ? this._storage : null; + _classPrivateFieldSet(this, _editorTypes, types); + for (const editorType of _classPrivateFieldGet(this, _editorTypes)) { + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editorType.defaultPropertiesToUpdate); } - }, { - key: "hash", - get: function get() { - var hash = new _murmurhash.MurmurHash3_64(); - - var _iterator = _createForOfIteratorHelper(this._storage), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _step$value = _slicedToArray(_step.value, 2), - key = _step$value[0], - value = _step$value[1]; - - hash.update("".concat(key, ":").concat(JSON.stringify(value))); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - return hash.hexdigest(); + } + getId() { + return _classPrivateFieldGet(this, _idManager).getId(); + } + addLayer(layer) { + _classPrivateFieldGet(this, _allLayers).set(layer.pageIndex, layer); + if (_classPrivateFieldGet(this, _isEnabled)) { + layer.enable(); + } else { + layer.disable(); } - }]); - - return AnnotationStorage; -}(); - -exports.AnnotationStorage = AnnotationStorage; - -/***/ }), -/* 162 */ -/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.MurmurHash3_64 = void 0; - -var _util = __w_pdfjs_require__(1); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var SEED = 0xc3d2e1f0; -var MASK_HIGH = 0xffff0000; -var MASK_LOW = 0xffff; - -var MurmurHash3_64 = /*#__PURE__*/function () { - function MurmurHash3_64(seed) { - _classCallCheck(this, MurmurHash3_64); - - this.h1 = seed ? seed & 0xffffffff : SEED; - this.h2 = seed ? seed & 0xffffffff : SEED; } - - _createClass(MurmurHash3_64, [{ - key: "update", - value: function update(input) { - var data, length; - - if (typeof input === "string") { - data = new Uint8Array(input.length * 2); - length = 0; - - for (var i = 0, ii = input.length; i < ii; i++) { - var code = input.charCodeAt(i); - - if (code <= 0xff) { - data[length++] = code; - } else { - data[length++] = code >>> 8; - data[length++] = code & 0xff; - } - } - } else if ((0, _util.isArrayBuffer)(input)) { - data = input.slice(); - length = data.byteLength; - } else { - throw new Error("Wrong data format in MurmurHash3_64_update. " + "Input must be a string or array."); - } - - var blockCounts = length >> 2; - var tailLength = length - blockCounts * 4; - var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); - var k1 = 0, - k2 = 0; - var h1 = this.h1, - h2 = this.h2; - var C1 = 0xcc9e2d51, - C2 = 0x1b873593; - var C1_LOW = C1 & MASK_LOW, - C2_LOW = C2 & MASK_LOW; - - for (var _i = 0; _i < blockCounts; _i++) { - if (_i & 1) { - k1 = dataUint32[_i]; - k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; - k1 = k1 << 15 | k1 >>> 17; - k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; - h1 ^= k1; - h1 = h1 << 13 | h1 >>> 19; - h1 = h1 * 5 + 0xe6546b64; - } else { - k2 = dataUint32[_i]; - k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; - k2 = k2 << 15 | k2 >>> 17; - k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; - h2 ^= k2; - h2 = h2 << 13 | h2 >>> 19; - h2 = h2 * 5 + 0xe6546b64; - } - } - - k1 = 0; - - switch (tailLength) { - case 3: - k1 ^= data[blockCounts * 4 + 2] << 16; - - case 2: - k1 ^= data[blockCounts * 4 + 1] << 8; - - case 1: - k1 ^= data[blockCounts * 4]; - k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; - k1 = k1 << 15 | k1 >>> 17; - k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; - - if (blockCounts & 1) { - h1 ^= k1; - } else { - h2 ^= k1; - } - + removeLayer(layer) { + _classPrivateFieldGet(this, _allLayers).delete(layer.pageIndex); + } + updateMode(mode) { + _classPrivateFieldSet(this, _mode, mode); + if (mode === _util.AnnotationEditorType.NONE) { + this.setEditingState(false); + _classPrivateMethodGet(this, _disableAll, _disableAll2).call(this); + } else { + this.setEditingState(true); + _classPrivateMethodGet(this, _enableAll, _enableAll2).call(this); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.updateMode(mode); } - - this.h1 = h1; - this.h2 = h2; } - }, { - key: "hexdigest", - value: function hexdigest() { - var h1 = this.h1, - h2 = this.h2; - h1 ^= h2 >>> 1; - h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; - h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; - h1 ^= h2 >>> 1; - h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; - h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; - h1 ^= h2 >>> 1; - var hex1 = (h1 >>> 0).toString(16), - hex2 = (h2 >>> 0).toString(16); - return hex1.padStart(8, "0") + hex2.padStart(8, "0"); + } + updateToolbar(mode) { + if (mode === _classPrivateFieldGet(this, _mode)) { + return; } - }]); - - return MurmurHash3_64; -}(); - -exports.MurmurHash3_64 = MurmurHash3_64; - -/***/ }), -/* 163 */ -/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports.CanvasGraphics = void 0; - -var _util = __w_pdfjs_require__(1); - -var _pattern_helper = __w_pdfjs_require__(164); - -var _image_utils = __w_pdfjs_require__(165); - -var _is_node = __w_pdfjs_require__(3); - -var _display_utils = __w_pdfjs_require__(158); - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -var MIN_FONT_SIZE = 16; -var MAX_FONT_SIZE = 100; -var MAX_GROUP_SIZE = 4096; -var EXECUTION_TIME = 15; -var EXECUTION_STEPS = 10; -var COMPILE_TYPE3_GLYPHS = true; -var MAX_SIZE_TO_COMPILE = 1000; -var FULL_CHUNK_HEIGHT = 16; -var LINEWIDTH_SCALE_FACTOR = 1.000001; - -function mirrorContextOperations(ctx, destCtx) { - if (ctx._removeMirroring) { - throw new Error("Context is already forwarding operations."); + _classPrivateFieldGet(this, _eventBus).dispatch("switchannotationeditormode", { + source: this, + mode + }); } - - ctx.__originalSave = ctx.save; - ctx.__originalRestore = ctx.restore; - ctx.__originalRotate = ctx.rotate; - ctx.__originalScale = ctx.scale; - ctx.__originalTranslate = ctx.translate; - ctx.__originalTransform = ctx.transform; - ctx.__originalSetTransform = ctx.setTransform; - ctx.__originalResetTransform = ctx.resetTransform; - ctx.__originalClip = ctx.clip; - ctx.__originalMoveTo = ctx.moveTo; - ctx.__originalLineTo = ctx.lineTo; - ctx.__originalBezierCurveTo = ctx.bezierCurveTo; - ctx.__originalRect = ctx.rect; - ctx.__originalClosePath = ctx.closePath; - ctx.__originalBeginPath = ctx.beginPath; - - ctx._removeMirroring = function () { - ctx.save = ctx.__originalSave; - ctx.restore = ctx.__originalRestore; - ctx.rotate = ctx.__originalRotate; - ctx.scale = ctx.__originalScale; - ctx.translate = ctx.__originalTranslate; - ctx.transform = ctx.__originalTransform; - ctx.setTransform = ctx.__originalSetTransform; - ctx.resetTransform = ctx.__originalResetTransform; - ctx.clip = ctx.__originalClip; - ctx.moveTo = ctx.__originalMoveTo; - ctx.lineTo = ctx.__originalLineTo; - ctx.bezierCurveTo = ctx.__originalBezierCurveTo; - ctx.rect = ctx.__originalRect; - ctx.closePath = ctx.__originalClosePath; - ctx.beginPath = ctx.__originalBeginPath; - delete ctx._removeMirroring; - }; - - ctx.save = function ctxSave() { - destCtx.save(); - - this.__originalSave(); - }; - - ctx.restore = function ctxRestore() { - destCtx.restore(); - - this.__originalRestore(); - }; - - ctx.translate = function ctxTranslate(x, y) { - destCtx.translate(x, y); - - this.__originalTranslate(x, y); - }; - - ctx.scale = function ctxScale(x, y) { - destCtx.scale(x, y); - - this.__originalScale(x, y); - }; - - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - destCtx.transform(a, b, c, d, e, f); - - this.__originalTransform(a, b, c, d, e, f); - }; - - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - destCtx.setTransform(a, b, c, d, e, f); - - this.__originalSetTransform(a, b, c, d, e, f); - }; - - ctx.resetTransform = function ctxResetTransform() { - destCtx.resetTransform(); - - this.__originalResetTransform(); - }; - - ctx.rotate = function ctxRotate(angle) { - destCtx.rotate(angle); - - this.__originalRotate(angle); - }; - - ctx.clip = function ctxRotate(rule) { - destCtx.clip(rule); - - this.__originalClip(rule); - }; - - ctx.moveTo = function (x, y) { - destCtx.moveTo(x, y); - - this.__originalMoveTo(x, y); - }; - - ctx.lineTo = function (x, y) { - destCtx.lineTo(x, y); - - this.__originalLineTo(x, y); - }; - - ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) { - destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); - - this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); - }; - - ctx.rect = function (x, y, width, height) { - destCtx.rect(x, y, width, height); - - this.__originalRect(x, y, width, height); - }; - - ctx.closePath = function () { - destCtx.closePath(); - - this.__originalClosePath(); - }; - - ctx.beginPath = function () { - destCtx.beginPath(); - - this.__originalBeginPath(); - }; -} - -function addContextCurrentTransform(ctx) { - if (ctx._transformStack) { - ctx._transformStack = []; + updateParams(type, value) { + if (!_classPrivateFieldGet(this, _editorTypes)) { + return; + } + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + editor.updateParams(type, value); + } + for (const editorType of _classPrivateFieldGet(this, _editorTypes)) { + editorType.updateDefaultParams(type, value); + } } - - if (ctx.mozCurrentTransform) { - return; + getEditors(pageIndex) { + const editors = []; + for (const editor of _classPrivateFieldGet(this, _allEditors).values()) { + if (editor.pageIndex === pageIndex) { + editors.push(editor); + } + } + return editors; } - - ctx._originalSave = ctx.save; - ctx._originalRestore = ctx.restore; - ctx._originalRotate = ctx.rotate; - ctx._originalScale = ctx.scale; - ctx._originalTranslate = ctx.translate; - ctx._originalTransform = ctx.transform; - ctx._originalSetTransform = ctx.setTransform; - ctx._originalResetTransform = ctx.resetTransform; - ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; - ctx._transformStack = []; - - try { - var desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), "lineWidth"); - ctx._setLineWidth = desc.set; - ctx._getLineWidth = desc.get; - Object.defineProperty(ctx, "lineWidth", { - set: function setLineWidth(width) { - this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR); - }, - get: function getLineWidth() { - return this._getLineWidth(); + getEditor(id) { + return _classPrivateFieldGet(this, _allEditors).get(id); + } + addEditor(editor) { + _classPrivateFieldGet(this, _allEditors).set(editor.id, editor); + } + removeEditor(editor) { + _classPrivateFieldGet(this, _allEditors).delete(editor.id); + this.unselect(editor); + } + setActiveEditor(editor) { + if (_classPrivateFieldGet(this, _activeEditor) === editor) { + return; + } + _classPrivateFieldSet(this, _activeEditor, editor); + if (editor) { + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate); + } + } + toggleSelected(editor) { + if (_classPrivateFieldGet(this, _selectedEditors).has(editor)) { + _classPrivateFieldGet(this, _selectedEditors).delete(editor); + editor.unselect(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: this.hasSelection + }); + return; + } + _classPrivateFieldGet(this, _selectedEditors).add(editor); + editor.select(); + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: true + }); + } + setSelected(editor) { + for (const ed of _classPrivateFieldGet(this, _selectedEditors)) { + if (ed !== editor) { + ed.unselect(); } + } + _classPrivateFieldGet(this, _selectedEditors).clear(); + _classPrivateFieldGet(this, _selectedEditors).add(editor); + editor.select(); + _classPrivateMethodGet(this, _dispatchUpdateUI, _dispatchUpdateUI2).call(this, editor.propertiesToUpdate); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: true }); - } catch (_) {} - - Object.defineProperty(ctx, "mozCurrentTransform", { - get: function getCurrentTransform() { - return this._transformMatrix; + } + isSelected(editor) { + return _classPrivateFieldGet(this, _selectedEditors).has(editor); + } + unselect(editor) { + editor.unselect(); + _classPrivateFieldGet(this, _selectedEditors).delete(editor); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: this.hasSelection + }); + } + get hasSelection() { + return _classPrivateFieldGet(this, _selectedEditors).size !== 0; + } + undo() { + _classPrivateFieldGet(this, _commandManager).undo(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSomethingToUndo: _classPrivateFieldGet(this, _commandManager).hasSomethingToUndo(), + hasSomethingToRedo: true, + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this) + }); + } + redo() { + _classPrivateFieldGet(this, _commandManager).redo(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSomethingToUndo: true, + hasSomethingToRedo: _classPrivateFieldGet(this, _commandManager).hasSomethingToRedo(), + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this) + }); + } + addCommands(params) { + _classPrivateFieldGet(this, _commandManager).add(params); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSomethingToUndo: true, + hasSomethingToRedo: false, + isEmpty: _classPrivateMethodGet(this, _isEmpty, _isEmpty2).call(this) + }); + } + delete() { + this.commitOrRemove(); + if (!this.hasSelection) { + return; } - }); - Object.defineProperty(ctx, "mozCurrentTransformInverse", { - get: function getCurrentTransformInverse() { - var _this$_transformMatri = _slicedToArray(this._transformMatrix, 6), - a = _this$_transformMatri[0], - b = _this$_transformMatri[1], - c = _this$_transformMatri[2], - d = _this$_transformMatri[3], - e = _this$_transformMatri[4], - f = _this$_transformMatri[5]; - - var ad_bc = a * d - b * c; - var bc_ad = b * c - a * d; - return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc]; + const editors = [..._classPrivateFieldGet(this, _selectedEditors)]; + const cmd = () => { + for (const editor of editors) { + editor.remove(); + } + }; + const undo = () => { + for (const editor of editors) { + _classPrivateMethodGet(this, _addEditorToLayer, _addEditorToLayer2).call(this, editor); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } + commitOrRemove() { + var _classPrivateFieldGet2; + (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _activeEditor)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.commitOrRemove(); + } + selectAll() { + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + editor.commit(); + } + _classPrivateMethodGet(this, _selectEditors, _selectEditors2).call(this, _classPrivateFieldGet(this, _allEditors).values()); + } + unselectAll() { + if (_classPrivateFieldGet(this, _activeEditor)) { + _classPrivateFieldGet(this, _activeEditor).commitOrRemove(); + return; } + if (_classPrivateFieldGet(this, _selectedEditors).size === 0) { + return; + } + for (const editor of _classPrivateFieldGet(this, _selectedEditors)) { + editor.unselect(); + } + _classPrivateFieldGet(this, _selectedEditors).clear(); + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: false + }); + } + isActive(editor) { + return _classPrivateFieldGet(this, _activeEditor) === editor; + } + getActive() { + return _classPrivateFieldGet(this, _activeEditor); + } + getMode() { + return _classPrivateFieldGet(this, _mode); + } +} +exports.AnnotationEditorUIManager = AnnotationEditorUIManager; +function _addKeyboardManager2() { + _classPrivateFieldGet(this, _container).addEventListener("keydown", _classPrivateFieldGet(this, _boundKeydown)); +} +function _removeKeyboardManager2() { + _classPrivateFieldGet(this, _container).removeEventListener("keydown", _classPrivateFieldGet(this, _boundKeydown)); +} +function _addCopyPasteListeners2() { + document.addEventListener("copy", _classPrivateFieldGet(this, _boundCopy)); + document.addEventListener("cut", _classPrivateFieldGet(this, _boundCut)); + document.addEventListener("paste", _classPrivateFieldGet(this, _boundPaste)); +} +function _removeCopyPasteListeners2() { + document.removeEventListener("copy", _classPrivateFieldGet(this, _boundCopy)); + document.removeEventListener("cut", _classPrivateFieldGet(this, _boundCut)); + document.removeEventListener("paste", _classPrivateFieldGet(this, _boundPaste)); +} +function _dispatchUpdateStates2(details) { + const hasChanged = Object.entries(details).some(_ref3 => { + let [key, value] = _ref3; + return _classPrivateFieldGet(this, _previousStates)[key] !== value; }); - - ctx.save = function ctxSave() { - var old = this._transformMatrix; - - this._transformStack.push(old); - - this._transformMatrix = old.slice(0, 6); - - this._originalSave(); - }; - - ctx.restore = function ctxRestore() { - if (this._transformStack.length === 0) { - (0, _util.warn)("Tried to restore a ctx when the stack was already empty."); + if (hasChanged) { + _classPrivateFieldGet(this, _eventBus).dispatch("annotationeditorstateschanged", { + source: this, + details: Object.assign(_classPrivateFieldGet(this, _previousStates), details) + }); + } +} +function _dispatchUpdateUI2(details) { + _classPrivateFieldGet(this, _eventBus).dispatch("annotationeditorparamschanged", { + source: this, + details + }); +} +function _enableAll2() { + if (!_classPrivateFieldGet(this, _isEnabled)) { + _classPrivateFieldSet(this, _isEnabled, true); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.enable(); } - - var prev = this._transformStack.pop(); - - if (prev) { - this._transformMatrix = prev; - - this._originalRestore(); + } +} +function _disableAll2() { + this.unselectAll(); + if (_classPrivateFieldGet(this, _isEnabled)) { + _classPrivateFieldSet(this, _isEnabled, false); + for (const layer of _classPrivateFieldGet(this, _allLayers).values()) { + layer.disable(); } - }; - - ctx.translate = function ctxTranslate(x, y) { - var m = this._transformMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - - this._originalTranslate(x, y); - }; - - ctx.scale = function ctxScale(x, y) { - var m = this._transformMatrix; - m[0] *= x; - m[1] *= x; - m[2] *= y; - m[3] *= y; - - this._originalScale(x, y); - }; - - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - var m = this._transformMatrix; - this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]]; - - ctx._originalTransform(a, b, c, d, e, f); - }; - - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - this._transformMatrix = [a, b, c, d, e, f]; - - ctx._originalSetTransform(a, b, c, d, e, f); - }; - - ctx.resetTransform = function ctxResetTransform() { - this._transformMatrix = [1, 0, 0, 1, 0, 0]; - - ctx._originalResetTransform(); - }; - - ctx.rotate = function ctxRotate(angle) { - var cosValue = Math.cos(angle); - var sinValue = Math.sin(angle); - var m = this._transformMatrix; - this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]]; - - this._originalRotate(angle); - }; + } +} +function _addEditorToLayer2(editor) { + const layer = _classPrivateFieldGet(this, _allLayers).get(editor.pageIndex); + if (layer) { + layer.addOrRebuild(editor); + } else { + this.addEditor(editor); + } +} +function _isEmpty2() { + if (_classPrivateFieldGet(this, _allEditors).size === 0) { + return true; + } + if (_classPrivateFieldGet(this, _allEditors).size === 1) { + for (const editor of _classPrivateFieldGet(this, _allEditors).values()) { + return editor.isEmpty(); + } + } + return false; +} +function _selectEditors2(editors) { + _classPrivateFieldGet(this, _selectedEditors).clear(); + for (const editor of editors) { + if (editor.isEmpty()) { + continue; + } + _classPrivateFieldGet(this, _selectedEditors).add(editor); + editor.select(); + } + _classPrivateMethodGet(this, _dispatchUpdateStates, _dispatchUpdateStates2).call(this, { + hasSelectedEditor: true + }); } +_defineProperty(AnnotationEditorUIManager, "_keyboardManager", new KeyboardManager([[["ctrl+a", "mac+meta+a"], AnnotationEditorUIManager.prototype.selectAll], [["ctrl+z", "mac+meta+z"], AnnotationEditorUIManager.prototype.undo], [["ctrl+y", "ctrl+shift+Z", "mac+meta+shift+Z"], AnnotationEditorUIManager.prototype.redo], [["Backspace", "alt+Backspace", "ctrl+Backspace", "shift+Backspace", "mac+Backspace", "mac+alt+Backspace", "mac+ctrl+Backspace", "Delete", "ctrl+Delete", "shift+Delete"], AnnotationEditorUIManager.prototype.delete], [["Escape", "mac+Escape"], AnnotationEditorUIManager.prototype.unselectAll]])); -var CachedCanvases = /*#__PURE__*/function () { - function CachedCanvases(canvasFactory) { - _classCallCheck(this, CachedCanvases); +/***/ }), +/* 137 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - this.canvasFactory = canvasFactory; - this.cache = Object.create(null); - } +"use strict"; - _createClass(CachedCanvases, [{ - key: "getCanvas", - value: function getCanvas(id, width, height, trackTransform) { - var canvasEntry; - if (this.cache[id] !== undefined) { - canvasEntry = this.cache[id]; - this.canvasFactory.reset(canvasEntry, width, height); - canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); - } else { - canvasEntry = this.canvasFactory.create(width, height); - this.cache[id] = canvasEntry; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = exports.AnnotationPrefix = void 0; +exports.deprecated = deprecated; +exports.getColorValues = getColorValues; +exports.getCurrentTransform = getCurrentTransform; +exports.getCurrentTransformInverse = getCurrentTransformInverse; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl; +exports.getRGB = getRGB; +exports.getXfaPageViewport = getXfaPageViewport; +exports.isDataScheme = isDataScheme; +exports.isPdfFile = isPdfFile; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +var _base_factory = __w_pdfjs_require__(138); +var _util = __w_pdfjs_require__(1); +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +const SVG_NS = "http://www.w3.org/2000/svg"; +const AnnotationPrefix = "pdfjs_internal_id_"; +exports.AnnotationPrefix = AnnotationPrefix; +class PixelsPerInch {} +exports.PixelsPerInch = PixelsPerInch; +_defineProperty(PixelsPerInch, "CSS", 96.0); +_defineProperty(PixelsPerInch, "PDF", 72.0); +_defineProperty(PixelsPerInch, "PDF_TO_CSS_UNITS", PixelsPerInch.CSS / PixelsPerInch.PDF); +class DOMCanvasFactory extends _base_factory.BaseCanvasFactory { + constructor() { + let { + ownerDocument = globalThis.document + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + super(); + this._document = ownerDocument; + } + _createCanvas(width, height) { + const canvas = this._document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + return canvas; + } +} +exports.DOMCanvasFactory = DOMCanvasFactory; +async function fetchData(url) { + let asTypedArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + if (isValidFetchUrl(url, document.baseURI)) { + const response = await fetch(url); + if (!response.ok) { + throw new Error(response.statusText); + } + return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text()); + } + return new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open("GET", url, true); + if (asTypedArray) { + request.responseType = "arraybuffer"; + } + request.onreadystatechange = () => { + if (request.readyState !== XMLHttpRequest.DONE) { + return; } - - if (trackTransform) { - addContextCurrentTransform(canvasEntry.context); + if (request.status === 200 || request.status === 0) { + let data; + if (asTypedArray && request.response) { + data = new Uint8Array(request.response); + } else if (!asTypedArray && request.responseText) { + data = (0, _util.stringToBytes)(request.responseText); + } + if (data) { + resolve(data); + return; + } } - - return canvasEntry; + reject(new Error(request.statusText)); + }; + request.send(null); + }); +} +class DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url, this.isCompressed).then(data => { + return { + cMapData: data, + compressionType + }; + }); + } +} +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; +class DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url, true); + } +} +exports.DOMStandardFontDataFactory = DOMStandardFontDataFactory; +class DOMSVGFactory extends _base_factory.BaseSVGFactory { + _createSVG(type) { + return document.createElementNS(SVG_NS, type); + } +} +exports.DOMSVGFactory = DOMSVGFactory; +class PageViewport { + constructor(_ref) { + let { + viewBox, + scale, + rotation, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = _ref; + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + const centerX = (viewBox[2] + viewBox[0]) / 2; + const centerY = (viewBox[3] + viewBox[1]) / 2; + let rotateA, rotateB, rotateC, rotateD; + rotation %= 360; + if (rotation < 0) { + rotation += 360; } - }, { - key: "delete", - value: function _delete(id) { - delete this.cache[id]; + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + case 0: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + default: + throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); } - }, { - key: "clear", - value: function clear() { - for (var id in this.cache) { - var canvasEntry = this.cache[id]; - this.canvasFactory.destroy(canvasEntry); - delete this.cache[id]; - } + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; } - }]); - - return CachedCanvases; -}(); - -function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) { - var _ctx$mozCurrentTransf = _slicedToArray(ctx.mozCurrentTransform, 6), - a = _ctx$mozCurrentTransf[0], - b = _ctx$mozCurrentTransf[1], - c = _ctx$mozCurrentTransf[2], - d = _ctx$mozCurrentTransf[3], - tx = _ctx$mozCurrentTransf[4], - ty = _ctx$mozCurrentTransf[5]; - - if (b === 0 && c === 0) { - var tlX = destX * a + tx; - var rTlX = Math.round(tlX); - var tlY = destY * d + ty; - var rTlY = Math.round(tlY); - var brX = (destX + destW) * a + tx; - var rWidth = Math.abs(Math.round(brX) - rTlX) || 1; - var brY = (destY + destH) * d + ty; - var rHeight = Math.abs(Math.round(brY) - rTlY) || 1; - ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY); - ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight); - ctx.setTransform(a, b, c, d, tx, ty); - return [rWidth, rHeight]; + let offsetCanvasX, offsetCanvasY; + let width, height; + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; + this.width = width; + this.height = height; } - - if (a === 0 && d === 0) { - var _tlX = destY * c + tx; - - var _rTlX = Math.round(_tlX); - - var _tlY = destX * b + ty; - - var _rTlY = Math.round(_tlY); - - var _brX = (destY + destH) * c + tx; - - var _rWidth = Math.abs(Math.round(_brX) - _rTlX) || 1; - - var _brY = (destX + destW) * b + ty; - - var _rHeight = Math.abs(Math.round(_brY) - _rTlY) || 1; - - ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, _rTlX, _rTlY); - ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, _rHeight, _rWidth); - ctx.setTransform(a, b, c, d, tx, ty); - return [_rHeight, _rWidth]; + clone() { + let { + scale = this.scale, + rotation = this.rotation, + offsetX = this.offsetX, + offsetY = this.offsetY, + dontFlip = false + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return new PageViewport({ + viewBox: this.viewBox.slice(), + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + convertToViewportPoint(x, y) { + return _util.Util.applyTransform([x, y], this.transform); + } + convertToViewportRectangle(rect) { + const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); + const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); + return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + convertToPdfPoint(x, y) { + return _util.Util.applyInverseTransform([x, y], this.transform); + } +} +exports.PageViewport = PageViewport; +class RenderingCancelledException extends _util.BaseException { + constructor(msg, type) { + super(msg, "RenderingCancelledException"); + this.type = type; + } +} +exports.RenderingCancelledException = RenderingCancelledException; +function isDataScheme(url) { + const ii = url.length; + let i = 0; + while (i < ii && url[i].trim() === "") { + i++; } - - ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH); - var scaleX = Math.hypot(a, b); - var scaleY = Math.hypot(c, d); - return [scaleX * destW, scaleY * destH]; + return url.substring(i, i + 5).toLowerCase() === "data:"; } - -function compileType3Glyph(imgData) { - var width = imgData.width, - height = imgData.height; - - if (!COMPILE_TYPE3_GLYPHS || width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { - return null; +function isPdfFile(filename) { + return typeof filename === "string" && /\.pdf$/i.test(filename); +} +function getFilenameFromUrl(url) { + const anchor = url.indexOf("#"); + const query = url.indexOf("?"); + const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf("/", end) + 1, end); +} +function getPdfFilenameFromUrl(url) { + let defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "document.pdf"; + if (typeof url !== "string") { + return defaultFilename; } - - var POINT_TO_PROCESS_LIMIT = 1000; - var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - var width1 = width + 1; - var points = new Uint8Array(width1 * (height + 1)); - var i, j, j0; - var lineSize = width + 7 & ~7; - var data = new Uint8Array(lineSize * height), - pos = 0; - - var _iterator = _createForOfIteratorHelper(imgData.data), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var elem = _step.value; - var mask = 128; - - while (mask > 0) { - data[pos++] = elem & mask ? 0 : 255; - mask >>= 1; - } + if (isDataScheme(url)) { + (0, _util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'); + return defaultFilename; + } + const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; + const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i; + const splitURI = reURI.exec(url); + let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); + if (suggestedFilename) { + suggestedFilename = suggestedFilename[0]; + if (suggestedFilename.includes("%")) { + try { + suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; + } catch (ex) {} } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); } - - var count = 0; - pos = 0; - - if (data[pos] !== 0) { - points[0] = 1; - ++count; + return suggestedFilename || defaultFilename; +} +class StatTimer { + constructor() { + this.started = Object.create(null); + this.times = []; } - - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j] = data[pos] ? 2 : 1; - ++count; + time(name) { + if (name in this.started) { + (0, _util.warn)(`Timer is already running for ${name}`); } - - pos++; + this.started[name] = Date.now(); } - - if (data[pos] !== 0) { - points[j] = 2; - ++count; + timeEnd(name) { + if (!(name in this.started)) { + (0, _util.warn)(`Timer has not been started for ${name}`); + } + this.times.push({ + name, + start: this.started[name], + end: Date.now() + }); + delete this.started[name]; } - - for (i = 1; i < height; i++) { - pos = i * lineSize; - j0 = i * width1; - - if (data[pos - lineSize] !== data[pos]) { - points[j0] = data[pos] ? 1 : 8; - ++count; + toString() { + const outBuf = []; + let longest = 0; + for (const time of this.times) { + const name = time.name; + if (name.length > longest) { + longest = name.length; + } } - - var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); - - for (j = 1; j < width; j++) { - sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); - - if (POINT_TYPES[sum]) { - points[j0 + j] = POINT_TYPES[sum]; - ++count; + for (const time of this.times) { + const duration = time.end - time.start; + outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`); + } + return outBuf.join(""); + } +} +exports.StatTimer = StatTimer; +function isValidFetchUrl(url, baseUrl) { + try { + const { + protocol + } = baseUrl ? new URL(url, baseUrl) : new URL(url); + return protocol === "http:" || protocol === "https:"; + } catch (ex) { + return false; + } +} +function loadScript(src) { + let removeScriptElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = src; + script.onload = function (evt) { + if (removeScriptElement) { + script.remove(); } - - pos++; + resolve(evt); + }; + script.onerror = function () { + reject(new Error(`Cannot load script at: ${script.src}`)); + }; + (document.head || document.documentElement).append(script); + }); +} +function deprecated(details) { + console.log("Deprecated API usage: " + details); +} +let pdfDateStringRegex; +class PDFDateString { + static toDateObject(input) { + if (!input || typeof input !== "string") { + return null; } - - if (data[pos - lineSize] !== data[pos]) { - points[j0 + j] = data[pos] ? 2 : 4; - ++count; + if (!pdfDateStringRegex) { + pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); } - - if (count > POINT_TO_PROCESS_LIMIT) { + const matches = pdfDateStringRegex.exec(input); + if (!matches) { return null; } + const year = parseInt(matches[1], 10); + let month = parseInt(matches[2], 10); + month = month >= 1 && month <= 12 ? month - 1 : 0; + let day = parseInt(matches[3], 10); + day = day >= 1 && day <= 31 ? day : 1; + let hour = parseInt(matches[4], 10); + hour = hour >= 0 && hour <= 23 ? hour : 0; + let minute = parseInt(matches[5], 10); + minute = minute >= 0 && minute <= 59 ? minute : 0; + let second = parseInt(matches[6], 10); + second = second >= 0 && second <= 59 ? second : 0; + const universalTimeRelation = matches[7] || "Z"; + let offsetHour = parseInt(matches[8], 10); + offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; + let offsetMinute = parseInt(matches[9], 10) || 0; + offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; + if (universalTimeRelation === "-") { + hour += offsetHour; + minute += offsetMinute; + } else if (universalTimeRelation === "+") { + hour -= offsetHour; + minute -= offsetMinute; + } + return new Date(Date.UTC(year, month, day, hour, minute, second)); } - - pos = lineSize * (height - 1); - j0 = i * width1; - - if (data[pos] !== 0) { - points[j0] = 8; - ++count; - } - - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j0 + j] = data[pos] ? 4 : 8; - ++count; - } - - pos++; +} +exports.PDFDateString = PDFDateString; +function getXfaPageViewport(xfaPage, _ref2) { + let { + scale = 1, + rotation = 0 + } = _ref2; + const { + width, + height + } = xfaPage.attributes.style; + const viewBox = [0, 0, parseInt(width), parseInt(height)]; + return new PageViewport({ + viewBox, + scale, + rotation + }); +} +function getRGB(color) { + if (color.startsWith("#")) { + const colorRGB = parseInt(color.slice(1), 16); + return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff]; } - - if (data[pos] !== 0) { - points[j0 + j] = 4; - ++count; + if (color.startsWith("rgb(")) { + return color.slice(4, -1).split(",").map(x => parseInt(x)); } - - if (count > POINT_TO_PROCESS_LIMIT) { - return null; + if (color.startsWith("rgba(")) { + return color.slice(5, -1).split(",").map(x => parseInt(x)).slice(0, 3); } + (0, _util.warn)(`Not a valid color format: "${color}"`); + return [0, 0, 0]; +} +function getColorValues(colors) { + const span = document.createElement("span"); + span.style.visibility = "hidden"; + document.body.append(span); + for (const name of colors.keys()) { + span.style.color = name; + const computedColor = window.getComputedStyle(span).color; + colors.set(name, getRGB(computedColor)); + } + span.remove(); +} +function getCurrentTransform(ctx) { + const { + a, + b, + c, + d, + e, + f + } = ctx.getTransform(); + return [a, b, c, d, e, f]; +} +function getCurrentTransformInverse(ctx) { + const { + a, + b, + c, + d, + e, + f + } = ctx.getTransform().invertSelf(); + return [a, b, c, d, e, f]; +} - var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - var path, outlines, coords; +/***/ }), +/* 138 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - if (!_is_node.isNodeJS) { - path = new Path2D(); - } else { - outlines = []; - } +"use strict"; - for (i = 0; count && i <= height; i++) { - var p = i * width1; - var end = p + width; - while (p < end && !points[p]) { - p++; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0; +var _util = __w_pdfjs_require__(1); +class BaseCanvasFactory { + constructor() { + if (this.constructor === BaseCanvasFactory) { + (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); } - - if (p === end) { - continue; + } + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); } - - if (path) { - path.moveTo(p % width1, i); - } else { - coords = [p % width1, i]; + const canvas = this._createCanvas(width, height); + return { + canvas, + context: canvas.getContext("2d") + }; + } + reset(canvasAndContext, width, height) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); } - - var p0 = p; - var type = points[p]; - - do { - var step = steps[type]; - - do { - p += step; - } while (!points[p]); - - var pp = points[p]; - - if (pp !== 5 && pp !== 10) { - type = pp; - points[p] = 0; - } else { - type = pp & 0x33 * type >> 4; - points[p] &= type >> 2 | type << 2; - } - - if (path) { - path.lineTo(p % width1, p / width1 | 0); - } else { - coords.push(p % width1, p / width1 | 0); - } - - if (!points[p]) { - --count; - } - } while (p0 !== p); - - if (!path) { - outlines.push(coords); + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); } - - --i; + canvasAndContext.canvas.width = width; + canvasAndContext.canvas.height = height; } - - data = null; - points = null; - - var drawOutline = function drawOutline(c) { - c.save(); - c.scale(1 / width, -1 / height); - c.translate(0, -height); - - if (path) { - c.fill(path); - } else { - c.beginPath(); - - var _iterator2 = _createForOfIteratorHelper(outlines), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var o = _step2.value; - c.moveTo(o[0], o[1]); - - for (var l = 2, ll = o.length; l < ll; l += 2) { - c.lineTo(o[l], o[l + 1]); - } - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - c.fill(); + destroy(canvasAndContext) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); } - - c.beginPath(); - c.restore(); - }; - - return drawOutline; + canvasAndContext.canvas.width = 0; + canvasAndContext.canvas.height = 0; + canvasAndContext.canvas = null; + canvasAndContext.context = null; + } + _createCanvas(width, height) { + (0, _util.unreachable)("Abstract method `_createCanvas` called."); + } } - -var CanvasExtraState = /*#__PURE__*/function () { - function CanvasExtraState(width, height) { - _classCallCheck(this, CanvasExtraState); - - this.alphaIsShape = false; - this.fontSize = 0; - this.fontSizeScale = 1; - this.textMatrix = _util.IDENTITY_MATRIX; - this.textMatrixScale = 1; - this.fontMatrix = _util.FONT_IDENTITY_MATRIX; - this.leading = 0; - this.x = 0; - this.y = 0; - this.lineX = 0; - this.lineY = 0; - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRenderingMode = _util.TextRenderingMode.FILL; - this.textRise = 0; - this.fillColor = "#000000"; - this.strokeColor = "#000000"; - this.patternFill = false; - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.activeSMask = null; - this.transferMaps = null; - this.startNewPathAndClipBox([0, 0, width, height]); +exports.BaseCanvasFactory = BaseCanvasFactory; +class BaseCMapReaderFactory { + constructor(_ref) { + let { + baseUrl = null, + isCompressed = false + } = _ref; + if (this.constructor === BaseCMapReaderFactory) { + (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory."); + } + this.baseUrl = baseUrl; + this.isCompressed = isCompressed; + } + async fetch(_ref2) { + let { + name + } = _ref2; + if (!this.baseUrl) { + throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); + } + if (!name) { + throw new Error("CMap name must be specified."); + } + const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); + const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; + return this._fetchData(url, compressionType).catch(reason => { + throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`); + }); + } + _fetchData(url, compressionType) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); } - - _createClass(CanvasExtraState, [{ - key: "clone", - value: function clone() { - var clone = Object.create(this); - clone.clipBox = this.clipBox.slice(); - return clone; - } - }, { - key: "setCurrentPoint", - value: function setCurrentPoint(x, y) { - this.x = x; - this.y = y; +} +exports.BaseCMapReaderFactory = BaseCMapReaderFactory; +class BaseStandardFontDataFactory { + constructor(_ref3) { + let { + baseUrl = null + } = _ref3; + if (this.constructor === BaseStandardFontDataFactory) { + (0, _util.unreachable)("Cannot initialize BaseStandardFontDataFactory."); } - }, { - key: "updatePathMinMax", - value: function updatePathMinMax(transform, x, y) { - var _Util$applyTransform = _util.Util.applyTransform([x, y], transform); - - var _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2); - - x = _Util$applyTransform2[0]; - y = _Util$applyTransform2[1]; - this.minX = Math.min(this.minX, x); - this.minY = Math.min(this.minY, y); - this.maxX = Math.max(this.maxX, x); - this.maxY = Math.max(this.maxY, y); - } - }, { - key: "updateRectMinMax", - value: function updateRectMinMax(transform, rect) { - var p1 = _util.Util.applyTransform(rect, transform); - - var p2 = _util.Util.applyTransform(rect.slice(2), transform); - - this.minX = Math.min(this.minX, p1[0], p2[0]); - this.minY = Math.min(this.minY, p1[1], p2[1]); - this.maxX = Math.max(this.maxX, p1[0], p2[0]); - this.maxY = Math.max(this.maxY, p1[1], p2[1]); - } - }, { - key: "updateScalingPathMinMax", - value: function updateScalingPathMinMax(transform, minMax) { - _util.Util.scaleMinMax(transform, minMax); - - this.minX = Math.min(this.minX, minMax[0]); - this.maxX = Math.max(this.maxX, minMax[1]); - this.minY = Math.min(this.minY, minMax[2]); - this.maxY = Math.max(this.maxY, minMax[3]); - } - }, { - key: "updateCurvePathMinMax", - value: function updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) { - var box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3); - - if (minMax) { - minMax[0] = Math.min(minMax[0], box[0], box[2]); - minMax[1] = Math.max(minMax[1], box[0], box[2]); - minMax[2] = Math.min(minMax[2], box[1], box[3]); - minMax[3] = Math.max(minMax[3], box[1], box[3]); - return; - } - - this.updateRectMinMax(transform, box); + this.baseUrl = baseUrl; + } + async fetch(_ref4) { + let { + filename + } = _ref4; + if (!this.baseUrl) { + throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.'); } - }, { - key: "getPathBoundingBox", - value: function getPathBoundingBox() { - var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL; - var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var box = [this.minX, this.minY, this.maxX, this.maxY]; - - if (pathType === _pattern_helper.PathType.STROKE) { - if (!transform) { - (0, _util.unreachable)("Stroke bounding box must include transform."); - } - - var scale = _util.Util.singularValueDecompose2dScale(transform); - - var xStrokePad = scale[0] * this.lineWidth / 2; - var yStrokePad = scale[1] * this.lineWidth / 2; - box[0] -= xStrokePad; - box[1] -= yStrokePad; - box[2] += xStrokePad; - box[3] += yStrokePad; - } - - return box; + if (!filename) { + throw new Error("Font filename must be specified."); } - }, { - key: "updateClipFromPath", - value: function updateClipFromPath() { - var intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox()); - - this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]); + const url = `${this.baseUrl}${filename}`; + return this._fetchData(url).catch(reason => { + throw new Error(`Unable to load font data at: ${url}`); + }); + } + _fetchData(url) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } +} +exports.BaseStandardFontDataFactory = BaseStandardFontDataFactory; +class BaseSVGFactory { + constructor() { + if (this.constructor === BaseSVGFactory) { + (0, _util.unreachable)("Cannot initialize BaseSVGFactory."); } - }, { - key: "isEmptyClip", - value: function isEmptyClip() { - return this.minX === Infinity; + } + create(width, height) { + let skipDimensions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (width <= 0 || height <= 0) { + throw new Error("Invalid SVG dimensions"); } - }, { - key: "startNewPathAndClipBox", - value: function startNewPathAndClipBox(box) { - this.clipBox = box; - this.minX = Infinity; - this.minY = Infinity; - this.maxX = 0; - this.maxY = 0; + const svg = this._createSVG("svg:svg"); + svg.setAttribute("version", "1.1"); + if (!skipDimensions) { + svg.setAttribute("width", `${width}px`); + svg.setAttribute("height", `${height}px`); } - }, { - key: "getClippedPathBoundingBox", - value: function getClippedPathBoundingBox() { - var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL; - var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform)); + svg.setAttribute("preserveAspectRatio", "none"); + svg.setAttribute("viewBox", `0 0 ${width} ${height}`); + return svg; + } + createElement(type) { + if (typeof type !== "string") { + throw new Error("Invalid SVG element type"); } - }]); - - return CanvasExtraState; -}(); - -function putBinaryImageData(ctx, imgData) { - var transferMaps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - - if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { - ctx.putImageData(imgData, 0, 0); - return; + return this._createSVG(type); } + _createSVG(type) { + (0, _util.unreachable)("Abstract method `_createSVG` called."); + } +} +exports.BaseSVGFactory = BaseSVGFactory; - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0, - destPos; - var src = imgData.data; - var dest = chunkImgData.data; - var i, j, thisChunkHeight, elemsInThisChunk; - var transferMapRed, transferMapGreen, transferMapBlue, transferMapGray; - - if (transferMaps) { - switch (transferMaps.length) { - case 1: - transferMapRed = transferMaps[0]; - transferMapGreen = transferMaps[0]; - transferMapBlue = transferMaps[0]; - transferMapGray = transferMaps[0]; - break; +/***/ }), +/* 139 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - case 4: - transferMapRed = transferMaps[0]; - transferMapGreen = transferMaps[1]; - transferMapBlue = transferMaps[2]; - transferMapGray = transferMaps[3]; - break; - } - } +"use strict"; - if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { - var srcLength = src.byteLength; - var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); - var dest32DataLength = dest32.length; - var fullSrcDiff = width + 7 >> 3; - var white = 0xffffffff; - var black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; - if (transferMapGray) { - if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) { - var _ref = [black, white]; - white = _ref[0]; - black = _ref[1]; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.MurmurHash3_64 = void 0; +var _util = __w_pdfjs_require__(1); +const SEED = 0xc3d2e1f0; +const MASK_HIGH = 0xffff0000; +const MASK_LOW = 0xffff; +class MurmurHash3_64 { + constructor(seed) { + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + update(input) { + let data, length; + if (typeof input === "string") { + data = new Uint8Array(input.length * 2); + length = 0; + for (let i = 0, ii = input.length; i < ii; i++) { + const code = input.charCodeAt(i); + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } } - } - - for (i = 0; i < totalChunks; i++) { - thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - destPos = 0; + } else if ((0, _util.isArrayBuffer)(input)) { + data = input.slice(); + length = data.byteLength; + } else { + throw new Error("Wrong data format in MurmurHash3_64_update. " + "Input must be a string or array."); + } + const blockCounts = length >> 2; + const tailLength = length - blockCounts * 4; + const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + let k1 = 0, + k2 = 0; + let h1 = this.h1, + h2 = this.h2; + const C1 = 0xcc9e2d51, + C2 = 0x1b873593; + const C1_LOW = C1 & MASK_LOW, + C2_LOW = C2 & MASK_LOW; + for (let i = 0; i < blockCounts; i++) { + if (i & 1) { + k1 = dataUint32[i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + k1 = 0; + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + } + this.h1 = h1; + this.h2 = h2; + } + hexdigest() { + let h1 = this.h1, + h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + const hex1 = (h1 >>> 0).toString(16), + hex2 = (h2 >>> 0).toString(16); + return hex1.padStart(8, "0") + hex2.padStart(8, "0"); + } +} +exports.MurmurHash3_64 = MurmurHash3_64; - for (j = 0; j < thisChunkHeight; j++) { - var srcDiff = srcLength - srcPos; - var k = 0; - var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; - var kEndUnrolled = kEnd & ~7; - var mask = 0; - var srcByte = 0; +/***/ }), +/* 140 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - for (; k < kEndUnrolled; k += 8) { - srcByte = src[srcPos++]; - dest32[destPos++] = srcByte & 128 ? white : black; - dest32[destPos++] = srcByte & 64 ? white : black; - dest32[destPos++] = srcByte & 32 ? white : black; - dest32[destPos++] = srcByte & 16 ? white : black; - dest32[destPos++] = srcByte & 8 ? white : black; - dest32[destPos++] = srcByte & 4 ? white : black; - dest32[destPos++] = srcByte & 2 ? white : black; - dest32[destPos++] = srcByte & 1 ? white : black; - } +"use strict"; - for (; k < kEnd; k++) { - if (mask === 0) { - srcByte = src[srcPos++]; - mask = 128; - } - dest32[destPos++] = srcByte & mask ? white : black; - mask >>= 1; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.FontLoader = exports.FontFaceObject = void 0; +var _util = __w_pdfjs_require__(1); +class FontLoader { + constructor(_ref) { + let { + onUnsupportedFeature, + ownerDocument = globalThis.document, + styleElement = null + } = _ref; + this._onUnsupportedFeature = onUnsupportedFeature; + this._document = ownerDocument; + this.nativeFontFaces = []; + this.styleElement = null; + this.loadingRequests = []; + this.loadTestFontId = 0; + } + addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); + this._document.fonts.add(nativeFontFace); + } + insertRule(rule) { + if (!this.styleElement) { + this.styleElement = this._document.createElement("style"); + this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement); + } + const styleSheet = this.styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + clear() { + for (const nativeFontFace of this.nativeFontFaces) { + this._document.fonts.delete(nativeFontFace); + } + this.nativeFontFaces.length = 0; + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + async bind(font) { + if (font.attached || font.missingFile) { + return; + } + font.attached = true; + if (this.isFontLoadingAPISupported) { + const nativeFontFace = font.createNativeFontFace(); + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + try { + await nativeFontFace.loaded; + } catch (ex) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative + }); + (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); + font.disableFontFace = true; + throw ex; } } - - while (destPos < dest32DataLength) { - dest32[destPos++] = 0; + return; + } + const rule = font.createFontFaceRule(); + if (rule) { + this.insertRule(rule); + if (this.isSyncFontLoadingSupported) { + return; } - - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + await new Promise(resolve => { + const request = this._queueLoadingCallback(resolve); + this._prepareFontLoadEvent(font, request); + }); } - } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { - var hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); - j = 0; - elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; - - for (i = 0; i < fullChunks; i++) { - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - srcPos += elemsInThisChunk; - - if (hasTransferMaps) { - for (var _k = 0; _k < elemsInThisChunk; _k += 4) { - if (transferMapRed) { - dest[_k + 0] = transferMapRed[dest[_k + 0]]; - } - - if (transferMapGreen) { - dest[_k + 1] = transferMapGreen[dest[_k + 1]]; - } - - if (transferMapBlue) { - dest[_k + 2] = transferMapBlue[dest[_k + 2]]; - } - } + } + get isFontLoadingAPISupported() { + var _this$_document; + const hasFonts = !!((_this$_document = this._document) !== null && _this$_document !== void 0 && _this$_document.fonts); + return (0, _util.shadow)(this, "isFontLoadingAPISupported", hasFonts); + } + get isSyncFontLoadingSupported() { + let supported = false; + if (typeof navigator === "undefined") { + supported = true; + } else { + const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + if ((m === null || m === void 0 ? void 0 : m[1]) >= 14) { + supported = true; } - - ctx.putImageData(chunkImgData, 0, j); - j += FULL_CHUNK_HEIGHT; } - - if (i < totalChunks) { - elemsInThisChunk = width * partialChunkHeight * 4; - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - - if (hasTransferMaps) { - for (var _k2 = 0; _k2 < elemsInThisChunk; _k2 += 4) { - if (transferMapRed) { - dest[_k2 + 0] = transferMapRed[dest[_k2 + 0]]; - } - - if (transferMapGreen) { - dest[_k2 + 1] = transferMapGreen[dest[_k2 + 1]]; - } - - if (transferMapBlue) { - dest[_k2 + 2] = transferMapBlue[dest[_k2 + 2]]; - } - } + return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); + } + _queueLoadingCallback(callback) { + function completeRequest() { + (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); + request.done = true; + while (loadingRequests.length > 0 && loadingRequests[0].done) { + const otherRequest = loadingRequests.shift(); + setTimeout(otherRequest.callback, 0); } - - ctx.putImageData(chunkImgData, 0, j); } - } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { - var _hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); - - thisChunkHeight = FULL_CHUNK_HEIGHT; - elemsInThisChunk = width * thisChunkHeight; - - for (i = 0; i < totalChunks; i++) { - if (i >= fullChunks) { - thisChunkHeight = partialChunkHeight; - elemsInThisChunk = width * thisChunkHeight; + const { + loadingRequests + } = this; + const request = { + done: false, + complete: completeRequest, + callback + }; + loadingRequests.push(request); + return request; + } + get _loadTestFont() { + const testFont = atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="); + return (0, _util.shadow)(this, "_loadTestFont", testFont); + } + _prepareFontLoadEvent(font, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + function spliceString(s, offset, remove, insert) { + const chunk1 = s.substring(0, offset); + const chunk2 = s.substring(offset + remove); + return chunk1 + insert + chunk2; + } + let i, ii; + const canvas = this._document.createElement("canvas"); + canvas.width = 1; + canvas.height = 1; + const ctx = canvas.getContext("2d"); + let called = 0; + function isFontReady(name, callback) { + if (++called > 30) { + (0, _util.warn)("Load test font never loaded."); + callback(); + return; } - - destPos = 0; - - for (j = elemsInThisChunk; j--;) { - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = 255; + ctx.font = "30px " + name; + ctx.fillText(".", 0, 20); + const imageData = ctx.getImageData(0, 0, 1, 1); + if (imageData.data[3] > 0) { + callback(); + return; } - - if (_hasTransferMaps) { - for (var _k3 = 0; _k3 < destPos; _k3 += 4) { - if (transferMapRed) { - dest[_k3 + 0] = transferMapRed[dest[_k3 + 0]]; - } - - if (transferMapGreen) { - dest[_k3 + 1] = transferMapGreen[dest[_k3 + 1]]; - } - - if (transferMapBlue) { - dest[_k3 + 2] = transferMapBlue[dest[_k3 + 2]]; - } - } + setTimeout(isFontReady.bind(null, name, callback)); + } + const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`; + let data = this._loadTestFont; + const COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + const CFF_CHECKSUM_OFFSET = 16; + const XXXX_VALUE = 0x58585858; + let checksum = int32(data, CFF_CHECKSUM_OFFSET); + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; + } + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; + } + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); + const url = `url(data:font/opentype;base64,${btoa(data)});`; + const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`; + this.insertRule(rule); + const div = this._document.createElement("div"); + div.style.visibility = "hidden"; + div.style.width = div.style.height = "10px"; + div.style.position = "absolute"; + div.style.top = div.style.left = "0px"; + for (const name of [font.loadedName, loadTestFontId]) { + const span = this._document.createElement("span"); + span.textContent = "Hi"; + span.style.fontFamily = name; + div.append(span); + } + this._document.body.append(div); + isFontReady(loadTestFontId, () => { + div.remove(); + request.complete(); + }); + } +} +exports.FontLoader = FontLoader; +class FontFaceObject { + constructor(translatedData, _ref2) { + let { + isEvalSupported = true, + disableFontFace = false, + ignoreErrors = false, + onUnsupportedFeature, + fontRegistry = null + } = _ref2; + this.compiledGlyphs = Object.create(null); + for (const i in translatedData) { + this[i] = translatedData[i]; + } + this.isEvalSupported = isEvalSupported !== false; + this.disableFontFace = disableFontFace === true; + this.ignoreErrors = ignoreErrors === true; + this._onUnsupportedFeature = onUnsupportedFeature; + this.fontRegistry = fontRegistry; + } + createNativeFontFace() { + var _this$fontRegistry; + if (!this.data || this.disableFontFace) { + return null; + } + let nativeFontFace; + if (!this.cssFontInfo) { + nativeFontFace = new FontFace(this.loadedName, this.data, {}); + } else { + const css = { + weight: this.cssFontInfo.fontWeight + }; + if (this.cssFontInfo.italicAngle) { + css.style = `oblique ${this.cssFontInfo.italicAngle}deg`; } - - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); } - } else { - throw new Error("bad image kind: ".concat(imgData.kind)); + (_this$fontRegistry = this.fontRegistry) === null || _this$fontRegistry === void 0 ? void 0 : _this$fontRegistry.registerFont(this); + return nativeFontFace; } -} - -function putBinaryImageMask(ctx, imgData) { - if (imgData.bitmap) { - ctx.drawImage(imgData.bitmap, 0, 0); - return; + createFontFaceRule() { + var _this$fontRegistry2; + if (!this.data || this.disableFontFace) { + return null; + } + const data = (0, _util.bytesToString)(this.data); + const url = `url(data:${this.mimetype};base64,${btoa(data)});`; + let rule; + if (!this.cssFontInfo) { + rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`; + } else { + let css = `font-weight: ${this.cssFontInfo.fontWeight};`; + if (this.cssFontInfo.italicAngle) { + css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`; + } + rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`; + } + (_this$fontRegistry2 = this.fontRegistry) === null || _this$fontRegistry2 === void 0 ? void 0 : _this$fontRegistry2.registerFont(this, url); + return rule; } - - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0; - var src = imgData.data; - var dest = chunkImgData.data; - - for (var i = 0; i < totalChunks; i++) { - var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - - var _applyMaskImageData = (0, _image_utils.applyMaskImageData)({ - src: src, - srcPos: srcPos, - dest: dest, - width: width, - height: thisChunkHeight - }); - - srcPos = _applyMaskImageData.srcPos; - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; + } + let cmds; + try { + cmds = objs.get(this.loadedName + "_path_" + character); + } catch (ex) { + if (!this.ignoreErrors) { + throw ex; + } + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath + }); + (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`); + return this.compiledGlyphs[character] = function (c, size) {}; + } + if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) { + const jsBuf = []; + for (const current of cmds) { + const args = current.args !== undefined ? current.args.join(",") : ""; + jsBuf.push("c.", current.cmd, "(", args, ");\n"); + } + return this.compiledGlyphs[character] = new Function("c", "size", jsBuf.join("")); + } + return this.compiledGlyphs[character] = function (c, size) { + for (const current of cmds) { + if (current.cmd === "scale") { + current.args = [size, -size]; + } + c[current.cmd].apply(c, current.args); + } + }; } } +exports.FontFaceObject = FontFaceObject; -function copyCtxState(sourceCtx, destCtx) { - var properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"]; +/***/ }), +/* 141 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - for (var i = 0, ii = properties.length; i < ii; i++) { - var property = properties[i]; +"use strict"; - if (sourceCtx[property] !== undefined) { - destCtx[property] = sourceCtx[property]; - } - } - if (sourceCtx.setLineDash !== undefined) { - destCtx.setLineDash(sourceCtx.getLineDash()); - destCtx.lineDashOffset = sourceCtx.lineDashOffset; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CanvasGraphics = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +var _pattern_helper = __w_pdfjs_require__(142); +var _image_utils = __w_pdfjs_require__(143); +var _is_node = __w_pdfjs_require__(3); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const MIN_FONT_SIZE = 16; +const MAX_FONT_SIZE = 100; +const MAX_GROUP_SIZE = 4096; +const EXECUTION_TIME = 15; +const EXECUTION_STEPS = 10; +const MAX_SIZE_TO_COMPILE = _is_node.isNodeJS && typeof Path2D === "undefined" ? -1 : 1000; +const FULL_CHUNK_HEIGHT = 16; +function mirrorContextOperations(ctx, destCtx) { + if (ctx._removeMirroring) { + throw new Error("Context is already forwarding operations."); } + ctx.__originalSave = ctx.save; + ctx.__originalRestore = ctx.restore; + ctx.__originalRotate = ctx.rotate; + ctx.__originalScale = ctx.scale; + ctx.__originalTranslate = ctx.translate; + ctx.__originalTransform = ctx.transform; + ctx.__originalSetTransform = ctx.setTransform; + ctx.__originalResetTransform = ctx.resetTransform; + ctx.__originalClip = ctx.clip; + ctx.__originalMoveTo = ctx.moveTo; + ctx.__originalLineTo = ctx.lineTo; + ctx.__originalBezierCurveTo = ctx.bezierCurveTo; + ctx.__originalRect = ctx.rect; + ctx.__originalClosePath = ctx.closePath; + ctx.__originalBeginPath = ctx.beginPath; + ctx._removeMirroring = () => { + ctx.save = ctx.__originalSave; + ctx.restore = ctx.__originalRestore; + ctx.rotate = ctx.__originalRotate; + ctx.scale = ctx.__originalScale; + ctx.translate = ctx.__originalTranslate; + ctx.transform = ctx.__originalTransform; + ctx.setTransform = ctx.__originalSetTransform; + ctx.resetTransform = ctx.__originalResetTransform; + ctx.clip = ctx.__originalClip; + ctx.moveTo = ctx.__originalMoveTo; + ctx.lineTo = ctx.__originalLineTo; + ctx.bezierCurveTo = ctx.__originalBezierCurveTo; + ctx.rect = ctx.__originalRect; + ctx.closePath = ctx.__originalClosePath; + ctx.beginPath = ctx.__originalBeginPath; + delete ctx._removeMirroring; + }; + ctx.save = function ctxSave() { + destCtx.save(); + this.__originalSave(); + }; + ctx.restore = function ctxRestore() { + destCtx.restore(); + this.__originalRestore(); + }; + ctx.translate = function ctxTranslate(x, y) { + destCtx.translate(x, y); + this.__originalTranslate(x, y); + }; + ctx.scale = function ctxScale(x, y) { + destCtx.scale(x, y); + this.__originalScale(x, y); + }; + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + destCtx.transform(a, b, c, d, e, f); + this.__originalTransform(a, b, c, d, e, f); + }; + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + destCtx.setTransform(a, b, c, d, e, f); + this.__originalSetTransform(a, b, c, d, e, f); + }; + ctx.resetTransform = function ctxResetTransform() { + destCtx.resetTransform(); + this.__originalResetTransform(); + }; + ctx.rotate = function ctxRotate(angle) { + destCtx.rotate(angle); + this.__originalRotate(angle); + }; + ctx.clip = function ctxRotate(rule) { + destCtx.clip(rule); + this.__originalClip(rule); + }; + ctx.moveTo = function (x, y) { + destCtx.moveTo(x, y); + this.__originalMoveTo(x, y); + }; + ctx.lineTo = function (x, y) { + destCtx.lineTo(x, y); + this.__originalLineTo(x, y); + }; + ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) { + destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); + this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); + }; + ctx.rect = function (x, y, width, height) { + destCtx.rect(x, y, width, height); + this.__originalRect(x, y, width, height); + }; + ctx.closePath = function () { + destCtx.closePath(); + this.__originalClosePath(); + }; + ctx.beginPath = function () { + destCtx.beginPath(); + this.__originalBeginPath(); + }; } - -function resetCtxToDefault(ctx, foregroundColor) { - ctx.strokeStyle = ctx.fillStyle = foregroundColor || "#000000"; - ctx.fillRule = "nonzero"; - ctx.globalAlpha = 1; - ctx.lineWidth = 1; - ctx.lineCap = "butt"; - ctx.lineJoin = "miter"; - ctx.miterLimit = 10; - ctx.globalCompositeOperation = "source-over"; - ctx.font = "10px sans-serif"; - - if (ctx.setLineDash !== undefined) { - ctx.setLineDash([]); - ctx.lineDashOffset = 0; +class CachedCanvases { + constructor(canvasFactory) { + this.canvasFactory = canvasFactory; + this.cache = Object.create(null); } -} - -function composeSMaskBackdrop(bytes, r0, g0, b0) { - var length = bytes.length; - - for (var i = 3; i < length; i += 4) { - var alpha = bytes[i]; - - if (alpha === 0) { - bytes[i - 3] = r0; - bytes[i - 2] = g0; - bytes[i - 1] = b0; - } else if (alpha < 255) { - var alpha_ = 255 - alpha; - bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; - bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; - bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; + getCanvas(id, width, height) { + let canvasEntry; + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; } + return canvasEntry; } -} - -function composeSMaskAlpha(maskData, layerData, transferMap) { - var length = maskData.length; - var scale = 1 / 255; - - for (var i = 3; i < length; i += 4) { - var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; - layerData[i] = layerData[i] * alpha * scale | 0; + delete(id) { + delete this.cache[id]; } -} - -function composeSMaskLuminosity(maskData, layerData, transferMap) { - var length = maskData.length; - - for (var i = 3; i < length; i += 4) { - var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; - layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; + clear() { + for (const id in this.cache) { + const canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } } } - -function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) { - var hasBackdrop = !!backdrop; - var r0 = hasBackdrop ? backdrop[0] : 0; - var g0 = hasBackdrop ? backdrop[1] : 0; - var b0 = hasBackdrop ? backdrop[2] : 0; - var composeFn; - - if (subtype === "Luminosity") { - composeFn = composeSMaskLuminosity; - } else { - composeFn = composeSMaskAlpha; +function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) { + const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx); + if (b === 0 && c === 0) { + const tlX = destX * a + tx; + const rTlX = Math.round(tlX); + const tlY = destY * d + ty; + const rTlY = Math.round(tlY); + const brX = (destX + destW) * a + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destY + destH) * d + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight); + ctx.setTransform(a, b, c, d, tx, ty); + return [rWidth, rHeight]; } - - var PIXELS_TO_PROCESS = 1048576; - var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); - - for (var row = 0; row < height; row += chunkSize) { - var chunkHeight = Math.min(chunkSize, height - row); - var maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight); - var layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight); - - if (hasBackdrop) { - composeSMaskBackdrop(maskData.data, r0, g0, b0); - } - - composeFn(maskData.data, layerData.data, transferMap); - layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY); + if (a === 0 && d === 0) { + const tlX = destY * c + tx; + const rTlX = Math.round(tlX); + const tlY = destX * b + ty; + const rTlY = Math.round(tlY); + const brX = (destY + destH) * c + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destX + destW) * b + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth); + ctx.setTransform(a, b, c, d, tx, ty); + return [rHeight, rWidth]; } + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH); + const scaleX = Math.hypot(a, b); + const scaleY = Math.hypot(c, d); + return [scaleX * destW, scaleY * destH]; } - -function composeSMask(ctx, smask, layerCtx, layerBox) { - var layerOffsetX = layerBox[0]; - var layerOffsetY = layerBox[1]; - var layerWidth = layerBox[2] - layerOffsetX; - var layerHeight = layerBox[3] - layerOffsetY; - - if (layerWidth === 0 || layerHeight === 0) { - return; +function compileType3Glyph(imgData) { + const { + width, + height + } = imgData; + if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { + return null; } - - genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY); - ctx.save(); - ctx.globalAlpha = 1; - ctx.globalCompositeOperation = "source-over"; - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(layerCtx.canvas, 0, 0); - ctx.restore(); -} - -function getImageSmoothingEnabled(transform, interpolate) { - var scale = _util.Util.singularValueDecompose2dScale(transform); - - scale[0] = Math.fround(scale[0]); - scale[1] = Math.fround(scale[1]); - var actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); - - if (interpolate !== undefined) { - return interpolate; - } else if (scale[0] <= actualScale || scale[1] <= actualScale) { - return true; + const POINT_TO_PROCESS_LIMIT = 1000; + const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + const width1 = width + 1; + let points = new Uint8Array(width1 * (height + 1)); + let i, j, j0; + const lineSize = width + 7 & ~7; + let data = new Uint8Array(lineSize * height), + pos = 0; + for (const elem of imgData.data) { + let mask = 128; + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; + } + } + let count = 0; + pos = 0; + if (data[pos] !== 0) { + points[0] = 1; + ++count; } - - return false; -} - -var LINE_CAP_STYLES = ["butt", "round", "square"]; -var LINE_JOIN_STYLES = ["miter", "round", "bevel"]; -var NORMAL_CLIP = {}; -var EO_CLIP = {}; - -var CanvasGraphics = /*#__PURE__*/function () { - function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap, pageColors) { - _classCallCheck(this, CanvasGraphics); - - this.ctx = canvasCtx; - this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = false; - this.res = null; - this.xobjs = null; - this.commonObjs = commonObjs; - this.objs = objs; - this.canvasFactory = canvasFactory; - this.imageLayer = imageLayer; - this.groupStack = []; - this.processingType3 = null; - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - this.suspendedCtx = null; - this.contentVisible = true; - this.markedContentStack = []; - this.optionalContentConfig = optionalContentConfig; - this.cachedCanvases = new CachedCanvases(this.canvasFactory); - this.cachedPatterns = new Map(); - this.annotationCanvasMap = annotationCanvasMap; - this.viewportScale = 1; - this.outputScaleX = 1; - this.outputScaleY = 1; - this.backgroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.background) || null; - this.foregroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.foreground) || null; - - if (canvasCtx) { - addContextCurrentTransform(canvasCtx); + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; } - - this._cachedScaleForStroking = null; - this._cachedGetSinglePixelWidth = null; - this._cachedBitmapsMap = new Map(); + pos++; } - - _createClass(CanvasGraphics, [{ - key: "getObject", - value: function getObject(data) { - var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (typeof data === "string") { - return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); - } - - return fallback; + if (data[pos] !== 0) { + points[j] = 2; + ++count; + } + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; } - }, { - key: "beginDrawing", - value: function beginDrawing(_ref2) { - var transform = _ref2.transform, - viewport = _ref2.viewport, - _ref2$transparency = _ref2.transparency, - transparency = _ref2$transparency === void 0 ? false : _ref2$transparency, - _ref2$background = _ref2.background, - background = _ref2$background === void 0 ? null : _ref2$background; - var width = this.ctx.canvas.width; - var height = this.ctx.canvas.height; - var defaultBackgroundColor = background || "#ffffff"; - this.ctx.save(); - - if (this.foregroundColor && this.backgroundColor) { - this.ctx.fillStyle = this.foregroundColor; - var fg = this.foregroundColor = this.ctx.fillStyle; - this.ctx.fillStyle = this.backgroundColor; - var bg = this.backgroundColor = this.ctx.fillStyle; - var isValidDefaultBg = true; - var defaultBg = defaultBackgroundColor; - this.ctx.fillStyle = defaultBackgroundColor; - defaultBg = this.ctx.fillStyle; - isValidDefaultBg = typeof defaultBg === "string" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg); - - if (fg === "#000000" && bg === "#ffffff" || fg === bg || !isValidDefaultBg) { - this.foregroundColor = this.backgroundColor = null; - } else { - var cB = parseInt(defaultBg.slice(1), 16); - var rB = (cB && 0xff0000) >> 16; - var gB = (cB && 0x00ff00) >> 8; - var bB = cB && 0x0000ff; - - var newComp = function newComp(x) { - x /= 255; - return x <= 0.03928 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4); - }; - - var lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB)); - - this.selectColor = function (r, g, b) { - var lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b); - return Math.round(lumC) === lumB ? bg : fg; - }; - } - } - - this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor; - this.ctx.fillRect(0, 0, width, height); - this.ctx.restore(); - - if (transparency) { - var transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true); - this.compositeCtx = this.ctx; - this.transparentCanvas = transparentCanvas.canvas; - this.ctx = transparentCanvas.context; - this.ctx.save(); - this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform); - } - - this.ctx.save(); - resetCtxToDefault(this.ctx, this.foregroundColor); - - if (transform) { - this.ctx.transform.apply(this.ctx, transform); - this.outputScaleX = transform[0]; - this.outputScaleY = transform[0]; - } - - this.ctx.transform.apply(this.ctx, viewport.transform); - this.viewportScale = viewport.scale; - this.baseTransform = this.ctx.mozCurrentTransform.slice(); - - if (this.imageLayer) { - this.imageLayer.beginLayout(); + let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + for (j = 1; j < width; j++) { + sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; } + pos++; } - }, { - key: "executeOperatorList", - value: function executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var i = executionStartIdx || 0; - var argsArrayLen = argsArray.length; - - if (argsArrayLen === i) { - return i; - } - - var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; - var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; - var steps = 0; - var commonObjs = this.commonObjs; - var objs = this.objs; - var fnId; - - while (true) { - if (stepper !== undefined && i === stepper.nextBreakPoint) { - stepper.breakIt(i, continueCallback); - return i; - } - - fnId = fnArray[i]; - - if (fnId !== _util.OPS.dependency) { - this[fnId].apply(this, argsArray[i]); - } else { - var _iterator3 = _createForOfIteratorHelper(argsArray[i]), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var depObjId = _step3.value; - var objsPool = depObjId.startsWith("g_") ? commonObjs : objs; - - if (!objsPool.has(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - - i++; - - if (i === argsArrayLen) { - return i; - } - - if (chunkOperations && ++steps > EXECUTION_STEPS) { - if (Date.now() > endTime) { - continueCallback(); - return i; - } - - steps = 0; - } - } + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; } - }, { - key: "endDrawing", - value: function endDrawing() { - while (this.stateStack.length || this.inSMaskMode) { - this.restore(); - } - - this.ctx.restore(); - - if (this.transparentCanvas) { - this.ctx = this.compositeCtx; - this.ctx.save(); - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.drawImage(this.transparentCanvas, 0, 0); - this.ctx.restore(); - this.transparentCanvas = null; - } - - this.cachedCanvases.clear(); - this.cachedPatterns.clear(); - - var _iterator4 = _createForOfIteratorHelper(this._cachedBitmapsMap.values()), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var cache = _step4.value; - - var _iterator5 = _createForOfIteratorHelper(cache.values()), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var canvas = _step5.value; - - if (typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement) { - canvas.width = canvas.height = 0; - } - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - cache.clear(); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - - this._cachedBitmapsMap.clear(); - - if (this.imageLayer) { - this.imageLayer.endLayout(); - } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; } - }, { - key: "_scaleImage", - value: function _scaleImage(img, inverseTransform) { - var width = img.width; - var height = img.height; - var widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1); - var heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1); - var paintWidth = width, - paintHeight = height; - var tmpCanvasId = "prescale1"; - var tmpCanvas, tmpCtx; - - while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { - var newWidth = paintWidth, - newHeight = paintHeight; - - if (widthScale > 2 && paintWidth > 1) { - newWidth = Math.ceil(paintWidth / 2); - widthScale /= paintWidth / newWidth; - } - - if (heightScale > 2 && paintHeight > 1) { - newHeight = Math.ceil(paintHeight / 2); - heightScale /= paintHeight / newHeight; - } - - tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight, false); - tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, newWidth, newHeight); - tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); - img = tmpCanvas.canvas; - paintWidth = newWidth; - paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; - } - - return { - img: img, - paintWidth: paintWidth, - paintHeight: paintHeight - }; + } + pos = lineSize * (height - 1); + j0 = i * width1; + if (data[pos] !== 0) { + points[j0] = 8; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; } - }, { - key: "_createMaskCanvas", - value: function _createMaskCanvas(img) { - var ctx = this.ctx; - var width = img.width, - height = img.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var currentTransform = ctx.mozCurrentTransform; - var cache, cacheKey, scaled, maskCanvas; - - if ((img.bitmap || img.data) && img.count > 1) { - var mainKey = img.bitmap || img.data.buffer; - var withoutTranslation = currentTransform.slice(0, 4); - cacheKey = JSON.stringify(isPatternFill ? withoutTranslation : [withoutTranslation, fillColor]); - cache = this._cachedBitmapsMap.get(mainKey); - - if (!cache) { - cache = new Map(); - - this._cachedBitmapsMap.set(mainKey, cache); - } - - var cachedImage = cache.get(cacheKey); - - if (cachedImage && !isPatternFill) { - var _offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]); - - var _offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]); - - return { - canvas: cachedImage, - offsetX: _offsetX, - offsetY: _offsetY - }; - } - - scaled = cachedImage; - } - - if (!scaled) { - maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height, false); - putBinaryImageMask(maskCanvas.context, img); - } - - var maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]); - - maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]); - - var cord1 = _util.Util.applyTransform([0, 0], maskToCanvas); - - var cord2 = _util.Util.applyTransform([width, height], maskToCanvas); - - var rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]); - - var drawnWidth = Math.round(rect[2] - rect[0]) || 1; - var drawnHeight = Math.round(rect[3] - rect[1]) || 1; - var fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight, true); - var fillCtx = fillCanvas.context; - var offsetX = Math.min(cord1[0], cord2[0]); - var offsetY = Math.min(cord1[1], cord2[1]); - fillCtx.translate(-offsetX, -offsetY); - fillCtx.transform.apply(fillCtx, maskToCanvas); - - if (!scaled) { - scaled = this._scaleImage(maskCanvas.canvas, fillCtx.mozCurrentTransformInverse); - scaled = scaled.img; - - if (cache && isPatternFill) { - cache.set(cacheKey, scaled); - } - } - - fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(fillCtx.mozCurrentTransform, img.interpolate); - drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); - fillCtx.globalCompositeOperation = "source-in"; - - var inverse = _util.Util.transform(fillCtx.mozCurrentTransformInverse, [1, 0, 0, 1, -offsetX, -offsetY]); - - fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor; - fillCtx.fillRect(0, 0, width, height); - - if (cache && !isPatternFill) { - this.cachedCanvases["delete"]("fillCanvas"); - cache.set(cacheKey, fillCanvas.canvas); - } - - return { - canvas: fillCanvas.canvas, - offsetX: Math.round(offsetX), - offsetY: Math.round(offsetY) - }; + pos++; + } + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + const path = new Path2D(); + for (i = 0; count && i <= height; i++) { + let p = i * width1; + const end = p + width; + while (p < end && !points[p]) { + p++; } - }, { - key: "setLineWidth", - value: function setLineWidth(width) { - if (width !== this.current.lineWidth) { - this._cachedScaleForStroking = null; - } - - this.current.lineWidth = width; - this.ctx.lineWidth = width; - } - }, { - key: "setLineCap", - value: function setLineCap(style) { - this.ctx.lineCap = LINE_CAP_STYLES[style]; - } - }, { - key: "setLineJoin", - value: function setLineJoin(style) { - this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - } - }, { - key: "setMiterLimit", - value: function setMiterLimit(limit) { - this.ctx.miterLimit = limit; - } - }, { - key: "setDash", - value: function setDash(dashArray, dashPhase) { - var ctx = this.ctx; - - if (ctx.setLineDash !== undefined) { - ctx.setLineDash(dashArray); - ctx.lineDashOffset = dashPhase; - } - } - }, { - key: "setRenderingIntent", - value: function setRenderingIntent(intent) {} - }, { - key: "setFlatness", - value: function setFlatness(flatness) {} - }, { - key: "setGState", - value: function setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; - - switch (key) { - case "LW": - this.setLineWidth(value); - break; - - case "LC": - this.setLineCap(value); - break; - - case "LJ": - this.setLineJoin(value); - break; - - case "ML": - this.setMiterLimit(value); - break; - - case "D": - this.setDash(value[0], value[1]); - break; - - case "RI": - this.setRenderingIntent(value); - break; - - case "FL": - this.setFlatness(value); - break; - - case "Font": - this.setFont(value[0], value[1]); - break; - - case "CA": - this.current.strokeAlpha = state[1]; - break; - - case "ca": - this.current.fillAlpha = state[1]; - this.ctx.globalAlpha = state[1]; - break; - - case "BM": - this.ctx.globalCompositeOperation = value; - break; - - case "SMask": - this.current.activeSMask = value ? this.tempSMask : null; - this.tempSMask = null; - this.checkSMaskState(); - break; - - case "TR": - this.current.transferMaps = value; - } + if (p === end) { + continue; + } + path.moveTo(p % width1, i); + const p0 = p; + let type = points[p]; + do { + const step = steps[type]; + do { + p += step; + } while (!points[p]); + const pp = points[p]; + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + path.lineTo(p % width1, p / width1 | 0); + if (!points[p]) { + --count; } + } while (p0 !== p); + --i; + } + data = null; + points = null; + const drawOutline = function (c) { + c.save(); + c.scale(1 / width, -1 / height); + c.translate(0, -height); + c.fill(path); + c.beginPath(); + c.restore(); + }; + return drawOutline; +} +class CanvasExtraState { + constructor(width, height) { + this.alphaIsShape = false; + this.fontSize = 0; + this.fontSizeScale = 1; + this.textMatrix = _util.IDENTITY_MATRIX; + this.textMatrixScale = 1; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textRise = 0; + this.fillColor = "#000000"; + this.strokeColor = "#000000"; + this.patternFill = false; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.activeSMask = null; + this.transferMaps = null; + this.startNewPathAndClipBox([0, 0, width, height]); + } + clone() { + const clone = Object.create(this); + clone.clipBox = this.clipBox.slice(); + return clone; + } + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + updatePathMinMax(transform, x, y) { + [x, y] = _util.Util.applyTransform([x, y], transform); + this.minX = Math.min(this.minX, x); + this.minY = Math.min(this.minY, y); + this.maxX = Math.max(this.maxX, x); + this.maxY = Math.max(this.maxY, y); + } + updateRectMinMax(transform, rect) { + const p1 = _util.Util.applyTransform(rect, transform); + const p2 = _util.Util.applyTransform(rect.slice(2), transform); + this.minX = Math.min(this.minX, p1[0], p2[0]); + this.minY = Math.min(this.minY, p1[1], p2[1]); + this.maxX = Math.max(this.maxX, p1[0], p2[0]); + this.maxY = Math.max(this.maxY, p1[1], p2[1]); + } + updateScalingPathMinMax(transform, minMax) { + _util.Util.scaleMinMax(transform, minMax); + this.minX = Math.min(this.minX, minMax[0]); + this.maxX = Math.max(this.maxX, minMax[1]); + this.minY = Math.min(this.minY, minMax[2]); + this.maxY = Math.max(this.maxY, minMax[3]); + } + updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) { + const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3); + if (minMax) { + minMax[0] = Math.min(minMax[0], box[0], box[2]); + minMax[1] = Math.max(minMax[1], box[0], box[2]); + minMax[2] = Math.min(minMax[2], box[1], box[3]); + minMax[3] = Math.max(minMax[3], box[1], box[3]); + return; } - }, { - key: "inSMaskMode", - get: function get() { - return !!this.suspendedCtx; + this.updateRectMinMax(transform, box); + } + getPathBoundingBox() { + let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL; + let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const box = [this.minX, this.minY, this.maxX, this.maxY]; + if (pathType === _pattern_helper.PathType.STROKE) { + if (!transform) { + (0, _util.unreachable)("Stroke bounding box must include transform."); + } + const scale = _util.Util.singularValueDecompose2dScale(transform); + const xStrokePad = scale[0] * this.lineWidth / 2; + const yStrokePad = scale[1] * this.lineWidth / 2; + box[0] -= xStrokePad; + box[1] -= yStrokePad; + box[2] += xStrokePad; + box[3] += yStrokePad; + } + return box; + } + updateClipFromPath() { + const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox()); + this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]); + } + isEmptyClip() { + return this.minX === Infinity; + } + startNewPathAndClipBox(box) { + this.clipBox = box; + this.minX = Infinity; + this.minY = Infinity; + this.maxX = 0; + this.maxY = 0; + } + getClippedPathBoundingBox() { + let pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _pattern_helper.PathType.FILL; + let transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform)); + } +} +function putBinaryImageData(ctx, imgData) { + let transferMaps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { + ctx.putImageData(imgData, 0, 0); + return; + } + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0, + destPos; + const src = imgData.data; + const dest = chunkImgData.data; + let i, j, thisChunkHeight, elemsInThisChunk; + let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray; + if (transferMaps) { + switch (transferMaps.length) { + case 1: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[0]; + transferMapBlue = transferMaps[0]; + transferMapGray = transferMaps[0]; + break; + case 4: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[1]; + transferMapBlue = transferMaps[2]; + transferMapGray = transferMaps[3]; + break; } - }, { - key: "checkSMaskState", - value: function checkSMaskState() { - var inSMaskMode = this.inSMaskMode; - - if (this.current.activeSMask && !inSMaskMode) { - this.beginSMaskMode(); - } else if (!this.current.activeSMask && inSMaskMode) { - this.endSMaskMode(); + } + if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { + const srcLength = src.byteLength; + const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + const dest32DataLength = dest32.length; + const fullSrcDiff = width + 7 >> 3; + let white = 0xffffffff; + let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + if (transferMapGray) { + if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) { + [white, black] = [black, white]; } } - }, { - key: "beginSMaskMode", - value: function beginSMaskMode() { - if (this.inSMaskMode) { - throw new Error("beginSMaskMode called while already in smask mode"); + for (i = 0; i < totalChunks; i++) { + thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + destPos = 0; + for (j = 0; j < thisChunkHeight; j++) { + const srcDiff = srcLength - srcPos; + let k = 0; + const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + const kEndUnrolled = kEnd & ~7; + let mask = 0; + let srcByte = 0; + for (; k < kEndUnrolled; k += 8) { + srcByte = src[srcPos++]; + dest32[destPos++] = srcByte & 128 ? white : black; + dest32[destPos++] = srcByte & 64 ? white : black; + dest32[destPos++] = srcByte & 32 ? white : black; + dest32[destPos++] = srcByte & 16 ? white : black; + dest32[destPos++] = srcByte & 8 ? white : black; + dest32[destPos++] = srcByte & 4 ? white : black; + dest32[destPos++] = srcByte & 2 ? white : black; + dest32[destPos++] = srcByte & 1 ? white : black; + } + for (; k < kEnd; k++) { + if (mask === 0) { + srcByte = src[srcPos++]; + mask = 128; + } + dest32[destPos++] = srcByte & mask ? white : black; + mask >>= 1; + } } - - var drawnWidth = this.ctx.canvas.width; - var drawnHeight = this.ctx.canvas.height; - var cacheId = "smaskGroupAt" + this.groupLevel; - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - this.suspendedCtx = this.ctx; - this.ctx = scratchCanvas.context; - var ctx = this.ctx; - ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform); - copyCtxState(this.suspendedCtx, ctx); - mirrorContextOperations(ctx, this.suspendedCtx); - this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); - } - }, { - key: "endSMaskMode", - value: function endSMaskMode() { - if (!this.inSMaskMode) { - throw new Error("endSMaskMode called while not in smask mode"); + while (destPos < dest32DataLength) { + dest32[destPos++] = 0; } - - this.ctx._removeMirroring(); - - copyCtxState(this.ctx, this.suspendedCtx); - this.ctx = this.suspendedCtx; - this.suspendedCtx = null; + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } - }, { - key: "compose", - value: function compose(dirtyBox) { - if (!this.current.activeSMask) { - return; - } - - if (!dirtyBox) { - dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height]; - } else { - dirtyBox[0] = Math.floor(dirtyBox[0]); - dirtyBox[1] = Math.floor(dirtyBox[1]); - dirtyBox[2] = Math.ceil(dirtyBox[2]); - dirtyBox[3] = Math.ceil(dirtyBox[3]); + } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); + j = 0; + elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; + for (i = 0; i < fullChunks; i++) { + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + srcPos += elemsInThisChunk; + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } } - - var smask = this.current.activeSMask; - var suspendedCtx = this.suspendedCtx; - composeSMask(suspendedCtx, smask, this.ctx, dirtyBox); - this.ctx.save(); - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height); - this.ctx.restore(); + ctx.putImageData(chunkImgData, 0, j); + j += FULL_CHUNK_HEIGHT; } - }, { - key: "save", - value: function save() { - if (this.inSMaskMode) { - copyCtxState(this.ctx, this.suspendedCtx); - this.suspendedCtx.save(); - } else { - this.ctx.save(); + if (i < totalChunks) { + elemsInThisChunk = width * partialChunkHeight * 4; + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } } - - var old = this.current; - this.stateStack.push(old); - this.current = old.clone(); + ctx.putImageData(chunkImgData, 0, j); } - }, { - key: "restore", - value: function restore() { - if (this.stateStack.length === 0 && this.inSMaskMode) { - this.endSMaskMode(); + } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); + thisChunkHeight = FULL_CHUNK_HEIGHT; + elemsInThisChunk = width * thisChunkHeight; + for (i = 0; i < totalChunks; i++) { + if (i >= fullChunks) { + thisChunkHeight = partialChunkHeight; + elemsInThisChunk = width * thisChunkHeight; } - - if (this.stateStack.length !== 0) { - this.current = this.stateStack.pop(); - - if (this.inSMaskMode) { - this.suspendedCtx.restore(); - copyCtxState(this.suspendedCtx, this.ctx); - } else { - this.ctx.restore(); + destPos = 0; + for (j = elemsInThisChunk; j--;) { + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = 255; + } + if (hasTransferMaps) { + for (let k = 0; k < destPos; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } } - - this.checkSMaskState(); - this.pendingClip = null; - this._cachedScaleForStroking = null; - this._cachedGetSinglePixelWidth = null; } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } - }, { - key: "transform", - value: function transform(a, b, c, d, e, f) { - this.ctx.transform(a, b, c, d, e, f); - this._cachedScaleForStroking = null; - this._cachedGetSinglePixelWidth = null; + } else { + throw new Error(`bad image kind: ${imgData.kind}`); + } +} +function putBinaryImageMask(ctx, imgData) { + if (imgData.bitmap) { + ctx.drawImage(imgData.bitmap, 0, 0); + return; + } + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0; + const src = imgData.data; + const dest = chunkImgData.data; + for (let i = 0; i < totalChunks; i++) { + const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + ({ + srcPos + } = (0, _image_utils.applyMaskImageData)({ + src, + srcPos, + dest, + width, + height: thisChunkHeight + })); + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } +} +function copyCtxState(sourceCtx, destCtx) { + const properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"]; + for (const property of properties) { + if (sourceCtx[property] !== undefined) { + destCtx[property] = sourceCtx[property]; } - }, { - key: "constructPath", - value: function constructPath(ops, args, minMax) { - var ctx = this.ctx; - var current = this.current; - var x = current.x, - y = current.y; - var startX, startY; - var currentTransform = ctx.mozCurrentTransform; - var isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0; - var minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null; - - for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { - switch (ops[i] | 0) { - case _util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - var xw = x + width; - var yh = y + height; - ctx.moveTo(x, y); - - if (width === 0 || height === 0) { - ctx.lineTo(xw, yh); - } else { - ctx.lineTo(xw, y); - ctx.lineTo(xw, yh); - ctx.lineTo(x, yh); - } - - if (!isScalingMatrix) { - current.updateRectMinMax(currentTransform, [x, y, xw, yh]); - } - - ctx.closePath(); - break; - - case _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - ctx.moveTo(x, y); - - if (!isScalingMatrix) { - current.updatePathMinMax(currentTransform, x, y); - } - - break; - - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - ctx.lineTo(x, y); - - if (!isScalingMatrix) { - current.updatePathMinMax(currentTransform, x, y); - } - - break; - - case _util.OPS.curveTo: - startX = x; - startY = y; - x = args[j + 4]; - y = args[j + 5]; - ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); - current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier); - j += 6; - break; - - case _util.OPS.curveTo2: - startX = x; - startY = y; - ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); - current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier); - x = args[j + 2]; - y = args[j + 3]; - j += 4; - break; - - case _util.OPS.curveTo3: - startX = x; - startY = y; - x = args[j + 2]; - y = args[j + 3]; - ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); - current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier); - j += 4; - break; - - case _util.OPS.closePath: - ctx.closePath(); - break; - } - } - - if (isScalingMatrix) { - current.updateScalingPathMinMax(currentTransform, minMaxForBezier); - } - - current.setCurrentPoint(x, y); + } + if (sourceCtx.setLineDash !== undefined) { + destCtx.setLineDash(sourceCtx.getLineDash()); + destCtx.lineDashOffset = sourceCtx.lineDashOffset; + } +} +function resetCtxToDefault(ctx, foregroundColor) { + ctx.strokeStyle = ctx.fillStyle = foregroundColor || "#000000"; + ctx.fillRule = "nonzero"; + ctx.globalAlpha = 1; + ctx.lineWidth = 1; + ctx.lineCap = "butt"; + ctx.lineJoin = "miter"; + ctx.miterLimit = 10; + ctx.globalCompositeOperation = "source-over"; + ctx.font = "10px sans-serif"; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash([]); + ctx.lineDashOffset = 0; + } +} +function composeSMaskBackdrop(bytes, r0, g0, b0) { + const length = bytes.length; + for (let i = 3; i < length; i += 4) { + const alpha = bytes[i]; + if (alpha === 0) { + bytes[i - 3] = r0; + bytes[i - 2] = g0; + bytes[i - 1] = b0; + } else if (alpha < 255) { + const alpha_ = 255 - alpha; + bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; + bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; + bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; } - }, { - key: "closePath", - value: function closePath() { - this.ctx.closePath(); + } +} +function composeSMaskAlpha(maskData, layerData, transferMap) { + const length = maskData.length; + const scale = 1 / 255; + for (let i = 3; i < length; i += 4) { + const alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + layerData[i] = layerData[i] * alpha * scale | 0; + } +} +function composeSMaskLuminosity(maskData, layerData, transferMap) { + const length = maskData.length; + for (let i = 3; i < length; i += 4) { + const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; + } +} +function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) { + const hasBackdrop = !!backdrop; + const r0 = hasBackdrop ? backdrop[0] : 0; + const g0 = hasBackdrop ? backdrop[1] : 0; + const b0 = hasBackdrop ? backdrop[2] : 0; + let composeFn; + if (subtype === "Luminosity") { + composeFn = composeSMaskLuminosity; + } else { + composeFn = composeSMaskAlpha; + } + const PIXELS_TO_PROCESS = 1048576; + const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + for (let row = 0; row < height; row += chunkSize) { + const chunkHeight = Math.min(chunkSize, height - row); + const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight); + const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight); + if (hasBackdrop) { + composeSMaskBackdrop(maskData.data, r0, g0, b0); } - }, { - key: "stroke", - value: function stroke(consumePath) { - consumePath = typeof consumePath !== "undefined" ? consumePath : true; - var ctx = this.ctx; - var strokeColor = this.current.strokeColor; - ctx.globalAlpha = this.current.strokeAlpha; - - if (this.contentVisible) { - if (_typeof(strokeColor) === "object" && strokeColor !== null && strokeColor !== void 0 && strokeColor.getPattern) { - ctx.save(); - ctx.strokeStyle = strokeColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.STROKE); - this.rescaleAndStroke(false); - ctx.restore(); - } else { - this.rescaleAndStroke(true); - } - } - - if (consumePath) { - this.consumePath(this.current.getClippedPathBoundingBox()); + composeFn(maskData.data, layerData.data, transferMap); + layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY); + } +} +function composeSMask(ctx, smask, layerCtx, layerBox) { + const layerOffsetX = layerBox[0]; + const layerOffsetY = layerBox[1]; + const layerWidth = layerBox[2] - layerOffsetX; + const layerHeight = layerBox[3] - layerOffsetY; + if (layerWidth === 0 || layerHeight === 0) { + return; + } + genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY); + ctx.save(); + ctx.globalAlpha = 1; + ctx.globalCompositeOperation = "source-over"; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(layerCtx.canvas, 0, 0); + ctx.restore(); +} +function getImageSmoothingEnabled(transform, interpolate) { + const scale = _util.Util.singularValueDecompose2dScale(transform); + scale[0] = Math.fround(scale[0]); + scale[1] = Math.fround(scale[1]); + const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); + if (interpolate !== undefined) { + return interpolate; + } else if (scale[0] <= actualScale || scale[1] <= actualScale) { + return true; + } + return false; +} +const LINE_CAP_STYLES = ["butt", "round", "square"]; +const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; +const NORMAL_CLIP = {}; +const EO_CLIP = {}; +var _restoreInitialState = /*#__PURE__*/new WeakSet(); +class CanvasGraphics { + constructor(canvasCtx, commonObjs, objs, canvasFactory, optionalContentConfig, annotationCanvasMap, pageColors) { + _classPrivateMethodInitSpec(this, _restoreInitialState); + this.ctx = canvasCtx; + this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.suspendedCtx = null; + this.contentVisible = true; + this.markedContentStack = []; + this.optionalContentConfig = optionalContentConfig; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + this.cachedPatterns = new Map(); + this.annotationCanvasMap = annotationCanvasMap; + this.viewportScale = 1; + this.outputScaleX = 1; + this.outputScaleY = 1; + this.backgroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.background) || null; + this.foregroundColor = (pageColors === null || pageColors === void 0 ? void 0 : pageColors.foreground) || null; + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + this._cachedBitmapsMap = new Map(); + } + getObject(data) { + let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (typeof data === "string") { + return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); + } + return fallback; + } + beginDrawing(_ref) { + let { + transform, + viewport, + transparency = false, + background = null + } = _ref; + const width = this.ctx.canvas.width; + const height = this.ctx.canvas.height; + const defaultBackgroundColor = background || "#ffffff"; + this.ctx.save(); + if (this.foregroundColor && this.backgroundColor) { + this.ctx.fillStyle = this.foregroundColor; + const fg = this.foregroundColor = this.ctx.fillStyle; + this.ctx.fillStyle = this.backgroundColor; + const bg = this.backgroundColor = this.ctx.fillStyle; + let isValidDefaultBg = true; + let defaultBg = defaultBackgroundColor; + this.ctx.fillStyle = defaultBackgroundColor; + defaultBg = this.ctx.fillStyle; + isValidDefaultBg = typeof defaultBg === "string" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg); + if (fg === "#000000" && bg === "#ffffff" || fg === bg || !isValidDefaultBg) { + this.foregroundColor = this.backgroundColor = null; + } else { + const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg); + const newComp = x => { + x /= 255; + return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4; + }; + const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB)); + this.selectColor = (r, g, b) => { + const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b); + return Math.round(lumC) === lumB ? bg : fg; + }; } - - ctx.globalAlpha = this.current.fillAlpha; - } - }, { - key: "closeStroke", - value: function closeStroke() { - this.closePath(); - this.stroke(); } - }, { - key: "fill", - value: function fill(consumePath) { - consumePath = typeof consumePath !== "undefined" ? consumePath : true; - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var needRestore = false; - - if (isPatternFill) { - ctx.save(); - ctx.fillStyle = fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL); - needRestore = true; + this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor; + this.ctx.fillRect(0, 0, width, height); + this.ctx.restore(); + if (transparency) { + const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height); + this.compositeCtx = this.ctx; + this.transparentCanvas = transparentCanvas.canvas; + this.ctx = transparentCanvas.context; + this.ctx.save(); + this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx)); + } + this.ctx.save(); + resetCtxToDefault(this.ctx, this.foregroundColor); + if (transform) { + this.ctx.transform(...transform); + this.outputScaleX = transform[0]; + this.outputScaleY = transform[0]; + } + this.ctx.transform(...viewport.transform); + this.viewportScale = viewport.scale; + this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx); + } + executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + let i = executionStartIdx || 0; + const argsArrayLen = argsArray.length; + if (argsArrayLen === i) { + return i; + } + const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; + const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + let steps = 0; + const commonObjs = this.commonObjs; + const objs = this.objs; + let fnId; + while (true) { + if (stepper !== undefined && i === stepper.nextBreakPoint) { + stepper.breakIt(i, continueCallback); + return i; } - - var intersect = this.current.getClippedPathBoundingBox(); - - if (this.contentVisible && intersect !== null) { - if (this.pendingEOFill) { - ctx.fill("evenodd"); - this.pendingEOFill = false; - } else { - ctx.fill(); + fnId = fnArray[i]; + if (fnId !== _util.OPS.dependency) { + this[fnId].apply(this, argsArray[i]); + } else { + for (const depObjId of argsArray[i]) { + const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; + } } } - - if (needRestore) { - ctx.restore(); - } - - if (consumePath) { - this.consumePath(intersect); + i++; + if (i === argsArrayLen) { + return i; } + if (chunkOperations && ++steps > EXECUTION_STEPS) { + if (Date.now() > endTime) { + continueCallback(); + return i; + } + steps = 0; + } + } + } + endDrawing() { + _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this); + this.cachedCanvases.clear(); + this.cachedPatterns.clear(); + for (const cache of this._cachedBitmapsMap.values()) { + for (const canvas of cache.values()) { + if (typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement) { + canvas.width = canvas.height = 0; + } + } + cache.clear(); + } + this._cachedBitmapsMap.clear(); + } + _scaleImage(img, inverseTransform) { + const width = img.width; + const height = img.height; + let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1); + let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1); + let paintWidth = width, + paintHeight = height; + let tmpCanvasId = "prescale1"; + let tmpCanvas, tmpCtx; + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + let newWidth = paintWidth, + newHeight = paintHeight; + if (widthScale > 2 && paintWidth > 1) { + newWidth = Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; + } + if (heightScale > 2 && paintHeight > 1) { + newHeight = Math.ceil(paintHeight / 2); + heightScale /= paintHeight / newHeight; + } + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + img = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; } - }, { - key: "eoFill", - value: function eoFill() { - this.pendingEOFill = true; - this.fill(); - } - }, { - key: "fillStroke", - value: function fillStroke() { - this.fill(false); - this.stroke(false); - this.consumePath(); - } - }, { - key: "eoFillStroke", - value: function eoFillStroke() { - this.pendingEOFill = true; - this.fillStroke(); - } - }, { - key: "closeFillStroke", - value: function closeFillStroke() { - this.closePath(); - this.fillStroke(); - } - }, { - key: "closeEOFillStroke", - value: function closeEOFillStroke() { - this.pendingEOFill = true; - this.closePath(); - this.fillStroke(); - } - }, { - key: "endPath", - value: function endPath() { - this.consumePath(); - } - }, { - key: "clip", - value: function clip() { - this.pendingClip = NORMAL_CLIP; - } - }, { - key: "eoClip", - value: function eoClip() { - this.pendingClip = EO_CLIP; - } - }, { - key: "beginText", - value: function beginText() { - this.current.textMatrix = _util.IDENTITY_MATRIX; - this.current.textMatrixScale = 1; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - } - }, { - key: "endText", - value: function endText() { - var paths = this.pendingTextPaths; - var ctx = this.ctx; - - if (paths === undefined) { - ctx.beginPath(); - return; - } - - ctx.save(); - ctx.beginPath(); - - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - ctx.setTransform.apply(ctx, path.transform); - ctx.translate(path.x, path.y); - path.addToPath(ctx, path.fontSize); + return { + img, + paintWidth, + paintHeight + }; + } + _createMaskCanvas(img) { + const ctx = this.ctx; + const { + width, + height + } = img; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + let cache, cacheKey, scaled, maskCanvas; + if ((img.bitmap || img.data) && img.count > 1) { + const mainKey = img.bitmap || img.data.buffer; + cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]); + cache = this._cachedBitmapsMap.get(mainKey); + if (!cache) { + cache = new Map(); + this._cachedBitmapsMap.set(mainKey, cache); + } + const cachedImage = cache.get(cacheKey); + if (cachedImage && !isPatternFill) { + const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]); + const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]); + return { + canvas: cachedImage, + offsetX, + offsetY + }; } - - ctx.restore(); - ctx.clip(); - ctx.beginPath(); - delete this.pendingTextPaths; - } - }, { - key: "setCharSpacing", - value: function setCharSpacing(spacing) { - this.current.charSpacing = spacing; + scaled = cachedImage; + } + if (!scaled) { + maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + putBinaryImageMask(maskCanvas.context, img); + } + let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]); + maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]); + const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas); + const cord2 = _util.Util.applyTransform([width, height], maskToCanvas); + const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]); + const drawnWidth = Math.round(rect[2] - rect[0]) || 1; + const drawnHeight = Math.round(rect[3] - rect[1]) || 1; + const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight); + const fillCtx = fillCanvas.context; + const offsetX = Math.min(cord1[0], cord2[0]); + const offsetY = Math.min(cord1[1], cord2[1]); + fillCtx.translate(-offsetX, -offsetY); + fillCtx.transform(...maskToCanvas); + if (!scaled) { + scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx)); + scaled = scaled.img; + if (cache && isPatternFill) { + cache.set(cacheKey, scaled); + } + } + fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate); + drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); + fillCtx.globalCompositeOperation = "source-in"; + const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]); + fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor; + fillCtx.fillRect(0, 0, width, height); + if (cache && !isPatternFill) { + this.cachedCanvases.delete("fillCanvas"); + cache.set(cacheKey, fillCanvas.canvas); } - }, { - key: "setWordSpacing", - value: function setWordSpacing(spacing) { - this.current.wordSpacing = spacing; - } - }, { - key: "setHScale", - value: function setHScale(scale) { - this.current.textHScale = scale / 100; + return { + canvas: fillCanvas.canvas, + offsetX: Math.round(offsetX), + offsetY: Math.round(offsetY) + }; + } + setLineWidth(width) { + if (width !== this.current.lineWidth) { + this._cachedScaleForStroking = null; } - }, { - key: "setLeading", - value: function setLeading(leading) { - this.current.leading = -leading; + this.current.lineWidth = width; + this.ctx.lineWidth = width; + } + setLineCap(style) { + this.ctx.lineCap = LINE_CAP_STYLES[style]; + } + setLineJoin(style) { + this.ctx.lineJoin = LINE_JOIN_STYLES[style]; + } + setMiterLimit(limit) { + this.ctx.miterLimit = limit; + } + setDash(dashArray, dashPhase) { + const ctx = this.ctx; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash(dashArray); + ctx.lineDashOffset = dashPhase; } - }, { - key: "setFont", - value: function setFont(fontRefName, size) { - var fontObj = this.commonObjs.get(fontRefName); - var current = this.current; - - if (!fontObj) { - throw new Error("Can't find font for ".concat(fontRefName)); - } - - current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; - - if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { - (0, _util.warn)("Invalid font matrix for font " + fontRefName); - } - - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - - this.current.font = fontObj; - this.current.fontSize = size; - - if (fontObj.isType3Font) { - return; - } - - var name = fontObj.loadedName || "sans-serif"; - var bold = "normal"; - - if (fontObj.black) { - bold = "900"; - } else if (fontObj.bold) { - bold = "bold"; - } - - var italic = fontObj.italic ? "italic" : "normal"; - var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); - var browserFontSize = size; - - if (size < MIN_FONT_SIZE) { - browserFontSize = MIN_FONT_SIZE; - } else if (size > MAX_FONT_SIZE) { - browserFontSize = MAX_FONT_SIZE; + } + setRenderingIntent(intent) {} + setFlatness(flatness) {} + setGState(states) { + for (const [key, value] of states) { + switch (key) { + case "LW": + this.setLineWidth(value); + break; + case "LC": + this.setLineCap(value); + break; + case "LJ": + this.setLineJoin(value); + break; + case "ML": + this.setMiterLimit(value); + break; + case "D": + this.setDash(value[0], value[1]); + break; + case "RI": + this.setRenderingIntent(value); + break; + case "FL": + this.setFlatness(value); + break; + case "Font": + this.setFont(value[0], value[1]); + break; + case "CA": + this.current.strokeAlpha = value; + break; + case "ca": + this.current.fillAlpha = value; + this.ctx.globalAlpha = value; + break; + case "BM": + this.ctx.globalCompositeOperation = value; + break; + case "SMask": + this.current.activeSMask = value ? this.tempSMask : null; + this.tempSMask = null; + this.checkSMaskState(); + break; + case "TR": + this.current.transferMaps = value; } - - this.current.fontSizeScale = size / browserFontSize; - this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); - } - }, { - key: "setTextRenderingMode", - value: function setTextRenderingMode(mode) { - this.current.textRenderingMode = mode; } - }, { - key: "setTextRise", - value: function setTextRise(rise) { - this.current.textRise = rise; + } + get inSMaskMode() { + return !!this.suspendedCtx; + } + checkSMaskState() { + const inSMaskMode = this.inSMaskMode; + if (this.current.activeSMask && !inSMaskMode) { + this.beginSMaskMode(); + } else if (!this.current.activeSMask && inSMaskMode) { + this.endSMaskMode(); } - }, { - key: "moveText", - value: function moveText(x, y) { - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; + } + beginSMaskMode() { + if (this.inSMaskMode) { + throw new Error("beginSMaskMode called while already in smask mode"); } - }, { - key: "setLeadingMoveText", - value: function setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); + const drawnWidth = this.ctx.canvas.width; + const drawnHeight = this.ctx.canvas.height; + const cacheId = "smaskGroupAt" + this.groupLevel; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); + this.suspendedCtx = this.ctx; + this.ctx = scratchCanvas.context; + const ctx = this.ctx; + ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx)); + copyCtxState(this.suspendedCtx, ctx); + mirrorContextOperations(ctx, this.suspendedCtx); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); + } + endSMaskMode() { + if (!this.inSMaskMode) { + throw new Error("endSMaskMode called while not in smask mode"); } - }, { - key: "setTextMatrix", - value: function setTextMatrix(a, b, c, d, e, f) { - this.current.textMatrix = [a, b, c, d, e, f]; - this.current.textMatrixScale = Math.hypot(a, b); - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - } - }, { - key: "nextLine", - value: function nextLine() { - this.moveText(0, this.current.leading); + this.ctx._removeMirroring(); + copyCtxState(this.ctx, this.suspendedCtx); + this.ctx = this.suspendedCtx; + this.suspendedCtx = null; + } + compose(dirtyBox) { + if (!this.current.activeSMask) { + return; } - }, { - key: "paintChar", - value: function paintChar(character, x, y, patternTransform) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var textRenderingMode = current.textRenderingMode; - var fontSize = current.fontSize / current.fontSizeScale; - var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); - var patternFill = current.patternFill && !font.missingFile; - var addToPath; - - if (font.disableFontFace || isAddToPathSet || patternFill) { - addToPath = font.getPathGenerator(this.commonObjs, character); - } - - if (font.disableFontFace || patternFill) { - ctx.save(); - ctx.translate(x, y); - ctx.beginPath(); - addToPath(ctx, fontSize); - - if (patternTransform) { - ctx.setTransform.apply(ctx, patternTransform); - } - - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.fill(); - } - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.stroke(); - } - - ctx.restore(); - } else { - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.fillText(character, x, y); - } - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.strokeText(character, x, y); - } - } - - if (isAddToPathSet) { - var paths = this.pendingTextPaths || (this.pendingTextPaths = []); - paths.push({ - transform: ctx.mozCurrentTransform, - x: x, - y: y, - fontSize: fontSize, - addToPath: addToPath - }); - } + if (!dirtyBox) { + dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height]; + } else { + dirtyBox[0] = Math.floor(dirtyBox[0]); + dirtyBox[1] = Math.floor(dirtyBox[1]); + dirtyBox[2] = Math.ceil(dirtyBox[2]); + dirtyBox[3] = Math.ceil(dirtyBox[3]); + } + const smask = this.current.activeSMask; + const suspendedCtx = this.suspendedCtx; + composeSMask(suspendedCtx, smask, this.ctx, dirtyBox); + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height); + this.ctx.restore(); + } + save() { + if (this.inSMaskMode) { + copyCtxState(this.ctx, this.suspendedCtx); + this.suspendedCtx.save(); + } else { + this.ctx.save(); } - }, { - key: "isFontSubpixelAAEnabled", - get: function get() { - var _this$cachedCanvases$ = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10, false), - ctx = _this$cachedCanvases$.context; - - ctx.scale(1.5, 1); - ctx.fillText("I", 0, 10); - var data = ctx.getImageData(0, 0, 10, 10).data; - var enabled = false; - - for (var i = 3; i < data.length; i += 4) { - if (data[i] > 0 && data[i] < 255) { - enabled = true; - break; - } - } - - return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled); + const old = this.current; + this.stateStack.push(old); + this.current = old.clone(); + } + restore() { + if (this.stateStack.length === 0 && this.inSMaskMode) { + this.endSMaskMode(); } - }, { - key: "showText", - value: function showText(glyphs) { - var current = this.current; - var font = current.font; - - if (font.isType3Font) { - return this.showType3Text(glyphs); - } - - var fontSize = current.fontSize; - - if (fontSize === 0) { - return undefined; - } - - var ctx = this.ctx; - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var spacingDir = vertical ? 1 : -1; - var defaultVMetrics = font.defaultVMetrics; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y + current.textRise); - - if (fontDirection > 0) { - ctx.scale(textHScale, -1); - } else { - ctx.scale(textHScale, 1); - } - - var patternTransform; - - if (current.patternFill) { - ctx.save(); - var pattern = current.fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL); - patternTransform = ctx.mozCurrentTransform; - ctx.restore(); - ctx.fillStyle = pattern; - } - - var lineWidth = current.lineWidth; - var scale = current.textMatrixScale; - - if (scale === 0 || lineWidth === 0) { - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - lineWidth = this.getSinglePixelWidth(); - } + if (this.stateStack.length !== 0) { + this.current = this.stateStack.pop(); + if (this.inSMaskMode) { + this.suspendedCtx.restore(); + copyCtxState(this.suspendedCtx, this.ctx); } else { - lineWidth /= scale; - } - - if (fontSizeScale !== 1.0) { - ctx.scale(fontSizeScale, fontSizeScale); - lineWidth /= fontSizeScale; + this.ctx.restore(); } - - ctx.lineWidth = lineWidth; - var x = 0, - i; - - for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; - - if (typeof glyph === "number") { - x += spacingDir * glyph * fontSize / 1000; - continue; - } - - var restoreNeeded = false; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var character = glyph.fontChar; - var accent = glyph.accent; - var scaledX = void 0, - scaledY = void 0; - var width = glyph.width; - - if (vertical) { - var vmetric = glyph.vmetric || defaultVMetrics; - var vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale; - var vy = vmetric[2] * widthAdvanceScale; - width = vmetric ? -vmetric[0] : width; - scaledX = vx / fontSizeScale; - scaledY = (x + vy) / fontSizeScale; - } else { - scaledX = x / fontSizeScale; - scaledY = 0; - } - - if (font.remeasure && width > 0) { - var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; - - if (width < measuredWidth && this.isFontSubpixelAAEnabled) { - var characterScaleX = width / measuredWidth; - restoreNeeded = true; - ctx.save(); - ctx.scale(characterScaleX, 1); - scaledX /= characterScaleX; - } else if (width !== measuredWidth) { - scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; - } - } - - if (this.contentVisible && (glyph.isInFont || font.missingFile)) { - if (simpleFillText && !accent) { - ctx.fillText(character, scaledX, scaledY); + this.checkSMaskState(); + this.pendingClip = null; + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + } + } + transform(a, b, c, d, e, f) { + this.ctx.transform(a, b, c, d, e, f); + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + } + constructPath(ops, args, minMax) { + const ctx = this.ctx; + const current = this.current; + let x = current.x, + y = current.y; + let startX, startY; + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0; + const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null; + for (let i = 0, j = 0, ii = ops.length; i < ii; i++) { + switch (ops[i] | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + ctx.moveTo(x, y); + if (width === 0 || height === 0) { + ctx.lineTo(xw, yh); } else { - this.paintChar(character, scaledX, scaledY, patternTransform); - - if (accent) { - var scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; - var scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; - this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); - } + ctx.lineTo(xw, y); + ctx.lineTo(xw, yh); + ctx.lineTo(x, yh); } - } - - var charWidth = void 0; - - if (vertical) { - charWidth = width * widthAdvanceScale - spacing * fontDirection; - } else { - charWidth = width * widthAdvanceScale + spacing * fontDirection; - } - - x += charWidth; - - if (restoreNeeded) { - ctx.restore(); - } + if (!isScalingMatrix) { + current.updateRectMinMax(currentTransform, [x, y, xw, yh]); + } + ctx.closePath(); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + ctx.moveTo(x, y); + if (!isScalingMatrix) { + current.updatePathMinMax(currentTransform, x, y); + } + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + ctx.lineTo(x, y); + if (!isScalingMatrix) { + current.updatePathMinMax(currentTransform, x, y); + } + break; + case _util.OPS.curveTo: + startX = x; + startY = y; + x = args[j + 4]; + y = args[j + 5]; + ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); + current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier); + j += 6; + break; + case _util.OPS.curveTo2: + startX = x; + startY = y; + ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); + current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case _util.OPS.curveTo3: + startX = x; + startY = y; + x = args[j + 2]; + y = args[j + 3]; + ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); + current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier); + j += 4; + break; + case _util.OPS.closePath: + ctx.closePath(); + break; } - - if (vertical) { - current.y -= x; + } + if (isScalingMatrix) { + current.updateScalingPathMinMax(currentTransform, minMaxForBezier); + } + current.setCurrentPoint(x, y); + } + closePath() { + this.ctx.closePath(); + } + stroke(consumePath) { + consumePath = typeof consumePath !== "undefined" ? consumePath : true; + const ctx = this.ctx; + const strokeColor = this.current.strokeColor; + ctx.globalAlpha = this.current.strokeAlpha; + if (this.contentVisible) { + if (typeof strokeColor === "object" && strokeColor !== null && strokeColor !== void 0 && strokeColor.getPattern) { + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE); + this.rescaleAndStroke(false); + ctx.restore(); } else { - current.x += x * textHScale; + this.rescaleAndStroke(true); } - - ctx.restore(); - this.compose(); - return undefined; } - }, { - key: "showType3Text", - value: function showType3Text(glyphs) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - var fontDirection = current.fontDirection; - var spacingDir = font.vertical ? 1 : -1; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var textHScale = current.textHScale * fontDirection; - var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; - var glyphsLength = glyphs.length; - var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; - var i, glyph, width, spacingLength; - - if (isTextInvisible || fontSize === 0) { - return; - } - - this._cachedScaleForStroking = null; - this._cachedGetSinglePixelWidth = null; - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.translate(current.x, current.y); - ctx.scale(textHScale, fontDirection); - - for (i = 0; i < glyphsLength; ++i) { - glyph = glyphs[i]; - - if (typeof glyph === "number") { - spacingLength = spacingDir * glyph * fontSize / 1000; - this.ctx.translate(spacingLength, 0); - current.x += spacingLength * textHScale; - continue; - } - - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var operatorList = font.charProcOperatorList[glyph.operatorListId]; - - if (!operatorList) { - (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); - continue; - } - - if (this.contentVisible) { - this.processingType3 = glyph; - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform.apply(ctx, fontMatrix); - this.executeOperatorList(operatorList); - this.restore(); - } - - var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); - - width = transformed[0] * fontSize + spacing; - ctx.translate(width, 0); - current.x += width * textHScale; - } - - ctx.restore(); - this.processingType3 = null; - } - }, { - key: "setCharWidth", - value: function setCharWidth(xWidth, yWidth) {} - }, { - key: "setCharWidthAndBounds", - value: function setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { - this.ctx.rect(llx, lly, urx - llx, ury - lly); - this.ctx.clip(); - this.endPath(); + if (consumePath) { + this.consumePath(this.current.getClippedPathBoundingBox()); } - }, { - key: "getColorN_Pattern", - value: function getColorN_Pattern(IR) { - var _this = this; - - var pattern; - - if (IR[0] === "TilingPattern") { - var color = IR[1]; - var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); - var canvasGraphicsFactory = { - createCanvasGraphics: function createCanvasGraphics(ctx) { - return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory); - } - }; - pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + ctx.globalAlpha = this.current.fillAlpha; + } + closeStroke() { + this.closePath(); + this.stroke(); + } + fill(consumePath) { + consumePath = typeof consumePath !== "undefined" ? consumePath : true; + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + let needRestore = false; + if (isPatternFill) { + ctx.save(); + ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL); + needRestore = true; + } + const intersect = this.current.getClippedPathBoundingBox(); + if (this.contentVisible && intersect !== null) { + if (this.pendingEOFill) { + ctx.fill("evenodd"); + this.pendingEOFill = false; } else { - pattern = this._getPattern(IR[1], IR[2]); + ctx.fill(); } - - return pattern; } - }, { - key: "setStrokeColorN", - value: function setStrokeColorN() { - this.current.strokeColor = this.getColorN_Pattern(arguments); + if (needRestore) { + ctx.restore(); } - }, { - key: "setFillColorN", - value: function setFillColorN() { - this.current.fillColor = this.getColorN_Pattern(arguments); - this.current.patternFill = true; + if (consumePath) { + this.consumePath(intersect); } - }, { - key: "setStrokeRGBColor", - value: function setStrokeRGBColor(r, g, b) { - var _this$selectColor; - - var color = ((_this$selectColor = this.selectColor) === null || _this$selectColor === void 0 ? void 0 : _this$selectColor.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b); - - this.ctx.strokeStyle = color; - this.current.strokeColor = color; + } + eoFill() { + this.pendingEOFill = true; + this.fill(); + } + fillStroke() { + this.fill(false); + this.stroke(false); + this.consumePath(); + } + eoFillStroke() { + this.pendingEOFill = true; + this.fillStroke(); + } + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + closeEOFillStroke() { + this.pendingEOFill = true; + this.closePath(); + this.fillStroke(); + } + endPath() { + this.consumePath(); + } + clip() { + this.pendingClip = NORMAL_CLIP; + } + eoClip() { + this.pendingClip = EO_CLIP; + } + beginText() { + this.current.textMatrix = _util.IDENTITY_MATRIX; + this.current.textMatrixScale = 1; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + } + endText() { + const paths = this.pendingTextPaths; + const ctx = this.ctx; + if (paths === undefined) { + ctx.beginPath(); + return; } - }, { - key: "setFillRGBColor", - value: function setFillRGBColor(r, g, b) { - var _this$selectColor2; - - var color = ((_this$selectColor2 = this.selectColor) === null || _this$selectColor2 === void 0 ? void 0 : _this$selectColor2.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b); - - this.ctx.fillStyle = color; - this.current.fillColor = color; - this.current.patternFill = false; + ctx.save(); + ctx.beginPath(); + for (const path of paths) { + ctx.setTransform(...path.transform); + ctx.translate(path.x, path.y); + path.addToPath(ctx, path.fontSize); } - }, { - key: "_getPattern", - value: function _getPattern(objId) { - var matrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var pattern; - - if (this.cachedPatterns.has(objId)) { - pattern = this.cachedPatterns.get(objId); - } else { - pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId)); - this.cachedPatterns.set(objId, pattern); - } - - if (matrix) { - pattern.matrix = matrix; - } - - return pattern; + ctx.restore(); + ctx.clip(); + ctx.beginPath(); + delete this.pendingTextPaths; + } + setCharSpacing(spacing) { + this.current.charSpacing = spacing; + } + setWordSpacing(spacing) { + this.current.wordSpacing = spacing; + } + setHScale(scale) { + this.current.textHScale = scale / 100; + } + setLeading(leading) { + this.current.leading = -leading; + } + setFont(fontRefName, size) { + const fontObj = this.commonObjs.get(fontRefName); + const current = this.current; + if (!fontObj) { + throw new Error(`Can't find font for ${fontRefName}`); } - }, { - key: "shadingFill", - value: function shadingFill(objId) { - if (!this.contentVisible) { - return; - } - - var ctx = this.ctx; - this.save(); - - var pattern = this._getPattern(objId); - - ctx.fillStyle = pattern.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.SHADING); - var inv = ctx.mozCurrentTransformInverse; - - if (inv) { - var canvas = ctx.canvas; - var width = canvas.width; - var height = canvas.height; - - var bl = _util.Util.applyTransform([0, 0], inv); - - var br = _util.Util.applyTransform([0, height], inv); - - var ul = _util.Util.applyTransform([width, 0], inv); - - var ur = _util.Util.applyTransform([width, height], inv); - - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); - } else { - this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); - } - - this.compose(this.current.getClippedPathBoundingBox()); - this.restore(); + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; + if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { + (0, _util.warn)("Invalid font matrix for font " + fontRefName); } - }, { - key: "beginInlineImage", - value: function beginInlineImage() { - (0, _util.unreachable)("Should not call beginInlineImage"); + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; } - }, { - key: "beginImageData", - value: function beginImageData() { - (0, _util.unreachable)("Should not call beginImageData"); + this.current.font = fontObj; + this.current.fontSize = size; + if (fontObj.isType3Font) { + return; } - }, { - key: "paintFormXObjectBegin", - value: function paintFormXObjectBegin(matrix, bbox) { - if (!this.contentVisible) { - return; + const name = fontObj.loadedName || "sans-serif"; + let bold = "normal"; + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + const italic = fontObj.italic ? "italic" : "normal"; + const typeface = `"${name}", ${fontObj.fallbackName}`; + let browserFontSize = size; + if (size < MIN_FONT_SIZE) { + browserFontSize = MIN_FONT_SIZE; + } else if (size > MAX_FONT_SIZE) { + browserFontSize = MAX_FONT_SIZE; + } + this.current.fontSizeScale = size / browserFontSize; + this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`; + } + setTextRenderingMode(mode) { + this.current.textRenderingMode = mode; + } + setTextRise(rise) { + this.current.textRise = rise; + } + moveText(x, y) { + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + } + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + setTextMatrix(a, b, c, d, e, f) { + this.current.textMatrix = [a, b, c, d, e, f]; + this.current.textMatrixScale = Math.hypot(a, b); + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + } + nextLine() { + this.moveText(0, this.current.leading); + } + paintChar(character, x, y, patternTransform) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const textRenderingMode = current.textRenderingMode; + const fontSize = current.fontSize / current.fontSizeScale; + const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + const patternFill = current.patternFill && !font.missingFile; + let addToPath; + if (font.disableFontFace || isAddToPathSet || patternFill) { + addToPath = font.getPathGenerator(this.commonObjs, character); + } + if (font.disableFontFace || patternFill) { + ctx.save(); + ctx.translate(x, y); + ctx.beginPath(); + addToPath(ctx, fontSize); + if (patternTransform) { + ctx.setTransform(...patternTransform); } - - this.save(); - this.baseTransformStack.push(this.baseTransform); - - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform.apply(this, matrix); + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fill(); } - - this.baseTransform = this.ctx.mozCurrentTransform; - - if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - this.ctx.rect(bbox[0], bbox[1], width, height); - this.current.updateRectMinMax(this.ctx.mozCurrentTransform, bbox); - this.clip(); - this.endPath(); + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.stroke(); } - } - }, { - key: "paintFormXObjectEnd", - value: function paintFormXObjectEnd() { - if (!this.contentVisible) { - return; + ctx.restore(); + } else { + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fillText(character, x, y); } - - this.restore(); - this.baseTransform = this.baseTransformStack.pop(); - } - }, { - key: "beginGroup", - value: function beginGroup(group) { - if (!this.contentVisible) { - return; + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.strokeText(character, x, y); } - - this.save(); - - if (this.inSMaskMode) { - this.endSMaskMode(); - this.current.activeSMask = null; + } + if (isAddToPathSet) { + const paths = this.pendingTextPaths || (this.pendingTextPaths = []); + paths.push({ + transform: (0, _display_utils.getCurrentTransform)(ctx), + x, + y, + fontSize, + addToPath + }); + } + } + get isFontSubpixelAAEnabled() { + const { + context: ctx + } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); + ctx.scale(1.5, 1); + ctx.fillText("I", 0, 10); + const data = ctx.getImageData(0, 0, 10, 10).data; + let enabled = false; + for (let i = 3; i < data.length; i += 4) { + if (data[i] > 0 && data[i] < 255) { + enabled = true; + break; } - - var currentCtx = this.ctx; - - if (!group.isolated) { - (0, _util.info)("TODO: Support non-isolated groups."); + } + return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled); + } + showText(glyphs) { + const current = this.current; + const font = current.font; + if (font.isType3Font) { + return this.showType3Text(glyphs); + } + const fontSize = current.fontSize; + if (fontSize === 0) { + return undefined; + } + const ctx = this.ctx; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const glyphsLength = glyphs.length; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; + ctx.save(); + ctx.transform(...current.textMatrix); + ctx.translate(current.x, current.y + current.textRise); + if (fontDirection > 0) { + ctx.scale(textHScale, -1); + } else { + ctx.scale(textHScale, 1); + } + let patternTransform; + if (current.patternFill) { + ctx.save(); + const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL); + patternTransform = (0, _display_utils.getCurrentTransform)(ctx); + ctx.restore(); + ctx.fillStyle = pattern; + } + let lineWidth = current.lineWidth; + const scale = current.textMatrixScale; + if (scale === 0 || lineWidth === 0) { + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + lineWidth = this.getSinglePixelWidth(); } - - if (group.knockout) { - (0, _util.warn)("Knockout groups not supported."); + } else { + lineWidth /= scale; + } + if (fontSizeScale !== 1.0) { + ctx.scale(fontSizeScale, fontSizeScale); + lineWidth /= fontSizeScale; + } + ctx.lineWidth = lineWidth; + let x = 0, + i; + for (i = 0; i < glyphsLength; ++i) { + const glyph = glyphs[i]; + if (typeof glyph === "number") { + x += spacingDir * glyph * fontSize / 1000; + continue; } - - var currentTransform = currentCtx.mozCurrentTransform; - - if (group.matrix) { - currentCtx.transform.apply(currentCtx, group.matrix); + let restoreNeeded = false; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + const accent = glyph.accent; + let scaledX, scaledY; + let width = glyph.width; + if (vertical) { + const vmetric = glyph.vmetric || defaultVMetrics; + const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (font.remeasure && width > 0) { + const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + if (width < measuredWidth && this.isFontSubpixelAAEnabled) { + const characterScaleX = width / measuredWidth; + restoreNeeded = true; + ctx.save(); + ctx.scale(characterScaleX, 1); + scaledX /= characterScaleX; + } else if (width !== measuredWidth) { + scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; + } } - - if (!group.bbox) { - throw new Error("Bounding box is required."); + if (this.contentVisible && (glyph.isInFont || font.missingFile)) { + if (simpleFillText && !accent) { + ctx.fillText(character, scaledX, scaledY); + } else { + this.paintChar(character, scaledX, scaledY, patternTransform); + if (accent) { + const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; + const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + } + } } - - var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); - - var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; - bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); - var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); - var scaleX = 1, - scaleY = 1; - - if (drawnWidth > MAX_GROUP_SIZE) { - scaleX = drawnWidth / MAX_GROUP_SIZE; - drawnWidth = MAX_GROUP_SIZE; + let charWidth; + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; + } else { + charWidth = width * widthAdvanceScale + spacing * fontDirection; } - - if (drawnHeight > MAX_GROUP_SIZE) { - scaleY = drawnHeight / MAX_GROUP_SIZE; - drawnHeight = MAX_GROUP_SIZE; + x += charWidth; + if (restoreNeeded) { + ctx.restore(); } - - this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]); - var cacheId = "groupAt" + this.groupLevel; - - if (group.smask) { - cacheId += "_smask_" + this.smaskCounter++ % 2; + } + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + ctx.restore(); + this.compose(); + return undefined; + } + showType3Text(glyphs) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + const fontDirection = current.fontDirection; + const spacingDir = font.vertical ? 1 : -1; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const textHScale = current.textHScale * fontDirection; + const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; + const glyphsLength = glyphs.length; + const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; + let i, glyph, width, spacingLength; + if (isTextInvisible || fontSize === 0) { + return; + } + this._cachedScaleForStroking = null; + this._cachedGetSinglePixelWidth = null; + ctx.save(); + ctx.transform(...current.textMatrix); + ctx.translate(current.x, current.y); + ctx.scale(textHScale, fontDirection); + for (i = 0; i < glyphsLength; ++i) { + glyph = glyphs[i]; + if (typeof glyph === "number") { + spacingLength = spacingDir * glyph * fontSize / 1000; + this.ctx.translate(spacingLength, 0); + current.x += spacingLength * textHScale; + continue; } - - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var groupCtx = scratchCanvas.context; - groupCtx.scale(1 / scaleX, 1 / scaleY); - groupCtx.translate(-offsetX, -offsetY); - groupCtx.transform.apply(groupCtx, currentTransform); - - if (group.smask) { - this.smaskStack.push({ - canvas: scratchCanvas.canvas, - context: groupCtx, - offsetX: offsetX, - offsetY: offsetY, - scaleX: scaleX, - scaleY: scaleY, - subtype: group.smask.subtype, - backdrop: group.smask.backdrop, - transferMap: group.smask.transferMap || null, - startTransformInverse: null - }); - } else { - currentCtx.setTransform(1, 0, 0, 1, 0, 0); - currentCtx.translate(offsetX, offsetY); - currentCtx.scale(scaleX, scaleY); - currentCtx.save(); - } - - copyCtxState(currentCtx, groupCtx); - this.ctx = groupCtx; - this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); - this.groupStack.push(currentCtx); - this.groupLevel++; - } - }, { - key: "endGroup", - value: function endGroup(group) { - if (!this.contentVisible) { - return; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const operatorList = font.charProcOperatorList[glyph.operatorListId]; + if (!operatorList) { + (0, _util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`); + continue; } - - this.groupLevel--; - var groupCtx = this.ctx; - var ctx = this.groupStack.pop(); - this.ctx = ctx; - this.ctx.imageSmoothingEnabled = false; - - if (group.smask) { - this.tempSMask = this.smaskStack.pop(); - this.restore(); - } else { - this.ctx.restore(); - var currentMtx = this.ctx.mozCurrentTransform; + if (this.contentVisible) { + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform(...fontMatrix); + this.executeOperatorList(operatorList); this.restore(); - this.ctx.save(); - this.ctx.setTransform.apply(this.ctx, currentMtx); - - var dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx); - - this.ctx.drawImage(groupCtx.canvas, 0, 0); - this.ctx.restore(); - this.compose(dirtyBox); } + const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + width = transformed[0] * fontSize + spacing; + ctx.translate(width, 0); + current.x += width * textHScale; } - }, { - key: "beginAnnotations", - value: function beginAnnotations() { - this.save(); - - if (this.baseTransform) { - this.ctx.setTransform.apply(this.ctx, this.baseTransform); - } + ctx.restore(); + this.processingType3 = null; + } + setCharWidth(xWidth, yWidth) {} + setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + this.ctx.rect(llx, lly, urx - llx, ury - lly); + this.ctx.clip(); + this.endPath(); + } + getColorN_Pattern(IR) { + let pattern; + if (IR[0] === "TilingPattern") { + const color = IR[1]; + const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx); + const canvasGraphicsFactory = { + createCanvasGraphics: ctx => { + return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory); + } + }; + pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + } else { + pattern = this._getPattern(IR[1], IR[2]); + } + return pattern; + } + setStrokeColorN() { + this.current.strokeColor = this.getColorN_Pattern(arguments); + } + setFillColorN() { + this.current.fillColor = this.getColorN_Pattern(arguments); + this.current.patternFill = true; + } + setStrokeRGBColor(r, g, b) { + var _this$selectColor; + const color = ((_this$selectColor = this.selectColor) === null || _this$selectColor === void 0 ? void 0 : _this$selectColor.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b); + this.ctx.strokeStyle = color; + this.current.strokeColor = color; + } + setFillRGBColor(r, g, b) { + var _this$selectColor2; + const color = ((_this$selectColor2 = this.selectColor) === null || _this$selectColor2 === void 0 ? void 0 : _this$selectColor2.call(this, r, g, b)) || _util.Util.makeHexColor(r, g, b); + this.ctx.fillStyle = color; + this.current.fillColor = color; + this.current.patternFill = false; + } + _getPattern(objId) { + let matrix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + let pattern; + if (this.cachedPatterns.has(objId)) { + pattern = this.cachedPatterns.get(objId); + } else { + pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId)); + this.cachedPatterns.set(objId, pattern); } - }, { - key: "endAnnotations", - value: function endAnnotations() { - this.restore(); + if (matrix) { + pattern.matrix = matrix; } - }, { - key: "beginAnnotation", - value: function beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) { - this.save(); - - if (Array.isArray(rect) && rect.length === 4) { - var width = rect[2] - rect[0]; - var height = rect[3] - rect[1]; - - if (hasOwnCanvas && this.annotationCanvasMap) { - transform = transform.slice(); - transform[4] -= rect[0]; - transform[5] -= rect[1]; - rect = rect.slice(); - rect[0] = rect[1] = 0; - rect[2] = width; - rect[3] = height; - - var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(this.ctx.mozCurrentTransform), - _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), - scaleX = _Util$singularValueDe2[0], - scaleY = _Util$singularValueDe2[1]; - - var viewportScale = this.viewportScale; - var canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale); - var canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale); - this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight); - var _this$annotationCanva = this.annotationCanvas, - canvas = _this$annotationCanva.canvas, - context = _this$annotationCanva.context; - var viewportScaleFactorStr = "var(--zoom-factor) * ".concat(_display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); - canvas.style.width = "calc(".concat(width, "px * ").concat(viewportScaleFactorStr, ")"); - canvas.style.height = "calc(".concat(height, "px * ").concat(viewportScaleFactorStr, ")"); - this.annotationCanvasMap.set(id, canvas); - this.annotationCanvas.savedCtx = this.ctx; - this.ctx = context; - this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY); - addContextCurrentTransform(this.ctx); - resetCtxToDefault(this.ctx, this.foregroundColor); - } else { - resetCtxToDefault(this.ctx, this.foregroundColor); - this.ctx.rect(rect[0], rect[1], width, height); - this.ctx.clip(); - this.endPath(); - } - } - - this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); - this.transform.apply(this, transform); - this.transform.apply(this, matrix); + return pattern; + } + shadingFill(objId) { + if (!this.contentVisible) { + return; } - }, { - key: "endAnnotation", - value: function endAnnotation() { - if (this.annotationCanvas) { - this.ctx = this.annotationCanvas.savedCtx; - delete this.annotationCanvas.savedCtx; - delete this.annotationCanvas; - } - - this.restore(); + const ctx = this.ctx; + this.save(); + const pattern = this._getPattern(objId); + ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING); + const inv = (0, _display_utils.getCurrentTransformInverse)(ctx); + if (inv) { + const canvas = ctx.canvas; + const width = canvas.width; + const height = canvas.height; + const bl = _util.Util.applyTransform([0, 0], inv); + const br = _util.Util.applyTransform([0, height], inv); + const ul = _util.Util.applyTransform([width, 0], inv); + const ur = _util.Util.applyTransform([width, height], inv); + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); + } else { + this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); } - }, { - key: "paintImageMaskXObject", - value: function paintImageMaskXObject(img) { - if (!this.contentVisible) { - return; - } - - var count = img.count; - img = this.getObject(img.data, img); - img.count = count; - var ctx = this.ctx; - var glyph = this.processingType3; - - if (glyph) { - if (glyph.compiled === undefined) { - glyph.compiled = compileType3Glyph(img); - } - - if (glyph.compiled) { - glyph.compiled(ctx); - return; - } + this.compose(this.current.getClippedPathBoundingBox()); + this.restore(); + } + beginInlineImage() { + (0, _util.unreachable)("Should not call beginInlineImage"); + } + beginImageData() { + (0, _util.unreachable)("Should not call beginImageData"); + } + paintFormXObjectBegin(matrix, bbox) { + if (!this.contentVisible) { + return; + } + this.save(); + this.baseTransformStack.push(this.baseTransform); + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(...matrix); + } + this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx); + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + this.ctx.rect(bbox[0], bbox[1], width, height); + this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox); + this.clip(); + this.endPath(); + } + } + paintFormXObjectEnd() { + if (!this.contentVisible) { + return; + } + this.restore(); + this.baseTransform = this.baseTransformStack.pop(); + } + beginGroup(group) { + if (!this.contentVisible) { + return; + } + this.save(); + if (this.inSMaskMode) { + this.endSMaskMode(); + this.current.activeSMask = null; + } + const currentCtx = this.ctx; + if (!group.isolated) { + (0, _util.info)("TODO: Support non-isolated groups."); + } + if (group.knockout) { + (0, _util.warn)("Knockout groups not supported."); + } + const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx); + if (group.matrix) { + currentCtx.transform(...group.matrix); + } + if (!group.bbox) { + throw new Error("Bounding box is required."); + } + let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx)); + const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; + const offsetX = Math.floor(bounds[0]); + const offsetY = Math.floor(bounds[1]); + let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + let scaleX = 1, + scaleY = 1; + if (drawnWidth > MAX_GROUP_SIZE) { + scaleX = drawnWidth / MAX_GROUP_SIZE; + drawnWidth = MAX_GROUP_SIZE; + } + if (drawnHeight > MAX_GROUP_SIZE) { + scaleY = drawnHeight / MAX_GROUP_SIZE; + drawnHeight = MAX_GROUP_SIZE; + } + this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]); + let cacheId = "groupAt" + this.groupLevel; + if (group.smask) { + cacheId += "_smask_" + this.smaskCounter++ % 2; + } + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); + const groupCtx = scratchCanvas.context; + groupCtx.scale(1 / scaleX, 1 / scaleY); + groupCtx.translate(-offsetX, -offsetY); + groupCtx.transform(...currentTransform); + if (group.smask) { + this.smaskStack.push({ + canvas: scratchCanvas.canvas, + context: groupCtx, + offsetX, + offsetY, + scaleX, + scaleY, + subtype: group.smask.subtype, + backdrop: group.smask.backdrop, + transferMap: group.smask.transferMap || null, + startTransformInverse: null + }); + } else { + currentCtx.setTransform(1, 0, 0, 1, 0, 0); + currentCtx.translate(offsetX, offsetY); + currentCtx.scale(scaleX, scaleY); + currentCtx.save(); + } + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + } + endGroup(group) { + if (!this.contentVisible) { + return; + } + this.groupLevel--; + const groupCtx = this.ctx; + const ctx = this.groupStack.pop(); + this.ctx = ctx; + this.ctx.imageSmoothingEnabled = false; + if (group.smask) { + this.tempSMask = this.smaskStack.pop(); + this.restore(); + } else { + this.ctx.restore(); + const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx); + this.restore(); + this.ctx.save(); + this.ctx.setTransform(...currentMtx); + const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx); + this.ctx.drawImage(groupCtx.canvas, 0, 0); + this.ctx.restore(); + this.compose(dirtyBox); + } + } + beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) { + _classPrivateMethodGet(this, _restoreInitialState, _restoreInitialState2).call(this); + resetCtxToDefault(this.ctx, this.foregroundColor); + this.ctx.save(); + this.save(); + if (this.baseTransform) { + this.ctx.setTransform(...this.baseTransform); + } + if (Array.isArray(rect) && rect.length === 4) { + const width = rect[2] - rect[0]; + const height = rect[3] - rect[1]; + if (hasOwnCanvas && this.annotationCanvasMap) { + transform = transform.slice(); + transform[4] -= rect[0]; + transform[5] -= rect[1]; + rect = rect.slice(); + rect[0] = rect[1] = 0; + rect[2] = width; + rect[3] = height; + const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx)); + const { + viewportScale + } = this; + const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale); + const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale); + this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight); + const { + canvas, + context + } = this.annotationCanvas; + this.annotationCanvasMap.set(id, canvas); + this.annotationCanvas.savedCtx = this.ctx; + this.ctx = context; + this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY); + resetCtxToDefault(this.ctx, this.foregroundColor); + } else { + resetCtxToDefault(this.ctx, this.foregroundColor); + this.ctx.rect(rect[0], rect[1], width, height); + this.ctx.clip(); + this.endPath(); } - - var mask = this._createMaskCanvas(img); - - var maskCanvas = mask.canvas; - ctx.save(); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY); - ctx.restore(); - this.compose(); } - }, { - key: "paintImageMaskXObjectRepeat", - value: function paintImageMaskXObjectRepeat(img, scaleX) { - var skewX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - var skewY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; - var scaleY = arguments.length > 4 ? arguments[4] : undefined; - var positions = arguments.length > 5 ? arguments[5] : undefined; - - if (!this.contentVisible) { + this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); + this.transform(...transform); + this.transform(...matrix); + } + endAnnotation() { + if (this.annotationCanvas) { + this.ctx = this.annotationCanvas.savedCtx; + delete this.annotationCanvas.savedCtx; + delete this.annotationCanvas; + } + } + paintImageMaskXObject(img) { + if (!this.contentVisible) { + return; + } + const count = img.count; + img = this.getObject(img.data, img); + img.count = count; + const ctx = this.ctx; + const glyph = this.processingType3; + if (glyph) { + if (glyph.compiled === undefined) { + glyph.compiled = compileType3Glyph(img); + } + if (glyph.compiled) { + glyph.compiled(ctx); return; } - - img = this.getObject(img.data, img); - var ctx = this.ctx; + } + const mask = this._createMaskCanvas(img); + const maskCanvas = mask.canvas; + ctx.save(); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY); + ctx.restore(); + this.compose(); + } + paintImageMaskXObjectRepeat(img, scaleX) { + let skewX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + let skewY = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + let scaleY = arguments.length > 4 ? arguments[4] : undefined; + let positions = arguments.length > 5 ? arguments[5] : undefined; + if (!this.contentVisible) { + return; + } + img = this.getObject(img.data, img); + const ctx = this.ctx; + ctx.save(); + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0); + const mask = this._createMaskCanvas(img); + ctx.setTransform(1, 0, 0, 1, 0, 0); + for (let i = 0, ii = positions.length; i < ii; i += 2) { + const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]); + const [x, y] = _util.Util.applyTransform([0, 0], trans); + ctx.drawImage(mask.canvas, x, y); + } + ctx.restore(); + this.compose(); + } + paintImageMaskXObjectGroup(images) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + for (const image of images) { + const { + data, + width, + height, + transform + } = image; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; + maskCtx.save(); + const img = this.getObject(data, image); + putBinaryImageMask(maskCtx, img); + maskCtx.globalCompositeOperation = "source-in"; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); ctx.save(); - var currentTransform = ctx.mozCurrentTransform; - ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0); - - var mask = this._createMaskCanvas(img); - - ctx.setTransform(1, 0, 0, 1, 0, 0); - - for (var i = 0, ii = positions.length; i < ii; i += 2) { - var trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]); - - var _Util$applyTransform3 = _util.Util.applyTransform([0, 0], trans), - _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2), - x = _Util$applyTransform4[0], - y = _Util$applyTransform4[1]; - - ctx.drawImage(mask.canvas, x, y); - } - + ctx.transform(...transform); + ctx.scale(1, -1); + drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); ctx.restore(); - this.compose(); } - }, { - key: "paintImageMaskXObjectGroup", - value: function paintImageMaskXObjectGroup(images) { - if (!this.contentVisible) { - return; - } - - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - - for (var i = 0, ii = images.length; i < ii; i++) { - var image = images[i]; - var width = image.width, - height = image.height; - var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height, false); - var maskCtx = maskCanvas.context; - maskCtx.save(); - putBinaryImageMask(maskCtx, image); - maskCtx.globalCompositeOperation = "source-in"; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - ctx.save(); - ctx.transform.apply(ctx, image.transform); - ctx.scale(1, -1); - drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); - ctx.restore(); - } - - this.compose(); + this.compose(); + } + paintImageXObject(objId) { + if (!this.contentVisible) { + return; } - }, { - key: "paintImageXObject", - value: function paintImageXObject(objId) { - if (!this.contentVisible) { - return; - } - - var imgData = this.getObject(objId); - - if (!imgData) { - (0, _util.warn)("Dependent image isn't ready yet"); - return; - } - - this.paintInlineImageXObject(imgData); + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)("Dependent image isn't ready yet"); + return; } - }, { - key: "paintImageXObjectRepeat", - value: function paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { - if (!this.contentVisible) { - return; - } - - var imgData = this.getObject(objId); - - if (!imgData) { - (0, _util.warn)("Dependent image isn't ready yet"); - return; - } - - var width = imgData.width; - var height = imgData.height; - var map = []; - - for (var i = 0, ii = positions.length; i < ii; i += 2) { - map.push({ - transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], - x: 0, - y: 0, - w: width, - h: height - }); - } - - this.paintInlineImageXObjectGroup(imgData, map); + this.paintInlineImageXObject(imgData); + } + paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + if (!this.contentVisible) { + return; } - }, { - key: "paintInlineImageXObject", - value: function paintInlineImageXObject(imgData) { - if (!this.contentVisible) { - return; - } - - var width = imgData.width; - var height = imgData.height; - var ctx = this.ctx; - this.save(); - ctx.scale(1 / width, -1 / height); - var imgToPaint; - - if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { - imgToPaint = imgData; - } else { - var tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height, false); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); - imgToPaint = tmpCanvas.canvas; - } - - var scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse); - - ctx.imageSmoothingEnabled = getImageSmoothingEnabled(ctx.mozCurrentTransform, imgData.interpolate); - - var _drawImageAtIntegerCo = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height), - _drawImageAtIntegerCo2 = _slicedToArray(_drawImageAtIntegerCo, 2), - rWidth = _drawImageAtIntegerCo2[0], - rHeight = _drawImageAtIntegerCo2[1]; - - if (this.imageLayer) { - var position = this.getCanvasPosition(0, -height); - this.imageLayer.appendImage({ - imgData: imgData, - left: position[0], - top: position[1], - width: rWidth, - height: rHeight - }); - } - - this.compose(); - this.restore(); + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)("Dependent image isn't ready yet"); + return; } - }, { - key: "paintInlineImageXObjectGroup", - value: function paintInlineImageXObjectGroup(imgData, map) { - if (!this.contentVisible) { - return; - } - - var ctx = this.ctx; - var w = imgData.width; - var h = imgData.height; - var tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h, false); - var tmpCtx = tmpCanvas.context; + const width = imgData.width; + const height = imgData.height; + const map = []; + for (let i = 0, ii = positions.length; i < ii; i += 2) { + map.push({ + transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], + x: 0, + y: 0, + w: width, + h: height + }); + } + this.paintInlineImageXObjectGroup(imgData, map); + } + paintInlineImageXObject(imgData) { + if (!this.contentVisible) { + return; + } + const width = imgData.width; + const height = imgData.height; + const ctx = this.ctx; + this.save(); + ctx.scale(1 / width, -1 / height); + let imgToPaint; + if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { + imgToPaint = imgData; + } else { + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); + const tmpCtx = tmpCanvas.context; putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); - - for (var i = 0, ii = map.length; i < ii; i++) { - var entry = map[i]; - ctx.save(); - ctx.transform.apply(ctx, entry.transform); - ctx.scale(1, -1); - drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); - - if (this.imageLayer) { - var position = this.getCanvasPosition(entry.x, entry.y); - this.imageLayer.appendImage({ - imgData: imgData, - left: position[0], - top: position[1], - width: w, - height: h - }); - } - - ctx.restore(); - } - - this.compose(); + imgToPaint = tmpCanvas.canvas; } - }, { - key: "paintSolidColorImageMask", - value: function paintSolidColorImageMask() { - if (!this.contentVisible) { - return; - } - - this.ctx.fillRect(0, 0, 1, 1); - this.compose(); + const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx)); + ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate); + drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); + this.compose(); + this.restore(); + } + paintInlineImageXObjectGroup(imgData, map) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + const w = imgData.width; + const h = imgData.height; + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); + for (const entry of map) { + ctx.save(); + ctx.transform(...entry.transform); + ctx.scale(1, -1); + drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + ctx.restore(); } - }, { - key: "markPoint", - value: function markPoint(tag) {} - }, { - key: "markPointProps", - value: function markPointProps(tag, properties) {} - }, { - key: "beginMarkedContent", - value: function beginMarkedContent(tag) { + this.compose(); + } + paintSolidColorImageMask() { + if (!this.contentVisible) { + return; + } + this.ctx.fillRect(0, 0, 1, 1); + this.compose(); + } + markPoint(tag) {} + markPointProps(tag, properties) {} + beginMarkedContent(tag) { + this.markedContentStack.push({ + visible: true + }); + } + beginMarkedContentProps(tag, properties) { + if (tag === "OC") { + this.markedContentStack.push({ + visible: this.optionalContentConfig.isVisible(properties) + }); + } else { this.markedContentStack.push({ visible: true }); } - }, { - key: "beginMarkedContentProps", - value: function beginMarkedContentProps(tag, properties) { - if (tag === "OC") { - this.markedContentStack.push({ - visible: this.optionalContentConfig.isVisible(properties) - }); - } else { - this.markedContentStack.push({ - visible: true - }); - } - - this.contentVisible = this.isContentVisible(); + this.contentVisible = this.isContentVisible(); + } + endMarkedContent() { + this.markedContentStack.pop(); + this.contentVisible = this.isContentVisible(); + } + beginCompat() {} + endCompat() {} + consumePath(clipBox) { + const isEmpty = this.current.isEmptyClip(); + if (this.pendingClip) { + this.current.updateClipFromPath(); } - }, { - key: "endMarkedContent", - value: function endMarkedContent() { - this.markedContentStack.pop(); - this.contentVisible = this.isContentVisible(); + if (!this.pendingClip) { + this.compose(clipBox); } - }, { - key: "beginCompat", - value: function beginCompat() {} - }, { - key: "endCompat", - value: function endCompat() {} - }, { - key: "consumePath", - value: function consumePath(clipBox) { - var isEmpty = this.current.isEmptyClip(); - - if (this.pendingClip) { - this.current.updateClipFromPath(); - } - - if (!this.pendingClip) { - this.compose(clipBox); - } - - var ctx = this.ctx; - - if (this.pendingClip) { - if (!isEmpty) { - if (this.pendingClip === EO_CLIP) { - ctx.clip("evenodd"); - } else { - ctx.clip(); - } + const ctx = this.ctx; + if (this.pendingClip) { + if (!isEmpty) { + if (this.pendingClip === EO_CLIP) { + ctx.clip("evenodd"); + } else { + ctx.clip(); } - - this.pendingClip = null; } - - this.current.startNewPathAndClipBox(this.current.clipBox); - ctx.beginPath(); + this.pendingClip = null; } - }, { - key: "getSinglePixelWidth", - value: function getSinglePixelWidth() { - if (!this._cachedGetSinglePixelWidth) { - var m = this.ctx.mozCurrentTransform; - - if (m[1] === 0 && m[2] === 0) { - this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3])); - } else { - var absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); - var normX = Math.hypot(m[0], m[2]); - var normY = Math.hypot(m[1], m[3]); - this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet; - } + this.current.startNewPathAndClipBox(this.current.clipBox); + ctx.beginPath(); + } + getSinglePixelWidth() { + if (!this._cachedGetSinglePixelWidth) { + const m = (0, _display_utils.getCurrentTransform)(this.ctx); + if (m[1] === 0 && m[2] === 0) { + this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3])); + } else { + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const normX = Math.hypot(m[0], m[2]); + const normY = Math.hypot(m[1], m[3]); + this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet; } - - return this._cachedGetSinglePixelWidth; } - }, { - key: "getScaleForStroking", - value: function getScaleForStroking() { - if (!this._cachedScaleForStroking) { - var lineWidth = this.current.lineWidth; - var m = this.ctx.mozCurrentTransform; - var scaleX, scaleY; - - if (m[1] === 0 && m[2] === 0) { - var normX = Math.abs(m[0]); - var normY = Math.abs(m[3]); - - if (lineWidth === 0) { - scaleX = 1 / normX; - scaleY = 1 / normY; - } else { - var scaledXLineWidth = normX * lineWidth; - var scaledYLineWidth = normY * lineWidth; - scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1; - scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1; - } + return this._cachedGetSinglePixelWidth; + } + getScaleForStroking() { + if (!this._cachedScaleForStroking) { + const { + lineWidth + } = this.current; + const m = (0, _display_utils.getCurrentTransform)(this.ctx); + let scaleX, scaleY; + if (m[1] === 0 && m[2] === 0) { + const normX = Math.abs(m[0]); + const normY = Math.abs(m[3]); + if (lineWidth === 0) { + scaleX = 1 / normX; + scaleY = 1 / normY; } else { - var absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); - - var _normX = Math.hypot(m[0], m[1]); - - var _normY = Math.hypot(m[2], m[3]); - - if (lineWidth === 0) { - scaleX = _normY / absDet; - scaleY = _normX / absDet; - } else { - var baseArea = lineWidth * absDet; - scaleX = _normY > baseArea ? _normY / baseArea : 1; - scaleY = _normX > baseArea ? _normX / baseArea : 1; - } + const scaledXLineWidth = normX * lineWidth; + const scaledYLineWidth = normY * lineWidth; + scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1; + scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1; + } + } else { + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const normX = Math.hypot(m[0], m[1]); + const normY = Math.hypot(m[2], m[3]); + if (lineWidth === 0) { + scaleX = normY / absDet; + scaleY = normX / absDet; + } else { + const baseArea = lineWidth * absDet; + scaleX = normY > baseArea ? normY / baseArea : 1; + scaleY = normX > baseArea ? normX / baseArea : 1; } - - this._cachedScaleForStroking = [scaleX, scaleY]; } - - return this._cachedScaleForStroking; + this._cachedScaleForStroking = [scaleX, scaleY]; } - }, { - key: "rescaleAndStroke", - value: function rescaleAndStroke(saveRestore) { - var ctx = this.ctx; - var lineWidth = this.current.lineWidth; - - var _this$getScaleForStro = this.getScaleForStroking(), - _this$getScaleForStro2 = _slicedToArray(_this$getScaleForStro, 2), - scaleX = _this$getScaleForStro2[0], - scaleY = _this$getScaleForStro2[1]; - - ctx.lineWidth = lineWidth || 1; - - if (scaleX === 1 && scaleY === 1) { - ctx.stroke(); - return; - } - - var savedMatrix, savedDashes, savedDashOffset; - - if (saveRestore) { - savedMatrix = ctx.mozCurrentTransform.slice(); - savedDashes = ctx.getLineDash().slice(); - savedDashOffset = ctx.lineDashOffset; - } - - ctx.scale(scaleX, scaleY); - var scale = Math.max(scaleX, scaleY); - ctx.setLineDash(ctx.getLineDash().map(function (x) { - return x / scale; - })); - ctx.lineDashOffset /= scale; + return this._cachedScaleForStroking; + } + rescaleAndStroke(saveRestore) { + const { + ctx + } = this; + const { + lineWidth + } = this.current; + const [scaleX, scaleY] = this.getScaleForStroking(); + ctx.lineWidth = lineWidth || 1; + if (scaleX === 1 && scaleY === 1) { ctx.stroke(); - - if (saveRestore) { - ctx.setTransform.apply(ctx, _toConsumableArray(savedMatrix)); - ctx.setLineDash(savedDashes); - ctx.lineDashOffset = savedDashOffset; - } - } - }, { - key: "getCanvasPosition", - value: function getCanvasPosition(x, y) { - var transform = this.ctx.mozCurrentTransform; - return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; + return; } - }, { - key: "isContentVisible", - value: function isContentVisible() { - for (var i = this.markedContentStack.length - 1; i >= 0; i--) { - if (!this.markedContentStack[i].visible) { - return false; - } + let savedMatrix, savedDashes, savedDashOffset; + if (saveRestore) { + savedMatrix = (0, _display_utils.getCurrentTransform)(ctx); + savedDashes = ctx.getLineDash().slice(); + savedDashOffset = ctx.lineDashOffset; + } + ctx.scale(scaleX, scaleY); + const scale = Math.max(scaleX, scaleY); + ctx.setLineDash(ctx.getLineDash().map(x => x / scale)); + ctx.lineDashOffset /= scale; + ctx.stroke(); + if (saveRestore) { + ctx.setTransform(...savedMatrix); + ctx.setLineDash(savedDashes); + ctx.lineDashOffset = savedDashOffset; + } + } + isContentVisible() { + for (let i = this.markedContentStack.length - 1; i >= 0; i--) { + if (!this.markedContentStack[i].visible) { + return false; } - - return true; } - }]); - - return CanvasGraphics; -}(); - + return true; + } +} exports.CanvasGraphics = CanvasGraphics; - -for (var op in _util.OPS) { +function _restoreInitialState2() { + while (this.stateStack.length || this.inSMaskMode) { + this.restore(); + } + this.ctx.restore(); + if (this.transparentCanvas) { + this.ctx = this.compositeCtx; + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.drawImage(this.transparentCanvas, 0, 0); + this.ctx.restore(); + this.transparentCanvas = null; + } +} +for (const op in _util.OPS) { if (CanvasGraphics.prototype[op] !== undefined) { CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; } } /***/ }), -/* 164 */ +/* 142 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - Object.defineProperty(exports, "__esModule", ({ value: true })); exports.TilingPattern = exports.PathType = void 0; exports.getShadingPattern = getShadingPattern; - var _util = __w_pdfjs_require__(1); - +var _display_utils = __w_pdfjs_require__(137); var _is_node = __w_pdfjs_require__(3); - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var PathType = { +const PathType = { FILL: "Fill", STROKE: "Stroke", SHADING: "Shading" }; exports.PathType = PathType; - function applyBoundingBox(ctx, bbox) { if (!bbox || _is_node.isNodeJS) { return; } - - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var region = new Path2D(); + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const region = new Path2D(); region.rect(bbox[0], bbox[1], width, height); ctx.clip(region); } - -var BaseShadingPattern = /*#__PURE__*/function () { - function BaseShadingPattern() { - _classCallCheck(this, BaseShadingPattern); - +class BaseShadingPattern { + constructor() { if (this.constructor === BaseShadingPattern) { (0, _util.unreachable)("Cannot initialize BaseShadingPattern."); } } - - _createClass(BaseShadingPattern, [{ - key: "getPattern", - value: function getPattern() { - (0, _util.unreachable)("Abstract method `getPattern` called."); - } - }]); - - return BaseShadingPattern; -}(); - -var RadialAxialShadingPattern = /*#__PURE__*/function (_BaseShadingPattern) { - _inherits(RadialAxialShadingPattern, _BaseShadingPattern); - - var _super = _createSuper(RadialAxialShadingPattern); - - function RadialAxialShadingPattern(IR) { - var _this; - - _classCallCheck(this, RadialAxialShadingPattern); - - _this = _super.call(this); - _this._type = IR[1]; - _this._bbox = IR[2]; - _this._colorStops = IR[3]; - _this._p0 = IR[4]; - _this._p1 = IR[5]; - _this._r0 = IR[6]; - _this._r1 = IR[7]; - _this.matrix = null; - return _this; + getPattern() { + (0, _util.unreachable)("Abstract method `getPattern` called."); } - - _createClass(RadialAxialShadingPattern, [{ - key: "_createGradient", - value: function _createGradient(ctx) { - var grad; - - if (this._type === "axial") { - grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); - } else if (this._type === "radial") { - grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1); - } - - var _iterator = _createForOfIteratorHelper(this._colorStops), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var colorStop = _step.value; - grad.addColorStop(colorStop[0], colorStop[1]); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - return grad; - } - }, { - key: "getPattern", - value: function getPattern(ctx, owner, inverse, pathType) { - var pattern; - - if (pathType === PathType.STROKE || pathType === PathType.FILL) { - var ownerBBox = owner.current.getClippedPathBoundingBox(pathType, ctx.mozCurrentTransform) || [0, 0, 0, 0]; - var width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1; - var height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1; - var tmpCanvas = owner.cachedCanvases.getCanvas("pattern", width, height, true); - var tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); - tmpCtx.beginPath(); - tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); - tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]); - inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]); - tmpCtx.transform.apply(tmpCtx, owner.baseTransform); - - if (this.matrix) { - tmpCtx.transform.apply(tmpCtx, this.matrix); - } - - applyBoundingBox(tmpCtx, this._bbox); - tmpCtx.fillStyle = this._createGradient(tmpCtx); - tmpCtx.fill(); - pattern = ctx.createPattern(tmpCanvas.canvas, "no-repeat"); - var domMatrix = new DOMMatrix(inverse); - - try { - pattern.setTransform(domMatrix); - } catch (ex) { - (0, _util.warn)("RadialAxialShadingPattern.getPattern: \"".concat(ex === null || ex === void 0 ? void 0 : ex.message, "\".")); - } - } else { - applyBoundingBox(ctx, this._bbox); - pattern = this._createGradient(ctx); - } - - return pattern; +} +class RadialAxialShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._type = IR[1]; + this._bbox = IR[2]; + this._colorStops = IR[3]; + this._p0 = IR[4]; + this._p1 = IR[5]; + this._r0 = IR[6]; + this._r1 = IR[7]; + this.matrix = null; + } + _createGradient(ctx) { + let grad; + if (this._type === "axial") { + grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); + } else if (this._type === "radial") { + grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1); + } + for (const colorStop of this._colorStops) { + grad.addColorStop(colorStop[0], colorStop[1]); + } + return grad; + } + getPattern(ctx, owner, inverse, pathType) { + let pattern; + if (pathType === PathType.STROKE || pathType === PathType.FILL) { + const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0]; + const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1; + const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1; + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", width, height, true); + const tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.beginPath(); + tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]); + inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]); + tmpCtx.transform(...owner.baseTransform); + if (this.matrix) { + tmpCtx.transform(...this.matrix); + } + applyBoundingBox(tmpCtx, this._bbox); + tmpCtx.fillStyle = this._createGradient(tmpCtx); + tmpCtx.fill(); + pattern = ctx.createPattern(tmpCanvas.canvas, "no-repeat"); + const domMatrix = new DOMMatrix(inverse); + pattern.setTransform(domMatrix); + } else { + applyBoundingBox(ctx, this._bbox); + pattern = this._createGradient(ctx); } - }]); - - return RadialAxialShadingPattern; -}(BaseShadingPattern); - + return pattern; + } +} function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { - var coords = context.coords, - colors = context.colors; - var bytes = data.data, - rowSize = data.width * 4; - var tmp; - + const coords = context.coords, + colors = context.colors; + const bytes = data.data, + rowSize = data.width * 4; + let tmp; if (coords[p1 + 1] > coords[p2 + 1]) { tmp = p1; p1 = p2; @@ -14547,7 +10885,6 @@ function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { c1 = c2; c2 = tmp; } - if (coords[p2 + 1] > coords[p3 + 1]) { tmp = p2; p2 = p3; @@ -14556,7 +10893,6 @@ function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { c2 = c3; c3 = tmp; } - if (coords[p1 + 1] > coords[p2 + 1]) { tmp = p1; p1 = p2; @@ -14565,65 +10901,55 @@ function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { c1 = c2; c2 = tmp; } - - var x1 = (coords[p1] + context.offsetX) * context.scaleX; - var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; - var x2 = (coords[p2] + context.offsetX) * context.scaleX; - var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; - var x3 = (coords[p3] + context.offsetX) * context.scaleX; - var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; - + const x1 = (coords[p1] + context.offsetX) * context.scaleX; + const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + const x2 = (coords[p2] + context.offsetX) * context.scaleX; + const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + const x3 = (coords[p3] + context.offsetX) * context.scaleX; + const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; if (y1 >= y3) { return; } - - var c1r = colors[c1], - c1g = colors[c1 + 1], - c1b = colors[c1 + 2]; - var c2r = colors[c2], - c2g = colors[c2 + 1], - c2b = colors[c2 + 2]; - var c3r = colors[c3], - c3g = colors[c3 + 1], - c3b = colors[c3 + 2]; - var minY = Math.round(y1), - maxY = Math.round(y3); - var xa, car, cag, cab; - var xb, cbr, cbg, cbb; - - for (var y = minY; y <= maxY; y++) { + const c1r = colors[c1], + c1g = colors[c1 + 1], + c1b = colors[c1 + 2]; + const c2r = colors[c2], + c2g = colors[c2 + 1], + c2b = colors[c2 + 2]; + const c3r = colors[c3], + c3g = colors[c3 + 1], + c3b = colors[c3 + 2]; + const minY = Math.round(y1), + maxY = Math.round(y3); + let xa, car, cag, cab; + let xb, cbr, cbg, cbb; + for (let y = minY; y <= maxY; y++) { if (y < y2) { - var _k = void 0; - + let k; if (y < y1) { - _k = 0; + k = 0; } else { - _k = (y1 - y) / (y1 - y2); + k = (y1 - y) / (y1 - y2); } - - xa = x1 - (x1 - x2) * _k; - car = c1r - (c1r - c2r) * _k; - cag = c1g - (c1g - c2g) * _k; - cab = c1b - (c1b - c2b) * _k; + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; } else { - var _k2 = void 0; - + let k; if (y > y3) { - _k2 = 1; + k = 1; } else if (y2 === y3) { - _k2 = 0; + k = 0; } else { - _k2 = (y2 - y) / (y2 - y3); + k = (y2 - y) / (y2 - y3); } - - xa = x2 - (x2 - x3) * _k2; - car = c2r - (c2r - c3r) * _k2; - cag = c2g - (c2g - c3g) * _k2; - cab = c2b - (c2b - c3b) * _k2; + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; } - - var k = void 0; - + let k; if (y < y1) { k = 0; } else if (y > y3) { @@ -14631,24 +10957,20 @@ function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { } else { k = (y1 - y) / (y1 - y3); } - xb = x1 - (x1 - x3) * k; cbr = c1r - (c1r - c3r) * k; cbg = c1g - (c1g - c3g) * k; cbb = c1b - (c1b - c3b) * k; - var x1_ = Math.round(Math.min(xa, xb)); - var x2_ = Math.round(Math.max(xa, xb)); - var j = rowSize * y + x1_ * 4; - - for (var x = x1_; x <= x2_; x++) { + const x1_ = Math.round(Math.min(xa, xb)); + const x2_ = Math.round(Math.max(xa, xb)); + let j = rowSize * y + x1_ * 4; + for (let x = x1_; x <= x2_; x++) { k = (xa - x) / (xa - xb); - if (k < 0) { k = 0; } else if (k > 1) { k = 1; } - bytes[j++] = car - (car - cbr) * k | 0; bytes[j++] = cag - (cag - cbg) * k | 0; bytes[j++] = cab - (cab - cbb) * k | 0; @@ -14656,207 +10978,139 @@ function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { } } } - function drawFigure(data, figure, context) { - var ps = figure.coords; - var cs = figure.colors; - var i, ii; - + const ps = figure.coords; + const cs = figure.colors; + let i, ii; switch (figure.type) { case "lattice": - var verticesPerRow = figure.verticesPerRow; - var rows = Math.floor(ps.length / verticesPerRow) - 1; - var cols = verticesPerRow - 1; - + const verticesPerRow = figure.verticesPerRow; + const rows = Math.floor(ps.length / verticesPerRow) - 1; + const cols = verticesPerRow - 1; for (i = 0; i < rows; i++) { - var q = i * verticesPerRow; - - for (var j = 0; j < cols; j++, q++) { + let q = i * verticesPerRow; + for (let j = 0; j < cols; j++, q++) { drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); } } - break; - case "triangles": for (i = 0, ii = ps.length; i < ii; i += 3) { drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); } - break; - default: throw new Error("illegal figure"); } } - -var MeshShadingPattern = /*#__PURE__*/function (_BaseShadingPattern2) { - _inherits(MeshShadingPattern, _BaseShadingPattern2); - - var _super2 = _createSuper(MeshShadingPattern); - - function MeshShadingPattern(IR) { - var _this2; - - _classCallCheck(this, MeshShadingPattern); - - _this2 = _super2.call(this); - _this2._coords = IR[2]; - _this2._colors = IR[3]; - _this2._figures = IR[4]; - _this2._bounds = IR[5]; - _this2._bbox = IR[7]; - _this2._background = IR[8]; - _this2.matrix = null; - return _this2; - } - - _createClass(MeshShadingPattern, [{ - key: "_createMeshCanvas", - value: function _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) { - var EXPECTED_SCALE = 1.1; - var MAX_PATTERN_SIZE = 3000; - var BORDER_SIZE = 2; - var offsetX = Math.floor(this._bounds[0]); - var offsetY = Math.floor(this._bounds[1]); - var boundsWidth = Math.ceil(this._bounds[2]) - offsetX; - var boundsHeight = Math.ceil(this._bounds[3]) - offsetY; - var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var scaleX = boundsWidth / width; - var scaleY = boundsHeight / height; - var context = { - coords: this._coords, - colors: this._colors, - offsetX: -offsetX, - offsetY: -offsetY, - scaleX: 1 / scaleX, - scaleY: 1 / scaleY - }; - var paddedWidth = width + BORDER_SIZE * 2; - var paddedHeight = height + BORDER_SIZE * 2; - var tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); - var tmpCtx = tmpCanvas.context; - var data = tmpCtx.createImageData(width, height); - - if (backgroundColor) { - var bytes = data.data; - - for (var i = 0, ii = bytes.length; i < ii; i += 4) { - bytes[i] = backgroundColor[0]; - bytes[i + 1] = backgroundColor[1]; - bytes[i + 2] = backgroundColor[2]; - bytes[i + 3] = 255; - } - } - - var _iterator2 = _createForOfIteratorHelper(this._figures), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var figure = _step2.value; - drawFigure(data, figure, context); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); +class MeshShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._coords = IR[2]; + this._colors = IR[3]; + this._figures = IR[4]; + this._bounds = IR[5]; + this._bbox = IR[7]; + this._background = IR[8]; + this.matrix = null; + } + _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) { + const EXPECTED_SCALE = 1.1; + const MAX_PATTERN_SIZE = 3000; + const BORDER_SIZE = 2; + const offsetX = Math.floor(this._bounds[0]); + const offsetY = Math.floor(this._bounds[1]); + const boundsWidth = Math.ceil(this._bounds[2]) - offsetX; + const boundsHeight = Math.ceil(this._bounds[3]) - offsetY; + const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const scaleX = boundsWidth / width; + const scaleY = boundsHeight / height; + const context = { + coords: this._coords, + colors: this._colors, + offsetX: -offsetX, + offsetY: -offsetY, + scaleX: 1 / scaleX, + scaleY: 1 / scaleY + }; + const paddedWidth = width + BORDER_SIZE * 2; + const paddedHeight = height + BORDER_SIZE * 2; + const tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); + const tmpCtx = tmpCanvas.context; + const data = tmpCtx.createImageData(width, height); + if (backgroundColor) { + const bytes = data.data; + for (let i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; + } + } + for (const figure of this._figures) { + drawFigure(data, figure, context); + } + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + const canvas = tmpCanvas.canvas; + return { + canvas, + offsetX: offsetX - BORDER_SIZE * scaleX, + offsetY: offsetY - BORDER_SIZE * scaleY, + scaleX, + scaleY + }; + } + getPattern(ctx, owner, inverse, pathType) { + applyBoundingBox(ctx, this._bbox); + let scale; + if (pathType === PathType.SHADING) { + scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx)); + } else { + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + if (this.matrix) { + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; } - - tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); - var canvas = tmpCanvas.canvas; - return { - canvas: canvas, - offsetX: offsetX - BORDER_SIZE * scaleX, - offsetY: offsetY - BORDER_SIZE * scaleY, - scaleX: scaleX, - scaleY: scaleY - }; } - }, { - key: "getPattern", - value: function getPattern(ctx, owner, inverse, pathType) { - applyBoundingBox(ctx, this._bbox); - var scale; - - if (pathType === PathType.SHADING) { - scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); - } else { - scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); - - if (this.matrix) { - var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); - - scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; - } + const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases); + if (pathType !== PathType.SHADING) { + ctx.setTransform(...owner.baseTransform); + if (this.matrix) { + ctx.transform(...this.matrix); } - - var temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases); - - if (pathType !== PathType.SHADING) { - ctx.setTransform.apply(ctx, owner.baseTransform); - - if (this.matrix) { - ctx.transform.apply(ctx, this.matrix); - } - } - - ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); - return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); } - }]); - - return MeshShadingPattern; -}(BaseShadingPattern); - -var DummyShadingPattern = /*#__PURE__*/function (_BaseShadingPattern3) { - _inherits(DummyShadingPattern, _BaseShadingPattern3); - - var _super3 = _createSuper(DummyShadingPattern); - - function DummyShadingPattern() { - _classCallCheck(this, DummyShadingPattern); - - return _super3.apply(this, arguments); + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); } - - _createClass(DummyShadingPattern, [{ - key: "getPattern", - value: function getPattern() { - return "hotpink"; - } - }]); - - return DummyShadingPattern; -}(BaseShadingPattern); - +} +class DummyShadingPattern extends BaseShadingPattern { + getPattern() { + return "hotpink"; + } +} function getShadingPattern(IR) { switch (IR[0]) { case "RadialAxial": return new RadialAxialShadingPattern(IR); - case "Mesh": return new MeshShadingPattern(IR); - case "Dummy": return new DummyShadingPattern(); } - - throw new Error("Unknown IR type: ".concat(IR[0])); + throw new Error(`Unknown IR type: ${IR[0]}`); } - -var PaintType = { +const PaintType = { COLORED: 1, UNCOLORED: 2 }; - -var TilingPattern = /*#__PURE__*/function () { - function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { - _classCallCheck(this, TilingPattern); - +class TilingPattern { + static get MAX_PATTERN_SIZE() { + return (0, _util.shadow)(this, "MAX_PATTERN_SIZE", 3000); + } + constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) { this.operatorList = IR[2]; this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; this.bbox = IR[4]; @@ -14869,163 +11123,122 @@ var TilingPattern = /*#__PURE__*/function () { this.canvasGraphicsFactory = canvasGraphicsFactory; this.baseTransform = baseTransform; } - - _createClass(TilingPattern, [{ - key: "createPatternCanvas", - value: function createPatternCanvas(owner) { - var operatorList = this.operatorList; - var bbox = this.bbox; - var xstep = this.xstep; - var ystep = this.ystep; - var paintType = this.paintType; - var tilingType = this.tilingType; - var color = this.color; - var canvasGraphicsFactory = this.canvasGraphicsFactory; - (0, _util.info)("TilingType: " + tilingType); - var x0 = bbox[0], - y0 = bbox[1], - x1 = bbox[2], - y1 = bbox[3]; - - var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); - - var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); - - var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; - var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); - var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); - var tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); - var tmpCtx = tmpCanvas.context; - var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); - graphics.groupLevel = owner.groupLevel; - this.setFillAndStrokeStyleToContext(graphics, paintType, color); - var adjustedX0 = x0; - var adjustedY0 = y0; - var adjustedX1 = x1; - var adjustedY1 = y1; - - if (x0 < 0) { - adjustedX0 = 0; - adjustedX1 += Math.abs(x0); - } - - if (y0 < 0) { - adjustedY0 = 0; - adjustedY1 += Math.abs(y0); - } - - tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0)); - graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); - tmpCtx.save(); - this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1); - graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice(); - graphics.executeOperatorList(operatorList); - graphics.endDrawing(); - return { - canvas: tmpCanvas.canvas, - scaleX: dimx.scale, - scaleY: dimy.scale, - offsetX: adjustedX0, - offsetY: adjustedY0 - }; - } - }, { - key: "getSizeAndScale", - value: function getSizeAndScale(step, realOutputSize, scale) { - step = Math.abs(step); - var maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); - var size = Math.ceil(step * scale); - - if (size >= maxSize) { - size = maxSize; - } else { - scale = size / step; - } - - return { - scale: scale, - size: size - }; + createPatternCanvas(owner) { + const operatorList = this.operatorList; + const bbox = this.bbox; + const xstep = this.xstep; + const ystep = this.ystep; + const paintType = this.paintType; + const tilingType = this.tilingType; + const color = this.color; + const canvasGraphicsFactory = this.canvasGraphicsFactory; + (0, _util.info)("TilingType: " + tilingType); + const x0 = bbox[0], + y0 = bbox[1], + x1 = bbox[2], + y1 = bbox[3]; + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; + const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); + const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); + const tmpCtx = tmpCanvas.context; + const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(graphics, paintType, color); + let adjustedX0 = x0; + let adjustedY0 = y0; + let adjustedX1 = x1; + let adjustedY1 = y1; + if (x0 < 0) { + adjustedX0 = 0; + adjustedX1 += Math.abs(x0); + } + if (y0 < 0) { + adjustedY0 = 0; + adjustedY1 += Math.abs(y0); + } + tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0)); + graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); + tmpCtx.save(); + this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1); + graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx); + graphics.executeOperatorList(operatorList); + graphics.endDrawing(); + return { + canvas: tmpCanvas.canvas, + scaleX: dimx.scale, + scaleY: dimy.scale, + offsetX: adjustedX0, + offsetY: adjustedY0 + }; + } + getSizeAndScale(step, realOutputSize, scale) { + step = Math.abs(step); + const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); + let size = Math.ceil(step * scale); + if (size >= maxSize) { + size = maxSize; + } else { + scale = size / step; } - }, { - key: "clipBbox", - value: function clipBbox(graphics, x0, y0, x1, y1) { - var bboxWidth = x1 - x0; - var bboxHeight = y1 - y0; - graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); - graphics.current.updateRectMinMax(graphics.ctx.mozCurrentTransform, [x0, y0, x1, y1]); - graphics.clip(); - graphics.endPath(); - } - }, { - key: "setFillAndStrokeStyleToContext", - value: function setFillAndStrokeStyleToContext(graphics, paintType, color) { - var context = graphics.ctx, - current = graphics.current; - - switch (paintType) { - case PaintType.COLORED: - var ctx = this.ctx; - context.fillStyle = ctx.fillStyle; - context.strokeStyle = ctx.strokeStyle; - current.fillColor = ctx.fillStyle; - current.strokeColor = ctx.strokeStyle; - break; - - case PaintType.UNCOLORED: - var cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]); - - context.fillStyle = cssColor; - context.strokeStyle = cssColor; - current.fillColor = cssColor; - current.strokeColor = cssColor; - break; - - default: - throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); - } + return { + scale, + size + }; + } + clipBbox(graphics, x0, y0, x1, y1) { + const bboxWidth = x1 - x0; + const bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]); + graphics.clip(); + graphics.endPath(); + } + setFillAndStrokeStyleToContext(graphics, paintType, color) { + const context = graphics.ctx, + current = graphics.current; + switch (paintType) { + case PaintType.COLORED: + const ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + current.fillColor = ctx.fillStyle; + current.strokeColor = ctx.strokeStyle; + break; + case PaintType.UNCOLORED: + const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]); + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; + default: + throw new _util.FormatError(`Unsupported paint type: ${paintType}`); } - }, { - key: "getPattern", - value: function getPattern(ctx, owner, inverse, pathType) { - var matrix = inverse; - - if (pathType !== PathType.SHADING) { - matrix = _util.Util.transform(matrix, owner.baseTransform); - - if (this.matrix) { - matrix = _util.Util.transform(matrix, this.matrix); - } - } - - var temporaryPatternCanvas = this.createPatternCanvas(owner); - var domMatrix = new DOMMatrix(matrix); - domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); - var pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); - - try { - pattern.setTransform(domMatrix); - } catch (ex) { - (0, _util.warn)("TilingPattern.getPattern: \"".concat(ex === null || ex === void 0 ? void 0 : ex.message, "\".")); + } + getPattern(ctx, owner, inverse, pathType) { + let matrix = inverse; + if (pathType !== PathType.SHADING) { + matrix = _util.Util.transform(matrix, owner.baseTransform); + if (this.matrix) { + matrix = _util.Util.transform(matrix, this.matrix); } - - return pattern; } - }], [{ - key: "MAX_PATTERN_SIZE", - get: function get() { - return (0, _util.shadow)(this, "MAX_PATTERN_SIZE", 3000); - } - }]); - - return TilingPattern; -}(); - + const temporaryPatternCanvas = this.createPatternCanvas(owner); + let domMatrix = new DOMMatrix(matrix); + domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); + const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); + pattern.setTransform(domMatrix); + return pattern; + } +} exports.TilingPattern = TilingPattern; /***/ }), -/* 165 */ +/* 143 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -15035,77 +11248,51 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.applyMaskImageData = applyMaskImageData; - var _util = __w_pdfjs_require__(1); - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - function applyMaskImageData(_ref) { - var src = _ref.src, - _ref$srcPos = _ref.srcPos, - srcPos = _ref$srcPos === void 0 ? 0 : _ref$srcPos, - dest = _ref.dest, - _ref$destPos = _ref.destPos, - destPos = _ref$destPos === void 0 ? 0 : _ref$destPos, - width = _ref.width, - height = _ref.height, - _ref$inverseDecode = _ref.inverseDecode, - inverseDecode = _ref$inverseDecode === void 0 ? false : _ref$inverseDecode; - var opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; - - var _ref2 = !inverseDecode ? [opaque, 0] : [0, opaque], - _ref3 = _slicedToArray(_ref2, 2), - zeroMapping = _ref3[0], - oneMapping = _ref3[1]; - - var widthInSource = width >> 3; - var widthRemainder = width & 7; - var srcLength = src.length; + let { + src, + srcPos = 0, + dest, + destPos = 0, + width, + height, + inverseDecode = false + } = _ref; + const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque]; + const widthInSource = width >> 3; + const widthRemainder = width & 7; + const srcLength = src.length; dest = new Uint32Array(dest.buffer); - - for (var i = 0; i < height; i++) { - for (var max = srcPos + widthInSource; srcPos < max; srcPos++) { - var _elem = srcPos < srcLength ? src[srcPos] : 255; - - dest[destPos++] = _elem & 128 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 64 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 32 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 16 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 8 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 4 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 2 ? oneMapping : zeroMapping; - dest[destPos++] = _elem & 1 ? oneMapping : zeroMapping; + for (let i = 0; i < height; i++) { + for (const max = srcPos + widthInSource; srcPos < max; srcPos++) { + const elem = srcPos < srcLength ? src[srcPos] : 255; + dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping; } - if (widthRemainder === 0) { continue; } - - var elem = srcPos < srcLength ? src[srcPos++] : 255; - - for (var j = 0; j < widthRemainder; j++) { + const elem = srcPos < srcLength ? src[srcPos++] : 255; + for (let j = 0; j < widthRemainder; j++) { dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping; } } - return { - srcPos: srcPos, - destPos: destPos + srcPos, + destPos }; } /***/ }), -/* 166 */ +/* 144 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -15115,13 +11302,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.GlobalWorkerOptions = void 0; -var GlobalWorkerOptions = Object.create(null); +const GlobalWorkerOptions = Object.create(null); exports.GlobalWorkerOptions = GlobalWorkerOptions; GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc; /***/ }), -/* 167 */ +/* 145 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -15131,31 +11318,13 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.MessageHandler = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - -var CallbackKind = { +const CallbackKind = { UNKNOWN: 0, DATA: 1, ERROR: 2 }; -var StreamKind = { +const StreamKind = { UNKNOWN: 0, CANCEL: 1, CANCEL_COMPLETE: 2, @@ -15166,39 +11335,27 @@ var StreamKind = { PULL_COMPLETE: 7, START_COMPLETE: 8 }; - function wrapReason(reason) { - if (!(reason instanceof Error || _typeof(reason) === "object" && reason !== null)) { + if (!(reason instanceof Error || typeof reason === "object" && reason !== null)) { (0, _util.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); } - switch (reason.name) { case "AbortException": return new _util.AbortException(reason.message); - case "MissingPDFException": return new _util.MissingPDFException(reason.message); - case "PasswordException": return new _util.PasswordException(reason.message, reason.code); - case "UnexpectedResponseException": return new _util.UnexpectedResponseException(reason.message, reason.status); - case "UnknownErrorException": return new _util.UnknownErrorException(reason.message, reason.details); - default: return new _util.UnknownErrorException(reason.message, reason.toString()); } } - -var MessageHandler = /*#__PURE__*/function () { - function MessageHandler(sourceName, targetName, comObj) { - var _this = this; - - _classCallCheck(this, MessageHandler); - +class MessageHandler { + constructor(sourceName, targetName, comObj) { this.sourceName = sourceName; this.targetName = targetName; this.comObj = comObj; @@ -15208,30 +11365,22 @@ var MessageHandler = /*#__PURE__*/function () { this.streamControllers = Object.create(null); this.callbackCapabilities = Object.create(null); this.actionHandler = Object.create(null); - - this._onComObjOnMessage = function (event) { - var data = event.data; - - if (data.targetName !== _this.sourceName) { + this._onComObjOnMessage = event => { + const data = event.data; + if (data.targetName !== this.sourceName) { return; } - if (data.stream) { - _this._processStreamMessage(data); - + this._processStreamMessage(data); return; } - if (data.callback) { - var callbackId = data.callbackId; - var capability = _this.callbackCapabilities[callbackId]; - + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; if (!capability) { - throw new Error("Cannot resolve callback ".concat(callbackId)); + throw new Error(`Cannot resolve callback ${callbackId}`); } - - delete _this.callbackCapabilities[callbackId]; - + delete this.callbackCapabilities[callbackId]; if (data.callback === CallbackKind.DATA) { capability.resolve(data.data); } else if (data.callback === CallbackKind.ERROR) { @@ -15239,19 +11388,15 @@ var MessageHandler = /*#__PURE__*/function () { } else { throw new Error("Unexpected callback case"); } - return; } - - var action = _this.actionHandler[data.action]; - + const action = this.actionHandler[data.action]; if (!action) { - throw new Error("Unknown action from worker: ".concat(data.action)); + throw new Error(`Unknown action from worker: ${data.action}`); } - if (data.callbackId) { - var cbSourceName = _this.sourceName; - var cbTargetName = data.sourceName; + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; new Promise(function (resolve) { resolve(action(data.data)); }).then(function (result) { @@ -15273,397 +11418,313 @@ var MessageHandler = /*#__PURE__*/function () { }); return; } - if (data.streamId) { - _this._createStreamSink(data); - + this._createStreamSink(data); return; } - action(data.data); }; - comObj.addEventListener("message", this._onComObjOnMessage); } - - _createClass(MessageHandler, [{ - key: "on", - value: function on(actionName, handler) { - var ah = this.actionHandler; - - if (ah[actionName]) { - throw new Error("There is already an actionName called \"".concat(actionName, "\"")); - } - - ah[actionName] = handler; - } - }, { - key: "send", - value: function send(actionName, data, transfers) { + on(actionName, handler) { + const ah = this.actionHandler; + if (ah[actionName]) { + throw new Error(`There is already an actionName called "${actionName}"`); + } + ah[actionName] = handler; + } + send(actionName, data, transfers) { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data + }, transfers); + } + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = (0, _util.createPromiseCapability)(); + this.callbackCapabilities[callbackId] = capability; + try { this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: actionName, - data: data + callbackId, + data }, transfers); - } - }, { - key: "sendWithPromise", - value: function sendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackId++; - var capability = (0, _util.createPromiseCapability)(); - this.callbackCapabilities[callbackId] = capability; - - try { - this.comObj.postMessage({ - sourceName: this.sourceName, - targetName: this.targetName, + } catch (ex) { + capability.reject(ex); + } + return capability.promise; + } + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++, + sourceName = this.sourceName, + targetName = this.targetName, + comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId] = { + controller, + startCall: startCapability, + pullCall: null, + cancelCall: null, + isClosed: false + }; + comObj.postMessage({ + sourceName, + targetName, action: actionName, - callbackId: callbackId, - data: data + streamId, + data, + desiredSize: controller.desiredSize }, transfers); - } catch (ex) { - capability.reject(ex); - } - - return capability.promise; - } - }, { - key: "sendWithStream", - value: function sendWithStream(actionName, data, queueingStrategy, transfers) { - var _this2 = this; - - var streamId = this.streamId++, - sourceName = this.sourceName, - targetName = this.targetName, - comObj = this.comObj; - return new ReadableStream({ - start: function start(controller) { - var startCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId] = { - controller: controller, - startCall: startCapability, - pullCall: null, - cancelCall: null, - isClosed: false - }; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - action: actionName, - streamId: streamId, - data: data, - desiredSize: controller.desiredSize - }, transfers); - return startCapability.promise; - }, - pull: function pull(controller) { - var pullCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].pullCall = pullCapability; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL, - streamId: streamId, - desiredSize: controller.desiredSize - }); - return pullCapability.promise; - }, - cancel: function cancel(reason) { - (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); - var cancelCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].cancelCall = cancelCapability; - _this2.streamControllers[streamId].isClosed = true; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CANCEL, - streamId: streamId, - reason: wrapReason(reason) - }); - return cancelCapability.promise; + return startCapability.promise; + }, + pull: controller => { + const pullCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, + desiredSize: controller.desiredSize + }); + return pullCapability.promise; + }, + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) + }); + return cancelCapability.promise; + } + }, queueingStrategy); + } + _createStreamSink(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const self = this, + action = this.actionHandler[data.action]; + const streamSink = { + enqueue(chunk) { + let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + let transfers = arguments.length > 2 ? arguments[2] : undefined; + if (this.isCancelled) { + return; } - }, queueingStrategy); - } - }, { - key: "_createStreamSink", - value: function _createStreamSink(data) { - var streamId = data.streamId, - sourceName = this.sourceName, - targetName = data.sourceName, - comObj = this.comObj; - var self = this, - action = this.actionHandler[data.action]; - var streamSink = { - enqueue: function enqueue(chunk) { - var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var transfers = arguments.length > 2 ? arguments[2] : undefined; - - if (this.isCancelled) { - return; - } - - var lastDesiredSize = this.desiredSize; - this.desiredSize -= size; - - if (lastDesiredSize > 0 && this.desiredSize <= 0) { - this.sinkCapability = (0, _util.createPromiseCapability)(); - this.ready = this.sinkCapability.promise; - } - - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.ENQUEUE, - streamId: streamId, - chunk: chunk - }, transfers); - }, - close: function close() { - if (this.isCancelled) { - return; - } - - this.isCancelled = true; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CLOSE, - streamId: streamId - }); - delete self.streamSinks[streamId]; - }, - error: function error(reason) { - (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); - - if (this.isCancelled) { - return; - } - - this.isCancelled = true; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.ERROR, - streamId: streamId, - reason: wrapReason(reason) - }); - }, - sinkCapability: (0, _util.createPromiseCapability)(), - onPull: null, - onCancel: null, - isCancelled: false, - desiredSize: data.desiredSize, - ready: null - }; - streamSink.sinkCapability.resolve(); - streamSink.ready = streamSink.sinkCapability.promise; - this.streamSinks[streamId] = streamSink; - new Promise(function (resolve) { - resolve(action(data.data, streamSink)); - }).then(function () { + const lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = (0, _util.createPromiseCapability)(); + this.ready = this.sinkCapability.promise; + } + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); + }, + close() { + if (this.isCancelled) { + return; + } + this.isCancelled = true; comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.START_COMPLETE, - streamId: streamId, - success: true + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId }); - }, function (reason) { + delete self.streamSinks[streamId]; + }, + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { + return; + } + this.isCancelled = true; comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.START_COMPLETE, - streamId: streamId, + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, reason: wrapReason(reason) }); + }, + sinkCapability: (0, _util.createPromiseCapability)(), + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: data.desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + success: true }); - } - }, { - key: "_processStreamMessage", - value: function _processStreamMessage(data) { - var streamId = data.streamId, - sourceName = this.sourceName, - targetName = data.sourceName, - comObj = this.comObj; - var streamController = this.streamControllers[streamId], - streamSink = this.streamSinks[streamId]; - - switch (data.stream) { - case StreamKind.START_COMPLETE: - if (data.success) { - streamController.startCall.resolve(); - } else { - streamController.startCall.reject(wrapReason(data.reason)); - } - - break; - - case StreamKind.PULL_COMPLETE: - if (data.success) { - streamController.pullCall.resolve(); - } else { - streamController.pullCall.reject(wrapReason(data.reason)); - } - - break; - - case StreamKind.PULL: - if (!streamSink) { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL_COMPLETE, - streamId: streamId, - success: true - }); - break; - } - - if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { - streamSink.sinkCapability.resolve(); - } - - streamSink.desiredSize = data.desiredSize; - new Promise(function (resolve) { - resolve(streamSink.onPull && streamSink.onPull()); - }).then(function () { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL_COMPLETE, - streamId: streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL_COMPLETE, - streamId: streamId, - reason: wrapReason(reason) - }); - }); - break; - - case StreamKind.ENQUEUE: - (0, _util.assert)(streamController, "enqueue should have stream controller"); - - if (streamController.isClosed) { - break; - } - - streamController.controller.enqueue(data.chunk); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + } + _processStreamMessage(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const streamController = this.streamControllers[streamId], + streamSink = this.streamSinks[streamId]; + switch (data.stream) { + case StreamKind.START_COMPLETE: + if (data.success) { + streamController.startCall.resolve(); + } else { + streamController.startCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL_COMPLETE: + if (data.success) { + streamController.pullCall.resolve(); + } else { + streamController.pullCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL: + if (!streamSink) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); break; - - case StreamKind.CLOSE: - (0, _util.assert)(streamController, "close should have stream controller"); - - if (streamController.isClosed) { - break; - } - - streamController.isClosed = true; - streamController.controller.close(); - - this._deleteStreamController(streamController, streamId); - + } + if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { + streamSink.sinkCapability.resolve(); + } + streamSink.desiredSize = data.desiredSize; + new Promise(function (resolve) { + resolve(streamSink.onPull && streamSink.onPull()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + break; + case StreamKind.ENQUEUE: + (0, _util.assert)(streamController, "enqueue should have stream controller"); + if (streamController.isClosed) { break; - - case StreamKind.ERROR: - (0, _util.assert)(streamController, "error should have stream controller"); - streamController.controller.error(wrapReason(data.reason)); - - this._deleteStreamController(streamController, streamId); - + } + streamController.controller.enqueue(data.chunk); + break; + case StreamKind.CLOSE: + (0, _util.assert)(streamController, "close should have stream controller"); + if (streamController.isClosed) { break; - - case StreamKind.CANCEL_COMPLETE: - if (data.success) { - streamController.cancelCall.resolve(); - } else { - streamController.cancelCall.reject(wrapReason(data.reason)); - } - - this._deleteStreamController(streamController, streamId); - + } + streamController.isClosed = true; + streamController.controller.close(); + this._deleteStreamController(streamController, streamId); + break; + case StreamKind.ERROR: + (0, _util.assert)(streamController, "error should have stream controller"); + streamController.controller.error(wrapReason(data.reason)); + this._deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + streamController.cancelCall.resolve(); + } else { + streamController.cancelCall.reject(wrapReason(data.reason)); + } + this._deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL: + if (!streamSink) { break; - - case StreamKind.CANCEL: - if (!streamSink) { - break; - } - - new Promise(function (resolve) { - resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))); - }).then(function () { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CANCEL_COMPLETE, - streamId: streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CANCEL_COMPLETE, - streamId: streamId, - reason: wrapReason(reason) - }); + } + new Promise(function (resolve) { + resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + success: true }); - streamSink.sinkCapability.reject(wrapReason(data.reason)); - streamSink.isCancelled = true; - delete this.streamSinks[streamId]; - break; - - default: - throw new Error("Unexpected stream case"); - } - } - }, { - key: "_deleteStreamController", - value: function () { - var _deleteStreamController2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(streamController, streamId) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]); - - case 2: - delete this.streamControllers[streamId]; - - case 3: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _deleteStreamController(_x, _x2) { - return _deleteStreamController2.apply(this, arguments); - } - - return _deleteStreamController; - }() - }, { - key: "destroy", - value: function destroy() { - this.comObj.removeEventListener("message", this._onComObjOnMessage); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + streamSink.sinkCapability.reject(wrapReason(data.reason)); + streamSink.isCancelled = true; + delete this.streamSinks[streamId]; + break; + default: + throw new Error("Unexpected stream case"); } - }]); - - return MessageHandler; -}(); - + } + async _deleteStreamController(streamController, streamId) { + await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]); + delete this.streamControllers[streamId]; + } + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } +} exports.MessageHandler = MessageHandler; /***/ }), -/* 168 */ +/* 146 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -15673,86 +11734,50 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Metadata = void 0; - var _util = __w_pdfjs_require__(1); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } - function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } - function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } - function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } - function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } - function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } - function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } - var _metadataMap = /*#__PURE__*/new WeakMap(); - var _data = /*#__PURE__*/new WeakMap(); - -var Metadata = /*#__PURE__*/function () { - function Metadata(_ref) { - var parsedData = _ref.parsedData, - rawData = _ref.rawData; - - _classCallCheck(this, Metadata); - +class Metadata { + constructor(_ref) { + let { + parsedData, + rawData + } = _ref; _classPrivateFieldInitSpec(this, _metadataMap, { writable: true, value: void 0 }); - _classPrivateFieldInitSpec(this, _data, { writable: true, value: void 0 }); - _classPrivateFieldSet(this, _metadataMap, parsedData); - _classPrivateFieldSet(this, _data, rawData); } - - _createClass(Metadata, [{ - key: "getRaw", - value: function getRaw() { - return _classPrivateFieldGet(this, _data); - } - }, { - key: "get", - value: function get(name) { - var _classPrivateFieldGet2; - - return (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _metadataMap).get(name)) !== null && _classPrivateFieldGet2 !== void 0 ? _classPrivateFieldGet2 : null; - } - }, { - key: "getAll", - value: function getAll() { - return (0, _util.objectFromMap)(_classPrivateFieldGet(this, _metadataMap)); - } - }, { - key: "has", - value: function has(name) { - return _classPrivateFieldGet(this, _metadataMap).has(name); - } - }]); - - return Metadata; -}(); - + getRaw() { + return _classPrivateFieldGet(this, _data); + } + get(name) { + return _classPrivateFieldGet(this, _metadataMap).get(name) ?? null; + } + getAll() { + return (0, _util.objectFromMap)(_classPrivateFieldGet(this, _metadataMap)); + } + has(name) { + return _classPrivateFieldGet(this, _metadataMap).has(name); + } +} exports.Metadata = Metadata; /***/ }), -/* 169 */ +/* 147 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -15762,328 +11787,233 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.OptionalContentConfig = void 0; - var _util = __w_pdfjs_require__(1); - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var OptionalContentGroup = /*#__PURE__*/_createClass(function OptionalContentGroup(name, intent) { - _classCallCheck(this, OptionalContentGroup); - - this.visible = true; - this.name = name; - this.intent = intent; -}); - -var OptionalContentConfig = /*#__PURE__*/function () { - function OptionalContentConfig(data) { - _classCallCheck(this, OptionalContentConfig); - +var _murmurhash = __w_pdfjs_require__(139); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +const INTERNAL = Symbol("INTERNAL"); +var _visible = /*#__PURE__*/new WeakMap(); +class OptionalContentGroup { + constructor(name, intent) { + _classPrivateFieldInitSpec(this, _visible, { + writable: true, + value: true + }); + this.name = name; + this.intent = intent; + } + get visible() { + return _classPrivateFieldGet(this, _visible); + } + _setVisible(internal, visible) { + if (internal !== INTERNAL) { + (0, _util.unreachable)("Internal method `_setVisible` called."); + } + _classPrivateFieldSet(this, _visible, visible); + } +} +var _cachedGetHash = /*#__PURE__*/new WeakMap(); +var _groups = /*#__PURE__*/new WeakMap(); +var _initialHash = /*#__PURE__*/new WeakMap(); +var _order = /*#__PURE__*/new WeakMap(); +var _evaluateVisibilityExpression = /*#__PURE__*/new WeakSet(); +class OptionalContentConfig { + constructor(data) { + _classPrivateMethodInitSpec(this, _evaluateVisibilityExpression); + _classPrivateFieldInitSpec(this, _cachedGetHash, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _groups, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _initialHash, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _order, { + writable: true, + value: null + }); this.name = null; this.creator = null; - this._order = null; - this._groups = new Map(); - if (data === null) { return; } - this.name = data.name; this.creator = data.creator; - this._order = data.order; - - var _iterator = _createForOfIteratorHelper(data.groups), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _group = _step.value; - - this._groups.set(_group.id, new OptionalContentGroup(_group.name, _group.intent)); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); + _classPrivateFieldSet(this, _order, data.order); + for (const group of data.groups) { + _classPrivateFieldGet(this, _groups).set(group.id, new OptionalContentGroup(group.name, group.intent)); } - if (data.baseState === "OFF") { - var _iterator2 = _createForOfIteratorHelper(this._groups), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var group = _step2.value; - group.visible = false; - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); + for (const group of _classPrivateFieldGet(this, _groups).values()) { + group._setVisible(INTERNAL, false); } } - - var _iterator3 = _createForOfIteratorHelper(data.on), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var on = _step3.value; - this._groups.get(on).visible = true; - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); + for (const on of data.on) { + _classPrivateFieldGet(this, _groups).get(on)._setVisible(INTERNAL, true); } - - var _iterator4 = _createForOfIteratorHelper(data.off), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var off = _step4.value; - this._groups.get(off).visible = false; - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); + for (const off of data.off) { + _classPrivateFieldGet(this, _groups).get(off)._setVisible(INTERNAL, false); } + _classPrivateFieldSet(this, _initialHash, this.getHash()); } - - _createClass(OptionalContentConfig, [{ - key: "_evaluateVisibilityExpression", - value: function _evaluateVisibilityExpression(array) { - var length = array.length; - - if (length < 2) { - return true; - } - - var operator = array[0]; - - for (var i = 1; i < length; i++) { - var element = array[i]; - var state = void 0; - - if (Array.isArray(element)) { - state = this._evaluateVisibilityExpression(element); - } else if (this._groups.has(element)) { - state = this._groups.get(element).visible; - } else { - (0, _util.warn)("Optional content group not found: ".concat(element)); - return true; - } - - switch (operator) { - case "And": - if (!state) { - return false; - } - - break; - - case "Or": - if (state) { - return true; - } - - break; - - case "Not": - return !state; - - default: - return true; - } - } - - return operator === "And"; + isVisible(group) { + if (_classPrivateFieldGet(this, _groups).size === 0) { + return true; } - }, { - key: "isVisible", - value: function isVisible(group) { - if (this._groups.size === 0) { + if (!group) { + (0, _util.warn)("Optional content group not defined."); + return true; + } + if (group.type === "OCG") { + if (!_classPrivateFieldGet(this, _groups).has(group.id)) { + (0, _util.warn)(`Optional content group not found: ${group.id}`); return true; } - - if (!group) { - (0, _util.warn)("Optional content group not defined."); - return true; + return _classPrivateFieldGet(this, _groups).get(group.id).visible; + } else if (group.type === "OCMD") { + if (group.expression) { + return _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, group.expression); } - - if (group.type === "OCG") { - if (!this._groups.has(group.id)) { - (0, _util.warn)("Optional content group not found: ".concat(group.id)); - return true; + if (!group.policy || group.policy === "AnyOn") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + if (_classPrivateFieldGet(this, _groups).get(id).visible) { + return true; + } } - - return this._groups.get(group.id).visible; - } else if (group.type === "OCMD") { - if (group.expression) { - return this._evaluateVisibilityExpression(group.expression); + return false; + } else if (group.policy === "AllOn") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + if (!_classPrivateFieldGet(this, _groups).get(id).visible) { + return false; + } } - - if (!group.policy || group.policy === "AnyOn") { - var _iterator5 = _createForOfIteratorHelper(group.ids), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var id = _step5.value; - - if (!this._groups.has(id)) { - (0, _util.warn)("Optional content group not found: ".concat(id)); - return true; - } - - if (this._groups.get(id).visible) { - return true; - } - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); + return true; + } else if (group.policy === "AnyOff") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; } - - return false; - } else if (group.policy === "AllOn") { - var _iterator6 = _createForOfIteratorHelper(group.ids), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var _id = _step6.value; - - if (!this._groups.has(_id)) { - (0, _util.warn)("Optional content group not found: ".concat(_id)); - return true; - } - - if (!this._groups.get(_id).visible) { - return false; - } - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); + if (!_classPrivateFieldGet(this, _groups).get(id).visible) { + return true; } - - return true; - } else if (group.policy === "AnyOff") { - var _iterator7 = _createForOfIteratorHelper(group.ids), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var _id2 = _step7.value; - - if (!this._groups.has(_id2)) { - (0, _util.warn)("Optional content group not found: ".concat(_id2)); - return true; - } - - if (!this._groups.get(_id2).visible) { - return true; - } - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); + } + return false; + } else if (group.policy === "AllOff") { + for (const id of group.ids) { + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; } - - return false; - } else if (group.policy === "AllOff") { - var _iterator8 = _createForOfIteratorHelper(group.ids), - _step8; - - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var _id3 = _step8.value; - - if (!this._groups.has(_id3)) { - (0, _util.warn)("Optional content group not found: ".concat(_id3)); - return true; - } - - if (this._groups.get(_id3).visible) { - return false; - } - } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); + if (_classPrivateFieldGet(this, _groups).get(id).visible) { + return false; } - - return true; } - - (0, _util.warn)("Unknown optional content policy ".concat(group.policy, ".")); return true; } - - (0, _util.warn)("Unknown group type ".concat(group.type, ".")); + (0, _util.warn)(`Unknown optional content policy ${group.policy}.`); return true; } - }, { - key: "setVisibility", - value: function setVisibility(id) { - var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - - if (!this._groups.has(id)) { - (0, _util.warn)("Optional content group not found: ".concat(id)); - return; - } - - this._groups.get(id).visible = !!visible; + (0, _util.warn)(`Unknown group type ${group.type}.`); + return true; + } + setVisibility(id) { + let visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (!_classPrivateFieldGet(this, _groups).has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return; } - }, { - key: "getOrder", - value: function getOrder() { - if (!this._groups.size) { - return null; - } - - if (this._order) { - return this._order.slice(); - } - - return Array.from(this._groups.keys()); + _classPrivateFieldGet(this, _groups).get(id)._setVisible(INTERNAL, !!visible); + _classPrivateFieldSet(this, _cachedGetHash, null); + } + get hasInitialVisibility() { + return this.getHash() === _classPrivateFieldGet(this, _initialHash); + } + getOrder() { + if (!_classPrivateFieldGet(this, _groups).size) { + return null; } - }, { - key: "getGroups", - value: function getGroups() { - return this._groups.size > 0 ? (0, _util.objectFromMap)(this._groups) : null; + if (_classPrivateFieldGet(this, _order)) { + return _classPrivateFieldGet(this, _order).slice(); } - }, { - key: "getGroup", - value: function getGroup(id) { - return this._groups.get(id) || null; + return [..._classPrivateFieldGet(this, _groups).keys()]; + } + getGroups() { + return _classPrivateFieldGet(this, _groups).size > 0 ? (0, _util.objectFromMap)(_classPrivateFieldGet(this, _groups)) : null; + } + getGroup(id) { + return _classPrivateFieldGet(this, _groups).get(id) || null; + } + getHash() { + if (_classPrivateFieldGet(this, _cachedGetHash) !== null) { + return _classPrivateFieldGet(this, _cachedGetHash); } - }]); - - return OptionalContentConfig; -}(); - + const hash = new _murmurhash.MurmurHash3_64(); + for (const [id, group] of _classPrivateFieldGet(this, _groups)) { + hash.update(`${id}:${group.visible}`); + } + return _classPrivateFieldSet(this, _cachedGetHash, hash.hexdigest()); + } +} exports.OptionalContentConfig = OptionalContentConfig; +function _evaluateVisibilityExpression2(array) { + const length = array.length; + if (length < 2) { + return true; + } + const operator = array[0]; + for (let i = 1; i < length; i++) { + const element = array[i]; + let state; + if (Array.isArray(element)) { + state = _classPrivateMethodGet(this, _evaluateVisibilityExpression, _evaluateVisibilityExpression2).call(this, element); + } else if (_classPrivateFieldGet(this, _groups).has(element)) { + state = _classPrivateFieldGet(this, _groups).get(element).visible; + } else { + (0, _util.warn)(`Optional content group not found: ${element}`); + return true; + } + switch (operator) { + case "And": + if (!state) { + return false; + } + break; + case "Or": + if (state) { + return true; + } + break; + case "Not": + return !state; + default: + return true; + } + } + return operator === "And"; +} /***/ }), -/* 170 */ +/* 148 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -16093,380 +12023,204 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PDFDataTransportStream = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - var _util = __w_pdfjs_require__(1); - -var _display_utils = __w_pdfjs_require__(158); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var PDFDataTransportStream = /*#__PURE__*/function () { - function PDFDataTransportStream(params, pdfDataRangeTransport) { - var _this = this; - - _classCallCheck(this, PDFDataTransportStream); - +var _display_utils = __w_pdfjs_require__(137); +class PDFDataTransportStream { + constructor(params, pdfDataRangeTransport) { (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); this._queuedChunks = []; this._progressiveDone = params.progressiveDone || false; this._contentDispositionFilename = params.contentDispositionFilename || null; - var initialData = params.initialData; - + const initialData = params.initialData; if ((initialData === null || initialData === void 0 ? void 0 : initialData.length) > 0) { - var buffer = new Uint8Array(initialData).buffer; - + const buffer = new Uint8Array(initialData).buffer; this._queuedChunks.push(buffer); } - this._pdfDataRangeTransport = pdfDataRangeTransport; this._isStreamingSupported = !params.disableStream; this._isRangeSupported = !params.disableRange; this._contentLength = params.length; this._fullRequestReader = null; this._rangeReaders = []; - - this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { - _this._onReceiveData({ - begin: begin, - chunk: chunk + this._pdfDataRangeTransport.addRangeListener((begin, chunk) => { + this._onReceiveData({ + begin, + chunk }); }); - - this._pdfDataRangeTransport.addProgressListener(function (loaded, total) { - _this._onProgress({ - loaded: loaded, - total: total + this._pdfDataRangeTransport.addProgressListener((loaded, total) => { + this._onProgress({ + loaded, + total }); }); - - this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { - _this._onReceiveData({ - chunk: chunk + this._pdfDataRangeTransport.addProgressiveReadListener(chunk => { + this._onReceiveData({ + chunk }); }); - - this._pdfDataRangeTransport.addProgressiveDoneListener(function () { - _this._onProgressiveDone(); + this._pdfDataRangeTransport.addProgressiveDoneListener(() => { + this._onProgressiveDone(); }); - this._pdfDataRangeTransport.transportReady(); } - - _createClass(PDFDataTransportStream, [{ - key: "_onReceiveData", - value: function _onReceiveData(args) { - var buffer = new Uint8Array(args.chunk).buffer; - - if (args.begin === undefined) { - if (this._fullRequestReader) { - this._fullRequestReader._enqueue(buffer); - } else { - this._queuedChunks.push(buffer); - } + _onReceiveData(args) { + const buffer = new Uint8Array(args.chunk).buffer; + if (args.begin === undefined) { + if (this._fullRequestReader) { + this._fullRequestReader._enqueue(buffer); } else { - var found = this._rangeReaders.some(function (rangeReader) { - if (rangeReader._begin !== args.begin) { - return false; - } - - rangeReader._enqueue(buffer); - - return true; - }); - - (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); + this._queuedChunks.push(buffer); } - } - }, { - key: "_progressiveDataLength", - get: function get() { - var _this$_fullRequestRea, _this$_fullRequestRea2; - - return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0; - } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (evt.total === undefined) { - var firstReader = this._rangeReaders[0]; - - if (firstReader !== null && firstReader !== void 0 && firstReader.onProgress) { - firstReader.onProgress({ - loaded: evt.loaded - }); - } - } else { - var fullReader = this._fullRequestReader; - - if (fullReader !== null && fullReader !== void 0 && fullReader.onProgress) { - fullReader.onProgress({ - loaded: evt.loaded, - total: evt.total - }); + } else { + const found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; } - } - } - }, { - key: "_onProgressiveDone", - value: function _onProgressiveDone() { - if (this._fullRequestReader) { - this._fullRequestReader.progressiveDone(); - } - - this._progressiveDone = true; + rangeReader._enqueue(buffer); + return true; + }); + (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); } - }, { - key: "_removeRangeReader", - value: function _removeRangeReader(reader) { - var i = this._rangeReaders.indexOf(reader); - - if (i >= 0) { - this._rangeReaders.splice(i, 1); - } + } + get _progressiveDataLength() { + var _this$_fullRequestRea; + return ((_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea._loaded) ?? 0; + } + _onProgress(evt) { + if (evt.total === undefined) { + var _this$_rangeReaders$, _this$_rangeReaders$$; + (_this$_rangeReaders$ = this._rangeReaders[0]) === null || _this$_rangeReaders$ === void 0 ? void 0 : (_this$_rangeReaders$$ = _this$_rangeReaders$.onProgress) === null || _this$_rangeReaders$$ === void 0 ? void 0 : _this$_rangeReaders$$.call(_this$_rangeReaders$, { + loaded: evt.loaded + }); + } else { + var _this$_fullRequestRea2, _this$_fullRequestRea3; + (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : (_this$_fullRequestRea3 = _this$_fullRequestRea2.onProgress) === null || _this$_fullRequestRea3 === void 0 ? void 0 : _this$_fullRequestRea3.call(_this$_fullRequestRea2, { + loaded: evt.loaded, + total: evt.total + }); } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); - var queuedChunks = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename); + } + _onProgressiveDone() { + var _this$_fullRequestRea4; + (_this$_fullRequestRea4 = this._fullRequestReader) === null || _this$_fullRequestRea4 === void 0 ? void 0 : _this$_fullRequestRea4.progressiveDone(); + this._progressiveDone = true; + } + _removeRangeReader(reader) { + const i = this._rangeReaders.indexOf(reader); + if (i >= 0) { + this._rangeReaders.splice(i, 1); } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - - var reader = new PDFDataTransportStreamRangeReader(this, begin, end); - - this._pdfDataRangeTransport.requestDataRange(begin, end); - - this._rangeReaders.push(reader); - - return reader; + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); + const queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename); + } + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - - var _iterator = _createForOfIteratorHelper(this._rangeReaders.slice(0)), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var reader = _step.value; - reader.cancel(reason); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - this._pdfDataRangeTransport.abort(); + const reader = new PDFDataTransportStreamRangeReader(this, begin, end); + this._pdfDataRangeTransport.requestDataRange(begin, end); + this._rangeReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea5; + (_this$_fullRequestRea5 = this._fullRequestReader) === null || _this$_fullRequestRea5 === void 0 ? void 0 : _this$_fullRequestRea5.cancel(reason); + for (const reader of this._rangeReaders.slice(0)) { + reader.cancel(reason); } - }]); - - return PDFDataTransportStream; -}(); - + this._pdfDataRangeTransport.abort(); + } +} exports.PDFDataTransportStream = PDFDataTransportStream; - -var PDFDataTransportStreamReader = /*#__PURE__*/function () { - function PDFDataTransportStreamReader(stream, queuedChunks) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - - _classCallCheck(this, PDFDataTransportStreamReader); - +class PDFDataTransportStreamReader { + constructor(stream, queuedChunks) { + let progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + let contentDispositionFilename = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; this._stream = stream; this._done = progressiveDone || false; this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null; this._queuedChunks = queuedChunks || []; this._loaded = 0; - - var _iterator2 = _createForOfIteratorHelper(this._queuedChunks), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var chunk = _step2.value; - this._loaded += chunk.byteLength; - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); + for (const chunk of this._queuedChunks) { + this._loaded += chunk.byteLength; } - this._requests = []; this._headersReady = Promise.resolve(); stream._fullRequestReader = this; this.onProgress = null; } - - _createClass(PDFDataTransportStreamReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunks.push(chunk); - } - - this._loaded += chunk.byteLength; + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "headersReady", - get: function get() { - return this._headersReady; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._stream._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._stream._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._stream._contentLength; - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(this._queuedChunks.length > 0)) { - _context.next = 3; - break; - } - - chunk = this._queuedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); - - case 3: - if (!this._done) { - _context.next = 5; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 5: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 8: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - var _iterator3 = _createForOfIteratorHelper(this._requests), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var requestCapability = _step3.value; - requestCapability.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - this._requests.length = 0; + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunks.push(chunk); } - }, { - key: "progressiveDone", - value: function progressiveDone() { - if (this._done) { - return; - } - - this._done = true; + this._loaded += chunk.byteLength; + } + get headersReady() { + return this._headersReady; + } + get filename() { + return this._filename; + } + get isRangeSupported() { + return this._stream._isRangeSupported; + } + get isStreamingSupported() { + return this._stream._isStreamingSupported; + } + get contentLength() { + return this._stream._contentLength; + } + async read() { + if (this._queuedChunks.length > 0) { + const chunk = this._queuedChunks.shift(); + return { + value: chunk, + done: false + }; } - }]); - - return PDFDataTransportStreamReader; -}(); - -var PDFDataTransportStreamRangeReader = /*#__PURE__*/function () { - function PDFDataTransportStreamRangeReader(stream, begin, end) { - _classCallCheck(this, PDFDataTransportStreamRangeReader); - + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + } + progressiveDone() { + if (this._done) { + return; + } + this._done = true; + } +} +class PDFDataTransportStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._begin = begin; this._end = end; @@ -16475,139 +12229,66 @@ var PDFDataTransportStreamRangeReader = /*#__PURE__*/function () { this._done = false; this.onProgress = null; } - - _createClass(PDFDataTransportStreamRangeReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length === 0) { - this._queuedChunk = chunk; - } else { - var requestsCapability = this._requests.shift(); - - requestsCapability.resolve({ - value: chunk, - done: false + _enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + const requestsCapability = this._requests.shift(); + requestsCapability.resolve({ + value: chunk, + done: false + }); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true }); - - var _iterator4 = _createForOfIteratorHelper(this._requests), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var requestCapability = _step4.value; - requestCapability.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - - this._requests.length = 0; } - - this._done = true; - - this._stream._removeRangeReader(this); + this._requests.length = 0; } - }, { - key: "isStreamingSupported", - get: function get() { - return false; + this._done = true; + this._stream._removeRangeReader(this); + } + get isStreamingSupported() { + return false; + } + async read() { + if (this._queuedChunk) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this._queuedChunk) { - _context2.next = 4; - break; - } - - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); - - case 4: - if (!this._done) { - _context2.next = 6; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - var _iterator5 = _createForOfIteratorHelper(this._requests), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var requestCapability = _step5.value; - requestCapability.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - this._requests.length = 0; - - this._stream._removeRangeReader(this); + if (this._done) { + return { + value: undefined, + done: true + }; } - }]); - - return PDFDataTransportStreamRangeReader; -}(); + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + this._stream._removeRangeReader(this); + } +} /***/ }), -/* 171 */ +/* 149 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -16617,2250 +12298,3468 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.XfaText = void 0; - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var XfaText = /*#__PURE__*/function () { - function XfaText() { - _classCallCheck(this, XfaText); - } - - _createClass(XfaText, null, [{ - key: "textContent", - value: function textContent(xfa) { - var items = []; - var output = { - items: items, - styles: Object.create(null) - }; - - function walk(node) { - var _node$attributes; - - if (!node) { - return; - } - - var str = null; - var name = node.name; - - if (name === "#text") { - str = node.value; - } else if (!XfaText.shouldBuildText(name)) { - return; - } else if (node !== null && node !== void 0 && (_node$attributes = node.attributes) !== null && _node$attributes !== void 0 && _node$attributes.textContent) { - str = node.attributes.textContent; - } else if (node.value) { - str = node.value; - } - - if (str !== null) { - items.push({ - str: str - }); - } - - if (!node.children) { - return; - } - - var _iterator = _createForOfIteratorHelper(node.children), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var child = _step.value; - walk(child); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } +class XfaText { + static textContent(xfa) { + const items = []; + const output = { + items, + styles: Object.create(null) + }; + function walk(node) { + var _node$attributes; + if (!node) { + return; + } + let str = null; + const name = node.name; + if (name === "#text") { + str = node.value; + } else if (!XfaText.shouldBuildText(name)) { + return; + } else if (node !== null && node !== void 0 && (_node$attributes = node.attributes) !== null && _node$attributes !== void 0 && _node$attributes.textContent) { + str = node.attributes.textContent; + } else if (node.value) { + str = node.value; + } + if (str !== null) { + items.push({ + str + }); + } + if (!node.children) { + return; + } + for (const child of node.children) { + walk(child); } - - walk(xfa); - return output; - } - }, { - key: "shouldBuildText", - value: function shouldBuildText(name) { - return !(name === "textarea" || name === "input" || name === "option" || name === "select"); } - }]); - - return XfaText; -}(); - + walk(xfa); + return output; + } + static shouldBuildText(name) { + return !(name === "textarea" || name === "input" || name === "option" || name === "select"); + } +} exports.XfaText = XfaText; /***/ }), -/* 172 */ +/* 150 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - Object.defineProperty(exports, "__esModule", ({ value: true })); exports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0; - -var _base_factory = __w_pdfjs_require__(159); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - +var _base_factory = __w_pdfjs_require__(138); ; - -var fetchData = function fetchData(url) { - return new Promise(function (resolve, reject) { - var fs = require("fs"); - - fs.readFile(url, function (error, data) { +const fetchData = function (url) { + return new Promise((resolve, reject) => { + const fs = require("fs"); + fs.readFile(url, (error, data) => { if (error || !data) { reject(new Error(error)); return; } - resolve(new Uint8Array(data)); }); }); }; +class NodeCanvasFactory extends _base_factory.BaseCanvasFactory { + _createCanvas(width, height) { + const Canvas = require("canvas"); + return Canvas.createCanvas(width, height); + } +} +exports.NodeCanvasFactory = NodeCanvasFactory; +class NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url).then(data => { + return { + cMapData: data, + compressionType + }; + }); + } +} +exports.NodeCMapReaderFactory = NodeCMapReaderFactory; +class NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url); + } +} +exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory; + +/***/ }), +/* 151 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorLayer = void 0; +var _tools = __w_pdfjs_require__(136); +var _util = __w_pdfjs_require__(1); +var _freetext = __w_pdfjs_require__(152); +var _ink = __w_pdfjs_require__(153); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _accessibilityManager = /*#__PURE__*/new WeakMap(); +var _allowClick = /*#__PURE__*/new WeakMap(); +var _boundPointerup = /*#__PURE__*/new WeakMap(); +var _boundPointerdown = /*#__PURE__*/new WeakMap(); +var _editors = /*#__PURE__*/new WeakMap(); +var _hadPointerDown = /*#__PURE__*/new WeakMap(); +var _isCleaningUp = /*#__PURE__*/new WeakMap(); +var _uiManager = /*#__PURE__*/new WeakMap(); +var _changeParent = /*#__PURE__*/new WeakSet(); +var _createNewEditor = /*#__PURE__*/new WeakSet(); +var _createAndAddNewEditor = /*#__PURE__*/new WeakSet(); +var _cleanup = /*#__PURE__*/new WeakSet(); +class AnnotationEditorLayer { + constructor(options) { + _classPrivateMethodInitSpec(this, _cleanup); + _classPrivateMethodInitSpec(this, _createAndAddNewEditor); + _classPrivateMethodInitSpec(this, _createNewEditor); + _classPrivateMethodInitSpec(this, _changeParent); + _classPrivateFieldInitSpec(this, _accessibilityManager, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _allowClick, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _boundPointerup, { + writable: true, + value: this.pointerup.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundPointerdown, { + writable: true, + value: this.pointerdown.bind(this) + }); + _classPrivateFieldInitSpec(this, _editors, { + writable: true, + value: new Map() + }); + _classPrivateFieldInitSpec(this, _hadPointerDown, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isCleaningUp, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _uiManager, { + writable: true, + value: void 0 + }); + if (!AnnotationEditorLayer._initialized) { + AnnotationEditorLayer._initialized = true; + _freetext.FreeTextEditor.initialize(options.l10n); + _ink.InkEditor.initialize(options.l10n); + } + options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]); + _classPrivateFieldSet(this, _uiManager, options.uiManager); + this.annotationStorage = options.annotationStorage; + this.pageIndex = options.pageIndex; + this.div = options.div; + _classPrivateFieldSet(this, _accessibilityManager, options.accessibilityManager); + _classPrivateFieldGet(this, _uiManager).addLayer(this); + } + updateToolbar(mode) { + _classPrivateFieldGet(this, _uiManager).updateToolbar(mode); + } + updateMode() { + let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _classPrivateFieldGet(this, _uiManager).getMode(); + _classPrivateMethodGet(this, _cleanup, _cleanup2).call(this); + if (mode === _util.AnnotationEditorType.INK) { + this.addInkEditorIfNeeded(false); + this.disableClick(); + } else { + this.enableClick(); + } + _classPrivateFieldGet(this, _uiManager).unselectAll(); + this.div.classList.toggle("freeTextEditing", mode === _util.AnnotationEditorType.FREETEXT); + this.div.classList.toggle("inkEditing", mode === _util.AnnotationEditorType.INK); + } + addInkEditorIfNeeded(isCommitting) { + if (!isCommitting && _classPrivateFieldGet(this, _uiManager).getMode() !== _util.AnnotationEditorType.INK) { + return; + } + if (!isCommitting) { + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + if (editor.isEmpty()) { + editor.setInBackground(); + return; + } + } + } + const editor = _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, { + offsetX: 0, + offsetY: 0 + }); + editor.setInBackground(); + } + setEditingState(isEditing) { + _classPrivateFieldGet(this, _uiManager).setEditingState(isEditing); + } + addCommands(params) { + _classPrivateFieldGet(this, _uiManager).addCommands(params); + } + enable() { + this.div.style.pointerEvents = "auto"; + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + editor.enableEditing(); + } + } + disable() { + this.div.style.pointerEvents = "none"; + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + editor.disableEditing(); + } + } + setActiveEditor(editor) { + const currentActive = _classPrivateFieldGet(this, _uiManager).getActive(); + if (currentActive === editor) { + return; + } + _classPrivateFieldGet(this, _uiManager).setActiveEditor(editor); + } + enableClick() { + this.div.addEventListener("pointerdown", _classPrivateFieldGet(this, _boundPointerdown)); + this.div.addEventListener("pointerup", _classPrivateFieldGet(this, _boundPointerup)); + } + disableClick() { + this.div.removeEventListener("pointerdown", _classPrivateFieldGet(this, _boundPointerdown)); + this.div.removeEventListener("pointerup", _classPrivateFieldGet(this, _boundPointerup)); + } + attach(editor) { + _classPrivateFieldGet(this, _editors).set(editor.id, editor); + } + detach(editor) { + var _classPrivateFieldGet2; + _classPrivateFieldGet(this, _editors).delete(editor.id); + (_classPrivateFieldGet2 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.removePointerInTextLayer(editor.contentDiv); + } + remove(editor) { + _classPrivateFieldGet(this, _uiManager).removeEditor(editor); + this.detach(editor); + this.annotationStorage.remove(editor.id); + editor.div.style.display = "none"; + setTimeout(() => { + editor.div.style.display = ""; + editor.div.remove(); + editor.isAttachedToDOM = false; + if (document.activeElement === document.body) { + _classPrivateFieldGet(this, _uiManager).focusMainContainer(); + } + }, 0); + if (!_classPrivateFieldGet(this, _isCleaningUp)) { + this.addInkEditorIfNeeded(false); + } + } + add(editor) { + _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor); + _classPrivateFieldGet(this, _uiManager).addEditor(editor); + this.attach(editor); + if (!editor.isAttachedToDOM) { + const div = editor.render(); + this.div.append(div); + editor.isAttachedToDOM = true; + } + this.moveEditorInDOM(editor); + editor.onceAdded(); + this.addToAnnotationStorage(editor); + } + moveEditorInDOM(editor) { + var _classPrivateFieldGet3; + (_classPrivateFieldGet3 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.moveElementInDOM(this.div, editor.div, editor.contentDiv, true); + } + addToAnnotationStorage(editor) { + if (!editor.isEmpty() && !this.annotationStorage.has(editor.id)) { + this.annotationStorage.setValue(editor.id, editor); + } + } + addOrRebuild(editor) { + if (editor.needsToBeRebuilt()) { + editor.rebuild(); + } else { + this.add(editor); + } + } + addANewEditor(editor) { + const cmd = () => { + this.addOrRebuild(editor); + }; + const undo = () => { + editor.remove(); + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } + addUndoableEditor(editor) { + const cmd = () => { + this.addOrRebuild(editor); + }; + const undo = () => { + editor.remove(); + }; + this.addCommands({ + cmd, + undo, + mustExec: false + }); + } + getNextId() { + return _classPrivateFieldGet(this, _uiManager).getId(); + } + deserialize(data) { + switch (data.annotationType) { + case _util.AnnotationEditorType.FREETEXT: + return _freetext.FreeTextEditor.deserialize(data, this); + case _util.AnnotationEditorType.INK: + return _ink.InkEditor.deserialize(data, this); + } + return null; + } + setSelected(editor) { + _classPrivateFieldGet(this, _uiManager).setSelected(editor); + } + toggleSelected(editor) { + _classPrivateFieldGet(this, _uiManager).toggleSelected(editor); + } + isSelected(editor) { + return _classPrivateFieldGet(this, _uiManager).isSelected(editor); + } + unselect(editor) { + _classPrivateFieldGet(this, _uiManager).unselect(editor); + } + pointerup(event) { + const isMac = _tools.KeyboardManager.platform.isMac; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + if (event.target !== this.div) { + return; + } + if (!_classPrivateFieldGet(this, _hadPointerDown)) { + return; + } + _classPrivateFieldSet(this, _hadPointerDown, false); + if (!_classPrivateFieldGet(this, _allowClick)) { + _classPrivateFieldSet(this, _allowClick, true); + return; + } + _classPrivateMethodGet(this, _createAndAddNewEditor, _createAndAddNewEditor2).call(this, event); + } + pointerdown(event) { + const isMac = _tools.KeyboardManager.platform.isMac; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + if (event.target !== this.div) { + return; + } + _classPrivateFieldSet(this, _hadPointerDown, true); + const editor = _classPrivateFieldGet(this, _uiManager).getActive(); + _classPrivateFieldSet(this, _allowClick, !editor || editor.isEmpty()); + } + drop(event) { + const id = event.dataTransfer.getData("text/plain"); + const editor = _classPrivateFieldGet(this, _uiManager).getEditor(id); + if (!editor) { + return; + } + event.preventDefault(); + event.dataTransfer.dropEffect = "move"; + _classPrivateMethodGet(this, _changeParent, _changeParent2).call(this, editor); + const rect = this.div.getBoundingClientRect(); + const endX = event.clientX - rect.x; + const endY = event.clientY - rect.y; + editor.translate(endX - editor.startX, endY - editor.startY); + this.moveEditorInDOM(editor); + editor.div.focus(); + } + dragover(event) { + event.preventDefault(); + } + destroy() { + var _classPrivateFieldGet4; + if (((_classPrivateFieldGet4 = _classPrivateFieldGet(this, _uiManager).getActive()) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.parent) === this) { + _classPrivateFieldGet(this, _uiManager).setActiveEditor(null); + } + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + var _classPrivateFieldGet5; + (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _accessibilityManager)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.removePointerInTextLayer(editor.contentDiv); + editor.isAttachedToDOM = false; + editor.div.remove(); + editor.parent = null; + } + this.div = null; + _classPrivateFieldGet(this, _editors).clear(); + _classPrivateFieldGet(this, _uiManager).removeLayer(this); + } + render(parameters) { + this.viewport = parameters.viewport; + (0, _tools.bindEvents)(this, this.div, ["dragover", "drop"]); + this.setDimensions(); + for (const editor of _classPrivateFieldGet(this, _uiManager).getEditors(this.pageIndex)) { + this.add(editor); + } + this.updateMode(); + } + update(parameters) { + _classPrivateFieldGet(this, _uiManager).commitOrRemove(); + this.viewport = parameters.viewport; + this.setDimensions(); + this.updateMode(); + } + get scaleFactor() { + return this.viewport.scale; + } + get pageDimensions() { + const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox; + const width = pageURx - pageLLx; + const height = pageURy - pageLLy; + return [width, height]; + } + get viewportBaseDimensions() { + const { + width, + height, + rotation + } = this.viewport; + return rotation % 180 === 0 ? [width, height] : [height, width]; + } + setDimensions() { + const { + width, + height, + rotation + } = this.viewport; + const flipOrientation = rotation % 180 !== 0, + widthStr = Math.floor(width) + "px", + heightStr = Math.floor(height) + "px"; + this.div.style.width = flipOrientation ? heightStr : widthStr; + this.div.style.height = flipOrientation ? widthStr : heightStr; + this.div.setAttribute("data-main-rotation", rotation); + } +} +exports.AnnotationEditorLayer = AnnotationEditorLayer; +function _changeParent2(editor) { + var _editor$parent; + if (editor.parent === this) { + return; + } + this.attach(editor); + editor.pageIndex = this.pageIndex; + (_editor$parent = editor.parent) === null || _editor$parent === void 0 ? void 0 : _editor$parent.detach(editor); + editor.parent = this; + if (editor.div && editor.isAttachedToDOM) { + editor.div.remove(); + this.div.append(editor.div); + } +} +function _createNewEditor2(params) { + switch (_classPrivateFieldGet(this, _uiManager).getMode()) { + case _util.AnnotationEditorType.FREETEXT: + return new _freetext.FreeTextEditor(params); + case _util.AnnotationEditorType.INK: + return new _ink.InkEditor(params); + } + return null; +} +function _createAndAddNewEditor2(event) { + const id = this.getNextId(); + const editor = _classPrivateMethodGet(this, _createNewEditor, _createNewEditor2).call(this, { + parent: this, + id, + x: event.offsetX, + y: event.offsetY + }); + if (editor) { + this.add(editor); + } + return editor; +} +function _cleanup2() { + _classPrivateFieldSet(this, _isCleaningUp, true); + for (const editor of _classPrivateFieldGet(this, _editors).values()) { + if (editor.isEmpty()) { + editor.remove(); + } + } + _classPrivateFieldSet(this, _isCleaningUp, false); +} +_defineProperty(AnnotationEditorLayer, "_initialized", false); -var NodeCanvasFactory = /*#__PURE__*/function (_BaseCanvasFactory) { - _inherits(NodeCanvasFactory, _BaseCanvasFactory); +/***/ }), +/* 152 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - var _super = _createSuper(NodeCanvasFactory); +"use strict"; - function NodeCanvasFactory() { - _classCallCheck(this, NodeCanvasFactory); - return _super.apply(this, arguments); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.FreeTextEditor = void 0; +var _util = __w_pdfjs_require__(1); +var _tools = __w_pdfjs_require__(136); +var _editor = __w_pdfjs_require__(135); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +var _boundEditorDivBlur = /*#__PURE__*/new WeakMap(); +var _boundEditorDivFocus = /*#__PURE__*/new WeakMap(); +var _boundEditorDivInput = /*#__PURE__*/new WeakMap(); +var _boundEditorDivKeydown = /*#__PURE__*/new WeakMap(); +var _color = /*#__PURE__*/new WeakMap(); +var _content = /*#__PURE__*/new WeakMap(); +var _editorDivId = /*#__PURE__*/new WeakMap(); +var _hasAlreadyBeenCommitted = /*#__PURE__*/new WeakMap(); +var _fontSize = /*#__PURE__*/new WeakMap(); +var _updateFontSize = /*#__PURE__*/new WeakSet(); +var _updateColor = /*#__PURE__*/new WeakSet(); +var _extractText = /*#__PURE__*/new WeakSet(); +var _setEditorDimensions = /*#__PURE__*/new WeakSet(); +class FreeTextEditor extends _editor.AnnotationEditor { + constructor(params) { + super({ + ...params, + name: "freeTextEditor" + }); + _classPrivateMethodInitSpec(this, _setEditorDimensions); + _classPrivateMethodInitSpec(this, _extractText); + _classPrivateMethodInitSpec(this, _updateColor); + _classPrivateMethodInitSpec(this, _updateFontSize); + _classPrivateFieldInitSpec(this, _boundEditorDivBlur, { + writable: true, + value: this.editorDivBlur.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundEditorDivFocus, { + writable: true, + value: this.editorDivFocus.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundEditorDivInput, { + writable: true, + value: this.editorDivInput.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundEditorDivKeydown, { + writable: true, + value: this.editorDivKeydown.bind(this) + }); + _classPrivateFieldInitSpec(this, _color, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _content, { + writable: true, + value: "" + }); + _classPrivateFieldInitSpec(this, _editorDivId, { + writable: true, + value: `${this.id}-editor` + }); + _classPrivateFieldInitSpec(this, _hasAlreadyBeenCommitted, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _fontSize, { + writable: true, + value: void 0 + }); + _classPrivateFieldSet(this, _color, params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor); + _classPrivateFieldSet(this, _fontSize, params.fontSize || FreeTextEditor._defaultFontSize); + } + static initialize(l10n) { + this._l10nPromise = new Map(["free_text2_default_content", "editor_free_text2_aria_label"].map(str => [str, l10n.get(str)])); + const style = getComputedStyle(document.documentElement); + this._internalPadding = parseFloat(style.getPropertyValue("--freetext-padding")); + } + static updateDefaultParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.FREETEXT_SIZE: + FreeTextEditor._defaultFontSize = value; + break; + case _util.AnnotationEditorParamsType.FREETEXT_COLOR: + FreeTextEditor._defaultColor = value; + break; + } + } + updateParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.FREETEXT_SIZE: + _classPrivateMethodGet(this, _updateFontSize, _updateFontSize2).call(this, value); + break; + case _util.AnnotationEditorParamsType.FREETEXT_COLOR: + _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value); + break; + } + } + static get defaultPropertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]]; + } + get propertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, _classPrivateFieldGet(this, _fontSize)], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, _classPrivateFieldGet(this, _color)]]; + } + getInitialTranslation() { + return [-FreeTextEditor._internalPadding * this.parent.scaleFactor, -(FreeTextEditor._internalPadding + _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor]; + } + rebuild() { + super.rebuild(); + if (this.div === null) { + return; + } + if (!this.isAttachedToDOM) { + this.parent.add(this); + } + } + enableEditMode() { + if (this.isInEditMode()) { + return; + } + this.parent.setEditingState(false); + this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT); + super.enableEditMode(); + this.overlayDiv.classList.remove("enabled"); + this.editorDiv.contentEditable = true; + this.div.draggable = false; + this.div.removeAttribute("aria-activedescendant"); + this.editorDiv.addEventListener("keydown", _classPrivateFieldGet(this, _boundEditorDivKeydown)); + this.editorDiv.addEventListener("focus", _classPrivateFieldGet(this, _boundEditorDivFocus)); + this.editorDiv.addEventListener("blur", _classPrivateFieldGet(this, _boundEditorDivBlur)); + this.editorDiv.addEventListener("input", _classPrivateFieldGet(this, _boundEditorDivInput)); + } + disableEditMode() { + if (!this.isInEditMode()) { + return; + } + this.parent.setEditingState(true); + super.disableEditMode(); + this.overlayDiv.classList.add("enabled"); + this.editorDiv.contentEditable = false; + this.div.setAttribute("aria-activedescendant", _classPrivateFieldGet(this, _editorDivId)); + this.div.draggable = true; + this.editorDiv.removeEventListener("keydown", _classPrivateFieldGet(this, _boundEditorDivKeydown)); + this.editorDiv.removeEventListener("focus", _classPrivateFieldGet(this, _boundEditorDivFocus)); + this.editorDiv.removeEventListener("blur", _classPrivateFieldGet(this, _boundEditorDivBlur)); + this.editorDiv.removeEventListener("input", _classPrivateFieldGet(this, _boundEditorDivInput)); + this.div.focus(); + this.isEditing = false; + this.parent.div.classList.add("freeTextEditing"); + } + focusin(event) { + super.focusin(event); + if (event.target !== this.editorDiv) { + this.editorDiv.focus(); + } + } + onceAdded() { + if (this.width) { + return; + } + this.enableEditMode(); + this.editorDiv.focus(); } - - _createClass(NodeCanvasFactory, [{ - key: "_createCanvas", - value: function _createCanvas(width, height) { - var Canvas = require("canvas"); - - return Canvas.createCanvas(width, height); + isEmpty() { + return !this.editorDiv || this.editorDiv.innerText.trim() === ""; + } + remove() { + this.isEditing = false; + this.parent.setEditingState(true); + this.parent.div.classList.add("freeTextEditing"); + super.remove(); + } + commit() { + super.commit(); + if (!_classPrivateFieldGet(this, _hasAlreadyBeenCommitted)) { + _classPrivateFieldSet(this, _hasAlreadyBeenCommitted, true); + this.parent.addUndoableEditor(this); } - }]); - - return NodeCanvasFactory; -}(_base_factory.BaseCanvasFactory); - -exports.NodeCanvasFactory = NodeCanvasFactory; - -var NodeCMapReaderFactory = /*#__PURE__*/function (_BaseCMapReaderFactor) { - _inherits(NodeCMapReaderFactory, _BaseCMapReaderFactor); - - var _super2 = _createSuper(NodeCMapReaderFactory); - - function NodeCMapReaderFactory() { - _classCallCheck(this, NodeCMapReaderFactory); - - return _super2.apply(this, arguments); + this.disableEditMode(); + _classPrivateFieldSet(this, _content, _classPrivateMethodGet(this, _extractText, _extractText2).call(this).trimEnd()); + _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this); } - - _createClass(NodeCMapReaderFactory, [{ - key: "_fetchData", - value: function _fetchData(url, compressionType) { - return fetchData(url).then(function (data) { - return { - cMapData: data, - compressionType: compressionType - }; - }); + shouldGetKeyboardEvents() { + return this.isInEditMode(); + } + dblclick(event) { + this.enableEditMode(); + this.editorDiv.focus(); + } + keydown(event) { + if (event.target === this.div && event.key === "Enter") { + this.enableEditMode(); + this.editorDiv.focus(); } - }]); - - return NodeCMapReaderFactory; -}(_base_factory.BaseCMapReaderFactory); - -exports.NodeCMapReaderFactory = NodeCMapReaderFactory; - -var NodeStandardFontDataFactory = /*#__PURE__*/function (_BaseStandardFontData) { - _inherits(NodeStandardFontDataFactory, _BaseStandardFontData); - - var _super3 = _createSuper(NodeStandardFontDataFactory); - - function NodeStandardFontDataFactory() { - _classCallCheck(this, NodeStandardFontDataFactory); - - return _super3.apply(this, arguments); } - - _createClass(NodeStandardFontDataFactory, [{ - key: "_fetchData", - value: function _fetchData(url) { - return fetchData(url); + editorDivKeydown(event) { + FreeTextEditor._keyboardManager.exec(this, event); + } + editorDivFocus(event) { + this.isEditing = true; + } + editorDivBlur(event) { + this.isEditing = false; + } + editorDivInput(event) { + this.parent.div.classList.toggle("freeTextEditing", this.isEmpty()); + } + disableEditing() { + this.editorDiv.setAttribute("role", "comment"); + this.editorDiv.removeAttribute("aria-multiline"); + } + enableEditing() { + this.editorDiv.setAttribute("role", "textbox"); + this.editorDiv.setAttribute("aria-multiline", true); + } + render() { + if (this.div) { + return this.div; } - }]); - - return NodeStandardFontDataFactory; -}(_base_factory.BaseStandardFontDataFactory); - -exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory; + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + this.editorDiv = document.createElement("div"); + this.editorDiv.className = "internal"; + this.editorDiv.setAttribute("id", _classPrivateFieldGet(this, _editorDivId)); + this.enableEditing(); + FreeTextEditor._l10nPromise.get("editor_free_text2_aria_label").then(msg => { + var _this$editorDiv; + return (_this$editorDiv = this.editorDiv) === null || _this$editorDiv === void 0 ? void 0 : _this$editorDiv.setAttribute("aria-label", msg); + }); + FreeTextEditor._l10nPromise.get("free_text2_default_content").then(msg => { + var _this$editorDiv2; + return (_this$editorDiv2 = this.editorDiv) === null || _this$editorDiv2 === void 0 ? void 0 : _this$editorDiv2.setAttribute("default-content", msg); + }); + this.editorDiv.contentEditable = true; + const { + style + } = this.editorDiv; + style.fontSize = `calc(${_classPrivateFieldGet(this, _fontSize)}px * var(--scale-factor))`; + style.color = _classPrivateFieldGet(this, _color); + this.div.append(this.editorDiv); + this.overlayDiv = document.createElement("div"); + this.overlayDiv.classList.add("overlay", "enabled"); + this.div.append(this.overlayDiv); + (0, _tools.bindEvents)(this, this.div, ["dblclick", "keydown"]); + if (this.width) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + for (const line of _classPrivateFieldGet(this, _content).split("\n")) { + const div = document.createElement("div"); + div.append(line ? document.createTextNode(line) : document.createElement("br")); + this.editorDiv.append(div); + } + this.div.draggable = true; + this.editorDiv.contentEditable = false; + } else { + this.div.draggable = false; + this.editorDiv.contentEditable = true; + } + return this.div; + } + get contentDiv() { + return this.editorDiv; + } + static deserialize(data, parent) { + const editor = super.deserialize(data, parent); + _classPrivateFieldSet(editor, _fontSize, data.fontSize); + _classPrivateFieldSet(editor, _color, _util.Util.makeHexColor(...data.color)); + _classPrivateFieldSet(editor, _content, data.value); + return editor; + } + serialize() { + if (this.isEmpty()) { + return null; + } + const padding = FreeTextEditor._internalPadding * this.parent.scaleFactor; + const rect = this.getRect(padding, padding); + const color = _editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color); + return { + annotationType: _util.AnnotationEditorType.FREETEXT, + color, + fontSize: _classPrivateFieldGet(this, _fontSize), + value: _classPrivateFieldGet(this, _content), + pageIndex: this.parent.pageIndex, + rect, + rotation: this.rotation + }; + } +} +exports.FreeTextEditor = FreeTextEditor; +function _updateFontSize2(fontSize) { + const setFontsize = size => { + this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`; + this.translate(0, -(size - _classPrivateFieldGet(this, _fontSize)) * this.parent.scaleFactor); + _classPrivateFieldSet(this, _fontSize, size); + _classPrivateMethodGet(this, _setEditorDimensions, _setEditorDimensions2).call(this); + }; + const savedFontsize = _classPrivateFieldGet(this, _fontSize); + this.parent.addCommands({ + cmd: () => { + setFontsize(fontSize); + }, + undo: () => { + setFontsize(savedFontsize); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.FREETEXT_SIZE, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _updateColor2(color) { + const savedColor = _classPrivateFieldGet(this, _color); + this.parent.addCommands({ + cmd: () => { + _classPrivateFieldSet(this, _color, color); + this.editorDiv.style.color = color; + }, + undo: () => { + _classPrivateFieldSet(this, _color, savedColor); + this.editorDiv.style.color = savedColor; + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.FREETEXT_COLOR, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _extractText2() { + const divs = this.editorDiv.getElementsByTagName("div"); + if (divs.length === 0) { + return this.editorDiv.innerText; + } + const buffer = []; + for (const div of divs) { + const first = div.firstChild; + if ((first === null || first === void 0 ? void 0 : first.nodeName) === "#text") { + buffer.push(first.data); + } else { + buffer.push(""); + } + } + return buffer.join("\n"); +} +function _setEditorDimensions2() { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + const rect = this.div.getBoundingClientRect(); + this.width = rect.width / parentWidth; + this.height = rect.height / parentHeight; +} +_defineProperty(FreeTextEditor, "_freeTextDefaultContent", ""); +_defineProperty(FreeTextEditor, "_l10nPromise", void 0); +_defineProperty(FreeTextEditor, "_internalPadding", 0); +_defineProperty(FreeTextEditor, "_defaultColor", null); +_defineProperty(FreeTextEditor, "_defaultFontSize", 10); +_defineProperty(FreeTextEditor, "_keyboardManager", new _tools.KeyboardManager([[["ctrl+Enter", "mac+meta+Enter", "Escape", "mac+Escape"], FreeTextEditor.prototype.commitOrRemove]])); +_defineProperty(FreeTextEditor, "_type", "freetext"); /***/ }), -/* 173 */ +/* 153 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AnnotationLayer = void 0; - +exports.InkEditor = void 0; +Object.defineProperty(exports, "fitCurve", ({ + enumerable: true, + get: function () { + return _pdfjsFitCurve.fitCurve; + } +})); var _util = __w_pdfjs_require__(1); - -var _display_utils = __w_pdfjs_require__(158); - -var _annotation_storage = __w_pdfjs_require__(161); - -var _scripting_utils = __w_pdfjs_require__(174); - -var _xfa_layer = __w_pdfjs_require__(175); - +var _editor = __w_pdfjs_require__(135); +var _pdfjsFitCurve = __w_pdfjs_require__(154); +var _tools = __w_pdfjs_require__(136); +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } function _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; } - function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } - -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var DEFAULT_TAB_INDEX = 1000; -var GetElementsByNameSet = new WeakSet(); - -function getRectDims(rect) { - return { - width: rect[2] - rect[0], - height: rect[3] - rect[1] - }; -} - -var AnnotationElementFactory = /*#__PURE__*/function () { - function AnnotationElementFactory() { - _classCallCheck(this, AnnotationElementFactory); - } - - _createClass(AnnotationElementFactory, null, [{ - key: "create", - value: function create(parameters) { - var subtype = parameters.data.annotationType; - - switch (subtype) { - case _util.AnnotationType.LINK: - return new LinkAnnotationElement(parameters); - - case _util.AnnotationType.TEXT: - return new TextAnnotationElement(parameters); - - case _util.AnnotationType.WIDGET: - var fieldType = parameters.data.fieldType; - - switch (fieldType) { - case "Tx": - return new TextWidgetAnnotationElement(parameters); - - case "Btn": - if (parameters.data.radioButton) { - return new RadioButtonWidgetAnnotationElement(parameters); - } else if (parameters.data.checkBox) { - return new CheckboxWidgetAnnotationElement(parameters); - } - - return new PushButtonWidgetAnnotationElement(parameters); - - case "Ch": - return new ChoiceWidgetAnnotationElement(parameters); - } - - return new WidgetAnnotationElement(parameters); - - case _util.AnnotationType.POPUP: - return new PopupAnnotationElement(parameters); - - case _util.AnnotationType.FREETEXT: - return new FreeTextAnnotationElement(parameters); - - case _util.AnnotationType.LINE: - return new LineAnnotationElement(parameters); - - case _util.AnnotationType.SQUARE: - return new SquareAnnotationElement(parameters); - - case _util.AnnotationType.CIRCLE: - return new CircleAnnotationElement(parameters); - - case _util.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(parameters); - - case _util.AnnotationType.CARET: - return new CaretAnnotationElement(parameters); - - case _util.AnnotationType.INK: - return new InkAnnotationElement(parameters); - - case _util.AnnotationType.POLYGON: - return new PolygonAnnotationElement(parameters); - - case _util.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(parameters); - - case _util.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(parameters); - - case _util.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(parameters); - - case _util.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(parameters); - - case _util.AnnotationType.STAMP: - return new StampAnnotationElement(parameters); - - case _util.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(parameters); - - default: - return new AnnotationElement(parameters); - } - } - }]); - - return AnnotationElementFactory; -}(); - -var AnnotationElement = /*#__PURE__*/function () { - function AnnotationElement(parameters) { - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$isRenderable = _ref.isRenderable, - isRenderable = _ref$isRenderable === void 0 ? false : _ref$isRenderable, - _ref$ignoreBorder = _ref.ignoreBorder, - ignoreBorder = _ref$ignoreBorder === void 0 ? false : _ref$ignoreBorder, - _ref$createQuadrilate = _ref.createQuadrilaterals, - createQuadrilaterals = _ref$createQuadrilate === void 0 ? false : _ref$createQuadrilate; - - _classCallCheck(this, AnnotationElement); - - this.isRenderable = isRenderable; - this.data = parameters.data; - this.layer = parameters.layer; - this.page = parameters.page; - this.viewport = parameters.viewport; - this.linkService = parameters.linkService; - this.downloadManager = parameters.downloadManager; - this.imageResourcesPath = parameters.imageResourcesPath; - this.renderForms = parameters.renderForms; - this.svgFactory = parameters.svgFactory; - this.annotationStorage = parameters.annotationStorage; - this.enableScripting = parameters.enableScripting; - this.hasJSActions = parameters.hasJSActions; - this._fieldObjects = parameters.fieldObjects; - this._mouseState = parameters.mouseState; - - if (isRenderable) { - this.container = this._createContainer(ignoreBorder); - } - - if (createQuadrilaterals) { - this.quadrilaterals = this._createQuadrilaterals(ignoreBorder); - } - } - - _createClass(AnnotationElement, [{ - key: "_createContainer", - value: function _createContainer() { - var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var data = this.data, - page = this.page, - viewport = this.viewport; - var container = document.createElement("section"); - - var _getRectDims = getRectDims(data.rect), - width = _getRectDims.width, - height = _getRectDims.height; - - container.setAttribute("data-annotation-id", data.id); - - var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); - - if (data.hasOwnCanvas) { - var transform = viewport.transform.slice(); - - var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(transform), - _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), - scaleX = _Util$singularValueDe2[0], - scaleY = _Util$singularValueDe2[1]; - - width = Math.ceil(width * scaleX); - height = Math.ceil(height * scaleY); - rect[0] *= scaleX; - rect[1] *= scaleY; - - for (var i = 0; i < 4; i++) { - transform[i] = Math.sign(transform[i]); - } - - container.style.transform = "matrix(".concat(transform.join(","), ")"); - } else { - container.style.transform = "matrix(".concat(viewport.transform.join(","), ")"); - } - - container.style.transformOrigin = "".concat(-rect[0], "px ").concat(-rect[1], "px"); - - if (!ignoreBorder && data.borderStyle.width > 0) { - container.style.borderWidth = "".concat(data.borderStyle.width, "px"); - - if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { - width -= 2 * data.borderStyle.width; - height -= 2 * data.borderStyle.width; - } - - var horizontalRadius = data.borderStyle.horizontalCornerRadius; - var verticalRadius = data.borderStyle.verticalCornerRadius; - - if (horizontalRadius > 0 || verticalRadius > 0) { - var radius = "".concat(horizontalRadius, "px / ").concat(verticalRadius, "px"); - container.style.borderRadius = radius; - } - - switch (data.borderStyle.style) { - case _util.AnnotationBorderStyleType.SOLID: - container.style.borderStyle = "solid"; - break; - - case _util.AnnotationBorderStyleType.DASHED: - container.style.borderStyle = "dashed"; - break; - - case _util.AnnotationBorderStyleType.BEVELED: - (0, _util.warn)("Unimplemented border style: beveled"); - break; - - case _util.AnnotationBorderStyleType.INSET: - (0, _util.warn)("Unimplemented border style: inset"); - break; - - case _util.AnnotationBorderStyleType.UNDERLINE: - container.style.borderBottomStyle = "solid"; - break; - - default: - break; - } - - var borderColor = data.borderColor || data.color || null; - - if (borderColor) { - container.style.borderColor = _util.Util.makeHexColor(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); - } else { - container.style.borderWidth = 0; - } - } - - container.style.left = "".concat(rect[0], "px"); - container.style.top = "".concat(rect[1], "px"); - - if (data.hasOwnCanvas) { - container.style.width = container.style.height = "auto"; - } else { - container.style.width = "".concat(width, "px"); - container.style.height = "".concat(height, "px"); - } - - return container; - } - }, { - key: "_commonActions", - get: function get() { - var _this = this; - - var setColor = function setColor(jsName, styleName, event) { - var color = event.detail[jsName]; - event.target.style[styleName] = _scripting_utils.ColorConverters["".concat(color[0], "_HTML")](color.slice(1)); - }; - - return (0, _util.shadow)(this, "_commonActions", { - display: function display(event) { - var hidden = event.detail.display % 2 === 1; - event.target.style.visibility = hidden ? "hidden" : "visible"; - - _this.annotationStorage.setValue(_this.data.id, { - hidden: hidden, - print: event.detail.display === 0 || event.detail.display === 3 - }); - }, - print: function print(event) { - _this.annotationStorage.setValue(_this.data.id, { - print: event.detail.print - }); - }, - hidden: function hidden(event) { - event.target.style.visibility = event.detail.hidden ? "hidden" : "visible"; - - _this.annotationStorage.setValue(_this.data.id, { - hidden: event.detail.hidden - }); - }, - focus: function focus(event) { - setTimeout(function () { - return event.target.focus({ - preventScroll: false - }); - }, 0); - }, - userName: function userName(event) { - event.target.title = event.detail.userName; - }, - readonly: function readonly(event) { - if (event.detail.readonly) { - event.target.setAttribute("readonly", ""); - } else { - event.target.removeAttribute("readonly"); - } - }, - required: function required(event) { - if (event.detail.required) { - event.target.setAttribute("required", ""); - } else { - event.target.removeAttribute("required"); - } - }, - bgColor: function bgColor(event) { - setColor("bgColor", "backgroundColor", event); - }, - fillColor: function fillColor(event) { - setColor("fillColor", "backgroundColor", event); - }, - fgColor: function fgColor(event) { - setColor("fgColor", "color", event); - }, - textColor: function textColor(event) { - setColor("textColor", "color", event); - }, - borderColor: function borderColor(event) { - setColor("borderColor", "borderColor", event); - }, - strokeColor: function strokeColor(event) { - setColor("strokeColor", "borderColor", event); - } - }); +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const RESIZER_SIZE = 16; +const TIME_TO_WAIT_BEFORE_FIXING_DIMS = 100; +var _aspectRatio = /*#__PURE__*/new WeakMap(); +var _baseHeight = /*#__PURE__*/new WeakMap(); +var _baseWidth = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointermove = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointerleave = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointerup = /*#__PURE__*/new WeakMap(); +var _boundCanvasPointerdown = /*#__PURE__*/new WeakMap(); +var _disableEditing = /*#__PURE__*/new WeakMap(); +var _isCanvasInitialized = /*#__PURE__*/new WeakMap(); +var _lastPoint = /*#__PURE__*/new WeakMap(); +var _observer = /*#__PURE__*/new WeakMap(); +var _realWidth = /*#__PURE__*/new WeakMap(); +var _realHeight = /*#__PURE__*/new WeakMap(); +var _requestFrameCallback = /*#__PURE__*/new WeakMap(); +var _updateThickness = /*#__PURE__*/new WeakSet(); +var _updateColor = /*#__PURE__*/new WeakSet(); +var _updateOpacity = /*#__PURE__*/new WeakSet(); +var _getInitialBBox = /*#__PURE__*/new WeakSet(); +var _setStroke = /*#__PURE__*/new WeakSet(); +var _startDrawing = /*#__PURE__*/new WeakSet(); +var _draw = /*#__PURE__*/new WeakSet(); +var _stopDrawing = /*#__PURE__*/new WeakSet(); +var _redraw = /*#__PURE__*/new WeakSet(); +var _endDrawing = /*#__PURE__*/new WeakSet(); +var _createCanvas = /*#__PURE__*/new WeakSet(); +var _createObserver = /*#__PURE__*/new WeakSet(); +var _setCanvasDims = /*#__PURE__*/new WeakSet(); +var _setScaleFactor = /*#__PURE__*/new WeakSet(); +var _updateTransform = /*#__PURE__*/new WeakSet(); +var _serializePaths = /*#__PURE__*/new WeakSet(); +var _extractPointsOnBezier = /*#__PURE__*/new WeakSet(); +var _isAlmostFlat = /*#__PURE__*/new WeakSet(); +var _getBbox = /*#__PURE__*/new WeakSet(); +var _getPadding = /*#__PURE__*/new WeakSet(); +var _fitToContent = /*#__PURE__*/new WeakSet(); +var _setMinDims = /*#__PURE__*/new WeakSet(); +class InkEditor extends _editor.AnnotationEditor { + constructor(params) { + super({ + ...params, + name: "inkEditor" + }); + _classPrivateMethodInitSpec(this, _setMinDims); + _classPrivateMethodInitSpec(this, _fitToContent); + _classPrivateMethodInitSpec(this, _getPadding); + _classPrivateMethodInitSpec(this, _getBbox); + _classPrivateMethodInitSpec(this, _isAlmostFlat); + _classPrivateMethodInitSpec(this, _extractPointsOnBezier); + _classPrivateMethodInitSpec(this, _serializePaths); + _classPrivateMethodInitSpec(this, _updateTransform); + _classPrivateMethodInitSpec(this, _setScaleFactor); + _classPrivateMethodInitSpec(this, _setCanvasDims); + _classPrivateMethodInitSpec(this, _createObserver); + _classPrivateMethodInitSpec(this, _createCanvas); + _classPrivateMethodInitSpec(this, _endDrawing); + _classPrivateMethodInitSpec(this, _redraw); + _classPrivateMethodInitSpec(this, _stopDrawing); + _classPrivateMethodInitSpec(this, _draw); + _classPrivateMethodInitSpec(this, _startDrawing); + _classPrivateMethodInitSpec(this, _setStroke); + _classPrivateMethodInitSpec(this, _getInitialBBox); + _classPrivateMethodInitSpec(this, _updateOpacity); + _classPrivateMethodInitSpec(this, _updateColor); + _classPrivateMethodInitSpec(this, _updateThickness); + _classPrivateFieldInitSpec(this, _aspectRatio, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _baseHeight, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _baseWidth, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointermove, { + writable: true, + value: this.canvasPointermove.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointerleave, { + writable: true, + value: this.canvasPointerleave.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointerup, { + writable: true, + value: this.canvasPointerup.bind(this) + }); + _classPrivateFieldInitSpec(this, _boundCanvasPointerdown, { + writable: true, + value: this.canvasPointerdown.bind(this) + }); + _classPrivateFieldInitSpec(this, _disableEditing, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _isCanvasInitialized, { + writable: true, + value: false + }); + _classPrivateFieldInitSpec(this, _lastPoint, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _observer, { + writable: true, + value: null + }); + _classPrivateFieldInitSpec(this, _realWidth, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _realHeight, { + writable: true, + value: 0 + }); + _classPrivateFieldInitSpec(this, _requestFrameCallback, { + writable: true, + value: null + }); + this.color = params.color || null; + this.thickness = params.thickness || null; + this.opacity = params.opacity || null; + this.paths = []; + this.bezierPath2D = []; + this.currentPath = []; + this.scaleFactor = 1; + this.translationX = this.translationY = 0; + this.x = 0; + this.y = 0; + } + static initialize(l10n) { + this._l10nPromise = new Map(["editor_ink_canvas_aria_label", "editor_ink2_aria_label"].map(str => [str, l10n.get(str)])); + } + static updateDefaultParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.INK_THICKNESS: + InkEditor._defaultThickness = value; + break; + case _util.AnnotationEditorParamsType.INK_COLOR: + InkEditor._defaultColor = value; + break; + case _util.AnnotationEditorParamsType.INK_OPACITY: + InkEditor._defaultOpacity = value / 100; + break; } - }, { - key: "_dispatchEventFromSandbox", - value: function _dispatchEventFromSandbox(actions, jsEvent) { - var commonActions = this._commonActions; - - for (var _i2 = 0, _Object$keys = Object.keys(jsEvent.detail); _i2 < _Object$keys.length; _i2++) { - var name = _Object$keys[_i2]; - var action = actions[name] || commonActions[name]; - - if (action) { - action(jsEvent); - } - } + } + updateParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.INK_THICKNESS: + _classPrivateMethodGet(this, _updateThickness, _updateThickness2).call(this, value); + break; + case _util.AnnotationEditorParamsType.INK_COLOR: + _classPrivateMethodGet(this, _updateColor, _updateColor2).call(this, value); + break; + case _util.AnnotationEditorParamsType.INK_OPACITY: + _classPrivateMethodGet(this, _updateOpacity, _updateOpacity2).call(this, value); + break; } - }, { - key: "_setDefaultPropertiesFromJS", - value: function _setDefaultPropertiesFromJS(element) { - if (!this.enableScripting) { - return; - } - - var storedData = this.annotationStorage.getRawValue(this.data.id); - - if (!storedData) { - return; - } - - var commonActions = this._commonActions; - - for (var _i3 = 0, _Object$entries = Object.entries(storedData); _i3 < _Object$entries.length; _i3++) { - var _Object$entries$_i = _slicedToArray(_Object$entries[_i3], 2), - actionName = _Object$entries$_i[0], - detail = _Object$entries$_i[1]; - - var action = commonActions[actionName]; - - if (action) { - action({ - detail: detail, - target: element - }); - delete storedData[actionName]; - } - } + } + static get defaultPropertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]]; + } + get propertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]]; + } + rebuild() { + super.rebuild(); + if (this.div === null) { + return; } - }, { - key: "_createQuadrilaterals", - value: function _createQuadrilaterals() { - var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this.data.quadPoints) { - return null; - } - - var quadrilaterals = []; - var savedRect = this.data.rect; - - var _iterator = _createForOfIteratorHelper(this.data.quadPoints), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var quadPoint = _step.value; - this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y]; - quadrilaterals.push(this._createContainer(ignoreBorder)); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - this.data.rect = savedRect; - return quadrilaterals; + if (!this.canvas) { + _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this); + _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this); } - }, { - key: "_createPopup", - value: function _createPopup(trigger, data) { - var container = this.container; - - if (this.quadrilaterals) { - trigger = trigger || this.quadrilaterals; - container = this.quadrilaterals[0]; - } - - if (!trigger) { - trigger = document.createElement("div"); - trigger.style.height = container.style.height; - trigger.style.width = container.style.width; - container.appendChild(trigger); - } - - var popupElement = new PopupElement({ - container: container, - trigger: trigger, - color: data.color, - titleObj: data.titleObj, - modificationDate: data.modificationDate, - contentsObj: data.contentsObj, - richText: data.richText, - hideWrapper: true - }); - var popup = popupElement.render(); - popup.style.left = container.style.width; - container.appendChild(popup); + if (!this.isAttachedToDOM) { + this.parent.add(this); + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); } - }, { - key: "_renderQuadrilaterals", - value: function _renderQuadrilaterals(className) { - var _iterator2 = _createForOfIteratorHelper(this.quadrilaterals), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var quadrilateral = _step2.value; - quadrilateral.className = className; - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - return this.quadrilaterals; + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + } + remove() { + if (this.canvas === null) { + return; } - }, { - key: "render", - value: function render() { - (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + if (!this.isEmpty()) { + this.commit(); } - }, { - key: "_getElementsByName", - value: function _getElementsByName(name) { - var skipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var fields = []; - - if (this._fieldObjects) { - var fieldObj = this._fieldObjects[name]; - - if (fieldObj) { - var _iterator3 = _createForOfIteratorHelper(fieldObj), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var _step3$value = _step3.value, - page = _step3$value.page, - id = _step3$value.id, - exportValues = _step3$value.exportValues; - - if (page === -1) { - continue; - } - - if (id === skipId) { - continue; - } - - var exportValue = typeof exportValues === "string" ? exportValues : null; - var domElement = document.getElementById(id); - - if (domElement && !GetElementsByNameSet.has(domElement)) { - (0, _util.warn)("_getElementsByName - element not allowed: ".concat(id)); - continue; - } - - fields.push({ - id: id, - exportValue: exportValue, - domElement: domElement - }); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - - return fields; - } - - var _iterator4 = _createForOfIteratorHelper(document.getElementsByName(name)), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var _domElement = _step4.value; - var _id = _domElement.id, - _exportValue = _domElement.exportValue; - - if (_id === skipId) { - continue; - } - - if (!GetElementsByNameSet.has(_domElement)) { - continue; - } - - fields.push({ - id: _id, - exportValue: _exportValue, - domElement: _domElement - }); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - - return fields; + this.canvas.width = this.canvas.height = 0; + this.canvas.remove(); + this.canvas = null; + _classPrivateFieldGet(this, _observer).disconnect(); + _classPrivateFieldSet(this, _observer, null); + super.remove(); + } + enableEditMode() { + if (_classPrivateFieldGet(this, _disableEditing) || this.canvas === null) { + return; } - }], [{ - key: "platform", - get: function get() { - var platform = typeof navigator !== "undefined" ? navigator.platform : ""; - return (0, _util.shadow)(this, "platform", { - isWin: platform.includes("Win"), - isMac: platform.includes("Mac") - }); + super.enableEditMode(); + this.div.draggable = false; + this.canvas.addEventListener("pointerdown", _classPrivateFieldGet(this, _boundCanvasPointerdown)); + this.canvas.addEventListener("pointerup", _classPrivateFieldGet(this, _boundCanvasPointerup)); + } + disableEditMode() { + if (!this.isInEditMode() || this.canvas === null) { + return; } - }]); - - return AnnotationElement; -}(); - -var LinkAnnotationElement = /*#__PURE__*/function (_AnnotationElement) { - _inherits(LinkAnnotationElement, _AnnotationElement); - - var _super = _createSuper(LinkAnnotationElement); - - function LinkAnnotationElement(parameters) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - _classCallCheck(this, LinkAnnotationElement); - - var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action || parameters.data.isTooltipOnly || parameters.data.resetForm || parameters.data.actions && (parameters.data.actions.Action || parameters.data.actions["Mouse Up"] || parameters.data.actions["Mouse Down"])); - return _super.call(this, parameters, { - isRenderable: isRenderable, - ignoreBorder: !!(options !== null && options !== void 0 && options.ignoreBorder), - createQuadrilaterals: true - }); + super.disableEditMode(); + this.div.draggable = !this.isEmpty(); + this.div.classList.remove("editing"); + this.canvas.removeEventListener("pointerdown", _classPrivateFieldGet(this, _boundCanvasPointerdown)); + this.canvas.removeEventListener("pointerup", _classPrivateFieldGet(this, _boundCanvasPointerup)); } - - _createClass(LinkAnnotationElement, [{ - key: "render", - value: function render() { - var data = this.data, - linkService = this.linkService; - var link = document.createElement("a"); - - if (data.url) { - linkService.addLinkAttributes(link, data.url, data.newWindow); - } else if (data.action) { - this._bindNamedAction(link, data.action); - } else if (data.dest) { - this._bindLink(link, data.dest); - } else { - var hasClickAction = false; - - if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { - hasClickAction = true; - - this._bindJSAction(link, data); - } - - if (data.resetForm) { - this._bindResetFormAction(link, data.resetForm); - } else if (!hasClickAction) { - this._bindLink(link, ""); - } - } - - if (this.quadrilaterals) { - return this._renderQuadrilaterals("linkAnnotation").map(function (quadrilateral, index) { - var linkElement = index === 0 ? link : link.cloneNode(); - quadrilateral.appendChild(linkElement); - return quadrilateral; - }); - } - - this.container.className = "linkAnnotation"; - this.container.appendChild(link); - return this.container; + onceAdded() { + this.div.draggable = !this.isEmpty(); + } + isEmpty() { + return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0; + } + commit() { + if (_classPrivateFieldGet(this, _disableEditing)) { + return; } - }, { - key: "_bindLink", - value: function _bindLink(link, destination) { - var _this2 = this; - - link.href = this.linkService.getDestinationHash(destination); - - link.onclick = function () { - if (destination) { - _this2.linkService.goToDestination(destination); - } - - return false; - }; - - if (destination || destination === "") { - link.className = "internalLink"; - } + super.commit(); + this.isEditing = false; + this.disableEditMode(); + this.setInForeground(); + _classPrivateFieldSet(this, _disableEditing, true); + this.div.classList.add("disabled"); + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this, true); + this.parent.addInkEditorIfNeeded(true); + this.parent.moveEditorInDOM(this); + this.div.focus(); + } + focusin(event) { + super.focusin(event); + this.enableEditMode(); + } + canvasPointerdown(event) { + if (event.button !== 0 || !this.isInEditMode() || _classPrivateFieldGet(this, _disableEditing)) { + return; } - }, { - key: "_bindNamedAction", - value: function _bindNamedAction(link, action) { - var _this3 = this; - - link.href = this.linkService.getAnchorUrl(""); - - link.onclick = function () { - _this3.linkService.executeNamedAction(action); - - return false; - }; - - link.className = "internalLink"; + this.setInForeground(); + if (event.type !== "mouse") { + this.div.focus(); } - }, { - key: "_bindJSAction", - value: function _bindJSAction(link, data) { - var _this4 = this; - - link.href = this.linkService.getAnchorUrl(""); - var map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); - - var _loop = function _loop() { - var name = _Object$keys2[_i4]; - var jsName = map.get(name); - - if (!jsName) { - return "continue"; - } - - link[jsName] = function () { - var _this4$linkService$ev; - - (_this4$linkService$ev = _this4.linkService.eventBus) === null || _this4$linkService$ev === void 0 ? void 0 : _this4$linkService$ev.dispatch("dispatcheventinsandbox", { - source: _this4, - detail: { - id: data.id, - name: name - } - }); - return false; - }; - }; - - for (var _i4 = 0, _Object$keys2 = Object.keys(data.actions); _i4 < _Object$keys2.length; _i4++) { - var _ret = _loop(); - - if (_ret === "continue") continue; - } - - if (!link.onclick) { - link.onclick = function () { - return false; - }; - } - - link.className = "internalLink"; + event.stopPropagation(); + this.canvas.addEventListener("pointerleave", _classPrivateFieldGet(this, _boundCanvasPointerleave)); + this.canvas.addEventListener("pointermove", _classPrivateFieldGet(this, _boundCanvasPointermove)); + _classPrivateMethodGet(this, _startDrawing, _startDrawing2).call(this, event.offsetX, event.offsetY); + } + canvasPointermove(event) { + event.stopPropagation(); + _classPrivateMethodGet(this, _draw, _draw2).call(this, event.offsetX, event.offsetY); + } + canvasPointerup(event) { + if (event.button !== 0) { + return; } - }, { - key: "_bindResetFormAction", - value: function _bindResetFormAction(link, resetForm) { - var _this5 = this; - - var otherClickAction = link.onclick; - - if (!otherClickAction) { - link.href = this.linkService.getAnchorUrl(""); - } - - link.className = "internalLink"; - - if (!this._fieldObjects) { - (0, _util.warn)("_bindResetFormAction - \"resetForm\" action not supported, " + "ensure that the `fieldObjects` parameter is provided."); - - if (!otherClickAction) { - link.onclick = function () { - return false; - }; - } - - return; - } - - link.onclick = function () { - if (otherClickAction) { - otherClickAction(); - } - - var resetFormFields = resetForm.fields, - resetFormRefs = resetForm.refs, - include = resetForm.include; - var allFields = []; - - if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) { - var fieldIds = new Set(resetFormRefs); - - var _iterator5 = _createForOfIteratorHelper(resetFormFields), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var fieldName = _step5.value; - - var _fields = _this5._fieldObjects[fieldName] || []; - - var _iterator7 = _createForOfIteratorHelper(_fields), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var id = _step7.value.id; - fieldIds.add(id); - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - for (var _i5 = 0, _Object$values = Object.values(_this5._fieldObjects); _i5 < _Object$values.length; _i5++) { - var fields = _Object$values[_i5]; - - var _iterator6 = _createForOfIteratorHelper(fields), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var field = _step6.value; - - if (fieldIds.has(field.id) === include) { - allFields.push(field); - } - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - } - } else { - for (var _i6 = 0, _Object$values2 = Object.values(_this5._fieldObjects); _i6 < _Object$values2.length; _i6++) { - var _fields2 = _Object$values2[_i6]; - allFields.push.apply(allFields, _toConsumableArray(_fields2)); - } - } - - var storage = _this5.annotationStorage; - var allIds = []; - - for (var _i7 = 0, _allFields = allFields; _i7 < _allFields.length; _i7++) { - var _field = _allFields[_i7]; - var _id2 = _field.id; - allIds.push(_id2); - - switch (_field.type) { - case "text": - { - var value = _field.defaultValue || ""; - storage.setValue(_id2, { - value: value - }); - break; - } - - case "checkbox": - case "radiobutton": - { - var _value = _field.defaultValue === _field.exportValues; - - storage.setValue(_id2, { - value: _value - }); - break; - } - - case "combobox": - case "listbox": - { - var _value2 = _field.defaultValue || ""; - - storage.setValue(_id2, { - value: _value2 - }); - break; - } - - default: - continue; - } - - var domElement = document.getElementById(_id2); - - if (!domElement || !GetElementsByNameSet.has(domElement)) { - continue; - } - - domElement.dispatchEvent(new Event("resetform")); - } - - if (_this5.enableScripting) { - var _this5$linkService$ev; - - (_this5$linkService$ev = _this5.linkService.eventBus) === null || _this5$linkService$ev === void 0 ? void 0 : _this5$linkService$ev.dispatch("dispatcheventinsandbox", { - source: _this5, - detail: { - id: "app", - ids: allIds, - name: "ResetForm" - } - }); - } - - return false; - }; + if (this.isInEditMode() && this.currentPath.length !== 0) { + event.stopPropagation(); + _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event); + this.setInBackground(); } - }]); - - return LinkAnnotationElement; -}(AnnotationElement); - -var TextAnnotationElement = /*#__PURE__*/function (_AnnotationElement2) { - _inherits(TextAnnotationElement, _AnnotationElement2); - - var _super2 = _createSuper(TextAnnotationElement); - - function TextAnnotationElement(parameters) { - var _parameters$data$titl, _parameters$data$cont, _parameters$data$rich; - - _classCallCheck(this, TextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl = parameters.data.titleObj) !== null && _parameters$data$titl !== void 0 && _parameters$data$titl.str || (_parameters$data$cont = parameters.data.contentsObj) !== null && _parameters$data$cont !== void 0 && _parameters$data$cont.str || (_parameters$data$rich = parameters.data.richText) !== null && _parameters$data$rich !== void 0 && _parameters$data$rich.str); - return _super2.call(this, parameters, { - isRenderable: isRenderable + } + canvasPointerleave(event) { + _classPrivateMethodGet(this, _endDrawing, _endDrawing2).call(this, event); + this.setInBackground(); + } + render() { + if (this.div) { + return this.div; + } + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + InkEditor._l10nPromise.get("editor_ink2_aria_label").then(msg => { + var _this$div; + return (_this$div = this.div) === null || _this$div === void 0 ? void 0 : _this$div.setAttribute("aria-label", msg); }); + const [x, y, w, h] = _classPrivateMethodGet(this, _getInitialBBox, _getInitialBBox2).call(this); + this.setAt(x, y, 0, 0); + this.setDims(w, h); + _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this); + if (this.width) { + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + _classPrivateFieldSet(this, _isCanvasInitialized, true); + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + this.setDims(this.width * parentWidth, this.height * parentHeight); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this); + this.div.classList.add("disabled"); + } else { + this.div.classList.add("editing"); + this.enableEditMode(); + } + _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this); + return this.div; } - - _createClass(TextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "textAnnotation"; - var image = document.createElement("img"); - image.style.height = this.container.style.height; - image.style.width = this.container.style.width; - image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; - image.alt = "[{{type}} Annotation]"; - image.dataset.l10nId = "text_annotation_type"; - image.dataset.l10nArgs = JSON.stringify({ - type: this.data.name - }); - - if (!this.data.hasPopup) { - this._createPopup(image, this.data); - } - - this.container.appendChild(image); - return this.container; + setDimensions(width, height) { + const roundedWidth = Math.round(width); + const roundedHeight = Math.round(height); + if (_classPrivateFieldGet(this, _realWidth) === roundedWidth && _classPrivateFieldGet(this, _realHeight) === roundedHeight) { + return; } - }]); - - return TextAnnotationElement; -}(AnnotationElement); - -var WidgetAnnotationElement = /*#__PURE__*/function (_AnnotationElement3) { - _inherits(WidgetAnnotationElement, _AnnotationElement3); - - var _super3 = _createSuper(WidgetAnnotationElement); - - function WidgetAnnotationElement() { - _classCallCheck(this, WidgetAnnotationElement); - - return _super3.apply(this, arguments); + _classPrivateFieldSet(this, _realWidth, roundedWidth); + _classPrivateFieldSet(this, _realHeight, roundedHeight); + this.canvas.style.visibility = "hidden"; + if (_classPrivateFieldGet(this, _aspectRatio) && Math.abs(_classPrivateFieldGet(this, _aspectRatio) - width / height) > 1e-2) { + height = Math.ceil(width / _classPrivateFieldGet(this, _aspectRatio)); + this.setDims(width, height); + } + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + if (_classPrivateFieldGet(this, _disableEditing)) { + _classPrivateMethodGet(this, _setScaleFactor, _setScaleFactor2).call(this, width, height); + } + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + this.canvas.style.visibility = "visible"; + } + static deserialize(data, parent) { + const editor = super.deserialize(data, parent); + editor.thickness = data.thickness; + editor.color = _util.Util.makeHexColor(...data.color); + editor.opacity = data.opacity; + const [pageWidth, pageHeight] = parent.pageDimensions; + const width = editor.width * pageWidth; + const height = editor.height * pageHeight; + const scaleFactor = parent.scaleFactor; + const padding = data.thickness / 2; + _classPrivateFieldSet(editor, _aspectRatio, width / height); + _classPrivateFieldSet(editor, _disableEditing, true); + _classPrivateFieldSet(editor, _realWidth, Math.round(width)); + _classPrivateFieldSet(editor, _realHeight, Math.round(height)); + for (const { + bezier + } of data.paths) { + const path = []; + editor.paths.push(path); + let p0 = scaleFactor * (bezier[0] - padding); + let p1 = scaleFactor * (height - bezier[1] - padding); + for (let i = 2, ii = bezier.length; i < ii; i += 6) { + const p10 = scaleFactor * (bezier[i] - padding); + const p11 = scaleFactor * (height - bezier[i + 1] - padding); + const p20 = scaleFactor * (bezier[i + 2] - padding); + const p21 = scaleFactor * (height - bezier[i + 3] - padding); + const p30 = scaleFactor * (bezier[i + 4] - padding); + const p31 = scaleFactor * (height - bezier[i + 5] - padding); + path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]); + p0 = p30; + p1 = p31; + } + const path2D = _classStaticPrivateMethodGet(this, InkEditor, _buildPath2D).call(this, path); + editor.bezierPath2D.push(path2D); + } + const bbox = _classPrivateMethodGet(editor, _getBbox, _getBbox2).call(editor); + _classPrivateFieldSet(editor, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0])); + _classPrivateFieldSet(editor, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1])); + _classPrivateMethodGet(editor, _setScaleFactor, _setScaleFactor2).call(editor, width, height); + return editor; + } + serialize() { + if (this.isEmpty()) { + return null; + } + const rect = this.getRect(0, 0); + const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0]; + const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle); + return { + annotationType: _util.AnnotationEditorType.INK, + color, + thickness: this.thickness, + opacity: this.opacity, + paths: _classPrivateMethodGet(this, _serializePaths, _serializePaths2).call(this, this.scaleFactor / this.parent.scaleFactor, this.translationX, this.translationY, height), + pageIndex: this.parent.pageIndex, + rect, + rotation: this.rotation + }; } - - _createClass(WidgetAnnotationElement, [{ - key: "render", - value: function render() { - if (this.data.alternativeText) { - this.container.title = this.data.alternativeText; - } - - return this.container; +} +exports.InkEditor = InkEditor; +function _updateThickness2(thickness) { + const savedThickness = this.thickness; + this.parent.addCommands({ + cmd: () => { + this.thickness = thickness; + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + }, + undo: () => { + this.thickness = savedThickness; + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_THICKNESS, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _updateColor2(color) { + const savedColor = this.color; + this.parent.addCommands({ + cmd: () => { + this.color = color; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + undo: () => { + this.color = savedColor; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_COLOR, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _updateOpacity2(opacity) { + opacity /= 100; + const savedOpacity = this.opacity; + this.parent.addCommands({ + cmd: () => { + this.opacity = opacity; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + undo: () => { + this.opacity = savedOpacity; + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_OPACITY, + overwriteIfSameType: true, + keepUndo: true + }); +} +function _getInitialBBox2() { + const { + width, + height, + rotation + } = this.parent.viewport; + switch (rotation) { + case 90: + return [0, width, width, height]; + case 180: + return [width, height, width, height]; + case 270: + return [height, 0, width, height]; + default: + return [0, 0, width, height]; + } +} +function _setStroke2() { + this.ctx.lineWidth = this.thickness * this.parent.scaleFactor / this.scaleFactor; + this.ctx.lineCap = "round"; + this.ctx.lineJoin = "round"; + this.ctx.miterLimit = 10; + this.ctx.strokeStyle = `${this.color}${(0, _tools.opacityToHex)(this.opacity)}`; +} +function _startDrawing2(x, y) { + this.isEditing = true; + if (!_classPrivateFieldGet(this, _isCanvasInitialized)) { + _classPrivateFieldSet(this, _isCanvasInitialized, true); + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + this.thickness || (this.thickness = InkEditor._defaultThickness); + this.color || (this.color = InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor); + this.opacity ?? (this.opacity = InkEditor._defaultOpacity); + } + this.currentPath.push([x, y]); + _classPrivateFieldSet(this, _lastPoint, null); + _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this); + this.ctx.beginPath(); + this.ctx.moveTo(x, y); + _classPrivateFieldSet(this, _requestFrameCallback, () => { + if (!_classPrivateFieldGet(this, _requestFrameCallback)) { + return; } - }, { - key: "_getKeyModifier", - value: function _getKeyModifier(event) { - var _AnnotationElement$pl = AnnotationElement.platform, - isWin = _AnnotationElement$pl.isWin, - isMac = _AnnotationElement$pl.isMac; - return isWin && event.ctrlKey || isMac && event.metaKey; - } - }, { - key: "_setEventListener", - value: function _setEventListener(element, baseName, eventName, valueGetter) { - var _this6 = this; - - if (baseName.includes("mouse")) { - element.addEventListener(baseName, function (event) { - var _this6$linkService$ev; - - (_this6$linkService$ev = _this6.linkService.eventBus) === null || _this6$linkService$ev === void 0 ? void 0 : _this6$linkService$ev.dispatch("dispatcheventinsandbox", { - source: _this6, - detail: { - id: _this6.data.id, - name: eventName, - value: valueGetter(event), - shift: event.shiftKey, - modifier: _this6._getKeyModifier(event) - } - }); - }); + if (_classPrivateFieldGet(this, _lastPoint)) { + if (this.isEmpty()) { + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); } else { - element.addEventListener(baseName, function (event) { - var _this6$linkService$ev2; - - (_this6$linkService$ev2 = _this6.linkService.eventBus) === null || _this6$linkService$ev2 === void 0 ? void 0 : _this6$linkService$ev2.dispatch("dispatcheventinsandbox", { - source: _this6, - detail: { - id: _this6.data.id, - name: eventName, - value: valueGetter(event) - } - }); - }); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); } + this.ctx.lineTo(..._classPrivateFieldGet(this, _lastPoint)); + _classPrivateFieldSet(this, _lastPoint, null); + this.ctx.stroke(); } - }, { - key: "_setEventListeners", - value: function _setEventListeners(element, names, getter) { - var _iterator8 = _createForOfIteratorHelper(names), - _step8; - - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var _this$data$actions; - - var _step8$value = _slicedToArray(_step8.value, 2), - baseName = _step8$value[0], - eventName = _step8$value[1]; - - if (eventName === "Action" || (_this$data$actions = this.data.actions) !== null && _this$data$actions !== void 0 && _this$data$actions[eventName]) { - this._setEventListener(element, baseName, eventName, getter); - } - } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); + window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback)); + }); + window.requestAnimationFrame(_classPrivateFieldGet(this, _requestFrameCallback)); +} +function _draw2(x, y) { + const [lastX, lastY] = this.currentPath.at(-1); + if (x === lastX && y === lastY) { + return; + } + this.currentPath.push([x, y]); + _classPrivateFieldSet(this, _lastPoint, [x, y]); +} +function _stopDrawing2(x, y) { + this.ctx.closePath(); + _classPrivateFieldSet(this, _requestFrameCallback, null); + x = Math.min(Math.max(x, 0), this.canvas.width); + y = Math.min(Math.max(y, 0), this.canvas.height); + const [lastX, lastY] = this.currentPath.at(-1); + if (x !== lastX || y !== lastY) { + this.currentPath.push([x, y]); + } + let bezier; + if (this.currentPath.length !== 1) { + bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null); + } else { + const xy = [x, y]; + bezier = [[xy, xy.slice(), xy.slice(), xy]]; + } + const path2D = _classStaticPrivateMethodGet(InkEditor, InkEditor, _buildPath2D).call(InkEditor, bezier); + this.currentPath.length = 0; + const cmd = () => { + this.paths.push(bezier); + this.bezierPath2D.push(path2D); + this.rebuild(); + }; + const undo = () => { + this.paths.pop(); + this.bezierPath2D.pop(); + if (this.paths.length === 0) { + this.remove(); + } else { + if (!this.canvas) { + _classPrivateMethodGet(this, _createCanvas, _createCanvas2).call(this); + _classPrivateMethodGet(this, _createObserver, _createObserver2).call(this); } + _classPrivateMethodGet(this, _fitToContent, _fitToContent2).call(this); } - }, { - key: "_setBackgroundColor", - value: function _setBackgroundColor(element) { - var color = this.data.backgroundColor || null; - element.style.backgroundColor = color === null ? "transparent" : _util.Util.makeHexColor(color[0], color[1], color[2]); + }; + this.parent.addCommands({ + cmd, + undo, + mustExec: true + }); +} +function _redraw2() { + if (this.isEmpty()) { + _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this); + return; + } + _classPrivateMethodGet(this, _setStroke, _setStroke2).call(this); + const { + canvas, + ctx + } = this; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.clearRect(0, 0, canvas.width, canvas.height); + _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this); + for (const path of this.bezierPath2D) { + ctx.stroke(path); + } +} +function _endDrawing2(event) { + _classPrivateMethodGet(this, _stopDrawing, _stopDrawing2).call(this, event.offsetX, event.offsetY); + this.canvas.removeEventListener("pointerleave", _classPrivateFieldGet(this, _boundCanvasPointerleave)); + this.canvas.removeEventListener("pointermove", _classPrivateFieldGet(this, _boundCanvasPointermove)); + this.parent.addToAnnotationStorage(this); +} +function _createCanvas2() { + this.canvas = document.createElement("canvas"); + this.canvas.width = this.canvas.height = 0; + this.canvas.className = "inkEditorCanvas"; + InkEditor._l10nPromise.get("editor_ink_canvas_aria_label").then(msg => { + var _this$canvas; + return (_this$canvas = this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.setAttribute("aria-label", msg); + }); + this.div.append(this.canvas); + this.ctx = this.canvas.getContext("2d"); +} +function _createObserver2() { + let timeoutId = null; + _classPrivateFieldSet(this, _observer, new ResizeObserver(entries => { + const rect = entries[0].contentRect; + if (rect.width && rect.height) { + if (timeoutId !== null) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(() => { + this.fixDims(); + timeoutId = null; + }, TIME_TO_WAIT_BEFORE_FIXING_DIMS); + this.setDimensions(rect.width, rect.height); } - }]); - - return WidgetAnnotationElement; -}(AnnotationElement); - -var TextWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem) { - _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); - - var _super4 = _createSuper(TextWidgetAnnotationElement); - - function TextWidgetAnnotationElement(parameters) { - _classCallCheck(this, TextWidgetAnnotationElement); - - var isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; - return _super4.call(this, parameters, { - isRenderable: isRenderable - }); + })); + _classPrivateFieldGet(this, _observer).observe(this.div); +} +function _setCanvasDims2() { + if (!_classPrivateFieldGet(this, _isCanvasInitialized)) { + return; } - - _createClass(TextWidgetAnnotationElement, [{ - key: "setPropertyOnSiblings", - value: function setPropertyOnSiblings(base, key, value, keyInStorage) { - var storage = this.annotationStorage; - - var _iterator9 = _createForOfIteratorHelper(this._getElementsByName(base.name, base.id)), - _step9; - - try { - for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { - var element = _step9.value; - - if (element.domElement) { - element.domElement[key] = value; - } - - storage.setValue(element.id, _defineProperty({}, keyInStorage, value)); - } - } catch (err) { - _iterator9.e(err); - } finally { - _iterator9.f(); - } + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.canvas.width = Math.ceil(this.width * parentWidth); + this.canvas.height = Math.ceil(this.height * parentHeight); + _classPrivateMethodGet(this, _updateTransform, _updateTransform2).call(this); +} +function _setScaleFactor2(width, height) { + const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this); + const scaleFactorW = (width - padding) / _classPrivateFieldGet(this, _baseWidth); + const scaleFactorH = (height - padding) / _classPrivateFieldGet(this, _baseHeight); + this.scaleFactor = Math.min(scaleFactorW, scaleFactorH); +} +function _updateTransform2() { + const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this) / 2; + this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding); +} +function _buildPath2D(bezier) { + const path2D = new Path2D(); + for (let i = 0, ii = bezier.length; i < ii; i++) { + const [first, control1, control2, second] = bezier[i]; + if (i === 0) { + path2D.moveTo(...first); } - }, { - key: "render", - value: function render() { - var _this7 = this; - - var storage = this.annotationStorage; - var id = this.data.id; - this.container.className = "textWidgetAnnotation"; - var element = null; - - if (this.renderForms) { - var storedData = storage.getValue(id, { - value: this.data.fieldValue - }); - var textContent = storedData.formattedValue || storedData.value || ""; - var elementData = { - userValue: null, - formattedValue: null, - valueOnFocus: "" - }; - - if (this.data.multiLine) { - element = document.createElement("textarea"); - element.textContent = textContent; - } else { - element = document.createElement("input"); - element.type = "text"; - element.setAttribute("value", textContent); - } - - GetElementsByNameSet.add(element); - element.disabled = this.data.readOnly; - element.name = this.data.fieldName; - element.tabIndex = DEFAULT_TAB_INDEX; - elementData.userValue = textContent; - element.setAttribute("id", id); - element.addEventListener("input", function (event) { - storage.setValue(id, { - value: event.target.value - }); - - _this7.setPropertyOnSiblings(element, "value", event.target.value, "value"); - }); - element.addEventListener("resetform", function (event) { - var _this7$data$defaultFi; - - var defaultValue = (_this7$data$defaultFi = _this7.data.defaultFieldValue) !== null && _this7$data$defaultFi !== void 0 ? _this7$data$defaultFi : ""; - element.value = elementData.userValue = defaultValue; - elementData.formattedValue = null; - }); - - var blurListener = function blurListener(event) { - var formattedValue = elementData.formattedValue; - - if (formattedValue !== null && formattedValue !== undefined) { - event.target.value = formattedValue; - } - - event.target.scrollLeft = 0; - }; - - if (this.enableScripting && this.hasJSActions) { - var _this$data$actions2; - - element.addEventListener("focus", function (event) { - if (elementData.userValue) { - event.target.value = elementData.userValue; - } - - elementData.valueOnFocus = event.target.value; - }); - element.addEventListener("updatefromsandbox", function (jsEvent) { - var actions = { - value: function value(event) { - var _event$detail$value; - - elementData.userValue = (_event$detail$value = event.detail.value) !== null && _event$detail$value !== void 0 ? _event$detail$value : ""; - storage.setValue(id, { - value: elementData.userValue.toString() - }); - event.target.value = elementData.userValue; - }, - formattedValue: function formattedValue(event) { - var formattedValue = event.detail.formattedValue; - elementData.formattedValue = formattedValue; - - if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) { - event.target.value = formattedValue; - } - - storage.setValue(id, { - formattedValue: formattedValue - }); - }, - selRange: function selRange(event) { - var _event$target; - - (_event$target = event.target).setSelectionRange.apply(_event$target, _toConsumableArray(event.detail.selRange)); - } - }; - - _this7._dispatchEventFromSandbox(actions, jsEvent); - }); - element.addEventListener("keydown", function (event) { - var _this7$linkService$ev; - - var commitKey = -1; - - if (event.key === "Escape") { - commitKey = 0; - } else if (event.key === "Enter") { - commitKey = 2; - } else if (event.key === "Tab") { - commitKey = 3; - } - - if (commitKey === -1) { - return; - } - - var value = event.target.value; - - if (elementData.valueOnFocus === value) { - return; - } - - elementData.userValue = value; - (_this7$linkService$ev = _this7.linkService.eventBus) === null || _this7$linkService$ev === void 0 ? void 0 : _this7$linkService$ev.dispatch("dispatcheventinsandbox", { - source: _this7, - detail: { - id: id, - name: "Keystroke", - value: value, - willCommit: true, - commitKey: commitKey, - selStart: event.target.selectionStart, - selEnd: event.target.selectionEnd - } - }); - }); - var _blurListener = blurListener; - blurListener = null; - element.addEventListener("blur", function (event) { - var value = event.target.value; - elementData.userValue = value; - - if (_this7._mouseState.isDown && elementData.valueOnFocus !== value) { - var _this7$linkService$ev2; - - (_this7$linkService$ev2 = _this7.linkService.eventBus) === null || _this7$linkService$ev2 === void 0 ? void 0 : _this7$linkService$ev2.dispatch("dispatcheventinsandbox", { - source: _this7, - detail: { - id: id, - name: "Keystroke", - value: value, - willCommit: true, - commitKey: 1, - selStart: event.target.selectionStart, - selEnd: event.target.selectionEnd - } - }); - } - - _blurListener(event); - }); - - if ((_this$data$actions2 = this.data.actions) !== null && _this$data$actions2 !== void 0 && _this$data$actions2.Keystroke) { - element.addEventListener("beforeinput", function (event) { - var _this7$linkService$ev3; - - var data = event.data, - target = event.target; - var value = target.value, - selectionStart = target.selectionStart, - selectionEnd = target.selectionEnd; - var selStart = selectionStart, - selEnd = selectionEnd; - - switch (event.inputType) { - case "deleteWordBackward": - { - var match = value.substring(0, selectionStart).match(/\w*[^\w]*$/); - - if (match) { - selStart -= match[0].length; - } - - break; - } - - case "deleteWordForward": - { - var _match = value.substring(selectionStart).match(/^[^\w]*\w*/); - - if (_match) { - selEnd += _match[0].length; - } - - break; - } - - case "deleteContentBackward": - if (selectionStart === selectionEnd) { - selStart -= 1; - } + path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]); + } + return path2D; +} +function _serializePaths2(s, tx, ty, h) { + const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4; + const paths = []; + const padding = this.thickness / 2; + let buffer, points; + for (const bezier of this.paths) { + buffer = []; + points = []; + for (let i = 0, ii = bezier.length; i < ii; i++) { + const [first, control1, control2, second] = bezier[i]; + const p10 = s * (first[0] + tx) + padding; + const p11 = h - s * (first[1] + ty) - padding; + const p20 = s * (control1[0] + tx) + padding; + const p21 = h - s * (control1[1] + ty) - padding; + const p30 = s * (control2[0] + tx) + padding; + const p31 = h - s * (control2[1] + ty) - padding; + const p40 = s * (second[0] + tx) + padding; + const p41 = h - s * (second[1] + ty) - padding; + if (i === 0) { + buffer.push(p10, p11); + points.push(p10, p11); + } + buffer.push(p20, p21, p30, p31, p40, p41); + _classPrivateMethodGet(this, _extractPointsOnBezier, _extractPointsOnBezier2).call(this, p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points); + } + paths.push({ + bezier: buffer, + points + }); + } + return paths; +} +function _extractPointsOnBezier2(p10, p11, p20, p21, p30, p31, p40, p41, n, points) { + if (_classPrivateMethodGet(this, _isAlmostFlat, _isAlmostFlat2).call(this, p10, p11, p20, p21, p30, p31, p40, p41)) { + points.push(p40, p41); + return; + } + for (let i = 1; i < n - 1; i++) { + const t = i / n; + const mt = 1 - t; + let q10 = t * p10 + mt * p20; + let q11 = t * p11 + mt * p21; + let q20 = t * p20 + mt * p30; + let q21 = t * p21 + mt * p31; + const q30 = t * p30 + mt * p40; + const q31 = t * p31 + mt * p41; + q10 = t * q10 + mt * q20; + q11 = t * q11 + mt * q21; + q20 = t * q20 + mt * q30; + q21 = t * q21 + mt * q31; + q10 = t * q10 + mt * q20; + q11 = t * q11 + mt * q21; + points.push(q10, q11); + } + points.push(p40, p41); +} +function _isAlmostFlat2(p10, p11, p20, p21, p30, p31, p40, p41) { + const tol = 10; + const ax = (3 * p20 - 2 * p10 - p40) ** 2; + const ay = (3 * p21 - 2 * p11 - p41) ** 2; + const bx = (3 * p30 - p10 - 2 * p40) ** 2; + const by = (3 * p31 - p11 - 2 * p41) ** 2; + return Math.max(ax, bx) + Math.max(ay, by) <= tol; +} +function _getBbox2() { + let xMin = Infinity; + let xMax = -Infinity; + let yMin = Infinity; + let yMax = -Infinity; + for (const path of this.paths) { + for (const [first, control1, control2, second] of path) { + const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second); + xMin = Math.min(xMin, bbox[0]); + yMin = Math.min(yMin, bbox[1]); + xMax = Math.max(xMax, bbox[2]); + yMax = Math.max(yMax, bbox[3]); + } + } + return [xMin, yMin, xMax, yMax]; +} +function _getPadding2() { + return _classPrivateFieldGet(this, _disableEditing) ? Math.ceil(this.thickness * this.parent.scaleFactor) : 0; +} +function _fitToContent2() { + let firstTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.isEmpty()) { + return; + } + if (!_classPrivateFieldGet(this, _disableEditing)) { + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + return; + } + const bbox = _classPrivateMethodGet(this, _getBbox, _getBbox2).call(this); + const padding = _classPrivateMethodGet(this, _getPadding, _getPadding2).call(this); + _classPrivateFieldSet(this, _baseWidth, Math.max(RESIZER_SIZE, bbox[2] - bbox[0])); + _classPrivateFieldSet(this, _baseHeight, Math.max(RESIZER_SIZE, bbox[3] - bbox[1])); + const width = Math.ceil(padding + _classPrivateFieldGet(this, _baseWidth) * this.scaleFactor); + const height = Math.ceil(padding + _classPrivateFieldGet(this, _baseHeight) * this.scaleFactor); + const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + _classPrivateFieldSet(this, _aspectRatio, width / height); + _classPrivateMethodGet(this, _setMinDims, _setMinDims2).call(this); + const prevTranslationX = this.translationX; + const prevTranslationY = this.translationY; + this.translationX = -bbox[0]; + this.translationY = -bbox[1]; + _classPrivateMethodGet(this, _setCanvasDims, _setCanvasDims2).call(this); + _classPrivateMethodGet(this, _redraw, _redraw2).call(this); + _classPrivateFieldSet(this, _realWidth, width); + _classPrivateFieldSet(this, _realHeight, height); + this.setDims(width, height); + const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0; + this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding); +} +function _setMinDims2() { + const { + style + } = this.div; + if (_classPrivateFieldGet(this, _aspectRatio) >= 1) { + style.minHeight = `${RESIZER_SIZE}px`; + style.minWidth = `${Math.round(_classPrivateFieldGet(this, _aspectRatio) * RESIZER_SIZE)}px`; + } else { + style.minWidth = `${RESIZER_SIZE}px`; + style.minHeight = `${Math.round(RESIZER_SIZE / _classPrivateFieldGet(this, _aspectRatio))}px`; + } +} +_defineProperty(InkEditor, "_defaultColor", null); +_defineProperty(InkEditor, "_defaultOpacity", 1); +_defineProperty(InkEditor, "_defaultThickness", 1); +_defineProperty(InkEditor, "_l10nPromise", void 0); +_defineProperty(InkEditor, "_type", "ink"); - break; +/***/ }), +/* 154 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - case "deleteContentForward": - if (selectionStart === selectionEnd) { - selEnd += 1; - } +"use strict"; - break; - } - event.preventDefault(); - (_this7$linkService$ev3 = _this7.linkService.eventBus) === null || _this7$linkService$ev3 === void 0 ? void 0 : _this7$linkService$ev3.dispatch("dispatcheventinsandbox", { - source: _this7, - detail: { - id: id, - name: "Keystroke", - value: value, - change: data || "", - willCommit: false, - selStart: selStart, - selEnd: selEnd - } - }); - }); - } +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.fitCurve = void 0; +const fitCurve = __w_pdfjs_require__(155); +exports.fitCurve = fitCurve; - this._setEventListeners(element, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], function (event) { - return event.target.value; - }); - } +/***/ }), +/* 155 */ +/***/ ((module) => { - if (blurListener) { - element.addEventListener("blur", blurListener); - } +"use strict"; - if (this.data.maxLen !== null) { - element.maxLength = this.data.maxLen; - } - if (this.data.comb) { - var fieldWidth = this.data.rect[2] - this.data.rect[0]; - var combWidth = fieldWidth / this.data.maxLen; - element.classList.add("comb"); - element.style.letterSpacing = "calc(".concat(combWidth, "px - 1ch)"); +function fitCurve(points, maxError, progressCallback) { + if (!Array.isArray(points)) { + throw new TypeError("First argument should be an array"); + } + points.forEach(point => { + if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) { + throw Error("Each point should be an array of numbers. Each point should have the same amount of numbers."); + } + }); + points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j])); + if (points.length < 2) { + return []; + } + const len = points.length; + const leftTangent = createTangent(points[1], points[0]); + const rightTangent = createTangent(points[len - 2], points[len - 1]); + return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback); +} +function fitCubic(points, leftTangent, rightTangent, error, progressCallback) { + const MaxIterations = 20; + var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i; + if (points.length === 2) { + dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0; + bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]]; + return [bezCurve]; + } + u = chordLengthParameterize(points); + [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback); + if (maxError === 0 || maxError < error) { + return [bezCurve]; + } + if (maxError < error * error) { + uPrime = u; + prevErr = maxError; + prevSplit = splitPoint; + for (i = 0; i < MaxIterations; i++) { + uPrime = reparameterize(bezCurve, points, uPrime); + [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback); + if (maxError < error) { + return [bezCurve]; + } else if (splitPoint === prevSplit) { + let errChange = maxError / prevErr; + if (errChange > .9999 && errChange < 1.0001) { + break; } - } else { - element = document.createElement("div"); - element.textContent = this.data.fieldValue; - element.style.verticalAlign = "middle"; - element.style.display = "table-cell"; } + prevErr = maxError; + prevSplit = splitPoint; + } + } + beziers = []; + centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]); + if (centerVector.every(val => val === 0)) { + centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]); + [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]]; + } + toCenterTangent = maths.normalize(centerVector); + fromCenterTangent = maths.mulItems(toCenterTangent, -1); + beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback)); + beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback)); + return beziers; +} +; +function generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) { + var bezCurve, maxError, splitPoint; + bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback); + [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig); + if (progressCallback) { + progressCallback({ + bez: bezCurve, + points: points, + params: paramsOrig, + maxErr: maxError, + maxPoint: splitPoint + }); + } + return [bezCurve, maxError, splitPoint]; +} +function generateBezier(points, parameters, leftTangent, rightTangent) { + var bezCurve, + A, + a, + C, + X, + det_C0_C1, + det_C0_X, + det_X_C1, + alpha_l, + alpha_r, + epsilon, + segLength, + i, + len, + tmp, + u, + ux, + firstPoint = points[0], + lastPoint = points[points.length - 1]; + bezCurve = [firstPoint, null, null, lastPoint]; + A = maths.zeros_Xx2x2(parameters.length); + for (i = 0, len = parameters.length; i < len; i++) { + u = parameters[i]; + ux = 1 - u; + a = A[i]; + a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux)); + a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u)); + } + C = [[0, 0], [0, 0]]; + X = [0, 0]; + for (i = 0, len = points.length; i < len; i++) { + u = parameters[i]; + a = A[i]; + C[0][0] += maths.dot(a[0], a[0]); + C[0][1] += maths.dot(a[0], a[1]); + C[1][0] += maths.dot(a[0], a[1]); + C[1][1] += maths.dot(a[1], a[1]); + tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u)); + X[0] += maths.dot(a[0], tmp); + X[1] += maths.dot(a[1], tmp); + } + det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1]; + det_C0_X = C[0][0] * X[1] - C[1][0] * X[0]; + det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1]; + alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1; + alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1; + segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint)); + epsilon = 1.0e-6 * segLength; + if (alpha_l < epsilon || alpha_r < epsilon) { + bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0)); + bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0)); + } else { + bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l)); + bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r)); + } + return bezCurve; +} +; +function reparameterize(bezier, points, parameters) { + return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p)); +} +; +function newtonRaphsonRootFind(bez, point, u) { + var d = maths.subtract(bezier.q(bez, u), point), + qprime = bezier.qprime(bez, u), + numerator = maths.mulMatrix(d, qprime), + denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u)); + if (denominator === 0) { + return u; + } else { + return u - numerator / denominator; + } +} +; +function chordLengthParameterize(points) { + var u = [], + currU, + prevU, + prevP; + points.forEach((p, i) => { + currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0; + u.push(currU); + prevU = currU; + prevP = p; + }); + u = u.map(x => x / prevU); + return u; +} +; +function computeMaxError(points, bez, parameters) { + var dist, maxDist, splitPoint, v, i, count, point, t; + maxDist = 0; + splitPoint = Math.floor(points.length / 2); + const t_distMap = mapTtoRelativeDistances(bez, 10); + for (i = 0, count = points.length; i < count; i++) { + point = points[i]; + t = find_t(bez, parameters[i], t_distMap, 10); + v = maths.subtract(bezier.q(bez, t), point); + dist = v[0] * v[0] + v[1] * v[1]; + if (dist > maxDist) { + maxDist = dist; + splitPoint = i; + } + } + return [maxDist, splitPoint]; +} +; +var mapTtoRelativeDistances = function (bez, B_parts) { + var B_t_curr; + var B_t_dist = [0]; + var B_t_prev = bez[0]; + var sumLen = 0; + for (var i = 1; i <= B_parts; i++) { + B_t_curr = bezier.q(bez, i / B_parts); + sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev)); + B_t_dist.push(sumLen); + B_t_prev = B_t_curr; + } + B_t_dist = B_t_dist.map(x => x / sumLen); + return B_t_dist; +}; +function find_t(bez, param, t_distMap, B_parts) { + if (param < 0) { + return 0; + } + if (param > 1) { + return 1; + } + var lenMax, lenMin, tMax, tMin, t; + for (var i = 1; i <= B_parts; i++) { + if (param <= t_distMap[i]) { + tMin = (i - 1) / B_parts; + tMax = i / B_parts; + lenMin = t_distMap[i - 1]; + lenMax = t_distMap[i]; + t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin; + break; + } + } + return t; +} +function createTangent(pointA, pointB) { + return maths.normalize(maths.subtract(pointA, pointB)); +} +class maths { + static zeros_Xx2x2(x) { + var zs = []; + while (x--) { + zs.push([0, 0]); + } + return zs; + } + static mulItems(items, multiplier) { + return items.map(x => x * multiplier); + } + static mulMatrix(m1, m2) { + return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0); + } + static subtract(arr1, arr2) { + return arr1.map((x1, i) => x1 - arr2[i]); + } + static addArrays(arr1, arr2) { + return arr1.map((x1, i) => x1 + arr2[i]); + } + static addItems(items, addition) { + return items.map(x => x + addition); + } + static sum(items) { + return items.reduce((sum, x) => sum + x); + } + static dot(m1, m2) { + return maths.mulMatrix(m1, m2); + } + static vectorLen(v) { + return Math.hypot(...v); + } + static divItems(items, divisor) { + return items.map(x => x / divisor); + } + static squareItems(items) { + return items.map(x => x * x); + } + static normalize(v) { + return this.divItems(v, this.vectorLen(v)); + } +} +class bezier { + static q(ctrlPoly, t) { + var tx = 1.0 - t; + var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx), + pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t), + pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t), + pD = maths.mulItems(ctrlPoly[3], t * t * t); + return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD)); + } + static qprime(ctrlPoly, t) { + var tx = 1.0 - t; + var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx), + pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t), + pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t); + return maths.addArrays(maths.addArrays(pA, pB), pC); + } + static qprimeprime(ctrlPoly, t) { + return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t)); + } +} +module.exports = fitCurve; +module.exports.fitCubic = fitCubic; +module.exports.createTangent = createTangent; - this._setTextStyle(element); +/***/ }), +/* 156 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { - this._setBackgroundColor(element); +"use strict"; - this._setDefaultPropertiesFromJS(element); - this.container.appendChild(element); - return this.container; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayer = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(137); +var _annotation_storage = __w_pdfjs_require__(134); +var _scripting_utils = __w_pdfjs_require__(157); +var _xfa_layer = __w_pdfjs_require__(158); +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { _classCheckPrivateStaticAccess(receiver, classConstructor); return method; } +function _classCheckPrivateStaticAccess(receiver, classConstructor) { if (receiver !== classConstructor) { throw new TypeError("Private static access of wrong provenance"); } } +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; } +const DEFAULT_TAB_INDEX = 1000; +const DEFAULT_FONT_SIZE = 9; +const GetElementsByNameSet = new WeakSet(); +function getRectDims(rect) { + return { + width: rect[2] - rect[0], + height: rect[3] - rect[1] + }; +} +class AnnotationElementFactory { + static create(parameters) { + const subtype = parameters.data.annotationType; + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + case _util.AnnotationType.WIDGET: + const fieldType = parameters.data.fieldType; + switch (fieldType) { + case "Tx": + return new TextWidgetAnnotationElement(parameters); + case "Btn": + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + return new PushButtonWidgetAnnotationElement(parameters); + case "Ch": + return new ChoiceWidgetAnnotationElement(parameters); + } + return new WidgetAnnotationElement(parameters); + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + case _util.AnnotationType.FREETEXT: + return new FreeTextAnnotationElement(parameters); + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + case _util.AnnotationType.CARET: + return new CaretAnnotationElement(parameters); + case _util.AnnotationType.INK: + return new InkAnnotationElement(parameters); + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + default: + return new AnnotationElement(parameters); } - }, { - key: "_setTextStyle", - value: function _setTextStyle(element) { - var TEXT_ALIGNMENT = ["left", "center", "right"]; - var _this$data$defaultApp = this.data.defaultAppearanceData, - fontSize = _this$data$defaultApp.fontSize, - fontColor = _this$data$defaultApp.fontColor; - var style = element.style; - - if (fontSize) { - style.fontSize = "".concat(fontSize, "px"); + } +} +class AnnotationElement { + constructor(parameters) { + let { + isRenderable = false, + ignoreBorder = false, + createQuadrilaterals = false + } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderForms = parameters.renderForms; + this.svgFactory = parameters.svgFactory; + this.annotationStorage = parameters.annotationStorage; + this.enableScripting = parameters.enableScripting; + this.hasJSActions = parameters.hasJSActions; + this._fieldObjects = parameters.fieldObjects; + this._mouseState = parameters.mouseState; + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + if (createQuadrilaterals) { + this.quadrilaterals = this._createQuadrilaterals(ignoreBorder); + } + } + _createContainer() { + let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + const data = this.data, + page = this.page, + viewport = this.viewport; + const container = document.createElement("section"); + const { + width, + height + } = getRectDims(data.rect); + const [pageLLx, pageLLy, pageURx, pageURy] = viewport.viewBox; + const pageWidth = pageURx - pageLLx; + const pageHeight = pageURy - pageLLy; + container.setAttribute("data-annotation-id", data.id); + const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = `${data.borderStyle.width}px`; + const horizontalRadius = data.borderStyle.horizontalCornerRadius; + const verticalRadius = data.borderStyle.verticalCornerRadius; + if (horizontalRadius > 0 || verticalRadius > 0) { + const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`; + container.style.borderRadius = radius; + } else if (this instanceof RadioButtonWidgetAnnotationElement) { + const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`; + container.style.borderRadius = radius; + } + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = "solid"; + break; + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = "dashed"; + break; + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)("Unimplemented border style: beveled"); + break; + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)("Unimplemented border style: inset"); + break; + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = "solid"; + break; + default: + break; } - - style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); - - if (this.data.textAlignment !== null) { - style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + const borderColor = data.borderColor || null; + if (borderColor) { + container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0); + } else { + container.style.borderWidth = 0; } } - }]); - - return TextWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var CheckboxWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem2) { - _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); - - var _super5 = _createSuper(CheckboxWidgetAnnotationElement); - - function CheckboxWidgetAnnotationElement(parameters) { - _classCallCheck(this, CheckboxWidgetAnnotationElement); - - return _super5.call(this, parameters, { - isRenderable: parameters.renderForms - }); + container.style.left = `${100 * (rect[0] - pageLLx) / pageWidth}%`; + container.style.top = `${100 * (rect[1] - pageLLy) / pageHeight}%`; + const { + rotation + } = data; + if (data.hasOwnCanvas || rotation === 0) { + container.style.width = `${100 * width / pageWidth}%`; + container.style.height = `${100 * height / pageHeight}%`; + } else { + this.setRotation(rotation, container); + } + return container; + } + setRotation(angle) { + let container = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.container; + const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox; + const pageWidth = pageURx - pageLLx; + const pageHeight = pageURy - pageLLy; + const { + width, + height + } = getRectDims(this.data.rect); + let elementWidth, elementHeight; + if (angle % 180 === 0) { + elementWidth = 100 * width / pageWidth; + elementHeight = 100 * height / pageHeight; + } else { + elementWidth = 100 * height / pageWidth; + elementHeight = 100 * width / pageHeight; + } + container.style.width = `${elementWidth}%`; + container.style.height = `${elementHeight}%`; + container.setAttribute("data-main-rotation", (360 - angle) % 360); } - - _createClass(CheckboxWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var _this8 = this; - - var storage = this.annotationStorage; - var data = this.data; - var id = data.id; - var value = storage.getValue(id, { - value: data.exportValue === data.fieldValue - }).value; - - if (typeof value === "string") { - value = value !== "Off"; - storage.setValue(id, { - value: value + get _commonActions() { + const setColor = (jsName, styleName, event) => { + const color = event.detail[jsName]; + event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1)); + }; + return (0, _util.shadow)(this, "_commonActions", { + display: event => { + const hidden = event.detail.display % 2 === 1; + this.container.style.visibility = hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden, + print: event.detail.display === 0 || event.detail.display === 3 + }); + }, + print: event => { + this.annotationStorage.setValue(this.data.id, { + print: event.detail.print + }); + }, + hidden: event => { + this.container.style.visibility = event.detail.hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden: event.detail.hidden + }); + }, + focus: event => { + setTimeout(() => event.target.focus({ + preventScroll: false + }), 0); + }, + userName: event => { + event.target.title = event.detail.userName; + }, + readonly: event => { + if (event.detail.readonly) { + event.target.setAttribute("readonly", ""); + } else { + event.target.removeAttribute("readonly"); + } + }, + required: event => { + this._setRequired(event.target, event.detail.required); + }, + bgColor: event => { + setColor("bgColor", "backgroundColor", event); + }, + fillColor: event => { + setColor("fillColor", "backgroundColor", event); + }, + fgColor: event => { + setColor("fgColor", "color", event); + }, + textColor: event => { + setColor("textColor", "color", event); + }, + borderColor: event => { + setColor("borderColor", "borderColor", event); + }, + strokeColor: event => { + setColor("strokeColor", "borderColor", event); + }, + rotation: event => { + const angle = event.detail.rotation; + this.setRotation(angle); + this.annotationStorage.setValue(this.data.id, { + rotation: angle }); } - - this.container.className = "buttonWidgetAnnotation checkBox"; - var element = document.createElement("input"); - GetElementsByNameSet.add(element); - element.disabled = data.readOnly; - element.type = "checkbox"; - element.name = data.fieldName; - - if (value) { - element.setAttribute("checked", true); + }); + } + _dispatchEventFromSandbox(actions, jsEvent) { + const commonActions = this._commonActions; + for (const name of Object.keys(jsEvent.detail)) { + const action = actions[name] || commonActions[name]; + action === null || action === void 0 ? void 0 : action(jsEvent); + } + } + _setDefaultPropertiesFromJS(element) { + if (!this.enableScripting) { + return; + } + const storedData = this.annotationStorage.getRawValue(this.data.id); + if (!storedData) { + return; + } + const commonActions = this._commonActions; + for (const [actionName, detail] of Object.entries(storedData)) { + const action = commonActions[actionName]; + if (action) { + const eventProxy = { + detail: { + [actionName]: detail + }, + target: element + }; + action(eventProxy); + delete storedData[actionName]; } - - element.setAttribute("id", id); - element.setAttribute("exportValue", data.exportValue); - element.tabIndex = DEFAULT_TAB_INDEX; - element.addEventListener("change", function (event) { - var _event$target2 = event.target, - name = _event$target2.name, - checked = _event$target2.checked; - - var _iterator10 = _createForOfIteratorHelper(_this8._getElementsByName(name, id)), - _step10; - - try { - for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) { - var checkbox = _step10.value; - var curChecked = checked && checkbox.exportValue === data.exportValue; - - if (checkbox.domElement) { - checkbox.domElement.checked = curChecked; - } - - storage.setValue(checkbox.id, { - value: curChecked - }); + } + } + _createQuadrilaterals() { + let ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (!this.data.quadPoints) { + return null; + } + const quadrilaterals = []; + const savedRect = this.data.rect; + for (const quadPoint of this.data.quadPoints) { + this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y]; + quadrilaterals.push(this._createContainer(ignoreBorder)); + } + this.data.rect = savedRect; + return quadrilaterals; + } + _createPopup(trigger, data) { + let container = this.container; + if (this.quadrilaterals) { + trigger = trigger || this.quadrilaterals; + container = this.quadrilaterals[0]; + } + if (!trigger) { + trigger = document.createElement("div"); + trigger.className = "popupTriggerArea"; + container.append(trigger); + } + const popupElement = new PopupElement({ + container, + trigger, + color: data.color, + titleObj: data.titleObj, + modificationDate: data.modificationDate, + contentsObj: data.contentsObj, + richText: data.richText, + hideWrapper: true + }); + const popup = popupElement.render(); + popup.style.left = "100%"; + container.append(popup); + } + _renderQuadrilaterals(className) { + for (const quadrilateral of this.quadrilaterals) { + quadrilateral.className = className; + } + return this.quadrilaterals; + } + render() { + (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + } + _getElementsByName(name) { + let skipId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + const fields = []; + if (this._fieldObjects) { + const fieldObj = this._fieldObjects[name]; + if (fieldObj) { + for (const { + page, + id, + exportValues + } of fieldObj) { + if (page === -1) { + continue; + } + if (id === skipId) { + continue; + } + const exportValue = typeof exportValues === "string" ? exportValues : null; + const domElement = document.querySelector(`[data-element-id="${id}"]`); + if (domElement && !GetElementsByNameSet.has(domElement)) { + (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`); + continue; } - } catch (err) { - _iterator10.e(err); - } finally { - _iterator10.f(); + fields.push({ + id, + exportValue, + domElement + }); } - - storage.setValue(id, { - value: checked - }); + } + return fields; + } + for (const domElement of document.getElementsByName(name)) { + const { + exportValue + } = domElement; + const id = domElement.getAttribute("data-element-id"); + if (id === skipId) { + continue; + } + if (!GetElementsByNameSet.has(domElement)) { + continue; + } + fields.push({ + id, + exportValue, + domElement }); - element.addEventListener("resetform", function (event) { - var defaultValue = data.defaultFieldValue || "Off"; - event.target.checked = defaultValue === data.exportValue; + } + return fields; + } + static get platform() { + const platform = typeof navigator !== "undefined" ? navigator.platform : ""; + return (0, _util.shadow)(this, "platform", { + isWin: platform.includes("Win"), + isMac: platform.includes("Mac") + }); + } +} +var _bindSetOCGState = /*#__PURE__*/new WeakSet(); +class LinkAnnotationElement extends AnnotationElement { + constructor(parameters) { + let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + super(parameters, { + isRenderable: true, + ignoreBorder: !!(options !== null && options !== void 0 && options.ignoreBorder), + createQuadrilaterals: true + }); + _classPrivateMethodInitSpec(this, _bindSetOCGState); + this.isTooltipOnly = parameters.data.isTooltipOnly; + } + render() { + const { + data, + linkService + } = this; + const link = document.createElement("a"); + link.setAttribute("data-element-id", data.id); + let isBound = false; + if (data.url) { + linkService.addLinkAttributes(link, data.url, data.newWindow); + isBound = true; + } else if (data.action) { + this._bindNamedAction(link, data.action); + isBound = true; + } else if (data.attachment) { + this._bindAttachment(link, data.attachment); + isBound = true; + } else if (data.setOCGState) { + _classPrivateMethodGet(this, _bindSetOCGState, _bindSetOCGState2).call(this, link, data.setOCGState); + isBound = true; + } else if (data.dest) { + this._bindLink(link, data.dest); + isBound = true; + } else { + if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { + this._bindJSAction(link, data); + isBound = true; + } + if (data.resetForm) { + this._bindResetFormAction(link, data.resetForm); + isBound = true; + } else if (this.isTooltipOnly && !isBound) { + this._bindLink(link, ""); + isBound = true; + } + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("linkAnnotation").map((quadrilateral, index) => { + const linkElement = index === 0 ? link : link.cloneNode(); + quadrilateral.append(linkElement); + return quadrilateral; }); - - if (this.enableScripting && this.hasJSActions) { - element.addEventListener("updatefromsandbox", function (jsEvent) { - var actions = { - value: function value(event) { - event.target.checked = event.detail.value !== "Off"; - storage.setValue(id, { - value: event.target.checked - }); - } - }; - - _this8._dispatchEventFromSandbox(actions, jsEvent); - }); - - this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], function (event) { - return event.target.checked; - }); + } + this.container.className = "linkAnnotation"; + if (isBound) { + this.container.append(link); + } + return this.container; + } + _bindLink(link, destination) { + link.href = this.linkService.getDestinationHash(destination); + link.onclick = () => { + if (destination) { + this.linkService.goToDestination(destination); } - - this._setBackgroundColor(element); - - this._setDefaultPropertiesFromJS(element); - - this.container.appendChild(element); - return this.container; + return false; + }; + if (destination || destination === "") { + link.className = "internalLink"; } - }]); - - return CheckboxWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var RadioButtonWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem3) { - _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); - - var _super6 = _createSuper(RadioButtonWidgetAnnotationElement); - - function RadioButtonWidgetAnnotationElement(parameters) { - _classCallCheck(this, RadioButtonWidgetAnnotationElement); - - return _super6.call(this, parameters, { - isRenderable: parameters.renderForms - }); } - - _createClass(RadioButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var _this9 = this; - - this.container.className = "buttonWidgetAnnotation radioButton"; - var storage = this.annotationStorage; - var data = this.data; - var id = data.id; - var value = storage.getValue(id, { - value: data.fieldValue === data.buttonValue - }).value; - - if (typeof value === "string") { - value = value !== data.buttonValue; - storage.setValue(id, { - value: value - }); + _bindNamedAction(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeNamedAction(action); + return false; + }; + link.className = "internalLink"; + } + _bindAttachment(link, attachment) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + var _this$downloadManager; + (_this$downloadManager = this.downloadManager) === null || _this$downloadManager === void 0 ? void 0 : _this$downloadManager.openOrDownloadData(this.container, attachment.content, attachment.filename); + return false; + }; + link.className = "internalLink"; + } + _bindJSAction(link, data) { + link.href = this.linkService.getAnchorUrl(""); + const map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); + for (const name of Object.keys(data.actions)) { + const jsName = map.get(name); + if (!jsName) { + continue; } - - var element = document.createElement("input"); - GetElementsByNameSet.add(element); - element.disabled = data.readOnly; - element.type = "radio"; - element.name = data.fieldName; - - if (value) { - element.setAttribute("checked", true); + link[jsName] = () => { + var _this$linkService$eve; + (_this$linkService$eve = this.linkService.eventBus) === null || _this$linkService$eve === void 0 ? void 0 : _this$linkService$eve.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: data.id, + name + } + }); + return false; + }; + } + if (!link.onclick) { + link.onclick = () => false; + } + link.className = "internalLink"; + } + _bindResetFormAction(link, resetForm) { + const otherClickAction = link.onclick; + if (!otherClickAction) { + link.href = this.linkService.getAnchorUrl(""); + } + link.className = "internalLink"; + if (!this._fieldObjects) { + (0, _util.warn)(`_bindResetFormAction - "resetForm" action not supported, ` + "ensure that the `fieldObjects` parameter is provided."); + if (!otherClickAction) { + link.onclick = () => false; } - - element.setAttribute("id", id); - element.tabIndex = DEFAULT_TAB_INDEX; - element.addEventListener("change", function (event) { - var _event$target3 = event.target, - name = _event$target3.name, - checked = _event$target3.checked; - - var _iterator11 = _createForOfIteratorHelper(_this9._getElementsByName(name, id)), - _step11; - - try { - for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) { - var radio = _step11.value; - storage.setValue(radio.id, { - value: false - }); + return; + } + link.onclick = () => { + otherClickAction === null || otherClickAction === void 0 ? void 0 : otherClickAction(); + const { + fields: resetFormFields, + refs: resetFormRefs, + include + } = resetForm; + const allFields = []; + if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) { + const fieldIds = new Set(resetFormRefs); + for (const fieldName of resetFormFields) { + const fields = this._fieldObjects[fieldName] || []; + for (const { + id + } of fields) { + fieldIds.add(id); } - } catch (err) { - _iterator11.e(err); - } finally { - _iterator11.f(); } - - storage.setValue(id, { - value: checked - }); - }); - element.addEventListener("resetform", function (event) { - var defaultValue = data.defaultFieldValue; - event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue; - }); - - if (this.enableScripting && this.hasJSActions) { - var pdfButtonValue = data.buttonValue; - element.addEventListener("updatefromsandbox", function (jsEvent) { - var actions = { - value: function value(event) { - var checked = pdfButtonValue === event.detail.value; - - var _iterator12 = _createForOfIteratorHelper(_this9._getElementsByName(event.target.name)), - _step12; - - try { - for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) { - var radio = _step12.value; - var curChecked = checked && radio.id === id; - - if (radio.domElement) { - radio.domElement.checked = curChecked; - } - - storage.setValue(radio.id, { - value: curChecked - }); - } - } catch (err) { - _iterator12.e(err); - } finally { - _iterator12.f(); - } + for (const fields of Object.values(this._fieldObjects)) { + for (const field of fields) { + if (fieldIds.has(field.id) === include) { + allFields.push(field); } - }; - - _this9._dispatchEventFromSandbox(actions, jsEvent); + } + } + } else { + for (const fields of Object.values(this._fieldObjects)) { + allFields.push(...fields); + } + } + const storage = this.annotationStorage; + const allIds = []; + for (const field of allFields) { + const { + id + } = field; + allIds.push(id); + switch (field.type) { + case "text": + { + const value = field.defaultValue || ""; + storage.setValue(id, { + value + }); + break; + } + case "checkbox": + case "radiobutton": + { + const value = field.defaultValue === field.exportValues; + storage.setValue(id, { + value + }); + break; + } + case "combobox": + case "listbox": + { + const value = field.defaultValue || ""; + storage.setValue(id, { + value + }); + break; + } + default: + continue; + } + const domElement = document.querySelector(`[data-element-id="${id}"]`); + if (!domElement) { + continue; + } else if (!GetElementsByNameSet.has(domElement)) { + (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`); + continue; + } + domElement.dispatchEvent(new Event("resetform")); + } + if (this.enableScripting) { + var _this$linkService$eve2; + (_this$linkService$eve2 = this.linkService.eventBus) === null || _this$linkService$eve2 === void 0 ? void 0 : _this$linkService$eve2.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: "app", + ids: allIds, + name: "ResetForm" + } + }); + } + return false; + }; + } +} +function _bindSetOCGState2(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeSetOCGState(action); + return false; + }; + link.className = "internalLink"; +} +class TextAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl, _parameters$data$cont, _parameters$data$rich; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl = parameters.data.titleObj) !== null && _parameters$data$titl !== void 0 && _parameters$data$titl.str || (_parameters$data$cont = parameters.data.contentsObj) !== null && _parameters$data$cont !== void 0 && _parameters$data$cont.str || (_parameters$data$rich = parameters.data.richText) !== null && _parameters$data$rich !== void 0 && _parameters$data$rich.str); + super(parameters, { + isRenderable + }); + } + render() { + this.container.className = "textAnnotation"; + const image = document.createElement("img"); + image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; + image.alt = "[{{type}} Annotation]"; + image.dataset.l10nId = "text_annotation_type"; + image.dataset.l10nArgs = JSON.stringify({ + type: this.data.name + }); + if (!this.data.hasPopup) { + this._createPopup(image, this.data); + } + this.container.append(image); + return this.container; + } +} +class WidgetAnnotationElement extends AnnotationElement { + render() { + if (this.data.alternativeText) { + this.container.title = this.data.alternativeText; + } + return this.container; + } + _getKeyModifier(event) { + const { + isWin, + isMac + } = AnnotationElement.platform; + return isWin && event.ctrlKey || isMac && event.metaKey; + } + _setEventListener(element, baseName, eventName, valueGetter) { + if (baseName.includes("mouse")) { + element.addEventListener(baseName, event => { + var _this$linkService$eve3; + (_this$linkService$eve3 = this.linkService.eventBus) === null || _this$linkService$eve3 === void 0 ? void 0 : _this$linkService$eve3.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event), + shift: event.shiftKey, + modifier: this._getKeyModifier(event) + } }); - - this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], function (event) { - return event.target.checked; + }); + } else { + element.addEventListener(baseName, event => { + var _this$linkService$eve4; + (_this$linkService$eve4 = this.linkService.eventBus) === null || _this$linkService$eve4 === void 0 ? void 0 : _this$linkService$eve4.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event) + } }); - } - - this._setBackgroundColor(element); - - this._setDefaultPropertiesFromJS(element); - - this.container.appendChild(element); - return this.container; + }); } - }]); - - return RadioButtonWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PushButtonWidgetAnnotationElement = /*#__PURE__*/function (_LinkAnnotationElemen) { - _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); - - var _super7 = _createSuper(PushButtonWidgetAnnotationElement); - - function PushButtonWidgetAnnotationElement(parameters) { - _classCallCheck(this, PushButtonWidgetAnnotationElement); - - return _super7.call(this, parameters, { - ignoreBorder: parameters.data.hasAppearance + } + _setEventListeners(element, names, getter) { + for (const [baseName, eventName] of names) { + var _this$data$actions; + if (eventName === "Action" || (_this$data$actions = this.data.actions) !== null && _this$data$actions !== void 0 && _this$data$actions[eventName]) { + this._setEventListener(element, baseName, eventName, getter); + } + } + } + _setBackgroundColor(element) { + const color = this.data.backgroundColor || null; + element.style.backgroundColor = color === null ? "transparent" : _util.Util.makeHexColor(color[0], color[1], color[2]); + } + _setTextStyle(element) { + const TEXT_ALIGNMENT = ["left", "center", "right"]; + const { + fontColor + } = this.data.defaultAppearanceData; + const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE; + const style = element.style; + let computedFontSize; + const BORDER_SIZE = 2; + const roundToOneDecimal = x => Math.round(10 * x) / 10; + if (this.data.multiLine) { + const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); + const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1; + const lineHeight = height / numberOfLines; + computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR)); + } else { + const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); + computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR)); + } + style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`; + style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); + if (this.data.textAlignment !== null) { + style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + } + _setRequired(element, isRequired) { + if (isRequired) { + element.setAttribute("required", true); + } else { + element.removeAttribute("required"); + } + element.setAttribute("aria-required", isRequired); + } +} +class TextWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + super(parameters, { + isRenderable }); } - - _createClass(PushButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); - - container.className = "buttonWidgetAnnotation pushButton"; - - if (this.data.alternativeText) { - container.title = this.data.alternativeText; + setPropertyOnSiblings(base, key, value, keyInStorage) { + const storage = this.annotationStorage; + for (const element of this._getElementsByName(base.name, base.id)) { + if (element.domElement) { + element.domElement[key] = value; } - - this._setDefaultPropertiesFromJS(container); - - return container; + storage.setValue(element.id, { + [keyInStorage]: value + }); } - }]); - - return PushButtonWidgetAnnotationElement; -}(LinkAnnotationElement); - -var ChoiceWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem4) { - _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); - - var _super8 = _createSuper(ChoiceWidgetAnnotationElement); - - function ChoiceWidgetAnnotationElement(parameters) { - _classCallCheck(this, ChoiceWidgetAnnotationElement); - - return _super8.call(this, parameters, { - isRenderable: parameters.renderForms - }); } - - _createClass(ChoiceWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var _this10 = this; - - this.container.className = "choiceWidgetAnnotation"; - var storage = this.annotationStorage; - var id = this.data.id; - var storedData = storage.getValue(id, { + render() { + const storage = this.annotationStorage; + const id = this.data.id; + this.container.className = "textWidgetAnnotation"; + let element = null; + if (this.renderForms) { + const storedData = storage.getValue(id, { value: this.data.fieldValue }); - var fontSize = this.data.defaultAppearanceData.fontSize; - - if (!fontSize) { - fontSize = 9; - } - - var fontSizeStyle = "calc(".concat(fontSize, "px * var(--zoom-factor))"); - var selectElement = document.createElement("select"); - GetElementsByNameSet.add(selectElement); - selectElement.disabled = this.data.readOnly; - selectElement.name = this.data.fieldName; - selectElement.setAttribute("id", id); - selectElement.tabIndex = DEFAULT_TAB_INDEX; - selectElement.style.fontSize = "".concat(fontSize, "px"); - - if (!this.data.combo) { - selectElement.size = this.data.options.length; - - if (this.data.multiSelect) { - selectElement.multiple = true; - } - } - - selectElement.addEventListener("resetform", function (event) { - var defaultValue = _this10.data.defaultFieldValue; - - var _iterator13 = _createForOfIteratorHelper(selectElement.options), - _step13; - - try { - for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) { - var option = _step13.value; - option.selected = option.value === defaultValue; - } - } catch (err) { - _iterator13.e(err); - } finally { - _iterator13.f(); + let textContent = storedData.formattedValue || storedData.value || ""; + const maxLen = storage.getValue(id, { + charLimit: this.data.maxLen + }).charLimit; + if (maxLen && textContent.length > maxLen) { + textContent = textContent.slice(0, maxLen); + } + const elementData = { + userValue: textContent, + formattedValue: null, + valueOnFocus: "" + }; + if (this.data.multiLine) { + element = document.createElement("textarea"); + element.textContent = textContent; + if (this.data.doNotScroll) { + element.style.overflowY = "hidden"; } - }); - - var _iterator14 = _createForOfIteratorHelper(this.data.options), - _step14; - - try { - for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) { - var option = _step14.value; - var optionElement = document.createElement("option"); - optionElement.textContent = option.displayValue; - optionElement.value = option.exportValue; - - if (this.data.combo) { - optionElement.style.fontSize = fontSizeStyle; - } - - if (storedData.value.includes(option.exportValue)) { - optionElement.setAttribute("selected", true); - } - - selectElement.appendChild(optionElement); + } else { + element = document.createElement("input"); + element.type = "text"; + element.setAttribute("value", textContent); + if (this.data.doNotScroll) { + element.style.overflowX = "hidden"; } - } catch (err) { - _iterator14.e(err); - } finally { - _iterator14.f(); } - - var getValue = function getValue(event, isExport) { - var name = isExport ? "value" : "textContent"; - var options = event.target.options; - - if (!event.target.multiple) { - return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; - } - - return Array.prototype.filter.call(options, function (option) { - return option.selected; - }).map(function (option) { - return option[name]; - }); - }; - - var getItems = function getItems(event) { - var options = event.target.options; - return Array.prototype.map.call(options, function (option) { - return { - displayValue: option.textContent, - exportValue: option.value - }; + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = this.data.readOnly; + element.name = this.data.fieldName; + element.tabIndex = DEFAULT_TAB_INDEX; + this._setRequired(element, this.data.required); + if (maxLen) { + element.maxLength = maxLen; + } + element.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value }); + this.setPropertyOnSiblings(element, "value", event.target.value, "value"); + }); + element.addEventListener("resetform", event => { + const defaultValue = this.data.defaultFieldValue ?? ""; + element.value = elementData.userValue = defaultValue; + elementData.formattedValue = null; + }); + let blurListener = event => { + const { + formattedValue + } = elementData; + if (formattedValue !== null && formattedValue !== undefined) { + event.target.value = formattedValue; + } + event.target.scrollLeft = 0; }; - if (this.enableScripting && this.hasJSActions) { - selectElement.addEventListener("updatefromsandbox", function (jsEvent) { - var actions = { - value: function value(event) { - var value = event.detail.value; - var values = new Set(Array.isArray(value) ? value : [value]); - - var _iterator15 = _createForOfIteratorHelper(selectElement.options), - _step15; - - try { - for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) { - var option = _step15.value; - option.selected = values.has(option.value); - } - } catch (err) { - _iterator15.e(err); - } finally { - _iterator15.f(); - } - - storage.setValue(id, { - value: getValue(event, true) - }); - }, - multipleSelection: function multipleSelection(event) { - selectElement.multiple = true; - }, - remove: function remove(event) { - var options = selectElement.options; - var index = event.detail.remove; - options[index].selected = false; - selectElement.remove(index); - - if (options.length > 0) { - var i = Array.prototype.findIndex.call(options, function (option) { - return option.selected; - }); - - if (i === -1) { - options[0].selected = true; - } - } - + var _this$data$actions2; + element.addEventListener("focus", event => { + if (elementData.userValue) { + event.target.value = elementData.userValue; + } + elementData.valueOnFocus = event.target.value; + }); + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + elementData.userValue = event.detail.value ?? ""; storage.setValue(id, { - value: getValue(event, true), - items: getItems(event) + value: elementData.userValue.toString() }); + event.target.value = elementData.userValue; }, - clear: function clear(event) { - while (selectElement.length !== 0) { - selectElement.remove(0); + formattedValue(event) { + const { + formattedValue + } = event.detail; + elementData.formattedValue = formattedValue; + if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) { + event.target.value = formattedValue; } - storage.setValue(id, { - value: null, - items: [] + formattedValue }); }, - insert: function insert(event) { - var _event$detail$insert = event.detail.insert, - index = _event$detail$insert.index, - displayValue = _event$detail$insert.displayValue, - exportValue = _event$detail$insert.exportValue; - var optionElement = document.createElement("option"); - optionElement.textContent = displayValue; - optionElement.value = exportValue; - selectElement.insertBefore(optionElement, selectElement.children[index]); - storage.setValue(id, { - value: getValue(event, true), - items: getItems(event) - }); + selRange(event) { + event.target.setSelectionRange(...event.detail.selRange); }, - items: function items(event) { - var items = event.detail.items; - - while (selectElement.length !== 0) { - selectElement.remove(0); - } - - var _iterator16 = _createForOfIteratorHelper(items), - _step16; - - try { - for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) { - var item = _step16.value; - var displayValue = item.displayValue, - exportValue = item.exportValue; - var optionElement = document.createElement("option"); - optionElement.textContent = displayValue; - optionElement.value = exportValue; - selectElement.appendChild(optionElement); - } - } catch (err) { - _iterator16.e(err); - } finally { - _iterator16.f(); + charLimit: event => { + var _this$linkService$eve5; + const { + charLimit + } = event.detail; + const { + target + } = event; + if (charLimit === 0) { + target.removeAttribute("maxLength"); + return; } - - if (selectElement.options.length > 0) { - selectElement.options[0].selected = true; + target.setAttribute("maxLength", charLimit); + let value = elementData.userValue; + if (!value || value.length <= charLimit) { + return; } - + value = value.slice(0, charLimit); + target.value = elementData.userValue = value; storage.setValue(id, { - value: getValue(event, true), - items: getItems(event) + value }); - }, - indices: function indices(event) { - var indices = new Set(event.detail.indices); - - var _iterator17 = _createForOfIteratorHelper(event.target.options), - _step17; - - try { - for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) { - var option = _step17.value; - option.selected = indices.has(option.index); + (_this$linkService$eve5 = this.linkService.eventBus) === null || _this$linkService$eve5 === void 0 ? void 0 : _this$linkService$eve5.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey: 1, + selStart: target.selectionStart, + selEnd: target.selectionEnd } - } catch (err) { - _iterator17.e(err); - } finally { - _iterator17.f(); - } - - storage.setValue(id, { - value: getValue(event, true) }); - }, - editable: function editable(event) { - event.target.disabled = !event.detail.editable; } }; - - _this10._dispatchEventFromSandbox(actions, jsEvent); + this._dispatchEventFromSandbox(actions, jsEvent); }); - selectElement.addEventListener("input", function (event) { - var _this10$linkService$e; - - var exportValue = getValue(event, true); - var value = getValue(event, false); - storage.setValue(id, { - value: exportValue - }); - (_this10$linkService$e = _this10.linkService.eventBus) === null || _this10$linkService$e === void 0 ? void 0 : _this10$linkService$e.dispatch("dispatcheventinsandbox", { - source: _this10, + element.addEventListener("keydown", event => { + var _this$linkService$eve6; + let commitKey = -1; + if (event.key === "Escape") { + commitKey = 0; + } else if (event.key === "Enter" && !this.data.multiLine) { + commitKey = 2; + } else if (event.key === "Tab") { + commitKey = 3; + } + if (commitKey === -1) { + return; + } + const { + value + } = event.target; + if (elementData.valueOnFocus === value) { + return; + } + elementData.userValue = value; + (_this$linkService$eve6 = this.linkService.eventBus) === null || _this$linkService$eve6 === void 0 ? void 0 : _this$linkService$eve6.dispatch("dispatcheventinsandbox", { + source: this, detail: { - id: id, + id, name: "Keystroke", - value: value, - changeEx: exportValue, + value, willCommit: true, - commitKey: 1, - keyDown: false + commitKey, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd } }); }); - - this._setEventListeners(selectElement, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"]], function (event) { - return event.target.checked; + const _blurListener = blurListener; + blurListener = null; + element.addEventListener("blur", event => { + const { + value + } = event.target; + elementData.userValue = value; + if (this._mouseState.isDown && elementData.valueOnFocus !== value) { + var _this$linkService$eve7; + (_this$linkService$eve7 = this.linkService.eventBus) === null || _this$linkService$eve7 === void 0 ? void 0 : _this$linkService$eve7.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey: 1, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + } + _blurListener(event); }); - } else { - selectElement.addEventListener("input", function (event) { - storage.setValue(id, { - value: getValue(event, true) + if ((_this$data$actions2 = this.data.actions) !== null && _this$data$actions2 !== void 0 && _this$data$actions2.Keystroke) { + element.addEventListener("beforeinput", event => { + var _this$linkService$eve8; + const { + data, + target + } = event; + const { + value, + selectionStart, + selectionEnd + } = target; + let selStart = selectionStart, + selEnd = selectionEnd; + switch (event.inputType) { + case "deleteWordBackward": + { + const match = value.substring(0, selectionStart).match(/\w*[^\w]*$/); + if (match) { + selStart -= match[0].length; + } + break; + } + case "deleteWordForward": + { + const match = value.substring(selectionStart).match(/^[^\w]*\w*/); + if (match) { + selEnd += match[0].length; + } + break; + } + case "deleteContentBackward": + if (selectionStart === selectionEnd) { + selStart -= 1; + } + break; + case "deleteContentForward": + if (selectionStart === selectionEnd) { + selEnd += 1; + } + break; + } + event.preventDefault(); + (_this$linkService$eve8 = this.linkService.eventBus) === null || _this$linkService$eve8 === void 0 ? void 0 : _this$linkService$eve8.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + change: data || "", + willCommit: false, + selStart, + selEnd + } + }); }); + } + this._setEventListeners(element, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.value); + } + if (blurListener) { + element.addEventListener("blur", blurListener); + } + if (this.data.comb) { + const fieldWidth = this.data.rect[2] - this.data.rect[0]; + const combWidth = fieldWidth / maxLen; + element.classList.add("comb"); + element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`; + } + } else { + element = document.createElement("div"); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = "middle"; + element.style.display = "table-cell"; + } + this._setTextStyle(element); + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.exportValue === data.fieldValue + }).value; + if (typeof value === "string") { + value = value !== "Off"; + storage.setValue(id, { + value + }); + } + this.container.className = "buttonWidgetAnnotation checkBox"; + const element = document.createElement("input"); + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = data.readOnly; + this._setRequired(element, this.data.required); + element.type = "checkbox"; + element.name = data.fieldName; + if (value) { + element.setAttribute("checked", true); + } + element.setAttribute("exportValue", data.exportValue); + element.tabIndex = DEFAULT_TAB_INDEX; + element.addEventListener("change", event => { + const { + name, + checked + } = event.target; + for (const checkbox of this._getElementsByName(name, id)) { + const curChecked = checked && checkbox.exportValue === data.exportValue; + if (checkbox.domElement) { + checkbox.domElement.checked = curChecked; + } + storage.setValue(checkbox.id, { + value: curChecked + }); + } + storage.setValue(id, { + value: checked + }); + }); + element.addEventListener("resetform", event => { + const defaultValue = data.defaultFieldValue || "Off"; + event.target.checked = defaultValue === data.exportValue; + }); + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + event.target.checked = event.detail.value !== "Off"; + storage.setValue(id, { + value: event.target.checked + }); + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + this.container.className = "buttonWidgetAnnotation radioButton"; + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.fieldValue === data.buttonValue + }).value; + if (typeof value === "string") { + value = value !== data.buttonValue; + storage.setValue(id, { + value + }); + } + const element = document.createElement("input"); + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = data.readOnly; + this._setRequired(element, this.data.required); + element.type = "radio"; + element.name = data.fieldName; + if (value) { + element.setAttribute("checked", true); + } + element.tabIndex = DEFAULT_TAB_INDEX; + element.addEventListener("change", event => { + const { + name, + checked + } = event.target; + for (const radio of this._getElementsByName(name, id)) { + storage.setValue(radio.id, { + value: false + }); + } + storage.setValue(id, { + value: checked + }); + }); + element.addEventListener("resetform", event => { + const defaultValue = data.defaultFieldValue; + event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue; + }); + if (this.enableScripting && this.hasJSActions) { + const pdfButtonValue = data.buttonValue; + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value: event => { + const checked = pdfButtonValue === event.detail.value; + for (const radio of this._getElementsByName(event.target.name)) { + const curChecked = checked && radio.id === id; + if (radio.domElement) { + radio.domElement.checked = curChecked; + } + storage.setValue(radio.id, { + value: curChecked + }); + } + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { + constructor(parameters) { + super(parameters, { + ignoreBorder: parameters.data.hasAppearance + }); + } + render() { + const container = super.render(); + container.className = "buttonWidgetAnnotation pushButton"; + if (this.data.alternativeText) { + container.title = this.data.alternativeText; + } + const linkElement = container.lastChild; + if (this.enableScripting && this.hasJSActions && linkElement) { + this._setDefaultPropertiesFromJS(linkElement); + linkElement.addEventListener("updatefromsandbox", jsEvent => { + this._dispatchEventFromSandbox({}, jsEvent); + }); + } + return container; + } +} +class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + this.container.className = "choiceWidgetAnnotation"; + const storage = this.annotationStorage; + const id = this.data.id; + const storedData = storage.getValue(id, { + value: this.data.fieldValue + }); + const selectElement = document.createElement("select"); + GetElementsByNameSet.add(selectElement); + selectElement.setAttribute("data-element-id", id); + selectElement.disabled = this.data.readOnly; + this._setRequired(selectElement, this.data.required); + selectElement.name = this.data.fieldName; + selectElement.tabIndex = DEFAULT_TAB_INDEX; + let addAnEmptyEntry = this.data.combo && this.data.options.length > 0; + if (!this.data.combo) { + selectElement.size = this.data.options.length; + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + selectElement.addEventListener("resetform", event => { + const defaultValue = this.data.defaultFieldValue; + for (const option of selectElement.options) { + option.selected = option.value === defaultValue; + } + }); + for (const option of this.data.options) { + const optionElement = document.createElement("option"); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + if (storedData.value.includes(option.exportValue)) { + optionElement.setAttribute("selected", true); + addAnEmptyEntry = false; + } + selectElement.append(optionElement); + } + let removeEmptyEntry = null; + if (addAnEmptyEntry) { + const noneOptionElement = document.createElement("option"); + noneOptionElement.value = " "; + noneOptionElement.setAttribute("hidden", true); + noneOptionElement.setAttribute("selected", true); + selectElement.prepend(noneOptionElement); + removeEmptyEntry = () => { + noneOptionElement.remove(); + selectElement.removeEventListener("input", removeEmptyEntry); + removeEmptyEntry = null; + }; + selectElement.addEventListener("input", removeEmptyEntry); + } + const getValue = (event, isExport) => { + const name = isExport ? "value" : "textContent"; + const options = event.target.options; + if (!event.target.multiple) { + return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; + } + return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]); + }; + const getItems = event => { + const options = event.target.options; + return Array.prototype.map.call(options, option => { + return { + displayValue: option.textContent, + exportValue: option.value + }; + }); + }; + if (this.enableScripting && this.hasJSActions) { + selectElement.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + var _removeEmptyEntry; + (_removeEmptyEntry = removeEmptyEntry) === null || _removeEmptyEntry === void 0 ? void 0 : _removeEmptyEntry(); + const value = event.detail.value; + const values = new Set(Array.isArray(value) ? value : [value]); + for (const option of selectElement.options) { + option.selected = values.has(option.value); + } + storage.setValue(id, { + value: getValue(event, true) + }); + }, + multipleSelection(event) { + selectElement.multiple = true; + }, + remove(event) { + const options = selectElement.options; + const index = event.detail.remove; + options[index].selected = false; + selectElement.remove(index); + if (options.length > 0) { + const i = Array.prototype.findIndex.call(options, option => option.selected); + if (i === -1) { + options[0].selected = true; + } + } + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + clear(event) { + while (selectElement.length !== 0) { + selectElement.remove(0); + } + storage.setValue(id, { + value: null, + items: [] + }); + }, + insert(event) { + const { + index, + displayValue, + exportValue + } = event.detail.insert; + const selectChild = selectElement.children[index]; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + if (selectChild) { + selectChild.before(optionElement); + } else { + selectElement.append(optionElement); + } + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + items(event) { + const { + items + } = event.detail; + while (selectElement.length !== 0) { + selectElement.remove(0); + } + for (const item of items) { + const { + displayValue, + exportValue + } = item; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + selectElement.append(optionElement); + } + if (selectElement.options.length > 0) { + selectElement.options[0].selected = true; + } + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + indices(event) { + const indices = new Set(event.detail.indices); + for (const option of event.target.options) { + option.selected = indices.has(option.index); + } + storage.setValue(id, { + value: getValue(event, true) + }); + }, + editable(event) { + event.target.disabled = !event.detail.editable; + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + selectElement.addEventListener("input", event => { + var _this$linkService$eve9; + const exportValue = getValue(event, true); + const value = getValue(event, false); + storage.setValue(id, { + value: exportValue + }); + (_this$linkService$eve9 = this.linkService.eventBus) === null || _this$linkService$eve9 === void 0 ? void 0 : _this$linkService$eve9.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + changeEx: exportValue, + willCommit: true, + commitKey: 1, + keyDown: false + } + }); + }); + this._setEventListeners(selectElement, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"]], event => event.target.checked); + } else { + selectElement.addEventListener("input", function (event) { + storage.setValue(id, { + value: getValue(event, true) }); - } - - this._setBackgroundColor(selectElement); - - this._setDefaultPropertiesFromJS(selectElement); - - this.container.appendChild(selectElement); - return this.container; + }); } - }]); - - return ChoiceWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PopupAnnotationElement = /*#__PURE__*/function (_AnnotationElement4) { - _inherits(PopupAnnotationElement, _AnnotationElement4); - - var _super9 = _createSuper(PopupAnnotationElement); - - function PopupAnnotationElement(parameters) { - var _parameters$data$titl2, _parameters$data$cont2, _parameters$data$rich2; - - _classCallCheck(this, PopupAnnotationElement); - - var isRenderable = !!((_parameters$data$titl2 = parameters.data.titleObj) !== null && _parameters$data$titl2 !== void 0 && _parameters$data$titl2.str || (_parameters$data$cont2 = parameters.data.contentsObj) !== null && _parameters$data$cont2 !== void 0 && _parameters$data$cont2.str || (_parameters$data$rich2 = parameters.data.richText) !== null && _parameters$data$rich2 !== void 0 && _parameters$data$rich2.str); - return _super9.call(this, parameters, { - isRenderable: isRenderable + if (this.data.combo) { + this._setTextStyle(selectElement); + } else {} + this._setBackgroundColor(selectElement); + this._setDefaultPropertiesFromJS(selectElement); + this.container.append(selectElement); + return this.container; + } +} +class PopupAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _data$titleObj, _data$contentsObj, _data$richText; + const { + data + } = parameters; + const isRenderable = !PopupAnnotationElement.IGNORE_TYPES.has(data.parentType) && !!((_data$titleObj = data.titleObj) !== null && _data$titleObj !== void 0 && _data$titleObj.str || (_data$contentsObj = data.contentsObj) !== null && _data$contentsObj !== void 0 && _data$contentsObj.str || (_data$richText = data.richText) !== null && _data$richText !== void 0 && _data$richText.str); + super(parameters, { + isRenderable }); } - - _createClass(PopupAnnotationElement, [{ - key: "render", - value: function render() { - var IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"]; - this.container.className = "popupAnnotation"; - - if (IGNORE_TYPES.includes(this.data.parentType)) { - return this.container; - } - - var selector = "[data-annotation-id=\"".concat(this.data.parentId, "\"]"); - var parentElements = this.layer.querySelectorAll(selector); - - if (parentElements.length === 0) { - return this.container; - } - - var popup = new PopupElement({ - container: this.container, - trigger: Array.from(parentElements), - color: this.data.color, - titleObj: this.data.titleObj, - modificationDate: this.data.modificationDate, - contentsObj: this.data.contentsObj, - richText: this.data.richText - }); - var page = this.page; - - var rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]); - - var popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0]; - var popupTop = rect[1]; - this.container.style.transformOrigin = "".concat(-popupLeft, "px ").concat(-popupTop, "px"); - this.container.style.left = "".concat(popupLeft, "px"); - this.container.style.top = "".concat(popupTop, "px"); - this.container.appendChild(popup.render()); + render() { + this.container.className = "popupAnnotation"; + const parentElements = this.layer.querySelectorAll(`[data-annotation-id="${this.data.parentId}"]`); + if (parentElements.length === 0) { return this.container; } - }]); - - return PopupAnnotationElement; -}(AnnotationElement); - -var PopupElement = /*#__PURE__*/function () { - function PopupElement(parameters) { - _classCallCheck(this, PopupElement); - + const popup = new PopupElement({ + container: this.container, + trigger: Array.from(parentElements), + color: this.data.color, + titleObj: this.data.titleObj, + modificationDate: this.data.modificationDate, + contentsObj: this.data.contentsObj, + richText: this.data.richText + }); + const page = this.page; + const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]); + const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0]; + const popupTop = rect[1]; + const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox; + const pageWidth = pageURx - pageLLx; + const pageHeight = pageURy - pageLLy; + this.container.style.left = `${100 * (popupLeft - pageLLx) / pageWidth}%`; + this.container.style.top = `${100 * (popupTop - pageLLy) / pageHeight}%`; + this.container.append(popup.render()); + return this.container; + } +} +_defineProperty(PopupAnnotationElement, "IGNORE_TYPES", new Set(["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"])); +class PopupElement { + constructor(parameters) { this.container = parameters.container; this.trigger = parameters.trigger; this.color = parameters.color; @@ -18871,988 +15770,586 @@ var PopupElement = /*#__PURE__*/function () { this.hideWrapper = parameters.hideWrapper || false; this.pinned = false; } - - _createClass(PopupElement, [{ - key: "render", - value: function render() { - var _this$richText, _this$contentsObj; - - var BACKGROUND_ENLIGHT = 0.7; - var wrapper = document.createElement("div"); - wrapper.className = "popupWrapper"; - this.hideElement = this.hideWrapper ? wrapper : this.container; - this.hideElement.hidden = true; - var popup = document.createElement("div"); - popup.className = "popup"; - var color = this.color; - - if (color) { - var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; - var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; - var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; - popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0); - } - - var title = document.createElement("h1"); - title.dir = this.titleObj.dir; - title.textContent = this.titleObj.str; - popup.appendChild(title); - - var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); - - if (dateObject) { - var modificationDate = document.createElement("span"); - modificationDate.className = "popupDate"; - modificationDate.textContent = "{{date}}, {{time}}"; - modificationDate.dataset.l10nId = "annotation_date_string"; - modificationDate.dataset.l10nArgs = JSON.stringify({ - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }); - popup.appendChild(modificationDate); - } - - if ((_this$richText = this.richText) !== null && _this$richText !== void 0 && _this$richText.str && (!((_this$contentsObj = this.contentsObj) !== null && _this$contentsObj !== void 0 && _this$contentsObj.str) || this.contentsObj.str === this.richText.str)) { - _xfa_layer.XfaLayer.render({ - xfaHtml: this.richText.html, - intent: "richText", - div: popup - }); - - popup.lastChild.className = "richText popupContent"; - } else { - var contents = this._formatContents(this.contentsObj); - - popup.appendChild(contents); - } - - if (!Array.isArray(this.trigger)) { - this.trigger = [this.trigger]; - } - - var _iterator18 = _createForOfIteratorHelper(this.trigger), - _step18; - - try { - for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) { - var element = _step18.value; - element.addEventListener("click", this._toggle.bind(this)); - element.addEventListener("mouseover", this._show.bind(this, false)); - element.addEventListener("mouseout", this._hide.bind(this, false)); - } - } catch (err) { - _iterator18.e(err); - } finally { - _iterator18.f(); - } - - popup.addEventListener("click", this._hide.bind(this, true)); - wrapper.appendChild(popup); - return wrapper; - } - }, { - key: "_formatContents", - value: function _formatContents(_ref2) { - var str = _ref2.str, - dir = _ref2.dir; - var p = document.createElement("p"); - p.className = "popupContent"; - p.dir = dir; - var lines = str.split(/(?:\r\n?|\n)/); - - for (var i = 0, ii = lines.length; i < ii; ++i) { - var line = lines[i]; - p.appendChild(document.createTextNode(line)); - - if (i < ii - 1) { - p.appendChild(document.createElement("br")); - } - } - - return p; + render() { + var _this$richText, _this$contentsObj; + const BACKGROUND_ENLIGHT = 0.7; + const wrapper = document.createElement("div"); + wrapper.className = "popupWrapper"; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.hidden = true; + const popup = document.createElement("div"); + popup.className = "popup"; + const color = this.color; + if (color) { + const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0); + } + const title = document.createElement("h1"); + title.dir = this.titleObj.dir; + title.textContent = this.titleObj.str; + popup.append(title); + const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); + if (dateObject) { + const modificationDate = document.createElement("span"); + modificationDate.className = "popupDate"; + modificationDate.textContent = "{{date}}, {{time}}"; + modificationDate.dataset.l10nId = "annotation_date_string"; + modificationDate.dataset.l10nArgs = JSON.stringify({ + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + popup.append(modificationDate); } - }, { - key: "_toggle", - value: function _toggle() { - if (this.pinned) { - this._hide(true); - } else { - this._show(true); - } + if ((_this$richText = this.richText) !== null && _this$richText !== void 0 && _this$richText.str && (!((_this$contentsObj = this.contentsObj) !== null && _this$contentsObj !== void 0 && _this$contentsObj.str) || this.contentsObj.str === this.richText.str)) { + _xfa_layer.XfaLayer.render({ + xfaHtml: this.richText.html, + intent: "richText", + div: popup + }); + popup.lastChild.className = "richText popupContent"; + } else { + const contents = this._formatContents(this.contentsObj); + popup.append(contents); + } + if (!Array.isArray(this.trigger)) { + this.trigger = [this.trigger]; + } + for (const element of this.trigger) { + element.addEventListener("click", this._toggle.bind(this)); + element.addEventListener("mouseover", this._show.bind(this, false)); + element.addEventListener("mouseout", this._hide.bind(this, false)); + } + popup.addEventListener("click", this._hide.bind(this, true)); + wrapper.append(popup); + return wrapper; + } + _formatContents(_ref) { + let { + str, + dir + } = _ref; + const p = document.createElement("p"); + p.className = "popupContent"; + p.dir = dir; + const lines = str.split(/(?:\r\n?|\n)/); + for (let i = 0, ii = lines.length; i < ii; ++i) { + const line = lines[i]; + p.append(document.createTextNode(line)); + if (i < ii - 1) { + p.append(document.createElement("br")); + } + } + return p; + } + _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); } - }, { - key: "_show", - value: function _show() { - var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (pin) { - this.pinned = true; - } - - if (this.hideElement.hidden) { - this.hideElement.hidden = false; - this.container.style.zIndex += 1; - } + } + _show() { + let pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (pin) { + this.pinned = true; } - }, { - key: "_hide", - value: function _hide() { - var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - if (unpin) { - this.pinned = false; - } - - if (!this.hideElement.hidden && !this.pinned) { - this.hideElement.hidden = true; - this.container.style.zIndex -= 1; - } + if (this.hideElement.hidden) { + this.hideElement.hidden = false; + this.container.style.zIndex = parseInt(this.container.style.zIndex) + 1000; } - }]); - - return PopupElement; -}(); - -var FreeTextAnnotationElement = /*#__PURE__*/function (_AnnotationElement5) { - _inherits(FreeTextAnnotationElement, _AnnotationElement5); - - var _super10 = _createSuper(FreeTextAnnotationElement); - - function FreeTextAnnotationElement(parameters) { - var _parameters$data$titl3, _parameters$data$cont3, _parameters$data$rich3; - - _classCallCheck(this, FreeTextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl3 = parameters.data.titleObj) !== null && _parameters$data$titl3 !== void 0 && _parameters$data$titl3.str || (_parameters$data$cont3 = parameters.data.contentsObj) !== null && _parameters$data$cont3 !== void 0 && _parameters$data$cont3.str || (_parameters$data$rich3 = parameters.data.richText) !== null && _parameters$data$rich3 !== void 0 && _parameters$data$rich3.str); - return _super10.call(this, parameters, { - isRenderable: isRenderable, + } + _hide() { + let unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + if (unpin) { + this.pinned = false; + } + if (!this.hideElement.hidden && !this.pinned) { + this.hideElement.hidden = true; + this.container.style.zIndex = parseInt(this.container.style.zIndex) - 1000; + } + } +} +class FreeTextAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl2, _parameters$data$cont2, _parameters$data$rich2; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl2 = parameters.data.titleObj) !== null && _parameters$data$titl2 !== void 0 && _parameters$data$titl2.str || (_parameters$data$cont2 = parameters.data.contentsObj) !== null && _parameters$data$cont2 !== void 0 && _parameters$data$cont2.str || (_parameters$data$rich2 = parameters.data.richText) !== null && _parameters$data$rich2 !== void 0 && _parameters$data$rich2.str); + super(parameters, { + isRenderable, ignoreBorder: true }); + this.textContent = parameters.data.textContent; } - - _createClass(FreeTextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "freeTextAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(null, this.data); + render() { + this.container.className = "freeTextAnnotation"; + if (this.textContent) { + const content = document.createElement("div"); + content.className = "annotationTextContent"; + content.setAttribute("role", "comment"); + for (const line of this.textContent) { + const lineSpan = document.createElement("span"); + lineSpan.textContent = line; + content.append(lineSpan); } - - return this.container; + this.container.append(content); } - }]); - - return FreeTextAnnotationElement; -}(AnnotationElement); - -var LineAnnotationElement = /*#__PURE__*/function (_AnnotationElement6) { - _inherits(LineAnnotationElement, _AnnotationElement6); - - var _super11 = _createSuper(LineAnnotationElement); - - function LineAnnotationElement(parameters) { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + return this.container; + } +} +class LineAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl3, _parameters$data$cont3, _parameters$data$rich3; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl3 = parameters.data.titleObj) !== null && _parameters$data$titl3 !== void 0 && _parameters$data$titl3.str || (_parameters$data$cont3 = parameters.data.contentsObj) !== null && _parameters$data$cont3 !== void 0 && _parameters$data$cont3.str || (_parameters$data$rich3 = parameters.data.richText) !== null && _parameters$data$rich3 !== void 0 && _parameters$data$rich3.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + render() { + this.container.className = "lineAnnotation"; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const line = this.svgFactory.createElement("svg:line"); + line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); + line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); + line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); + line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); + line.setAttribute("stroke-width", data.borderStyle.width || 1); + line.setAttribute("stroke", "transparent"); + line.setAttribute("fill", "transparent"); + svg.append(line); + this.container.append(svg); + this._createPopup(line, data); + return this.container; + } +} +class SquareAnnotationElement extends AnnotationElement { + constructor(parameters) { var _parameters$data$titl4, _parameters$data$cont4, _parameters$data$rich4; - - _classCallCheck(this, LineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl4 = parameters.data.titleObj) !== null && _parameters$data$titl4 !== void 0 && _parameters$data$titl4.str || (_parameters$data$cont4 = parameters.data.contentsObj) !== null && _parameters$data$cont4 !== void 0 && _parameters$data$cont4.str || (_parameters$data$rich4 = parameters.data.richText) !== null && _parameters$data$rich4 !== void 0 && _parameters$data$rich4.str); - return _super11.call(this, parameters, { - isRenderable: isRenderable, + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl4 = parameters.data.titleObj) !== null && _parameters$data$titl4 !== void 0 && _parameters$data$titl4.str || (_parameters$data$cont4 = parameters.data.contentsObj) !== null && _parameters$data$cont4 !== void 0 && _parameters$data$cont4.str || (_parameters$data$rich4 = parameters.data.richText) !== null && _parameters$data$rich4 !== void 0 && _parameters$data$rich4.str); + super(parameters, { + isRenderable, ignoreBorder: true }); } - - _createClass(LineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "lineAnnotation"; - var data = this.data; - - var _getRectDims2 = getRectDims(data.rect), - width = _getRectDims2.width, - height = _getRectDims2.height; - - var svg = this.svgFactory.create(width, height); - var line = this.svgFactory.createElement("svg:line"); - line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); - line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); - line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); - line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); - line.setAttribute("stroke-width", data.borderStyle.width || 1); - line.setAttribute("stroke", "transparent"); - line.setAttribute("fill", "transparent"); - svg.appendChild(line); - this.container.append(svg); - - this._createPopup(line, data); - - return this.container; - } - }]); - - return LineAnnotationElement; -}(AnnotationElement); - -var SquareAnnotationElement = /*#__PURE__*/function (_AnnotationElement7) { - _inherits(SquareAnnotationElement, _AnnotationElement7); - - var _super12 = _createSuper(SquareAnnotationElement); - - function SquareAnnotationElement(parameters) { + render() { + this.container.className = "squareAnnotation"; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const borderWidth = data.borderStyle.width; + const square = this.svgFactory.createElement("svg:rect"); + square.setAttribute("x", borderWidth / 2); + square.setAttribute("y", borderWidth / 2); + square.setAttribute("width", width - borderWidth); + square.setAttribute("height", height - borderWidth); + square.setAttribute("stroke-width", borderWidth || 1); + square.setAttribute("stroke", "transparent"); + square.setAttribute("fill", "transparent"); + svg.append(square); + this.container.append(svg); + this._createPopup(square, data); + return this.container; + } +} +class CircleAnnotationElement extends AnnotationElement { + constructor(parameters) { var _parameters$data$titl5, _parameters$data$cont5, _parameters$data$rich5; - - _classCallCheck(this, SquareAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl5 = parameters.data.titleObj) !== null && _parameters$data$titl5 !== void 0 && _parameters$data$titl5.str || (_parameters$data$cont5 = parameters.data.contentsObj) !== null && _parameters$data$cont5 !== void 0 && _parameters$data$cont5.str || (_parameters$data$rich5 = parameters.data.richText) !== null && _parameters$data$rich5 !== void 0 && _parameters$data$rich5.str); - return _super12.call(this, parameters, { - isRenderable: isRenderable, + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl5 = parameters.data.titleObj) !== null && _parameters$data$titl5 !== void 0 && _parameters$data$titl5.str || (_parameters$data$cont5 = parameters.data.contentsObj) !== null && _parameters$data$cont5 !== void 0 && _parameters$data$cont5.str || (_parameters$data$rich5 = parameters.data.richText) !== null && _parameters$data$rich5 !== void 0 && _parameters$data$rich5.str); + super(parameters, { + isRenderable, ignoreBorder: true }); } - - _createClass(SquareAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "squareAnnotation"; - var data = this.data; - - var _getRectDims3 = getRectDims(data.rect), - width = _getRectDims3.width, - height = _getRectDims3.height; - - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var square = this.svgFactory.createElement("svg:rect"); - square.setAttribute("x", borderWidth / 2); - square.setAttribute("y", borderWidth / 2); - square.setAttribute("width", width - borderWidth); - square.setAttribute("height", height - borderWidth); - square.setAttribute("stroke-width", borderWidth || 1); - square.setAttribute("stroke", "transparent"); - square.setAttribute("fill", "transparent"); - svg.appendChild(square); - this.container.append(svg); - - this._createPopup(square, data); - - return this.container; - } - }]); - - return SquareAnnotationElement; -}(AnnotationElement); - -var CircleAnnotationElement = /*#__PURE__*/function (_AnnotationElement8) { - _inherits(CircleAnnotationElement, _AnnotationElement8); - - var _super13 = _createSuper(CircleAnnotationElement); - - function CircleAnnotationElement(parameters) { + render() { + this.container.className = "circleAnnotation"; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const borderWidth = data.borderStyle.width; + const circle = this.svgFactory.createElement("svg:ellipse"); + circle.setAttribute("cx", width / 2); + circle.setAttribute("cy", height / 2); + circle.setAttribute("rx", width / 2 - borderWidth / 2); + circle.setAttribute("ry", height / 2 - borderWidth / 2); + circle.setAttribute("stroke-width", borderWidth || 1); + circle.setAttribute("stroke", "transparent"); + circle.setAttribute("fill", "transparent"); + svg.append(circle); + this.container.append(svg); + this._createPopup(circle, data); + return this.container; + } +} +class PolylineAnnotationElement extends AnnotationElement { + constructor(parameters) { var _parameters$data$titl6, _parameters$data$cont6, _parameters$data$rich6; - - _classCallCheck(this, CircleAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl6 = parameters.data.titleObj) !== null && _parameters$data$titl6 !== void 0 && _parameters$data$titl6.str || (_parameters$data$cont6 = parameters.data.contentsObj) !== null && _parameters$data$cont6 !== void 0 && _parameters$data$cont6.str || (_parameters$data$rich6 = parameters.data.richText) !== null && _parameters$data$rich6 !== void 0 && _parameters$data$rich6.str); - return _super13.call(this, parameters, { - isRenderable: isRenderable, + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl6 = parameters.data.titleObj) !== null && _parameters$data$titl6 !== void 0 && _parameters$data$titl6.str || (_parameters$data$cont6 = parameters.data.contentsObj) !== null && _parameters$data$cont6 !== void 0 && _parameters$data$cont6.str || (_parameters$data$rich6 = parameters.data.richText) !== null && _parameters$data$rich6 !== void 0 && _parameters$data$rich6.str); + super(parameters, { + isRenderable, ignoreBorder: true }); + this.containerClassName = "polylineAnnotation"; + this.svgElementName = "svg:polyline"; + } + render() { + this.container.className = this.containerClassName; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + let points = []; + for (const coordinate of data.vertices) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(x + "," + y); + } + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "transparent"); + svg.append(polyline); + this.container.append(svg); + this._createPopup(polyline, data); + return this.container; } - - _createClass(CircleAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "circleAnnotation"; - var data = this.data; - - var _getRectDims4 = getRectDims(data.rect), - width = _getRectDims4.width, - height = _getRectDims4.height; - - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var circle = this.svgFactory.createElement("svg:ellipse"); - circle.setAttribute("cx", width / 2); - circle.setAttribute("cy", height / 2); - circle.setAttribute("rx", width / 2 - borderWidth / 2); - circle.setAttribute("ry", height / 2 - borderWidth / 2); - circle.setAttribute("stroke-width", borderWidth || 1); - circle.setAttribute("stroke", "transparent"); - circle.setAttribute("fill", "transparent"); - svg.appendChild(circle); - this.container.append(svg); - - this._createPopup(circle, data); - - return this.container; - } - }]); - - return CircleAnnotationElement; -}(AnnotationElement); - -var PolylineAnnotationElement = /*#__PURE__*/function (_AnnotationElement9) { - _inherits(PolylineAnnotationElement, _AnnotationElement9); - - var _super14 = _createSuper(PolylineAnnotationElement); - - function PolylineAnnotationElement(parameters) { +} +class PolygonAnnotationElement extends PolylineAnnotationElement { + constructor(parameters) { + super(parameters); + this.containerClassName = "polygonAnnotation"; + this.svgElementName = "svg:polygon"; + } +} +class CaretAnnotationElement extends AnnotationElement { + constructor(parameters) { var _parameters$data$titl7, _parameters$data$cont7, _parameters$data$rich7; - - var _this11; - - _classCallCheck(this, PolylineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl7 = parameters.data.titleObj) !== null && _parameters$data$titl7 !== void 0 && _parameters$data$titl7.str || (_parameters$data$cont7 = parameters.data.contentsObj) !== null && _parameters$data$cont7 !== void 0 && _parameters$data$cont7.str || (_parameters$data$rich7 = parameters.data.richText) !== null && _parameters$data$rich7 !== void 0 && _parameters$data$rich7.str); - _this11 = _super14.call(this, parameters, { - isRenderable: isRenderable, + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl7 = parameters.data.titleObj) !== null && _parameters$data$titl7 !== void 0 && _parameters$data$titl7.str || (_parameters$data$cont7 = parameters.data.contentsObj) !== null && _parameters$data$cont7 !== void 0 && _parameters$data$cont7.str || (_parameters$data$rich7 = parameters.data.richText) !== null && _parameters$data$rich7 !== void 0 && _parameters$data$rich7.str); + super(parameters, { + isRenderable, ignoreBorder: true }); - _this11.containerClassName = "polylineAnnotation"; - _this11.svgElementName = "svg:polyline"; - return _this11; } - - _createClass(PolylineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - - var _getRectDims5 = getRectDims(data.rect), - width = _getRectDims5.width, - height = _getRectDims5.height; - - var svg = this.svgFactory.create(width, height); - var points = []; - - var _iterator19 = _createForOfIteratorHelper(data.vertices), - _step19; - - try { - for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) { - var coordinate = _step19.value; - var x = coordinate.x - data.rect[0]; - var y = data.rect[3] - coordinate.y; - points.push(x + "," + y); - } - } catch (err) { - _iterator19.e(err); - } finally { - _iterator19.f(); + render() { + this.container.className = "caretAnnotation"; + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + return this.container; + } +} +class InkAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl8, _parameters$data$cont8, _parameters$data$rich8; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl8 = parameters.data.titleObj) !== null && _parameters$data$titl8 !== void 0 && _parameters$data$titl8.str || (_parameters$data$cont8 = parameters.data.contentsObj) !== null && _parameters$data$cont8 !== void 0 && _parameters$data$cont8.str || (_parameters$data$rich8 = parameters.data.richText) !== null && _parameters$data$rich8 !== void 0 && _parameters$data$rich8.str); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "inkAnnotation"; + this.svgElementName = "svg:polyline"; + } + render() { + this.container.className = this.containerClassName; + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + for (const inkList of data.inkLists) { + let points = []; + for (const coordinate of inkList) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(`${x},${y}`); } - points = points.join(" "); - var polyline = this.svgFactory.createElement(this.svgElementName); + const polyline = this.svgFactory.createElement(this.svgElementName); polyline.setAttribute("points", points); polyline.setAttribute("stroke-width", data.borderStyle.width || 1); polyline.setAttribute("stroke", "transparent"); polyline.setAttribute("fill", "transparent"); - svg.appendChild(polyline); - this.container.append(svg); - this._createPopup(polyline, data); - - return this.container; + svg.append(polyline); } - }]); - - return PolylineAnnotationElement; -}(AnnotationElement); - -var PolygonAnnotationElement = /*#__PURE__*/function (_PolylineAnnotationEl) { - _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); - - var _super15 = _createSuper(PolygonAnnotationElement); - - function PolygonAnnotationElement(parameters) { - var _this12; - - _classCallCheck(this, PolygonAnnotationElement); - - _this12 = _super15.call(this, parameters); - _this12.containerClassName = "polygonAnnotation"; - _this12.svgElementName = "svg:polygon"; - return _this12; - } - - return _createClass(PolygonAnnotationElement); -}(PolylineAnnotationElement); - -var CaretAnnotationElement = /*#__PURE__*/function (_AnnotationElement10) { - _inherits(CaretAnnotationElement, _AnnotationElement10); - - var _super16 = _createSuper(CaretAnnotationElement); - - function CaretAnnotationElement(parameters) { - var _parameters$data$titl8, _parameters$data$cont8, _parameters$data$rich8; - - _classCallCheck(this, CaretAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl8 = parameters.data.titleObj) !== null && _parameters$data$titl8 !== void 0 && _parameters$data$titl8.str || (_parameters$data$cont8 = parameters.data.contentsObj) !== null && _parameters$data$cont8 !== void 0 && _parameters$data$cont8.str || (_parameters$data$rich8 = parameters.data.richText) !== null && _parameters$data$rich8 !== void 0 && _parameters$data$rich8.str); - return _super16.call(this, parameters, { - isRenderable: isRenderable, - ignoreBorder: true - }); + this.container.append(svg); + return this.container; } - - _createClass(CaretAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "caretAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(null, this.data); - } - - return this.container; - } - }]); - - return CaretAnnotationElement; -}(AnnotationElement); - -var InkAnnotationElement = /*#__PURE__*/function (_AnnotationElement11) { - _inherits(InkAnnotationElement, _AnnotationElement11); - - var _super17 = _createSuper(InkAnnotationElement); - - function InkAnnotationElement(parameters) { +} +class HighlightAnnotationElement extends AnnotationElement { + constructor(parameters) { var _parameters$data$titl9, _parameters$data$cont9, _parameters$data$rich9; - - var _this13; - - _classCallCheck(this, InkAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl9 = parameters.data.titleObj) !== null && _parameters$data$titl9 !== void 0 && _parameters$data$titl9.str || (_parameters$data$cont9 = parameters.data.contentsObj) !== null && _parameters$data$cont9 !== void 0 && _parameters$data$cont9.str || (_parameters$data$rich9 = parameters.data.richText) !== null && _parameters$data$rich9 !== void 0 && _parameters$data$rich9.str); - _this13 = _super17.call(this, parameters, { - isRenderable: isRenderable, - ignoreBorder: true - }); - _this13.containerClassName = "inkAnnotation"; - _this13.svgElementName = "svg:polyline"; - return _this13; - } - - _createClass(InkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - - var _getRectDims6 = getRectDims(data.rect), - width = _getRectDims6.width, - height = _getRectDims6.height; - - var svg = this.svgFactory.create(width, height); - - var _iterator20 = _createForOfIteratorHelper(data.inkLists), - _step20; - - try { - for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) { - var inkList = _step20.value; - var points = []; - - var _iterator21 = _createForOfIteratorHelper(inkList), - _step21; - - try { - for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) { - var coordinate = _step21.value; - var x = coordinate.x - data.rect[0]; - var y = data.rect[3] - coordinate.y; - points.push("".concat(x, ",").concat(y)); - } - } catch (err) { - _iterator21.e(err); - } finally { - _iterator21.f(); - } - - points = points.join(" "); - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute("points", points); - polyline.setAttribute("stroke-width", data.borderStyle.width || 1); - polyline.setAttribute("stroke", "transparent"); - polyline.setAttribute("fill", "transparent"); - - this._createPopup(polyline, data); - - svg.appendChild(polyline); - } - } catch (err) { - _iterator20.e(err); - } finally { - _iterator20.f(); - } - - this.container.append(svg); - return this.container; - } - }]); - - return InkAnnotationElement; -}(AnnotationElement); - -var HighlightAnnotationElement = /*#__PURE__*/function (_AnnotationElement12) { - _inherits(HighlightAnnotationElement, _AnnotationElement12); - - var _super18 = _createSuper(HighlightAnnotationElement); - - function HighlightAnnotationElement(parameters) { - var _parameters$data$titl10, _parameters$data$cont10, _parameters$data$rich10; - - _classCallCheck(this, HighlightAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl10 = parameters.data.titleObj) !== null && _parameters$data$titl10 !== void 0 && _parameters$data$titl10.str || (_parameters$data$cont10 = parameters.data.contentsObj) !== null && _parameters$data$cont10 !== void 0 && _parameters$data$cont10.str || (_parameters$data$rich10 = parameters.data.richText) !== null && _parameters$data$rich10 !== void 0 && _parameters$data$rich10.str); - return _super18.call(this, parameters, { - isRenderable: isRenderable, + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl9 = parameters.data.titleObj) !== null && _parameters$data$titl9 !== void 0 && _parameters$data$titl9.str || (_parameters$data$cont9 = parameters.data.contentsObj) !== null && _parameters$data$cont9 !== void 0 && _parameters$data$cont9.str || (_parameters$data$rich9 = parameters.data.richText) !== null && _parameters$data$rich9 !== void 0 && _parameters$data$rich9.str); + super(parameters, { + isRenderable, ignoreBorder: true, createQuadrilaterals: true }); } - - _createClass(HighlightAnnotationElement, [{ - key: "render", - value: function render() { - if (!this.data.hasPopup) { - this._createPopup(null, this.data); - } - - if (this.quadrilaterals) { - return this._renderQuadrilaterals("highlightAnnotation"); - } - - this.container.className = "highlightAnnotation"; - return this.container; + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); } - }]); - - return HighlightAnnotationElement; -}(AnnotationElement); - -var UnderlineAnnotationElement = /*#__PURE__*/function (_AnnotationElement13) { - _inherits(UnderlineAnnotationElement, _AnnotationElement13); - - var _super19 = _createSuper(UnderlineAnnotationElement); - - function UnderlineAnnotationElement(parameters) { - var _parameters$data$titl11, _parameters$data$cont11, _parameters$data$rich11; - - _classCallCheck(this, UnderlineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl11 = parameters.data.titleObj) !== null && _parameters$data$titl11 !== void 0 && _parameters$data$titl11.str || (_parameters$data$cont11 = parameters.data.contentsObj) !== null && _parameters$data$cont11 !== void 0 && _parameters$data$cont11.str || (_parameters$data$rich11 = parameters.data.richText) !== null && _parameters$data$rich11 !== void 0 && _parameters$data$rich11.str); - return _super19.call(this, parameters, { - isRenderable: isRenderable, + if (this.quadrilaterals) { + return this._renderQuadrilaterals("highlightAnnotation"); + } + this.container.className = "highlightAnnotation"; + return this.container; + } +} +class UnderlineAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl10, _parameters$data$cont10, _parameters$data$rich10; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl10 = parameters.data.titleObj) !== null && _parameters$data$titl10 !== void 0 && _parameters$data$titl10.str || (_parameters$data$cont10 = parameters.data.contentsObj) !== null && _parameters$data$cont10 !== void 0 && _parameters$data$cont10.str || (_parameters$data$rich10 = parameters.data.richText) !== null && _parameters$data$rich10 !== void 0 && _parameters$data$rich10.str); + super(parameters, { + isRenderable, ignoreBorder: true, createQuadrilaterals: true - }); - } - - _createClass(UnderlineAnnotationElement, [{ - key: "render", - value: function render() { - if (!this.data.hasPopup) { - this._createPopup(null, this.data); - } - - if (this.quadrilaterals) { - return this._renderQuadrilaterals("underlineAnnotation"); - } - - this.container.className = "underlineAnnotation"; - return this.container; - } - }]); - - return UnderlineAnnotationElement; -}(AnnotationElement); - -var SquigglyAnnotationElement = /*#__PURE__*/function (_AnnotationElement14) { - _inherits(SquigglyAnnotationElement, _AnnotationElement14); - - var _super20 = _createSuper(SquigglyAnnotationElement); - - function SquigglyAnnotationElement(parameters) { - var _parameters$data$titl12, _parameters$data$cont12, _parameters$data$rich12; - - _classCallCheck(this, SquigglyAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl12 = parameters.data.titleObj) !== null && _parameters$data$titl12 !== void 0 && _parameters$data$titl12.str || (_parameters$data$cont12 = parameters.data.contentsObj) !== null && _parameters$data$cont12 !== void 0 && _parameters$data$cont12.str || (_parameters$data$rich12 = parameters.data.richText) !== null && _parameters$data$rich12 !== void 0 && _parameters$data$rich12.str); - return _super20.call(this, parameters, { - isRenderable: isRenderable, + }); + } + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + if (this.quadrilaterals) { + return this._renderQuadrilaterals("underlineAnnotation"); + } + this.container.className = "underlineAnnotation"; + return this.container; + } +} +class SquigglyAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl11, _parameters$data$cont11, _parameters$data$rich11; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl11 = parameters.data.titleObj) !== null && _parameters$data$titl11 !== void 0 && _parameters$data$titl11.str || (_parameters$data$cont11 = parameters.data.contentsObj) !== null && _parameters$data$cont11 !== void 0 && _parameters$data$cont11.str || (_parameters$data$rich11 = parameters.data.richText) !== null && _parameters$data$rich11 !== void 0 && _parameters$data$rich11.str); + super(parameters, { + isRenderable, ignoreBorder: true, createQuadrilaterals: true }); } - - _createClass(SquigglyAnnotationElement, [{ - key: "render", - value: function render() { - if (!this.data.hasPopup) { - this._createPopup(null, this.data); - } - - if (this.quadrilaterals) { - return this._renderQuadrilaterals("squigglyAnnotation"); - } - - this.container.className = "squigglyAnnotation"; - return this.container; + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); } - }]); - - return SquigglyAnnotationElement; -}(AnnotationElement); - -var StrikeOutAnnotationElement = /*#__PURE__*/function (_AnnotationElement15) { - _inherits(StrikeOutAnnotationElement, _AnnotationElement15); - - var _super21 = _createSuper(StrikeOutAnnotationElement); - - function StrikeOutAnnotationElement(parameters) { - var _parameters$data$titl13, _parameters$data$cont13, _parameters$data$rich13; - - _classCallCheck(this, StrikeOutAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl13 = parameters.data.titleObj) !== null && _parameters$data$titl13 !== void 0 && _parameters$data$titl13.str || (_parameters$data$cont13 = parameters.data.contentsObj) !== null && _parameters$data$cont13 !== void 0 && _parameters$data$cont13.str || (_parameters$data$rich13 = parameters.data.richText) !== null && _parameters$data$rich13 !== void 0 && _parameters$data$rich13.str); - return _super21.call(this, parameters, { - isRenderable: isRenderable, + if (this.quadrilaterals) { + return this._renderQuadrilaterals("squigglyAnnotation"); + } + this.container.className = "squigglyAnnotation"; + return this.container; + } +} +class StrikeOutAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl12, _parameters$data$cont12, _parameters$data$rich12; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl12 = parameters.data.titleObj) !== null && _parameters$data$titl12 !== void 0 && _parameters$data$titl12.str || (_parameters$data$cont12 = parameters.data.contentsObj) !== null && _parameters$data$cont12 !== void 0 && _parameters$data$cont12.str || (_parameters$data$rich12 = parameters.data.richText) !== null && _parameters$data$rich12 !== void 0 && _parameters$data$rich12.str); + super(parameters, { + isRenderable, ignoreBorder: true, createQuadrilaterals: true }); } - - _createClass(StrikeOutAnnotationElement, [{ - key: "render", - value: function render() { - if (!this.data.hasPopup) { - this._createPopup(null, this.data); - } - - if (this.quadrilaterals) { - return this._renderQuadrilaterals("strikeoutAnnotation"); - } - - this.container.className = "strikeoutAnnotation"; - return this.container; + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); } - }]); - - return StrikeOutAnnotationElement; -}(AnnotationElement); - -var StampAnnotationElement = /*#__PURE__*/function (_AnnotationElement16) { - _inherits(StampAnnotationElement, _AnnotationElement16); - - var _super22 = _createSuper(StampAnnotationElement); - - function StampAnnotationElement(parameters) { - var _parameters$data$titl14, _parameters$data$cont14, _parameters$data$rich14; - - _classCallCheck(this, StampAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl14 = parameters.data.titleObj) !== null && _parameters$data$titl14 !== void 0 && _parameters$data$titl14.str || (_parameters$data$cont14 = parameters.data.contentsObj) !== null && _parameters$data$cont14 !== void 0 && _parameters$data$cont14.str || (_parameters$data$rich14 = parameters.data.richText) !== null && _parameters$data$rich14 !== void 0 && _parameters$data$rich14.str); - return _super22.call(this, parameters, { - isRenderable: isRenderable, + if (this.quadrilaterals) { + return this._renderQuadrilaterals("strikeoutAnnotation"); + } + this.container.className = "strikeoutAnnotation"; + return this.container; + } +} +class StampAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _parameters$data$titl13, _parameters$data$cont13, _parameters$data$rich13; + const isRenderable = !!(parameters.data.hasPopup || (_parameters$data$titl13 = parameters.data.titleObj) !== null && _parameters$data$titl13 !== void 0 && _parameters$data$titl13.str || (_parameters$data$cont13 = parameters.data.contentsObj) !== null && _parameters$data$cont13 !== void 0 && _parameters$data$cont13.str || (_parameters$data$rich13 = parameters.data.richText) !== null && _parameters$data$rich13 !== void 0 && _parameters$data$rich13.str); + super(parameters, { + isRenderable, ignoreBorder: true }); } - - _createClass(StampAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "stampAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(null, this.data); - } - - return this.container; + render() { + this.container.className = "stampAnnotation"; + if (!this.data.hasPopup) { + this._createPopup(null, this.data); } - }]); - - return StampAnnotationElement; -}(AnnotationElement); - -var FileAttachmentAnnotationElement = /*#__PURE__*/function (_AnnotationElement17) { - _inherits(FileAttachmentAnnotationElement, _AnnotationElement17); - - var _super23 = _createSuper(FileAttachmentAnnotationElement); - - function FileAttachmentAnnotationElement(parameters) { - var _this14$linkService$e; - - var _this14; - - _classCallCheck(this, FileAttachmentAnnotationElement); - - _this14 = _super23.call(this, parameters, { + return this.container; + } +} +class FileAttachmentAnnotationElement extends AnnotationElement { + constructor(parameters) { + var _this$linkService$eve10; + super(parameters, { isRenderable: true }); - var _this14$data$file = _this14.data.file, - filename = _this14$data$file.filename, - content = _this14$data$file.content; - _this14.filename = (0, _display_utils.getFilenameFromUrl)(filename); - _this14.content = content; - (_this14$linkService$e = _this14.linkService.eventBus) === null || _this14$linkService$e === void 0 ? void 0 : _this14$linkService$e.dispatch("fileattachmentannotation", { - source: _assertThisInitialized(_this14), - filename: filename, - content: content + const { + filename, + content + } = this.data.file; + this.filename = (0, _display_utils.getFilenameFromUrl)(filename); + this.content = content; + (_this$linkService$eve10 = this.linkService.eventBus) === null || _this$linkService$eve10 === void 0 ? void 0 : _this$linkService$eve10.dispatch("fileattachmentannotation", { + source: this, + filename, + content }); - return _this14; } - - _createClass(FileAttachmentAnnotationElement, [{ - key: "render", - value: function render() { - var _this$data$titleObj, _this$data$contentsOb; - - this.container.className = "fileAttachmentAnnotation"; - var trigger = document.createElement("div"); - trigger.style.height = this.container.style.height; - trigger.style.width = this.container.style.width; - trigger.addEventListener("dblclick", this._download.bind(this)); - - if (!this.data.hasPopup && ((_this$data$titleObj = this.data.titleObj) !== null && _this$data$titleObj !== void 0 && _this$data$titleObj.str || (_this$data$contentsOb = this.data.contentsObj) !== null && _this$data$contentsOb !== void 0 && _this$data$contentsOb.str || this.data.richText)) { - this._createPopup(trigger, this.data); - } - - this.container.appendChild(trigger); - return this.container; + render() { + var _this$data$titleObj, _this$data$contentsOb; + this.container.className = "fileAttachmentAnnotation"; + const trigger = document.createElement("div"); + trigger.className = "popupTriggerArea"; + trigger.addEventListener("dblclick", this._download.bind(this)); + if (!this.data.hasPopup && ((_this$data$titleObj = this.data.titleObj) !== null && _this$data$titleObj !== void 0 && _this$data$titleObj.str || (_this$data$contentsOb = this.data.contentsObj) !== null && _this$data$contentsOb !== void 0 && _this$data$contentsOb.str || this.data.richText)) { + this._createPopup(trigger, this.data); } - }, { - key: "_download", - value: function _download() { - var _this$downloadManager; - - (_this$downloadManager = this.downloadManager) === null || _this$downloadManager === void 0 ? void 0 : _this$downloadManager.openOrDownloadData(this.container, this.content, this.filename); - } - }]); - - return FileAttachmentAnnotationElement; -}(AnnotationElement); - -var AnnotationLayer = /*#__PURE__*/function () { - function AnnotationLayer() { - _classCallCheck(this, AnnotationLayer); + this.container.append(trigger); + return this.container; } - - _createClass(AnnotationLayer, null, [{ - key: "render", - value: function render(parameters) { - var sortedAnnotations = [], - popupAnnotations = []; - - var _iterator22 = _createForOfIteratorHelper(parameters.annotations), - _step22; - - try { - for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) { - var _data = _step22.value; - - if (!_data) { - continue; - } - - var _getRectDims7 = getRectDims(_data.rect), - width = _getRectDims7.width, - height = _getRectDims7.height; - - if (width <= 0 || height <= 0) { - continue; - } - - if (_data.annotationType === _util.AnnotationType.POPUP) { - popupAnnotations.push(_data); - continue; - } - - sortedAnnotations.push(_data); + _download() { + var _this$downloadManager2; + (_this$downloadManager2 = this.downloadManager) === null || _this$downloadManager2 === void 0 ? void 0 : _this$downloadManager2.openOrDownloadData(this.container, this.content, this.filename); + } +} +class AnnotationLayer { + static render(parameters) { + const { + annotations, + div, + viewport, + accessibilityManager + } = parameters; + _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport); + let zIndex = 0; + for (const data of annotations) { + if (data.annotationType !== _util.AnnotationType.POPUP) { + const { + width, + height + } = getRectDims(data.rect); + if (width <= 0 || height <= 0) { + continue; } - } catch (err) { - _iterator22.e(err); - } finally { - _iterator22.f(); - } - - if (popupAnnotations.length) { - sortedAnnotations.push.apply(sortedAnnotations, popupAnnotations); - } - - var div = parameters.div; - - for (var _i8 = 0, _sortedAnnotations = sortedAnnotations; _i8 < _sortedAnnotations.length; _i8++) { - var data = _sortedAnnotations[_i8]; - var element = AnnotationElementFactory.create({ - data: data, - layer: div, - page: parameters.page, - viewport: parameters.viewport, - linkService: parameters.linkService, - downloadManager: parameters.downloadManager, - imageResourcesPath: parameters.imageResourcesPath || "", - renderForms: parameters.renderForms !== false, - svgFactory: new _display_utils.DOMSVGFactory(), - annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(), - enableScripting: parameters.enableScripting, - hasJSActions: parameters.hasJSActions, - fieldObjects: parameters.fieldObjects, - mouseState: parameters.mouseState || { - isDown: false - } - }); - - if (element.isRenderable) { - var rendered = element.render(); - - if (data.hidden) { - rendered.style.visibility = "hidden"; + } + const element = AnnotationElementFactory.create({ + data, + layer: div, + page: parameters.page, + viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || "", + renderForms: parameters.renderForms !== false, + svgFactory: new _display_utils.DOMSVGFactory(), + annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(), + enableScripting: parameters.enableScripting, + hasJSActions: parameters.hasJSActions, + fieldObjects: parameters.fieldObjects, + mouseState: parameters.mouseState || { + isDown: false + } + }); + if (element.isRenderable) { + const rendered = element.render(); + if (data.hidden) { + rendered.style.visibility = "hidden"; + } + if (Array.isArray(rendered)) { + for (const renderedElement of rendered) { + renderedElement.style.zIndex = zIndex++; + _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, renderedElement, data.id, div, accessibilityManager); } - - if (Array.isArray(rendered)) { - var _iterator23 = _createForOfIteratorHelper(rendered), - _step23; - - try { - for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) { - var renderedElement = _step23.value; - div.appendChild(renderedElement); - } - } catch (err) { - _iterator23.e(err); - } finally { - _iterator23.f(); - } + } else { + rendered.style.zIndex = zIndex++; + if (element instanceof PopupAnnotationElement) { + div.prepend(rendered); } else { - if (element instanceof PopupAnnotationElement) { - div.prepend(rendered); - } else { - div.appendChild(rendered); - } - } - } - } - - _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, parameters.annotationCanvasMap); - } - }, { - key: "update", - value: function update(parameters) { - var page = parameters.page, - viewport = parameters.viewport, - annotations = parameters.annotations, - annotationCanvasMap = parameters.annotationCanvasMap, - div = parameters.div; - var transform = viewport.transform; - var matrix = "matrix(".concat(transform.join(","), ")"); - var scale, ownMatrix; - - var _iterator24 = _createForOfIteratorHelper(annotations), - _step24; - - try { - for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) { - var data = _step24.value; - var elements = div.querySelectorAll("[data-annotation-id=\"".concat(data.id, "\"]")); - - if (elements) { - var _iterator25 = _createForOfIteratorHelper(elements), - _step25; - - try { - for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) { - var element = _step25.value; - - if (data.hasOwnCanvas) { - var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); - - if (!ownMatrix) { - scale = Math.abs(transform[0] || transform[1]); - var ownTransform = transform.slice(); - - for (var i = 0; i < 4; i++) { - ownTransform[i] = Math.sign(ownTransform[i]); - } - - ownMatrix = "matrix(".concat(ownTransform.join(","), ")"); - } - - var left = rect[0] * scale; - var top = rect[1] * scale; - element.style.left = "".concat(left, "px"); - element.style.top = "".concat(top, "px"); - element.style.transformOrigin = "".concat(-left, "px ").concat(-top, "px"); - element.style.transform = ownMatrix; - } else { - element.style.transform = matrix; - } - } - } catch (err) { - _iterator25.e(err); - } finally { - _iterator25.f(); - } + _classStaticPrivateMethodGet(AnnotationLayer, AnnotationLayer, _appendElement).call(AnnotationLayer, rendered, data.id, div, accessibilityManager); } } - } catch (err) { - _iterator24.e(err); - } finally { - _iterator24.f(); } - - _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, annotationCanvasMap); - - div.hidden = false; } - }]); - - return AnnotationLayer; -}(); - + _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, parameters.annotationCanvasMap); + } + static update(parameters) { + const { + annotationCanvasMap, + div, + viewport + } = parameters; + _classStaticPrivateMethodGet(this, AnnotationLayer, _setDimensions).call(this, div, viewport); + _classStaticPrivateMethodGet(this, AnnotationLayer, _setAnnotationCanvasMap).call(this, div, annotationCanvasMap); + div.hidden = false; + } +} exports.AnnotationLayer = AnnotationLayer; - +function _appendElement(element, id, div, accessibilityManager) { + const contentElement = element.firstChild || element; + contentElement.id = `${_display_utils.AnnotationPrefix}${id}`; + div.append(element); + accessibilityManager === null || accessibilityManager === void 0 ? void 0 : accessibilityManager.moveElementInDOM(div, element, contentElement, false); +} +function _setDimensions(div, _ref2) { + let { + width, + height, + rotation + } = _ref2; + const { + style + } = div; + const flipOrientation = rotation % 180 !== 0, + widthStr = Math.floor(width) + "px", + heightStr = Math.floor(height) + "px"; + style.width = flipOrientation ? heightStr : widthStr; + style.height = flipOrientation ? widthStr : heightStr; + div.setAttribute("data-main-rotation", rotation); +} function _setAnnotationCanvasMap(div, annotationCanvasMap) { if (!annotationCanvasMap) { return; } - - var _iterator26 = _createForOfIteratorHelper(annotationCanvasMap), - _step26; - - try { - for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) { - var _step26$value = _slicedToArray(_step26.value, 2), - id = _step26$value[0], - canvas = _step26$value[1]; - - var element = div.querySelector("[data-annotation-id=\"".concat(id, "\"]")); - - if (!element) { - continue; - } - - var firstChild = element.firstChild; - - if (firstChild.nodeName === "CANVAS") { - element.replaceChild(canvas, firstChild); - } else { - element.insertBefore(canvas, firstChild); - } + for (const [id, canvas] of annotationCanvasMap) { + const element = div.querySelector(`[data-annotation-id="${id}"]`); + if (!element) { + continue; + } + const { + firstChild + } = element; + if (!firstChild) { + element.append(canvas); + } else if (firstChild.nodeName === "CANVAS") { + firstChild.replaceWith(canvas); + } else { + firstChild.before(canvas); } - } catch (err) { - _iterator26.e(err); - } finally { - _iterator26.f(); } - annotationCanvasMap.clear(); } /***/ }), -/* 174 */ +/* 157 */ /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -19862,137 +16359,62 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ColorConverters = void 0; - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - function makeColorComp(n) { return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); } - -var ColorConverters = /*#__PURE__*/function () { - function ColorConverters() { - _classCallCheck(this, ColorConverters); - } - - _createClass(ColorConverters, null, [{ - key: "CMYK_G", - value: function CMYK_G(_ref) { - var _ref2 = _slicedToArray(_ref, 4), - c = _ref2[0], - y = _ref2[1], - m = _ref2[2], - k = _ref2[3]; - - return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; - } - }, { - key: "G_CMYK", - value: function G_CMYK(_ref3) { - var _ref4 = _slicedToArray(_ref3, 1), - g = _ref4[0]; - - return ["CMYK", 0, 0, 0, 1 - g]; - } - }, { - key: "G_RGB", - value: function G_RGB(_ref5) { - var _ref6 = _slicedToArray(_ref5, 1), - g = _ref6[0]; - - return ["RGB", g, g, g]; - } - }, { - key: "G_HTML", - value: function G_HTML(_ref7) { - var _ref8 = _slicedToArray(_ref7, 1), - g = _ref8[0]; - - var G = makeColorComp(g); - return "#".concat(G).concat(G).concat(G); - } - }, { - key: "RGB_G", - value: function RGB_G(_ref9) { - var _ref10 = _slicedToArray(_ref9, 3), - r = _ref10[0], - g = _ref10[1], - b = _ref10[2]; - - return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; - } - }, { - key: "RGB_HTML", - value: function RGB_HTML(_ref11) { - var _ref12 = _slicedToArray(_ref11, 3), - r = _ref12[0], - g = _ref12[1], - b = _ref12[2]; - - var R = makeColorComp(r); - var G = makeColorComp(g); - var B = makeColorComp(b); - return "#".concat(R).concat(G).concat(B); - } - }, { - key: "T_HTML", - value: function T_HTML() { - return "#00000000"; - } - }, { - key: "CMYK_RGB", - value: function CMYK_RGB(_ref13) { - var _ref14 = _slicedToArray(_ref13, 4), - c = _ref14[0], - y = _ref14[1], - m = _ref14[2], - k = _ref14[3]; - - return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; - } - }, { - key: "CMYK_HTML", - value: function CMYK_HTML(components) { - return this.RGB_HTML(this.CMYK_RGB(components)); - } - }, { - key: "RGB_CMYK", - value: function RGB_CMYK(_ref15) { - var _ref16 = _slicedToArray(_ref15, 3), - r = _ref16[0], - g = _ref16[1], - b = _ref16[2]; - - var c = 1 - r; - var m = 1 - g; - var y = 1 - b; - var k = Math.min(c, m, y); - return ["CMYK", c, m, y, k]; - } - }]); - - return ColorConverters; -}(); - +class ColorConverters { + static CMYK_G(_ref) { + let [c, y, m, k] = _ref; + return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; + } + static G_CMYK(_ref2) { + let [g] = _ref2; + return ["CMYK", 0, 0, 0, 1 - g]; + } + static G_RGB(_ref3) { + let [g] = _ref3; + return ["RGB", g, g, g]; + } + static G_HTML(_ref4) { + let [g] = _ref4; + const G = makeColorComp(g); + return `#${G}${G}${G}`; + } + static RGB_G(_ref5) { + let [r, g, b] = _ref5; + return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; + } + static RGB_HTML(_ref6) { + let [r, g, b] = _ref6; + const R = makeColorComp(r); + const G = makeColorComp(g); + const B = makeColorComp(b); + return `#${R}${G}${B}`; + } + static T_HTML() { + return "#00000000"; + } + static CMYK_RGB(_ref7) { + let [c, y, m, k] = _ref7; + return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; + } + static CMYK_HTML(components) { + const rgb = this.CMYK_RGB(components).slice(1); + return this.RGB_HTML(rgb); + } + static RGB_CMYK(_ref8) { + let [r, g, b] = _ref8; + const c = 1 - r; + const m = 1 - g; + const y = 1 - b; + const k = Math.min(c, m, y); + return ["CMYK", c, m, y, k]; + } +} exports.ColorConverters = ColorConverters; /***/ }), -/* 175 */ +/* 158 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -20002,303 +16424,210 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.XfaLayer = void 0; - -var _xfa_text = __w_pdfjs_require__(171); - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -var XfaLayer = /*#__PURE__*/function () { - function XfaLayer() { - _classCallCheck(this, XfaLayer); - } - - _createClass(XfaLayer, null, [{ - key: "setupStorage", - value: function setupStorage(html, id, element, storage, intent) { - var storedData = storage.getValue(id, { - value: null - }); - - switch (element.name) { - case "textarea": - if (storedData.value !== null) { - html.textContent = storedData.value; +var _xfa_text = __w_pdfjs_require__(149); +class XfaLayer { + static setupStorage(html, id, element, storage, intent) { + const storedData = storage.getValue(id, { + value: null + }); + switch (element.name) { + case "textarea": + if (storedData.value !== null) { + html.textContent = storedData.value; + } + if (intent === "print") { + break; + } + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + break; + case "input": + if (element.attributes.type === "radio" || element.attributes.type === "checkbox") { + if (storedData.value === element.attributes.xfaOn) { + html.setAttribute("checked", true); + } else if (storedData.value === element.attributes.xfaOff) { + html.removeAttribute("checked"); } - if (intent === "print") { break; } - - html.addEventListener("input", function (event) { + html.addEventListener("change", event => { storage.setValue(id, { - value: event.target.value + value: event.target.checked ? event.target.getAttribute("xfaOn") : event.target.getAttribute("xfaOff") }); }); - break; - - case "input": - if (element.attributes.type === "radio" || element.attributes.type === "checkbox") { - if (storedData.value === element.attributes.xfaOn) { - html.setAttribute("checked", true); - } else if (storedData.value === element.attributes.xfaOff) { - html.removeAttribute("checked"); - } - - if (intent === "print") { - break; - } - - html.addEventListener("change", function (event) { - storage.setValue(id, { - value: event.target.checked ? event.target.getAttribute("xfaOn") : event.target.getAttribute("xfaOff") - }); - }); - } else { - if (storedData.value !== null) { - html.setAttribute("value", storedData.value); - } - - if (intent === "print") { - break; - } - - html.addEventListener("input", function (event) { - storage.setValue(id, { - value: event.target.value - }); - }); - } - - break; - - case "select": + } else { if (storedData.value !== null) { - var _iterator = _createForOfIteratorHelper(element.children), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var option = _step.value; - - if (option.attributes.value === storedData.value) { - option.attributes.selected = true; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } + html.setAttribute("value", storedData.value); } - - html.addEventListener("input", function (event) { - var options = event.target.options; - var value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value; + if (intent === "print") { + break; + } + html.addEventListener("input", event => { storage.setValue(id, { - value: value + value: event.target.value }); }); - break; - } - } - }, { - key: "setAttributes", - value: function setAttributes(_ref) { - var html = _ref.html, - element = _ref.element, - _ref$storage = _ref.storage, - storage = _ref$storage === void 0 ? null : _ref$storage, - intent = _ref.intent, - linkService = _ref.linkService; - var attributes = element.attributes; - var isHTMLAnchorElement = html instanceof HTMLAnchorElement; - - if (attributes.type === "radio") { - attributes.name = "".concat(attributes.name, "-").concat(intent); - } - - for (var _i = 0, _Object$entries = Object.entries(attributes); _i < _Object$entries.length; _i++) { - var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), - key = _Object$entries$_i[0], - value = _Object$entries$_i[1]; - - if (value === null || value === undefined || key === "dataId") { - continue; } - - if (key !== "style") { - if (key === "textContent") { - html.textContent = value; - } else if (key === "class") { - if (value.length) { - html.setAttribute(key, value.join(" ")); - } - } else { - if (isHTMLAnchorElement && (key === "href" || key === "newWindow")) { - continue; + break; + case "select": + if (storedData.value !== null) { + for (const option of element.children) { + if (option.attributes.value === storedData.value) { + option.attributes.selected = true; } - - html.setAttribute(key, value); } - } else { - Object.assign(html.style, value); } + html.addEventListener("input", event => { + const options = event.target.options; + const value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value; + storage.setValue(id, { + value + }); + }); + break; + } + } + static setAttributes(_ref) { + let { + html, + element, + storage = null, + intent, + linkService + } = _ref; + const { + attributes + } = element; + const isHTMLAnchorElement = html instanceof HTMLAnchorElement; + if (attributes.type === "radio") { + attributes.name = `${attributes.name}-${intent}`; + } + for (const [key, value] of Object.entries(attributes)) { + if (value === null || value === undefined) { + continue; + } + switch (key) { + case "class": + if (value.length) { + html.setAttribute(key, value.join(" ")); + } + break; + case "dataId": + break; + case "id": + html.setAttribute("data-element-id", value); + break; + case "style": + Object.assign(html.style, value); + break; + case "textContent": + html.textContent = value; + break; + default: + if (!isHTMLAnchorElement || key !== "href" && key !== "newWindow") { + html.setAttribute(key, value); + } } - - if (isHTMLAnchorElement) { - linkService.addLinkAttributes(html, attributes.href, attributes.newWindow); + } + if (isHTMLAnchorElement) { + linkService.addLinkAttributes(html, attributes.href, attributes.newWindow); + } + if (storage && attributes.dataId) { + this.setupStorage(html, attributes.dataId, element, storage); + } + } + static render(parameters) { + const storage = parameters.annotationStorage; + const linkService = parameters.linkService; + const root = parameters.xfaHtml; + const intent = parameters.intent || "display"; + const rootHtml = document.createElement(root.name); + if (root.attributes) { + this.setAttributes({ + html: rootHtml, + element: root, + intent, + linkService + }); + } + const stack = [[root, -1, rootHtml]]; + const rootDiv = parameters.div; + rootDiv.append(rootHtml); + if (parameters.viewport) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + rootDiv.style.transform = transform; + } + if (intent !== "richText") { + rootDiv.setAttribute("class", "xfaLayer xfaFont"); + } + const textDivs = []; + while (stack.length > 0) { + var _child$attributes; + const [parent, i, html] = stack.at(-1); + if (i + 1 === parent.children.length) { + stack.pop(); + continue; } - - if (storage && attributes.dataId) { - this.setupStorage(html, attributes.dataId, element, storage); + const child = parent.children[++stack.at(-1)[1]]; + if (child === null) { + continue; } - } - }, { - key: "render", - value: function render(parameters) { - var storage = parameters.annotationStorage; - var linkService = parameters.linkService; - var root = parameters.xfaHtml; - var intent = parameters.intent || "display"; - var rootHtml = document.createElement(root.name); - - if (root.attributes) { - this.setAttributes({ - html: rootHtml, - element: root, - intent: intent, - linkService: linkService - }); + const { + name + } = child; + if (name === "#text") { + const node = document.createTextNode(child.value); + textDivs.push(node); + html.append(node); + continue; } - - var stack = [[root, -1, rootHtml]]; - var rootDiv = parameters.div; - rootDiv.appendChild(rootHtml); - - if (parameters.viewport) { - var transform = "matrix(".concat(parameters.viewport.transform.join(","), ")"); - rootDiv.style.transform = transform; + let childHtml; + if (child !== null && child !== void 0 && (_child$attributes = child.attributes) !== null && _child$attributes !== void 0 && _child$attributes.xmlns) { + childHtml = document.createElementNS(child.attributes.xmlns, name); + } else { + childHtml = document.createElement(name); } - - if (intent !== "richText") { - rootDiv.setAttribute("class", "xfaLayer xfaFont"); + html.append(childHtml); + if (child.attributes) { + this.setAttributes({ + html: childHtml, + element: child, + storage, + intent, + linkService + }); } - - var textDivs = []; - - while (stack.length > 0) { - var _child$attributes; - - var _stack = _slicedToArray(stack[stack.length - 1], 3), - parent = _stack[0], - i = _stack[1], - html = _stack[2]; - - if (i + 1 === parent.children.length) { - stack.pop(); - continue; - } - - var child = parent.children[++stack[stack.length - 1][1]]; - - if (child === null) { - continue; - } - - var name = child.name; - - if (name === "#text") { - var node = document.createTextNode(child.value); + if (child.children && child.children.length > 0) { + stack.push([child, -1, childHtml]); + } else if (child.value) { + const node = document.createTextNode(child.value); + if (_xfa_text.XfaText.shouldBuildText(name)) { textDivs.push(node); - html.appendChild(node); - continue; - } - - var childHtml = void 0; - - if (child !== null && child !== void 0 && (_child$attributes = child.attributes) !== null && _child$attributes !== void 0 && _child$attributes.xmlns) { - childHtml = document.createElementNS(child.attributes.xmlns, name); - } else { - childHtml = document.createElement(name); - } - - html.appendChild(childHtml); - - if (child.attributes) { - this.setAttributes({ - html: childHtml, - element: child, - storage: storage, - intent: intent, - linkService: linkService - }); - } - - if (child.children && child.children.length > 0) { - stack.push([child, -1, childHtml]); - } else if (child.value) { - var _node = document.createTextNode(child.value); - - if (_xfa_text.XfaText.shouldBuildText(name)) { - textDivs.push(_node); - } - - childHtml.appendChild(_node); } + childHtml.append(node); } - - var _iterator2 = _createForOfIteratorHelper(rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var el = _step2.value; - el.setAttribute("readOnly", true); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - return { - textDivs: textDivs - }; } - }, { - key: "update", - value: function update(parameters) { - var transform = "matrix(".concat(parameters.viewport.transform.join(","), ")"); - parameters.div.style.transform = transform; - parameters.div.hidden = false; + for (const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) { + el.setAttribute("readOnly", true); } - }]); - - return XfaLayer; -}(); - + return { + textDivs + }; + } + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + parameters.div.style.transform = transform; + parameters.div.hidden = false; + } +} exports.XfaLayer = XfaLayer; /***/ }), -/* 176 */ +/* 159 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -20307,121 +16636,78 @@ exports.XfaLayer = XfaLayer; Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TextLayerRenderTask = void 0; exports.renderTextLayer = renderTextLayer; - var _util = __w_pdfjs_require__(1); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -var MAX_TEXT_DIVS_TO_RENDER = 100000; -var DEFAULT_FONT_SIZE = 30; -var DEFAULT_FONT_ASCENT = 0.8; -var ascentCache = new Map(); -var AllWhitespaceRegexp = /^\s+$/g; - +const MAX_TEXT_DIVS_TO_RENDER = 100000; +const DEFAULT_FONT_SIZE = 30; +const DEFAULT_FONT_ASCENT = 0.8; +const ascentCache = new Map(); function getAscent(fontFamily, ctx) { - var cachedAscent = ascentCache.get(fontFamily); - + const cachedAscent = ascentCache.get(fontFamily); if (cachedAscent) { return cachedAscent; } - ctx.save(); - ctx.font = "".concat(DEFAULT_FONT_SIZE, "px ").concat(fontFamily); - var metrics = ctx.measureText(""); - var ascent = metrics.fontBoundingBoxAscent; - var descent = Math.abs(metrics.fontBoundingBoxDescent); - + ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`; + const metrics = ctx.measureText(""); + let ascent = metrics.fontBoundingBoxAscent; + let descent = Math.abs(metrics.fontBoundingBoxDescent); if (ascent) { ctx.restore(); - var ratio = ascent / (ascent + descent); + const ratio = ascent / (ascent + descent); ascentCache.set(fontFamily, ratio); return ratio; } - ctx.strokeStyle = "red"; ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); ctx.strokeText("g", 0, 0); - var pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; descent = 0; - - for (var i = pixels.length - 1 - 3; i >= 0; i -= 4) { + for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) { if (pixels[i] > 0) { descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE); break; } } - ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); ctx.strokeText("A", 0, DEFAULT_FONT_SIZE); pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; ascent = 0; - - for (var _i = 0, ii = pixels.length; _i < ii; _i += 4) { - if (pixels[_i] > 0) { - ascent = DEFAULT_FONT_SIZE - Math.floor(_i / 4 / DEFAULT_FONT_SIZE); + for (let i = 0, ii = pixels.length; i < ii; i += 4) { + if (pixels[i] > 0) { + ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE); break; } } - ctx.restore(); - if (ascent) { - var _ratio = ascent / (ascent + descent); - - ascentCache.set(fontFamily, _ratio); - return _ratio; + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; } - ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT); return DEFAULT_FONT_ASCENT; } - function appendText(task, geom, styles, ctx) { - var textDiv = document.createElement("span"); - var textDivProperties = task._enhanceTextSelection ? { + const textDiv = document.createElement("span"); + const textDivProperties = { angle: 0, canvasWidth: 0, hasText: geom.str !== "", hasEOL: geom.hasEOL, - originalTransform: null, - paddingBottom: 0, - paddingLeft: 0, - paddingRight: 0, - paddingTop: 0, - scale: 1 - } : { - angle: 0, - canvasWidth: 0, - hasText: geom.str !== "", - hasEOL: geom.hasEOL + fontSize: 0 }; - task._textDivs.push(textDiv); - - var tx = _util.Util.transform(task._viewport.transform, geom.transform); - - var angle = Math.atan2(tx[1], tx[0]); - var style = styles[geom.fontName]; - + const tx = _util.Util.transform(task._viewport.transform, geom.transform); + let angle = Math.atan2(tx[1], tx[0]); + const style = styles[geom.fontName]; if (style.vertical) { angle += Math.PI / 2; } - - var fontHeight = Math.hypot(tx[2], tx[3]); - var fontAscent = fontHeight * getAscent(style.fontFamily, ctx); - var left, top; - + const fontHeight = Math.hypot(tx[2], tx[3]); + const fontAscent = fontHeight * getAscent(style.fontFamily, ctx); + let left, top; if (angle === 0) { left = tx[4]; top = tx[5] - fontAscent; @@ -20429,36 +16715,30 @@ function appendText(task, geom, styles, ctx) { left = tx[4] + fontAscent * Math.sin(angle); top = tx[5] - fontAscent * Math.cos(angle); } - - textDiv.style.left = "".concat(left, "px"); - textDiv.style.top = "".concat(top, "px"); - textDiv.style.fontSize = "".concat(fontHeight, "px"); + textDiv.style.left = `${left}px`; + textDiv.style.top = `${top}px`; + textDiv.style.fontSize = `${fontHeight}px`; textDiv.style.fontFamily = style.fontFamily; + textDivProperties.fontSize = fontHeight; textDiv.setAttribute("role", "presentation"); textDiv.textContent = geom.str; textDiv.dir = geom.dir; - if (task._fontInspectorEnabled) { textDiv.dataset.fontName = geom.fontName; } - if (angle !== 0) { textDivProperties.angle = angle * (180 / Math.PI); } - - var shouldScaleText = false; - - if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) { + let shouldScaleText = false; + if (geom.str.length > 1) { shouldScaleText = true; } else if (geom.str !== " " && geom.transform[0] !== geom.transform[3]) { - var absScaleX = Math.abs(geom.transform[0]), - absScaleY = Math.abs(geom.transform[3]); - + const absScaleX = Math.abs(geom.transform[0]), + absScaleY = Math.abs(geom.transform[3]); if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) { shouldScaleText = true; } } - if (shouldScaleText) { if (style.vertical) { textDivProperties.canvasWidth = geom.height * task._viewport.scale; @@ -20466,390 +16746,42 @@ function appendText(task, geom, styles, ctx) { textDivProperties.canvasWidth = geom.width * task._viewport.scale; } } - task._textDivProperties.set(textDiv, textDivProperties); - if (task._textContentStream) { task._layoutText(textDiv); } - - if (task._enhanceTextSelection && textDivProperties.hasText) { - var angleCos = 1, - angleSin = 0; - - if (angle !== 0) { - angleCos = Math.cos(angle); - angleSin = Math.sin(angle); - } - - var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; - var divHeight = fontHeight; - var m, b; - - if (angle !== 0) { - m = [angleCos, angleSin, -angleSin, angleCos, left, top]; - b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); - } else { - b = [left, top, left + divWidth, top + divHeight]; - } - - task._bounds.push({ - left: b[0], - top: b[1], - right: b[2], - bottom: b[3], - div: textDiv, - size: [divWidth, divHeight], - m: m - }); - } } - function render(task) { if (task._canceled) { return; } - - var textDivs = task._textDivs; - var capability = task._capability; - var textDivsLength = textDivs.length; - + const textDivs = task._textDivs; + const capability = task._capability; + const textDivsLength = textDivs.length; if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { task._renderingDone = true; capability.resolve(); return; } - if (!task._textContentStream) { - for (var i = 0; i < textDivsLength; i++) { - task._layoutText(textDivs[i]); + for (const textDiv of textDivs) { + task._layoutText(textDiv); } } - task._renderingDone = true; capability.resolve(); } - -function findPositiveMin(ts, offset, count) { - var result = 0; - - for (var i = 0; i < count; i++) { - var t = ts[offset++]; - - if (t > 0) { - result = result ? Math.min(t, result) : t; - } - } - - return result; -} - -function expand(task) { - var bounds = task._bounds; - var viewport = task._viewport; - var expanded = expandBounds(viewport.width, viewport.height, bounds); - - for (var i = 0; i < expanded.length; i++) { - var div = bounds[i].div; - - var divProperties = task._textDivProperties.get(div); - - if (divProperties.angle === 0) { - divProperties.paddingLeft = bounds[i].left - expanded[i].left; - divProperties.paddingTop = bounds[i].top - expanded[i].top; - divProperties.paddingRight = expanded[i].right - bounds[i].right; - divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; - - task._textDivProperties.set(div, divProperties); - - continue; - } - - var e = expanded[i], - b = bounds[i]; - var m = b.m, - c = m[0], - s = m[1]; - var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; - var ts = new Float64Array(64); - - for (var j = 0, jj = points.length; j < jj; j++) { - var t = _util.Util.applyTransform(points[j], m); - - ts[j + 0] = c && (e.left - t[0]) / c; - ts[j + 4] = s && (e.top - t[1]) / s; - ts[j + 8] = c && (e.right - t[0]) / c; - ts[j + 12] = s && (e.bottom - t[1]) / s; - ts[j + 16] = s && (e.left - t[0]) / -s; - ts[j + 20] = c && (e.top - t[1]) / c; - ts[j + 24] = s && (e.right - t[0]) / -s; - ts[j + 28] = c && (e.bottom - t[1]) / c; - ts[j + 32] = c && (e.left - t[0]) / -c; - ts[j + 36] = s && (e.top - t[1]) / -s; - ts[j + 40] = c && (e.right - t[0]) / -c; - ts[j + 44] = s && (e.bottom - t[1]) / -s; - ts[j + 48] = s && (e.left - t[0]) / s; - ts[j + 52] = c && (e.top - t[1]) / -c; - ts[j + 56] = s && (e.right - t[0]) / s; - ts[j + 60] = c && (e.bottom - t[1]) / -c; - } - - var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); - divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; - divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; - divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; - divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; - - task._textDivProperties.set(div, divProperties); - } -} - -function expandBounds(width, height, boxes) { - var bounds = boxes.map(function (box, i) { - return { - x1: box.left, - y1: box.top, - x2: box.right, - y2: box.bottom, - index: i, - x1New: undefined, - x2New: undefined - }; - }); - expandBoundsLTR(width, bounds); - var expanded = new Array(boxes.length); - - var _iterator = _createForOfIteratorHelper(bounds), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var b = _step.value; - var i = b.index; - expanded[i] = { - left: b.x1New, - top: 0, - right: b.x2New, - bottom: 0 - }; - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - boxes.map(function (box, i) { - var e = expanded[i], - b = bounds[i]; - b.x1 = box.top; - b.y1 = width - e.right; - b.x2 = box.bottom; - b.y2 = width - e.left; - b.index = i; - b.x1New = undefined; - b.x2New = undefined; - }); - expandBoundsLTR(height, bounds); - - var _iterator2 = _createForOfIteratorHelper(bounds), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var _b = _step2.value; - var _i2 = _b.index; - expanded[_i2].top = _b.x1New; - expanded[_i2].bottom = _b.x2New; - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - return expanded; -} - -function expandBoundsLTR(width, bounds) { - bounds.sort(function (a, b) { - return a.x1 - b.x1 || a.index - b.index; - }); - var fakeBoundary = { - x1: -Infinity, - y1: -Infinity, - x2: 0, - y2: Infinity, - index: -1, - x1New: 0, - x2New: 0 - }; - var horizon = [{ - start: -Infinity, - end: Infinity, - boundary: fakeBoundary - }]; - - var _iterator3 = _createForOfIteratorHelper(bounds), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var boundary = _step3.value; - var i = 0; - - while (i < horizon.length && horizon[i].end <= boundary.y1) { - i++; - } - - var j = horizon.length - 1; - - while (j >= 0 && horizon[j].start >= boundary.y2) { - j--; - } - - var _horizonPart = void 0, - _affectedBoundary = void 0; - - var q = void 0, - k = void 0, - maxXNew = -Infinity; - - for (q = i; q <= j; q++) { - _horizonPart = horizon[q]; - _affectedBoundary = _horizonPart.boundary; - var xNew = void 0; - - if (_affectedBoundary.x2 > boundary.x1) { - xNew = _affectedBoundary.index > boundary.index ? _affectedBoundary.x1New : boundary.x1; - } else if (_affectedBoundary.x2New === undefined) { - xNew = (_affectedBoundary.x2 + boundary.x1) / 2; - } else { - xNew = _affectedBoundary.x2New; - } - - if (xNew > maxXNew) { - maxXNew = xNew; - } - } - - boundary.x1New = maxXNew; - - for (q = i; q <= j; q++) { - _horizonPart = horizon[q]; - _affectedBoundary = _horizonPart.boundary; - - if (_affectedBoundary.x2New === undefined) { - if (_affectedBoundary.x2 > boundary.x1) { - if (_affectedBoundary.index > boundary.index) { - _affectedBoundary.x2New = _affectedBoundary.x2; - } - } else { - _affectedBoundary.x2New = maxXNew; - } - } else if (_affectedBoundary.x2New > maxXNew) { - _affectedBoundary.x2New = Math.max(maxXNew, _affectedBoundary.x2); - } - } - - var changedHorizon = []; - var lastBoundary = null; - - for (q = i; q <= j; q++) { - _horizonPart = horizon[q]; - _affectedBoundary = _horizonPart.boundary; - var useBoundary = _affectedBoundary.x2 > boundary.x2 ? _affectedBoundary : boundary; - - if (lastBoundary === useBoundary) { - changedHorizon[changedHorizon.length - 1].end = _horizonPart.end; - } else { - changedHorizon.push({ - start: _horizonPart.start, - end: _horizonPart.end, - boundary: useBoundary - }); - lastBoundary = useBoundary; - } - } - - if (horizon[i].start < boundary.y1) { - changedHorizon[0].start = boundary.y1; - changedHorizon.unshift({ - start: horizon[i].start, - end: boundary.y1, - boundary: horizon[i].boundary - }); - } - - if (boundary.y2 < horizon[j].end) { - changedHorizon[changedHorizon.length - 1].end = boundary.y2; - changedHorizon.push({ - start: boundary.y2, - end: horizon[j].end, - boundary: horizon[j].boundary - }); - } - - for (q = i; q <= j; q++) { - _horizonPart = horizon[q]; - _affectedBoundary = _horizonPart.boundary; - - if (_affectedBoundary.x2New !== undefined) { - continue; - } - - var used = false; - - for (k = i - 1; !used && k >= 0 && horizon[k].start >= _affectedBoundary.y1; k--) { - used = horizon[k].boundary === _affectedBoundary; - } - - for (k = j + 1; !used && k < horizon.length && horizon[k].end <= _affectedBoundary.y2; k++) { - used = horizon[k].boundary === _affectedBoundary; - } - - for (k = 0; !used && k < changedHorizon.length; k++) { - used = changedHorizon[k].boundary === _affectedBoundary; - } - - if (!used) { - _affectedBoundary.x2New = maxXNew; - } - } - - Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - - for (var _i3 = 0, _horizon = horizon; _i3 < _horizon.length; _i3++) { - var horizonPart = _horizon[_i3]; - var affectedBoundary = horizonPart.boundary; - - if (affectedBoundary.x2New === undefined) { - affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); - } - } -} - -var TextLayerRenderTask = /*#__PURE__*/function () { - function TextLayerRenderTask(_ref) { - var _globalThis$FontInspe, - _this = this; - - var textContent = _ref.textContent, - textContentStream = _ref.textContentStream, - container = _ref.container, - viewport = _ref.viewport, - textDivs = _ref.textDivs, - textContentItemsStr = _ref.textContentItemsStr, - enhanceTextSelection = _ref.enhanceTextSelection; - - _classCallCheck(this, TextLayerRenderTask); - +class TextLayerRenderTask { + constructor(_ref) { + var _globalThis$FontInspe; + let { + textContent, + textContentStream, + container, + viewport, + textDivs, + textContentItemsStr + } = _ref; this._textContent = textContent; this._textContentStream = textContentStream; this._container = container; @@ -20857,293 +16789,163 @@ var TextLayerRenderTask = /*#__PURE__*/function () { this._viewport = viewport; this._textDivs = textDivs || []; this._textContentItemsStr = textContentItemsStr || []; - this._enhanceTextSelection = !!enhanceTextSelection; this._fontInspectorEnabled = !!((_globalThis$FontInspe = globalThis.FontInspector) !== null && _globalThis$FontInspe !== void 0 && _globalThis$FontInspe.enabled); this._reader = null; this._layoutTextLastFontSize = null; - this._layoutTextLastFontFamily = null; - this._layoutTextCtx = null; - this._textDivProperties = new WeakMap(); - this._renderingDone = false; - this._canceled = false; - this._capability = (0, _util.createPromiseCapability)(); - this._renderTimer = null; - this._bounds = []; - - this._capability.promise["finally"](function () { - if (!_this._enhanceTextSelection) { - _this._textDivProperties = null; - } - - if (_this._layoutTextCtx) { - _this._layoutTextCtx.canvas.width = 0; - _this._layoutTextCtx.canvas.height = 0; - _this._layoutTextCtx = null; - } - })["catch"](function () {}); - } - - _createClass(TextLayerRenderTask, [{ - key: "promise", - get: function get() { - return this._capability.promise; - } - }, { - key: "cancel", - value: function cancel() { - this._canceled = true; - - if (this._reader) { - this._reader.cancel(new _util.AbortException("TextLayer task cancelled."))["catch"](function () {}); - - this._reader = null; - } - - if (this._renderTimer !== null) { - clearTimeout(this._renderTimer); - this._renderTimer = null; - } - - this._capability.reject(new Error("TextLayer task cancelled.")); - } - }, { - key: "_processItems", - value: function _processItems(items, styleCache) { - for (var i = 0, len = items.length; i < len; i++) { - if (items[i].str === undefined) { - if (items[i].type === "beginMarkedContentProps" || items[i].type === "beginMarkedContent") { - var parent = this._container; - this._container = document.createElement("span"); - - this._container.classList.add("markedContent"); - - if (items[i].id !== null) { - this._container.setAttribute("id", "".concat(items[i].id)); - } - - parent.appendChild(this._container); - } else if (items[i].type === "endMarkedContent") { - this._container = this._container.parentNode; + this._layoutTextLastFontFamily = null; + this._layoutTextCtx = null; + this._textDivProperties = new WeakMap(); + this._renderingDone = false; + this._canceled = false; + this._capability = (0, _util.createPromiseCapability)(); + this._renderTimer = null; + this._bounds = []; + this._devicePixelRatio = globalThis.devicePixelRatio || 1; + this._capability.promise.finally(() => { + this._textDivProperties = null; + if (this._layoutTextCtx) { + this._layoutTextCtx.canvas.width = 0; + this._layoutTextCtx.canvas.height = 0; + this._layoutTextCtx = null; + } + }).catch(() => {}); + } + get promise() { + return this._capability.promise; + } + cancel() { + this._canceled = true; + if (this._reader) { + this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")).catch(() => {}); + this._reader = null; + } + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; + } + this._capability.reject(new Error("TextLayer task cancelled.")); + } + _processItems(items, styleCache) { + for (const item of items) { + if (item.str === undefined) { + if (item.type === "beginMarkedContentProps" || item.type === "beginMarkedContent") { + const parent = this._container; + this._container = document.createElement("span"); + this._container.classList.add("markedContent"); + if (item.id !== null) { + this._container.setAttribute("id", `${item.id}`); } - - continue; + parent.append(this._container); + } else if (item.type === "endMarkedContent") { + this._container = this._container.parentNode; } - - this._textContentItemsStr.push(items[i].str); - - appendText(this, items[i], styleCache, this._layoutTextCtx); + continue; } - } - }, { - key: "_layoutText", - value: function _layoutText(textDiv) { - var textDivProperties = this._textDivProperties.get(textDiv); - - var transform = ""; - - if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) { - var _textDiv$style = textDiv.style, - fontSize = _textDiv$style.fontSize, - fontFamily = _textDiv$style.fontFamily; - - if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { - this._layoutTextCtx.font = "".concat(fontSize, " ").concat(fontFamily); - this._layoutTextLastFontSize = fontSize; - this._layoutTextLastFontFamily = fontFamily; - } - - var _this$_layoutTextCtx$ = this._layoutTextCtx.measureText(textDiv.textContent), - width = _this$_layoutTextCtx$.width; - - if (width > 0) { - var scale = textDivProperties.canvasWidth / width; - - if (this._enhanceTextSelection) { - textDivProperties.scale = scale; + this._textContentItemsStr.push(item.str); + appendText(this, item, styleCache, this._layoutTextCtx); + } + } + _layoutText(textDiv) { + const textDivProperties = this._textDivProperties.get(textDiv); + let transform = ""; + if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) { + const { + fontFamily + } = textDiv.style; + const { + fontSize + } = textDivProperties; + if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { + this._layoutTextCtx.font = `${fontSize * this._devicePixelRatio}px ${fontFamily}`; + this._layoutTextLastFontSize = fontSize; + this._layoutTextLastFontFamily = fontFamily; + } + const { + width + } = this._layoutTextCtx.measureText(textDiv.textContent); + if (width > 0) { + transform = `scaleX(${this._devicePixelRatio * textDivProperties.canvasWidth / width})`; + } + } + if (textDivProperties.angle !== 0) { + transform = `rotate(${textDivProperties.angle}deg) ${transform}`; + } + if (transform.length > 0) { + textDiv.style.transform = transform; + } + if (textDivProperties.hasText) { + this._container.append(textDiv); + } + if (textDivProperties.hasEOL) { + const br = document.createElement("br"); + br.setAttribute("role", "presentation"); + this._container.append(br); + } + } + _render() { + let timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + const capability = (0, _util.createPromiseCapability)(); + let styleCache = Object.create(null); + const canvas = this._document.createElement("canvas"); + canvas.height = canvas.width = DEFAULT_FONT_SIZE; + this._layoutTextCtx = canvas.getContext("2d", { + alpha: false + }); + if (this._textContent) { + const textItems = this._textContent.items; + const textStyles = this._textContent.styles; + this._processItems(textItems, textStyles); + capability.resolve(); + } else if (this._textContentStream) { + const pump = () => { + this._reader.read().then(_ref2 => { + let { + value, + done + } = _ref2; + if (done) { + capability.resolve(); + return; } - - transform = "scaleX(".concat(scale, ")"); - } - } - - if (textDivProperties.angle !== 0) { - transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); - } - - if (transform.length > 0) { - if (this._enhanceTextSelection) { - textDivProperties.originalTransform = transform; - } - - textDiv.style.transform = transform; - } - - if (textDivProperties.hasText) { - this._container.appendChild(textDiv); - } - - if (textDivProperties.hasEOL) { - var br = document.createElement("br"); - br.setAttribute("role", "presentation"); - - this._container.appendChild(br); - } + Object.assign(styleCache, value.styles); + this._processItems(value.items, styleCache); + pump(); + }, capability.reject); + }; + this._reader = this._textContentStream.getReader(); + pump(); + } else { + throw new Error('Neither "textContent" nor "textContentStream" parameters specified.'); } - }, { - key: "_render", - value: function _render() { - var _this2 = this; - - var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - var capability = (0, _util.createPromiseCapability)(); - var styleCache = Object.create(null); - - var canvas = this._document.createElement("canvas"); - - canvas.height = canvas.width = DEFAULT_FONT_SIZE; - this._layoutTextCtx = canvas.getContext("2d", { - alpha: false - }); - - if (this._textContent) { - var textItems = this._textContent.items; - var textStyles = this._textContent.styles; - - this._processItems(textItems, textStyles); - - capability.resolve(); - } else if (this._textContentStream) { - var pump = function pump() { - _this2._reader.read().then(function (_ref2) { - var value = _ref2.value, - done = _ref2.done; - - if (done) { - capability.resolve(); - return; - } - - Object.assign(styleCache, value.styles); - - _this2._processItems(value.items, styleCache); - - pump(); - }, capability.reject); - }; - - this._reader = this._textContentStream.getReader(); - pump(); + capability.promise.then(() => { + styleCache = null; + if (!timeout) { + render(this); } else { - throw new Error('Neither "textContent" nor "textContentStream" parameters specified.'); - } - - capability.promise.then(function () { - styleCache = null; - - if (!timeout) { - render(_this2); - } else { - _this2._renderTimer = setTimeout(function () { - render(_this2); - _this2._renderTimer = null; - }, timeout); - } - }, this._capability.reject); - } - }, { - key: "expandTextDivs", - value: function expandTextDivs() { - var expandDivs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this._enhanceTextSelection || !this._renderingDone) { - return; - } - - if (this._bounds !== null) { - expand(this); - this._bounds = null; - } - - var transformBuf = [], - paddingBuf = []; - - for (var i = 0, ii = this._textDivs.length; i < ii; i++) { - var div = this._textDivs[i]; - - var divProps = this._textDivProperties.get(div); - - if (!divProps.hasText) { - continue; - } - - if (expandDivs) { - transformBuf.length = 0; - paddingBuf.length = 0; - - if (divProps.originalTransform) { - transformBuf.push(divProps.originalTransform); - } - - if (divProps.paddingTop > 0) { - paddingBuf.push("".concat(divProps.paddingTop, "px")); - transformBuf.push("translateY(".concat(-divProps.paddingTop, "px)")); - } else { - paddingBuf.push(0); - } - - if (divProps.paddingRight > 0) { - paddingBuf.push("".concat(divProps.paddingRight / divProps.scale, "px")); - } else { - paddingBuf.push(0); - } - - if (divProps.paddingBottom > 0) { - paddingBuf.push("".concat(divProps.paddingBottom, "px")); - } else { - paddingBuf.push(0); - } - - if (divProps.paddingLeft > 0) { - paddingBuf.push("".concat(divProps.paddingLeft / divProps.scale, "px")); - transformBuf.push("translateX(".concat(-divProps.paddingLeft / divProps.scale, "px)")); - } else { - paddingBuf.push(0); - } - - div.style.padding = paddingBuf.join(" "); - - if (transformBuf.length) { - div.style.transform = transformBuf.join(" "); - } - } else { - div.style.padding = null; - div.style.transform = divProps.originalTransform; - } + this._renderTimer = setTimeout(() => { + render(this); + this._renderTimer = null; + }, timeout); } - } - }]); - - return TextLayerRenderTask; -}(); - + }, this._capability.reject); + } +} +exports.TextLayerRenderTask = TextLayerRenderTask; function renderTextLayer(renderParameters) { - var task = new TextLayerRenderTask({ + const task = new TextLayerRenderTask({ textContent: renderParameters.textContent, textContentStream: renderParameters.textContentStream, container: renderParameters.container, viewport: renderParameters.viewport, textDivs: renderParameters.textDivs, - textContentItemsStr: renderParameters.textContentItemsStr, - enhanceTextSelection: renderParameters.enhanceTextSelection + textContentItemsStr: renderParameters.textContentItemsStr }); - task._render(renderParameters.timeout); - return task; } /***/ }), -/* 177 */ +/* 160 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -21153,199 +16955,74 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.SVGGraphics = void 0; - +var _display_utils = __w_pdfjs_require__(137); var _util = __w_pdfjs_require__(1); - -var _display_utils = __w_pdfjs_require__(158); - var _is_node = __w_pdfjs_require__(3); - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var SVGGraphics = /*#__PURE__*/_createClass(function SVGGraphics() { - _classCallCheck(this, SVGGraphics); - - (0, _util.unreachable)("Not implemented: SVGGraphics"); -}); - +let SVGGraphics = class { + constructor() { + (0, _util.unreachable)("Not implemented: SVGGraphics"); + } +}; exports.SVGGraphics = SVGGraphics; { - var opListToTree = function opListToTree(opList) { - var opTree = []; - var tmp = []; - - var _iterator = _createForOfIteratorHelper(opList), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var opListElement = _step.value; - - if (opListElement.fn === "save") { - opTree.push({ - fnId: 92, - fn: "group", - items: [] - }); - tmp.push(opTree); - opTree = opTree[opTree.length - 1].items; - continue; - } - - if (opListElement.fn === "restore") { - opTree = tmp.pop(); - } else { - opTree.push(opListElement); - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - - return opTree; - }; - - var pf = function pf(value) { - if (Number.isInteger(value)) { - return value.toString(); - } - - var s = value.toFixed(10); - var i = s.length - 1; - - if (s[i] !== "0") { - return s; - } - - do { - i--; - } while (s[i] === "0"); - - return s.substring(0, s[i] === "." ? i : i + 1); - }; - - var pm = function pm(m) { - if (m[4] === 0 && m[5] === 0) { - if (m[1] === 0 && m[2] === 0) { - if (m[0] === 1 && m[3] === 1) { - return ""; - } - - return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")"); - } - - if (m[0] === m[3] && m[1] === -m[2]) { - var a = Math.acos(m[0]) * 180 / Math.PI; - return "rotate(".concat(pf(a), ")"); - } - } else { - if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { - return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")"); - } - } - - return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")"); - }; - - var SVG_DEFAULTS = { + const SVG_DEFAULTS = { fontStyle: "normal", fontWeight: "normal", fillColor: "#000000" }; - var XML_NS = "http://www.w3.org/XML/1998/namespace"; - var XLINK_NS = "http://www.w3.org/1999/xlink"; - var LINE_CAP_STYLES = ["butt", "round", "square"]; - var LINE_JOIN_STYLES = ["miter", "round", "bevel"]; - - var createObjectURL = function createObjectURL(data) { - var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; - var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - + const XML_NS = "http://www.w3.org/XML/1998/namespace"; + const XLINK_NS = "http://www.w3.org/1999/xlink"; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; + const createObjectURL = function (data) { + let contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (URL.createObjectURL && typeof Blob !== "undefined" && !forceDataSchema) { return URL.createObjectURL(new Blob([data], { type: contentType })); } - - var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - var buffer = "data:".concat(contentType, ";base64,"); - - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xff; - var b2 = data[i + 1] & 0xff; - var b3 = data[i + 2] & 0xff; - var d1 = b1 >> 2, - d2 = (b1 & 3) << 4 | b2 >> 4; - var d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; - var d4 = i + 2 < ii ? b3 & 0x3f : 64; + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let buffer = `data:${contentType};base64,`; + for (let i = 0, ii = data.length; i < ii; i += 3) { + const b1 = data[i] & 0xff; + const b2 = data[i + 1] & 0xff; + const b3 = data[i + 2] & 0xff; + const d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; + const d4 = i + 2 < ii ? b3 & 0x3f : 64; buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; } - return buffer; }; - - var convertImgDataToPng = function () { - var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); - var CHUNK_WRAPPER_SIZE = 12; - var crcTable = new Int32Array(256); - - for (var i = 0; i < 256; i++) { - var c = i; - - for (var h = 0; h < 8; h++) { + const convertImgDataToPng = function () { + const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + const CHUNK_WRAPPER_SIZE = 12; + const crcTable = new Int32Array(256); + for (let i = 0; i < 256; i++) { + let c = i; + for (let h = 0; h < 8; h++) { if (c & 1) { c = 0xedb88320 ^ c >> 1 & 0x7fffffff; } else { c = c >> 1 & 0x7fffffff; } } - crcTable[i] = c; } - function crc32(data, start, end) { - var crc = -1; - - for (var _i = start; _i < end; _i++) { - var a = (crc ^ data[_i]) & 0xff; - var b = crcTable[a]; + let crc = -1; + for (let i = start; i < end; i++) { + const a = (crc ^ data[i]) & 0xff; + const b = crcTable[a]; crc = crc >>> 8 ^ b; } - return crc ^ -1; } - function writePngChunk(type, body, data, offset) { - var p = offset; - var len = body.length; + let p = offset; + const len = body.length; data[p] = len >> 24 & 0xff; data[p + 1] = len >> 16 & 0xff; data[p + 2] = len >> 8 & 0xff; @@ -21358,61 +17035,50 @@ exports.SVGGraphics = SVGGraphics; p += 4; data.set(body, p); p += body.length; - var crc = crc32(data, offset + 4, p); + const crc = crc32(data, offset + 4, p); data[p] = crc >> 24 & 0xff; data[p + 1] = crc >> 16 & 0xff; data[p + 2] = crc >> 8 & 0xff; data[p + 3] = crc & 0xff; } - function adler32(data, start, end) { - var a = 1; - var b = 0; - - for (var _i2 = start; _i2 < end; ++_i2) { - a = (a + (data[_i2] & 0xff)) % 65521; + let a = 1; + let b = 0; + for (let i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; b = (b + a) % 65521; } - return b << 16 | a; } - function deflateSync(literals) { if (!_is_node.isNodeJS) { return deflateSyncUncompressed(literals); } - try { - var input; - + let input; if (parseInt(process.versions.node) >= 8) { input = literals; } else { input = Buffer.from(literals); } - - var output = require("zlib").deflateSync(input, { + const output = require("zlib").deflateSync(input, { level: 9 }); - return output instanceof Uint8Array ? output : new Uint8Array(output); } catch (e) { (0, _util.warn)("Not compressing PNG because zlib.deflateSync is unavailable: " + e); } - return deflateSyncUncompressed(literals); } - function deflateSyncUncompressed(literals) { - var len = literals.length; - var maxBlockLength = 0xffff; - var deflateBlocks = Math.ceil(len / maxBlockLength); - var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); - var pi = 0; + let len = literals.length; + const maxBlockLength = 0xffff; + const deflateBlocks = Math.ceil(len / maxBlockLength); + const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + let pi = 0; idat[pi++] = 0x78; idat[pi++] = 0x9c; - var pos = 0; - + let pos = 0; while (len > maxBlockLength) { idat[pi++] = 0x00; idat[pi++] = 0xff; @@ -21424,7 +17090,6 @@ exports.SVGGraphics = SVGGraphics; pos += maxBlockLength; len -= maxBlockLength; } - idat[pi++] = 0x01; idat[pi++] = len & 0xff; idat[pi++] = len >> 8 & 0xff; @@ -21432,71 +17097,60 @@ exports.SVGGraphics = SVGGraphics; idat[pi++] = (~len & 0xffff) >> 8 & 0xff; idat.set(literals.subarray(pos), pi); pi += literals.length - pos; - var adler = adler32(literals, 0, literals.length); + const adler = adler32(literals, 0, literals.length); idat[pi++] = adler >> 24 & 0xff; idat[pi++] = adler >> 16 & 0xff; idat[pi++] = adler >> 8 & 0xff; idat[pi++] = adler & 0xff; return idat; } - function encode(imgData, kind, forceDataSchema, isMask) { - var width = imgData.width; - var height = imgData.height; - var bitDepth, colorType, lineSize; - var bytes = imgData.data; - + const width = imgData.width; + const height = imgData.height; + let bitDepth, colorType, lineSize; + const bytes = imgData.data; switch (kind) { case _util.ImageKind.GRAYSCALE_1BPP: colorType = 0; bitDepth = 1; lineSize = width + 7 >> 3; break; - case _util.ImageKind.RGB_24BPP: colorType = 2; bitDepth = 8; lineSize = width * 3; break; - case _util.ImageKind.RGBA_32BPP: colorType = 6; bitDepth = 8; lineSize = width * 4; break; - default: throw new Error("invalid format"); } - - var literals = new Uint8Array((1 + lineSize) * height); - var offsetLiterals = 0, - offsetBytes = 0; - - for (var y = 0; y < height; ++y) { + const literals = new Uint8Array((1 + lineSize) * height); + let offsetLiterals = 0, + offsetBytes = 0; + for (let y = 0; y < height; ++y) { literals[offsetLiterals++] = 0; literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); offsetBytes += lineSize; offsetLiterals += lineSize; } - if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { offsetLiterals = 0; - - for (var _y = 0; _y < height; _y++) { + for (let y = 0; y < height; y++) { offsetLiterals++; - - for (var _i3 = 0; _i3 < lineSize; _i3++) { + for (let i = 0; i < lineSize; i++) { literals[offsetLiterals++] ^= 0xff; } } } - - var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); - var idat = deflateSync(literals); - var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; - var data = new Uint8Array(pngLength); - var offset = 0; + const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); + const idat = deflateSync(literals); + const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + const data = new Uint8Array(pngLength); + let offset = 0; data.set(PNG_HEADER, offset); offset += PNG_HEADER.length; writePngChunk("IHDR", ihdr, data, offset); @@ -21506,17 +17160,13 @@ exports.SVGGraphics = SVGGraphics; writePngChunk("IEND", new Uint8Array(0), data, offset); return createObjectURL(data, "image/png", forceDataSchema); } - return function convertImgDataToPng(imgData, forceDataSchema, isMask) { - var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; return encode(imgData, kind, forceDataSchema, isMask); }; }(); - - var SVGExtraState = /*#__PURE__*/function () { - function SVGExtraState() { - _classCallCheck(this, SVGExtraState); - + class SVGExtraState { + constructor() { this.fontSizeScale = 1; this.fontWeight = SVG_DEFAULTS.fontWeight; this.fontSize = 0; @@ -21548,33 +17198,76 @@ exports.SVGGraphics = SVGGraphics; this.clipGroup = null; this.maskId = ""; } - - _createClass(SVGExtraState, [{ - key: "clone", - value: function clone() { - return Object.create(this); + clone() { + return Object.create(this); + } + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + } + function opListToTree(opList) { + let opTree = []; + const tmp = []; + for (const opListElement of opList) { + if (opListElement.fn === "save") { + opTree.push({ + fnId: 92, + fn: "group", + items: [] + }); + tmp.push(opTree); + opTree = opTree.at(-1).items; + continue; } - }, { - key: "setCurrentPoint", - value: function setCurrentPoint(x, y) { - this.x = x; - this.y = y; + if (opListElement.fn === "restore") { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); } - }]); - - return SVGExtraState; - }(); - - var clipCount = 0; - var maskCount = 0; - var shadingCount = 0; - - exports.SVGGraphics = SVGGraphics = /*#__PURE__*/function () { - function SVGGraphics(commonObjs, objs) { - var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, SVGGraphics); - + } + return opTree; + } + function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + const s = value.toFixed(10); + let i = s.length - 1; + if (s[i] !== "0") { + return s; + } + do { + i--; + } while (s[i] === "0"); + return s.substring(0, s[i] === "." ? i : i + 1); + } + function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ""; + } + return `scale(${pf(m[0])} ${pf(m[3])})`; + } + if (m[0] === m[3] && m[1] === -m[2]) { + const a = Math.acos(m[0]) * 180 / Math.PI; + return `rotate(${pf(a)})`; + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return `translate(${pf(m[4])} ${pf(m[5])})`; + } + } + return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`; + } + let clipCount = 0; + let maskCount = 0; + let shadingCount = 0; + exports.SVGGraphics = SVGGraphics = class { + constructor(commonObjs, objs) { + let forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + (0, _display_utils.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future."); this.svgFactory = new _display_utils.DOMSVGFactory(); this.current = new SVGExtraState(); this.transformMatrix = _util.IDENTITY_MATRIX; @@ -21589,1425 +17282,985 @@ exports.SVGGraphics = SVGGraphics; this.cssStyle = null; this.forceDataSchema = !!forceDataSchema; this._operatorIdMapping = []; - - for (var op in _util.OPS) { + for (const op in _util.OPS) { this._operatorIdMapping[_util.OPS[op]] = op; } } - - _createClass(SVGGraphics, [{ - key: "save", - value: function save() { - this.transformStack.push(this.transformMatrix); - var old = this.current; - this.extraStack.push(old); - this.current = old.clone(); - } - }, { - key: "restore", - value: function restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - this.pendingClip = null; - this.tgrp = null; - } - }, { - key: "group", - value: function group(items) { - this.save(); - this.executeOpTree(items); - this.restore(); + getObject(data) { + let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + if (typeof data === "string") { + return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); } - }, { - key: "loadDependencies", - value: function loadDependencies(operatorList) { - var _this = this; - - var fnArray = operatorList.fnArray; - var argsArray = operatorList.argsArray; - - for (var i = 0, ii = fnArray.length; i < ii; i++) { - if (fnArray[i] !== _util.OPS.dependency) { - continue; - } - - var _iterator2 = _createForOfIteratorHelper(argsArray[i]), - _step2; - - try { - var _loop = function _loop() { - var obj = _step2.value; - var objsPool = obj.startsWith("g_") ? _this.commonObjs : _this.objs; - var promise = new Promise(function (resolve) { - objsPool.get(obj, resolve); - }); - - _this.current.dependencies.push(promise); - }; - - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - _loop(); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } + return fallback; + } + save() { + this.transformStack.push(this.transformMatrix); + const old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } + restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } + group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } + loadDependencies(operatorList) { + const fnArray = operatorList.fnArray; + const argsArray = operatorList.argsArray; + for (let i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; } - - return Promise.all(this.current.dependencies); - } - }, { - key: "transform", - value: function transform(a, b, c, d, e, f) { - var transformMatrix = [a, b, c, d, e, f]; - this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); - this.tgrp = null; - } - }, { - key: "getSVG", - value: function getSVG(operatorList, viewport) { - var _this2 = this; - - this.viewport = viewport; - - var svgElement = this._initialize(viewport); - - return this.loadDependencies(operatorList).then(function () { - _this2.transformMatrix = _util.IDENTITY_MATRIX; - - _this2.executeOpTree(_this2.convertOpList(operatorList)); - - return svgElement; - }); - } - }, { - key: "convertOpList", - value: function convertOpList(operatorList) { - var operatorIdMapping = this._operatorIdMapping; - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var opList = []; - - for (var i = 0, ii = fnArray.length; i < ii; i++) { - var fnId = fnArray[i]; - opList.push({ - fnId: fnId, - fn: operatorIdMapping[fnId], - args: argsArray[i] + for (const obj of argsArray[i]) { + const objsPool = obj.startsWith("g_") ? this.commonObjs : this.objs; + const promise = new Promise(resolve => { + objsPool.get(obj, resolve); }); + this.current.dependencies.push(promise); } - - return opListToTree(opList); - } - }, { - key: "executeOpTree", - value: function executeOpTree(opTree) { - var _iterator3 = _createForOfIteratorHelper(opTree), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var opTreeElement = _step3.value; - var fn = opTreeElement.fn; - var fnId = opTreeElement.fnId; - var args = opTreeElement.args; - - switch (fnId | 0) { - case _util.OPS.beginText: - this.beginText(); - break; - - case _util.OPS.dependency: - break; - - case _util.OPS.setLeading: - this.setLeading(args); - break; - - case _util.OPS.setLeadingMoveText: - this.setLeadingMoveText(args[0], args[1]); - break; - - case _util.OPS.setFont: - this.setFont(args); - break; - - case _util.OPS.showText: - this.showText(args[0]); - break; - - case _util.OPS.showSpacedText: - this.showText(args[0]); - break; - - case _util.OPS.endText: - this.endText(); - break; - - case _util.OPS.moveText: - this.moveText(args[0], args[1]); - break; - - case _util.OPS.setCharSpacing: - this.setCharSpacing(args[0]); - break; - - case _util.OPS.setWordSpacing: - this.setWordSpacing(args[0]); - break; - - case _util.OPS.setHScale: - this.setHScale(args[0]); - break; - - case _util.OPS.setTextMatrix: - this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.setTextRise: - this.setTextRise(args[0]); - break; - - case _util.OPS.setTextRenderingMode: - this.setTextRenderingMode(args[0]); - break; - - case _util.OPS.setLineWidth: - this.setLineWidth(args[0]); - break; - - case _util.OPS.setLineJoin: - this.setLineJoin(args[0]); - break; - - case _util.OPS.setLineCap: - this.setLineCap(args[0]); - break; - - case _util.OPS.setMiterLimit: - this.setMiterLimit(args[0]); - break; - - case _util.OPS.setFillRGBColor: - this.setFillRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeRGBColor: - this.setStrokeRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeColorN: - this.setStrokeColorN(args); - break; - - case _util.OPS.setFillColorN: - this.setFillColorN(args); - break; - - case _util.OPS.shadingFill: - this.shadingFill(args[0]); - break; - - case _util.OPS.setDash: - this.setDash(args[0], args[1]); - break; - - case _util.OPS.setRenderingIntent: - this.setRenderingIntent(args[0]); - break; - - case _util.OPS.setFlatness: - this.setFlatness(args[0]); - break; - - case _util.OPS.setGState: - this.setGState(args[0]); - break; - - case _util.OPS.fill: - this.fill(); - break; - - case _util.OPS.eoFill: - this.eoFill(); - break; - - case _util.OPS.stroke: - this.stroke(); - break; - - case _util.OPS.fillStroke: - this.fillStroke(); - break; - - case _util.OPS.eoFillStroke: - this.eoFillStroke(); - break; - - case _util.OPS.clip: - this.clip("nonzero"); - break; - - case _util.OPS.eoClip: - this.clip("evenodd"); - break; - - case _util.OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - - case _util.OPS.paintImageXObject: - this.paintImageXObject(args[0]); - break; - - case _util.OPS.paintInlineImageXObject: - this.paintInlineImageXObject(args[0]); - break; - - case _util.OPS.paintImageMaskXObject: - this.paintImageMaskXObject(args[0]); - break; - - case _util.OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(args[0], args[1]); - break; - - case _util.OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - - case _util.OPS.closePath: - this.closePath(); - break; - - case _util.OPS.closeStroke: - this.closeStroke(); - break; - - case _util.OPS.closeFillStroke: - this.closeFillStroke(); - break; - - case _util.OPS.closeEOFillStroke: - this.closeEOFillStroke(); - break; - - case _util.OPS.nextLine: - this.nextLine(); - break; - - case _util.OPS.transform: - this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.constructPath: - this.constructPath(args[0], args[1]); - break; - - case _util.OPS.endPath: - this.endPath(); - break; - - case 92: - this.group(opTreeElement.items); - break; - - default: - (0, _util.warn)("Unimplemented operator ".concat(fn)); - break; - } - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - }, { - key: "setWordSpacing", - value: function setWordSpacing(wordSpacing) { - this.current.wordSpacing = wordSpacing; - } - }, { - key: "setCharSpacing", - value: function setCharSpacing(charSpacing) { - this.current.charSpacing = charSpacing; - } - }, { - key: "nextLine", - value: function nextLine() { - this.moveText(0, this.current.leading); - } - }, { - key: "setTextMatrix", - value: function setTextMatrix(a, b, c, d, e, f) { - var current = this.current; - current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; - current.textMatrixScale = Math.hypot(a, b); - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.xcoords = []; - current.ycoords = []; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.tspan.setAttributeNS(null, "font-family", current.fontFamily); - current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, "y", pf(-current.y)); - current.txtElement = this.svgFactory.createElement("svg:text"); - current.txtElement.appendChild(current.tspan); - } - }, { - key: "beginText", - value: function beginText() { - var current = this.current; - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.textMatrix = _util.IDENTITY_MATRIX; - current.lineMatrix = _util.IDENTITY_MATRIX; - current.textMatrixScale = 1; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.txtElement = this.svgFactory.createElement("svg:text"); - current.txtgrp = this.svgFactory.createElement("svg:g"); - current.xcoords = []; - current.ycoords = []; } - }, { - key: "moveText", - value: function moveText(x, y) { - var current = this.current; - current.x = current.lineX += x; - current.y = current.lineY += y; - current.xcoords = []; - current.ycoords = []; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.tspan.setAttributeNS(null, "font-family", current.fontFamily); - current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, "y", pf(-current.y)); + return Promise.all(this.current.dependencies); + } + transform(a, b, c, d, e, f) { + const transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + } + getSVG(operatorList, viewport) { + this.viewport = viewport; + const svgElement = this._initialize(viewport); + return this.loadDependencies(operatorList).then(() => { + this.transformMatrix = _util.IDENTITY_MATRIX; + this.executeOpTree(this.convertOpList(operatorList)); + return svgElement; + }); + } + convertOpList(operatorList) { + const operatorIdMapping = this._operatorIdMapping; + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + const opList = []; + for (let i = 0, ii = fnArray.length; i < ii; i++) { + const fnId = fnArray[i]; + opList.push({ + fnId, + fn: operatorIdMapping[fnId], + args: argsArray[i] + }); } - }, { - key: "showText", - value: function showText(glyphs) { - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - - if (fontSize === 0) { - return; - } - - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var vertical = font.vertical; - var spacingDir = vertical ? 1 : -1; - var defaultVMetrics = font.defaultVMetrics; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var x = 0; - - var _iterator4 = _createForOfIteratorHelper(glyphs), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var glyph = _step4.value; - - if (glyph === null) { - x += fontDirection * wordSpacing; - continue; - } else if (typeof glyph === "number") { - x += spacingDir * glyph * fontSize / 1000; - continue; - } - - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var character = glyph.fontChar; - var scaledX = void 0, - scaledY = void 0; - var width = glyph.width; - - if (vertical) { - var vx = void 0; - var vmetric = glyph.vmetric || defaultVMetrics; - vx = glyph.vmetric ? vmetric[1] : width * 0.5; - vx = -vx * widthAdvanceScale; - var vy = vmetric[2] * widthAdvanceScale; - width = vmetric ? -vmetric[0] : width; - scaledX = vx / fontSizeScale; - scaledY = (x + vy) / fontSizeScale; - } else { - scaledX = x / fontSizeScale; - scaledY = 0; - } - - if (glyph.isInFont || font.missingFile) { - current.xcoords.push(current.x + scaledX); - - if (vertical) { - current.ycoords.push(-current.y + scaledY); - } - - current.tspan.textContent += character; - } else {} - - var charWidth = void 0; - - if (vertical) { - charWidth = width * widthAdvanceScale - spacing * fontDirection; - } else { - charWidth = width * widthAdvanceScale + spacing * fontDirection; - } - - x += charWidth; - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); + return opListToTree(opList); + } + executeOpTree(opTree) { + for (const opTreeElement of opTree) { + const fn = opTreeElement.fn; + const fnId = opTreeElement.fnId; + const args = opTreeElement.args; + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; + case _util.OPS.dependency: + break; + case _util.OPS.setLeading: + this.setLeading(args); + break; + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + case _util.OPS.setFont: + this.setFont(args); + break; + case _util.OPS.showText: + this.showText(args[0]); + break; + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + case _util.OPS.endText: + this.endText(); + break; + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + case _util.OPS.setTextRenderingMode: + this.setTextRenderingMode(args[0]); + break; + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + case _util.OPS.setStrokeColorN: + this.setStrokeColorN(args); + break; + case _util.OPS.setFillColorN: + this.setFillColorN(args); + break; + case _util.OPS.shadingFill: + this.shadingFill(args[0]); + break; + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + case _util.OPS.setRenderingIntent: + this.setRenderingIntent(args[0]); + break; + case _util.OPS.setFlatness: + this.setFlatness(args[0]); + break; + case _util.OPS.setGState: + this.setGState(args[0]); + break; + case _util.OPS.fill: + this.fill(); + break; + case _util.OPS.eoFill: + this.eoFill(); + break; + case _util.OPS.stroke: + this.stroke(); + break; + case _util.OPS.fillStroke: + this.fillStroke(); + break; + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + case _util.OPS.clip: + this.clip("nonzero"); + break; + case _util.OPS.eoClip: + this.clip("evenodd"); + break; + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + case _util.OPS.closePath: + this.closePath(); + break; + case _util.OPS.closeStroke: + this.closeStroke(); + break; + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + case _util.OPS.nextLine: + this.nextLine(); + break; + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + case _util.OPS.endPath: + this.endPath(); + break; + case 92: + this.group(opTreeElement.items); + break; + default: + (0, _util.warn)(`Unimplemented operator ${fn}`); + break; } - - current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); - - if (vertical) { - current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" ")); - } else { - current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + } + setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + } + setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + } + nextLine() { + this.moveText(0, this.current.leading); + } + setTextMatrix(a, b, c, d, e, f) { + const current = this.current; + current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; + current.textMatrixScale = Math.hypot(a, b); + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtElement.append(current.tspan); + } + beginText() { + const current = this.current; + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.textMatrix = _util.IDENTITY_MATRIX; + current.lineMatrix = _util.IDENTITY_MATRIX; + current.textMatrixScale = 1; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtgrp = this.svgFactory.createElement("svg:g"); + current.xcoords = []; + current.ycoords = []; + } + moveText(x, y) { + const current = this.current; + current.x = current.lineX += x; + current.y = current.lineY += y; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + showText(glyphs) { + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + if (fontSize === 0) { + return; + } + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + let x = 0; + for (const glyph of glyphs) { + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if (typeof glyph === "number") { + x += spacingDir * glyph * fontSize / 1000; + continue; } - + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + let scaledX, scaledY; + let width = glyph.width; if (vertical) { - current.y -= x; + let vx; + const vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; } else { - current.x += x * textHScale; - } - - current.tspan.setAttributeNS(null, "font-family", current.fontFamily); - current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px")); - - if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { - current.tspan.setAttributeNS(null, "font-style", current.fontStyle); - } - - if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { - current.tspan.setAttributeNS(null, "font-weight", current.fontWeight); + scaledX = x / fontSizeScale; + scaledY = 0; } - - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - if (current.fillColor !== SVG_DEFAULTS.fillColor) { - current.tspan.setAttributeNS(null, "fill", current.fillColor); - } - - if (current.fillAlpha < 1) { - current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); + if (glyph.isInFont || font.missingFile) { + current.xcoords.push(current.x + scaledX); + if (vertical) { + current.ycoords.push(-current.y + scaledY); } - } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { - current.tspan.setAttributeNS(null, "fill", "transparent"); + current.tspan.textContent += character; + } else {} + let charWidth; + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; } else { - current.tspan.setAttributeNS(null, "fill", "none"); - } - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - var lineWidthScale = 1 / (current.textMatrixScale || 1); - - this._setStrokeAttributes(current.tspan, lineWidthScale); - } - - var textMatrix = current.textMatrix; - - if (current.textRise !== 0) { - textMatrix = textMatrix.slice(); - textMatrix[5] += current.textRise; - } - - current.txtElement.setAttributeNS(null, "transform", "".concat(pm(textMatrix), " scale(").concat(pf(textHScale), ", -1)")); - current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve"); - current.txtElement.appendChild(current.tspan); - current.txtgrp.appendChild(current.txtElement); - - this._ensureTransformGroup().appendChild(current.txtElement); - } - }, { - key: "setLeadingMoveText", - value: function setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - } - }, { - key: "addFontStyle", - value: function addFontStyle(fontObj) { - if (!fontObj.data) { - throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" API parameter is set.'); - } - - if (!this.cssStyle) { - this.cssStyle = this.svgFactory.createElement("svg:style"); - this.cssStyle.setAttributeNS(null, "type", "text/css"); - this.defs.appendChild(this.cssStyle); + charWidth = width * widthAdvanceScale + spacing * fontDirection; } - - var url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema); - this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n"); + x += charWidth; } - }, { - key: "setFont", - value: function setFont(details) { - var current = this.current; - var fontObj = this.commonObjs.get(details[0]); - var size = details[1]; - current.font = fontObj; - - if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) { - this.addFontStyle(fontObj); - this.embeddedFonts[fontObj.loadedName] = fontObj; - } - - current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; - var bold = "normal"; - - if (fontObj.black) { - bold = "900"; - } else if (fontObj.bold) { - bold = "bold"; - } - - var italic = fontObj.italic ? "italic" : "normal"; - - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - - current.fontSize = size; - current.fontFamily = fontObj.loadedName; - current.fontWeight = bold; - current.fontStyle = italic; - current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); + if (vertical) { + current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" ")); + } else { current.tspan.setAttributeNS(null, "y", pf(-current.y)); - current.xcoords = []; - current.ycoords = []; - } - }, { - key: "endText", - value: function endText() { - var _current$txtElement; - - var current = this.current; - - if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && (_current$txtElement = current.txtElement) !== null && _current$txtElement !== void 0 && _current$txtElement.hasChildNodes()) { - current.element = current.txtElement; - this.clip("nonzero"); - this.endPath(); - } } - }, { - key: "setLineWidth", - value: function setLineWidth(width) { - if (width > 0) { - this.current.lineWidth = width; - } - } - }, { - key: "setLineCap", - value: function setLineCap(style) { - this.current.lineCap = LINE_CAP_STYLES[style]; - } - }, { - key: "setLineJoin", - value: function setLineJoin(style) { - this.current.lineJoin = LINE_JOIN_STYLES[style]; - } - }, { - key: "setMiterLimit", - value: function setMiterLimit(limit) { - this.current.miterLimit = limit; - } - }, { - key: "setStrokeAlpha", - value: function setStrokeAlpha(strokeAlpha) { - this.current.strokeAlpha = strokeAlpha; - } - }, { - key: "setStrokeRGBColor", - value: function setStrokeRGBColor(r, g, b) { - this.current.strokeColor = _util.Util.makeHexColor(r, g, b); - } - }, { - key: "setFillAlpha", - value: function setFillAlpha(fillAlpha) { - this.current.fillAlpha = fillAlpha; - } - }, { - key: "setFillRGBColor", - value: function setFillRGBColor(r, g, b) { - this.current.fillColor = _util.Util.makeHexColor(r, g, b); - this.current.tspan = this.svgFactory.createElement("svg:tspan"); - this.current.xcoords = []; - this.current.ycoords = []; - } - }, { - key: "setStrokeColorN", - value: function setStrokeColorN(args) { - this.current.strokeColor = this._makeColorN_Pattern(args); - } - }, { - key: "setFillColorN", - value: function setFillColorN(args) { - this.current.fillColor = this._makeColorN_Pattern(args); - } - }, { - key: "shadingFill", - value: function shadingFill(args) { - var width = this.viewport.width; - var height = this.viewport.height; - - var inv = _util.Util.inverseTransform(this.transformMatrix); - - var bl = _util.Util.applyTransform([0, 0], inv); - - var br = _util.Util.applyTransform([0, height], inv); - - var ul = _util.Util.applyTransform([width, 0], inv); - - var ur = _util.Util.applyTransform([width, height], inv); - - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - var rect = this.svgFactory.createElement("svg:rect"); - rect.setAttributeNS(null, "x", x0); - rect.setAttributeNS(null, "y", y0); - rect.setAttributeNS(null, "width", x1 - x0); - rect.setAttributeNS(null, "height", y1 - y0); - rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); - - if (this.current.fillAlpha < 1) { - rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); - } - - this._ensureTransformGroup().appendChild(rect); + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; } - }, { - key: "_makeColorN_Pattern", - value: function _makeColorN_Pattern(args) { - if (args[0] === "TilingPattern") { - return this._makeTilingPattern(args); - } - - return this._makeShadingPattern(args); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, "font-style", current.fontStyle); } - }, { - key: "_makeTilingPattern", - value: function _makeTilingPattern(args) { - var color = args[1]; - var operatorList = args[2]; - var matrix = args[3] || _util.IDENTITY_MATRIX; - - var _args$ = _slicedToArray(args[4], 4), - x0 = _args$[0], - y0 = _args$[1], - x1 = _args$[2], - y1 = _args$[3]; - - var xstep = args[5]; - var ystep = args[6]; - var paintType = args[7]; - var tilingId = "shading".concat(shadingCount++); - - var _Util$normalizeRect = _util.Util.normalizeRect([].concat(_toConsumableArray(_util.Util.applyTransform([x0, y0], matrix)), _toConsumableArray(_util.Util.applyTransform([x1, y1], matrix)))), - _Util$normalizeRect2 = _slicedToArray(_Util$normalizeRect, 4), - tx0 = _Util$normalizeRect2[0], - ty0 = _Util$normalizeRect2[1], - tx1 = _Util$normalizeRect2[2], - ty1 = _Util$normalizeRect2[3]; - - var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix), - _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), - xscale = _Util$singularValueDe2[0], - yscale = _Util$singularValueDe2[1]; - - var txstep = xstep * xscale; - var tystep = ystep * yscale; - var tiling = this.svgFactory.createElement("svg:pattern"); - tiling.setAttributeNS(null, "id", tilingId); - tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); - tiling.setAttributeNS(null, "width", txstep); - tiling.setAttributeNS(null, "height", tystep); - tiling.setAttributeNS(null, "x", "".concat(tx0)); - tiling.setAttributeNS(null, "y", "".concat(ty0)); - var svg = this.svg; - var transformMatrix = this.transformMatrix; - var fillColor = this.current.fillColor; - var strokeColor = this.current.strokeColor; - var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); - this.svg = bbox; - this.transformMatrix = matrix; - - if (paintType === 2) { - var cssColor = _util.Util.makeHexColor.apply(_util.Util, _toConsumableArray(color)); - - this.current.fillColor = cssColor; - this.current.strokeColor = cssColor; - } - - this.executeOpTree(this.convertOpList(operatorList)); - this.svg = svg; - this.transformMatrix = transformMatrix; - this.current.fillColor = fillColor; - this.current.strokeColor = strokeColor; - tiling.appendChild(bbox.childNodes[0]); - this.defs.appendChild(tiling); - return "url(#".concat(tilingId, ")"); + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, "font-weight", current.fontWeight); } - }, { - key: "_makeShadingPattern", - value: function _makeShadingPattern(args) { - if (typeof args === "string") { - args = this.objs.get(args); + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, "fill", current.fillColor); } - - switch (args[0]) { - case "RadialAxial": - var shadingId = "shading".concat(shadingCount++); - var colorStops = args[3]; - var gradient; - - switch (args[1]) { - case "axial": - var point0 = args[4]; - var point1 = args[5]; - gradient = this.svgFactory.createElement("svg:linearGradient"); - gradient.setAttributeNS(null, "id", shadingId); - gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); - gradient.setAttributeNS(null, "x1", point0[0]); - gradient.setAttributeNS(null, "y1", point0[1]); - gradient.setAttributeNS(null, "x2", point1[0]); - gradient.setAttributeNS(null, "y2", point1[1]); - break; - - case "radial": - var focalPoint = args[4]; - var circlePoint = args[5]; - var focalRadius = args[6]; - var circleRadius = args[7]; - gradient = this.svgFactory.createElement("svg:radialGradient"); - gradient.setAttributeNS(null, "id", shadingId); - gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); - gradient.setAttributeNS(null, "cx", circlePoint[0]); - gradient.setAttributeNS(null, "cy", circlePoint[1]); - gradient.setAttributeNS(null, "r", circleRadius); - gradient.setAttributeNS(null, "fx", focalPoint[0]); - gradient.setAttributeNS(null, "fy", focalPoint[1]); - gradient.setAttributeNS(null, "fr", focalRadius); - break; - - default: - throw new Error("Unknown RadialAxial type: ".concat(args[1])); - } - - var _iterator5 = _createForOfIteratorHelper(colorStops), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var colorStop = _step5.value; - var stop = this.svgFactory.createElement("svg:stop"); - stop.setAttributeNS(null, "offset", colorStop[0]); - stop.setAttributeNS(null, "stop-color", colorStop[1]); - gradient.appendChild(stop); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - this.defs.appendChild(gradient); - return "url(#".concat(shadingId, ")"); - - case "Mesh": - (0, _util.warn)("Unimplemented pattern Mesh"); - return null; - - case "Dummy": - return "hotpink"; - - default: - throw new Error("Unknown IR type: ".concat(args[0])); + if (current.fillAlpha < 1) { + current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); } + } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { + current.tspan.setAttributeNS(null, "fill", "transparent"); + } else { + current.tspan.setAttributeNS(null, "fill", "none"); } - }, { - key: "setDash", - value: function setDash(dashArray, dashPhase) { - this.current.dashArray = dashArray; - this.current.dashPhase = dashPhase; - } - }, { - key: "constructPath", - value: function constructPath(ops, args) { - var current = this.current; - var x = current.x, - y = current.y; - var d = []; - var j = 0; - - var _iterator6 = _createForOfIteratorHelper(ops), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var op = _step6.value; - - switch (op | 0) { - case _util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - var xw = x + width; - var yh = y + height; - d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z"); - break; - - case _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - d.push("M", pf(x), pf(y)); - break; - - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - d.push("L", pf(x), pf(y)); - break; - - case _util.OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); - j += 6; - break; - - case _util.OPS.curveTo2: - d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); - x = args[j + 2]; - y = args[j + 3]; - j += 4; - break; - - case _util.OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); - j += 4; - break; - - case _util.OPS.closePath: - d.push("Z"); - break; - } - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - - d = d.join(" "); - - if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { - d = current.path.getAttributeNS(null, "d") + d; - } else { - current.path = this.svgFactory.createElement("svg:path"); - - this._ensureTransformGroup().appendChild(current.path); - } - - current.path.setAttributeNS(null, "d", d); - current.path.setAttributeNS(null, "fill", "none"); - current.element = current.path; - current.setCurrentPoint(x, y); + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + const lineWidthScale = 1 / (current.textMatrixScale || 1); + this._setStrokeAttributes(current.tspan, lineWidthScale); } - }, { - key: "endPath", - value: function endPath() { - var current = this.current; - current.path = null; - - if (!this.pendingClip) { - return; - } - - if (!current.element) { - this.pendingClip = null; - return; - } - - var clipId = "clippath".concat(clipCount++); - var clipPath = this.svgFactory.createElement("svg:clipPath"); - clipPath.setAttributeNS(null, "id", clipId); - clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); - var clipElement = current.element.cloneNode(true); - - if (this.pendingClip === "evenodd") { - clipElement.setAttributeNS(null, "clip-rule", "evenodd"); - } else { - clipElement.setAttributeNS(null, "clip-rule", "nonzero"); - } - - this.pendingClip = null; - clipPath.appendChild(clipElement); - this.defs.appendChild(clipPath); - - if (current.activeClipUrl) { - current.clipGroup = null; - - var _iterator7 = _createForOfIteratorHelper(this.extraStack), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var prev = _step7.value; - prev.clipGroup = null; - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - - clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); - } - - current.activeClipUrl = "url(#".concat(clipId, ")"); - this.tgrp = null; + let textMatrix = current.textMatrix; + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; } - }, { - key: "clip", - value: function clip(type) { - this.pendingClip = type; + current.txtElement.setAttributeNS(null, "transform", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`); + current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve"); + current.txtElement.append(current.tspan); + current.txtgrp.append(current.txtElement); + this._ensureTransformGroup().append(current.txtElement); + } + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + addFontStyle(fontObj) { + if (!fontObj.data) { + throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" API parameter is set.'); } - }, { - key: "closePath", - value: function closePath() { - var current = this.current; - - if (current.path) { - var d = "".concat(current.path.getAttributeNS(null, "d"), "Z"); - current.path.setAttributeNS(null, "d", d); - } + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement("svg:style"); + this.cssStyle.setAttributeNS(null, "type", "text/css"); + this.defs.append(this.cssStyle); } - }, { - key: "setLeading", - value: function setLeading(leading) { - this.current.leading = -leading; + const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += `@font-face { font-family: "${fontObj.loadedName}";` + ` src: url(${url}); }\n`; + } + setFont(details) { + const current = this.current; + const fontObj = this.commonObjs.get(details[0]); + let size = details[1]; + current.font = fontObj; + if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; } - }, { - key: "setTextRise", - value: function setTextRise(textRise) { - this.current.textRise = textRise; + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; + let bold = "normal"; + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; } - }, { - key: "setTextRenderingMode", - value: function setTextRenderingMode(textRenderingMode) { - this.current.textRenderingMode = textRenderingMode; + const italic = fontObj.italic ? "italic" : "normal"; + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; } - }, { - key: "setHScale", - value: function setHScale(scale) { - this.current.textHScale = scale / 100; + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.xcoords = []; + current.ycoords = []; + } + endText() { + var _current$txtElement; + const current = this.current; + if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && (_current$txtElement = current.txtElement) !== null && _current$txtElement !== void 0 && _current$txtElement.hasChildNodes()) { + current.element = current.txtElement; + this.clip("nonzero"); + this.endPath(); } - }, { - key: "setRenderingIntent", - value: function setRenderingIntent(intent) {} - }, { - key: "setFlatness", - value: function setFlatness(flatness) {} - }, { - key: "setGState", - value: function setGState(states) { - var _iterator8 = _createForOfIteratorHelper(states), - _step8; - - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var _step8$value = _slicedToArray(_step8.value, 2), - key = _step8$value[0], - value = _step8$value[1]; - - switch (key) { - case "LW": - this.setLineWidth(value); - break; - - case "LC": - this.setLineCap(value); - break; - - case "LJ": - this.setLineJoin(value); - break; - - case "ML": - this.setMiterLimit(value); - break; - - case "D": - this.setDash(value[0], value[1]); - break; - - case "RI": - this.setRenderingIntent(value); - break; - - case "FL": - this.setFlatness(value); - break; - - case "Font": - this.setFont(value); - break; - - case "CA": - this.setStrokeAlpha(value); - break; - - case "ca": - this.setFillAlpha(value); - break; - - default: - (0, _util.warn)("Unimplemented graphic state operator ".concat(key)); - break; - } + } + setLineWidth(width) { + if (width > 0) { + this.current.lineWidth = width; + } + } + setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + } + setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + } + setMiterLimit(limit) { + this.current.miterLimit = limit; + } + setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + } + setStrokeRGBColor(r, g, b) { + this.current.strokeColor = _util.Util.makeHexColor(r, g, b); + } + setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + } + setFillRGBColor(r, g, b) { + this.current.fillColor = _util.Util.makeHexColor(r, g, b); + this.current.tspan = this.svgFactory.createElement("svg:tspan"); + this.current.xcoords = []; + this.current.ycoords = []; + } + setStrokeColorN(args) { + this.current.strokeColor = this._makeColorN_Pattern(args); + } + setFillColorN(args) { + this.current.fillColor = this._makeColorN_Pattern(args); + } + shadingFill(args) { + const width = this.viewport.width; + const height = this.viewport.height; + const inv = _util.Util.inverseTransform(this.transformMatrix); + const bl = _util.Util.applyTransform([0, 0], inv); + const br = _util.Util.applyTransform([0, height], inv); + const ul = _util.Util.applyTransform([width, 0], inv); + const ur = _util.Util.applyTransform([width, height], inv); + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", x0); + rect.setAttributeNS(null, "y", y0); + rect.setAttributeNS(null, "width", x1 - x0); + rect.setAttributeNS(null, "height", y1 - y0); + rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); + if (this.current.fillAlpha < 1) { + rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); + } + this._ensureTransformGroup().append(rect); + } + _makeColorN_Pattern(args) { + if (args[0] === "TilingPattern") { + return this._makeTilingPattern(args); + } + return this._makeShadingPattern(args); + } + _makeTilingPattern(args) { + const color = args[1]; + const operatorList = args[2]; + const matrix = args[3] || _util.IDENTITY_MATRIX; + const [x0, y0, x1, y1] = args[4]; + const xstep = args[5]; + const ystep = args[6]; + const paintType = args[7]; + const tilingId = `shading${shadingCount++}`; + const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]); + const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix); + const txstep = xstep * xscale; + const tystep = ystep * yscale; + const tiling = this.svgFactory.createElement("svg:pattern"); + tiling.setAttributeNS(null, "id", tilingId); + tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); + tiling.setAttributeNS(null, "width", txstep); + tiling.setAttributeNS(null, "height", tystep); + tiling.setAttributeNS(null, "x", `${tx0}`); + tiling.setAttributeNS(null, "y", `${ty0}`); + const svg = this.svg; + const transformMatrix = this.transformMatrix; + const fillColor = this.current.fillColor; + const strokeColor = this.current.strokeColor; + const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); + this.svg = bbox; + this.transformMatrix = matrix; + if (paintType === 2) { + const cssColor = _util.Util.makeHexColor(...color); + this.current.fillColor = cssColor; + this.current.strokeColor = cssColor; + } + this.executeOpTree(this.convertOpList(operatorList)); + this.svg = svg; + this.transformMatrix = transformMatrix; + this.current.fillColor = fillColor; + this.current.strokeColor = strokeColor; + tiling.append(bbox.childNodes[0]); + this.defs.append(tiling); + return `url(#${tilingId})`; + } + _makeShadingPattern(args) { + if (typeof args === "string") { + args = this.objs.get(args); + } + switch (args[0]) { + case "RadialAxial": + const shadingId = `shading${shadingCount++}`; + const colorStops = args[3]; + let gradient; + switch (args[1]) { + case "axial": + const point0 = args[4]; + const point1 = args[5]; + gradient = this.svgFactory.createElement("svg:linearGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "x1", point0[0]); + gradient.setAttributeNS(null, "y1", point0[1]); + gradient.setAttributeNS(null, "x2", point1[0]); + gradient.setAttributeNS(null, "y2", point1[1]); + break; + case "radial": + const focalPoint = args[4]; + const circlePoint = args[5]; + const focalRadius = args[6]; + const circleRadius = args[7]; + gradient = this.svgFactory.createElement("svg:radialGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "cx", circlePoint[0]); + gradient.setAttributeNS(null, "cy", circlePoint[1]); + gradient.setAttributeNS(null, "r", circleRadius); + gradient.setAttributeNS(null, "fx", focalPoint[0]); + gradient.setAttributeNS(null, "fy", focalPoint[1]); + gradient.setAttributeNS(null, "fr", focalRadius); + break; + default: + throw new Error(`Unknown RadialAxial type: ${args[1]}`); } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); + for (const colorStop of colorStops) { + const stop = this.svgFactory.createElement("svg:stop"); + stop.setAttributeNS(null, "offset", colorStop[0]); + stop.setAttributeNS(null, "stop-color", colorStop[1]); + gradient.append(stop); + } + this.defs.append(gradient); + return `url(#${shadingId})`; + case "Mesh": + (0, _util.warn)("Unimplemented pattern Mesh"); + return null; + case "Dummy": + return "hotpink"; + default: + throw new Error(`Unknown IR type: ${args[0]}`); + } + } + setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + } + constructPath(ops, args) { + const current = this.current; + let x = current.x, + y = current.y; + let d = []; + let j = 0; + for (const op of ops) { + switch (op | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z"); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push("M", pf(x), pf(y)); + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push("L", pf(x), pf(y)); + break; + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + case _util.OPS.curveTo2: + d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + case _util.OPS.closePath: + d.push("Z"); + break; } } - }, { - key: "fill", - value: function fill() { - var current = this.current; - - if (current.element) { - current.element.setAttributeNS(null, "fill", current.fillColor); - current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); - this.endPath(); - } + d = d.join(" "); + if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { + d = current.path.getAttributeNS(null, "d") + d; + } else { + current.path = this.svgFactory.createElement("svg:path"); + this._ensureTransformGroup().append(current.path); } - }, { - key: "stroke", - value: function stroke() { - var current = this.current; - - if (current.element) { - this._setStrokeAttributes(current.element); - - current.element.setAttributeNS(null, "fill", "none"); - this.endPath(); - } + current.path.setAttributeNS(null, "d", d); + current.path.setAttributeNS(null, "fill", "none"); + current.element = current.path; + current.setCurrentPoint(x, y); + } + endPath() { + const current = this.current; + current.path = null; + if (!this.pendingClip) { + return; } - }, { - key: "_setStrokeAttributes", - value: function _setStrokeAttributes(element) { - var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var current = this.current; - var dashArray = current.dashArray; - - if (lineWidthScale !== 1 && dashArray.length > 0) { - dashArray = dashArray.map(function (value) { - return lineWidthScale * value; - }); - } - - element.setAttributeNS(null, "stroke", current.strokeColor); - element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); - element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); - element.setAttributeNS(null, "stroke-linecap", current.lineCap); - element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); - element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); - element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); - element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); + if (!current.element) { + this.pendingClip = null; + return; } - }, { - key: "eoFill", - value: function eoFill() { - if (this.current.element) { - this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); + const clipId = `clippath${clipCount++}`; + const clipPath = this.svgFactory.createElement("svg:clipPath"); + clipPath.setAttributeNS(null, "id", clipId); + clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); + const clipElement = current.element.cloneNode(true); + if (this.pendingClip === "evenodd") { + clipElement.setAttributeNS(null, "clip-rule", "evenodd"); + } else { + clipElement.setAttributeNS(null, "clip-rule", "nonzero"); + } + this.pendingClip = null; + clipPath.append(clipElement); + this.defs.append(clipPath); + if (current.activeClipUrl) { + current.clipGroup = null; + for (const prev of this.extraStack) { + prev.clipGroup = null; } - - this.fill(); + clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); } - }, { - key: "fillStroke", - value: function fillStroke() { - this.stroke(); - this.fill(); + current.activeClipUrl = `url(#${clipId})`; + this.tgrp = null; + } + clip(type) { + this.pendingClip = type; + } + closePath() { + const current = this.current; + if (current.path) { + const d = `${current.path.getAttributeNS(null, "d")}Z`; + current.path.setAttributeNS(null, "d", d); } - }, { - key: "eoFillStroke", - value: function eoFillStroke() { - if (this.current.element) { - this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); + } + setLeading(leading) { + this.current.leading = -leading; + } + setTextRise(textRise) { + this.current.textRise = textRise; + } + setTextRenderingMode(textRenderingMode) { + this.current.textRenderingMode = textRenderingMode; + } + setHScale(scale) { + this.current.textHScale = scale / 100; + } + setRenderingIntent(intent) {} + setFlatness(flatness) {} + setGState(states) { + for (const [key, value] of states) { + switch (key) { + case "LW": + this.setLineWidth(value); + break; + case "LC": + this.setLineCap(value); + break; + case "LJ": + this.setLineJoin(value); + break; + case "ML": + this.setMiterLimit(value); + break; + case "D": + this.setDash(value[0], value[1]); + break; + case "RI": + this.setRenderingIntent(value); + break; + case "FL": + this.setFlatness(value); + break; + case "Font": + this.setFont(value); + break; + case "CA": + this.setStrokeAlpha(value); + break; + case "ca": + this.setFillAlpha(value); + break; + default: + (0, _util.warn)(`Unimplemented graphic state operator ${key}`); + break; } - - this.fillStroke(); } - }, { - key: "closeStroke", - value: function closeStroke() { - this.closePath(); - this.stroke(); + } + fill() { + const current = this.current; + if (current.element) { + current.element.setAttributeNS(null, "fill", current.fillColor); + current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); + this.endPath(); } - }, { - key: "closeFillStroke", - value: function closeFillStroke() { - this.closePath(); - this.fillStroke(); + } + stroke() { + const current = this.current; + if (current.element) { + this._setStrokeAttributes(current.element); + current.element.setAttributeNS(null, "fill", "none"); + this.endPath(); } - }, { - key: "closeEOFillStroke", - value: function closeEOFillStroke() { - this.closePath(); - this.eoFillStroke(); + } + _setStrokeAttributes(element) { + let lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + const current = this.current; + let dashArray = current.dashArray; + if (lineWidthScale !== 1 && dashArray.length > 0) { + dashArray = dashArray.map(function (value) { + return lineWidthScale * value; + }); } - }, { - key: "paintSolidColorImageMask", - value: function paintSolidColorImageMask() { - var rect = this.svgFactory.createElement("svg:rect"); - rect.setAttributeNS(null, "x", "0"); - rect.setAttributeNS(null, "y", "0"); - rect.setAttributeNS(null, "width", "1px"); - rect.setAttributeNS(null, "height", "1px"); - rect.setAttributeNS(null, "fill", this.current.fillColor); - - this._ensureTransformGroup().appendChild(rect); + element.setAttributeNS(null, "stroke", current.strokeColor); + element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); + element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); + element.setAttributeNS(null, "stroke-linecap", current.lineCap); + element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); + element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); + element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); + element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); + } + eoFill() { + var _this$current$element; + (_this$current$element = this.current.element) === null || _this$current$element === void 0 ? void 0 : _this$current$element.setAttributeNS(null, "fill-rule", "evenodd"); + this.fill(); + } + fillStroke() { + this.stroke(); + this.fill(); + } + eoFillStroke() { + var _this$current$element2; + (_this$current$element2 = this.current.element) === null || _this$current$element2 === void 0 ? void 0 : _this$current$element2.setAttributeNS(null, "fill-rule", "evenodd"); + this.fillStroke(); + } + closeStroke() { + this.closePath(); + this.stroke(); + } + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } + paintSolidColorImageMask() { + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", "1px"); + rect.setAttributeNS(null, "height", "1px"); + rect.setAttributeNS(null, "fill", this.current.fillColor); + this._ensureTransformGroup().append(rect); + } + paintImageXObject(objId) { + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`); + return; } - }, { - key: "paintImageXObject", - value: function paintImageXObject(objId) { - var imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); - - if (!imgData) { - (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet")); - return; - } - - this.paintInlineImageXObject(imgData); + this.paintInlineImageXObject(imgData); + } + paintInlineImageXObject(imgData, mask) { + const width = imgData.width; + const height = imgData.height; + const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", "0"); + cliprect.setAttributeNS(null, "y", "0"); + cliprect.setAttributeNS(null, "width", pf(width)); + cliprect.setAttributeNS(null, "height", pf(height)); + this.current.element = cliprect; + this.clip("nonzero"); + const imgEl = this.svgFactory.createElement("svg:image"); + imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc); + imgEl.setAttributeNS(null, "x", "0"); + imgEl.setAttributeNS(null, "y", pf(-height)); + imgEl.setAttributeNS(null, "width", pf(width) + "px"); + imgEl.setAttributeNS(null, "height", pf(height) + "px"); + imgEl.setAttributeNS(null, "transform", `scale(${pf(1 / width)} ${pf(-1 / height)})`); + if (mask) { + mask.append(imgEl); + } else { + this._ensureTransformGroup().append(imgEl); } - }, { - key: "paintInlineImageXObject", - value: function paintInlineImageXObject(imgData, mask) { - var width = imgData.width; - var height = imgData.height; - var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); - var cliprect = this.svgFactory.createElement("svg:rect"); - cliprect.setAttributeNS(null, "x", "0"); - cliprect.setAttributeNS(null, "y", "0"); + } + paintImageMaskXObject(img) { + const imgData = this.getObject(img.data, img); + if (imgData.bitmap) { + (0, _util.warn)("paintImageMaskXObject: ImageBitmap support is not implemented, " + "ensure that the `isOffscreenCanvasSupported` API parameter is disabled."); + return; + } + const current = this.current; + const width = imgData.width; + const height = imgData.height; + const fillColor = current.fillColor; + current.maskId = `mask${maskCount++}`; + const mask = this.svgFactory.createElement("svg:mask"); + mask.setAttributeNS(null, "id", current.maskId); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", pf(width)); + rect.setAttributeNS(null, "height", pf(height)); + rect.setAttributeNS(null, "fill", fillColor); + rect.setAttributeNS(null, "mask", `url(#${current.maskId})`); + this.defs.append(mask); + this._ensureTransformGroup().append(rect); + this.paintInlineImageXObject(imgData, mask); + } + paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); + } + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", bbox[0]); + cliprect.setAttributeNS(null, "y", bbox[1]); cliprect.setAttributeNS(null, "width", pf(width)); cliprect.setAttributeNS(null, "height", pf(height)); this.current.element = cliprect; this.clip("nonzero"); - var imgEl = this.svgFactory.createElement("svg:image"); - imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc); - imgEl.setAttributeNS(null, "x", "0"); - imgEl.setAttributeNS(null, "y", pf(-height)); - imgEl.setAttributeNS(null, "width", pf(width) + "px"); - imgEl.setAttributeNS(null, "height", pf(height) + "px"); - imgEl.setAttributeNS(null, "transform", "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")")); - - if (mask) { - mask.appendChild(imgEl); - } else { - this._ensureTransformGroup().appendChild(imgEl); - } - } - }, { - key: "paintImageMaskXObject", - value: function paintImageMaskXObject(imgData) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - var fillColor = current.fillColor; - current.maskId = "mask".concat(maskCount++); - var mask = this.svgFactory.createElement("svg:mask"); - mask.setAttributeNS(null, "id", current.maskId); - var rect = this.svgFactory.createElement("svg:rect"); - rect.setAttributeNS(null, "x", "0"); - rect.setAttributeNS(null, "y", "0"); - rect.setAttributeNS(null, "width", pf(width)); - rect.setAttributeNS(null, "height", pf(height)); - rect.setAttributeNS(null, "fill", fillColor); - rect.setAttributeNS(null, "mask", "url(#".concat(current.maskId, ")")); - this.defs.appendChild(mask); - - this._ensureTransformGroup().appendChild(rect); - - this.paintInlineImageXObject(imgData, mask); - } - }, { - key: "paintFormXObjectBegin", - value: function paintFormXObjectBegin(matrix, bbox) { - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); - } - - if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var cliprect = this.svgFactory.createElement("svg:rect"); - cliprect.setAttributeNS(null, "x", bbox[0]); - cliprect.setAttributeNS(null, "y", bbox[1]); - cliprect.setAttributeNS(null, "width", pf(width)); - cliprect.setAttributeNS(null, "height", pf(height)); - this.current.element = cliprect; - this.clip("nonzero"); - this.endPath(); - } - } - }, { - key: "paintFormXObjectEnd", - value: function paintFormXObjectEnd() {} - }, { - key: "_initialize", - value: function _initialize(viewport) { - var svg = this.svgFactory.create(viewport.width, viewport.height); - var definitions = this.svgFactory.createElement("svg:defs"); - svg.appendChild(definitions); - this.defs = definitions; - var rootGroup = this.svgFactory.createElement("svg:g"); - rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); - svg.appendChild(rootGroup); - this.svg = rootGroup; - return svg; - } - }, { - key: "_ensureClipGroup", - value: function _ensureClipGroup() { - if (!this.current.clipGroup) { - var clipGroup = this.svgFactory.createElement("svg:g"); - clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); - this.svg.appendChild(clipGroup); - this.current.clipGroup = clipGroup; - } - - return this.current.clipGroup; + this.endPath(); } - }, { - key: "_ensureTransformGroup", - value: function _ensureTransformGroup() { - if (!this.tgrp) { - this.tgrp = this.svgFactory.createElement("svg:g"); - this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); - - if (this.current.activeClipUrl) { - this._ensureClipGroup().appendChild(this.tgrp); - } else { - this.svg.appendChild(this.tgrp); - } + } + paintFormXObjectEnd() {} + _initialize(viewport) { + const svg = this.svgFactory.create(viewport.width, viewport.height); + const definitions = this.svgFactory.createElement("svg:defs"); + svg.append(definitions); + this.defs = definitions; + const rootGroup = this.svgFactory.createElement("svg:g"); + rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); + svg.append(rootGroup); + this.svg = rootGroup; + return svg; + } + _ensureClipGroup() { + if (!this.current.clipGroup) { + const clipGroup = this.svgFactory.createElement("svg:g"); + clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); + this.svg.append(clipGroup); + this.current.clipGroup = clipGroup; + } + return this.current.clipGroup; + } + _ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement("svg:g"); + this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); + if (this.current.activeClipUrl) { + this._ensureClipGroup().append(this.tgrp); + } else { + this.svg.append(this.tgrp); } - - return this.tgrp; } - }]); - - return SVGGraphics; - }(); + return this.tgrp; + } + }; } /***/ }), -/* 178 */ +/* 161 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } - Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PDFNodeStream = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - var _util = __w_pdfjs_require__(1); - -var _network_utils = __w_pdfjs_require__(179); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - +var _network_utils = __w_pdfjs_require__(162); ; - -var fs = require("fs"); - -var http = require("http"); - -var https = require("https"); - -var url = require("url"); - -var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; - +const fs = require("fs"); +const http = require("http"); +const https = require("https"); +const url = require("url"); +const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; function parseUrl(sourceUrl) { - var parsedUrl = url.parse(sourceUrl); - + const parsedUrl = url.parse(sourceUrl); if (parsedUrl.protocol === "file:" || parsedUrl.host) { return parsedUrl; } - if (/^[a-z]:[/\\]/i.test(sourceUrl)) { - return url.parse("file:///".concat(sourceUrl)); + return url.parse(`file:///${sourceUrl}`); } - if (!parsedUrl.host) { parsedUrl.protocol = "file:"; } - return parsedUrl; } - -var PDFNodeStream = /*#__PURE__*/function () { - function PDFNodeStream(source) { - _classCallCheck(this, PDFNodeStream); - +class PDFNodeStream { + constructor(source) { this.source = source; this.url = parseUrl(source.url); this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:"; @@ -23016,239 +18269,130 @@ var PDFNodeStream = /*#__PURE__*/function () { this._fullRequestReader = null; this._rangeRequestReaders = []; } - - _createClass(PDFNodeStream, [{ - key: "_progressiveDataLength", - get: function get() { - var _this$_fullRequestRea, _this$_fullRequestRea2; - - return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0; - } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); - this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); - return this._fullRequestReader; - } - }, { - key: "getRangeReader", - value: function getRangeReader(start, end) { - if (end <= this._progressiveDataLength) { - return null; - } - - var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); - - this._rangeRequestReaders.push(rangeReader); - - return rangeReader; + get _progressiveDataLength() { + var _this$_fullRequestRea; + return ((_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea._loaded) ?? 0; + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); + this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); + return this._fullRequestReader; + } + getRangeReader(start, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - - var _iterator = _createForOfIteratorHelper(this._rangeRequestReaders.slice(0)), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var reader = _step.value; - reader.cancel(reason); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } + const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + this._rangeRequestReaders.push(rangeReader); + return rangeReader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea2; + (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }]); - - return PDFNodeStream; -}(); - + } +} exports.PDFNodeStream = PDFNodeStream; - -var BaseFullReader = /*#__PURE__*/function () { - function BaseFullReader(stream) { - _classCallCheck(this, BaseFullReader); - +class BaseFullReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; this.onProgress = null; - var source = stream.source; + const source = stream.source; this._contentLength = source.length; this._loaded = 0; this._filename = null; this._disableRange = source.disableRange || false; this._rangeChunkSize = source.rangeChunkSize; - if (!this._rangeChunkSize && !this._disableRange) { this._disableRange = true; } - this._isStreamingSupported = !source.disableStream; this._isRangeSupported = !source.disableRange; this._readableStream = null; this._readCapability = (0, _util.createPromiseCapability)(); this._headersCapability = (0, _util.createPromiseCapability)(); } - - _createClass(BaseFullReader, [{ - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._readCapability.promise; - - case 2: - if (!this._done) { - _context.next = 4; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 4: - if (!this._storedError) { - _context.next = 6; - break; - } - - throw this._storedError; - - case 6: - chunk = this._readableStream.read(); - - if (!(chunk === null)) { - _context.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + get headersReady() { + return this._headersCapability.promise; + } + get filename() { + return this._filename; + } + get contentLength() { + return this._contentLength; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress; + await this._readCapability.promise; + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; - + if (this._storedError) { + throw this._storedError; + } + const chunk = this._readableStream.read(); + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + this._loaded += chunk.length; + (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { + loaded: this._loaded, + total: this._contentLength + }); + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + return; + } + this._readableStream.destroy(reason); + } + _error(reason) { + this._storedError = reason; + this._readCapability.resolve(); + } + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + if (!this._isStreamingSupported && this._isRangeSupported) { + this._error(new _util.AbortException("streaming is disabled")); } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this = this; - - this._readableStream = readableStream; - readableStream.on("readable", function () { - _this._readCapability.resolve(); - }); - readableStream.on("end", function () { - readableStream.destroy(); - _this._done = true; - - _this._readCapability.resolve(); - }); - readableStream.on("error", function (reason) { - _this._error(reason); - }); - - if (!this._isStreamingSupported && this._isRangeSupported) { - this._error(new _util.AbortException("streaming is disabled")); - } - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } + if (this._storedError) { + this._readableStream.destroy(this._storedError); } - }]); - - return BaseFullReader; -}(); - -var BaseRangeReader = /*#__PURE__*/function () { - function BaseRangeReader(stream) { - _classCallCheck(this, BaseRangeReader); - + } +} +class BaseRangeReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; @@ -23256,132 +18400,68 @@ var BaseRangeReader = /*#__PURE__*/function () { this._loaded = 0; this._readableStream = null; this._readCapability = (0, _util.createPromiseCapability)(); - var source = stream.source; + const source = stream.source; this._isStreamingSupported = !source.disableStream; } - - _createClass(BaseRangeReader, [{ - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; - - case 2: - if (!this._done) { - _context2.next = 4; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 4: - if (!this._storedError) { - _context2.next = 6; - break; - } - - throw this._storedError; - - case 6: - chunk = this._readableStream.read(); - - if (!(chunk === null)) { - _context2.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context2.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress2; + await this._readCapability.promise; + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; - - this._readCapability.resolve(); + if (this._storedError) { + throw this._storedError; } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this2 = this; - - this._readableStream = readableStream; - readableStream.on("readable", function () { - _this2._readCapability.resolve(); - }); - readableStream.on("end", function () { - readableStream.destroy(); - _this2._done = true; - - _this2._readCapability.resolve(); - }); - readableStream.on("error", function (reason) { - _this2._error(reason); - }); - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } + const chunk = this._readableStream.read(); + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); } - }]); - - return BaseRangeReader; -}(); - + this._loaded += chunk.length; + (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { + loaded: this._loaded + }); + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + return; + } + this._readableStream.destroy(reason); + } + _error(reason) { + this._storedError = reason; + this._readCapability.resolve(); + } + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; + this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } +} function createRequestOptions(parsedUrl, headers) { return { protocol: parsedUrl.protocol, @@ -23390,203 +18470,120 @@ function createRequestOptions(parsedUrl, headers) { port: parsedUrl.port, path: parsedUrl.path, method: "GET", - headers: headers + headers }; } - -var PDFNodeStreamFullReader = /*#__PURE__*/function (_BaseFullReader) { - _inherits(PDFNodeStreamFullReader, _BaseFullReader); - - var _super = _createSuper(PDFNodeStreamFullReader); - - function PDFNodeStreamFullReader(stream) { - var _this3; - - _classCallCheck(this, PDFNodeStreamFullReader); - - _this3 = _super.call(this, stream); - - var handleResponse = function handleResponse(response) { +class PDFNodeStreamFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); - _this3._storedError = error; - - _this3._headersCapability.reject(error); - + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; + this._headersCapability.reject(error); return; } - - _this3._headersCapability.resolve(); - - _this3._setReadableStream(response); - - var getResponseHeader = function getResponseHeader(name) { - return _this3._readableStream.headers[name.toLowerCase()]; + this._headersCapability.resolve(); + this._setReadableStream(response); + const getResponseHeader = name => { + return this._readableStream.headers[name.toLowerCase()]; }; - - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, isHttp: stream.isHttp, - rangeChunkSize: _this3._rangeChunkSize, - disableRange: _this3._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - _this3._isRangeSupported = allowRangeRequests; - _this3._contentLength = suggestedLength || _this3._contentLength; - _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); }; - - _this3._request = null; - - if (_this3._url.protocol === "http:") { - _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + this._request = null; + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } else { - _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } - - _this3._request.on("error", function (reason) { - _this3._storedError = reason; - - _this3._headersCapability.reject(reason); + this._request.on("error", reason => { + this._storedError = reason; + this._headersCapability.reject(reason); }); - - _this3._request.end(); - - return _this3; + this._request.end(); } - - return _createClass(PDFNodeStreamFullReader); -}(BaseFullReader); - -var PDFNodeStreamRangeReader = /*#__PURE__*/function (_BaseRangeReader) { - _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); - - var _super2 = _createSuper(PDFNodeStreamRangeReader); - - function PDFNodeStreamRangeReader(stream, start, end) { - var _this4; - - _classCallCheck(this, PDFNodeStreamRangeReader); - - _this4 = _super2.call(this, stream); - _this4._httpHeaders = {}; - - for (var property in stream.httpHeaders) { - var value = stream.httpHeaders[property]; - +} +class PDFNodeStreamRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + this._httpHeaders = {}; + for (const property in stream.httpHeaders) { + const value = stream.httpHeaders[property]; if (typeof value === "undefined") { continue; } - - _this4._httpHeaders[property] = value; + this._httpHeaders[property] = value; } - - _this4._httpHeaders.Range = "bytes=".concat(start, "-").concat(end - 1); - - var handleResponse = function handleResponse(response) { + this._httpHeaders.Range = `bytes=${start}-${end - 1}`; + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); - _this4._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; return; } - - _this4._setReadableStream(response); + this._setReadableStream(response); }; - - _this4._request = null; - - if (_this4._url.protocol === "http:") { - _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + this._request = null; + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } else { - _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } - - _this4._request.on("error", function (reason) { - _this4._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; }); - - _this4._request.end(); - - return _this4; + this._request.end(); } - - return _createClass(PDFNodeStreamRangeReader); -}(BaseRangeReader); - -var PDFNodeStreamFsFullReader = /*#__PURE__*/function (_BaseFullReader2) { - _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); - - var _super3 = _createSuper(PDFNodeStreamFsFullReader); - - function PDFNodeStreamFsFullReader(stream) { - var _this5; - - _classCallCheck(this, PDFNodeStreamFsFullReader); - - _this5 = _super3.call(this, stream); - var path = decodeURIComponent(_this5._url.path); - - if (fileUriRegex.test(_this5._url.href)) { +} +class PDFNodeStreamFsFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + let path = decodeURIComponent(this._url.path); + if (fileUriRegex.test(this._url.href)) { path = path.replace(/^\//, ""); } - - fs.lstat(path, function (error, stat) { + fs.lstat(path, (error, stat) => { if (error) { if (error.code === "ENOENT") { - error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); + error = new _util.MissingPDFException(`Missing PDF "${path}".`); } - - _this5._storedError = error; - - _this5._headersCapability.reject(error); - + this._storedError = error; + this._headersCapability.reject(error); return; } - - _this5._contentLength = stat.size; - - _this5._setReadableStream(fs.createReadStream(path)); - - _this5._headersCapability.resolve(); + this._contentLength = stat.size; + this._setReadableStream(fs.createReadStream(path)); + this._headersCapability.resolve(); }); - return _this5; } - - return _createClass(PDFNodeStreamFsFullReader); -}(BaseFullReader); - -var PDFNodeStreamFsRangeReader = /*#__PURE__*/function (_BaseRangeReader2) { - _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); - - var _super4 = _createSuper(PDFNodeStreamFsRangeReader); - - function PDFNodeStreamFsRangeReader(stream, start, end) { - var _this6; - - _classCallCheck(this, PDFNodeStreamFsRangeReader); - - _this6 = _super4.call(this, stream); - var path = decodeURIComponent(_this6._url.path); - - if (fileUriRegex.test(_this6._url.href)) { +} +class PDFNodeStreamFsRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + let path = decodeURIComponent(this._url.path); + if (fileUriRegex.test(this._url.href)) { path = path.replace(/^\//, ""); } - - _this6._setReadableStream(fs.createReadStream(path, { - start: start, + this._setReadableStream(fs.createReadStream(path, { + start, end: end - 1 })); - - return _this6; } - - return _createClass(PDFNodeStreamFsRangeReader); -}(BaseRangeReader); +} /***/ }), -/* 179 */ +/* 162 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -23599,86 +18596,68 @@ exports.createResponseStatusError = createResponseStatusError; exports.extractFilenameFromHeader = extractFilenameFromHeader; exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; exports.validateResponseStatus = validateResponseStatus; - var _util = __w_pdfjs_require__(1); - -var _content_disposition = __w_pdfjs_require__(180); - -var _display_utils = __w_pdfjs_require__(158); - +var _content_disposition = __w_pdfjs_require__(163); +var _display_utils = __w_pdfjs_require__(137); function validateRangeRequestCapabilities(_ref) { - var getResponseHeader = _ref.getResponseHeader, - isHttp = _ref.isHttp, - rangeChunkSize = _ref.rangeChunkSize, - disableRange = _ref.disableRange; - var returnValues = { + let { + getResponseHeader, + isHttp, + rangeChunkSize, + disableRange + } = _ref; + const returnValues = { allowRangeRequests: false, suggestedLength: undefined }; - var length = parseInt(getResponseHeader("Content-Length"), 10); - + const length = parseInt(getResponseHeader("Content-Length"), 10); if (!Number.isInteger(length)) { return returnValues; } - returnValues.suggestedLength = length; - if (length <= 2 * rangeChunkSize) { return returnValues; } - if (disableRange || !isHttp) { return returnValues; } - if (getResponseHeader("Accept-Ranges") !== "bytes") { return returnValues; } - - var contentEncoding = getResponseHeader("Content-Encoding") || "identity"; - + const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; if (contentEncoding !== "identity") { return returnValues; } - returnValues.allowRangeRequests = true; return returnValues; } - function extractFilenameFromHeader(getResponseHeader) { - var contentDisposition = getResponseHeader("Content-Disposition"); - + const contentDisposition = getResponseHeader("Content-Disposition"); if (contentDisposition) { - var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); - + let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); if (filename.includes("%")) { try { filename = decodeURIComponent(filename); } catch (ex) {} } - if ((0, _display_utils.isPdfFile)(filename)) { return filename; } } - return null; } - function createResponseStatusError(status, url) { if (status === 404 || status === 0 && url.startsWith("file:")) { return new _util.MissingPDFException('Missing PDF "' + url + '".'); } - - return new _util.UnexpectedResponseException("Unexpected server response (".concat(status, ") while retrieving PDF \"").concat(url, "\"."), status); + return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`, status); } - function validateResponseStatus(status) { return status === 200 || status === 206; } /***/ }), -/* 180 */ +/* 163 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -23688,179 +18667,119 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; - var _util = __w_pdfjs_require__(1); - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - function getFilenameFromContentDispositionHeader(contentDisposition) { - var needsEncodingFixup = true; - var tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); - + let needsEncodingFixup = true; + let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - var filename = rfc2616unquote(tmp); + let filename = rfc2616unquote(tmp); filename = unescape(filename); filename = rfc5987decode(filename); filename = rfc2047decode(filename); return fixupEncoding(filename); } - tmp = rfc2231getparam(contentDisposition); - if (tmp) { - var _filename = rfc2047decode(tmp); - - return fixupEncoding(_filename); + const filename = rfc2047decode(tmp); + return fixupEncoding(filename); } - tmp = toParamRegExp("filename", "i").exec(contentDisposition); - if (tmp) { tmp = tmp[1]; - - var _filename2 = rfc2616unquote(tmp); - - _filename2 = rfc2047decode(_filename2); - return fixupEncoding(_filename2); + let filename = rfc2616unquote(tmp); + filename = rfc2047decode(filename); + return fixupEncoding(filename); } - function toParamRegExp(attributePattern, flags) { return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags); } - function textdecode(encoding, value) { if (encoding) { if (!/^[\x00-\xFF]+$/.test(value)) { return value; } - try { - var decoder = new TextDecoder(encoding, { + const decoder = new TextDecoder(encoding, { fatal: true }); - var buffer = (0, _util.stringToBytes)(value); + const buffer = (0, _util.stringToBytes)(value); value = decoder.decode(buffer); needsEncodingFixup = false; } catch (e) {} } - return value; } - function fixupEncoding(value) { if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { value = textdecode("utf-8", value); - if (needsEncodingFixup) { value = textdecode("iso-8859-1", value); } } - return value; } - function rfc2231getparam(contentDispositionStr) { - var matches = []; - var match; - var iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); - + const matches = []; + let match; + const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); while ((match = iter.exec(contentDispositionStr)) !== null) { - var _match = match, - _match2 = _slicedToArray(_match, 4), - n = _match2[1], - quot = _match2[2], - part = _match2[3]; - + let [, n, quot, part] = match; n = parseInt(n, 10); - if (n in matches) { if (n === 0) { break; } - continue; } - matches[n] = [quot, part]; } - - var parts = []; - - for (var _n2 = 0; _n2 < matches.length; ++_n2) { - if (!(_n2 in matches)) { + const parts = []; + for (let n = 0; n < matches.length; ++n) { + if (!(n in matches)) { break; } - - var _matches$_n = _slicedToArray(matches[_n2], 2), - _quot = _matches$_n[0], - _part = _matches$_n[1]; - - _part = rfc2616unquote(_part); - - if (_quot) { - _part = unescape(_part); - - if (_n2 === 0) { - _part = rfc5987decode(_part); + let [quot, part] = matches[n]; + part = rfc2616unquote(part); + if (quot) { + part = unescape(part); + if (n === 0) { + part = rfc5987decode(part); } } - - parts.push(_part); + parts.push(part); } - return parts.join(""); } - function rfc2616unquote(value) { if (value.startsWith('"')) { - var parts = value.slice(1).split('\\"'); - - for (var i = 0; i < parts.length; ++i) { - var quotindex = parts[i].indexOf('"'); - + const parts = value.slice(1).split('\\"'); + for (let i = 0; i < parts.length; ++i) { + const quotindex = parts[i].indexOf('"'); if (quotindex !== -1) { parts[i] = parts[i].slice(0, quotindex); parts.length = i + 1; } - parts[i] = parts[i].replace(/\\(.)/g, "$1"); } - value = parts.join('"'); } - return value; } - function rfc5987decode(extvalue) { - var encodingend = extvalue.indexOf("'"); - + const encodingend = extvalue.indexOf("'"); if (encodingend === -1) { return extvalue; } - - var encoding = extvalue.slice(0, encodingend); - var langvalue = extvalue.slice(encodingend + 1); - var value = langvalue.replace(/^[^']*'/, ""); + const encoding = extvalue.slice(0, encodingend); + const langvalue = extvalue.slice(encodingend + 1); + const value = langvalue.replace(/^[^']*'/, ""); return textdecode(encoding, value); } - function rfc2047decode(value) { if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) { return value; } - return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { if (encoding === "q" || encoding === "Q") { text = text.replace(/_/g, " "); @@ -23869,20 +18788,17 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { }); return textdecode(charset, text); } - try { text = atob(text); } catch (e) {} - return textdecode(charset, text); }); } - return ""; } /***/ }), -/* 181 */ +/* 164 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -23892,231 +18808,150 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PDFNetworkStream = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - var _util = __w_pdfjs_require__(1); - -var _network_utils = __w_pdfjs_require__(179); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - +var _network_utils = __w_pdfjs_require__(162); ; -var OK_RESPONSE = 200; -var PARTIAL_CONTENT_RESPONSE = 206; - +const OK_RESPONSE = 200; +const PARTIAL_CONTENT_RESPONSE = 206; function getArrayBuffer(xhr) { - var data = xhr.response; - + const data = xhr.response; if (typeof data !== "string") { return data; } - - var array = (0, _util.stringToBytes)(data); + const array = (0, _util.stringToBytes)(data); return array.buffer; } - -var NetworkManager = /*#__PURE__*/function () { - function NetworkManager(url) { - var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - _classCallCheck(this, NetworkManager); - +class NetworkManager { + constructor(url) { + let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; this.url = url; this.isHttp = /^https?:/i.test(url); this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null); this.withCredentials = args.withCredentials || false; - this.getXhr = args.getXhr || function NetworkManager_getXhr() { return new XMLHttpRequest(); }; - this.currXhrId = 0; this.pendingRequests = Object.create(null); } - - _createClass(NetworkManager, [{ - key: "requestRange", - value: function requestRange(begin, end, listeners) { - var args = { - begin: begin, - end: end - }; - - for (var prop in listeners) { - args[prop] = listeners[prop]; + requestRange(begin, end, listeners) { + const args = { + begin, + end + }; + for (const prop in listeners) { + args[prop] = listeners[prop]; + } + return this.request(args); + } + requestFull(listeners) { + return this.request(listeners); + } + request(args) { + const xhr = this.getXhr(); + const xhrId = this.currXhrId++; + const pendingRequest = this.pendingRequests[xhrId] = { + xhr + }; + xhr.open("GET", this.url); + xhr.withCredentials = this.withCredentials; + for (const property in this.httpHeaders) { + const value = this.httpHeaders[property]; + if (typeof value === "undefined") { + continue; } - - return this.request(args); + xhr.setRequestHeader(property, value); } - }, { - key: "requestFull", - value: function requestFull(listeners) { - return this.request(listeners); + if (this.isHttp && "begin" in args && "end" in args) { + xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`); + pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; + } else { + pendingRequest.expectedStatus = OK_RESPONSE; } - }, { - key: "request", - value: function request(args) { - var xhr = this.getXhr(); - var xhrId = this.currXhrId++; - var pendingRequest = this.pendingRequests[xhrId] = { - xhr: xhr + xhr.responseType = "arraybuffer"; + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); }; - xhr.open("GET", this.url); - xhr.withCredentials = this.withCredentials; - - for (var property in this.httpHeaders) { - var value = this.httpHeaders[property]; - - if (typeof value === "undefined") { - continue; - } - - xhr.setRequestHeader(property, value); - } - - if (this.isHttp && "begin" in args && "end" in args) { - xhr.setRequestHeader("Range", "bytes=".concat(args.begin, "-").concat(args.end - 1)); - pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; - } else { - pendingRequest.expectedStatus = OK_RESPONSE; - } - - xhr.responseType = "arraybuffer"; - - if (args.onError) { - xhr.onerror = function (evt) { - args.onError(xhr.status); - }; - } - - xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); - xhr.onprogress = this.onProgress.bind(this, xhrId); - pendingRequest.onHeadersReceived = args.onHeadersReceived; - pendingRequest.onDone = args.onDone; - pendingRequest.onError = args.onError; - pendingRequest.onProgress = args.onProgress; - xhr.send(null); - return xhrId; } - }, { - key: "onProgress", - value: function onProgress(xhrId, evt) { - var _pendingRequest$onPro; - - var pendingRequest = this.pendingRequests[xhrId]; - - if (!pendingRequest) { - return; - } - - (_pendingRequest$onPro = pendingRequest.onProgress) === null || _pendingRequest$onPro === void 0 ? void 0 : _pendingRequest$onPro.call(pendingRequest, evt); + xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); + xhr.onprogress = this.onProgress.bind(this, xhrId); + pendingRequest.onHeadersReceived = args.onHeadersReceived; + pendingRequest.onDone = args.onDone; + pendingRequest.onError = args.onError; + pendingRequest.onProgress = args.onProgress; + xhr.send(null); + return xhrId; + } + onProgress(xhrId, evt) { + var _pendingRequest$onPro; + const pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; } - }, { - key: "onStateChange", - value: function onStateChange(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; - - if (!pendingRequest) { - return; - } - - var xhr = pendingRequest.xhr; - - if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { - pendingRequest.onHeadersReceived(); - delete pendingRequest.onHeadersReceived; - } - - if (xhr.readyState !== 4) { - return; - } - - if (!(xhrId in this.pendingRequests)) { - return; - } - - delete this.pendingRequests[xhrId]; - - if (xhr.status === 0 && this.isHttp) { - var _pendingRequest$onErr; - - (_pendingRequest$onErr = pendingRequest.onError) === null || _pendingRequest$onErr === void 0 ? void 0 : _pendingRequest$onErr.call(pendingRequest, xhr.status); - return; - } - - var xhrStatus = xhr.status || OK_RESPONSE; - var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; - - if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { - var _pendingRequest$onErr2; - - (_pendingRequest$onErr2 = pendingRequest.onError) === null || _pendingRequest$onErr2 === void 0 ? void 0 : _pendingRequest$onErr2.call(pendingRequest, xhr.status); - return; - } - - var chunk = getArrayBuffer(xhr); - - if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { - var rangeHeader = xhr.getResponseHeader("Content-Range"); - var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); - pendingRequest.onDone({ - begin: parseInt(matches[1], 10), - chunk: chunk - }); - } else if (chunk) { - pendingRequest.onDone({ - begin: 0, - chunk: chunk - }); - } else { - var _pendingRequest$onErr3; - - (_pendingRequest$onErr3 = pendingRequest.onError) === null || _pendingRequest$onErr3 === void 0 ? void 0 : _pendingRequest$onErr3.call(pendingRequest, xhr.status); - } + (_pendingRequest$onPro = pendingRequest.onProgress) === null || _pendingRequest$onPro === void 0 ? void 0 : _pendingRequest$onPro.call(pendingRequest, evt); + } + onStateChange(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; + } + const xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; } - }, { - key: "getRequestXhr", - value: function getRequestXhr(xhrId) { - return this.pendingRequests[xhrId].xhr; + if (xhr.readyState !== 4) { + return; } - }, { - key: "isPendingRequest", - value: function isPendingRequest(xhrId) { - return xhrId in this.pendingRequests; + if (!(xhrId in this.pendingRequests)) { + return; } - }, { - key: "abortRequest", - value: function abortRequest(xhrId) { - var xhr = this.pendingRequests[xhrId].xhr; - delete this.pendingRequests[xhrId]; - xhr.abort(); + delete this.pendingRequests[xhrId]; + if (xhr.status === 0 && this.isHttp) { + var _pendingRequest$onErr; + (_pendingRequest$onErr = pendingRequest.onError) === null || _pendingRequest$onErr === void 0 ? void 0 : _pendingRequest$onErr.call(pendingRequest, xhr.status); + return; } - }]); - - return NetworkManager; -}(); - -var PDFNetworkStream = /*#__PURE__*/function () { - function PDFNetworkStream(source) { - _classCallCheck(this, PDFNetworkStream); - + const xhrStatus = xhr.status || OK_RESPONSE; + const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; + if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { + var _pendingRequest$onErr2; + (_pendingRequest$onErr2 = pendingRequest.onError) === null || _pendingRequest$onErr2 === void 0 ? void 0 : _pendingRequest$onErr2.call(pendingRequest, xhr.status); + return; + } + const chunk = getArrayBuffer(xhr); + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + const rangeHeader = xhr.getResponseHeader("Content-Range"); + const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + pendingRequest.onDone({ + begin: parseInt(matches[1], 10), + chunk + }); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk + }); + } else { + var _pendingRequest$onErr3; + (_pendingRequest$onErr3 = pendingRequest.onError) === null || _pendingRequest$onErr3 === void 0 ? void 0 : _pendingRequest$onErr3.call(pendingRequest, xhr.status); + } + } + getRequestXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + } + isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + } + abortRequest(xhrId) { + const xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } +} +class PDFNetworkStream { + constructor(source) { this._source = source; this._manager = new NetworkManager(source.url, { httpHeaders: source.httpHeaders, @@ -24126,67 +18961,36 @@ var PDFNetworkStream = /*#__PURE__*/function () { this._fullRequestReader = null; this._rangeRequestReaders = []; } - - _createClass(PDFNetworkStream, [{ - key: "_onRangeRequestReaderClosed", - value: function _onRangeRequestReaderClosed(reader) { - var i = this._rangeRequestReaders.indexOf(reader); - - if (i >= 0) { - this._rangeRequestReaders.splice(i, 1); - } - } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); - this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); - return this._fullRequestReader; - } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); - reader.onClosed = this._onRangeRequestReaderClosed.bind(this); - - this._rangeRequestReaders.push(reader); - - return reader; + _onRangeRequestReaderClosed(reader) { + const i = this._rangeRequestReaders.indexOf(reader); + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - var _this$_fullRequestRea; - - (_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea.cancel(reason); - - var _iterator = _createForOfIteratorHelper(this._rangeRequestReaders.slice(0)), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var reader = _step.value; - reader.cancel(reason); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); + return this._fullRequestReader; + } + getRangeReader(begin, end) { + const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea; + (_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }]); - - return PDFNetworkStream; -}(); - + } +} exports.PDFNetworkStream = PDFNetworkStream; - -var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () { - function PDFNetworkStreamFullRequestReader(manager, source) { - _classCallCheck(this, PDFNetworkStreamFullRequestReader); - +class PDFNetworkStreamFullRequestReader { + constructor(manager, source) { this._manager = manager; - var args = { + const args = { onHeadersReceived: this._onHeadersReceived.bind(this), onDone: this._onDone.bind(this), onError: this._onError.bind(this), @@ -24198,11 +19002,9 @@ var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () { this._disableRange = source.disableRange || false; this._contentLength = source.length; this._rangeChunkSize = source.rangeChunkSize; - if (!this._rangeChunkSize && !this._disableRange) { this._disableRange = true; } - this._isStreamingSupported = false; this._isRangeSupported = false; this._cachedChunks = []; @@ -24212,244 +19014,127 @@ var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () { this._filename = null; this.onProgress = null; } - - _createClass(PDFNetworkStreamFullRequestReader, [{ - key: "_onHeadersReceived", - value: function _onHeadersReceived() { - var fullRequestXhrId = this._fullRequestId; - - var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); - - var getResponseHeader = function getResponseHeader(name) { - return fullRequestXhr.getResponseHeader(name); - }; - - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: this._manager.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - if (allowRangeRequests) { - this._isRangeSupported = true; - } - - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (this._isRangeSupported) { - this._manager.abortRequest(fullRequestXhrId); - } - - this._headersReceivedCapability.resolve(); + _onHeadersReceived() { + const fullRequestXhrId = this._fullRequestId; + const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + const getResponseHeader = name => { + return fullRequestXhr.getResponseHeader(name); + }; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._manager.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + if (allowRangeRequests) { + this._isRangeSupported = true; } - }, { - key: "_onDone", - value: function _onDone(data) { - if (data) { - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - - requestCapability.resolve({ - value: data.chunk, - done: false - }); - } else { - this._cachedChunks.push(data.chunk); - } - } - - this._done = true; - - if (this._cachedChunks.length > 0) { - return; - } - - var _iterator2 = _createForOfIteratorHelper(this._requests), - _step2; - - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var _requestCapability = _step2.value; - - _requestCapability.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - - this._requests.length = 0; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + if (this._isRangeSupported) { + this._manager.abortRequest(fullRequestXhrId); } - }, { - key: "_onError", - value: function _onError(status) { - this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); - - this._headersReceivedCapability.reject(this._storedError); - - var _iterator3 = _createForOfIteratorHelper(this._requests), - _step3; - - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var requestCapability = _step3.value; - requestCapability.reject(this._storedError); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); + this._headersReceivedCapability.resolve(); + } + _onDone(data) { + if (data) { + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: data.chunk, + done: false + }); + } else { + this._cachedChunks.push(data.chunk); } - - this._requests.length = 0; - this._cachedChunks.length = 0; } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - var _this$onProgress; - - (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { - loaded: evt.loaded, - total: evt.lengthComputable ? evt.total : this._contentLength + this._done = true; + if (this._cachedChunks.length > 0) { + return; + } + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true }); } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReceivedCapability.promise; - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this._storedError) { - _context.next = 2; - break; - } - - throw this._storedError; - - case 2: - if (!(this._cachedChunks.length > 0)) { - _context.next = 5; - break; - } - - chunk = this._cachedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); - - case 5: - if (!this._done) { - _context.next = 7; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 7: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 10: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._headersReceivedCapability.reject(reason); - - var _iterator4 = _createForOfIteratorHelper(this._requests), - _step4; - - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var requestCapability = _step4.value; - requestCapability.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - - this._requests.length = 0; - - if (this._manager.isPendingRequest(this._fullRequestId)) { - this._manager.abortRequest(this._fullRequestId); - } - - this._fullRequestReader = null; + this._requests.length = 0; + } + _onError(status) { + this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); + this._headersReceivedCapability.reject(this._storedError); + for (const requestCapability of this._requests) { + requestCapability.reject(this._storedError); } - }]); - - return PDFNetworkStreamFullRequestReader; -}(); - -var PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () { - function PDFNetworkStreamRangeRequestReader(manager, begin, end) { - _classCallCheck(this, PDFNetworkStreamRangeRequestReader); - + this._requests.length = 0; + this._cachedChunks.length = 0; + } + _onProgress(evt) { + var _this$onProgress; + (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { + loaded: evt.loaded, + total: evt.lengthComputable ? evt.total : this._contentLength + }); + } + get filename() { + return this._filename; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + get contentLength() { + return this._contentLength; + } + get headersReady() { + return this._headersReceivedCapability.promise; + } + async read() { + if (this._storedError) { + throw this._storedError; + } + if (this._cachedChunks.length > 0) { + const chunk = this._cachedChunks.shift(); + return { + value: chunk, + done: false + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + this._headersReceivedCapability.reject(reason); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); + } + this._fullRequestReader = null; + } +} +class PDFNetworkStreamRangeRequestReader { + constructor(manager, begin, end) { this._manager = manager; - var args = { + const args = { onDone: this._onDone.bind(this), onError: this._onError.bind(this), onProgress: this._onProgress.bind(this) @@ -24463,190 +19148,90 @@ var PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () { this.onProgress = null; this.onClosed = null; } - - _createClass(PDFNetworkStreamRangeRequestReader, [{ - key: "_close", - value: function _close() { - var _this$onClosed; - - (_this$onClosed = this.onClosed) === null || _this$onClosed === void 0 ? void 0 : _this$onClosed.call(this, this); + _close() { + var _this$onClosed; + (_this$onClosed = this.onClosed) === null || _this$onClosed === void 0 ? void 0 : _this$onClosed.call(this, this); + } + _onDone(data) { + const chunk = data.chunk; + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunk = chunk; } - }, { - key: "_onDone", - value: function _onDone(data) { - var chunk = data.chunk; - - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunk = chunk; - } - - this._done = true; - - var _iterator5 = _createForOfIteratorHelper(this._requests), - _step5; - - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var _requestCapability2 = _step5.value; - - _requestCapability2.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - - this._requests.length = 0; - - this._close(); + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); } - }, { - key: "_onError", - value: function _onError(status) { - this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); - - var _iterator6 = _createForOfIteratorHelper(this._requests), - _step6; - - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var requestCapability = _step6.value; - requestCapability.reject(this._storedError); - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - - this._requests.length = 0; + this._requests.length = 0; + this._close(); + } + _onError(status) { + this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); + for (const requestCapability of this._requests) { + requestCapability.reject(this._storedError); + } + this._requests.length = 0; + this._queuedChunk = null; + } + _onProgress(evt) { + if (!this.isStreamingSupported) { + var _this$onProgress2; + (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { + loaded: evt.loaded + }); + } + } + get isStreamingSupported() { + return false; + } + async read() { + if (this._storedError) { + throw this._storedError; + } + if (this._queuedChunk !== null) { + const chunk = this._queuedChunk; this._queuedChunk = null; + return { + value: chunk, + done: false + }; } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (!this.isStreamingSupported) { - var _this$onProgress2; - - (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { - loaded: evt.loaded - }); - } + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "isStreamingSupported", - get: function get() { - return false; + const requestCapability = (0, _util.createPromiseCapability)(); + this._requests.push(requestCapability); + return requestCapability.promise; + } + cancel(reason) { + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this._storedError) { - _context2.next = 2; - break; - } - - throw this._storedError; - - case 2: - if (!(this._queuedChunk !== null)) { - _context2.next = 6; - break; - } - - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); - - case 6: - if (!this._done) { - _context2.next = 8; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 8: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 11: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - var _iterator7 = _createForOfIteratorHelper(this._requests), - _step7; - - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var requestCapability = _step7.value; - requestCapability.resolve({ - value: undefined, - done: true - }); - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - - this._requests.length = 0; - - if (this._manager.isPendingRequest(this._requestId)) { - this._manager.abortRequest(this._requestId); - } - - this._close(); + this._requests.length = 0; + if (this._manager.isPendingRequest(this._requestId)) { + this._manager.abortRequest(this._requestId); } - }]); - - return PDFNetworkStreamRangeRequestReader; -}(); + this._close(); + } +} /***/ }), -/* 182 */ +/* 165 */ /***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { "use strict"; @@ -24656,407 +19241,210 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.PDFFetchStream = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(156)); - var _util = __w_pdfjs_require__(1); - -var _network_utils = __w_pdfjs_require__(179); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } - +var _network_utils = __w_pdfjs_require__(162); ; - function createFetchOptions(headers, withCredentials, abortController) { return { method: "GET", - headers: headers, - signal: abortController === null || abortController === void 0 ? void 0 : abortController.signal, + headers, + signal: abortController.signal, mode: "cors", credentials: withCredentials ? "include" : "same-origin", redirect: "follow" }; } - function createHeaders(httpHeaders) { - var headers = new Headers(); - - for (var property in httpHeaders) { - var value = httpHeaders[property]; - + const headers = new Headers(); + for (const property in httpHeaders) { + const value = httpHeaders[property]; if (typeof value === "undefined") { continue; } - headers.append(property, value); } - return headers; } - -var PDFFetchStream = /*#__PURE__*/function () { - function PDFFetchStream(source) { - _classCallCheck(this, PDFFetchStream); - +class PDFFetchStream { + constructor(source) { this.source = source; this.isHttp = /^https?:/i.test(source.url); this.httpHeaders = this.isHttp && source.httpHeaders || {}; this._fullRequestReader = null; this._rangeRequestReaders = []; } - - _createClass(PDFFetchStream, [{ - key: "_progressiveDataLength", - get: function get() { - var _this$_fullRequestRea, _this$_fullRequestRea2; - - return (_this$_fullRequestRea = (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2._loaded) !== null && _this$_fullRequestRea !== void 0 ? _this$_fullRequestRea : 0; - } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); - this._fullRequestReader = new PDFFetchStreamReader(this); - return this._fullRequestReader; - } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - - var reader = new PDFFetchStreamRangeReader(this, begin, end); - - this._rangeRequestReaders.push(reader); - - return reader; + get _progressiveDataLength() { + var _this$_fullRequestRea; + return ((_this$_fullRequestRea = this._fullRequestReader) === null || _this$_fullRequestRea === void 0 ? void 0 : _this$_fullRequestRea._loaded) ?? 0; + } + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFFetchStreamReader(this); + return this._fullRequestReader; + } + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - - var _iterator = _createForOfIteratorHelper(this._rangeRequestReaders.slice(0)), - _step; - - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var reader = _step.value; - reader.cancel(reason); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } + const reader = new PDFFetchStreamRangeReader(this, begin, end); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + var _this$_fullRequestRea2; + (_this$_fullRequestRea2 = this._fullRequestReader) === null || _this$_fullRequestRea2 === void 0 ? void 0 : _this$_fullRequestRea2.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }]); - - return PDFFetchStream; -}(); - + } +} exports.PDFFetchStream = PDFFetchStream; - -var PDFFetchStreamReader = /*#__PURE__*/function () { - function PDFFetchStreamReader(stream) { - var _this = this; - - _classCallCheck(this, PDFFetchStreamReader); - +class PDFFetchStreamReader { + constructor(stream) { this._stream = stream; this._reader = null; this._loaded = 0; this._filename = null; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._contentLength = source.length; this._headersCapability = (0, _util.createPromiseCapability)(); this._disableRange = source.disableRange || false; this._rangeChunkSize = source.rangeChunkSize; - if (!this._rangeChunkSize && !this._disableRange) { this._disableRange = true; } - - if (typeof AbortController !== "undefined") { - this._abortController = new AbortController(); - } - + this._abortController = new AbortController(); this._isStreamingSupported = !source.disableStream; this._isRangeSupported = !source.disableRange; this._headers = createHeaders(this._stream.httpHeaders); - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - - _this._reader = response.body.getReader(); - - _this._headersCapability.resolve(); - - var getResponseHeader = function getResponseHeader(name) { + this._reader = response.body.getReader(); + this._headersCapability.resolve(); + const getResponseHeader = name => { return response.headers.get(name); }; - - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: _this._stream.isHttp, - rangeChunkSize: _this._rangeChunkSize, - disableRange: _this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - _this._isRangeSupported = allowRangeRequests; - _this._contentLength = suggestedLength || _this._contentLength; - _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (!_this._isStreamingSupported && _this._isRangeSupported) { - _this.cancel(new _util.AbortException("Streaming is disabled.")); + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + if (!this._isStreamingSupported && this._isRangeSupported) { + this.cancel(new _util.AbortException("Streaming is disabled.")); } - })["catch"](this._headersCapability.reject); + }).catch(this._headersCapability.reject); this.onProgress = null; } - - _createClass(PDFFetchStreamReader, [{ - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var _yield$this$_reader$r, value, done, buffer; - - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._headersCapability.promise; - - case 2: - _context.next = 4; - return this._reader.read(); - - case 4: - _yield$this$_reader$r = _context.sent; - value = _yield$this$_reader$r.value; - done = _yield$this$_reader$r.done; - - if (!done) { - _context.next = 9; - break; - } - - return _context.abrupt("return", { - value: value, - done: done - }); - - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(value).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + get headersReady() { + return this._headersCapability.promise; + } + get filename() { + return this._filename; + } + get contentLength() { + return this._contentLength; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress; + await this._headersCapability.promise; + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value, + done + }; } - }]); - - return PDFFetchStreamReader; -}(); - -var PDFFetchStreamRangeReader = /*#__PURE__*/function () { - function PDFFetchStreamRangeReader(stream, begin, end) { - var _this2 = this; - - _classCallCheck(this, PDFFetchStreamRangeReader); - + this._loaded += value.byteLength; + (_this$onProgress = this.onProgress) === null || _this$onProgress === void 0 ? void 0 : _this$onProgress.call(this, { + loaded: this._loaded, + total: this._contentLength + }); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + var _this$_reader; + (_this$_reader = this._reader) === null || _this$_reader === void 0 ? void 0 : _this$_reader.cancel(reason); + this._abortController.abort(); + } +} +class PDFFetchStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._reader = null; this._loaded = 0; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._readCapability = (0, _util.createPromiseCapability)(); this._isStreamingSupported = !source.disableStream; - - if (typeof AbortController !== "undefined") { - this._abortController = new AbortController(); - } - + this._abortController = new AbortController(); this._headers = createHeaders(this._stream.httpHeaders); - - this._headers.append("Range", "bytes=".concat(begin, "-").concat(end - 1)); - - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + this._headers.append("Range", `bytes=${begin}-${end - 1}`); + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - - _this2._readCapability.resolve(); - - _this2._reader = response.body.getReader(); - })["catch"](this._readCapability.reject); + this._readCapability.resolve(); + this._reader = response.body.getReader(); + }).catch(this._readCapability.reject); this.onProgress = null; } - - _createClass(PDFFetchStreamRangeReader, [{ - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var _yield$this$_reader$r2, value, done, buffer; - - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; - - case 2: - _context2.next = 4; - return this._reader.read(); - - case 4: - _yield$this$_reader$r2 = _context2.sent; - value = _yield$this$_reader$r2.value; - done = _yield$this$_reader$r2.done; - - if (!done) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", { - value: value, - done: done - }); - - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(value).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + var _this$onProgress2; + await this._readCapability.promise; + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value, + done + }; } - }]); - - return PDFFetchStreamRangeReader; -}(); + this._loaded += value.byteLength; + (_this$onProgress2 = this.onProgress) === null || _this$onProgress2 === void 0 ? void 0 : _this$onProgress2.call(this, { + loaded: this._loaded + }); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + var _this$_reader2; + (_this$_reader2 = this._reader) === null || _this$_reader2 === void 0 ? void 0 : _this$_reader2.cancel(reason); + this._abortController.abort(); + } +} /***/ }) /******/ ]); @@ -25073,32 +19461,19 @@ var PDFFetchStreamRangeReader = /*#__PURE__*/function () { /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ loaded: false, +/******/ // no module.id needed +/******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__); /******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ -/******/ /* webpack/runtime/node module decorator */ -/******/ (() => { -/******/ __w_pdfjs_require__.nmd = (module) => { -/******/ module.paths = []; -/******/ if (!module.children) module.children = []; -/******/ return module; -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be in strict mode. (() => { @@ -25109,245 +19484,254 @@ var exports = __webpack_exports__; Object.defineProperty(exports, "__esModule", ({ value: true })); +Object.defineProperty(exports, "AnnotationEditorLayer", ({ + enumerable: true, + get: function () { + return _annotation_editor_layer.AnnotationEditorLayer; + } +})); +Object.defineProperty(exports, "AnnotationEditorParamsType", ({ + enumerable: true, + get: function () { + return _util.AnnotationEditorParamsType; + } +})); +Object.defineProperty(exports, "AnnotationEditorType", ({ + enumerable: true, + get: function () { + return _util.AnnotationEditorType; + } +})); +Object.defineProperty(exports, "AnnotationEditorUIManager", ({ + enumerable: true, + get: function () { + return _tools.AnnotationEditorUIManager; + } +})); Object.defineProperty(exports, "AnnotationLayer", ({ enumerable: true, - get: function get() { + get: function () { return _annotation_layer.AnnotationLayer; } })); Object.defineProperty(exports, "AnnotationMode", ({ enumerable: true, - get: function get() { + get: function () { return _util.AnnotationMode; } })); Object.defineProperty(exports, "CMapCompressionType", ({ enumerable: true, - get: function get() { + get: function () { return _util.CMapCompressionType; } })); Object.defineProperty(exports, "GlobalWorkerOptions", ({ enumerable: true, - get: function get() { + get: function () { return _worker_options.GlobalWorkerOptions; } })); Object.defineProperty(exports, "InvalidPDFException", ({ enumerable: true, - get: function get() { + get: function () { return _util.InvalidPDFException; } })); -Object.defineProperty(exports, "LoopbackPort", ({ - enumerable: true, - get: function get() { - return _api.LoopbackPort; - } -})); Object.defineProperty(exports, "MissingPDFException", ({ enumerable: true, - get: function get() { + get: function () { return _util.MissingPDFException; } })); Object.defineProperty(exports, "OPS", ({ enumerable: true, - get: function get() { + get: function () { return _util.OPS; } })); Object.defineProperty(exports, "PDFDataRangeTransport", ({ enumerable: true, - get: function get() { + get: function () { return _api.PDFDataRangeTransport; } })); Object.defineProperty(exports, "PDFDateString", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.PDFDateString; } })); Object.defineProperty(exports, "PDFWorker", ({ enumerable: true, - get: function get() { + get: function () { return _api.PDFWorker; } })); Object.defineProperty(exports, "PasswordResponses", ({ enumerable: true, - get: function get() { + get: function () { return _util.PasswordResponses; } })); Object.defineProperty(exports, "PermissionFlag", ({ enumerable: true, - get: function get() { + get: function () { return _util.PermissionFlag; } })); Object.defineProperty(exports, "PixelsPerInch", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.PixelsPerInch; } })); Object.defineProperty(exports, "RenderingCancelledException", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.RenderingCancelledException; } })); Object.defineProperty(exports, "SVGGraphics", ({ enumerable: true, - get: function get() { + get: function () { return _svg.SVGGraphics; } })); Object.defineProperty(exports, "UNSUPPORTED_FEATURES", ({ enumerable: true, - get: function get() { + get: function () { return _util.UNSUPPORTED_FEATURES; } })); Object.defineProperty(exports, "UnexpectedResponseException", ({ enumerable: true, - get: function get() { + get: function () { return _util.UnexpectedResponseException; } })); Object.defineProperty(exports, "Util", ({ enumerable: true, - get: function get() { + get: function () { return _util.Util; } })); Object.defineProperty(exports, "VerbosityLevel", ({ enumerable: true, - get: function get() { + get: function () { return _util.VerbosityLevel; } })); Object.defineProperty(exports, "XfaLayer", ({ enumerable: true, - get: function get() { + get: function () { return _xfa_layer.XfaLayer; } })); Object.defineProperty(exports, "build", ({ enumerable: true, - get: function get() { + get: function () { return _api.build; } })); Object.defineProperty(exports, "createPromiseCapability", ({ enumerable: true, - get: function get() { + get: function () { return _util.createPromiseCapability; } })); Object.defineProperty(exports, "createValidAbsoluteUrl", ({ enumerable: true, - get: function get() { + get: function () { return _util.createValidAbsoluteUrl; } })); Object.defineProperty(exports, "getDocument", ({ enumerable: true, - get: function get() { + get: function () { return _api.getDocument; } })); Object.defineProperty(exports, "getFilenameFromUrl", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.getFilenameFromUrl; } })); Object.defineProperty(exports, "getPdfFilenameFromUrl", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.getPdfFilenameFromUrl; } })); Object.defineProperty(exports, "getXfaPageViewport", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.getXfaPageViewport; } })); Object.defineProperty(exports, "isPdfFile", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.isPdfFile; } })); Object.defineProperty(exports, "loadScript", ({ enumerable: true, - get: function get() { + get: function () { return _display_utils.loadScript; } })); Object.defineProperty(exports, "renderTextLayer", ({ enumerable: true, - get: function get() { + get: function () { return _text_layer.renderTextLayer; } })); Object.defineProperty(exports, "shadow", ({ enumerable: true, - get: function get() { + get: function () { return _util.shadow; } })); Object.defineProperty(exports, "version", ({ enumerable: true, - get: function get() { + get: function () { return _api.version; } })); - var _util = __w_pdfjs_require__(1); - -var _api = __w_pdfjs_require__(155); - -var _display_utils = __w_pdfjs_require__(158); - -var _annotation_layer = __w_pdfjs_require__(173); - -var _worker_options = __w_pdfjs_require__(166); - +var _api = __w_pdfjs_require__(133); +var _display_utils = __w_pdfjs_require__(137); +var _annotation_editor_layer = __w_pdfjs_require__(151); +var _tools = __w_pdfjs_require__(136); +var _annotation_layer = __w_pdfjs_require__(156); +var _worker_options = __w_pdfjs_require__(144); var _is_node = __w_pdfjs_require__(3); - -var _text_layer = __w_pdfjs_require__(176); - -var _svg = __w_pdfjs_require__(177); - -var _xfa_layer = __w_pdfjs_require__(175); - -var pdfjsVersion = '2.14.305'; -var pdfjsBuild = 'eaaa8b4ad'; +var _text_layer = __w_pdfjs_require__(159); +var _svg = __w_pdfjs_require__(160); +var _xfa_layer = __w_pdfjs_require__(158); +const pdfjsVersion = '3.0.279'; +const pdfjsBuild = 'd0823066c'; { if (_is_node.isNodeJS) { - var _require = __w_pdfjs_require__(178), - PDFNodeStream = _require.PDFNodeStream; - - (0, _api.setPDFNetworkStreamFactory)(function (params) { + const { + PDFNodeStream + } = __w_pdfjs_require__(161); + (0, _api.setPDFNetworkStreamFactory)(params => { return new PDFNodeStream(params); }); } else { - var _require2 = __w_pdfjs_require__(181), - PDFNetworkStream = _require2.PDFNetworkStream; - - var _require3 = __w_pdfjs_require__(182), - PDFFetchStream = _require3.PDFFetchStream; - - (0, _api.setPDFNetworkStreamFactory)(function (params) { + const { + PDFNetworkStream + } = __w_pdfjs_require__(164); + const { + PDFFetchStream + } = __w_pdfjs_require__(165); + (0, _api.setPDFNetworkStreamFactory)(params => { if ((0, _display_utils.isValidFetchUrl)(params.url)) { return new PDFFetchStream(params); } - return new PDFNetworkStream(params); }); } diff --git a/resources/pdfjs-legacy/build/pdf.js.map b/resources/pdfjs-legacy/build/pdf.js.map index e6c9bf2c2..874bdbb3b 100644 --- a/resources/pdfjs-legacy/build/pdf.js.map +++ b/resources/pdfjs-legacy/build/pdf.js.map @@ -1 +1 @@ -{"version":3,"file":"pdf.js","mappings":"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","sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.aggregate-error.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-native.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/clear-error-stack.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/install-error-cause.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterator-close.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/error-stack-installable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-apply.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/queue.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-native-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-constructor-detection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-browser.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.catch.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.race.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.reject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.any.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/structured-clone.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-slice-simple.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-is-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.structured-clone.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/regexp-get-flags.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/regexp-flags.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/base_factory.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_text.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/shared/scripting_utils.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_layer.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/webpack/runtime/node module decorator","webpack://pdfjs-dist/build/pdf/src/pdf.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Error = global.Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, Error);\nelse copyConstructorProperties($AggregateError, Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\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 // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.22.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, 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","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\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 -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\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","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.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_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\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 definePropertyModule.f(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","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/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 = IteratorPrototype == undefined || 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 redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n // eslint-disable-next-line unicorn/no-thenable -- safe\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n }\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","module.exports = typeof window == 'object' && typeof Deno != 'object';\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw 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","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar redefine = require('../internals/redefine');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n redefine(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n redefine(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../modules/es.array.iterator');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar booleanValueOf = uncurryThis(true.valueOf);\nvar numberValueOf = uncurryThis(1.0.valueOf);\nvar stringValueOf = uncurryThis(''.valueOf);\nvar getTime = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n }) && structuredCloneImplementation;\n};\n\n// FF94+, Safari TP134+, Chrome Canary 98+, NodeJS 17.0+, Deno 1.13+\n// current FF and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE || !checkNewErrorsSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// current Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor, structured cloning implementation\n// from `performance.mark` is too naive and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of current implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, kind) {\n throw new DOMException((kind || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n switch (type) {\n case 'Array':\n cloned = [];\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n cloned = new C(\n // this is safe, since arraybuffer cannot have circular references\n structuredCloneInternal(value.buffer, map),\n value.byteOffset,\n type === 'DataView' ? value.byteLength : value.length\n );\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n C = global.DataTransfer;\n if (isConstructor(C)) {\n dataTransfer = new C();\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(booleanValueOf(value));\n break;\n case 'Number':\n cloned = Object(numberValueOf(value));\n break;\n case 'String':\n cloned = Object(stringValueOf(value));\n break;\n case 'Date':\n cloned = new Date(getTime(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n } break;\n case 'SharedArrayBuffer':\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'CryptoKey':\n case 'GPUCompilationMessage':\n case 'GPUCompilationInfo':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n if (deep) switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n } else while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n type = classof(value);\n\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'ArrayBuffer':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && arguments[1] != null ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n\n return structuredCloneInternal(value, map);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n AnnotationMode,\n assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n MissingPDFException,\n PasswordException,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMStandardFontDataFactory,\n isDataScheme,\n loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\nlet DefaultCanvasFactory = DOMCanvasFactory;\nlet DefaultCMapReaderFactory = DOMCMapReaderFactory;\nlet DefaultStandardFontDataFactory = DOMStandardFontDataFactory;\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory,\n } = require(\"./node_utils.js\");\n\n DefaultCanvasFactory = NodeCanvasFactory;\n DefaultCMapReaderFactory = NodeCMapReaderFactory;\n DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params - The document initialization\n * parameters. The \"url\" key is always present.\n * @returns {Promise} A promise, which is resolved with an instance of\n * {IPDFStream}.\n * @ignore\n */\n\n/**\n * @type {IPDFStreamFactory}\n * @private\n */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates an {IPDFStream} as an alternative PDF\n * data transport.\n *\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - The factory function\n * that takes document initialization parameters (including a \"url\") and\n * returns a promise which is resolved with an instance of {IPDFStream}.\n * @ignore\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n * Int16Array | Uint16Array |\n * Int32Array | Uint32Array | Float32Array |\n * Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string|URL} [url] - The URL of the PDF.\n * @property {TypedArray|Array|string} [data] - Binary PDF data. Use\n * typed arrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use `atob()` to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n * or all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n * transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n * per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n * parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n * from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n * attempting to recover valid absolute URLs for annotations, and outline\n * items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n * located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n * packed or not.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n * reading built-in CMap files. Providing a custom factory is useful for\n * environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n * embedded in the PDF document will fallback to a system font.\n * The default value is `true` in web environments and `false` in Node.js;\n * unless `disableFontFace === true` in which case this defaults to `false`\n * regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n * files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n * when reading the standard font files. Providing a custom factory is useful\n * for environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n * worker-thread when reading CMap and standard font files. When `true`,\n * the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n * pixels, i.e. width * height. Images above this value will not be rendered.\n * Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n * as JavaScript. Primarily used to improve performance of font rendering, and\n * when parsing PDF functions. The default value is `true`.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n * OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n * If disabled, fonts will be rendered using a built-in font renderer that\n * constructs the glyphs with primitive path commands.\n * The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n * which are unused during rendering of PDF documents, when exporting the\n * parsed font data from the worker-thread. This may be useful for debugging\n * purposes (and backwards compatibility), but note that it will lead to\n * increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n * The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n * context to create elements with and to load resources, such as fonts,\n * into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n * files. When enabled, and if the server supports partial content requests,\n * then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n * By default PDF.js attempts to load PDF files in chunks. The default value\n * is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n * data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n *\n * NOTE: It is also necessary to disable streaming, see above, in order for\n * disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n * (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string|URL|TypedArray|PDFDataRangeTransport|DocumentInitParameters}\n * src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n * already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\" || src instanceof URL) {\n source = { url: src };\n } else if (isArrayBuffer(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\n \"Invalid parameter in getDocument, \" +\n \"need either string, URL, Uint8Array, or parameter object.\"\n );\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n \"Invalid parameter object: need either .data, .range or .url\"\n );\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n // The full path is required in the 'url' field.\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n warn(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString(); // Support Node.js environments.\n continue;\n }\n throw new Error(\n \"Invalid PDF url data: \" +\n \"either string or URL-object is expected in the url property.\"\n );\n case \"range\":\n rangeTransport = value;\n continue;\n case \"worker\":\n worker = value;\n continue;\n case \"data\":\n // Converting string or array-like data to Uint8Array.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n value instanceof Buffer // eslint-disable-line no-undef\n ) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break; // Use the data as-is when it's already a Uint8Array.\n } else if (typeof value === \"string\") {\n params[key] = stringToBytes(value);\n } else if (\n typeof value === \"object\" &&\n value !== null &&\n !isNaN(value.length)\n ) {\n params[key] = new Uint8Array(value);\n } else if (isArrayBuffer(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either typed array, \" +\n \"string, or array-like object is expected in the data property.\"\n );\n }\n continue;\n }\n params[key] = value;\n }\n\n params.CMapReaderFactory =\n params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory =\n params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\n if (\n typeof params.docBaseUrl !== \"string\" ||\n isDataScheme(params.docBaseUrl)\n ) {\n // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n // URLs anyway. We want to avoid sending them to the worker-thread, since\n // they contain the *entire* PDF document and can thus be arbitrarily long.\n params.docBaseUrl = null;\n }\n if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch =\n params.CMapReaderFactory === DOMCMapReaderFactory &&\n params.StandardFontDataFactory === DOMStandardFontDataFactory;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = isNodeJS;\n }\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !isNodeJS && !params.disableFontFace;\n }\n if (\n typeof params.ownerDocument !== \"object\" ||\n params.ownerDocument === null\n ) {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise\n .then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(\n worker,\n params,\n rangeTransport,\n docId\n );\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n },\n rangeTransport\n );\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n resolve(networkStream);\n });\n\n return Promise.all([workerIdPromise, networkStreamPromise]).then(\n function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n params\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId - Unique document ID, used in `MessageHandler`.\n * @returns {Promise} A promise that is resolved when the worker ID of\n * the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename =\n pdfDataRangeTransport.contentDispositionFilename;\n }\n const workerId = await worker.messageHandler.sendWithPromise(\n \"GetDocRequest\",\n {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n // Only send the required properties, and *not* the entire object.\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch\n ? source.standardFontDataUrl\n : null,\n }\n );\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique identifier for the document loading task.\n * @type {string}\n */\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n\n /**\n * Whether the loading task is destroyed or not.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if a wrong or no password was provided.\n * The callback receives two parameters: a function that should be called\n * with the new password, and a reason (see {@link PasswordResponses}).\n * @type {function}\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar).\n * The callback receives an {@link OnProgressParameters} argument.\n * @type {function}\n */\n this.onProgress = null;\n\n /**\n * Callback for when an unsupported feature is used in the PDF document.\n * The callback receives an {@link UNSUPPORTED_FEATURES} argument.\n * @type {function}\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Abort all network requests and destroy the worker.\n * @returns {Promise} A promise that is resolved when destruction is\n * completed.\n */\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\n\n/**\n * Abstract class to support range requests file loading.\n */\nclass PDFDataRangeTransport {\n /**\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} [progressiveDone]\n * @param {string} [contentDispositionFilename]\n */\n constructor(\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n Object.defineProperty(this, \"fingerprint\", {\n get() {\n deprecated(\n \"`PDFDocumentProxy.fingerprint`, \" +\n \"please use `PDFDocumentProxy.fingerprints` instead.\"\n );\n return this.fingerprints[0];\n },\n });\n\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n deprecated(\n \"`PDFDocumentProxy.getStats`, \" +\n \"please use the `PDFDocumentProxy.stats`-getter instead.\"\n );\n return this.stats || { streamTypes: {}, fontTypes: {} };\n },\n });\n }\n }\n\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n /**\n * @type {number} Total number of pages in the PDF file.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {Array} A (not guaranteed to be) unique ID to\n * identify the PDF document.\n * NOTE: The first element will always be defined for all PDF documents,\n * whereas the second element is only defined for *modified* PDF documents.\n */\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n /**\n * @typedef {Object} PDFDocumentStats\n * @property {Object} streamTypes - Used stream types in the\n * document (an item is set to true if specific stream ID was used in the\n * document).\n * @property {Object} fontTypes - Used font types in the\n * document (an item is set to true if specific font ID was used in the\n * document).\n */\n\n /**\n * @type {PDFDocumentStats | null} The current statistics about document\n * structures, or `null` when no statistics exists.\n */\n get stats() {\n return this._transport.stats;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n /**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n *\n * @type {Object | null} An object representing a HTML tree structure\n * to render the XFA, or `null` when no XFA form exists.\n */\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise} A promise that is resolved with\n * a {@link PDFPageProxy} object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {RefProxy} ref - The page reference.\n * @returns {Promise} A promise that is resolved with the page index,\n * starting from zero, that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise>>} A promise that is resolved\n * with a mapping from named destinations to references.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @returns {Promise | null>} A promise that is resolved with all\n * information of the given named destination, or `null` when the named\n * destination is not present in the PDF file.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} containing the page labels that correspond to the page\n * indexes, or `null` when no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} containing the viewer preferences, or `null` when no viewer\n * preferences are present in the PDF file.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array}\n * containing the destination, or `null` when no open action is present\n * in the PDF.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a lookup table\n * for mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} of all the JavaScript strings in the name tree, or `null`\n * if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with the JavaScript actions:\n * - from the name tree (like getJavaScript);\n * - from A or AA entries in the catalog dictionary.\n * , or `null` if no JavaScript exists.\n */\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n /**\n * @typedef {Object} OutlineNode\n * @property {string} title\n * @property {boolean} bold\n * @property {boolean} italic\n * @property {Uint8ClampedArray} color - The color in RGB format to use for\n * display purposes.\n * @property {string | Array | null} dest\n * @property {string | null} url\n * @property {string | undefined} unsafeUrl\n * @property {boolean | undefined} newWindow\n * @property {number | undefined} count\n * @property {Array} items\n */\n\n /**\n * @returns {Promise>} A promise that is resolved with an\n * {Array} that is a tree outline (if it has one) of the PDF file.\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {@link OptionalContentConfig} that contains all the optional content\n * groups (assuming that the document has any).\n */\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} that contains the permission flags for the PDF document, or\n * `null` when no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n * resolved with an {Object} that has `info` and `metadata` properties.\n * `info` is an {Object} filled with anything available in the information\n * dictionary and similarly `metadata` is a {Metadata} object with\n * information from the metadata section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @typedef {Object} MarkInfo\n * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n * @property {boolean} Marked\n * @property {boolean} UserProperties\n * @property {boolean} Suspects\n */\n\n /**\n * @returns {Promise} A promise that is resolved with\n * a {MarkInfo} object that contains the MarkInfo flags for the PDF\n * document, or `null` when no MarkInfo values are present in the PDF file.\n */\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {TypedArray} that has the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise<{ length: number }>} A promise that is resolved when the\n * document's data is loaded. It is resolved with an {Object} that contains\n * the `length` property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * Cleans up resources allocated by the document on both the main and worker\n * threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n * NOTE: This will increase persistent memory usage, hence don't use this\n * option unless absolutely necessary. The default value is `false`.\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @type {DocumentInitParameters} A subset of the current\n * {DocumentInitParameters}, which are needed in the viewer.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n this._transport.annotationStorage.size <= 0\n ) {\n deprecated(\n \"saveDocument called while `annotationStorage` is empty, \" +\n \"please use the getData-method instead.\"\n );\n }\n return this._transport.saveDocument();\n }\n\n /**\n * @returns {Promise> | null>} A promise that is\n * resolved with an {Object} containing /AcroForm field data for the JS\n * sandbox, or `null` when no field data is present in the PDF file.\n */\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with `true`\n * if some /AcroForm fields have JavaScript actions.\n */\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with an\n * {Array} containing IDs of annotations that have a calculation\n * action, or `null` when no such annotations are present in the PDF file.\n */\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} disableCombineTextItems - Do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n * @property {boolean} [includeMarkedContent] - When true include marked\n * content items in the items array of TextContent. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array} items - Array of\n * {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n * items are included when includeMarkedContent is true.\n * @property {Object} styles - {@link TextStyle} objects,\n * indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n * line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n * 'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n * 'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n * can be 'display' (viewable annotations), 'print' (printable annotations),\n * or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n * the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n * onto the canvas, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {Array} [transform] - Additional transform, applied just\n * before viewport transform.\n * @property {Object} [imageLayer] - An object that has `beginLayout`,\n * `endLayout` and `appendImage` functions.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n * when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object | string} [background] - Background to use for the canvas.\n * Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n * value, a `CanvasGradient` object (a linear or radial gradient) or\n * a `CanvasPattern` object (a repetitive image). The default value is\n * 'rgb(255,255,255)'.\n *\n * NOTE: This option may be partially, or completely, ignored when the\n * `pageColors`-option is used.\n * @property {Object} [pageColors] - Overwrites background and foreground colors\n * with user defined ones in order to improve readability in high contrast\n * mode.\n * @property {Promise} [optionalContentConfigPromise] -\n * A promise that should resolve with an {@link OptionalContentConfig}\n * created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n * the configuration will be fetched automatically with the default visibility\n * states set.\n * @property {Map} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n * in the operatorList, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array} children - Array of\n * {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n * elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n /** @type {PDFObjects} */\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this._bitmaps = new Set();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {RefProxy | null} The reference that points to this page.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @type {Array} An array of the visible portion of the PDF page in\n * user space units [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise>} A promise that is resolved with an\n * {Array} of the annotation objects.\n */\n getAnnotations({ intent = \"display\" } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n if (!promise) {\n promise = this._transport.getAnnotations(\n this._pageIndex,\n intentArgs.renderingIntent\n );\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n deprecated(\n \"`title`-property on annotation, please use `titleObj` instead.\"\n );\n return annotation.titleObj.str;\n },\n });\n }\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n deprecated(\n \"`contents`-property on annotation, please use `contentsObj` instead.\"\n );\n return annotation.contentsObj.str;\n },\n });\n }\n }\n return annotations;\n });\n }\n }\n return promise;\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} with JS actions.\n */\n getJSActions() {\n return (this._jsActionsPromise ||= this._transport.getPageJSActions(\n this._pageIndex\n ));\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with a fake DOM object (a tree structure where elements\n * are {Object} with a name, attributes (class, style, ...), value and\n * children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n */\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n *\n * @param {RenderParameters} params - Page render parameters.\n * @returns {RenderTask} An object that contains a promise that is\n * resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n }) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n if (arguments[0]?.renderInteractiveForms !== undefined) {\n deprecated(\n \"render no longer accepts the `renderInteractiveForms`-option, \" +\n \"please use the `annotationMode`-option instead.\"\n );\n if (\n arguments[0].renderInteractiveForms === true &&\n annotationMode === AnnotationMode.ENABLE\n ) {\n annotationMode = AnnotationMode.ENABLE_FORMS;\n }\n }\n if (arguments[0]?.includeAnnotationStorage !== undefined) {\n deprecated(\n \"render no longer accepts the `includeAnnotationStorage`-option, \" +\n \"please use the `annotationMode`-option instead.\"\n );\n if (\n arguments[0].includeAnnotationStorage === true &&\n annotationMode === AnnotationMode.ENABLE\n ) {\n annotationMode = AnnotationMode.ENABLE_STORAGE;\n }\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode\n );\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance =\n canvasFactory ||\n new DefaultCanvasFactory({ ownerDocument: this._ownerDocument });\n const intentPrint = !!(\n intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n );\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error),\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors,\n });\n\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n Promise.all([\n intentState.displayReadyCapability.promise,\n optionalContentConfigPromise,\n ])\n .then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig,\n });\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @param {GetOperatorListParameters} params - Page getOperatorList\n * parameters.\n * @returns {Promise} A promise resolved with an\n * {@link PDFOperatorList} object that represents the page's operator list.\n */\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n /* isOpList = */ true\n );\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise} A promise that is resolved with a\n * {@link TextContent} object that represents the page's text content.\n */\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n // TODO: We need to revisit this once the XFA foreground patch lands and\n // only do this for non-foreground XFA.\n return this.getXfa().then(xfa => {\n return XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({ value, done }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {@link StructTreeNode} object that represents the page's structure tree,\n * or `null` when no structure tree is present for the current page.\n */\n getStructTree() {\n return (this._structTreePromise ||= this._transport.getStructTree(\n this._pageIndex\n ));\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intentState.opListReadCapability) {\n // Avoid errors below, since the renderTasks are just stubs.\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n this._bitmaps.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n *\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @private\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n for (const { renderTasks, operatorList } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n this.objs.clear();\n this._annotationPromises.clear();\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n if (resetStats && this._stats) {\n this._stats = new StatTimer();\n }\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n this._bitmaps.clear();\n this.pendingCleanup = false;\n return true;\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList({ renderingIntent, cacheKey }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Number.isInteger(renderingIntent) && renderingIntent > 0,\n '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n );\n }\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage:\n renderingIntent & RenderingIntentFlag.ANNOTATIONS_STORAGE\n ? this._transport.annotationStorage.serializable\n : null,\n }\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n reason instanceof Error,\n '_abortOperatorList: Expected valid \"reason\" argument.'\n );\n }\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.size > 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader\n .cancel(new AbortException(reason.message))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers),\n };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n * the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0,\n};\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n PDFWorkerUtil.isWorkerDisabled = true;\n\n PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n ? \"../pdf.worker.js\"\n : \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n\n // Check if URLs have the same origin. For non-HTTP based URLs, returns false.\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n if (port && PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n\n this._readyCapability = createPromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker.#workerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n /**\n * Promise for worker initialization completion.\n * @type {Promise}\n */\n get promise() {\n return this._readyCapability.promise;\n }\n\n /**\n * The current `workerPort`, when it exists.\n * @type {Worker}\n */\n get port() {\n return this._port;\n }\n\n /**\n * The current MessageHandler-instance.\n * @type {MessageHandler}\n */\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {\n // Ignoring \"ready\" event -- MessageHandler should already be initialized\n // and ready to accept messages.\n });\n this._readyCapability.resolve();\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (\n typeof Worker !== \"undefined\" &&\n !PDFWorkerUtil.isWorkerDisabled &&\n !PDFWorker._mainThreadWorkerMessageHandler\n ) {\n let workerSrc = PDFWorker.workerSrc;\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n !PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)\n ) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(\n new URL(workerSrc, window.location).href\n );\n }\n\n // Some versions of FF can't create a worker on localhost, see:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n const worker = new Worker(workerSrc);\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch (e) {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n // Ensure that we can use `postMessage` transfers.\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n // It might take time for the worker to initialize. We will try to send\n // the \"test\" message immediately, and once the \"ready\" message arrives.\n // The worker shall process only the first received \"test\" message.\n sendTest();\n return;\n } catch (e) {\n info(\"The worker has been disabled.\");\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal\n .then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n })\n .catch(reason => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n );\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n\n /**\n * The current `workerSrc`, when it exists.\n * @type {string}\n */\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n // Loads worker code into the main-thread.\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a `