| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 | /* 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("CHROME")) {  (function rewriteUrlClosure() {    // Run this code outside DOMContentLoaded to make sure that the URL    // is rewritten as soon as possible.    const queryString = document.location.search.slice(1);    const m = /(^|&)file=([^&]*)/.exec(queryString);    const defaultUrl = m ? decodeURIComponent(m[2]) : "";    // Example: chrome-extension://.../http://example.com/file.pdf    const humanReadableUrl = "/" + defaultUrl + location.hash;    history.replaceState(history.state, "", humanReadableUrl);    if (top === window) {      // eslint-disable-next-line no-undef      chrome.runtime.sendMessage("showPageAction");    }    AppOptions.set("defaultUrl", defaultUrl);  })();}if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {  require("./firefoxcom.js");  require("./firefox_print_service.js");}if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("GENERIC")) {  require("./genericcom.js");}if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("CHROME")) {  require("./chromecom.js");}if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("CHROME || GENERIC")) {  require("./pdf_print_service.js");}function getViewerConfiguration() {  return {    appContainer: document.body,    mainContainer: document.getElementById("viewerContainer"),    viewerContainer: document.getElementById("viewer"),    toolbar: {      container: document.getElementById("toolbarViewer"),      numPages: document.getElementById("numPages"),      pageNumber: document.getElementById("pageNumber"),      scaleSelect: document.getElementById("scaleSelect"),      customScaleOption: document.getElementById("customScaleOption"),      previous: document.getElementById("previous"),      next: document.getElementById("next"),      zoomIn: document.getElementById("zoomIn"),      zoomOut: document.getElementById("zoomOut"),      viewFind: document.getElementById("viewFind"),      openFile:        typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")          ? document.getElementById("openFile")          : null,      print: document.getElementById("print"),      editorFreeTextButton: document.getElementById("editorFreeText"),      editorFreeTextParamsToolbar: document.getElementById(        "editorFreeTextParamsToolbar"      ),      editorInkButton: document.getElementById("editorInk"),      editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"),      download: document.getElementById("download"),    },    secondaryToolbar: {      toolbar: document.getElementById("secondaryToolbar"),      toggleButton: document.getElementById("secondaryToolbarToggle"),      presentationModeButton: document.getElementById("presentationMode"),      openFileButton:        typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")          ? document.getElementById("secondaryOpenFile")          : null,      printButton: document.getElementById("secondaryPrint"),      downloadButton: document.getElementById("secondaryDownload"),      viewBookmarkButton: document.getElementById("viewBookmark"),      firstPageButton: document.getElementById("firstPage"),      lastPageButton: document.getElementById("lastPage"),      pageRotateCwButton: document.getElementById("pageRotateCw"),      pageRotateCcwButton: document.getElementById("pageRotateCcw"),      cursorSelectToolButton: document.getElementById("cursorSelectTool"),      cursorHandToolButton: document.getElementById("cursorHandTool"),      scrollPageButton: document.getElementById("scrollPage"),      scrollVerticalButton: document.getElementById("scrollVertical"),      scrollHorizontalButton: document.getElementById("scrollHorizontal"),      scrollWrappedButton: document.getElementById("scrollWrapped"),      spreadNoneButton: document.getElementById("spreadNone"),      spreadOddButton: document.getElementById("spreadOdd"),      spreadEvenButton: document.getElementById("spreadEven"),      documentPropertiesButton: document.getElementById("documentProperties"),    },    sidebar: {      // Divs (and sidebar button)      outerContainer: document.getElementById("outerContainer"),      sidebarContainer: document.getElementById("sidebarContainer"),      toggleButton: document.getElementById("sidebarToggle"),      // Buttons      thumbnailButton: document.getElementById("viewThumbnail"),      outlineButton: document.getElementById("viewOutline"),      attachmentsButton: document.getElementById("viewAttachments"),      layersButton: document.getElementById("viewLayers"),      // Views      thumbnailView: document.getElementById("thumbnailView"),      outlineView: document.getElementById("outlineView"),      attachmentsView: document.getElementById("attachmentsView"),      layersView: document.getElementById("layersView"),      // View-specific options      outlineOptionsContainer: document.getElementById(        "outlineOptionsContainer"      ),      currentOutlineItemButton: document.getElementById("currentOutlineItem"),    },    sidebarResizer: {      outerContainer: document.getElementById("outerContainer"),      resizer: document.getElementById("sidebarResizer"),    },    findBar: {      bar: document.getElementById("findbar"),      toggleButton: document.getElementById("viewFind"),      findField: document.getElementById("findInput"),      highlightAllCheckbox: document.getElementById("findHighlightAll"),      caseSensitiveCheckbox: document.getElementById("findMatchCase"),      matchDiacriticsCheckbox: document.getElementById("findMatchDiacritics"),      entireWordCheckbox: document.getElementById("findEntireWord"),      findMsg: document.getElementById("findMsg"),      findResultsCount: document.getElementById("findResultsCount"),      findPreviousButton: document.getElementById("findPrevious"),      findNextButton: document.getElementById("findNext"),    },    passwordOverlay: {      dialog: document.getElementById("passwordDialog"),      label: document.getElementById("passwordText"),      input: document.getElementById("password"),      submitButton: document.getElementById("passwordSubmit"),      cancelButton: document.getElementById("passwordCancel"),    },    documentProperties: {      dialog: document.getElementById("documentPropertiesDialog"),      closeButton: document.getElementById("documentPropertiesClose"),      fields: {        fileName: document.getElementById("fileNameField"),        fileSize: document.getElementById("fileSizeField"),        title: document.getElementById("titleField"),        author: document.getElementById("authorField"),        subject: document.getElementById("subjectField"),        keywords: document.getElementById("keywordsField"),        creationDate: document.getElementById("creationDateField"),        modificationDate: document.getElementById("modificationDateField"),        creator: document.getElementById("creatorField"),        producer: document.getElementById("producerField"),        version: document.getElementById("versionField"),        pageCount: document.getElementById("pageCountField"),        pageSize: document.getElementById("pageSizeField"),        linearized: document.getElementById("linearizedField"),      },    },    annotationEditorParams: {      editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"),      editorFreeTextColor: document.getElementById("editorFreeTextColor"),      editorInkColor: document.getElementById("editorInkColor"),      editorInkThickness: document.getElementById("editorInkThickness"),      editorInkOpacity: document.getElementById("editorInkOpacity"),    },    printContainer: document.getElementById("printContainer"),    openFileInput:      typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")        ? document.getElementById("fileInput")        : null,    debuggerScriptPath: "./debugger.js",  };}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 {    if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("GENERIC")) {      // Give custom implementations of the default viewer a simpler way to      // set various `AppOptions`, by dispatching an event once all viewer      // files are loaded but *before* the viewer initialization has run.      const event = document.createEvent("CustomEvent");      event.initCustomEvent("webviewerloaded", true, true, {        source: window,      });      try {        // Attempt to dispatch the event at the embedding `document`,        // in order to support cases where the viewer is embedded in        // a *dynamically* created <iframe> element.        parent.document.dispatchEvent(event);      } catch (ex) {        // The viewer could be in e.g. a cross-origin <iframe> element,        // fallback to dispatching the event at the current `document`.        console.error(`webviewerloaded: ${ex}`);        document.dispatchEvent(event);      }    }    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=1618553document.blockUnblockOnload?.(true);if (  document.readyState === "interactive" ||  document.readyState === "complete") {  webViewerLoad();} else {  document.addEventListener("DOMContentLoaded", webViewerLoad, true);}export {  PDFViewerApplication,  AppConstants as PDFViewerApplicationConstants,  AppOptions as PDFViewerApplicationOptions,};
 |