UNPKG

npm-viewerjs

Version:

Document viewer component for PDF and ODF documents. Done with just HTML5, CSS3, and JavaScript. Powered by pdf.js and WebODF.

1,004 lines (879 loc) 41.3 kB
/** * Copyright (C) 2013-2014 KO GmbH <copyright@kogmbh.com> * * @licstart * This file is part of ViewerJS. * * ViewerJS is free software: you can redistribute it and/or modify it * under the terms of the GNU Affero General Public License (GNU AGPL) * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * ViewerJS is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with ViewerJS. If not, see <http://www.gnu.org/licenses/>. * @licend * * @source: http://viewerjs.org/ * @source: http://github.com/kogmbh/ViewerJS */ @namespace cursor url(urn:webodf:names:cursor); .caret { opacity: 0 !important; } .page { margin: 7px auto 7px auto; position: relative; overflow: hidden; background-clip: content-box; background-color: white; box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -webkit-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -ms-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -o-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); } .textLayer { position: absolute; left: 0; top: 0; right: 0; bottom: 0; color: #000; font-family: sans-serif; overflow: hidden; } .textLayer > div { color: transparent; position: absolute; line-height: 1; white-space: pre; cursor: text; } ::selection { background: rgba(0, 0, 255, 0.3); } ::-moz-selection { background: rgba(0, 0, 255, 0.3); } #image { transform-origin: top left; /* IE 10+, Firefox, etc. */ -webkit-transform-origin: top left; /* Chrome */ -ms-transform-origin: top left; /* IE 9 */ } #image.rotate90 { transform: rotate(90deg) translateY(-100%); -webkit-transform: rotate(90deg) translateY(-100%); -ms-transform: rotate(90deg) translateY(-100%); } #image.rotate180 { transform: rotate(180deg) translate(-100%,-100%); -webkit-transform: rotate(180deg) translate(-100%,-100%); -ms-transform: rotate(180deg) translateX(-100%,-100%); } #image.rotate270 { transform: rotate(270deg) translateX(-100%); -webkit-transform: rotate(270deg) translateX(-100%); -ms-transform: rotate(270deg) translateX(-100%); } .flipHorizontal { -moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH"; } .unknown-file { color: white; font-size: 1em; background-color: rgb(69, 69, 69); margin: auto; padding: 10px; width: 300px; height: 100px; } .unknown-file .download-button { -moz-box-shadow: inset 0px 1px 0px 0px #54a3f7; -webkit-box-shadow: inset 0px 1px 0px 0px #54a3f7; box-shadow: inset 0px 1px 0px 0px #54a3f7; background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)); background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%); background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%); background: -o-linear-gradient(top, #007dc1 5%, #0061a7 100%); background: -ms-linear-gradient(top, #007dc1 5%, #0061a7 100%); background: linear-gradient(to bottom, #007dc1 5%, #0061a7 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7', GradientType=0); background-color: #007dc1; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; border: 1px solid #124d77; display: inline-block; cursor: pointer; color: #ffffff; font-family: Arial; font-size: 13px; padding: 6px 24px; text-decoration: none; text-shadow: 0px 1px 0px #154682; } .unknown-file .download-button:hover { background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)); background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%); background: -webkit-linear-gradient(top, #0061a7 5%, #007dc1 100%); background: -o-linear-gradient(top, #0061a7 5%, #007dc1 100%); background: -ms-linear-gradient(top, #0061a7 5%, #007dc1 100%); background: linear-gradient(to bottom, #0061a7 5%, #007dc1 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1', GradientType=0); background-color: #0061a7; } .unknown-file .download-button:active { position: relative; top: 1px; } .unknown-file .download-button:before { display: inline-block; content: url(images/toolbarButton-download.png); }/** * Copyright (C) 2012-2015 KO GmbH <copyright@kogmbh.com> * * @licstart * This file is part of ViewerJS. * * ViewerJS is free software: you can redistribute it and/or modify it * under the terms of the GNU Affero General Public License (GNU AGPL) * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * ViewerJS is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with ViewerJS. If not, see <http://www.gnu.org/licenses/>. * @licend * * @source: http://viewerjs.org/ * @source: http://github.com/kogmbh/ViewerJS */ /* * This file is a derivative from a part of Mozilla's PDF.js project. The * original license header follows. */ /* Copyright 2012 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 > body { font-family: sans-serif; overflow: hidden; } .titlebar > span, .toolbarLabel, input, button, select { font: message-box; } #titlebar { position: absolute; z-index: 2; top: 0px; left: 0px; height: 32px; width: 100%; overflow: hidden; -webkit-box-shadow: 0px 1px 3px rgba(50, 50, 50, 0.75); -moz-box-shadow: 0px 1px 3px rgba(50, 50, 50, 0.75); box-shadow: 0px 1px 3px rgba(50, 50, 50, 0.75); background-image: url(images/texture.png), linear-gradient(rgba(69, 69, 69, .95), rgba(82, 82, 82, .99)); background-image: url(images/texture.png), -webkit-linear-gradient(rgba(69, 69, 69, .95), rgba(82, 82, 82, .99)); background-image: url(images/texture.png), -moz-linear-gradient(rgba(69, 69, 69, .95), rgba(82, 82, 82, .99)); background-image: url(images/texture.png), -ms-linear-gradient(rgba(69, 69, 69, .95), rgba(82, 82, 82, .99)); background-image: url(images/texture.png), -o-linear-gradient(rgba(69, 69, 69, .95), rgba(82, 82, 82, .99)); } #titlebar a, #aboutDialog a, #titlebar a:visited, #aboutDialog a:visited { color: #ccc; } #documentName { margin-right: 10px; margin-left: 10px; margin-top: 8px; color: #f2f2f2; line-height: 14px; font-family: sans-serif; font-size: 14px; white-space: nowrap; margin-right: 100px; /* To be adjusted if more icons to show */ overflow: hidden; text-overflow: ellipsis; } #toolbarContainer { position: absolute; z-index: 2; bottom: 0px; left: 0px; height: 32px; width: 100%; overflow: hidden; -webkit-box-shadow: 0px -1px 3px rgba(50, 50, 50, 0.75); -moz-box-shadow: 0px -1px 3px rgba(50, 50, 50, 0.75); box-shadow: 0px -1px 3px rgba(50, 50, 50, 0.75); background-image: url(images/texture.png), linear-gradient(rgba(82, 82, 82, .99), rgba(69, 69, 69, .95)); background-image: url(images/texture.png), -webkit-linear-gradient(rgba(82, 82, 82, .99), rgba(69, 69, 69, .95)); background-image: url(images/texture.png), -moz-linear-gradient(rgba(82, 82, 82, .99), rgba(69, 69, 69, .95)); background-image: url(images/texture.png), -ms-linear-gradient(rgba(82, 82, 82, .99), rgba(69, 69, 69, .95)); background-image: url(images/texture.png), -o-linear-gradient(rgba(82, 82, 82, .99), rgba(69, 69, 69, .95)); } #toolbar { position: relative; } #toolbarMiddleContainer, #toolbarLeft { visibility: hidden; } #toolbarMiddleContainer { z-index: -1; } html[dir='ltr'] #toolbarLeft { margin-left: -1px; } html[dir='rtl'] #toolbarRight, html[dir='rtl'] #titlebarRight { margin-left: -1px; } html[dir='ltr'] #toolbarLeft, html[dir='rtl'] #toolbarRight, html[dir='rtl'] #titlebarRight { position: absolute; top: 0; left: 0; } html[dir='rtl'] #toolbarLeft, html[dir='ltr'] #toolbarRight, html[dir='ltr'] #titlebarRight { position: absolute; top: 0; right: 0; } html[dir='ltr'] #toolbarLeft > *, html[dir='ltr'] #toolbarMiddle > *, html[dir='ltr'] #toolbarRight > *, html[dir='ltr'] #titlebarRight > * { float: left; } html[dir='rtl'] #toolbarLeft > *, html[dir='rtl'] #toolbarMiddle > *, html[dir='rtl'] #toolbarRight > *, html[dir='rtl'] #titlebarRight > * { float: right; } /* outer/inner center provides horizontal center */ html[dir='ltr'] .outerCenter { float: right; position: relative; right: 50%; } html[dir='rtl'] .outerCenter { float: left; position: relative; left: 50%; } html[dir='ltr'] .innerCenter { float: right; position: relative; right: -50%; } html[dir='rtl'] .innerCenter { float: left; position: relative; left: -50%; } html[dir='ltr'] .splitToolbarButton { margin: 3px 2px 4px 0; display: inline-block; } html[dir='rtl'] .splitToolbarButton { margin: 3px 0 4px 2px; display: inline-block; } html[dir='ltr'] .splitToolbarButton > .toolbarButton { border-radius: 0; float: left; } html[dir='rtl'] .splitToolbarButton > .toolbarButton { border-radius: 0; float: right; } .splitToolbarButton.toggled .toolbarButton { margin: 0; } .toolbarButton { border: 0 none; background-color: rgba(0, 0, 0, 0); min-width: 32px; height: 25px; border-radius: 2px; background-image: none; } html[dir='ltr'] .toolbarButton, html[dir='ltr'] .dropdownToolbarButton { margin: 3px 2px 4px 0; } html[dir='rtl'] .toolbarButton, html[dir='rtl'] .dropdownToolbarButton { margin: 3px 0 4px 2px; } .toolbarButton:hover, .toolbarButton:focus, .dropdownToolbarButton { background-color: hsla(0, 0%, 0%, .12); background-image: linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -webkit-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -moz-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -ms-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -o-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, .dropdownToolbarButton:hover:active { background-color: hsla(0, 0%, 0%, .2); background-image: linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -webkit-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -moz-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -ms-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -o-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); } .splitToolbarButton:hover > .toolbarButton, .splitToolbarButton:focus > .toolbarButton, .splitToolbarButton.toggled > .toolbarButton, .toolbarButton.textButton { background-color: hsla(0, 0%, 0%, .12); background-image: -webkit-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -moz-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -ms-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -o-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); 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); -webkit-transition-property: background-color, border-color, box-shadow; -webkit-transition-duration: 150ms; -webkit-transition-timing-function: ease; -moz-transition-property: background-color, border-color, box-shadow; -moz-transition-duration: 150ms; -moz-transition-timing-function: ease; -ms-transition-property: background-color, border-color, box-shadow; -ms-transition-duration: 150ms; -ms-transition-timing-function: ease; -o-transition-property: background-color, border-color, box-shadow; -o-transition-duration: 150ms; -o-transition-timing-function: ease; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease; } .splitToolbarButton > .toolbarButton:hover, .splitToolbarButton > .toolbarButton:focus, .dropdownToolbarButton:hover, .toolbarButton.textButton:hover, .toolbarButton.textButton:focus { 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:hover > .toolbarButton, .splitToolbarButton:focus > .toolbarButton, .splitToolbarButton.toggled > .toolbarButton, .toolbarButton.textButton { background-color: hsla(0, 0%, 0%, .12); background-image: -webkit-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -moz-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -ms-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); background-image: -o-linear-gradient(hsla(0, 0%, 100%, .05), hsla(0, 0%, 100%, 0)); 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); -webkit-transition-property: background-color, border-color, box-shadow; -webkit-transition-duration: 150ms; -webkit-transition-timing-function: ease; -moz-transition-property: background-color, border-color, box-shadow; -moz-transition-duration: 150ms; -moz-transition-timing-function: ease; -ms-transition-property: background-color, border-color, box-shadow; -ms-transition-duration: 150ms; -ms-transition-timing-function: ease; -o-transition-property: background-color, border-color, box-shadow; -o-transition-duration: 150ms; -o-transition-timing-function: ease; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease; } .splitToolbarButton > .toolbarButton:hover, .splitToolbarButton > .toolbarButton:focus, .dropdownToolbarButton:hover, .toolbarButton.textButton:hover, .toolbarButton.textButton:focus { 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; } .dropdownToolbarButton { border: 1px solid #333 !important; } .toolbarButton, .dropdownToolbarButton { min-width: 16px; padding: 2px 6px 2px; border: 1px solid transparent; border-radius: 2px; color: hsl(0, 0%, 95%); 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; -moz-transition-property: background-color, border-color, box-shadow; -moz-transition-duration: 150ms; -moz-transition-timing-function: ease; -ms-transition-property: background-color, border-color, box-shadow; -ms-transition-duration: 150ms; -ms-transition-timing-function: ease; -o-transition-property: background-color, border-color, box-shadow; -o-transition-duration: 150ms; -o-transition-timing-function: ease; transition-property: background-color, border-color, box-shadow; transition-duration: 150ms; transition-timing-function: ease; } html[dir='ltr'] .toolbarButton, html[dir='ltr'] .dropdownToolbarButton { margin: 3px 2px 4px 0; } html[dir='rtl'] .toolbarButton, html[dir='rtl'] .dropdownToolbarButton { margin: 3px 0 4px 2px; } .splitToolbarButton:hover > .splitToolbarButtonSeparator, .splitToolbarButton.toggled > .splitToolbarButtonSeparator { padding: 12px 0; margin: 0; box-shadow: 0 0 0 1px hsla(0, 0%, 100%, .03); -webkit-transition-property: padding; -webkit-transition-duration: 10ms; -webkit-transition-timing-function: ease; -moz-transition-property: padding; -moz-transition-duration: 10ms; -moz-transition-timing-function: ease; -ms-transition-property: padding; -ms-transition-duration: 10ms; -ms-transition-timing-function: ease; -o-transition-property: padding; -o-transition-duration: 10ms; -o-transition-timing-function: ease; transition-property: padding; transition-duration: 10ms; transition-timing-function: ease; } .toolbarButton.toggled:hover:active, .splitToolbarButton > .toolbarButton:hover:active { background-color: hsla(0, 0%, 0%, .4); border-color: hsla(0, 0%, 0%, .4) hsla(0, 0%, 0%, .5) hsla(0, 0%, 0%, .55); box-shadow: 0 1px 1px hsla(0, 0%, 0%, .2) inset, 0 0 1px hsla(0, 0%, 0%, .3) inset, 0 1px 0 hsla(0, 0%, 100%, .05); } html[dir='ltr'] .splitToolbarButton > .toolbarButton:first-child, html[dir='rtl'] .splitToolbarButton > .toolbarButton:last-child { position: relative; margin: 0; margin-left: 4px; margin-right: -1px; border-top-left-radius: 2px; border-bottom-left-radius: 2px; border-right-color: transparent; } html[dir='ltr'] .splitToolbarButton > .toolbarButton:last-child, html[dir='rtl'] .splitToolbarButton > .toolbarButton:first-child { position: relative; margin: 0; margin-left: -1px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-left-color: transparent; } .splitToolbarButtonSeparator { padding: 8px 0; width: 1px; background-color: hsla(0, 0%, 00%, .5); z-index: 99; box-shadow: 0 0 0 1px hsla(0, 0%, 100%, .08); display: inline-block; margin: 5px 0; } html[dir='ltr'] .splitToolbarButtonSeparator { float: left; } html[dir='rtl'] .splitToolbarButtonSeparator { float: right; } .dropdownToolbarButton { min-width: 120px; max-width: 120px; padding: 4px 2px 4px; overflow: hidden; background: url(images/toolbarButton-menuArrows.png) no-repeat; } .dropdownToolbarButton > select { -webkit-appearance: none; -moz-appearance: none; /* in the future this might matter, see bugzilla bug #649849 */ min-width: 140px; font-size: 12px; color: hsl(0, 0%, 95%); margin: 0; padding: 0; border: none; background: rgba(0, 0, 0, 0); /* Opera does not support 'transparent' <select> background */ } .dropdownToolbarButton > select > option { background: hsl(0, 0%, 24%); } #pageWidthOption { border-bottom: 1px rgba(255, 255, 255, .5) solid; } html[dir='ltr'] .dropdownToolbarButton { background-position: 95%; } html[dir='rtl'] .dropdownToolbarButton { background-position: 5%; } .toolbarButton.fullscreen::before { display: inline-block; content: url(images/toolbarButton-fullscreen.png); } .toolbarButton.presentation::before { display: inline-block; content: url(images/toolbarButton-presentation.png); } .toolbarButton.download::before { display: inline-block; content: url(images/toolbarButton-download.png); } .toolbarButton.print::before { display: inline-block; content: url(images/toolbarButton-print.png); } .toolbarButton.about { color: #f2f2f2; font-size: 14px; font-weight: bold; line-height: 14px; font-family: sans-serif; } .toolbarButton.about::before { display: inline-block; } .toolbarButton.zoomOut::before { display: inline-block; content: url(images/toolbarButton-zoomOut.png); } .toolbarButton.zoomIn::before { display: inline-block; content: url(images/toolbarButton-zoomIn.png); } .toolbarButton.pageUp::before { display: inline-block; content: url(images/toolbarButton-pageUp.png); } .toolbarButton.pageDown::before { display: inline-block; content: url(images/toolbarButton-pageDown.png); } .toolbarField.pageNumber { min-width: 16px; text-align: right; width: 40px; } .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: -moz-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; -moz-transition-property: background-color, border-color, box-shadow; -moz-transition-duration: 150ms; -moz-transition-timing-function: ease; } .toolbarField.pageNumber::-webkit-inner-spin-button, .toolbarField.pageNumber::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } .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); } .toolbarLabel { min-width: 16px; padding: 3px 6px 3px 2px; margin: 4px 2px 4px 0; border: 1px solid transparent; border-radius: 2px; color: hsl(0, 0%, 85%); font-size: 12px; line-height: 14px; text-align: left; -webkit-user-select: none; -moz-user-select: none; cursor: default; } #canvasContainer { overflow: auto; padding-top: 6px; padding-bottom: 6px; position: absolute; top: 32px; right: 0; bottom: 32px; left: 0; text-align: center; background-color: #888; background-image: url(images/texture.png); } #canvasContainer.slideshow { padding: 0; overflow: hidden; } #canvasContainer.slideshow > * { margin: auto; position: absolute; top: 0; left: 0; right: 0; bottom: 0; } .presentationMode { top: 0 !important; bottom: 0 !important; background-color: black !important; cursor: default !important; } #canvas { box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -webkit-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -ms-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); -o-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75); /* * Hide the canvas overflow because otherwise the CSS-scaled 'sizer' child * of the canvas will still advertise the original size in Firefox, causing * strange scrollbar behavior. */ overflow: hidden; } #sliderContainer { visibility: hidden; } #overlayNavigator { position: absolute; width: 100%; height: 0; top: calc(50% - 50px); background-color: rgba(0, 0, 0, 0); z-index: 3; opacity: 0; -webkit-transition: opacity 1s ease-out; -moz-transition: opacity 1s ease-out; transition: opacity 1s ease-out; } #previousPage { float: left; margin-left: 10px; /* CSS triangle */ border-top: 50px solid transparent; border-bottom: 50px solid transparent; border-right: 50px solid black; opacity: 0.5; } #nextPage { float: right; margin-right: 10px; /* CSS triangle */ border-top: 50px solid transparent; border-bottom: 50px solid transparent; border-left: 50px solid black; opacity: 0.5; } #previousPage:active { opacity: 0.8; } #nextPage:active { opacity: 0.8; } #overlayCloseButton { position: absolute; top: 10px; right: 10px; z-index: 3; font-size: 35px; color: white; background-color: black; opacity: 0.5; width: 40px; height: 40px; -webkit-border-radius: 20px; -moz-border-radius: 20px; border-radius: 20px; text-align: center; cursor: pointer; display: none; } #overlayCloseButton:active { background-color: red; } #aboutDialogCentererTable { display: table; width: 100%; height: 100%; } #aboutDialogCentererCell { vertical-align: middle; text-align: center; display: table-cell; } #aboutDialog { width: 280px; background-color: #666; color: white; text-align: center; border-radius: 2px; box-shadow: 0px 1px 6px black; padding: 5px; font-style: sans-serif; display: inline-block; } #aboutDialog h1 { font-size: 25pt; } #aboutDialog p { font-size: 10pt; } #aboutDialog > * { margin: 10px; } #dialogOverlay { position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 3; background-color: rgba(0, 0, 0, .5); overflow: auto; display: none; } #blanked { display: none; cursor: none; position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 3; } .video-js { width: 100% !important; height: 100% !important; } @media print { .no-print, .no-print * { display: none !important; } } #loading-document:after { /* with no content, nothing is rendered */ content: ""; position: fixed; /* element stretched to cover during rotation an aspect ratio up to 1/10 */ top: -500%; left: -500%; right: -500%; bottom: -500%; z-index: 9999; pointer-events: all; /* to allow content use: none */ /* background */ background-color: rgba(0, 0, 0, 0.5); background-image: url(data:image/png;base64,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); background-repeat: no-repeat; background-position: center center; background-size: 50px 50px; animation: linearRotate 1s infinite linear, fadeInOpacity 0.5s 1 ease-in; } @keyframes linearRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }