{"version":3,"file":"pdf_viewer.js","mappings":"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","sources":["webpack://pdfjs-dist/web/pdf_viewer/webpack/universalModuleDefinition","webpack://pdfjs-dist/web/pdf_viewer/web/default_factory.js","webpack://pdfjs-dist/web/pdf_viewer/web/annotation_layer_builder.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdfjs.js","webpack://pdfjs-dist/web/pdf_viewer/web/l10n_utils.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_link_service.js","webpack://pdfjs-dist/web/pdf_viewer/web/ui_utils.js","webpack://pdfjs-dist/web/pdf_viewer/web/struct_tree_layer_builder.js","webpack://pdfjs-dist/web/pdf_viewer/web/text_layer_builder.js","webpack://pdfjs-dist/web/pdf_viewer/web/xfa_layer_builder.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_viewer.js","webpack://pdfjs-dist/web/pdf_viewer/web/base_viewer.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_page_view.js","webpack://pdfjs-dist/web/pdf_viewer/web/app_options.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_rendering_queue.js","webpack://pdfjs-dist/web/pdf_viewer/web/text_highlighter.js","webpack://pdfjs-dist/web/pdf_viewer/web/download_manager.js","webpack://pdfjs-dist/web/pdf_viewer/web/event_utils.js","webpack://pdfjs-dist/web/pdf_viewer/web/genericl10n.js","webpack://pdfjs-dist/web/pdf_viewer/external/webL10n/l10n.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_find_controller.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_find_utils.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_history.js","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_scripting_manager.js","webpack://pdfjs-dist/web/pdf_viewer/web/generic_scripting.js","webpack://pdfjs-dist/web/pdf_viewer/webpack/bootstrap","webpack://pdfjs-dist/web/pdf_viewer/web/pdf_viewer.component.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/web/pdf_viewer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/web/pdf_viewer\"] = factory();\n})(this, function() {\nreturn ","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"./interfaces\").IL10n} IL10n */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./interfaces\").IPDFAnnotationLayerFactory} IPDFAnnotationLayerFactory */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./interfaces\").IPDFStructTreeLayerFactory} IPDFStructTreeLayerFactory */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./interfaces\").IPDFTextLayerFactory} IPDFTextLayerFactory */\n/** @typedef {import(\"./interfaces\").IPDFXfaLayerFactory} IPDFXfaLayerFactory */\n/** @typedef {import(\"./text_highlighter\").TextHighlighter} TextHighlighter */\n\nimport { AnnotationLayerBuilder } from \"./annotation_layer_builder.js\";\nimport { NullL10n } from \"./l10n_utils.js\";\nimport { SimpleLinkService } from \"./pdf_link_service.js\";\nimport { StructTreeLayerBuilder } from \"./struct_tree_layer_builder.js\";\nimport { TextLayerBuilder } from \"./text_layer_builder.js\";\nimport { XfaLayerBuilder } from \"./xfa_layer_builder.js\";\n\n/**\n * @implements IPDFAnnotationLayerFactory\n */\nclass DefaultAnnotationLayerFactory {\n /**\n * @param {HTMLDivElement} pageDiv\n * @param {PDFPageProxy} pdfPage\n * @param {AnnotationStorage} [annotationStorage]\n * @param {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @param {boolean} renderForms\n * @param {IL10n} l10n\n * @param {boolean} [enableScripting]\n * @param {Promise} [hasJSActionsPromise]\n * @param {Object} [mouseState]\n * @param {Promise> | null>}\n * [fieldObjectsPromise]\n * @param {Map} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n * @returns {AnnotationLayerBuilder}\n */\n createAnnotationLayerBuilder(\n pageDiv,\n pdfPage,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderForms = true,\n l10n = NullL10n,\n enableScripting = false,\n hasJSActionsPromise = null,\n mouseState = null,\n fieldObjectsPromise = null,\n annotationCanvasMap = null\n ) {\n return new AnnotationLayerBuilder({\n pageDiv,\n pdfPage,\n imageResourcesPath,\n renderForms,\n linkService: new SimpleLinkService(),\n l10n,\n annotationStorage,\n enableScripting,\n hasJSActionsPromise,\n fieldObjectsPromise,\n mouseState,\n annotationCanvasMap,\n });\n }\n}\n\n/**\n * @implements IPDFStructTreeLayerFactory\n */\nclass DefaultStructTreeLayerFactory {\n /**\n * @param {PDFPageProxy} pdfPage\n * @returns {StructTreeLayerBuilder}\n */\n createStructTreeLayerBuilder(pdfPage) {\n return new StructTreeLayerBuilder({\n pdfPage,\n });\n }\n}\n\n/**\n * @implements IPDFTextLayerFactory\n */\nclass DefaultTextLayerFactory {\n /**\n * @param {HTMLDivElement} textLayerDiv\n * @param {number} pageIndex\n * @param {PageViewport} viewport\n * @param {boolean} enhanceTextSelection\n * @param {EventBus} eventBus\n * @param {TextHighlighter} highlighter\n * @returns {TextLayerBuilder}\n */\n createTextLayerBuilder(\n textLayerDiv,\n pageIndex,\n viewport,\n enhanceTextSelection = false,\n eventBus,\n highlighter\n ) {\n return new TextLayerBuilder({\n textLayerDiv,\n pageIndex,\n viewport,\n enhanceTextSelection,\n eventBus,\n highlighter,\n });\n }\n}\n\n/**\n * @implements IPDFXfaLayerFactory\n */\nclass DefaultXfaLayerFactory {\n /**\n * @param {HTMLDivElement} pageDiv\n * @param {PDFPageProxy} pdfPage\n * @param {AnnotationStorage} [annotationStorage]\n * @param {Object} [xfaHtml]\n */\n createXfaLayerBuilder(\n pageDiv,\n pdfPage,\n annotationStorage = null,\n xfaHtml = null\n ) {\n return new XfaLayerBuilder({\n pageDiv,\n pdfPage,\n annotationStorage,\n linkService: new SimpleLinkService(),\n xfaHtml,\n });\n }\n}\n\nexport {\n DefaultAnnotationLayerFactory,\n DefaultStructTreeLayerFactory,\n DefaultTextLayerFactory,\n DefaultXfaLayerFactory,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"./interfaces\").IL10n} IL10n */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { AnnotationLayer } from \"pdfjs-lib\";\nimport { NullL10n } from \"./l10n_utils.js\";\n\n/**\n * @typedef {Object} AnnotationLayerBuilderOptions\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {IL10n} l10n - Localization service.\n * @property {boolean} [enableScripting]\n * @property {Promise} [hasJSActionsPromise]\n * @property {Promise> | null>}\n * [fieldObjectsPromise]\n * @property {Object} [mouseState]\n * @property {Map} [annotationCanvasMap]\n */\n\nclass AnnotationLayerBuilder {\n /**\n * @param {AnnotationLayerBuilderOptions} options\n */\n constructor({\n pageDiv,\n pdfPage,\n linkService,\n downloadManager,\n annotationStorage = null,\n imageResourcesPath = \"\",\n renderForms = true,\n l10n = NullL10n,\n enableScripting = false,\n hasJSActionsPromise = null,\n fieldObjectsPromise = null,\n mouseState = null,\n annotationCanvasMap = null,\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.linkService = linkService;\n this.downloadManager = downloadManager;\n this.imageResourcesPath = imageResourcesPath;\n this.renderForms = renderForms;\n this.l10n = l10n;\n this.annotationStorage = annotationStorage;\n this.enableScripting = enableScripting;\n this._hasJSActionsPromise = hasJSActionsPromise;\n this._fieldObjectsPromise = fieldObjectsPromise;\n this._mouseState = mouseState;\n this._annotationCanvasMap = annotationCanvasMap;\n\n this.div = null;\n this._cancelled = false;\n }\n\n /**\n * @param {PageViewport} viewport\n * @param {string} intent (default value is 'display')\n * @returns {Promise} A promise that is resolved when rendering of the\n * annotations is complete.\n */\n async render(viewport, intent = \"display\") {\n const [annotations, hasJSActions = false, fieldObjects = null] =\n await Promise.all([\n this.pdfPage.getAnnotations({ intent }),\n this._hasJSActionsPromise,\n this._fieldObjectsPromise,\n ]);\n\n if (this._cancelled || annotations.length === 0) {\n return;\n }\n\n const parameters = {\n viewport: viewport.clone({ dontFlip: true }),\n div: this.div,\n annotations,\n page: this.pdfPage,\n imageResourcesPath: this.imageResourcesPath,\n renderForms: this.renderForms,\n linkService: this.linkService,\n downloadManager: this.downloadManager,\n annotationStorage: this.annotationStorage,\n enableScripting: this.enableScripting,\n hasJSActions,\n fieldObjects,\n mouseState: this._mouseState,\n annotationCanvasMap: this._annotationCanvasMap,\n };\n\n if (this.div) {\n // If an annotationLayer already exists, refresh its children's\n // transformation matrices.\n AnnotationLayer.update(parameters);\n } else {\n // Create an annotation layer div and render the annotations\n // if there is at least one annotation.\n this.div = document.createElement(\"div\");\n this.div.className = \"annotationLayer\";\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n\n AnnotationLayer.render(parameters);\n this.l10n.translate(this.div);\n }\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n}\n\nexport { AnnotationLayerBuilder };\n","/* Copyright 2016 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 module, __non_webpack_require__ */\n\n\"use strict\";\n\nlet pdfjsLib;\nif (typeof window !== \"undefined\" && window[\"pdfjs-dist/build/pdf\"]) {\n pdfjsLib = window[\"pdfjs-dist/build/pdf\"];\n} else {\n pdfjsLib = __non_webpack_require__(\"../build/pdf.js\");\n}\nmodule.exports = pdfjsLib;\n","/* Copyright 2021 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 * A subset of the l10n strings in the `l10n/en-US/viewer.properties` file.\n */\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string:\n \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string:\n \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n\n print_progress_percent: \"{{progress}}%\",\n\n \"toggle_sidebar.title\": \"Toggle Sidebar\",\n \"toggle_sidebar_notification2.title\":\n \"Toggle Sidebar (document contains outline/attachments/layers)\",\n\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n\n error_version_info: \"PDF.js v{{version}} (build: {{build}})\",\n error_message: \"Message: {{message}}\",\n error_stack: \"Stack: {{stack}}\",\n error_file: \"File: {{file}}\",\n error_line: \"Line: {{line}}\",\n rendering_error: \"An error occurred while rendering the page.\",\n\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n\n loading: \"Loading…\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n\n printing_not_supported:\n \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled:\n \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n};\n\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\n\nconst PARTIAL_LANG_CODES = {\n en: \"en-US\",\n es: \"es-ES\",\n fy: \"fy-NL\",\n ga: \"ga-IE\",\n gu: \"gu-IN\",\n hi: \"hi-IN\",\n hy: \"hy-AM\",\n nb: \"nb-NO\",\n ne: \"ne-NP\",\n nn: \"nn-NO\",\n pa: \"pa-IN\",\n pt: \"pt-PT\",\n sv: \"sv-SE\",\n zh: \"zh-CN\",\n};\n\n// Try to support \"incompletely\" specified language codes (see issue 13689).\nfunction fixupLangCode(langCode) {\n return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode;\n}\n\n// Replaces {{arguments}} with their values.\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\n\n/**\n * No-op implementation of the localization service.\n * @implements {IL10n}\n */\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n\n async getDirection() {\n return \"ltr\";\n },\n\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n\n async translate(element) {},\n};\n\nexport { fixupLangCode, getL10nFallback, NullL10n };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { addLinkAttributes, LinkTarget } from \"pdfjs-lib\";\nimport { parseQueryString } from \"./ui_utils.js\";\n\n/**\n * @typedef {Object} PDFLinkServiceOptions\n * @property {EventBus} eventBus - The application event bus.\n * @property {number} [externalLinkTarget] - Specifies the `target` attribute\n * for external links. Must use one of the values from {LinkTarget}.\n * Defaults to using no target.\n * @property {string} [externalLinkRel] - Specifies the `rel` attribute for\n * external links. Defaults to stripping the referrer.\n * @property {boolean} [ignoreDestinationZoom] - Ignores the zoom argument,\n * thus preserving the current zoom level in the viewer, when navigating\n * to internal destinations. The default value is `false`.\n */\n\n/**\n * Performs navigation functions inside PDF, such as opening specified page,\n * or destination.\n * @implements {IPDFLinkService}\n */\nclass PDFLinkService {\n /**\n * @param {PDFLinkServiceOptions} options\n */\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false,\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this.externalLinkEnabled = true;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n\n this._pagesRefCache = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n this._pagesRefCache = Object.create(null);\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n /**\n * @type {number}\n */\n get pagesCount() {\n return this.pdfDocument ? this.pdfDocument.numPages : 0;\n }\n\n /**\n * @type {number}\n */\n get page() {\n return this.pdfViewer.currentPageNumber;\n }\n\n /**\n * @param {number} value\n */\n set page(value) {\n this.pdfViewer.currentPageNumber = value;\n }\n\n /**\n * @type {number}\n */\n get rotation() {\n return this.pdfViewer.pagesRotation;\n }\n\n /**\n * @param {number} value\n */\n set rotation(value) {\n this.pdfViewer.pagesRotation = value;\n }\n\n /**\n * @private\n */\n _goToDestinationHelper(rawDest, namedDest = null, explicitDest) {\n // Dest array looks like that: \n const destRef = explicitDest[0];\n let pageNumber;\n\n if (typeof destRef === \"object\" && destRef !== null) {\n pageNumber = this._cachedPageNumber(destRef);\n\n if (!pageNumber) {\n // Fetch the page reference if it's not yet available. This could\n // only occur during loading, before all pages have been resolved.\n this.pdfDocument\n .getPageIndex(destRef)\n .then(pageIndex => {\n this.cachePageRef(pageIndex + 1, destRef);\n this._goToDestinationHelper(rawDest, namedDest, explicitDest);\n })\n .catch(() => {\n console.error(\n `PDFLinkService._goToDestinationHelper: \"${destRef}\" is not ` +\n `a valid page reference, for dest=\"${rawDest}\".`\n );\n });\n return;\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n } else {\n console.error(\n `PDFLinkService._goToDestinationHelper: \"${destRef}\" is not ` +\n `a valid destination reference, for dest=\"${rawDest}\".`\n );\n return;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(\n `PDFLinkService._goToDestinationHelper: \"${pageNumber}\" is not ` +\n `a valid page number, for dest=\"${rawDest}\".`\n );\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new destination into\n // view, to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({ namedDest, explicitDest, pageNumber });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom,\n });\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {string|Array} dest - The named, or explicit, PDF destination.\n */\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n let namedDest, explicitDest;\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n if (!Array.isArray(explicitDest)) {\n console.error(\n `PDFLinkService.goToDestination: \"${explicitDest}\" is not ` +\n `a valid destination array, for dest=\"${dest}\".`\n );\n return;\n }\n this._goToDestinationHelper(dest, namedDest, explicitDest);\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {number|string} val - The page number, or page label.\n */\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n const pageNumber =\n (typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val)) ||\n val | 0;\n if (\n !(\n Number.isInteger(pageNumber) &&\n pageNumber > 0 &&\n pageNumber <= this.pagesCount\n )\n ) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new page into view,\n // to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n\n this.pdfViewer.scrollPageIntoView({ pageNumber });\n }\n\n /**\n * Wrapper around the `addLinkAttributes`-function in the API.\n * @param {HTMLAnchorElement} link\n * @param {string} url\n * @param {boolean} [newWindow]\n */\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, {\n url,\n target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel: this.externalLinkRel,\n enabled: this.externalLinkEnabled,\n });\n }\n\n /**\n * @param {string|Array} dest - The PDF destination object.\n * @returns {string} The hyperlink to the PDF object.\n */\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n return this.getAnchorUrl(\"\");\n }\n\n /**\n * Prefix the full url on anchor links to make sure that links are resolved\n * relative to the current URL instead of the one defined in .\n * @param {string} anchor - The anchor hash, including the #.\n * @returns {string} The hyperlink to the PDF object.\n */\n getAnchorUrl(anchor) {\n return (this.baseUrl || \"\") + anchor;\n }\n\n /**\n * @param {string} hash\n */\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n let pageNumber, dest;\n if (hash.includes(\"=\")) {\n const params = parseQueryString(hash);\n if (params.has(\"search\")) {\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: params.get(\"search\").replace(/\"/g, \"\"),\n phraseSearch: params.get(\"phrase\") === \"true\",\n });\n }\n // borrowing syntax from \"Parameters for Opening PDF Files\"\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n if (params.has(\"zoom\")) {\n // Build the destination array.\n const zoomArgs = params.get(\"zoom\").split(\",\"); // scale,left,top\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n // If the zoomArg is a number, it has to get divided by 100. If it's\n // a string, it should stay as it is.\n dest = [\n null,\n { name: \"XYZ\" },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n zoomArgs.length > 2 ? zoomArgs[2] | 0 : null,\n zoomArgNumber ? zoomArgNumber / 100 : zoomArg,\n ];\n } else {\n if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, { name: zoomArg }];\n } else if (\n zoomArg === \"FitH\" ||\n zoomArg === \"FitBH\" ||\n zoomArg === \"FitV\" ||\n zoomArg === \"FitBV\"\n ) {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n ];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error(\n 'PDFLinkService.setHash: Not enough parameters for \"FitR\".'\n );\n } else {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs[1] | 0,\n zoomArgs[2] | 0,\n zoomArgs[3] | 0,\n zoomArgs[4] | 0,\n ];\n }\n } else {\n console.error(\n `PDFLinkService.setHash: \"${zoomArg}\" is not ` +\n \"a valid zoom value.\"\n );\n }\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true,\n });\n } else if (pageNumber) {\n this.page = pageNumber; // simple page\n }\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\"),\n });\n }\n // Ensure that this parameter is *always* handled last, in order to\n // guarantee that it won't be overridden (e.g. by the \"page\" parameter).\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n } else {\n // Named (or explicit) destination.\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n // Avoid incorrectly rejecting a valid named destination, such as\n // e.g. \"4.3\" or \"true\", because `JSON.parse` converted its type.\n dest = dest.toString();\n }\n } catch (ex) {}\n\n if (typeof dest === \"string\" || isValidExplicitDestination(dest)) {\n this.goToDestination(dest);\n return;\n }\n console.error(\n `PDFLinkService.setHash: \"${unescape(hash)}\" is not ` +\n \"a valid destination.\"\n );\n }\n }\n\n /**\n * @param {string} action\n */\n executeNamedAction(action) {\n // See PDF reference, table 8.45 - Named action\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break; // No action according to spec\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action,\n });\n }\n\n /**\n * @param {number} pageNum - page number.\n * @param {Object} pageRef - reference to the page.\n */\n cachePageRef(pageNum, pageRef) {\n if (!pageRef) {\n return;\n }\n const refStr =\n pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n this._pagesRefCache[refStr] = pageNum;\n }\n\n /**\n * @private\n */\n _cachedPageNumber(pageRef) {\n if (!pageRef) {\n return null;\n }\n const refStr =\n pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`;\n return this._pagesRefCache?.[refStr] || null;\n }\n\n /**\n * @param {number} pageNumber\n */\n isPageVisible(pageNumber) {\n return this.pdfViewer.isPageVisible(pageNumber);\n }\n\n /**\n * @param {number} pageNumber\n */\n isPageCached(pageNumber) {\n return this.pdfViewer.isPageCached(pageNumber);\n }\n}\n\nfunction isValidExplicitDestination(dest) {\n if (!Array.isArray(dest)) {\n return false;\n }\n const destLength = dest.length;\n if (destLength < 2) {\n return false;\n }\n const page = dest[0];\n if (\n !(\n typeof page === \"object\" &&\n Number.isInteger(page.num) &&\n Number.isInteger(page.gen)\n ) &&\n !(Number.isInteger(page) && page >= 0)\n ) {\n return false;\n }\n const zoom = dest[1];\n if (!(typeof zoom === \"object\" && typeof zoom.name === \"string\")) {\n return false;\n }\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (destLength !== 5) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return destLength === 2;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (destLength !== 3) {\n return false;\n }\n break;\n case \"FitR\":\n if (destLength !== 6) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (let i = 2; i < destLength; i++) {\n const param = dest[i];\n if (!(typeof param === \"number\" || (allowNull && param === null))) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @implements {IPDFLinkService}\n */\nclass SimpleLinkService {\n constructor() {\n this.externalLinkEnabled = true;\n }\n\n /**\n * @type {number}\n */\n get pagesCount() {\n return 0;\n }\n\n /**\n * @type {number}\n */\n get page() {\n return 0;\n }\n\n /**\n * @param {number} value\n */\n set page(value) {}\n\n /**\n * @type {number}\n */\n get rotation() {\n return 0;\n }\n\n /**\n * @param {number} value\n */\n set rotation(value) {}\n\n /**\n * @param {string|Array} dest - The named, or explicit, PDF destination.\n */\n async goToDestination(dest) {}\n\n /**\n * @param {number|string} val - The page number, or page label.\n */\n goToPage(val) {}\n\n /**\n * @param {HTMLAnchorElement} link\n * @param {string} url\n * @param {boolean} [newWindow]\n */\n addLinkAttributes(link, url, newWindow = false) {\n addLinkAttributes(link, { url, enabled: this.externalLinkEnabled });\n }\n\n /**\n * @param dest - The PDF destination object.\n * @returns {string} The hyperlink to the PDF object.\n */\n getDestinationHash(dest) {\n return \"#\";\n }\n\n /**\n * @param hash - The PDF parameters/hash.\n * @returns {string} The hyperlink to the PDF object.\n */\n getAnchorUrl(hash) {\n return \"#\";\n }\n\n /**\n * @param {string} hash\n */\n setHash(hash) {}\n\n /**\n * @param {string} action\n */\n executeNamedAction(action) {}\n\n /**\n * @param {number} pageNum - page number.\n * @param {Object} pageRef - reference to the page.\n */\n cachePageRef(pageNum, pageRef) {}\n\n /**\n * @param {number} pageNumber\n */\n isPageVisible(pageNumber) {\n return true;\n }\n\n /**\n * @param {number} pageNumber\n */\n isPageCached(pageNumber) {\n return true;\n }\n}\n\nexport { PDFLinkService, SimpleLinkService };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DEFAULT_SCALE_VALUE = \"auto\";\nconst DEFAULT_SCALE = 1.0;\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst MIN_SCALE = 0.1;\nconst MAX_SCALE = 10.0;\nconst UNKNOWN_SCALE = 0;\nconst MAX_AUTO_SCALE = 1.25;\nconst SCROLLBAR_PADDING = 40;\nconst VERTICAL_PADDING = 5;\n\nconst LOADINGBAR_END_OFFSET_VAR = \"--loadingBar-end-offset\";\n\nconst RenderingStates = {\n INITIAL: 0,\n RUNNING: 1,\n PAUSED: 2,\n FINISHED: 3,\n};\n\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3,\n};\n\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1, // Default value.\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4,\n};\n\nconst RendererType = {\n CANVAS: \"canvas\",\n SVG: \"svg\",\n};\n\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_ENHANCE: 2,\n};\n\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0, // Default value.\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3,\n};\n\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0, // Default value.\n ODD: 1,\n EVEN: 2,\n};\n\n// Used by `PDFViewerApplication`, and by the API unit-tests.\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\n\n/**\n * Returns scale factor for the canvas. It makes sense for the HiDPI displays.\n * @returns {Object} The object with horizontal (sx) and vertical (sy)\n * scales. The scaled property is set to false if scaling is\n * not required, true otherwise.\n */\nfunction getOutputScale(ctx) {\n const devicePixelRatio = window.devicePixelRatio || 1;\n const backingStoreRatio =\n ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.backingStorePixelRatio ||\n 1;\n const pixelRatio = devicePixelRatio / backingStoreRatio;\n return {\n sx: pixelRatio,\n sy: pixelRatio,\n scaled: pixelRatio !== 1,\n };\n}\n\n/**\n * Scrolls specified element into view of its parent.\n * @param {Object} element - The element to be visible.\n * @param {Object} spot - An object with optional top and left properties,\n * specifying the offset from the top left edge.\n * @param {boolean} [scrollMatches] - When scrolling search results into view,\n * ignore elements that either: Contains marked content identifiers,\n * or have the CSS-rule `overflow: hidden;` set. The default value is `false`.\n */\nfunction scrollIntoView(element, spot, scrollMatches = false) {\n // Assuming offsetParent is available (it's not available when viewer is in\n // hidden iframe or object). We have to scroll: if the offsetParent is not set\n // producing the error. See also animationStarted.\n let parent = element.offsetParent;\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n while (\n (parent.clientHeight === parent.scrollHeight &&\n parent.clientWidth === parent.scrollWidth) ||\n (scrollMatches &&\n (parent.classList.contains(\"markedContent\") ||\n getComputedStyle(parent).overflow === \"hidden\"))\n ) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n\n parent = parent.offsetParent;\n if (!parent) {\n return; // no need to scroll\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\n\n/**\n * Helper function to start monitoring the scroll event and converting them into\n * PDF.js friendly one: with scroll debounce and scroll direction.\n */\nfunction watchScroll(viewAreaElement, callback) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n // schedule an invocation of scroll for next animation frame.\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll,\n };\n\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, true);\n return state;\n}\n\n/**\n * Helper function to parse query string (e.g. ?param1=value¶m2=...).\n * @param {string}\n * @returns {Map}\n */\nfunction parseQueryString(query) {\n const params = new Map();\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n return params;\n}\n\n/**\n * Use binary search to find the index of the first item in a given array which\n * passes a given condition. The items are expected to be sorted in the sense\n * that if the condition is true for one item in the array, then it is also true\n * for all following items.\n *\n * @returns {number} Index of the first array element to pass the test,\n * or |items.length| if no such element exists.\n */\nfunction binarySearchFirstItem(items, condition) {\n let minIndex = 0;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = (minIndex + maxIndex) >> 1;\n const currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex; /* === maxIndex */\n}\n\n/**\n * Approximates float number as a fraction using Farey sequence (max order\n * of 8).\n * @param {number} x - Positive float number.\n * @returns {Array} Estimated fraction: the first array item is a numerator,\n * the second one is a denominator.\n */\nfunction approximateFraction(x) {\n // Fast paths for int numbers or their inversions.\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n const xinv = 1 / x;\n const limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n // a/b and c/d are neighbours in Farey sequence.\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n // Limiting search to order 8.\n while (true) {\n // Generating next term in sequence (order of q).\n const p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n let result;\n // Select closest of the neighbours to x.\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\n\nfunction roundToDivide(x, div) {\n const r = x % div;\n return r === 0 ? x : Math.round(x - r + div);\n}\n\n/**\n * @typedef {Object} GetPageSizeInchesParameters\n * @property {number[]} view\n * @property {number} userUnit\n * @property {number} rotate\n */\n\n/**\n * @typedef {Object} PageSize\n * @property {number} width - In inches.\n * @property {number} height - In inches.\n */\n\n/**\n * Gets the size of the specified page, converted from PDF units to inches.\n * @param {GetPageSizeInchesParameters} params\n * @returns {PageSize}\n */\nfunction getPageSizeInches({ view, userUnit, rotate }) {\n const [x1, y1, x2, y2] = view;\n // We need to take the page rotation into account as well.\n const changeOrientation = rotate % 180 !== 0;\n\n const width = ((x2 - x1) / 72) * userUnit;\n const height = ((y2 - y1) / 72) * userUnit;\n\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height,\n };\n}\n\n/**\n * Helper function for getVisibleElements.\n *\n * @param {number} index - initial guess at the first visible element\n * @param {Array} views - array of pages, into which `index` is an index\n * @param {number} top - the top of the scroll pane\n * @returns {number} less than or equal to `index` that is definitely at or\n * before the first visible element in `views`, but not by too much. (Usually,\n * this will be the first element in the first partially visible row in\n * `views`, although sometimes it goes back one row further.)\n */\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n // binarySearchFirstItem's assumption is that the input is ordered, with only\n // one index where the conditions flips from false to true: [false ...,\n // true...]. With vertical scrolling and spreads, it is possible to have\n // [false ..., true, false, true ...]. With wrapped scrolling we can have a\n // similar sequence, with many more mixed true and false in the middle.\n //\n // So there is no guarantee that the binary search yields the index of the\n // first visible element. It could have been any of the other visible elements\n // that were preceded by a hidden element.\n\n // Of course, if either this element or the previous (hidden) element is also\n // the first element, there's nothing to worry about.\n if (index < 2) {\n return index;\n }\n\n // That aside, the possible cases are represented below.\n //\n // **** = fully hidden\n // A*B* = mix of partially visible and/or hidden pages\n // CDEF = fully visible\n //\n // (1) Binary search could have returned A, in which case we can stop.\n // (2) Binary search could also have returned B, in which case we need to\n // check the whole row.\n // (3) Binary search could also have returned C, in which case we need to\n // check the whole previous row.\n //\n // There's one other possibility:\n //\n // **** = fully hidden\n // ABCD = mix of fully and/or partially visible pages\n //\n // (4) Binary search could only have returned A.\n\n // Initially assume that we need to find the beginning of the current row\n // (case 1, 2, or 4), which means finding a page that is above the current\n // page's top. If the found page is partially visible, we're definitely not in\n // case 3, and this assumption is correct.\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n // The found page is fully visible, so we're actually either in case 3 or 4,\n // and unfortunately we can't tell the difference between them without\n // scanning the entire previous row, so we just conservatively assume that\n // we do need to backtrack to that row. In both cases, the previous page is\n // in the previous row, so use its top instead.\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n // Now we backtrack to the first page that still has its bottom below\n // `pageTop`, which is the top of a page in the first visible row (unless\n // we're in case 4, in which case it's the row before that).\n // `index` is found by binary search, so the page at `index - 1` is\n // invisible and we can start looking for potentially visible pages from\n // `index - 2`. (However, if this loop terminates on its first iteration,\n // which is the case when pages are stacked vertically, `index` should remain\n // unchanged, so we use a distinct loop variable.)\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n // We have reached the previous row, so stop now.\n // This loop is expected to terminate relatively quickly because the\n // number of pages per row is expected to be small.\n break;\n }\n index = i;\n }\n return index;\n}\n\n/**\n * @typedef {Object} GetVisibleElementsParameters\n * @property {HTMLElement} scrollEl - A container that can possibly scroll.\n * @property {Array} views - Objects with a `div` property that contains an\n * HTMLElement, which should all be descendants of `scrollEl` satisfying the\n * relevant layout assumptions.\n * @property {boolean} sortByVisibility - If `true`, the returned elements are\n * sorted in descending order of the percent of their padding box that is\n * visible. The default value is `false`.\n * @property {boolean} horizontal - If `true`, the elements are assumed to be\n * laid out horizontally instead of vertically. The default value is `false`.\n * @property {boolean} rtl - If `true`, the `scrollEl` container is assumed to\n * be in right-to-left mode. The default value is `false`.\n */\n\n/**\n * Generic helper to find out what elements are visible within a scroll pane.\n *\n * Well, pretty generic. There are some assumptions placed on the elements\n * referenced by `views`:\n * - If `horizontal`, no left of any earlier element is to the right of the\n * left of any later element.\n * - Otherwise, `views` can be split into contiguous rows where, within a row,\n * no top of any element is below the bottom of any other element, and\n * between rows, no bottom of any element in an earlier row is below the\n * top of any element in a later row.\n *\n * (Here, top, left, etc. all refer to the padding edge of the element in\n * question. For pages, that ends up being equivalent to the bounding box of the\n * rendering canvas. Earlier and later refer to index in `views`, not page\n * layout.)\n *\n * @param {GetVisibleElementsParameters}\n * @returns {Object} `{ first, last, views: [{ id, x, y, view, percent }] }`\n */\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false,\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n // Throughout this \"generic\" function, comments will assume we're working with\n // PDF document pages, which is the most important and complex case. In this\n // case, the visible elements we're actually interested is the page canvas,\n // which is contained in a wrapper which adds no padding/border/margin, which\n // is itself contained in `view.div` which adds no padding (but does add a\n // border). So, as specified in this function's doc comment, this function\n // does all of its work on the padding edge of the provided views, starting at\n // offsetLeft/Top (which includes margin) and adding clientLeft/Top (which is\n // the border). Adding clientWidth/Height gets us the bottom-right corner of\n // the padding edge.\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom =\n element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(\n views,\n horizontal\n ? isElementNextAfterViewHorizontally\n : isElementBottomAfterViewTop\n );\n\n // Please note the return value of the `binarySearchFirstItem` function when\n // no valid element is found (hence the `firstVisibleElementInd` check below).\n if (\n firstVisibleElementInd > 0 &&\n firstVisibleElementInd < numViews &&\n !horizontal\n ) {\n // In wrapped scrolling (or vertical scrolling with spreads), with some page\n // sizes, isElementBottomAfterViewTop doesn't satisfy the binary search\n // condition: there can be pages with bottoms above the view top between\n // pages with bottoms below. This function detects and corrects that error;\n // see it for more comments.\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(\n firstVisibleElementInd,\n views,\n top\n );\n }\n\n // lastEdge acts as a cutoff for us to stop looping, because we know all\n // subsequent pages will be hidden.\n //\n // When using wrapped scrolling or vertical scrolling with spreads, we can't\n // simply stop the first time we reach a page below the bottom of the view;\n // the tops of subsequent pages on the same row could still be visible. In\n // horizontal scrolling, we don't have that issue, so we can stop as soon as\n // we pass `right`, without needing the code below that handles the -1 case.\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n // As commented above, this is only needed in non-horizontal cases.\n // Setting lastEdge to the bottom of the first page that is partially\n // visible ensures that the next page fully below lastEdge is on the\n // next row, which has to be fully hidden along with all subsequent rows.\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (\n viewBottom <= top ||\n currentHeight >= bottom ||\n viewRight <= left ||\n currentWidth >= right\n ) {\n continue;\n }\n\n const hiddenHeight =\n Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);\n const hiddenWidth =\n Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);\n\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = (fractionHeight * fractionWidth * 100) | 0;\n\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n view,\n percent,\n widthPercent: (fractionWidth * 100) | 0,\n });\n ids.add(view.id);\n }\n\n const first = visible[0],\n last = visible[visible.length - 1];\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id; // ensure stability\n });\n }\n return { first, last, views: visible, ids };\n}\n\n/**\n * Event handler to suppress context menu.\n */\nfunction noContextMenuHandler(evt) {\n evt.preventDefault();\n}\n\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n // All that is left-up oriented has to change the sign.\n delta = -delta;\n }\n return delta;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n let delta = normalizeWheelEventDirection(evt);\n\n const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n const MOUSE_DOM_DELTA_LINE_MODE = 1;\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n // Converts delta to per-page units\n if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(ScrollMode).includes(mode) &&\n mode !== ScrollMode.UNKNOWN\n );\n}\n\nfunction isValidSpreadMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(SpreadMode).includes(mode) &&\n mode !== SpreadMode.UNKNOWN\n );\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\n/**\n * Promise that is resolved when DOM window becomes visible.\n */\nconst animationStarted = new Promise(function (resolve) {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof window === \"undefined\"\n ) {\n // Prevent \"ReferenceError: window is not defined\" errors when running the\n // unit-tests in Node.js environments.\n setTimeout(resolve, 20);\n return;\n }\n window.requestAnimationFrame(resolve);\n});\n\nfunction clamp(v, min, max) {\n return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n constructor(id, { height, width, units } = {}) {\n this.visible = true;\n\n // Fetch the sub-elements for later.\n this.div = document.querySelector(id + \" .progress\");\n // Get the loading bar element, so it can be resized to fit the viewer.\n this.bar = this.div.parentNode;\n\n // Get options, with sensible defaults.\n this.height = height || 100;\n this.width = width || 100;\n this.units = units || \"%\";\n\n // Initialize heights.\n this.div.style.height = this.height + this.units;\n this.percent = 0;\n }\n\n _updateBar() {\n if (this._indeterminate) {\n this.div.classList.add(\"indeterminate\");\n this.div.style.width = this.width + this.units;\n return;\n }\n\n this.div.classList.remove(\"indeterminate\");\n const progressSize = (this.width * this._percent) / 100;\n this.div.style.width = progressSize + this.units;\n }\n\n get percent() {\n return this._percent;\n }\n\n set percent(val) {\n this._indeterminate = isNaN(val);\n this._percent = clamp(val, 0, 100);\n this._updateBar();\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n const doc = document.documentElement;\n doc.style.setProperty(LOADINGBAR_END_OFFSET_VAR, `${scrollbarWidth}px`);\n }\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n this.visible = false;\n this.bar.classList.add(\"hidden\");\n }\n\n show() {\n if (this.visible) {\n return;\n }\n this.visible = true;\n this.bar.classList.remove(\"hidden\");\n }\n}\n\n/**\n * Get the active or focused element in current DOM.\n *\n * Recursively search for the truly active or focused element in case there are\n * shadow DOMs.\n *\n * @returns {Element} the truly active or focused element.\n */\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n\n return curActiveOrFocused;\n}\n\n/**\n * Converts API PageLayout values to the format used by `BaseViewer`.\n * NOTE: This is supported to the extent that the viewer implements the\n * necessary Scroll/Spread modes (since SinglePage, TwoPageLeft,\n * and TwoPageRight all suggests using non-continuous scrolling).\n * @param {string} mode - The API PageLayout value.\n * @returns {Object}\n */\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n case \"OneColumn\":\n break;\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n return { scrollMode, spreadMode };\n}\n\n/**\n * Converts API PageMode values to the format used by `PDFSidebar`.\n * NOTE: There's also a \"FullScreen\" parameter which is not possible to support,\n * since the Fullscreen API used in browsers requires that entering\n * fullscreen mode only occurs as a result of a user-initiated event.\n * @param {string} mode - The API PageMode value.\n * @returns {number} A value from {SidebarView}.\n */\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n return SidebarView.NONE; // Default value.\n}\n\nexport {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n approximateFraction,\n AutoPrintRegExp,\n backtrackBeforeAllVisibleElements, // only exported for testing\n binarySearchFirstItem,\n DEFAULT_SCALE,\n DEFAULT_SCALE_DELTA,\n DEFAULT_SCALE_VALUE,\n getActiveOrFocusedElement,\n getOutputScale,\n getPageSizeInches,\n getVisibleElements,\n isPortraitOrientation,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n MAX_AUTO_SCALE,\n MAX_SCALE,\n MIN_SCALE,\n noContextMenuHandler,\n normalizeWheelEventDelta,\n normalizeWheelEventDirection,\n parseQueryString,\n PresentationModeState,\n ProgressBar,\n RendererType,\n RenderingStates,\n roundToDivide,\n SCROLLBAR_PADDING,\n scrollIntoView,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n UNKNOWN_SCALE,\n VERTICAL_PADDING,\n watchScroll,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n\nconst PDF_ROLE_TO_HTML_ROLE = {\n // Document level structure types\n Document: null, // There's a \"document\" role, but it doesn't make sense here.\n DocumentFragment: null,\n // Grouping level structure types\n Part: \"group\",\n Sect: \"group\", // XXX: There's a \"section\" role, but it's abstract.\n Div: \"group\",\n Aside: \"note\",\n NonStruct: \"none\",\n // Block level structure types\n P: null,\n // H,\n H: \"heading\",\n Title: null,\n FENote: \"note\",\n // Sub-block level structure type\n Sub: \"group\",\n // General inline level structure types\n Lbl: null,\n Span: null,\n Em: null,\n Strong: null,\n Link: \"link\",\n Annot: \"note\",\n Form: \"form\",\n // Ruby and Warichu structure types\n Ruby: null,\n RB: null,\n RT: null,\n RP: null,\n Warichu: null,\n WT: null,\n WP: null,\n // List standard structure types\n L: \"list\",\n LI: \"listitem\",\n LBody: null,\n // Table standard structure types\n Table: \"table\",\n TR: \"row\",\n TH: \"columnheader\",\n TD: \"cell\",\n THead: \"columnheader\",\n TBody: null,\n TFoot: null,\n // Standard structure type Caption\n Caption: null,\n // Standard structure type Figure\n Figure: \"figure\",\n // Standard structure type Formula\n Formula: null,\n // standard structure type Artifact\n Artifact: null,\n};\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n/**\n * @typedef {Object} StructTreeLayerBuilderOptions\n * @property {PDFPageProxy} pdfPage\n */\n\nclass StructTreeLayerBuilder {\n /**\n * @param {StructTreeLayerBuilderOptions} options\n */\n constructor({ pdfPage }) {\n this.pdfPage = pdfPage;\n }\n\n render(structTree) {\n return this._walk(structTree);\n }\n\n _setAttributes(structElement, htmlElement) {\n if (structElement.alt !== undefined) {\n htmlElement.setAttribute(\"aria-label\", structElement.alt);\n }\n if (structElement.id !== undefined) {\n htmlElement.setAttribute(\"aria-owns\", structElement.id);\n }\n if (structElement.lang !== undefined) {\n htmlElement.setAttribute(\"lang\", structElement.lang);\n }\n }\n\n _walk(node) {\n if (!node) {\n return null;\n }\n\n const element = document.createElement(\"span\");\n if (\"role\" in node) {\n const { role } = node;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n element.setAttribute(\"role\", \"heading\");\n element.setAttribute(\"aria-level\", match[1]);\n } else if (PDF_ROLE_TO_HTML_ROLE[role]) {\n element.setAttribute(\"role\", PDF_ROLE_TO_HTML_ROLE[role]);\n }\n }\n\n this._setAttributes(node, element);\n\n if (node.children) {\n if (node.children.length === 1 && \"id\" in node.children[0]) {\n // Often there is only one content node so just set the values on the\n // parent node to avoid creating an extra span.\n this._setAttributes(node.children[0], element);\n } else {\n for (const kid of node.children) {\n element.appendChild(this._walk(kid));\n }\n }\n }\n return element;\n }\n}\n\nexport { StructTreeLayerBuilder };\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// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./text_highlighter\").TextHighlighter} TextHighlighter */\n\nimport { renderTextLayer } from \"pdfjs-lib\";\n\nconst EXPAND_DIVS_TIMEOUT = 300; // ms\n\n/**\n * @typedef {Object} TextLayerBuilderOptions\n * @property {HTMLDivElement} textLayerDiv - The text layer container.\n * @property {EventBus} eventBus - The application event bus.\n * @property {number} pageIndex - The page index.\n * @property {PageViewport} viewport - The viewport of the text layer.\n * @property {TextHighlighter} highlighter - Optional object that will handle\n * highlighting text from the find controller.\n * @property {boolean} enhanceTextSelection - Option to turn on improved\n * text selection.\n */\n\n/**\n * The text layer builder provides text selection functionality for the PDF.\n * It does this by creating overlay divs over the PDF's text. These divs\n * contain text that matches the PDF text they are overlaying.\n */\nclass TextLayerBuilder {\n constructor({\n textLayerDiv,\n eventBus,\n pageIndex,\n viewport,\n highlighter = null,\n enhanceTextSelection = false,\n }) {\n this.textLayerDiv = textLayerDiv;\n this.eventBus = eventBus;\n this.textContent = null;\n this.textContentItemsStr = [];\n this.textContentStream = null;\n this.renderingDone = false;\n this.pageNumber = pageIndex + 1;\n this.viewport = viewport;\n this.textDivs = [];\n this.textLayerRenderTask = null;\n this.highlighter = highlighter;\n this.enhanceTextSelection = enhanceTextSelection;\n\n this._bindMouse();\n }\n\n /**\n * @private\n */\n _finishRendering() {\n this.renderingDone = true;\n\n if (!this.enhanceTextSelection) {\n const endOfContent = document.createElement(\"div\");\n endOfContent.className = \"endOfContent\";\n this.textLayerDiv.appendChild(endOfContent);\n }\n\n this.eventBus.dispatch(\"textlayerrendered\", {\n source: this,\n pageNumber: this.pageNumber,\n numTextDivs: this.textDivs.length,\n });\n }\n\n /**\n * Renders the text layer.\n *\n * @param {number} [timeout] - Wait for a specified amount of milliseconds\n * before rendering.\n */\n render(timeout = 0) {\n if (!(this.textContent || this.textContentStream) || this.renderingDone) {\n return;\n }\n this.cancel();\n\n this.textDivs.length = 0;\n this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr);\n\n const textLayerFrag = document.createDocumentFragment();\n this.textLayerRenderTask = renderTextLayer({\n textContent: this.textContent,\n textContentStream: this.textContentStream,\n container: textLayerFrag,\n viewport: this.viewport,\n textDivs: this.textDivs,\n textContentItemsStr: this.textContentItemsStr,\n timeout,\n enhanceTextSelection: this.enhanceTextSelection,\n });\n this.textLayerRenderTask.promise.then(\n () => {\n this.textLayerDiv.appendChild(textLayerFrag);\n this._finishRendering();\n this.highlighter?.enable();\n },\n function (reason) {\n // Cancelled or failed to render text layer; skipping errors.\n }\n );\n }\n\n /**\n * Cancel rendering of the text layer.\n */\n cancel() {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.cancel();\n this.textLayerRenderTask = null;\n }\n this.highlighter?.disable();\n }\n\n setTextContentStream(readableStream) {\n this.cancel();\n this.textContentStream = readableStream;\n }\n\n setTextContent(textContent) {\n this.cancel();\n this.textContent = textContent;\n }\n\n /**\n * Improves text selection by adding an additional div where the mouse was\n * clicked. This reduces flickering of the content if the mouse is slowly\n * dragged up or down.\n *\n * @private\n */\n _bindMouse() {\n const div = this.textLayerDiv;\n let expandDivsTimer = null;\n\n div.addEventListener(\"mousedown\", evt => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(true);\n if (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n expandDivsTimer\n ) {\n clearTimeout(expandDivsTimer);\n expandDivsTimer = null;\n }\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n if (!end) {\n return;\n }\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n // On non-Firefox browsers, the selection will feel better if the height\n // of the `endOfContent` div is adjusted to start at mouse click\n // location. This avoids flickering when the selection moves up.\n // However it does not work when selection is started on empty space.\n let adjustTop = evt.target !== div;\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n adjustTop =\n adjustTop &&\n window\n .getComputedStyle(end)\n .getPropertyValue(\"-moz-user-select\") !== \"none\";\n }\n if (adjustTop) {\n const divBounds = div.getBoundingClientRect();\n const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);\n end.style.top = (r * 100).toFixed(2) + \"%\";\n }\n }\n end.classList.add(\"active\");\n });\n\n div.addEventListener(\"mouseup\", () => {\n if (this.enhanceTextSelection && this.textLayerRenderTask) {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n expandDivsTimer = setTimeout(() => {\n if (this.textLayerRenderTask) {\n this.textLayerRenderTask.expandTextDivs(false);\n }\n expandDivsTimer = null;\n }, EXPAND_DIVS_TIMEOUT);\n } else {\n this.textLayerRenderTask.expandTextDivs(false);\n }\n return;\n }\n\n const end = div.querySelector(\".endOfContent\");\n if (!end) {\n return;\n }\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n end.style.top = \"\";\n }\n end.classList.remove(\"active\");\n });\n }\n}\n\nexport { TextLayerBuilder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { XfaLayer } from \"pdfjs-lib\";\n\n/**\n * @typedef {Object} XfaLayerBuilderOptions\n * @property {HTMLDivElement} pageDiv\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {IPDFLinkService} linkService\n * @property {Object} [xfaHtml]\n */\n\nclass XfaLayerBuilder {\n /**\n * @param {XfaLayerBuilderOptions} options\n */\n constructor({\n pageDiv,\n pdfPage,\n annotationStorage = null,\n linkService,\n xfaHtml = null,\n }) {\n this.pageDiv = pageDiv;\n this.pdfPage = pdfPage;\n this.annotationStorage = annotationStorage;\n this.linkService = linkService;\n this.xfaHtml = xfaHtml;\n\n this.div = null;\n this._cancelled = false;\n }\n\n /**\n * @param {PageViewport} viewport\n * @param {string} intent (default value is 'display')\n * @returns {Promise} A promise that is resolved when rendering\n * of the XFA layer is complete. The first rendering will return an object\n * with a `textDivs` property that can be used with the TextHighlighter.\n */\n render(viewport, intent = \"display\") {\n if (intent === \"print\") {\n const parameters = {\n viewport: viewport.clone({ dontFlip: true }),\n div: this.div,\n xfaHtml: this.xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent,\n };\n\n // Create an xfa layer div and render the form\n const div = document.createElement(\"div\");\n this.pageDiv.appendChild(div);\n parameters.div = div;\n\n const result = XfaLayer.render(parameters);\n return Promise.resolve(result);\n }\n\n // intent === \"display\"\n return this.pdfPage\n .getXfa()\n .then(xfaHtml => {\n if (this._cancelled || !xfaHtml) {\n return { textDivs: [] };\n }\n\n const parameters = {\n viewport: viewport.clone({ dontFlip: true }),\n div: this.div,\n xfaHtml,\n annotationStorage: this.annotationStorage,\n linkService: this.linkService,\n intent,\n };\n\n if (this.div) {\n return XfaLayer.update(parameters);\n }\n // Create an xfa layer div and render the form\n this.div = document.createElement(\"div\");\n this.pageDiv.appendChild(this.div);\n parameters.div = this.div;\n return XfaLayer.render(parameters);\n })\n .catch(error => {\n console.error(error);\n });\n }\n\n cancel() {\n this._cancelled = true;\n }\n\n hide() {\n if (!this.div) {\n return;\n }\n this.div.hidden = true;\n }\n}\n\nexport { XfaLayerBuilder };\n","/* Copyright 2014 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 { ScrollMode, SpreadMode } from \"./ui_utils.js\";\nimport { BaseViewer } from \"./base_viewer.js\";\n\nclass PDFViewer extends BaseViewer {}\n\nclass PDFSinglePageViewer extends BaseViewer {\n _resetView() {\n super._resetView();\n this._scrollMode = ScrollMode.PAGE;\n this._spreadMode = SpreadMode.NONE;\n }\n\n // eslint-disable-next-line accessor-pairs\n set scrollMode(mode) {}\n\n _updateScrollMode() {}\n\n // eslint-disable-next-line accessor-pairs\n set spreadMode(mode) {}\n\n _updateSpreadMode() {}\n}\n\nexport { PDFSinglePageViewer, PDFViewer };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFDocumentProxy} PDFDocumentProxy */\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"./interfaces\").IL10n} IL10n */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./interfaces\").IPDFAnnotationLayerFactory} IPDFAnnotationLayerFactory */\n/** @typedef {import(\"./interfaces\").IPDFLinkService} IPDFLinkService */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./interfaces\").IPDFStructTreeLayerFactory} IPDFStructTreeLayerFactory */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./interfaces\").IPDFTextLayerFactory} IPDFTextLayerFactory */\n/** @typedef {import(\"./interfaces\").IPDFXfaLayerFactory} IPDFXfaLayerFactory */\n\nimport {\n AnnotationMode,\n createPromiseCapability,\n PermissionFlag,\n PixelsPerInch,\n version,\n} from \"pdfjs-lib\";\nimport {\n DEFAULT_SCALE,\n DEFAULT_SCALE_DELTA,\n DEFAULT_SCALE_VALUE,\n getVisibleElements,\n isPortraitOrientation,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n MAX_AUTO_SCALE,\n MAX_SCALE,\n MIN_SCALE,\n PresentationModeState,\n RendererType,\n RenderingStates,\n SCROLLBAR_PADDING,\n scrollIntoView,\n ScrollMode,\n SpreadMode,\n TextLayerMode,\n UNKNOWN_SCALE,\n VERTICAL_PADDING,\n watchScroll,\n} from \"./ui_utils.js\";\nimport { AnnotationLayerBuilder } from \"./annotation_layer_builder.js\";\nimport { NullL10n } from \"./l10n_utils.js\";\nimport { PDFPageView } from \"./pdf_page_view.js\";\nimport { PDFRenderingQueue } from \"./pdf_rendering_queue.js\";\nimport { SimpleLinkService } from \"./pdf_link_service.js\";\nimport { StructTreeLayerBuilder } from \"./struct_tree_layer_builder.js\";\nimport { TextHighlighter } from \"./text_highlighter.js\";\nimport { TextLayerBuilder } from \"./text_layer_builder.js\";\nimport { XfaLayerBuilder } from \"./xfa_layer_builder.js\";\n\nconst DEFAULT_CACHE_SIZE = 10;\nconst ENABLE_PERMISSIONS_CLASS = \"enablePermissions\";\n\nconst PagesCountLimit = {\n FORCE_SCROLL_MODE_PAGE: 15000,\n FORCE_LAZY_PAGE_INIT: 7500,\n PAUSE_EAGER_PAGE_INIT: 500,\n};\n\n/**\n * @typedef {Object} PDFViewerOptions\n * @property {HTMLDivElement} container - The container for the viewer element.\n * @property {HTMLDivElement} [viewer] - The viewer element.\n * @property {EventBus} eventBus - The application event bus.\n * @property {IPDFLinkService} linkService - The navigation/linking service.\n * @property {IDownloadManager} [downloadManager] - The download manager\n * component.\n * @property {PDFFindController} [findController] - The find controller\n * component.\n * @property {PDFScriptingManager} [scriptingManager] - The scripting manager\n * component.\n * @property {PDFRenderingQueue} [renderingQueue] - The rendering queue object.\n * @property {boolean} [removePageBorders] - Removes the border shadow around\n * the pages. The default value is `false`.\n * @property {number} [textLayerMode] - Controls if the text layer used for\n * selection and searching is created, and if the improved text selection\n * behaviour is enabled. The constants from {TextLayerMode} should be used.\n * The default value is `TextLayerMode.ENABLE`.\n * @property {number} [annotationMode] - Controls if the annotation layer is\n * created, and if interactive form elements or `AnnotationStorage`-data are\n * being rendered. The constants from {@link AnnotationMode} should be used;\n * see also {@link RenderParameters} and {@link GetOperatorListParameters}.\n * The default value is `AnnotationMode.ENABLE_FORMS`.\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * mainly for annotation icons. Include trailing slash.\n * @property {boolean} [enablePrintAutoRotate] - Enables automatic rotation of\n * landscape pages upon printing. The default is `false`.\n * @property {string} renderer - 'canvas' or 'svg'. The default is 'canvas'.\n * @property {boolean} [useOnlyCssZoom] - Enables CSS only zooming. The default\n * value is `false`.\n * @property {number} [maxCanvasPixels] - The maximum supported canvas size in\n * total pixels, i.e. width * height. Use -1 for no limit. The default value\n * is 4096 * 4096 (16 mega-pixels).\n * @property {IL10n} l10n - Localization service.\n * @property {boolean} [enablePermissions] - Enables PDF document permissions,\n * when they exist. The default value is `false`.\n */\n\nclass PDFPageViewBuffer {\n // Here we rely on the fact that `Set`s preserve the insertion order.\n #buf = new Set();\n\n #size = 0;\n\n constructor(size) {\n this.#size = size;\n }\n\n push(view) {\n const buf = this.#buf;\n if (buf.has(view)) {\n buf.delete(view); // Move the view to the \"end\" of the buffer.\n }\n buf.add(view);\n\n if (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n\n /**\n * After calling resize, the size of the buffer will be `newSize`.\n * The optional parameter `idsToKeep` is, if present, a Set of page-ids to\n * push to the back of the buffer, delaying their destruction. The size of\n * `idsToKeep` has no impact on the final size of the buffer; if `idsToKeep`\n * is larger than `newSize`, some of those pages will be destroyed anyway.\n */\n resize(newSize, idsToKeep = null) {\n this.#size = newSize;\n\n const buf = this.#buf;\n if (idsToKeep) {\n const ii = buf.size;\n let i = 1;\n for (const view of buf) {\n if (idsToKeep.has(view.id)) {\n buf.delete(view); // Move the view to the \"end\" of the buffer.\n buf.add(view);\n }\n if (++i > ii) {\n break;\n }\n }\n }\n\n while (buf.size > this.#size) {\n this.#destroyFirstView();\n }\n }\n\n has(view) {\n return this.#buf.has(view);\n }\n\n [Symbol.iterator]() {\n return this.#buf.keys();\n }\n\n #destroyFirstView() {\n const firstView = this.#buf.keys().next().value;\n\n firstView?.destroy();\n this.#buf.delete(firstView);\n }\n}\n\n/**\n * Simple viewer control to display PDF content/pages.\n *\n * @implements {IPDFAnnotationLayerFactory}\n * @implements {IPDFStructTreeLayerFactory}\n * @implements {IPDFTextLayerFactory}\n * @implements {IPDFXfaLayerFactory}\n */\nclass BaseViewer {\n #buffer = null;\n\n #annotationMode = AnnotationMode.ENABLE_FORMS;\n\n #previousAnnotationMode = null;\n\n #enablePermissions = false;\n\n #previousContainerHeight = 0;\n\n #scrollModePageState = null;\n\n /**\n * @param {PDFViewerOptions} options\n */\n constructor(options) {\n if (this.constructor === BaseViewer) {\n throw new Error(\"Cannot initialize BaseViewer.\");\n }\n const viewerVersion =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : null;\n if (version !== viewerVersion) {\n throw new Error(\n `The API version \"${version}\" does not match the Viewer version \"${viewerVersion}\".`\n );\n }\n this.container = options.container;\n this.viewer = options.viewer || options.container.firstElementChild;\n\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || GENERIC\")\n ) {\n if (\n !(\n this.container?.tagName.toUpperCase() === \"DIV\" &&\n this.viewer?.tagName.toUpperCase() === \"DIV\"\n )\n ) {\n throw new Error(\"Invalid `container` and/or `viewer` option.\");\n }\n\n if (\n this.container.offsetParent &&\n getComputedStyle(this.container).position !== \"absolute\"\n ) {\n throw new Error(\"The `container` must be absolutely positioned.\");\n }\n }\n this.eventBus = options.eventBus;\n this.linkService = options.linkService || new SimpleLinkService();\n this.downloadManager = options.downloadManager || null;\n this.findController = options.findController || null;\n this._scriptingManager = options.scriptingManager || null;\n this.removePageBorders = options.removePageBorders || false;\n this.textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE;\n this.#annotationMode =\n options.annotationMode ?? AnnotationMode.ENABLE_FORMS;\n this.imageResourcesPath = options.imageResourcesPath || \"\";\n this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;\n this.renderer = options.renderer || RendererType.CANVAS;\n this.useOnlyCssZoom = options.useOnlyCssZoom || false;\n this.maxCanvasPixels = options.maxCanvasPixels;\n this.l10n = options.l10n || NullL10n;\n this.#enablePermissions = options.enablePermissions || false;\n\n this.defaultRenderingQueue = !options.renderingQueue;\n if (this.defaultRenderingQueue) {\n // Custom rendering queue is not specified, using default one\n this.renderingQueue = new PDFRenderingQueue();\n this.renderingQueue.setViewer(this);\n } else {\n this.renderingQueue = options.renderingQueue;\n }\n this._doc = document.documentElement;\n\n this.scroll = watchScroll(this.container, this._scrollUpdate.bind(this));\n this.presentationModeState = PresentationModeState.UNKNOWN;\n this._onBeforeDraw = this._onAfterDraw = null;\n this._resetView();\n\n if (this.removePageBorders) {\n this.viewer.classList.add(\"removePageBorders\");\n }\n // Defer the dispatching of this event, to give other viewer components\n // time to initialize *and* register 'baseviewerinit' event listeners.\n Promise.resolve().then(() => {\n this.eventBus.dispatch(\"baseviewerinit\", { source: this });\n });\n }\n\n get pagesCount() {\n return this._pages.length;\n }\n\n getPageView(index) {\n return this._pages[index];\n }\n\n /**\n * @type {boolean} - True if all {PDFPageView} objects are initialized.\n */\n get pageViewsReady() {\n if (!this._pagesCapability.settled) {\n return false;\n }\n // Prevent printing errors when 'disableAutoFetch' is set, by ensuring\n // that *all* pages have in fact been completely loaded.\n return this._pages.every(function (pageView) {\n return pageView?.pdfPage;\n });\n }\n\n /**\n * @type {boolean}\n */\n get renderForms() {\n return this.#annotationMode === AnnotationMode.ENABLE_FORMS;\n }\n\n /**\n * @type {boolean}\n */\n get enableScripting() {\n return !!this._scriptingManager;\n }\n\n /**\n * @type {number}\n */\n get currentPageNumber() {\n return this._currentPageNumber;\n }\n\n /**\n * @param {number} val - The page number.\n */\n set currentPageNumber(val) {\n if (!Number.isInteger(val)) {\n throw new Error(\"Invalid page number.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n // The intent can be to just reset a scroll position and/or scale.\n if (!this._setCurrentPageNumber(val, /* resetCurrentPageView = */ true)) {\n console.error(`currentPageNumber: \"${val}\" is not a valid page.`);\n }\n }\n\n /**\n * @returns {boolean} Whether the pageNumber is valid (within bounds).\n * @private\n */\n _setCurrentPageNumber(val, resetCurrentPageView = false) {\n if (this._currentPageNumber === val) {\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n return true;\n }\n\n if (!(0 < val && val <= this.pagesCount)) {\n return false;\n }\n const previous = this._currentPageNumber;\n this._currentPageNumber = val;\n\n this.eventBus.dispatch(\"pagechanging\", {\n source: this,\n pageNumber: val,\n pageLabel: this._pageLabels?.[val - 1] ?? null,\n previous,\n });\n\n if (resetCurrentPageView) {\n this._resetCurrentPageView();\n }\n return true;\n }\n\n /**\n * @type {string|null} Returns the current page label, or `null` if no page\n * labels exist.\n */\n get currentPageLabel() {\n return this._pageLabels?.[this._currentPageNumber - 1] ?? null;\n }\n\n /**\n * @param {string} val - The page label.\n */\n set currentPageLabel(val) {\n if (!this.pdfDocument) {\n return;\n }\n let page = val | 0; // Fallback page number.\n if (this._pageLabels) {\n const i = this._pageLabels.indexOf(val);\n if (i >= 0) {\n page = i + 1;\n }\n }\n // The intent can be to just reset a scroll position and/or scale.\n if (!this._setCurrentPageNumber(page, /* resetCurrentPageView = */ true)) {\n console.error(`currentPageLabel: \"${val}\" is not a valid page.`);\n }\n }\n\n /**\n * @type {number}\n */\n get currentScale() {\n return this._currentScale !== UNKNOWN_SCALE\n ? this._currentScale\n : DEFAULT_SCALE;\n }\n\n /**\n * @param {number} val - Scale of the pages in percents.\n */\n set currentScale(val) {\n if (isNaN(val)) {\n throw new Error(\"Invalid numeric scale.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n this._setScale(val, false);\n }\n\n /**\n * @type {string}\n */\n get currentScaleValue() {\n return this._currentScaleValue;\n }\n\n /**\n * @param val - The scale of the pages (in percent or predefined value).\n */\n set currentScaleValue(val) {\n if (!this.pdfDocument) {\n return;\n }\n this._setScale(val, false);\n }\n\n /**\n * @type {number}\n */\n get pagesRotation() {\n return this._pagesRotation;\n }\n\n /**\n * @param {number} rotation - The rotation of the pages (0, 90, 180, 270).\n */\n set pagesRotation(rotation) {\n if (!isValidRotation(rotation)) {\n throw new Error(\"Invalid pages rotation angle.\");\n }\n if (!this.pdfDocument) {\n return;\n }\n // Normalize the rotation, by clamping it to the [0, 360) range.\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n if (this._pagesRotation === rotation) {\n return; // The rotation didn't change.\n }\n this._pagesRotation = rotation;\n\n const pageNumber = this._currentPageNumber;\n\n const updateArgs = { rotation };\n for (const pageView of this._pages) {\n pageView.update(updateArgs);\n }\n // Prevent errors in case the rotation changes *before* the scale has been\n // set to a non-default value.\n if (this._currentScaleValue) {\n this._setScale(this._currentScaleValue, true);\n }\n\n this.eventBus.dispatch(\"rotationchanging\", {\n source: this,\n pagesRotation: rotation,\n pageNumber,\n });\n\n if (this.defaultRenderingQueue) {\n this.update();\n }\n }\n\n get firstPagePromise() {\n return this.pdfDocument ? this._firstPageCapability.promise : null;\n }\n\n get onePageRendered() {\n return this.pdfDocument ? this._onePageRenderedCapability.promise : null;\n }\n\n get pagesPromise() {\n return this.pdfDocument ? this._pagesCapability.promise : null;\n }\n\n /**\n * Currently only *some* permissions are supported.\n */\n #initializePermissions(permissions) {\n if (!permissions) {\n return;\n }\n\n if (!permissions.includes(PermissionFlag.COPY)) {\n this.viewer.classList.add(ENABLE_PERMISSIONS_CLASS);\n }\n\n if (\n !permissions.includes(PermissionFlag.MODIFY_ANNOTATIONS) &&\n !permissions.includes(PermissionFlag.FILL_INTERACTIVE_FORMS)\n ) {\n if (this.#annotationMode === AnnotationMode.ENABLE_FORMS) {\n this.#previousAnnotationMode = this.#annotationMode; // Allow resetting.\n this.#annotationMode = AnnotationMode.ENABLE;\n }\n }\n }\n\n #onePageRenderedOrForceFetch() {\n // Unless the viewer *and* its pages are visible, rendering won't start and\n // `this._onePageRenderedCapability` thus won't be resolved.\n // To ensure that automatic printing, on document load, still works even in\n // those cases we force-allow fetching of all pages when:\n // - The viewer is hidden in the DOM, e.g. in a `display: none`