pdfjs-dist 2.0.489 → 2.2.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11350 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +587 -242
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +36 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
package/lib/web/pdf_sidebar.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2019 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,32 +19,46 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.PDFSidebar = exports.SidebarView =
|
27
|
+
exports.PDFSidebar = exports.SidebarView = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _ui_utils = require("./ui_utils");
|
30
30
|
|
31
|
-
var
|
32
|
-
|
33
|
-
var _pdf_rendering_queue = require('./pdf_rendering_queue');
|
31
|
+
var _pdf_rendering_queue = require("./pdf_rendering_queue");
|
34
32
|
|
35
33
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
36
34
|
|
35
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
36
|
+
|
37
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
38
|
+
|
37
39
|
var UI_NOTIFICATION_CLASS = 'pdfSidebarNotification';
|
38
40
|
var SidebarView = {
|
41
|
+
UNKNOWN: -1,
|
39
42
|
NONE: 0,
|
40
43
|
THUMBS: 1,
|
41
44
|
OUTLINE: 2,
|
42
|
-
ATTACHMENTS: 3
|
45
|
+
ATTACHMENTS: 3,
|
46
|
+
LAYERS: 4
|
43
47
|
};
|
48
|
+
exports.SidebarView = SidebarView;
|
44
49
|
|
45
|
-
var PDFSidebar =
|
46
|
-
|
47
|
-
|
50
|
+
var PDFSidebar =
|
51
|
+
/*#__PURE__*/
|
52
|
+
function () {
|
53
|
+
function PDFSidebar(_ref) {
|
54
|
+
var elements = _ref.elements,
|
55
|
+
pdfViewer = _ref.pdfViewer,
|
56
|
+
pdfThumbnailViewer = _ref.pdfThumbnailViewer,
|
57
|
+
eventBus = _ref.eventBus,
|
58
|
+
_ref$l10n = _ref.l10n,
|
59
|
+
l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n,
|
60
|
+
_ref$disableNotificat = _ref.disableNotification,
|
61
|
+
disableNotification = _ref$disableNotificat === void 0 ? false : _ref$disableNotificat;
|
48
62
|
|
49
63
|
_classCallCheck(this, PDFSidebar);
|
50
64
|
|
@@ -52,147 +66,171 @@ var PDFSidebar = function () {
|
|
52
66
|
this.active = SidebarView.THUMBS;
|
53
67
|
this.isInitialViewSet = false;
|
54
68
|
this.onToggled = null;
|
55
|
-
this.pdfViewer =
|
56
|
-
this.pdfThumbnailViewer =
|
57
|
-
this.
|
58
|
-
this.
|
59
|
-
this.
|
60
|
-
this.
|
61
|
-
this.
|
62
|
-
this.
|
63
|
-
this.
|
64
|
-
this.
|
65
|
-
this.
|
66
|
-
this.
|
67
|
-
this.attachmentsView = options.attachmentsView;
|
68
|
-
this.disableNotification = options.disableNotification || false;
|
69
|
+
this.pdfViewer = pdfViewer;
|
70
|
+
this.pdfThumbnailViewer = pdfThumbnailViewer;
|
71
|
+
this.outerContainer = elements.outerContainer;
|
72
|
+
this.viewerContainer = elements.viewerContainer;
|
73
|
+
this.toggleButton = elements.toggleButton;
|
74
|
+
this.thumbnailButton = elements.thumbnailButton;
|
75
|
+
this.outlineButton = elements.outlineButton;
|
76
|
+
this.attachmentsButton = elements.attachmentsButton;
|
77
|
+
this.thumbnailView = elements.thumbnailView;
|
78
|
+
this.outlineView = elements.outlineView;
|
79
|
+
this.attachmentsView = elements.attachmentsView;
|
80
|
+
this.eventBus = eventBus;
|
69
81
|
this.l10n = l10n;
|
82
|
+
this._disableNotification = disableNotification;
|
83
|
+
|
70
84
|
this._addEventListeners();
|
71
85
|
}
|
72
86
|
|
73
87
|
_createClass(PDFSidebar, [{
|
74
|
-
key:
|
88
|
+
key: "reset",
|
75
89
|
value: function reset() {
|
76
90
|
this.isInitialViewSet = false;
|
91
|
+
|
77
92
|
this._hideUINotification(null);
|
93
|
+
|
78
94
|
this.switchView(SidebarView.THUMBS);
|
79
95
|
this.outlineButton.disabled = false;
|
80
96
|
this.attachmentsButton.disabled = false;
|
81
97
|
}
|
82
98
|
}, {
|
83
|
-
key:
|
99
|
+
key: "setInitialView",
|
84
100
|
value: function setInitialView() {
|
85
101
|
var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SidebarView.NONE;
|
86
102
|
|
87
103
|
if (this.isInitialViewSet) {
|
88
104
|
return;
|
89
105
|
}
|
106
|
+
|
90
107
|
this.isInitialViewSet = true;
|
91
|
-
|
108
|
+
|
109
|
+
if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) {
|
92
110
|
this._dispatchEvent();
|
111
|
+
|
93
112
|
return;
|
94
113
|
}
|
95
|
-
|
96
|
-
this.
|
97
|
-
if (isViewPreserved) {
|
114
|
+
|
115
|
+
if (!this._switchView(view, true)) {
|
98
116
|
this._dispatchEvent();
|
99
117
|
}
|
100
118
|
}
|
101
119
|
}, {
|
102
|
-
key:
|
120
|
+
key: "switchView",
|
103
121
|
value: function switchView(view) {
|
104
122
|
var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
105
123
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
124
|
+
this._switchView(view, forceOpen);
|
125
|
+
}
|
126
|
+
}, {
|
127
|
+
key: "_switchView",
|
128
|
+
value: function _switchView(view) {
|
129
|
+
var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
110
130
|
var isViewChanged = view !== this.active;
|
111
131
|
var shouldForceRendering = false;
|
132
|
+
|
112
133
|
switch (view) {
|
134
|
+
case SidebarView.NONE:
|
135
|
+
if (this.isOpen) {
|
136
|
+
this.close();
|
137
|
+
return true;
|
138
|
+
}
|
139
|
+
|
140
|
+
return false;
|
141
|
+
|
113
142
|
case SidebarView.THUMBS:
|
114
|
-
this.thumbnailButton.classList.add('toggled');
|
115
|
-
this.outlineButton.classList.remove('toggled');
|
116
|
-
this.attachmentsButton.classList.remove('toggled');
|
117
|
-
this.thumbnailView.classList.remove('hidden');
|
118
|
-
this.outlineView.classList.add('hidden');
|
119
|
-
this.attachmentsView.classList.add('hidden');
|
120
143
|
if (this.isOpen && isViewChanged) {
|
121
|
-
this._updateThumbnailViewer();
|
122
144
|
shouldForceRendering = true;
|
123
145
|
}
|
146
|
+
|
124
147
|
break;
|
148
|
+
|
125
149
|
case SidebarView.OUTLINE:
|
126
150
|
if (this.outlineButton.disabled) {
|
127
|
-
return;
|
151
|
+
return false;
|
128
152
|
}
|
129
|
-
|
130
|
-
this.outlineButton.classList.add('toggled');
|
131
|
-
this.attachmentsButton.classList.remove('toggled');
|
132
|
-
this.thumbnailView.classList.add('hidden');
|
133
|
-
this.outlineView.classList.remove('hidden');
|
134
|
-
this.attachmentsView.classList.add('hidden');
|
153
|
+
|
135
154
|
break;
|
155
|
+
|
136
156
|
case SidebarView.ATTACHMENTS:
|
137
157
|
if (this.attachmentsButton.disabled) {
|
138
|
-
return;
|
158
|
+
return false;
|
139
159
|
}
|
140
|
-
|
141
|
-
this.outlineButton.classList.remove('toggled');
|
142
|
-
this.attachmentsButton.classList.add('toggled');
|
143
|
-
this.thumbnailView.classList.add('hidden');
|
144
|
-
this.outlineView.classList.add('hidden');
|
145
|
-
this.attachmentsView.classList.remove('hidden');
|
160
|
+
|
146
161
|
break;
|
162
|
+
|
147
163
|
default:
|
148
|
-
console.error(
|
149
|
-
return;
|
164
|
+
console.error("PDFSidebar._switchView: \"".concat(view, "\" is not a valid view."));
|
165
|
+
return false;
|
150
166
|
}
|
151
|
-
|
167
|
+
|
168
|
+
this.active = view;
|
169
|
+
this.thumbnailButton.classList.toggle('toggled', view === SidebarView.THUMBS);
|
170
|
+
this.outlineButton.classList.toggle('toggled', view === SidebarView.OUTLINE);
|
171
|
+
this.attachmentsButton.classList.toggle('toggled', view === SidebarView.ATTACHMENTS);
|
172
|
+
this.thumbnailView.classList.toggle('hidden', view !== SidebarView.THUMBS);
|
173
|
+
this.outlineView.classList.toggle('hidden', view !== SidebarView.OUTLINE);
|
174
|
+
this.attachmentsView.classList.toggle('hidden', view !== SidebarView.ATTACHMENTS);
|
175
|
+
|
152
176
|
if (forceOpen && !this.isOpen) {
|
153
177
|
this.open();
|
154
|
-
return;
|
178
|
+
return true;
|
155
179
|
}
|
180
|
+
|
156
181
|
if (shouldForceRendering) {
|
182
|
+
this._updateThumbnailViewer();
|
183
|
+
|
157
184
|
this._forceRendering();
|
158
185
|
}
|
186
|
+
|
159
187
|
if (isViewChanged) {
|
160
188
|
this._dispatchEvent();
|
161
189
|
}
|
190
|
+
|
162
191
|
this._hideUINotification(this.active);
|
192
|
+
|
193
|
+
return isViewChanged;
|
163
194
|
}
|
164
195
|
}, {
|
165
|
-
key:
|
196
|
+
key: "open",
|
166
197
|
value: function open() {
|
167
198
|
if (this.isOpen) {
|
168
199
|
return;
|
169
200
|
}
|
201
|
+
|
170
202
|
this.isOpen = true;
|
171
203
|
this.toggleButton.classList.add('toggled');
|
172
|
-
this.outerContainer.classList.add('sidebarMoving');
|
173
|
-
|
204
|
+
this.outerContainer.classList.add('sidebarMoving', 'sidebarOpen');
|
205
|
+
|
174
206
|
if (this.active === SidebarView.THUMBS) {
|
175
207
|
this._updateThumbnailViewer();
|
176
208
|
}
|
209
|
+
|
177
210
|
this._forceRendering();
|
211
|
+
|
178
212
|
this._dispatchEvent();
|
213
|
+
|
179
214
|
this._hideUINotification(this.active);
|
180
215
|
}
|
181
216
|
}, {
|
182
|
-
key:
|
217
|
+
key: "close",
|
183
218
|
value: function close() {
|
184
219
|
if (!this.isOpen) {
|
185
220
|
return;
|
186
221
|
}
|
222
|
+
|
187
223
|
this.isOpen = false;
|
188
224
|
this.toggleButton.classList.remove('toggled');
|
189
225
|
this.outerContainer.classList.add('sidebarMoving');
|
190
226
|
this.outerContainer.classList.remove('sidebarOpen');
|
227
|
+
|
191
228
|
this._forceRendering();
|
229
|
+
|
192
230
|
this._dispatchEvent();
|
193
231
|
}
|
194
232
|
}, {
|
195
|
-
key:
|
233
|
+
key: "toggle",
|
196
234
|
value: function toggle() {
|
197
235
|
if (this.isOpen) {
|
198
236
|
this.close();
|
@@ -201,7 +239,7 @@ var PDFSidebar = function () {
|
|
201
239
|
}
|
202
240
|
}
|
203
241
|
}, {
|
204
|
-
key:
|
242
|
+
key: "_dispatchEvent",
|
205
243
|
value: function _dispatchEvent() {
|
206
244
|
this.eventBus.dispatch('sidebarviewchanged', {
|
207
245
|
source: this,
|
@@ -209,7 +247,7 @@ var PDFSidebar = function () {
|
|
209
247
|
});
|
210
248
|
}
|
211
249
|
}, {
|
212
|
-
key:
|
250
|
+
key: "_forceRendering",
|
213
251
|
value: function _forceRendering() {
|
214
252
|
if (this.onToggled) {
|
215
253
|
this.onToggled();
|
@@ -219,81 +257,96 @@ var PDFSidebar = function () {
|
|
219
257
|
}
|
220
258
|
}
|
221
259
|
}, {
|
222
|
-
key:
|
260
|
+
key: "_updateThumbnailViewer",
|
223
261
|
value: function _updateThumbnailViewer() {
|
224
262
|
var pdfViewer = this.pdfViewer,
|
225
263
|
pdfThumbnailViewer = this.pdfThumbnailViewer;
|
226
|
-
|
227
264
|
var pagesCount = pdfViewer.pagesCount;
|
265
|
+
|
228
266
|
for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) {
|
229
267
|
var pageView = pdfViewer.getPageView(pageIndex);
|
268
|
+
|
230
269
|
if (pageView && pageView.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) {
|
231
270
|
var thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex);
|
232
271
|
thumbnailView.setImage(pageView);
|
233
272
|
}
|
234
273
|
}
|
274
|
+
|
235
275
|
pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber);
|
236
276
|
}
|
237
277
|
}, {
|
238
|
-
key:
|
278
|
+
key: "_showUINotification",
|
239
279
|
value: function _showUINotification(view) {
|
240
280
|
var _this = this;
|
241
281
|
|
242
|
-
if (this.
|
282
|
+
if (this._disableNotification) {
|
243
283
|
return;
|
244
284
|
}
|
285
|
+
|
245
286
|
this.l10n.get('toggle_sidebar_notification.title', null, 'Toggle Sidebar (document contains outline/attachments)').then(function (msg) {
|
246
287
|
_this.toggleButton.title = msg;
|
247
288
|
});
|
289
|
+
|
248
290
|
if (!this.isOpen) {
|
249
291
|
this.toggleButton.classList.add(UI_NOTIFICATION_CLASS);
|
250
292
|
} else if (view === this.active) {
|
251
293
|
return;
|
252
294
|
}
|
295
|
+
|
253
296
|
switch (view) {
|
254
297
|
case SidebarView.OUTLINE:
|
255
298
|
this.outlineButton.classList.add(UI_NOTIFICATION_CLASS);
|
256
299
|
break;
|
300
|
+
|
257
301
|
case SidebarView.ATTACHMENTS:
|
258
302
|
this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS);
|
259
303
|
break;
|
260
304
|
}
|
261
305
|
}
|
262
306
|
}, {
|
263
|
-
key:
|
307
|
+
key: "_hideUINotification",
|
264
308
|
value: function _hideUINotification(view) {
|
265
309
|
var _this2 = this;
|
266
310
|
|
267
|
-
if (this.
|
311
|
+
if (this._disableNotification) {
|
268
312
|
return;
|
269
313
|
}
|
314
|
+
|
270
315
|
var removeNotification = function removeNotification(view) {
|
271
316
|
switch (view) {
|
272
317
|
case SidebarView.OUTLINE:
|
273
318
|
_this2.outlineButton.classList.remove(UI_NOTIFICATION_CLASS);
|
319
|
+
|
274
320
|
break;
|
321
|
+
|
275
322
|
case SidebarView.ATTACHMENTS:
|
276
323
|
_this2.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS);
|
324
|
+
|
277
325
|
break;
|
278
326
|
}
|
279
327
|
};
|
328
|
+
|
280
329
|
if (!this.isOpen && view !== null) {
|
281
330
|
return;
|
282
331
|
}
|
332
|
+
|
283
333
|
this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS);
|
334
|
+
|
284
335
|
if (view !== null) {
|
285
336
|
removeNotification(view);
|
286
337
|
return;
|
287
338
|
}
|
339
|
+
|
288
340
|
for (view in SidebarView) {
|
289
341
|
removeNotification(SidebarView[view]);
|
290
342
|
}
|
343
|
+
|
291
344
|
this.l10n.get('toggle_sidebar.title', null, 'Toggle Sidebar').then(function (msg) {
|
292
345
|
_this2.toggleButton.title = msg;
|
293
346
|
});
|
294
347
|
}
|
295
348
|
}, {
|
296
|
-
key:
|
349
|
+
key: "_addEventListeners",
|
297
350
|
value: function _addEventListeners() {
|
298
351
|
var _this3 = this;
|
299
352
|
|
@@ -309,7 +362,9 @@ var PDFSidebar = function () {
|
|
309
362
|
_this3.switchView(SidebarView.OUTLINE);
|
310
363
|
});
|
311
364
|
this.outlineButton.addEventListener('dblclick', function () {
|
312
|
-
_this3.
|
365
|
+
_this3.eventBus.dispatch('toggleoutlinetree', {
|
366
|
+
source: _this3
|
367
|
+
});
|
313
368
|
});
|
314
369
|
this.attachmentsButton.addEventListener('click', function () {
|
315
370
|
_this3.switchView(SidebarView.ATTACHMENTS);
|
@@ -317,6 +372,7 @@ var PDFSidebar = function () {
|
|
317
372
|
this.eventBus.on('outlineloaded', function (evt) {
|
318
373
|
var outlineCount = evt.outlineCount;
|
319
374
|
_this3.outlineButton.disabled = !outlineCount;
|
375
|
+
|
320
376
|
if (outlineCount) {
|
321
377
|
_this3._showUINotification(SidebarView.OUTLINE);
|
322
378
|
} else if (_this3.active === SidebarView.OUTLINE) {
|
@@ -326,14 +382,19 @@ var PDFSidebar = function () {
|
|
326
382
|
this.eventBus.on('attachmentsloaded', function (evt) {
|
327
383
|
if (evt.attachmentsCount) {
|
328
384
|
_this3.attachmentsButton.disabled = false;
|
385
|
+
|
329
386
|
_this3._showUINotification(SidebarView.ATTACHMENTS);
|
387
|
+
|
330
388
|
return;
|
331
389
|
}
|
390
|
+
|
332
391
|
Promise.resolve().then(function () {
|
333
392
|
if (_this3.attachmentsView.hasChildNodes()) {
|
334
393
|
return;
|
335
394
|
}
|
395
|
+
|
336
396
|
_this3.attachmentsButton.disabled = true;
|
397
|
+
|
337
398
|
if (_this3.active === SidebarView.ATTACHMENTS) {
|
338
399
|
_this3.switchView(SidebarView.THUMBS);
|
339
400
|
}
|
@@ -346,22 +407,22 @@ var PDFSidebar = function () {
|
|
346
407
|
});
|
347
408
|
}
|
348
409
|
}, {
|
349
|
-
key:
|
410
|
+
key: "visibleView",
|
350
411
|
get: function get() {
|
351
412
|
return this.isOpen ? this.active : SidebarView.NONE;
|
352
413
|
}
|
353
414
|
}, {
|
354
|
-
key:
|
415
|
+
key: "isThumbnailViewVisible",
|
355
416
|
get: function get() {
|
356
417
|
return this.isOpen && this.active === SidebarView.THUMBS;
|
357
418
|
}
|
358
419
|
}, {
|
359
|
-
key:
|
420
|
+
key: "isOutlineViewVisible",
|
360
421
|
get: function get() {
|
361
422
|
return this.isOpen && this.active === SidebarView.OUTLINE;
|
362
423
|
}
|
363
424
|
}, {
|
364
|
-
key:
|
425
|
+
key: "isAttachmentsViewVisible",
|
365
426
|
get: function get() {
|
366
427
|
return this.isOpen && this.active === SidebarView.ATTACHMENTS;
|
367
428
|
}
|
@@ -370,5 +431,4 @@ var PDFSidebar = function () {
|
|
370
431
|
return PDFSidebar;
|
371
432
|
}();
|
372
433
|
|
373
|
-
exports.SidebarView = SidebarView;
|
374
434
|
exports.PDFSidebar = PDFSidebar;
|
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2019 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,24 +19,28 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.PDFSidebarResizer =
|
27
|
+
exports.PDFSidebarResizer = void 0;
|
28
28
|
|
29
|
-
var
|
30
|
-
|
31
|
-
var _ui_utils = require('./ui_utils');
|
29
|
+
var _ui_utils = require("./ui_utils");
|
32
30
|
|
33
31
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
34
32
|
|
33
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
34
|
+
|
35
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
36
|
+
|
35
37
|
var SIDEBAR_WIDTH_VAR = '--sidebar-width';
|
36
38
|
var SIDEBAR_MIN_WIDTH = 200;
|
37
39
|
var SIDEBAR_RESIZING_CLASS = 'sidebarResizing';
|
38
40
|
|
39
|
-
var PDFSidebarResizer =
|
41
|
+
var PDFSidebarResizer =
|
42
|
+
/*#__PURE__*/
|
43
|
+
function () {
|
40
44
|
function PDFSidebarResizer(options, eventBus) {
|
41
45
|
var _this = this;
|
42
46
|
|
@@ -55,66 +59,79 @@ var PDFSidebarResizer = function () {
|
|
55
59
|
this.resizer = options.resizer;
|
56
60
|
this.eventBus = eventBus;
|
57
61
|
this.l10n = l10n;
|
58
|
-
|
62
|
+
|
63
|
+
if (typeof CSS === 'undefined' || typeof CSS.supports !== 'function' || !CSS.supports(SIDEBAR_WIDTH_VAR, "calc(-1 * ".concat(SIDEBAR_MIN_WIDTH, "px)"))) {
|
59
64
|
console.warn('PDFSidebarResizer: ' + 'The browser does not support resizing of the sidebar.');
|
60
65
|
return;
|
61
66
|
}
|
67
|
+
|
62
68
|
this.enabled = true;
|
63
69
|
this.resizer.classList.remove('hidden');
|
64
70
|
this.l10n.getDirection().then(function (dir) {
|
65
71
|
_this.isRTL = dir === 'rtl';
|
66
72
|
});
|
73
|
+
|
67
74
|
this._addEventListeners();
|
68
75
|
}
|
69
76
|
|
70
77
|
_createClass(PDFSidebarResizer, [{
|
71
|
-
key:
|
78
|
+
key: "_updateWidth",
|
72
79
|
value: function _updateWidth() {
|
73
80
|
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
74
81
|
|
75
82
|
if (!this.enabled) {
|
76
83
|
return false;
|
77
84
|
}
|
85
|
+
|
78
86
|
var maxWidth = Math.floor(this.outerContainerWidth / 2);
|
87
|
+
|
79
88
|
if (width > maxWidth) {
|
80
89
|
width = maxWidth;
|
81
90
|
}
|
91
|
+
|
82
92
|
if (width < SIDEBAR_MIN_WIDTH) {
|
83
93
|
width = SIDEBAR_MIN_WIDTH;
|
84
94
|
}
|
95
|
+
|
85
96
|
if (width === this._width) {
|
86
97
|
return false;
|
87
98
|
}
|
99
|
+
|
88
100
|
this._width = width;
|
89
|
-
this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, width
|
101
|
+
this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, "".concat(width, "px"));
|
90
102
|
return true;
|
91
103
|
}
|
92
104
|
}, {
|
93
|
-
key:
|
105
|
+
key: "_mouseMove",
|
94
106
|
value: function _mouseMove(evt) {
|
95
107
|
var width = evt.clientX;
|
108
|
+
|
96
109
|
if (this.isRTL) {
|
97
110
|
width = this.outerContainerWidth - width;
|
98
111
|
}
|
112
|
+
|
99
113
|
this._updateWidth(width);
|
100
114
|
}
|
101
115
|
}, {
|
102
|
-
key:
|
116
|
+
key: "_mouseUp",
|
103
117
|
value: function _mouseUp(evt) {
|
104
118
|
this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS);
|
105
|
-
this.eventBus.dispatch('resize', {
|
119
|
+
this.eventBus.dispatch('resize', {
|
120
|
+
source: this
|
121
|
+
});
|
106
122
|
var _boundEvents = this._boundEvents;
|
107
123
|
window.removeEventListener('mousemove', _boundEvents.mouseMove);
|
108
124
|
window.removeEventListener('mouseup', _boundEvents.mouseUp);
|
109
125
|
}
|
110
126
|
}, {
|
111
|
-
key:
|
127
|
+
key: "_addEventListeners",
|
112
128
|
value: function _addEventListeners() {
|
113
129
|
var _this2 = this;
|
114
130
|
|
115
131
|
if (!this.enabled) {
|
116
132
|
return;
|
117
133
|
}
|
134
|
+
|
118
135
|
var _boundEvents = this._boundEvents;
|
119
136
|
_boundEvents.mouseMove = this._mouseMove.bind(this);
|
120
137
|
_boundEvents.mouseUp = this._mouseUp.bind(this);
|
@@ -122,7 +139,9 @@ var PDFSidebarResizer = function () {
|
|
122
139
|
if (evt.button !== 0) {
|
123
140
|
return;
|
124
141
|
}
|
142
|
+
|
125
143
|
_this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS);
|
144
|
+
|
126
145
|
window.addEventListener('mousemove', _boundEvents.mouseMove);
|
127
146
|
window.addEventListener('mouseup', _boundEvents.mouseUp);
|
128
147
|
});
|
@@ -132,14 +151,20 @@ var PDFSidebarResizer = function () {
|
|
132
151
|
this.eventBus.on('resize', function (evt) {
|
133
152
|
if (evt && evt.source === window) {
|
134
153
|
_this2._outerContainerWidth = null;
|
154
|
+
|
135
155
|
if (_this2._width) {
|
136
156
|
if (_this2.sidebarOpen) {
|
137
157
|
_this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS);
|
158
|
+
|
138
159
|
var updated = _this2._updateWidth(_this2._width);
|
160
|
+
|
139
161
|
Promise.resolve().then(function () {
|
140
162
|
_this2.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS);
|
163
|
+
|
141
164
|
if (updated) {
|
142
|
-
_this2.eventBus.dispatch('resize', {
|
165
|
+
_this2.eventBus.dispatch('resize', {
|
166
|
+
source: _this2
|
167
|
+
});
|
143
168
|
}
|
144
169
|
});
|
145
170
|
} else {
|
@@ -150,11 +175,12 @@ var PDFSidebarResizer = function () {
|
|
150
175
|
});
|
151
176
|
}
|
152
177
|
}, {
|
153
|
-
key:
|
178
|
+
key: "outerContainerWidth",
|
154
179
|
get: function get() {
|
155
180
|
if (!this._outerContainerWidth) {
|
156
181
|
this._outerContainerWidth = this.outerContainer.clientWidth;
|
157
182
|
}
|
183
|
+
|
158
184
|
return this._outerContainerWidth;
|
159
185
|
}
|
160
186
|
}]);
|