From b8bb1d67d4a8af8a98cd13c82045428b8326dee2 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Thu, 11 Aug 2022 15:47:30 +0200 Subject: [PATCH] [GENERIC viewer] Export some viewer constants in the default viewer (issue 15294) This exports the same constants as the viewer components, but in the default viewer. To avoid bloating the global-scope the constants are added to a new `PDFViewerApplicationConstants` object[1], which also allows us to skip this in builds where it's not actually needed (e.g. the Firefox *built-in* PDF Viewer). *Please note:* I'm not completely sold on this idea, and thus wouldn't mind the patch being rejected, since we probably don't want to export every single viewer constant this way. (And it may seem a bit arbitrary, to users, why some constants are exported and others are not.) --- [1] Somewhat similar to the existing `PDFViewerApplicationOptions` structure. --- web/viewer.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/web/viewer.js b/web/viewer.js index a79b6fa39..c08208544 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -13,7 +13,9 @@ * limitations under the License. */ +import { RenderingStates, ScrollMode, SpreadMode } from "./ui_utils.js"; import { AppOptions } from "./app_options.js"; +import { LinkTarget } from "./pdf_link_service.js"; import { PDFViewerApplication } from "./app.js"; /* eslint-disable-next-line no-unused-vars */ @@ -23,7 +25,13 @@ const pdfjsVersion = const pdfjsBuild = typeof PDFJSDev !== "undefined" ? PDFJSDev.eval("BUNDLE_BUILD") : void 0; +const AppConstants = + typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC") + ? { LinkTarget, RenderingStates, ScrollMode, SpreadMode } + : null; + window.PDFViewerApplication = PDFViewerApplication; +window.PDFViewerApplicationConstants = AppConstants; window.PDFViewerApplicationOptions = AppOptions; if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("CHROME")) { @@ -270,4 +278,8 @@ if ( document.addEventListener("DOMContentLoaded", webViewerLoad, true); } -export { PDFViewerApplication, AppOptions as PDFViewerApplicationOptions }; +export { + PDFViewerApplication, + AppConstants as PDFViewerApplicationConstants, + AppOptions as PDFViewerApplicationOptions, +};