2019-03-09 00:36:14 +00:00
import React from 'react' ;
2020-02-08 01:24:23 +00:00
import { gettext } from '../utils/constants' ;
2019-03-09 00:36:14 +00:00
class PDFViewer extends React . Component {
render ( ) {
return (
< React . Fragment >
< div id = "outerContainer" >
< div id = "sidebarContainer" className = "sf-hide" >
< div id = "toolbarSidebar" >
< div className = "splitToolbarButton toggled" >
< button id = "viewThumbnail" className = "toolbarButton toggled" title = "Show Thumbnails" tabIndex = "2" data - l10n - id = "thumbs" >
< span data - l10n - id = "thumbs_label" > Thumbnails < / s p a n >
< / b u t t o n >
< button id = "viewOutline" className = "toolbarButton" title = "Show Document Outline (double-click to expand/collapse all items)" tabIndex = "3" data - l10n - id = "document_outline" >
< span data - l10n - id = "document_outline_label" > Document Outline < / s p a n >
< / b u t t o n >
< button id = "viewAttachments" className = "toolbarButton" title = "Show Attachments" tabIndex = "4" data - l10n - id = "attachments" >
< span data - l10n - id = "attachments_label" > Attachments < / s p a n >
< / b u t t o n >
< / d i v >
< / d i v >
< div id = "sidebarContent" >
< div id = "thumbnailView" >
< / d i v >
< div id = "outlineView" className = "hidden" >
< / d i v >
< div id = "attachmentsView" className = "hidden" >
< / d i v >
< / d i v >
< div id = "sidebarResizer" className = "hidden" > < / d i v >
< / d i v >
< div id = "mainContainer" >
< div className = "findbar hidden doorHanger sf-hide" id = "findbar" >
< div id = "findbarInputContainer" >
< input id = "findInput" className = "toolbarField" title = "Find" placeholder = "Find in document…" tabIndex = "91" data - l10n - id = "find_input" / >
< div className = "splitToolbarButton" >
< button id = "findPrevious" className = "toolbarButton findPrevious" title = "Find the previous occurrence of the phrase" tabIndex = "92" data - l10n - id = "find_previous" >
< span data - l10n - id = "find_previous_label" > Previous < / s p a n >
< / b u t t o n >
< div className = "splitToolbarButtonSeparator" > < / d i v >
< button id = "findNext" className = "toolbarButton findNext" title = "Find the next occurrence of the phrase" tabIndex = "93" data - l10n - id = "find_next" >
< span data - l10n - id = "find_next_label" > Next < / s p a n >
< / b u t t o n >
< / d i v >
< / d i v >
< div id = "findbarOptionsOneContainer" >
< input type = "checkbox" id = "findHighlightAll" className = "toolbarField" tabIndex = "94" / >
< label htmlFor = "findHighlightAll" className = "toolbarLabel" data - l10n - id = "find_highlight" > Highlight all < / l a b e l >
< input type = "checkbox" id = "findMatchCase" className = "toolbarField" tabIndex = "95" / >
< label htmlFor = "findMatchCase" className = "toolbarLabel" data - l10n - id = "find_match_case_label" > Match case < / l a b e l >
< / d i v >
< div id = "findbarOptionsTwoContainer" >
< input type = "checkbox" id = "findEntireWord" className = "toolbarField" tabIndex = "96" / >
< label htmlFor = "findEntireWord" className = "toolbarLabel" data - l10n - id = "find_entire_word_label" > Whole words < / l a b e l >
< span id = "findResultsCount" className = "toolbarLabel hidden" > < / s p a n >
< / d i v >
< div id = "findbarMessageContainer" >
< span id = "findMsg" className = "toolbarLabel" > < / s p a n >
< / d i v >
< / d i v >
< div id = "secondaryToolbar" className = "secondaryToolbar hidden doorHangerRight sf-hide" >
< div id = "secondaryToolbarButtonContainer" >
< button id = "secondaryPresentationMode" className = "secondaryToolbarButton presentationMode visibleLargeView" title = "Switch to Presentation Mode" tabIndex = "51" data - l10n - id = "presentation_mode" >
< span data - l10n - id = "presentation_mode_label" > Presentation Mode < / s p a n >
< / b u t t o n >
< button id = "secondaryOpenFile" className = "secondaryToolbarButton openFile visibleLargeView" title = "Open File" tabIndex = "52" data - l10n - id = "open_file" >
< span data - l10n - id = "open_file_label" > Open < / s p a n >
< / b u t t o n >
< button id = "secondaryPrint" className = "secondaryToolbarButton print visibleMediumView" title = "Print" tabIndex = "53" data - l10n - id = "print" >
< span data - l10n - id = "print_label" > Print < / s p a n >
< / b u t t o n >
< button id = "secondaryDownload" className = "secondaryToolbarButton download visibleMediumView" title = "Download" tabIndex = "54" data - l10n - id = "download" >
< span data - l10n - id = "download_label" > Download < / s p a n >
< / b u t t o n >
< a href = "#" id = "secondaryViewBookmark" className = "secondaryToolbarButton bookmark visibleSmallView" title = "Current view (copy or open in new window)" tabIndex = "55" data - l10n - id = "bookmark" >
< span data - l10n - id = "bookmark_label" > Current View < / s p a n >
< / a >
< div className = "horizontalToolbarSeparator visibleLargeView" > < / d i v >
< button id = "firstPage" className = "secondaryToolbarButton firstPage" title = "Go to First Page" tabIndex = "56" data - l10n - id = "first_page" >
< span data - l10n - id = "first_page_label" > Go to First Page < / s p a n >
< / b u t t o n >
< button id = "lastPage" className = "secondaryToolbarButton lastPage" title = "Go to Last Page" tabIndex = "57" data - l10n - id = "last_page" >
< span data - l10n - id = "last_page_label" > Go to Last Page < / s p a n >
< / b u t t o n >
< div className = "horizontalToolbarSeparator" > < / d i v >
< button id = "pageRotateCw" className = "secondaryToolbarButton rotateCw" title = "Rotate Clockwise" tabIndex = "58" data - l10n - id = "page_rotate_cw" >
< span data - l10n - id = "page_rotate_cw_label" > Rotate Clockwise < / s p a n >
< / b u t t o n >
< button id = "pageRotateCcw" className = "secondaryToolbarButton rotateCcw" title = "Rotate Counterclockwise" tabIndex = "59" data - l10n - id = "page_rotate_ccw" >
< span data - l10n - id = "page_rotate_ccw_label" > Rotate Counterclockwise < / s p a n >
< / b u t t o n >
< div className = "horizontalToolbarSeparator" > < / d i v >
< button id = "cursorSelectTool" className = "secondaryToolbarButton selectTool toggled" title = "Enable Text Selection Tool" tabIndex = "60" data - l10n - id = "cursor_text_select_tool" >
< span data - l10n - id = "cursor_text_select_tool_label" > Text Selection Tool < / s p a n >
< / b u t t o n >
< button id = "cursorHandTool" className = "secondaryToolbarButton handTool" title = "Enable Hand Tool" tabIndex = "61" data - l10n - id = "cursor_hand_tool" >
< span data - l10n - id = "cursor_hand_tool_label" > Hand Tool < / s p a n >
< / b u t t o n >
< div className = "horizontalToolbarSeparator" > < / d i v >
< button id = "scrollVertical" className = "secondaryToolbarButton scrollModeButtons scrollVertical toggled" title = "Use Vertical Scrolling" tabIndex = "62" data - l10n - id = "scroll_vertical" >
< span data - l10n - id = "scroll_vertical_label" > Vertical Scrolling < / s p a n >
< / b u t t o n >
< button id = "scrollHorizontal" className = "secondaryToolbarButton scrollModeButtons scrollHorizontal" title = "Use Horizontal Scrolling" tabIndex = "63" data - l10n - id = "scroll_horizontal" >
< span data - l10n - id = "scroll_horizontal_label" > Horizontal Scrolling < / s p a n >
< / b u t t o n >
< button id = "scrollWrapped" className = "secondaryToolbarButton scrollModeButtons scrollWrapped" title = "Use Wrapped Scrolling" tabIndex = "64" data - l10n - id = "scroll_wrapped" >
< span data - l10n - id = "scroll_wrapped_label" > Wrapped Scrolling < / s p a n >
< / b u t t o n >
< div className = "horizontalToolbarSeparator scrollModeButtons" > < / d i v >
< button id = "spreadNone" className = "secondaryToolbarButton spreadModeButtons spreadNone toggled" title = "Do not join page spreads" tabIndex = "65" data - l10n - id = "spread_none" >
< span data - l10n - id = "spread_none_label" > No Spreads < / s p a n >
< / b u t t o n >
< button id = "spreadOdd" className = "secondaryToolbarButton spreadModeButtons spreadOdd" title = "Join page spreads starting with odd-numbered pages" tabIndex = "66" data - l10n - id = "spread_odd" >
< span data - l10n - id = "spread_odd_label" > Odd Spreads < / s p a n >
< / b u t t o n >
< button id = "spreadEven" className = "secondaryToolbarButton spreadModeButtons spreadEven" title = "Join page spreads starting with even-numbered pages" tabIndex = "67" data - l10n - id = "spread_even" >
< span data - l10n - id = "spread_even_label" > Even Spreads < / s p a n >
< / b u t t o n >
< div className = "horizontalToolbarSeparator spreadModeButtons" > < / d i v >
< button id = "documentProperties" className = "secondaryToolbarButton documentProperties" title = "Document Properties…" tabIndex = "68" data - l10n - id = "document_properties" >
< span data - l10n - id = "document_properties_label" > Document Properties … < / s p a n >
< / b u t t o n >
< / d i v >
< / d i v >
< div className = "toolbar" >
< div id = "toolbarContainer" >
2020-02-08 01:24:23 +00:00
< div id = "toolbarViewer" >
< div id = "toolbarViewerLeft" className = "sf-hide" >
2019-03-09 00:36:14 +00:00
< button id = "sidebarToggle" className = "toolbarButton" title = "Toggle Sidebar" tabIndex = "11" data - l10n - id = "toggle_sidebar" >
< span data - l10n - id = "toggle_sidebar_label" > Toggle Sidebar < / s p a n >
< / b u t t o n >
< div className = "toolbarButtonSpacer" > < / d i v >
< button id = "viewFind" className = "toolbarButton" title = "Find in Document" tabIndex = "12" data - l10n - id = "findbar" >
< span data - l10n - id = "findbar_label" > Find < / s p a n >
< / b u t t o n >
< div className = "splitToolbarButton hiddenSmallView" >
< button className = "toolbarButton pageUp" title = "Previous Page" id = "previous" tabIndex = "13" data - l10n - id = "previous" >
< span data - l10n - id = "previous_label" > Previous < / s p a n >
< / b u t t o n >
< div className = "splitToolbarButtonSeparator" > < / d i v >
< button className = "toolbarButton pageDown" title = "Next Page" id = "next" tabIndex = "14" data - l10n - id = "next" >
< span data - l10n - id = "next_label" > Next < / s p a n >
< / b u t t o n >
< / d i v >
< input type = "number" id = "pageNumber" className = "toolbarField pageNumber" title = "Page" defaultValue = "1" size = "4" min = "1" tabIndex = "15" data - l10n - id = "page" / >
< span id = "numPages" className = "toolbarLabel" > < / s p a n >
< / d i v >
2020-02-08 01:24:23 +00:00
< div id = "toolbarViewerRight" className = "sf-hide" >
2019-03-09 00:36:14 +00:00
< button id = "presentationMode" className = "toolbarButton presentationMode hiddenLargeView" title = "Switch to Presentation Mode" tabIndex = "31" data - l10n - id = "presentation_mode" >
< span data - l10n - id = "presentation_mode_label" > Presentation Mode < / s p a n >
< / b u t t o n >
< button id = "openFile" className = "toolbarButton openFile hiddenLargeView" title = "Open File" tabIndex = "32" data - l10n - id = "open_file" >
< span data - l10n - id = "open_file_label" > Open < / s p a n >
< / b u t t o n >
< button id = "print" className = "toolbarButton print hiddenMediumView" title = "Print" tabIndex = "33" data - l10n - id = "print" >
< span data - l10n - id = "print_label" > Print < / s p a n >
< / b u t t o n >
< button id = "download" className = "toolbarButton download hiddenMediumView" title = "Download" tabIndex = "34" data - l10n - id = "download" >
< span data - l10n - id = "download_label" > Download < / s p a n >
< / b u t t o n >
< a href = "#" id = "viewBookmark" className = "toolbarButton bookmark hiddenSmallView" title = "Current view (copy or open in new window)" tabIndex = "35" data - l10n - id = "bookmark" >
< span data - l10n - id = "bookmark_label" > Current View < / s p a n >
< / a >
< div className = "verticalToolbarSeparator hiddenSmallView" > < / d i v >
< button id = "secondaryToolbarToggle" className = "toolbarButton" title = "Tools" tabIndex = "36" data - l10n - id = "tools" >
< span data - l10n - id = "tools_label" > Tools < / s p a n >
< / b u t t o n >
< / d i v >
2020-02-08 01:24:23 +00:00
< div id = "toolbarViewerMiddle" className = "zoom-toolbar" >
< div className = "splitToolbarButton d-flex flex-column" >
2020-02-10 07:59:19 +00:00
< button id = "restoreToAuto" title = { gettext ( 'Default Size' ) } className = "sf3-font sf3-font-page-size btn btn-icon rounded mb-4" > < / b u t t o n >
< button id = "zoomIn" className = "toolbarButton zoomIn sf3-font sf3-font-enlarge btn btn-icon rounded mb-2" title = { gettext ( 'Zoom In' ) } tabIndex = "22" data - l10n - id = "zoom_in" > < / b u t t o n >
< button id = "zoomOut" className = "toolbarButton zoomOut sf3-font sf3-font-narrow btn btn-icon rounded" title = { gettext ( 'Zoom Out' ) } tabIndex = "21" data - l10n - id = "zoom_out" >
2019-03-09 00:36:14 +00:00
< / b u t t o n >
< div className = "splitToolbarButtonSeparator" > < / d i v >
< / d i v >
2020-02-08 01:24:23 +00:00
< span id = "scaleSelectContainer" className = "dropdownToolbarButton hidden" >
2019-03-09 00:36:14 +00:00
< select id = "scaleSelect" title = "Zoom" tabIndex = "23" data - l10n - id = "zoom" defaultValue = "auto" >
< option id = "pageAutoOption" title = "" value = "auto" data - l10n - id = "page_scale_auto" > Automatic Zoom < / o p t i o n >
< option id = "pageActualOption" title = "" value = "page-actual" data - l10n - id = "page_scale_actual" > Actual Size < / o p t i o n >
< option id = "pageFitOption" title = "" value = "page-fit" data - l10n - id = "page_scale_fit" > Page Fit < / o p t i o n >
< option id = "pageWidthOption" title = "" value = "page-width" data - l10n - id = "page_scale_width" > Page Width < / o p t i o n >
< option id = "customScaleOption" title = "" value = "custom" disabled = "disabled" hidden = { true } > < / o p t i o n >
< option title = "" value = "0.5" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 50 }' > 50 % < / o p t i o n >
< option title = "" value = "0.75" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 75 }' > 75 % < / o p t i o n >
< option title = "" value = "1" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 100 }' > 100 % < / o p t i o n >
< option title = "" value = "1.25" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 125 }' > 125 % < / o p t i o n >
< option title = "" value = "1.5" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 150 }' > 150 % < / o p t i o n >
< option title = "" value = "2" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 200 }' > 200 % < / o p t i o n >
< option title = "" value = "3" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 300 }' > 300 % < / o p t i o n >
< option title = "" value = "4" data - l10n - id = "page_scale_percent" data - l10n - args = '{ "scale": 400 }' > 400 % < / o p t i o n >
< / s e l e c t >
< / s p a n >
< / d i v >
< / d i v >
< div id = "loadingBar" >
< span className = "loading-icon loading-tip" > < / s p a n >
< div className = "progress hide" >
< div className = "glimmer" >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
{ / *
< menu type = "context" id = "viewerContextMenu" >
< menuitem id = "contextFirstPage" label = "First Page"
data - l10n - id = "first_page" > < / m e n u i t e m >
< menuitem id = "contextLastPage" label = "Last Page"
data - l10n - id = "last_page" > < / m e n u i t e m >
< menuitem id = "contextPageRotateCw" label = "Rotate Clockwise"
data - l10n - id = "page_rotate_cw" > < / m e n u i t e m >
< menuitem id = "contextPageRotateCcw" label = "Rotate Counter-Clockwise"
data - l10n - id = "page_rotate_ccw" > < / m e n u i t e m >
< / m e n u >
* / }
< div id = "viewerContainer" tabIndex = "0" >
< div id = "viewer" className = "pdfViewer" > < / d i v >
< / d i v >
< div id = "errorWrapper" className = "hidden" >
< div id = "errorMessageLeft" >
< span id = "errorMessage" > < / s p a n >
< button id = "errorShowMore" data - l10n - id = "error_more_info" >
More Information
< / b u t t o n >
< button id = "errorShowLess" data - l10n - id = "error_less_info" >
Less Information
< / b u t t o n >
< / d i v >
< div id = "errorMessageRight" >
< button id = "errorClose" data - l10n - id = "error_close" >
Close
< / b u t t o n >
< / d i v >
< div className = "clearBoth" > < / d i v >
< textarea id = "errorMoreInfo" readOnly = "readonly" > < / t e x t a r e a >
< / d i v >
< / d i v >
< div id = "overlayContainer" className = "hidden sf-hide" >
< div id = "passwordOverlay" className = "container hidden" >
< div className = "dialog" >
< div className = "row" >
< p id = "passwordText" data - l10n - id = "password_label" > Enter the password to open this PDF file : < / p >
< / d i v >
< div className = "row" >
< input type = "password" id = "password" className = "toolbarField" / >
< / d i v >
< div className = "buttonRow" >
< button id = "passwordCancel" className = "overlayButton" > < span data - l10n - id = "password_cancel" > Cancel < / s p a n > < / b u t t o n >
< button id = "passwordSubmit" className = "overlayButton" > < span data - l10n - id = "password_ok" > OK < / s p a n > < / b u t t o n >
< / d i v >
< / d i v >
< / d i v >
< div id = "documentPropertiesOverlay" className = "container hidden" >
< div className = "dialog" >
< div className = "row" >
< span data - l10n - id = "document_properties_file_name" > File name : < / s p a n > < p i d = " f i l e N a m e F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_file_size" > File size : < / s p a n > < p i d = " f i l e S i z e F i e l d " > - < / p >
< / d i v >
< div className = "separator" > < / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_title" > Title : < / s p a n > < p i d = " t i t l e F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_author" > Author : < / s p a n > < p i d = " a u t h o r F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_subject" > Subject : < / s p a n > < p i d = " s u b j e c t F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_keywords" > Keywords : < / s p a n > < p i d = " k e y w o r d s F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_creation_date" > Creation Date : < / s p a n > < p i d = " c r e a t i o n D a t e F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_modification_date" > Modification Date : < / s p a n > < p i d = " m o d i f i c a t i o n D a t e F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_creator" > Creator : < / s p a n > < p i d = " c r e a t o r F i e l d " > - < / p >
< / d i v >
< div className = "separator" > < / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_producer" > PDF Producer : < / s p a n > < p i d = " p r o d u c e r F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_version" > PDF Version : < / s p a n > < p i d = " v e r s i o n F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_page_count" > Page Count : < / s p a n > < p i d = " p a g e C o u n t F i e l d " > - < / p >
< / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_page_size" > Page Size : < / s p a n > < p i d = " p a g e S i z e F i e l d " > - < / p >
< / d i v >
< div className = "separator" > < / d i v >
< div className = "row" >
< span data - l10n - id = "document_properties_linearized" > Fast Web View : < / s p a n > < p i d = " l i n e a r i z e d F i e l d " > - < / p >
< / d i v >
< div className = "buttonRow" >
< button id = "documentPropertiesClose" className = "overlayButton" > < span data - l10n - id = "document_properties_close" > Close < / s p a n > < / b u t t o n >
< / d i v >
< / d i v >
< / d i v >
< div id = "printServiceOverlay" className = "container hidden" >
< div className = "dialog" >
< div className = "row" >
< span data - l10n - id = "print_progress_message" > Preparing document for printing … < / s p a n >
< / d i v >
< div className = "row" >
< progress value = "0" max = "100" > < / p r o g r e s s >
< span data - l10n - id = "print_progress_percent" data - l10n - args = '{ "progress": 0 }' className = "relative-progress" > 0 % < / s p a n >
< / d i v >
< div className = "buttonRow" >
< button id = "printCancel" className = "overlayButton" > < span data - l10n - id = "print_progress_close" > Cancel < / s p a n > < / b u t t o n >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< / d i v >
< div id = "printContainer" > < / d i v >
< / R e a c t . F r a g m e n t >
) ;
}
}
export default PDFViewer ;