Update pdf.js and viewer to 2.9.359

This commit is contained in:
Joachim Bauch 2021-11-22 14:17:01 +01:00
parent 9b55bdf0ea
commit c1969140e5
No known key found for this signature in database
GPG key ID: 77C1D22D53E15F02
5 changed files with 144 additions and 279 deletions

View file

@ -46,98 +46,58 @@
}
.noneMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-notool.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-notool.svg");
mask-image: url("../img/icon-notool.svg");
}
.selectMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-select.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-select.svg");
mask-image: url("../img/icon-select.svg");
}
.pointerMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-pointer.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-pointer.svg");
mask-image: url("../img/icon-pointer.svg");
}
.freehandMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-freehand.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-freehand.svg");
mask-image: url("../img/icon-freehand.svg");
}
.rectangleMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-rectangle.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-rectangle.svg");
mask-image: url("../img/icon-rectangle.svg");
}
.ellipseMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-ellipse.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-ellipse.svg");
mask-image: url("../img/icon-ellipse.svg");
}
.lineMode::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-line.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-line.svg");
mask-image: url("../img/icon-line.svg");
}
/*
// Provided by viewer.css
.toolbarButton.download::before {
content: "";
display: block;
width: 16px;
height: 16px;
background-size: 16px 16px;
background-image: url("../img/icon-download.svg");
background-repeat: no-repeat;
-webkit-mask-image: url("../img/icon-download.svg");
mask-image: url("../img/icon-download.svg");
}
*/
.secondaryToolbar.drawMenuToolbar {
right: 105px !important;
padding: 0;
right: 94px !important;
line-height: 0 !important;
}
.secondaryToolbar.drawMenuToolbar .toolbarButton::before {
position: relative !important;
top: 1px !important;
left: 1px !important;
}
.secondaryToolbar.drawMenuToolbar .toolbarButton {
margin: 0 !important;
margin: 2px 1px;
position: relative;
float: left;
}
#colorPicker {
@ -171,40 +131,6 @@
margin-top: -2px;
}
@media screen and (-webkit-min-device-pixel-ratio: 2), screen and (min-resolution: 2dppx) {
#noneMode::before,
#selectMode::before,
#pointerMode::before,
#freehandMode::before,
#rectangleMode::before,
#ellipseMode::before,
#lineMode::before,
#drawModeToolbar::before,
#secondaryToolbarClose::before,
.toolbarButton.download::before {
background-size: 32px 32px !important;
height: 32px !important;
width: 32px !important;
}
.secondaryToolbar.drawMenuToolbar .toolbarButton::before {
top: -7px !important;
left: -7px !important;
}
#drawModeToolbarButtonContainer {
max-height: 26px;
}
}
@media screen and (min-resolution: 2dppx) {
.toolbarButton.close::before {
background-size: 32px 32px !important;
height: 32px !important;
width: 32px !important;
}
}
.userlist {
display: none;
position: absolute;

188
package-lock.json generated
View file

@ -11,8 +11,8 @@
"@jaames/iro": "5.5.2",
"jquery": "3.5.0",
"paper": "0.12.15",
"pdfjs-dist": "2.0.943",
"pdfjs-dist-viewer-min": "2.0.943",
"pdfjs-dist": "2.9.359",
"pdfjs-dist-viewer-min": "2.9.359",
"socket.io-client": "4.4.0",
"url": "0.11.0"
},
@ -982,35 +982,6 @@
"url": "https://github.com/avajs/find-cache-dir?sponsor=1"
}
},
"node_modules/copy-webpack-plugin/node_modules/json5": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.5"
},
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/copy-webpack-plugin/node_modules/loader-utils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
"dev": true,
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
},
"engines": {
"node": ">=8.9.0"
}
},
"node_modules/copy-webpack-plugin/node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@ -2368,14 +2339,17 @@
"dev": true
},
"node_modules/json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"dependencies": {
"minimist": "^1.2.0"
"minimist": "^1.2.5"
},
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/kind-of": {
@ -2421,16 +2395,16 @@
}
},
"node_modules/loader-utils": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
"dependencies": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
"json5": "^2.1.2"
},
"engines": {
"node": ">=4.0.0"
"node": ">=8.9.0"
}
},
"node_modules/locate-path": {
@ -2701,11 +2675,6 @@
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"node_modules/node-ensure": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz",
"integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc="
},
"node_modules/node-releases": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
@ -2969,21 +2938,17 @@
}
},
"node_modules/pdfjs-dist": {
"version": "2.0.943",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.0.943.tgz",
"integrity": "sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==",
"dependencies": {
"node-ensure": "^0.0.0",
"worker-loader": "^2.0.0"
},
"version": "2.9.359",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.9.359.tgz",
"integrity": "sha512-P2nYtkacdlZaNNwrBLw1ZyMm0oE2yY/5S/GDCAmMJ7U4+ciL/D0mrlEC/o4HZZc/LNE3w8lEVzBEyVgEQlPVKQ==",
"peerDependencies": {
"webpack": "^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0"
"worker-loader": "^3.0.7"
}
},
"node_modules/pdfjs-dist-viewer-min": {
"version": "2.0.943",
"resolved": "https://registry.npmjs.org/pdfjs-dist-viewer-min/-/pdfjs-dist-viewer-min-2.0.943.tgz",
"integrity": "sha512-b0jGTSAfwxgocdUMzIe3g/PC+XIhpY+cZr3jBZ+T9OChComEb8Z0OoZbdH/CwlGgNtjBmo+RyH8bCvNMrfJ/uA=="
"version": "2.9.359",
"resolved": "https://registry.npmjs.org/pdfjs-dist-viewer-min/-/pdfjs-dist-viewer-min-2.9.359.tgz",
"integrity": "sha512-pmpYMn85oXDeLNAZljCMrNRcdLFZqPUH1qEh1iQeAAT+QF1QpM44IgzTp/Yoc01xCL7TWW7zz0X9gBiMePdCTQ=="
},
"node_modules/picocolors": {
"version": "1.0.0",
@ -4281,30 +4246,23 @@
}
},
"node_modules/worker-loader": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz",
"integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==",
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-3.0.8.tgz",
"integrity": "sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==",
"peer": true,
"dependencies": {
"loader-utils": "^1.0.0",
"schema-utils": "^0.4.0"
"loader-utils": "^2.0.0",
"schema-utils": "^3.0.0"
},
"engines": {
"node": ">= 6.9.0 || >= 8.9.0"
"node": ">= 10.13.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
"webpack": "^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0"
}
},
"node_modules/worker-loader/node_modules/schema-utils": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
"integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
"dependencies": {
"ajv": "^6.1.0",
"ajv-keywords": "^3.1.0"
},
"engines": {
"node": ">= 4"
"webpack": "^4.0.0 || ^5.0.0"
}
},
"node_modules/wrappy": {
@ -5158,26 +5116,6 @@
"pkg-dir": "^4.1.0"
}
},
"json5": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"dev": true,
"requires": {
"minimist": "^1.2.5"
}
},
"loader-utils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@ -6214,11 +6152,11 @@
"dev": true
},
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"requires": {
"minimist": "^1.2.0"
"minimist": "^1.2.5"
}
},
"kind-of": {
@ -6255,13 +6193,13 @@
"integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw=="
},
"loader-utils": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz",
"integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
"json5": "^2.1.2"
}
},
"locate-path": {
@ -6471,11 +6409,6 @@
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"node-ensure": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz",
"integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc="
},
"node-releases": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
@ -6672,18 +6605,15 @@
"dev": true
},
"pdfjs-dist": {
"version": "2.0.943",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.0.943.tgz",
"integrity": "sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==",
"requires": {
"node-ensure": "^0.0.0",
"worker-loader": "^2.0.0"
}
"version": "2.9.359",
"resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.9.359.tgz",
"integrity": "sha512-P2nYtkacdlZaNNwrBLw1ZyMm0oE2yY/5S/GDCAmMJ7U4+ciL/D0mrlEC/o4HZZc/LNE3w8lEVzBEyVgEQlPVKQ==",
"requires": {}
},
"pdfjs-dist-viewer-min": {
"version": "2.0.943",
"resolved": "https://registry.npmjs.org/pdfjs-dist-viewer-min/-/pdfjs-dist-viewer-min-2.0.943.tgz",
"integrity": "sha512-b0jGTSAfwxgocdUMzIe3g/PC+XIhpY+cZr3jBZ+T9OChComEb8Z0OoZbdH/CwlGgNtjBmo+RyH8bCvNMrfJ/uA=="
"version": "2.9.359",
"resolved": "https://registry.npmjs.org/pdfjs-dist-viewer-min/-/pdfjs-dist-viewer-min-2.9.359.tgz",
"integrity": "sha512-pmpYMn85oXDeLNAZljCMrNRcdLFZqPUH1qEh1iQeAAT+QF1QpM44IgzTp/Yoc01xCL7TWW7zz0X9gBiMePdCTQ=="
},
"picocolors": {
"version": "1.0.0",
@ -7636,23 +7566,13 @@
"dev": true
},
"worker-loader": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz",
"integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==",
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-3.0.8.tgz",
"integrity": "sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==",
"peer": true,
"requires": {
"loader-utils": "^1.0.0",
"schema-utils": "^0.4.0"
},
"dependencies": {
"schema-utils": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz",
"integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
"requires": {
"ajv": "^6.1.0",
"ajv-keywords": "^3.1.0"
}
}
"loader-utils": "^2.0.0",
"schema-utils": "^3.0.0"
}
},
"wrappy": {

View file

@ -14,8 +14,8 @@
"@jaames/iro": "5.5.2",
"jquery": "3.5.0",
"paper": "0.12.15",
"pdfjs-dist": "2.0.943",
"pdfjs-dist-viewer-min": "2.0.943",
"pdfjs-dist": "2.9.359",
"pdfjs-dist-viewer-min": "2.9.359",
"socket.io-client": "4.4.0",
"url": "0.11.0"
},

View file

@ -1325,46 +1325,49 @@ $(document).ready(function() {
var annotator = new Annotator(socketurl, fileid, userid, displayname, token);
$(document).on('pagesloaded', function(event) {
annotator.documentLoaded(PDFViewerApplication.pdfViewer.pdfDocument);
if (!can_update) {
$('#viewer .page[data-page-number!=1]').addClass('hiddenPage');
}
});
PDFViewerApplication.initializedPromise.then(function() {
var eventBus = PDFViewerApplication.eventBus;
eventBus.on('pagesloaded', function(event) {
annotator.documentLoaded(PDFViewerApplication.pdfViewer.pdfDocument);
if (!can_update) {
$('#viewer .page[data-page-number!=1]').addClass('hiddenPage');
}
});
$(document).on('pagerendered', function(event) {
var pagenum = event.detail.pageNumber;
if (!pagenum) {
console.log("Rendered event without page number", event);
return;
}
eventBus.on('pagerendered', function(event) {
var pagenum = event.pageNumber;
if (!pagenum) {
console.log("Rendered event without page number", event);
return;
}
var container = $(event.target);
PDFViewerApplication.pdfViewer.pdfDocument.getPage(pagenum).then(function(page) {
annotator.getPage(pagenum, page, container).then(function(page_annotator) {
page_annotator.update(PDFViewerApplication.pdfViewer.currentScale);
var container = $("#viewer .page[data-page-number='" + pagenum + "']");
if (!container.length) {
console.log("Could not get page container", event);
return;
}
PDFViewerApplication.pdfViewer.pdfDocument.getPage(pagenum).then(function(page) {
annotator.getPage(pagenum, page, container).then(function(page_annotator) {
page_annotator.update(PDFViewerApplication.pdfViewer.currentScale);
});
});
});
});
$(document).on('pagechange', function(event) {
var originalEvent = event.originalEvent;
if (!originalEvent || typeof(originalEvent.pageNumber) === 'undefined') {
return;
}
var pagenum = originalEvent.pageNumber;
if (can_update) {
annotator.switchPage(pagenum);
} else {
$('#viewer .page').addClass('hiddenPage');
var page = $('#viewer .page[data-page-number=' + pagenum +']');
page.removeClass('hiddenPage');
// Need to redraw currently visible page to fix any layout issues.
setTimeout(function() {
PDFViewerApplication.pdfViewer.update();
}, 0);
}
eventBus.on('pagechanging', function(event) {
var pagenum = event.pageNumber;
if (can_update) {
annotator.switchPage(pagenum);
} else {
$('#viewer .page').addClass('hiddenPage');
var page = $('#viewer .page[data-page-number=' + pagenum +']');
page.removeClass('hiddenPage');
// Need to redraw currently visible page to fix any layout issues.
setTimeout(function() {
PDFViewerApplication.pdfViewer.update();
}, 0);
}
});
});
$(".modeButton").click(function(event) {

View file

@ -66,16 +66,30 @@ See https://github.com/adobe-type-tools/cmap-resources
<div id="sidebarContainer">
<div id="toolbarSidebar">
<div class="splitToolbarButton toggled">
<button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs">
<span data-l10n-id="thumbs_label">Thumbnails</span>
</button>
<button id="viewOutline" class="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</span>
</button>
<button id="viewAttachments" class="toolbarButton" title="Show Attachments" tabindex="4" data-l10n-id="attachments">
<span data-l10n-id="attachments_label">Attachments</span>
</button>
<div id="toolbarSidebarLeft">
<div class="splitToolbarButton toggled">
<button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs">
<span data-l10n-id="thumbs_label">Thumbnails</span>
</button>
<button id="viewOutline" class="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</span>
</button>
<button id="viewAttachments" class="toolbarButton" title="Show Attachments" tabindex="4" data-l10n-id="attachments">
<span data-l10n-id="attachments_label">Attachments</span>
</button>
<button id="viewLayers" class="toolbarButton" title="Show Layers (double-click to reset all layers to the default state)" tabindex="5" data-l10n-id="layers">
<span data-l10n-id="layers_label">Layers</span>
</button>
</div>
</div>
<div id="toolbarSidebarRight">
<div id="outlineOptionsContainer" class="hidden">
<div class="verticalToolbarSeparator"></div>
<button id="currentOutlineItem" class="toolbarButton" disabled="disabled" title="Find Current Outline Item" tabindex="6" data-l10n-id="current_outline_item">
<span data-l10n-id="current_outline_item_label">Current Outline Item</span>
</button>
</div>
</div>
</div>
<div id="sidebarContent">
@ -85,6 +99,8 @@ See https://github.com/adobe-type-tools/cmap-resources
</div>
<div id="attachmentsView" class="hidden">
</div>
<div id="layersView" class="hidden">
</div>
</div>
<div id="sidebarResizer" class="hidden"></div>
</div> <!-- sidebarContainer -->