/* Copyright 2016 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * 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 */ const pdfjsVersion = typeof PDFJSDev !== "undefined" ? PDFJSDev.eval("BUNDLE_VERSION") : void 0; /* eslint-disable-next-line no-unused-vars */ 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("MOZCENTRAL")) { require("./firefoxcom.js"); require("./firefox_print_service.js"); } function getViewerConfiguration() { return { appContainer: document.body, mainContainer: document.getElementById("viewerContainer"), viewerContainer: document.getElementById("viewer"), passwordOverlay: { dialog: document.getElementById("passwordDialog"), label: document.getElementById("passwordText"), input: document.getElementById("password"), submitButton: document.getElementById("passwordSubmit"), cancelButton: document.getElementById("passwordCancel"), }, printContainer: document.getElementById("printContainer"), openFileInput: typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC") ? document.getElementById("fileInput") : null, }; } function webViewerLoad() { const config = getViewerConfiguration(); if (typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")) { if (window.chrome) { const link = document.createElement("link"); link.rel = "stylesheet"; link.href = "../build/dev-css/viewer.css"; document.head.append(link); } Promise.all([ import("pdfjs-web/genericcom.js"), import("pdfjs-web/pdf_print_service.js"), ]).then(function ([genericCom, pdfPrintService]) { PDFViewerApplication.run(config); }); } else { PDFViewerApplication.run(config); } } // Block the "load" event until all pages are loaded, to ensure that printing // works in Firefox; see https://bugzilla.mozilla.org/show_bug.cgi?id=1618553 document.blockUnblockOnload?.(true); if ( document.readyState === "interactive" || document.readyState === "complete" ) { webViewerLoad(); } else { document.addEventListener("DOMContentLoaded", webViewerLoad, true); } export { PDFViewerApplication, AppConstants as PDFViewerApplicationConstants, AppOptions as PDFViewerApplicationOptions, };