pdfjs-dist 2.0.943 → 2.4.456
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/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8286 -14230
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +25500 -26628
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25473 -0
- package/es5/build/pdf.js.map +1 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +57878 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/images/texture.png +0 -0
- package/es5/web/pdf_viewer.css +407 -0
- package/es5/web/pdf_viewer.js +7757 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +2887 -4094
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +855 -778
- package/lib/core/arithmetic_decoder.js +325 -311
- package/lib/core/bidi.js +117 -50
- package/lib/core/ccitt.js +251 -89
- package/lib/core/ccitt_stream.js +26 -16
- package/lib/core/cff_parser.js +525 -197
- package/lib/core/charsets.js +6 -5
- package/lib/core/chunked_stream.js +541 -406
- package/lib/core/cmap.js +368 -253
- package/lib/core/colorspace.js +781 -800
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +609 -422
- package/lib/core/document.js +649 -481
- package/lib/core/encodings.js +33 -24
- package/lib/core/evaluator.js +1471 -736
- package/lib/core/font_renderer.js +289 -149
- package/lib/core/fonts.js +1067 -413
- package/lib/core/function.js +517 -287
- package/lib/core/glyphlist.js +4529 -4527
- package/lib/core/image.js +232 -114
- package/lib/core/image_utils.js +94 -0
- package/lib/core/jbig2.js +711 -342
- package/lib/core/jbig2_stream.js +31 -19
- package/lib/core/jpeg_stream.js +151 -26
- package/lib/core/jpg.js +433 -181
- package/lib/core/jpx.js +551 -143
- package/lib/core/jpx_stream.js +40 -28
- package/lib/core/metrics.js +2931 -2931
- package/lib/core/murmurhash3.js +104 -97
- package/lib/core/obj.js +1561 -1053
- package/lib/core/operator_list.js +192 -64
- package/lib/core/parser.js +1162 -864
- package/lib/core/pattern.js +224 -75
- package/lib/core/pdf_manager.js +154 -285
- package/lib/core/primitives.js +145 -69
- package/lib/core/ps_parser.js +212 -162
- package/lib/core/standard_fonts.js +245 -244
- package/lib/core/stream.js +353 -81
- package/lib/core/type1_parser.js +218 -68
- package/lib/core/unicode.js +1682 -1655
- package/lib/core/worker.js +233 -302
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +808 -862
- package/lib/display/api.js +1778 -1462
- package/lib/display/api_compatibility.js +14 -9
- package/lib/display/canvas.js +463 -140
- package/lib/display/content_disposition.js +86 -58
- package/lib/display/display_utils.js +524 -0
- package/lib/display/fetch_stream.js +202 -274
- package/lib/display/font_loader.js +311 -333
- package/lib/display/metadata.js +98 -88
- package/lib/display/network.js +343 -347
- package/lib/display/network_utils.js +46 -26
- package/lib/display/node_stream.js +326 -404
- package/lib/display/pattern_helper.js +168 -69
- package/lib/display/svg.js +1296 -885
- package/lib/display/text_layer.js +229 -103
- package/lib/display/transport_stream.js +290 -250
- package/lib/display/webgl.js +116 -83
- package/lib/display/worker_options.js +6 -5
- package/lib/display/xml_parser.js +358 -337
- package/lib/examples/node/domstubs.js +95 -39
- package/lib/pdf.js +49 -31
- package/lib/pdf.worker.js +7 -5
- package/lib/shared/compatibility.js +3 -145
- package/lib/shared/is_node.js +8 -7
- package/lib/shared/message_handler.js +367 -314
- package/lib/shared/util.js +421 -415
- package/lib/test/unit/annotation_spec.js +1570 -690
- package/lib/test/unit/api_spec.js +855 -493
- package/lib/test/unit/bidi_spec.js +12 -12
- package/lib/test/unit/cff_parser_spec.js +88 -61
- package/lib/test/unit/clitests_helper.js +9 -12
- package/lib/test/unit/cmap_spec.js +140 -88
- package/lib/test/unit/colorspace_spec.js +204 -152
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +194 -182
- package/lib/test/unit/custom_spec.js +50 -64
- package/lib/test/unit/display_svg_spec.js +53 -38
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +17 -22
- package/lib/test/unit/encodings_spec.js +15 -57
- package/lib/test/unit/evaluator_spec.js +90 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +219 -205
- package/lib/test/unit/jasmine-boot.js +68 -39
- package/lib/test/unit/message_handler_spec.js +187 -160
- package/lib/test/unit/metadata_spec.js +87 -34
- package/lib/test/unit/murmurhash3_spec.js +13 -13
- package/lib/test/unit/network_spec.js +26 -59
- package/lib/test/unit/network_utils_spec.js +187 -121
- package/lib/test/unit/node_stream_spec.js +98 -90
- package/lib/test/unit/parser_spec.js +173 -131
- package/lib/test/unit/pdf_find_controller_spec.js +148 -67
- package/lib/test/unit/pdf_find_utils_spec.js +35 -34
- package/lib/test/unit/pdf_history_spec.js +45 -33
- package/lib/test/unit/primitives_spec.js +161 -126
- package/lib/test/unit/stream_spec.js +22 -15
- package/lib/test/unit/test_utils.js +149 -98
- package/lib/test/unit/testreporter.js +36 -18
- package/lib/test/unit/type1_parser_spec.js +46 -44
- package/lib/test/unit/ui_utils_spec.js +388 -372
- package/lib/test/unit/unicode_spec.js +49 -46
- package/lib/test/unit/util_spec.js +144 -248
- package/lib/web/annotation_layer_builder.js +75 -95
- package/lib/web/app.js +1538 -1147
- package/lib/web/app_options.js +116 -104
- package/lib/web/base_viewer.js +950 -775
- package/lib/web/chromecom.js +217 -225
- package/lib/web/debugger.js +236 -148
- package/lib/web/download_manager.js +50 -50
- package/lib/web/firefox_print_service.js +51 -33
- package/lib/web/firefoxcom.js +225 -352
- package/lib/web/genericcom.js +30 -93
- package/lib/web/genericl10n.js +26 -143
- package/lib/web/grab_to_pan.js +57 -33
- package/lib/web/interfaces.js +105 -232
- package/lib/web/overlay_manager.js +73 -227
- package/lib/web/password_prompt.js +44 -62
- package/lib/web/pdf_attachment_viewer.js +118 -123
- package/lib/web/pdf_cursor_tools.js +89 -93
- package/lib/web/pdf_document_properties.js +242 -281
- package/lib/web/pdf_find_bar.js +157 -163
- package/lib/web/pdf_find_controller.js +598 -454
- package/lib/web/pdf_find_utils.js +32 -16
- package/lib/web/pdf_history.js +481 -355
- package/lib/web/pdf_link_service.js +355 -323
- package/lib/web/pdf_outline_viewer.js +167 -152
- package/lib/web/pdf_page_view.js +511 -457
- package/lib/web/pdf_presentation_mode.js +347 -335
- package/lib/web/pdf_print_service.js +133 -103
- package/lib/web/pdf_rendering_queue.js +98 -100
- package/lib/web/pdf_sidebar.js +323 -299
- package/lib/web/pdf_sidebar_resizer.js +107 -108
- package/lib/web/pdf_single_page_viewer.js +94 -146
- package/lib/web/pdf_thumbnail_view.js +319 -269
- package/lib/web/pdf_thumbnail_viewer.js +219 -199
- package/lib/web/pdf_viewer.component.js +111 -32
- package/lib/web/pdf_viewer.js +61 -101
- package/lib/web/preferences.js +87 -272
- package/lib/web/secondary_toolbar.js +207 -220
- package/lib/web/text_layer_builder.js +322 -322
- package/lib/web/toolbar.js +227 -180
- package/lib/web/ui_utils.js +476 -421
- package/lib/web/view_history.js +59 -208
- package/lib/web/viewer_compatibility.js +9 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +36 -22
- package/web/pdf_viewer.js +4407 -4516
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/display/dom_utils.js +0 -441
- package/lib/shared/streams_polyfill.js +0 -39
- package/lib/shared/url_polyfill.js +0 -50
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/web/dom_events.js +0 -140
package/lib/web/pdf_viewer.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 2020 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,124 +19,84 @@
|
|
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.PDFViewer =
|
27
|
+
exports.PDFViewer = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _base_viewer = require("./base_viewer.js");
|
30
30
|
|
31
|
-
var
|
31
|
+
var _pdf = require("../pdf");
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
38
|
-
|
39
|
-
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
33
|
+
class PDFViewer extends _base_viewer.BaseViewer {
|
34
|
+
get _setDocumentViewerElement() {
|
35
|
+
return (0, _pdf.shadow)(this, "_setDocumentViewerElement", this.viewer);
|
36
|
+
}
|
40
37
|
|
41
|
-
|
38
|
+
_scrollIntoView({
|
39
|
+
pageDiv,
|
40
|
+
pageSpot = null,
|
41
|
+
pageNumber = null
|
42
|
+
}) {
|
43
|
+
if (!pageSpot && !this.isInPresentationMode) {
|
44
|
+
const left = pageDiv.offsetLeft + pageDiv.clientLeft;
|
45
|
+
const right = left + pageDiv.clientWidth;
|
46
|
+
const {
|
47
|
+
scrollLeft,
|
48
|
+
clientWidth
|
49
|
+
} = this.container;
|
50
|
+
|
51
|
+
if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) {
|
52
|
+
pageSpot = {
|
53
|
+
left: 0,
|
54
|
+
top: 0
|
55
|
+
};
|
56
|
+
}
|
57
|
+
}
|
42
58
|
|
43
|
-
|
44
|
-
|
59
|
+
super._scrollIntoView({
|
60
|
+
pageDiv,
|
61
|
+
pageSpot,
|
62
|
+
pageNumber
|
63
|
+
});
|
64
|
+
}
|
45
65
|
|
46
|
-
|
47
|
-
|
66
|
+
_getVisiblePages() {
|
67
|
+
if (this.isInPresentationMode) {
|
68
|
+
return this._getCurrentVisiblePage();
|
69
|
+
}
|
48
70
|
|
49
|
-
return
|
71
|
+
return super._getVisiblePages();
|
50
72
|
}
|
51
73
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
var pageDiv = _ref.pageDiv,
|
56
|
-
_ref$pageSpot = _ref.pageSpot,
|
57
|
-
pageSpot = _ref$pageSpot === undefined ? null : _ref$pageSpot;
|
58
|
-
|
59
|
-
if (!pageSpot && !this.isInPresentationMode) {
|
60
|
-
var left = pageDiv.offsetLeft + pageDiv.clientLeft;
|
61
|
-
var right = left + pageDiv.clientWidth;
|
62
|
-
var _container = this.container,
|
63
|
-
scrollLeft = _container.scrollLeft,
|
64
|
-
clientWidth = _container.clientWidth;
|
65
|
-
|
66
|
-
if (this._scrollMode === _base_viewer.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) {
|
67
|
-
pageSpot = {
|
68
|
-
left: 0,
|
69
|
-
top: 0
|
70
|
-
};
|
71
|
-
}
|
72
|
-
}
|
73
|
-
(0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);
|
74
|
-
}
|
75
|
-
}, {
|
76
|
-
key: '_getVisiblePages',
|
77
|
-
value: function _getVisiblePages() {
|
78
|
-
if (!this.isInPresentationMode) {
|
79
|
-
return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._scrollMode === _base_viewer.ScrollMode.HORIZONTAL);
|
80
|
-
}
|
81
|
-
var currentPage = this._pages[this._currentPageNumber - 1];
|
82
|
-
var visible = [{
|
83
|
-
id: currentPage.id,
|
84
|
-
view: currentPage
|
85
|
-
}];
|
86
|
-
return {
|
87
|
-
first: currentPage,
|
88
|
-
last: currentPage,
|
89
|
-
views: visible
|
90
|
-
};
|
74
|
+
_updateHelper(visiblePages) {
|
75
|
+
if (this.isInPresentationMode) {
|
76
|
+
return;
|
91
77
|
}
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
return;
|
100
|
-
}
|
101
|
-
this._resizeBuffer(numVisiblePages, visiblePages);
|
102
|
-
this.renderingQueue.renderHighestPriority(visible);
|
103
|
-
var currentId = this._currentPageNumber;
|
104
|
-
var stillFullyVisible = false;
|
105
|
-
for (var i = 0; i < numVisiblePages; ++i) {
|
106
|
-
var page = visiblePages[i];
|
107
|
-
if (page.percent < 100) {
|
108
|
-
break;
|
109
|
-
}
|
110
|
-
if (page.id === currentId) {
|
111
|
-
stillFullyVisible = true;
|
112
|
-
break;
|
113
|
-
}
|
114
|
-
}
|
115
|
-
if (!stillFullyVisible) {
|
116
|
-
currentId = visiblePages[0].id;
|
78
|
+
|
79
|
+
let currentId = this._currentPageNumber;
|
80
|
+
let stillFullyVisible = false;
|
81
|
+
|
82
|
+
for (const page of visiblePages) {
|
83
|
+
if (page.percent < 100) {
|
84
|
+
break;
|
117
85
|
}
|
118
|
-
|
119
|
-
|
86
|
+
|
87
|
+
if (page.id === currentId) {
|
88
|
+
stillFullyVisible = true;
|
89
|
+
break;
|
120
90
|
}
|
121
|
-
this._updateLocation(visible.first);
|
122
|
-
this.eventBus.dispatch('updateviewarea', {
|
123
|
-
source: this,
|
124
|
-
location: this._location
|
125
|
-
});
|
126
|
-
}
|
127
|
-
}, {
|
128
|
-
key: '_setDocumentViewerElement',
|
129
|
-
get: function get() {
|
130
|
-
return (0, _pdf.shadow)(this, '_setDocumentViewerElement', this.viewer);
|
131
91
|
}
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
return this.isInPresentationMode ? false : this._scrollMode === _base_viewer.ScrollMode.HORIZONTAL;
|
92
|
+
|
93
|
+
if (!stillFullyVisible) {
|
94
|
+
currentId = visiblePages[0].id;
|
136
95
|
}
|
137
|
-
}]);
|
138
96
|
|
139
|
-
|
140
|
-
}
|
97
|
+
this._setCurrentPageNumber(currentId);
|
98
|
+
}
|
99
|
+
|
100
|
+
}
|
141
101
|
|
142
102
|
exports.PDFViewer = PDFViewer;
|
package/lib/web/preferences.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 2020 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.
|
@@ -24,324 +24,139 @@
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.BasePreferences =
|
27
|
+
exports.BasePreferences = void 0;
|
28
|
+
let defaultPreferences = null;
|
28
29
|
|
29
|
-
var _regenerator = require("babel-runtime/regenerator");
|
30
|
-
|
31
|
-
var _regenerator2 = _interopRequireDefault(_regenerator);
|
32
|
-
|
33
|
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
34
|
-
|
35
|
-
var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
36
|
-
|
37
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
38
|
-
|
39
|
-
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
40
|
-
|
41
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
42
|
-
|
43
|
-
var defaultPreferences = null;
|
44
30
|
function getDefaultPreferences() {
|
45
31
|
if (!defaultPreferences) {
|
46
32
|
defaultPreferences = Promise.resolve({
|
47
|
-
"showPreviousViewOnLoad": true,
|
48
|
-
"defaultZoomValue": "",
|
49
|
-
"sidebarViewOnLoad": 0,
|
50
33
|
"cursorToolOnLoad": 0,
|
34
|
+
"defaultZoomValue": "",
|
35
|
+
"disablePageLabels": false,
|
36
|
+
"enablePrintAutoRotate": false,
|
51
37
|
"enableWebGL": false,
|
52
38
|
"eventBusDispatchToDOM": false,
|
53
|
-
"pdfBugEnabled": false,
|
54
|
-
"disableRange": false,
|
55
|
-
"disableStream": false,
|
56
|
-
"disableAutoFetch": false,
|
57
|
-
"disableFontFace": false,
|
58
|
-
"textLayerMode": 1,
|
59
|
-
"useOnlyCssZoom": false,
|
60
39
|
"externalLinkTarget": 0,
|
40
|
+
"historyUpdateUrl": false,
|
41
|
+
"ignoreDestinationZoom": false,
|
42
|
+
"pdfBugEnabled": false,
|
61
43
|
"renderer": "canvas",
|
62
44
|
"renderInteractiveForms": false,
|
63
|
-
"
|
64
|
-
"
|
65
|
-
"
|
66
|
-
"
|
67
|
-
"
|
45
|
+
"sidebarViewOnLoad": -1,
|
46
|
+
"scrollModeOnLoad": -1,
|
47
|
+
"spreadModeOnLoad": -1,
|
48
|
+
"textLayerMode": 1,
|
49
|
+
"useOnlyCssZoom": false,
|
50
|
+
"viewOnLoad": 0,
|
51
|
+
"disableAutoFetch": false,
|
52
|
+
"disableFontFace": false,
|
53
|
+
"disableRange": false,
|
54
|
+
"disableStream": false
|
68
55
|
});
|
69
56
|
}
|
57
|
+
|
70
58
|
return defaultPreferences;
|
71
59
|
}
|
72
60
|
|
73
|
-
|
74
|
-
|
75
|
-
var _this = this;
|
76
|
-
|
77
|
-
_classCallCheck(this, BasePreferences);
|
78
|
-
|
61
|
+
class BasePreferences {
|
62
|
+
constructor() {
|
79
63
|
if (this.constructor === BasePreferences) {
|
80
|
-
throw new Error(
|
64
|
+
throw new Error("Cannot initialize BasePreferences.");
|
81
65
|
}
|
66
|
+
|
82
67
|
this.prefs = null;
|
83
|
-
this._initializedPromise = getDefaultPreferences().then(
|
84
|
-
Object.defineProperty(
|
68
|
+
this._initializedPromise = getDefaultPreferences().then(defaults => {
|
69
|
+
Object.defineProperty(this, "defaults", {
|
85
70
|
value: Object.freeze(defaults),
|
86
71
|
writable: false,
|
87
72
|
enumerable: true,
|
88
73
|
configurable: false
|
89
74
|
});
|
90
|
-
|
91
|
-
return
|
92
|
-
}).then(
|
75
|
+
this.prefs = Object.assign(Object.create(null), defaults);
|
76
|
+
return this._readFromStorage(defaults);
|
77
|
+
}).then(prefs => {
|
93
78
|
if (!prefs) {
|
94
79
|
return;
|
95
80
|
}
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
81
|
+
|
82
|
+
for (const name in prefs) {
|
83
|
+
const defaultValue = this.defaults[name],
|
84
|
+
prefValue = prefs[name];
|
85
|
+
|
86
|
+
if (defaultValue === undefined || typeof prefValue !== typeof defaultValue) {
|
100
87
|
continue;
|
101
88
|
}
|
102
|
-
|
89
|
+
|
90
|
+
this.prefs[name] = prefValue;
|
103
91
|
}
|
104
92
|
});
|
105
93
|
}
|
106
94
|
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee(prefObj) {
|
111
|
-
return _regenerator2.default.wrap(function _callee$(_context) {
|
112
|
-
while (1) {
|
113
|
-
switch (_context.prev = _context.next) {
|
114
|
-
case 0:
|
115
|
-
throw new Error('Not implemented: _writeToStorage');
|
116
|
-
|
117
|
-
case 1:
|
118
|
-
case "end":
|
119
|
-
return _context.stop();
|
120
|
-
}
|
121
|
-
}
|
122
|
-
}, _callee, this);
|
123
|
-
}));
|
124
|
-
|
125
|
-
function _writeToStorage(_x) {
|
126
|
-
return _ref.apply(this, arguments);
|
127
|
-
}
|
128
|
-
|
129
|
-
return _writeToStorage;
|
130
|
-
}()
|
131
|
-
}, {
|
132
|
-
key: "_readFromStorage",
|
133
|
-
value: function () {
|
134
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2(prefObj) {
|
135
|
-
return _regenerator2.default.wrap(function _callee2$(_context2) {
|
136
|
-
while (1) {
|
137
|
-
switch (_context2.prev = _context2.next) {
|
138
|
-
case 0:
|
139
|
-
throw new Error('Not implemented: _readFromStorage');
|
95
|
+
async _writeToStorage(prefObj) {
|
96
|
+
throw new Error("Not implemented: _writeToStorage");
|
97
|
+
}
|
140
98
|
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
}
|
145
|
-
}
|
146
|
-
}, _callee2, this);
|
147
|
-
}));
|
99
|
+
async _readFromStorage(prefObj) {
|
100
|
+
throw new Error("Not implemented: _readFromStorage");
|
101
|
+
}
|
148
102
|
|
149
|
-
|
150
|
-
|
151
|
-
|
103
|
+
async reset() {
|
104
|
+
await this._initializedPromise;
|
105
|
+
this.prefs = Object.assign(Object.create(null), this.defaults);
|
106
|
+
return this._writeToStorage(this.defaults);
|
107
|
+
}
|
152
108
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
key: "reset",
|
157
|
-
value: function () {
|
158
|
-
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee3() {
|
159
|
-
return _regenerator2.default.wrap(function _callee3$(_context3) {
|
160
|
-
while (1) {
|
161
|
-
switch (_context3.prev = _context3.next) {
|
162
|
-
case 0:
|
163
|
-
_context3.next = 2;
|
164
|
-
return this._initializedPromise;
|
109
|
+
async set(name, value) {
|
110
|
+
await this._initializedPromise;
|
111
|
+
const defaultValue = this.defaults[name];
|
165
112
|
|
166
|
-
|
167
|
-
|
168
|
-
|
113
|
+
if (defaultValue === undefined) {
|
114
|
+
throw new Error(`Set preference: "${name}" is undefined.`);
|
115
|
+
} else if (value === undefined) {
|
116
|
+
throw new Error("Set preference: no value is specified.");
|
117
|
+
}
|
169
118
|
|
170
|
-
|
171
|
-
|
172
|
-
return _context3.stop();
|
173
|
-
}
|
174
|
-
}
|
175
|
-
}, _callee3, this);
|
176
|
-
}));
|
119
|
+
const valueType = typeof value;
|
120
|
+
const defaultType = typeof defaultValue;
|
177
121
|
|
178
|
-
|
179
|
-
|
122
|
+
if (valueType !== defaultType) {
|
123
|
+
if (valueType === "number" && defaultType === "string") {
|
124
|
+
value = value.toString();
|
125
|
+
} else {
|
126
|
+
throw new Error(`Set preference: "${value}" is a ${valueType}, ` + `expected a ${defaultType}.`);
|
180
127
|
}
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
}, {
|
185
|
-
key: "set",
|
186
|
-
value: function () {
|
187
|
-
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee4(name, value) {
|
188
|
-
var defaultValue, valueType, defaultType;
|
189
|
-
return _regenerator2.default.wrap(function _callee4$(_context4) {
|
190
|
-
while (1) {
|
191
|
-
switch (_context4.prev = _context4.next) {
|
192
|
-
case 0:
|
193
|
-
_context4.next = 2;
|
194
|
-
return this._initializedPromise;
|
195
|
-
|
196
|
-
case 2:
|
197
|
-
defaultValue = this.defaults[name];
|
198
|
-
|
199
|
-
if (!(defaultValue === undefined)) {
|
200
|
-
_context4.next = 7;
|
201
|
-
break;
|
202
|
-
}
|
203
|
-
|
204
|
-
throw new Error("Set preference: \"" + name + "\" is undefined.");
|
205
|
-
|
206
|
-
case 7:
|
207
|
-
if (!(value === undefined)) {
|
208
|
-
_context4.next = 9;
|
209
|
-
break;
|
210
|
-
}
|
211
|
-
|
212
|
-
throw new Error('Set preference: no value is specified.');
|
213
|
-
|
214
|
-
case 9:
|
215
|
-
valueType = typeof value === "undefined" ? "undefined" : _typeof(value);
|
216
|
-
defaultType = typeof defaultValue === "undefined" ? "undefined" : _typeof(defaultValue);
|
217
|
-
|
218
|
-
if (!(valueType !== defaultType)) {
|
219
|
-
_context4.next = 19;
|
220
|
-
break;
|
221
|
-
}
|
222
|
-
|
223
|
-
if (!(valueType === 'number' && defaultType === 'string')) {
|
224
|
-
_context4.next = 16;
|
225
|
-
break;
|
226
|
-
}
|
227
|
-
|
228
|
-
value = value.toString();
|
229
|
-
_context4.next = 17;
|
230
|
-
break;
|
231
|
-
|
232
|
-
case 16:
|
233
|
-
throw new Error("Set preference: \"" + value + "\" is a " + valueType + ", " + ("expected a " + defaultType + "."));
|
234
|
-
|
235
|
-
case 17:
|
236
|
-
_context4.next = 21;
|
237
|
-
break;
|
238
|
-
|
239
|
-
case 19:
|
240
|
-
if (!(valueType === 'number' && !Number.isInteger(value))) {
|
241
|
-
_context4.next = 21;
|
242
|
-
break;
|
243
|
-
}
|
244
|
-
|
245
|
-
throw new Error("Set preference: \"" + value + "\" must be an integer.");
|
246
|
-
|
247
|
-
case 21:
|
248
|
-
this.prefs[name] = value;
|
249
|
-
return _context4.abrupt("return", this._writeToStorage(this.prefs));
|
250
|
-
|
251
|
-
case 23:
|
252
|
-
case "end":
|
253
|
-
return _context4.stop();
|
254
|
-
}
|
255
|
-
}
|
256
|
-
}, _callee4, this);
|
257
|
-
}));
|
258
|
-
|
259
|
-
function set(_x3, _x4) {
|
260
|
-
return _ref4.apply(this, arguments);
|
128
|
+
} else {
|
129
|
+
if (valueType === "number" && !Number.isInteger(value)) {
|
130
|
+
throw new Error(`Set preference: "${value}" must be an integer.`);
|
261
131
|
}
|
132
|
+
}
|
262
133
|
|
263
|
-
|
264
|
-
|
265
|
-
}
|
266
|
-
key: "get",
|
267
|
-
value: function () {
|
268
|
-
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee5(name) {
|
269
|
-
var defaultValue, prefValue;
|
270
|
-
return _regenerator2.default.wrap(function _callee5$(_context5) {
|
271
|
-
while (1) {
|
272
|
-
switch (_context5.prev = _context5.next) {
|
273
|
-
case 0:
|
274
|
-
_context5.next = 2;
|
275
|
-
return this._initializedPromise;
|
276
|
-
|
277
|
-
case 2:
|
278
|
-
defaultValue = this.defaults[name];
|
279
|
-
|
280
|
-
if (!(defaultValue === undefined)) {
|
281
|
-
_context5.next = 7;
|
282
|
-
break;
|
283
|
-
}
|
284
|
-
|
285
|
-
throw new Error("Get preference: \"" + name + "\" is undefined.");
|
286
|
-
|
287
|
-
case 7:
|
288
|
-
prefValue = this.prefs[name];
|
289
|
-
|
290
|
-
if (!(prefValue !== undefined)) {
|
291
|
-
_context5.next = 10;
|
292
|
-
break;
|
293
|
-
}
|
294
|
-
|
295
|
-
return _context5.abrupt("return", prefValue);
|
134
|
+
this.prefs[name] = value;
|
135
|
+
return this._writeToStorage(this.prefs);
|
136
|
+
}
|
296
137
|
|
297
|
-
|
298
|
-
|
138
|
+
async get(name) {
|
139
|
+
await this._initializedPromise;
|
140
|
+
const defaultValue = this.defaults[name];
|
299
141
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
}
|
305
|
-
}, _callee5, this);
|
306
|
-
}));
|
142
|
+
if (defaultValue === undefined) {
|
143
|
+
throw new Error(`Get preference: "${name}" is undefined.`);
|
144
|
+
} else {
|
145
|
+
const prefValue = this.prefs[name];
|
307
146
|
|
308
|
-
|
309
|
-
return
|
147
|
+
if (prefValue !== undefined) {
|
148
|
+
return prefValue;
|
310
149
|
}
|
150
|
+
}
|
311
151
|
|
312
|
-
|
313
|
-
|
314
|
-
}, {
|
315
|
-
key: "getAll",
|
316
|
-
value: function () {
|
317
|
-
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee6() {
|
318
|
-
return _regenerator2.default.wrap(function _callee6$(_context6) {
|
319
|
-
while (1) {
|
320
|
-
switch (_context6.prev = _context6.next) {
|
321
|
-
case 0:
|
322
|
-
_context6.next = 2;
|
323
|
-
return this._initializedPromise;
|
324
|
-
|
325
|
-
case 2:
|
326
|
-
return _context6.abrupt("return", Object.assign(Object.create(null), this.defaults, this.prefs));
|
327
|
-
|
328
|
-
case 3:
|
329
|
-
case "end":
|
330
|
-
return _context6.stop();
|
331
|
-
}
|
332
|
-
}
|
333
|
-
}, _callee6, this);
|
334
|
-
}));
|
335
|
-
|
336
|
-
function getAll() {
|
337
|
-
return _ref6.apply(this, arguments);
|
338
|
-
}
|
152
|
+
return defaultValue;
|
153
|
+
}
|
339
154
|
|
340
|
-
|
341
|
-
|
342
|
-
|
155
|
+
async getAll() {
|
156
|
+
await this._initializedPromise;
|
157
|
+
return Object.assign(Object.create(null), this.defaults, this.prefs);
|
158
|
+
}
|
343
159
|
|
344
|
-
|
345
|
-
}();
|
160
|
+
}
|
346
161
|
|
347
162
|
exports.BasePreferences = BasePreferences;
|