UNPKG

pdfviewer

Version:

PDF Viewer using Mozila PDF JS.

763 lines (641 loc) 15.6 kB
/* Copyright 2014 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. */ * { padding: 0; margin: 0; } html { height: 100%; } body { height: 100%; background-color: #404040; background-image: url(../images/texture.png); } body, input, button { font: message-box; outline: none; } .hidden { display: none !important; } [hidden] { display: none !important; } /* text_layer_builder */ .textLayer { position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; opacity: 0.2; } .textLayer > div { color: transparent; position: absolute; white-space: pre; cursor: text; -webkit-transform-origin: 0% 0%; -moz-transform-origin: 0% 0%; -o-transform-origin: 0% 0%; -ms-transform-origin: 0% 0%; transform-origin: 0% 0%; } .textLayer .highlight { margin: -1px; padding: 1px; background-color: rgb(180, 0, 170); border-radius: 4px; } .textLayer .highlight.begin { border-radius: 4px 0px 0px 4px; } .textLayer .highlight.end { border-radius: 0px 4px 4px 0px; } .textLayer .highlight.middle { border-radius: 0px; } .textLayer .highlight.selected { background-color: rgb(0, 100, 0); } .textLayer ::selection { background: rgb(0,0,255); } .textLayer ::-moz-selection { background: rgb(0,0,255); } /* end text_layer_builder */ /* pdf_viewer */ .pdfViewer .canvasWrapper { overflow: hidden; } .pdfViewer .page { direction: ltr; width: 816px; height: 1056px; margin: 1px auto -8px auto; position: relative; overflow: visible; border: 9px solid transparent; background-clip: content-box; border-image: url(../images/shadow.png) 9 9 repeat; background-color: white; box-sizing: content-box; } .pdfViewer.removePageBorders .page { margin: 0px auto 10px auto; border: none; } .pdfViewer .page canvas { margin: 0; display: block; } .pdfViewer .page .loadingIcon { position: absolute; display: block; left: 0; top: 0; right: 0; bottom: 0; background: url('../images/loading-icon.gif') center no-repeat; } .pdfViewer .page .annotLink > a:hover { opacity: 0.2; background: #ff0; box-shadow: 0px 2px 10px #ff0; } .pdfViewer .page .annotText > img { position: absolute; cursor: pointer; } .pdfViewer .page .annotTextContentWrapper { position: absolute; width: 20em; } .pdfViewer .page .annotTextContent { z-index: 200; float: left; max-width: 20em; background-color: #FFFF99; box-shadow: 0px 2px 5px #333; border-radius: 2px; padding: 0.6em; cursor: pointer; } .pdfViewer .page .annotTextContent > h1 { font-size: 1em; border-bottom: 1px solid #000000; padding-bottom: 0.2em; } .pdfViewer .page .annotTextContent > p { padding-top: 0.2em; } .pdfViewer .page .annotLink > a { position: absolute; font-size: 1em; top: 0; left: 0; width: 100%; height: 100%; } .pdfViewer .page .annotLink > a /* -ms-a */ { background: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAA\ LAAAAAABAAEAAAIBRAA7") 0 0 repeat; } /* end pdf_viewer */ #viewerContainer:-webkit-full-screen { top: 0px; border-top: 2px solid transparent; background-color: #000; width: 100%; height: 100%; overflow: hidden; cursor: none; -webkit-user-select: none; } #viewerContainer:-moz-full-screen { top: 0px; border-top: 2px solid transparent; background-color: #000; width: 100%; height: 100%; overflow: hidden; cursor: none; -moz-user-select: none; } #viewerContainer:-ms-fullscreen { top: 0px !important; border-top: 2px solid transparent; width: 100%; height: 100%; overflow: hidden !important; cursor: none; -ms-user-select: none; } #viewerContainer:-ms-fullscreen::-ms-backdrop { background-color: #000; } #viewerContainer:fullscreen { top: 0px; border-top: 2px solid transparent; background-color: #000; width: 100%; height: 100%; overflow: hidden; cursor: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } :-webkit-full-screen a:not(.internalLink) { display: none; } :-moz-full-screen a:not(.internalLink) { display: none; } :-ms-fullscreen a:not(.internalLink) { display: none !important; } :fullscreen a:not(.internalLink) { display: none; } :-webkit-full-screen .textLayer > div { cursor: none; } :-moz-full-screen .textLayer > div { cursor: none; } :fullscreen .textLayer > div { cursor: none; } /* outer/inner center provides horizontal center */ #outerContainer { width: 100%; height: 100%; position: relative; } #mainContainer { position: absolute; top: 0; right: 0; bottom: 0; left: 0; min-width: 320px; text-align: center; -webkit-transition-duration: 200ms; -webkit-transition-timing-function: ease; transition-duration: 200ms; transition-timing-function: ease; } #viewerContainer { overflow: auto; -webkit-overflow-scrolling: touch; position: absolute; top: 0; right: 0; bottom: 0; left: 0; outline: none; } html[dir='ltr'] #viewerContainer { box-shadow: inset 1px 0 0 hsla(0,0%,100%,.05); } .toolbar { position: relative; left: 0; right: 0; z-index: 9999; cursor: default; text-align: center; width: 200px; background: rgba(0,0,0,.6); display: inline-block; opacity: 0; -webkit-transition: opacity .2s ease; -moz-transition: opacity .2s ease; -ms-transition: opacity .2s ease; -o-transition: opacity .2s ease; transition: opacity .2s ease; } #toolbarContainer { width: 100%; position: relative; height: 32px; } html[dir='ltr'] #toolbarContainer { box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08), inset 0 1px 1px hsla(0,0%,0%,.15), inset 0 -1px 0 hsla(0,0%,100%,.05), 0 1px 0 hsla(0,0%,0%,.15), 0 1px 1px hsla(0,0%,0%,.1); } #loadingBar { position: relative; width: 100%; height: 4px; background-color: #333; border-bottom: 1px solid #333; } #loadingBar .progress { position: absolute; top: 0; left: 0; width: 0%; height: 100%; background-color: #ddd; overflow: hidden; -webkit-transition: width 200ms; transition: width 200ms; } html[dir='ltr'] .splitToolbarButton { margin: 3px 2px 4px 0; display: inline-block; } .toolbarButton, .overlayButton { border: 0 none; background: none; width: 32px; height: 25px; } .toolbarButton > span { display: inline-block; width: 0; height: 0; overflow: hidden; } .splitToolbarButton > .toolbarButton:hover, .overlayButton:hover { background-color: hsla(0,0%,0%,.2); box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, 0 0 1px hsla(0,0%,100%,.15) inset, 0 0 1px hsla(0,0%,0%,.05); z-index: 199; } .splitToolbarButton > .toolbarButton { position: relative; } html[dir='ltr'] .splitToolbarButton > .toolbarButton:first-child { position: relative; margin: 0; margin-right: -1px; border-top-left-radius: 2px; border-bottom-left-radius: 2px; } html[dir='ltr'] .splitToolbarButton > .toolbarButton:last-child { position: relative; margin: 0; margin-left: -1px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; } .toolbarButton, .overlayButton { min-width: 16px; padding: 2px 6px 0; border: 1px solid transparent; border-radius: 2px; color: hsla(0,0%,100%,.8); font-size: 12px; line-height: 14px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; /* Opera does not support user-select, use <... unselectable="on"> instead */ cursor: default; -webkit-transition-property: background-color, border-color, box-shadow; -webkit-transition-duration: 150ms; -webkit-transition-timing-function: ease; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease; } .toolbarButton:hover, .overlayButton { background-color: hsla(0,0%,0%,.12); background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); background-clip: padding-box; border: 1px solid hsla(0,0%,0%,.35); border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); box-shadow: 0 1px 0 hsla(0,0%,100%,.05) inset, 0 0 1px hsla(0,0%,100%,.15) inset, 0 1px 0 hsla(0,0%,100%,.05); } .toolbarButton:hover:active, .overlayButton:hover:active { background-color: hsla(0,0%,0%,.2); background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); border-color: hsla(0,0%,0%,.35) hsla(0,0%,0%,.4) hsla(0,0%,0%,.45); box-shadow: 0 1px 1px hsla(0,0%,0%,.1) inset, 0 0 1px hsla(0,0%,0%,.2) inset, 0 1px 0 hsla(0,0%,100%,.05); -webkit-transition-property: background-color, border-color, box-shadow; -webkit-transition-duration: 10ms; -webkit-transition-timing-function: linear; transition-property: background-color, border-color, box-shadow; transition-duration: 10ms; transition-timing-function: linear; } html[dir='ltr'] .splitToolbarButton:first-child, html[dir='ltr'] .toolbarButton:first-child { margin-left: 4px; } html[dir='ltr'] .splitToolbarButton:last-child, html[dir='ltr'] .toolbarButton:last-child { margin-right: 4px; } .toolbarButton::before { /* All matching images have a size of 16x16 * All relevant containers have a size of 32x25 */ position: absolute; display: inline-block; top: 4px; left: 7px; } .toolbarButton.zoomOut::before { content: url(../images/toolbarButton-zoomOut.png); } .toolbarButton.zoomIn::before { content: url(../images/toolbarButton-zoomIn.png); } .toolbarButton.print::before { content: url(../images/toolbarButton-print.png); } .toolbarButton.download::before { content: url(../images/toolbarButton-download.png); } .toolbarField { padding: 3px 6px; margin: 4px 0 4px 0; border: 1px solid transparent; border-radius: 2px; background-color: hsla(0,0%,100%,.09); background-image: linear-gradient(hsla(0,0%,100%,.05), hsla(0,0%,100%,0)); background-clip: padding-box; border: 1px solid hsla(0,0%,0%,.35); border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); box-shadow: 0 1px 0 hsla(0,0%,0%,.05) inset, 0 1px 0 hsla(0,0%,100%,.05); color: hsl(0,0%,95%); font-size: 12px; line-height: 14px; outline-style: none; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease; } .toolbarField:hover { background-color: hsla(0,0%,100%,.11); border-color: hsla(0,0%,0%,.4) hsla(0,0%,0%,.43) hsla(0,0%,0%,.45); } .toolbarField:focus { background-color: hsla(0,0%,100%,.15); border-color: hsla(204,100%,65%,.8) hsla(204,100%,65%,.85) hsla(204,100%,65%,.9); } /* TODO: file FF bug to support ::-moz-selection:window-inactive so we can override the opaque grey background when the window is inactive; see https://bugzilla.mozilla.org/show_bug.cgi?id=706209 */ ::selection { background: rgba(0,0,255,0.3); } ::-moz-selection { background: rgba(0,0,255,0.3); } #errorWrapper { background: none repeat scroll 0 0 #FF5555; color: white; left: 0; position: absolute; right: 0; z-index: 1000; padding: 3px; font-size: 0.8em; } .loadingInProgress #errorWrapper { top: 37px; } #errorMessageLeft { float: left; } #errorMessageRight { float: right; } #errorMoreInfo { background-color: #FFFFFF; color: black; padding: 3px; margin: 3px; width: 98%; } .overlayButton { width: auto; margin: 3px 4px 2px 4px !important; padding: 2px 6px 3px 6px; } #overlayContainer { display: table; position: absolute; width: 100%; height: 100%; background-color: hsla(0,0%,0%,.2); z-index: 40000; } #overlayContainer > * { overflow: auto; -webkit-overflow-scrolling: touch; } #overlayContainer > .container { display: table-cell; vertical-align: middle; text-align: center; } #overlayContainer > .container > .dialog { display: inline-block; padding: 15px; border-spacing: 4px; color: hsl(0,0%,85%); font-size: 12px; line-height: 14px; background-color: #474747; /* fallback */ background-image: url(../images/texture.png), linear-gradient(hsla(0,0%,32%,.99), hsla(0,0%,27%,.95)); box-shadow: inset 1px 0 0 hsla(0,0%,100%,.08), inset 0 1px 1px hsla(0,0%,0%,.15), inset 0 -1px 0 hsla(0,0%,100%,.05), 0 1px 0 hsla(0,0%,0%,.15), 0 1px 1px hsla(0,0%,0%,.1); border: 1px solid hsla(0,0%,0%,.5); border-radius: 4px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } .dialog > .row { display: table-row; } .dialog > .row > * { display: table-cell; } .dialog .toolbarField { margin: 5px 0; } .dialog .toolbarField:hover, .dialog .toolbarField:focus { border-color: hsla(0,0%,0%,.32) hsla(0,0%,0%,.38) hsla(0,0%,0%,.42); } .dialog .separator { display: block; margin: 4px 0 4px 0; height: 1px; width: 100%; background-color: hsla(0,0%,0%,.5); box-shadow: 0 0 0 1px hsla(0,0%,100%,.08); } .dialog .buttonRow { text-align: center; vertical-align: middle; } #passwordOverlay > .dialog { text-align: center; } #passwordOverlay .toolbarField { width: 200px; } #documentPropertiesOverlay > .dialog { text-align: left; } #documentPropertiesOverlay .row > * { min-width: 100px; } html[dir='ltr'] #documentPropertiesOverlay .row > * { text-align: left; } #documentPropertiesOverlay .row > span { width: 125px; word-wrap: break-word; } #documentPropertiesOverlay .row > p { max-width: 225px; word-wrap: break-word; } #documentPropertiesOverlay .buttonRow { margin-top: 10px; } .clearBoth { clear: both; } .grab-to-pan-grab *:not(input):not(textarea):not(button):not(select):not(:link) { cursor: inherit !important; } @page { margin: 0; } #printContainer { display: none; } @media screen and (min-resolution: 2dppx) { /* Rules for Retina screens */ .toolbarButton::before { -webkit-transform: scale(0.5); transform: scale(0.5); top: -5px; } html[dir='ltr'] .toolbarButton::before { left: -1px; } .toolbarButton.zoomIn::before { content: url(../images/toolbarButton-zoomIn@2x.png); } .toolbarButton.zoomOut::before { content: url(../images/toolbarButton-zoomOut@2x.png); } .toolbarButton.print::before { content: url(../images/toolbarButton-print@2x.png); } .toolbarButton.download::before { content: url(../images/toolbarButton-download@2x.png); } } @media print { /* General rules for printing. */ body { background: transparent none; } /* Rules for browsers that don't support mozPrintCallback. */ .toolbar, #errorWrapper { display: none; } #viewerContainer { overflow: visible; } #mainContainer, #viewerContainer { position: static; padding: 0; margin: 0; } /* Rules for browsers that support mozPrintCallback */ } @media all and (max-width: 770px) { #outerContainer .hiddenMediumView { display: inherit; } } @media all and (max-width: 660px) { #outerContainer .hiddenMediumView { display: none; } }