@chialab/pdfjs-lib 1.0.0-alpha.11 → 1.0.0-alpha.12
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.
- package/dist/browser/{chunk-AK2AE3GS.js → chunk-TKDBOXH4.js} +31 -39
- package/dist/browser/index.js +614 -493
- package/dist/browser/openjpeg-K2XBCFFN.js +9 -0
- package/dist/browser/qcms_bg-Q7BRLLZG.js +9 -0
- package/dist/browser/worker.js +1260 -1121
- package/dist/lib/utils.d.ts +6 -0
- package/dist/node/{chunk-WL32POZ2.js → chunk-MAMMG4XK.js} +31 -39
- package/dist/node/index.js +755 -495
- package/dist/node/openjpeg-B2WN24QZ.js +9 -0
- package/dist/node/qcms_bg-T4RSHPOQ.js +9 -0
- package/dist/node/worker.js +1260 -1121
- package/dist/pdf.js/src/display/annotation_storage.d.ts +1 -8
- package/dist/pdf.js/src/display/api.d.ts +10 -69
- package/dist/pdf.js/src/display/api_utils.d.ts +13 -0
- package/dist/pdf.js/src/display/canvas.d.ts +2 -2
- package/dist/pdf.js/src/display/display_utils.d.ts +2 -1
- package/dist/pdf.js/src/display/editor/annotation_editor_layer.d.ts +4 -4
- package/dist/pdf.js/src/display/editor/editor.d.ts +17 -3
- package/dist/pdf.js/src/display/editor/freetext.d.ts +2 -5
- package/dist/pdf.js/src/display/editor/tools.d.ts +2 -1
- package/dist/pdf.js/src/display/metadata.d.ts +1 -2
- package/dist/pdf.js/src/display/optional_content_config.d.ts +1 -1
- package/dist/pdf.js/src/display/pdf_objects.d.ts +40 -0
- package/dist/pdf.js/src/display/text_layer.d.ts +9 -9
- package/dist/pdf.js/src/display/worker_options.d.ts +2 -2
- package/dist/pdf.js/src/pdf.d.ts +3 -2
- package/dist/pdf.js/src/shared/util.d.ts +12 -5
- package/package.json +1 -1
- package/dist/browser/openjpeg-NLAGCGEG.js +0 -9
- package/dist/browser/qcms_bg-EPYCMBVV.js +0 -9
- package/dist/node/openjpeg-O3KQE6R6.js +0 -9
- package/dist/node/qcms_bg-5Z325MLG.js +0 -9
package/dist/node/index.js
CHANGED
|
@@ -36,16 +36,16 @@ import {
|
|
|
36
36
|
info,
|
|
37
37
|
isNodeJS,
|
|
38
38
|
normalizeUnicode,
|
|
39
|
-
objectFromMap,
|
|
40
39
|
setVerbosityLevel,
|
|
41
40
|
shadow,
|
|
42
41
|
string32,
|
|
43
42
|
stringToBytes,
|
|
44
43
|
toBase64Util,
|
|
45
44
|
unreachable,
|
|
45
|
+
updateUrlHash,
|
|
46
46
|
warn,
|
|
47
47
|
wrapReason
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-MAMMG4XK.js";
|
|
49
49
|
import {
|
|
50
50
|
__privateAdd,
|
|
51
51
|
__privateGet,
|
|
@@ -367,6 +367,9 @@ function stopEvent(e) {
|
|
|
367
367
|
e.preventDefault();
|
|
368
368
|
e.stopPropagation();
|
|
369
369
|
}
|
|
370
|
+
function deprecated(details) {
|
|
371
|
+
console.log("Deprecated API usage: " + details);
|
|
372
|
+
}
|
|
370
373
|
var _regex;
|
|
371
374
|
var PDFDateString = class {
|
|
372
375
|
/**
|
|
@@ -464,6 +467,7 @@ function getRGB(color) {
|
|
|
464
467
|
function getColorValues(colors) {
|
|
465
468
|
const span = document.createElement("span");
|
|
466
469
|
span.style.visibility = "hidden";
|
|
470
|
+
span.style.colorScheme = "only light";
|
|
467
471
|
document.body.append(span);
|
|
468
472
|
for (const name of colors.keys()) {
|
|
469
473
|
span.style.color = name;
|
|
@@ -522,8 +526,9 @@ var OutputScale = class _OutputScale {
|
|
|
522
526
|
* @returns {boolean} Returns `true` if scaling was limited,
|
|
523
527
|
* `false` otherwise.
|
|
524
528
|
*/
|
|
525
|
-
limitCanvas(width, height, maxPixels, maxDim) {
|
|
529
|
+
limitCanvas(width, height, maxPixels, maxDim, capAreaFactor = -1) {
|
|
526
530
|
let maxAreaScale = Infinity, maxWidthScale = Infinity, maxHeightScale = Infinity;
|
|
531
|
+
maxPixels = _OutputScale.capPixels(maxPixels, capAreaFactor);
|
|
527
532
|
if (maxPixels > 0) {
|
|
528
533
|
maxAreaScale = Math.sqrt(maxPixels / (width * height));
|
|
529
534
|
}
|
|
@@ -542,6 +547,15 @@ var OutputScale = class _OutputScale {
|
|
|
542
547
|
static get pixelRatio() {
|
|
543
548
|
return globalThis.devicePixelRatio || 1;
|
|
544
549
|
}
|
|
550
|
+
static capPixels(maxPixels, capAreaFactor) {
|
|
551
|
+
if (capAreaFactor >= 0) {
|
|
552
|
+
const winPixels = Math.ceil(
|
|
553
|
+
(false ? window.innerWidth * window.innerHeight : window.screen.availWidth * window.screen.availHeight) * this.pixelRatio ** 2 * (1 + capAreaFactor / 100)
|
|
554
|
+
);
|
|
555
|
+
return maxPixels > 0 ? Math.min(maxPixels, winPixels) : winPixels;
|
|
556
|
+
}
|
|
557
|
+
return maxPixels;
|
|
558
|
+
}
|
|
545
559
|
};
|
|
546
560
|
var SupportedImageMimeTypes = [
|
|
547
561
|
"image/apng",
|
|
@@ -1950,6 +1964,7 @@ var _AnnotationEditorUIManager = class _AnnotationEditorUIManager {
|
|
|
1950
1964
|
}
|
|
1951
1965
|
}
|
|
1952
1966
|
__privateSet(this, _updateModeCapability, Promise.withResolvers());
|
|
1967
|
+
__privateGet(this, _currentDrawingSession)?.commitOrRemove();
|
|
1953
1968
|
__privateSet(this, _mode, mode);
|
|
1954
1969
|
if (mode === AnnotationEditorType.NONE) {
|
|
1955
1970
|
this.setEditingState(false);
|
|
@@ -1975,7 +1990,7 @@ var _AnnotationEditorUIManager = class _AnnotationEditorUIManager {
|
|
|
1975
1990
|
return;
|
|
1976
1991
|
}
|
|
1977
1992
|
for (const editor of __privateGet(this, _allEditors).values()) {
|
|
1978
|
-
if (editor.annotationElementId === editId) {
|
|
1993
|
+
if (editor.annotationElementId === editId || editor.id === editId) {
|
|
1979
1994
|
this.setSelected(editor);
|
|
1980
1995
|
editor.enterInEditMode();
|
|
1981
1996
|
} else {
|
|
@@ -1991,16 +2006,17 @@ var _AnnotationEditorUIManager = class _AnnotationEditorUIManager {
|
|
|
1991
2006
|
}
|
|
1992
2007
|
/**
|
|
1993
2008
|
* Update the toolbar if it's required to reflect the tool currently used.
|
|
2009
|
+
* @param {Object} options
|
|
1994
2010
|
* @param {number} mode
|
|
1995
2011
|
* @returns {undefined}
|
|
1996
2012
|
*/
|
|
1997
|
-
updateToolbar(
|
|
1998
|
-
if (mode === __privateGet(this, _mode)) {
|
|
2013
|
+
updateToolbar(options) {
|
|
2014
|
+
if (options.mode === __privateGet(this, _mode)) {
|
|
1999
2015
|
return;
|
|
2000
2016
|
}
|
|
2001
2017
|
this._eventBus.dispatch("switchannotationeditormode", {
|
|
2002
2018
|
source: this,
|
|
2003
|
-
|
|
2019
|
+
...options
|
|
2004
2020
|
});
|
|
2005
2021
|
}
|
|
2006
2022
|
/**
|
|
@@ -3390,9 +3406,11 @@ onTouchEnd_fn = function(evt) {
|
|
|
3390
3406
|
if (evt.touches.length >= 2) {
|
|
3391
3407
|
return;
|
|
3392
3408
|
}
|
|
3393
|
-
__privateGet(this, _touchMoveAC)
|
|
3394
|
-
|
|
3395
|
-
|
|
3409
|
+
if (__privateGet(this, _touchMoveAC)) {
|
|
3410
|
+
__privateGet(this, _touchMoveAC).abort();
|
|
3411
|
+
__privateSet(this, _touchMoveAC, null);
|
|
3412
|
+
(_a2 = __privateGet(this, _onPinchEnd)) == null ? void 0 : _a2.call(this);
|
|
3413
|
+
}
|
|
3396
3414
|
if (!__privateGet(this, _touchInfo)) {
|
|
3397
3415
|
return;
|
|
3398
3416
|
}
|
|
@@ -3432,6 +3450,7 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
3432
3450
|
__privateAdd(this, _prevDragY, 0);
|
|
3433
3451
|
__privateAdd(this, _telemetryTimeouts, null);
|
|
3434
3452
|
__privateAdd(this, _touchManager, null);
|
|
3453
|
+
__publicField(this, "isSelected", false);
|
|
3435
3454
|
__publicField(this, "_isCopy", false);
|
|
3436
3455
|
__publicField(this, "_editToolbar", null);
|
|
3437
3456
|
__publicField(this, "_initialOptions", /* @__PURE__ */ Object.create(null));
|
|
@@ -4052,7 +4071,7 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
4052
4071
|
}
|
|
4053
4072
|
const [tx, ty] = this.getInitialTranslation();
|
|
4054
4073
|
this.translate(tx, ty);
|
|
4055
|
-
bindEvents(this, div, ["keydown", "pointerdown"]);
|
|
4074
|
+
bindEvents(this, div, ["keydown", "pointerdown", "dblclick"]);
|
|
4056
4075
|
if (this.isResizable && this._uiManager._supportsPinchToZoom) {
|
|
4057
4076
|
__privateGet(this, _touchManager) || __privateSet(this, _touchManager, new TouchManager({
|
|
4058
4077
|
container: div,
|
|
@@ -4083,9 +4102,6 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
4083
4102
|
}
|
|
4084
4103
|
__privateMethod(this, _AnnotationEditor_instances, selectOnPointerEvent_fn).call(this, event);
|
|
4085
4104
|
}
|
|
4086
|
-
get isSelected() {
|
|
4087
|
-
return this._uiManager.isSelected(this);
|
|
4088
|
-
}
|
|
4089
4105
|
_onStartDragging() {
|
|
4090
4106
|
}
|
|
4091
4107
|
_onStopDragging() {
|
|
@@ -4192,15 +4208,27 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
4192
4208
|
}
|
|
4193
4209
|
/**
|
|
4194
4210
|
* Enable edit mode.
|
|
4211
|
+
* @returns {boolean} - true if the edit mode has been enabled.
|
|
4195
4212
|
*/
|
|
4196
4213
|
enableEditMode() {
|
|
4214
|
+
if (this.isInEditMode()) {
|
|
4215
|
+
return false;
|
|
4216
|
+
}
|
|
4217
|
+
this.parent.setEditingState(false);
|
|
4197
4218
|
__privateSet(this, _isInEditMode, true);
|
|
4219
|
+
return true;
|
|
4198
4220
|
}
|
|
4199
4221
|
/**
|
|
4200
4222
|
* Disable edit mode.
|
|
4223
|
+
* @returns {boolean} - true if the edit mode has been disabled.
|
|
4201
4224
|
*/
|
|
4202
4225
|
disableEditMode() {
|
|
4226
|
+
if (!this.isInEditMode()) {
|
|
4227
|
+
return false;
|
|
4228
|
+
}
|
|
4229
|
+
this.parent.setEditingState(true);
|
|
4203
4230
|
__privateSet(this, _isInEditMode, false);
|
|
4231
|
+
return true;
|
|
4204
4232
|
}
|
|
4205
4233
|
/**
|
|
4206
4234
|
* Check if the editor is edited.
|
|
@@ -4441,6 +4469,10 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
4441
4469
|
* Select this editor.
|
|
4442
4470
|
*/
|
|
4443
4471
|
select() {
|
|
4472
|
+
if (this.isSelected && this._editToolbar) {
|
|
4473
|
+
return;
|
|
4474
|
+
}
|
|
4475
|
+
this.isSelected = true;
|
|
4444
4476
|
this.makeResizable();
|
|
4445
4477
|
this.div?.classList.add("selectedEditor");
|
|
4446
4478
|
if (!this._editToolbar) {
|
|
@@ -4458,6 +4490,10 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
4458
4490
|
* Unselect this editor.
|
|
4459
4491
|
*/
|
|
4460
4492
|
unselect() {
|
|
4493
|
+
if (!this.isSelected) {
|
|
4494
|
+
return;
|
|
4495
|
+
}
|
|
4496
|
+
this.isSelected = false;
|
|
4461
4497
|
__privateGet(this, _resizersDiv)?.classList.add("hidden");
|
|
4462
4498
|
this.div?.classList.remove("selectedEditor");
|
|
4463
4499
|
if (this.div?.contains(document.activeElement)) {
|
|
@@ -4487,10 +4523,35 @@ var _AnnotationEditor = class _AnnotationEditor {
|
|
|
4487
4523
|
*/
|
|
4488
4524
|
enableEditing() {
|
|
4489
4525
|
}
|
|
4526
|
+
/**
|
|
4527
|
+
* Check if the content of this editor can be changed.
|
|
4528
|
+
* For example, a FreeText editor can be changed (the user can change the
|
|
4529
|
+
* text), but a Stamp editor cannot.
|
|
4530
|
+
* @returns {boolean}
|
|
4531
|
+
*/
|
|
4532
|
+
get canChangeContent() {
|
|
4533
|
+
return false;
|
|
4534
|
+
}
|
|
4490
4535
|
/**
|
|
4491
4536
|
* The editor is about to be edited.
|
|
4492
4537
|
*/
|
|
4493
4538
|
enterInEditMode() {
|
|
4539
|
+
if (!this.canChangeContent) {
|
|
4540
|
+
return;
|
|
4541
|
+
}
|
|
4542
|
+
this.enableEditMode();
|
|
4543
|
+
this.div.focus();
|
|
4544
|
+
}
|
|
4545
|
+
/**
|
|
4546
|
+
* ondblclick callback.
|
|
4547
|
+
* @param {MouseEvent} event
|
|
4548
|
+
*/
|
|
4549
|
+
dblclick(event) {
|
|
4550
|
+
this.enterInEditMode();
|
|
4551
|
+
this.parent.updateToolbar({
|
|
4552
|
+
mode: this.constructor._editorType,
|
|
4553
|
+
editId: this.id
|
|
4554
|
+
});
|
|
4494
4555
|
}
|
|
4495
4556
|
/**
|
|
4496
4557
|
* @returns {HTMLElement | null} the element requiring an alt text.
|
|
@@ -5131,6 +5192,15 @@ var AnnotationStorage = class {
|
|
|
5131
5192
|
this.onSetModified = null;
|
|
5132
5193
|
this.onResetModified = null;
|
|
5133
5194
|
this.onAnnotationEditor = null;
|
|
5195
|
+
if (false) {
|
|
5196
|
+
Object.defineProperty(this, "_setValues", {
|
|
5197
|
+
value: (obj) => {
|
|
5198
|
+
for (const [key, val] of Object.entries(obj)) {
|
|
5199
|
+
this.setValue(key, val);
|
|
5200
|
+
}
|
|
5201
|
+
}
|
|
5202
|
+
});
|
|
5203
|
+
}
|
|
5134
5204
|
}
|
|
5135
5205
|
/**
|
|
5136
5206
|
* Get the value for a given key if it exists, or return the default value.
|
|
@@ -5205,20 +5275,6 @@ var AnnotationStorage = class {
|
|
|
5205
5275
|
has(key) {
|
|
5206
5276
|
return __privateGet(this, _storage).has(key);
|
|
5207
5277
|
}
|
|
5208
|
-
/**
|
|
5209
|
-
* @returns {Object | null}
|
|
5210
|
-
*/
|
|
5211
|
-
getAll() {
|
|
5212
|
-
return __privateGet(this, _storage).size > 0 ? objectFromMap(__privateGet(this, _storage)) : null;
|
|
5213
|
-
}
|
|
5214
|
-
/**
|
|
5215
|
-
* @param {Object} obj
|
|
5216
|
-
*/
|
|
5217
|
-
setAll(obj) {
|
|
5218
|
-
for (const [key, val] of Object.entries(obj)) {
|
|
5219
|
-
this.setValue(key, val);
|
|
5220
|
-
}
|
|
5221
|
-
}
|
|
5222
5278
|
get size() {
|
|
5223
5279
|
return __privateGet(this, _storage).size;
|
|
5224
5280
|
}
|
|
@@ -5325,6 +5381,9 @@ var AnnotationStorage = class {
|
|
|
5325
5381
|
hash: ids.join(",")
|
|
5326
5382
|
});
|
|
5327
5383
|
}
|
|
5384
|
+
[Symbol.iterator]() {
|
|
5385
|
+
return __privateGet(this, _storage).entries();
|
|
5386
|
+
}
|
|
5328
5387
|
};
|
|
5329
5388
|
_modified = new WeakMap();
|
|
5330
5389
|
_modifiedIds = new WeakMap();
|
|
@@ -6050,6 +6109,110 @@ var FontFaceObject = class {
|
|
|
6050
6109
|
}
|
|
6051
6110
|
};
|
|
6052
6111
|
|
|
6112
|
+
// src/pdf.js/src/display/api_utils.js
|
|
6113
|
+
function getUrlProp(val) {
|
|
6114
|
+
if (false) {
|
|
6115
|
+
return null;
|
|
6116
|
+
}
|
|
6117
|
+
if (val instanceof URL) {
|
|
6118
|
+
return val.href;
|
|
6119
|
+
}
|
|
6120
|
+
if (typeof val === "string") {
|
|
6121
|
+
if (isNodeJS) {
|
|
6122
|
+
return val;
|
|
6123
|
+
}
|
|
6124
|
+
const url = URL.parse(val, window.location);
|
|
6125
|
+
if (url) {
|
|
6126
|
+
return url.href;
|
|
6127
|
+
}
|
|
6128
|
+
}
|
|
6129
|
+
throw new Error(
|
|
6130
|
+
"Invalid PDF url data: either string or URL-object is expected in the url property."
|
|
6131
|
+
);
|
|
6132
|
+
}
|
|
6133
|
+
function getDataProp(val) {
|
|
6134
|
+
if (isNodeJS && typeof Buffer !== "undefined" && // eslint-disable-line no-undef
|
|
6135
|
+
val instanceof Buffer) {
|
|
6136
|
+
throw new Error(
|
|
6137
|
+
"Please provide binary data as `Uint8Array`, rather than `Buffer`."
|
|
6138
|
+
);
|
|
6139
|
+
}
|
|
6140
|
+
if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {
|
|
6141
|
+
return val;
|
|
6142
|
+
}
|
|
6143
|
+
if (typeof val === "string") {
|
|
6144
|
+
return stringToBytes(val);
|
|
6145
|
+
}
|
|
6146
|
+
if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === "object" && !isNaN(val?.length)) {
|
|
6147
|
+
return new Uint8Array(val);
|
|
6148
|
+
}
|
|
6149
|
+
throw new Error(
|
|
6150
|
+
"Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property."
|
|
6151
|
+
);
|
|
6152
|
+
}
|
|
6153
|
+
function getFactoryUrlProp(val) {
|
|
6154
|
+
if (typeof val !== "string") {
|
|
6155
|
+
return null;
|
|
6156
|
+
}
|
|
6157
|
+
if (val.endsWith("/")) {
|
|
6158
|
+
return val;
|
|
6159
|
+
}
|
|
6160
|
+
throw new Error(`Invalid factory url: "${val}" must include trailing slash.`);
|
|
6161
|
+
}
|
|
6162
|
+
var isRefProxy = (v) => typeof v === "object" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;
|
|
6163
|
+
var isNameProxy = (v) => typeof v === "object" && typeof v?.name === "string";
|
|
6164
|
+
var isValidExplicitDest = _isValidExplicitDest.bind(
|
|
6165
|
+
null,
|
|
6166
|
+
/* validRef = */
|
|
6167
|
+
isRefProxy,
|
|
6168
|
+
/* validName = */
|
|
6169
|
+
isNameProxy
|
|
6170
|
+
);
|
|
6171
|
+
var _listeners, _deferred;
|
|
6172
|
+
var LoopbackPort = class {
|
|
6173
|
+
constructor() {
|
|
6174
|
+
__privateAdd(this, _listeners, /* @__PURE__ */ new Map());
|
|
6175
|
+
__privateAdd(this, _deferred, Promise.resolve());
|
|
6176
|
+
}
|
|
6177
|
+
postMessage(obj, transfer) {
|
|
6178
|
+
const event = {
|
|
6179
|
+
data: structuredClone(obj, transfer ? { transfer } : null)
|
|
6180
|
+
};
|
|
6181
|
+
__privateGet(this, _deferred).then(() => {
|
|
6182
|
+
for (const [listener] of __privateGet(this, _listeners)) {
|
|
6183
|
+
listener.call(this, event);
|
|
6184
|
+
}
|
|
6185
|
+
});
|
|
6186
|
+
}
|
|
6187
|
+
addEventListener(name, listener, options = null) {
|
|
6188
|
+
let rmAbort = null;
|
|
6189
|
+
if (options?.signal instanceof AbortSignal) {
|
|
6190
|
+
const { signal } = options;
|
|
6191
|
+
if (signal.aborted) {
|
|
6192
|
+
warn("LoopbackPort - cannot use an `aborted` signal.");
|
|
6193
|
+
return;
|
|
6194
|
+
}
|
|
6195
|
+
const onAbort = () => this.removeEventListener(name, listener);
|
|
6196
|
+
rmAbort = () => signal.removeEventListener("abort", onAbort);
|
|
6197
|
+
signal.addEventListener("abort", onAbort);
|
|
6198
|
+
}
|
|
6199
|
+
__privateGet(this, _listeners).set(listener, rmAbort);
|
|
6200
|
+
}
|
|
6201
|
+
removeEventListener(name, listener) {
|
|
6202
|
+
const rmAbort = __privateGet(this, _listeners).get(listener);
|
|
6203
|
+
rmAbort?.();
|
|
6204
|
+
__privateGet(this, _listeners).delete(listener);
|
|
6205
|
+
}
|
|
6206
|
+
terminate() {
|
|
6207
|
+
for (const [, rmAbort] of __privateGet(this, _listeners)) {
|
|
6208
|
+
rmAbort?.();
|
|
6209
|
+
}
|
|
6210
|
+
__privateGet(this, _listeners).clear();
|
|
6211
|
+
}
|
|
6212
|
+
};
|
|
6213
|
+
_listeners = new WeakMap();
|
|
6214
|
+
_deferred = new WeakMap();
|
|
6215
|
+
|
|
6053
6216
|
// src/pdf.js/src/display/node_utils.js
|
|
6054
6217
|
import { createRequire as __createRequire__ } from "module";
|
|
6055
6218
|
|
|
@@ -6473,7 +6636,7 @@ createUrl_fn = function(id) {
|
|
|
6473
6636
|
if (isDataScheme(url)) {
|
|
6474
6637
|
warn('#createUrl: ignore "data:"-URL for performance reasons.');
|
|
6475
6638
|
} else {
|
|
6476
|
-
__privateSet(this, _baseUrl, url
|
|
6639
|
+
__privateSet(this, _baseUrl, updateUrlHash(url, ""));
|
|
6477
6640
|
}
|
|
6478
6641
|
}
|
|
6479
6642
|
}
|
|
@@ -6668,6 +6831,13 @@ if (isNodeJS) {
|
|
|
6668
6831
|
warn("Cannot polyfill `Path2D`, rendering may be broken.");
|
|
6669
6832
|
}
|
|
6670
6833
|
}
|
|
6834
|
+
if (!globalThis.navigator?.language) {
|
|
6835
|
+
globalThis.navigator = {
|
|
6836
|
+
language: "en-US",
|
|
6837
|
+
platform: "",
|
|
6838
|
+
userAgent: ""
|
|
6839
|
+
};
|
|
6840
|
+
}
|
|
6671
6841
|
}
|
|
6672
6842
|
}
|
|
6673
6843
|
async function fetchData2(url) {
|
|
@@ -6712,6 +6882,138 @@ var NodeWasmFactory = class extends BaseWasmFactory {
|
|
|
6712
6882
|
}
|
|
6713
6883
|
};
|
|
6714
6884
|
|
|
6885
|
+
// src/lib/NodeUtils.ts
|
|
6886
|
+
var filtersRegistry = /* @__PURE__ */ new Map();
|
|
6887
|
+
var NodeCanvasFactory2 = class extends NodeCanvasFactory {
|
|
6888
|
+
create(width, height) {
|
|
6889
|
+
const factory = this;
|
|
6890
|
+
const { canvas, context } = super.create(width, height);
|
|
6891
|
+
const drawImage = context.drawImage;
|
|
6892
|
+
let currentFilter = "none";
|
|
6893
|
+
Object.defineProperty(context, "filter", {
|
|
6894
|
+
get() {
|
|
6895
|
+
if (currentFilter.startsWith("url(")) {
|
|
6896
|
+
return "none";
|
|
6897
|
+
}
|
|
6898
|
+
return currentFilter;
|
|
6899
|
+
},
|
|
6900
|
+
set(value) {
|
|
6901
|
+
currentFilter = value;
|
|
6902
|
+
},
|
|
6903
|
+
configurable: true
|
|
6904
|
+
});
|
|
6905
|
+
context.drawImage = function(src, ...args) {
|
|
6906
|
+
const filter = filtersRegistry.get(currentFilter);
|
|
6907
|
+
if (!filter) {
|
|
6908
|
+
drawImage.call(this, src, ...args);
|
|
6909
|
+
return;
|
|
6910
|
+
}
|
|
6911
|
+
const { canvas: canvas2, context: context2 } = factory.create(src.width, src.height);
|
|
6912
|
+
context2.drawImage(src, 0, 0, src.width, src.height);
|
|
6913
|
+
filter(context2);
|
|
6914
|
+
drawImage.call(this, canvas2, ...args);
|
|
6915
|
+
factory.destroy({
|
|
6916
|
+
canvas: canvas2,
|
|
6917
|
+
context: context2
|
|
6918
|
+
});
|
|
6919
|
+
};
|
|
6920
|
+
return {
|
|
6921
|
+
canvas,
|
|
6922
|
+
context
|
|
6923
|
+
};
|
|
6924
|
+
}
|
|
6925
|
+
};
|
|
6926
|
+
var _NodeFilterFactory_instances, createTables_fn2;
|
|
6927
|
+
var NodeFilterFactory2 = class extends NodeFilterFactory {
|
|
6928
|
+
constructor() {
|
|
6929
|
+
super(...arguments);
|
|
6930
|
+
__privateAdd(this, _NodeFilterFactory_instances);
|
|
6931
|
+
}
|
|
6932
|
+
addAlphaFilter(map) {
|
|
6933
|
+
const [tableA] = __privateMethod(this, _NodeFilterFactory_instances, createTables_fn2).call(this, [map]);
|
|
6934
|
+
const url = `url(#alpha_${tableA.join("_")})`;
|
|
6935
|
+
if (!filtersRegistry.has(url)) {
|
|
6936
|
+
filtersRegistry.set(url, (ctx) => {
|
|
6937
|
+
const imageData = ctx.getImageData(
|
|
6938
|
+
0,
|
|
6939
|
+
0,
|
|
6940
|
+
ctx.canvas.width,
|
|
6941
|
+
ctx.canvas.height
|
|
6942
|
+
);
|
|
6943
|
+
const data = imageData.data;
|
|
6944
|
+
const tableSize = tableA.length;
|
|
6945
|
+
for (let i = 0; i < data.length; i += 4) {
|
|
6946
|
+
const alpha = data[i + 3] / 255;
|
|
6947
|
+
const index = alpha * (tableSize - 1);
|
|
6948
|
+
const lower = Math.floor(index);
|
|
6949
|
+
const upper = Math.min(lower + 1, tableSize - 1);
|
|
6950
|
+
const t = index - lower;
|
|
6951
|
+
const newAlpha = (1 - t) * tableA[lower] + t * tableA[upper];
|
|
6952
|
+
data[i + 3] = newAlpha * 255;
|
|
6953
|
+
}
|
|
6954
|
+
ctx.putImageData(imageData, 0, 0);
|
|
6955
|
+
});
|
|
6956
|
+
}
|
|
6957
|
+
return url;
|
|
6958
|
+
}
|
|
6959
|
+
addLuminosityFilter(map) {
|
|
6960
|
+
const url = `url(#luminosity${map ? `_${map.join("_")}` : ""})`;
|
|
6961
|
+
if (!filtersRegistry.has(url)) {
|
|
6962
|
+
const tables = map ? __privateMethod(this, _NodeFilterFactory_instances, createTables_fn2).call(this, [map]) : null;
|
|
6963
|
+
const tableA = tables ? tables[0] : null;
|
|
6964
|
+
const tableSize = tableA?.length;
|
|
6965
|
+
filtersRegistry.set(url, (ctx) => {
|
|
6966
|
+
const imageData = ctx.getImageData(
|
|
6967
|
+
0,
|
|
6968
|
+
0,
|
|
6969
|
+
ctx.canvas.width,
|
|
6970
|
+
ctx.canvas.height
|
|
6971
|
+
);
|
|
6972
|
+
const data = imageData.data;
|
|
6973
|
+
for (let i = 0; i < data.length; i += 4) {
|
|
6974
|
+
const r = data[i];
|
|
6975
|
+
const g = data[i + 1];
|
|
6976
|
+
const b = data[i + 2];
|
|
6977
|
+
data[i] = data[i + 1] = data[i + 2] = 0;
|
|
6978
|
+
data[i + 3] = r * 0.3 + g * 0.59 + b * 0.11;
|
|
6979
|
+
if (tableA && tableSize != null) {
|
|
6980
|
+
const alpha = data[i + 3] / 255;
|
|
6981
|
+
const index = alpha * (tableSize - 1);
|
|
6982
|
+
const lower = Math.floor(index);
|
|
6983
|
+
const upper = Math.min(lower + 1, tableSize - 1);
|
|
6984
|
+
const t = index - lower;
|
|
6985
|
+
const newAlpha = (1 - t) * tableA[lower] + t * tableA[upper];
|
|
6986
|
+
data[i + 3] = newAlpha * 255;
|
|
6987
|
+
}
|
|
6988
|
+
}
|
|
6989
|
+
ctx.putImageData(imageData, 0, 0);
|
|
6990
|
+
});
|
|
6991
|
+
}
|
|
6992
|
+
return url;
|
|
6993
|
+
}
|
|
6994
|
+
};
|
|
6995
|
+
_NodeFilterFactory_instances = new WeakSet();
|
|
6996
|
+
createTables_fn2 = function(maps) {
|
|
6997
|
+
if (maps.length === 1) {
|
|
6998
|
+
const mapR2 = maps[0];
|
|
6999
|
+
const buffer = new Array(256);
|
|
7000
|
+
for (let i = 0; i < 256; i++) {
|
|
7001
|
+
buffer[i] = mapR2[i] / 255;
|
|
7002
|
+
}
|
|
7003
|
+
return [buffer, buffer, buffer];
|
|
7004
|
+
}
|
|
7005
|
+
const [mapR, mapG, mapB] = maps;
|
|
7006
|
+
const bufferR = new Array(256);
|
|
7007
|
+
const bufferG = new Array(256);
|
|
7008
|
+
const bufferB = new Array(256);
|
|
7009
|
+
for (let i = 0; i < 256; i++) {
|
|
7010
|
+
bufferR[i] = mapR[i] / 255;
|
|
7011
|
+
bufferG[i] = mapG[i] / 255;
|
|
7012
|
+
bufferB[i] = mapB[i] / 255;
|
|
7013
|
+
}
|
|
7014
|
+
return [bufferR, bufferG, bufferB];
|
|
7015
|
+
};
|
|
7016
|
+
|
|
6715
7017
|
// src/pdf.js/src/display/pattern_helper.js
|
|
6716
7018
|
var PathType = {
|
|
6717
7019
|
FILL: "Fill",
|
|
@@ -7254,18 +7556,13 @@ var _TilingPattern = class _TilingPattern {
|
|
|
7254
7556
|
const context = graphics.ctx, current = graphics.current;
|
|
7255
7557
|
switch (paintType) {
|
|
7256
7558
|
case PaintType.COLORED:
|
|
7257
|
-
const
|
|
7258
|
-
context.fillStyle =
|
|
7259
|
-
context.strokeStyle =
|
|
7260
|
-
current.fillColor = ctx.fillStyle;
|
|
7261
|
-
current.strokeColor = ctx.strokeStyle;
|
|
7559
|
+
const { fillStyle, strokeStyle } = this.ctx;
|
|
7560
|
+
context.fillStyle = current.fillColor = fillStyle;
|
|
7561
|
+
context.strokeStyle = current.strokeColor = strokeStyle;
|
|
7262
7562
|
break;
|
|
7263
7563
|
case PaintType.UNCOLORED:
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
context.strokeStyle = cssColor;
|
|
7267
|
-
current.fillColor = cssColor;
|
|
7268
|
-
current.strokeColor = cssColor;
|
|
7564
|
+
context.fillStyle = context.strokeStyle = color;
|
|
7565
|
+
current.fillColor = current.strokeColor = color;
|
|
7269
7566
|
break;
|
|
7270
7567
|
default:
|
|
7271
7568
|
throw new FormatError(`Unsupported paint type: ${paintType}`);
|
|
@@ -8202,7 +8499,6 @@ var _CanvasGraphics = class _CanvasGraphics {
|
|
|
8202
8499
|
let maskX = layerOffsetX - maskOffsetX;
|
|
8203
8500
|
let maskY = layerOffsetY - maskOffsetY;
|
|
8204
8501
|
if (backdrop) {
|
|
8205
|
-
const backdropRGB = Util.makeHexColor(...backdrop);
|
|
8206
8502
|
if (maskX < 0 || maskY < 0 || maskX + width > maskCanvas.width || maskY + height > maskCanvas.height) {
|
|
8207
8503
|
const canvas = this.cachedCanvases.getCanvas(
|
|
8208
8504
|
"maskExtension",
|
|
@@ -8212,7 +8508,7 @@ var _CanvasGraphics = class _CanvasGraphics {
|
|
|
8212
8508
|
const ctx = canvas.context;
|
|
8213
8509
|
ctx.drawImage(maskCanvas, -maskX, -maskY);
|
|
8214
8510
|
ctx.globalCompositeOperation = "destination-atop";
|
|
8215
|
-
ctx.fillStyle =
|
|
8511
|
+
ctx.fillStyle = backdrop;
|
|
8216
8512
|
ctx.fillRect(0, 0, width, height);
|
|
8217
8513
|
ctx.globalCompositeOperation = "source-over";
|
|
8218
8514
|
maskCanvas = canvas.canvas;
|
|
@@ -8225,7 +8521,7 @@ var _CanvasGraphics = class _CanvasGraphics {
|
|
|
8225
8521
|
clip2.rect(maskX, maskY, width, height);
|
|
8226
8522
|
maskCtx.clip(clip2);
|
|
8227
8523
|
maskCtx.globalCompositeOperation = "destination-atop";
|
|
8228
|
-
maskCtx.fillStyle =
|
|
8524
|
+
maskCtx.fillStyle = backdrop;
|
|
8229
8525
|
maskCtx.fillRect(maskX, maskY, width, height);
|
|
8230
8526
|
maskCtx.restore();
|
|
8231
8527
|
}
|
|
@@ -8904,20 +9200,16 @@ var _CanvasGraphics = class _CanvasGraphics {
|
|
|
8904
9200
|
this.current.fillColor = this.getColorN_Pattern(arguments);
|
|
8905
9201
|
this.current.patternFill = true;
|
|
8906
9202
|
}
|
|
8907
|
-
setStrokeRGBColor(
|
|
8908
|
-
this.ctx.strokeStyle = this.current.strokeColor =
|
|
8909
|
-
r,
|
|
8910
|
-
g,
|
|
8911
|
-
b
|
|
8912
|
-
);
|
|
9203
|
+
setStrokeRGBColor(color) {
|
|
9204
|
+
this.ctx.strokeStyle = this.current.strokeColor = color;
|
|
8913
9205
|
this.current.patternStroke = false;
|
|
8914
9206
|
}
|
|
8915
9207
|
setStrokeTransparent() {
|
|
8916
9208
|
this.ctx.strokeStyle = this.current.strokeColor = "transparent";
|
|
8917
9209
|
this.current.patternStroke = false;
|
|
8918
9210
|
}
|
|
8919
|
-
setFillRGBColor(
|
|
8920
|
-
this.ctx.fillStyle = this.current.fillColor =
|
|
9211
|
+
setFillRGBColor(color) {
|
|
9212
|
+
this.ctx.fillStyle = this.current.fillColor = color;
|
|
8921
9213
|
this.current.patternFill = false;
|
|
8922
9214
|
}
|
|
8923
9215
|
setFillTransparent() {
|
|
@@ -9667,28 +9959,25 @@ __privateAdd(GlobalWorkerOptions, _port, null);
|
|
|
9667
9959
|
__privateAdd(GlobalWorkerOptions, _src, "");
|
|
9668
9960
|
|
|
9669
9961
|
// src/pdf.js/src/display/metadata.js
|
|
9670
|
-
var
|
|
9962
|
+
var _map, _data;
|
|
9671
9963
|
var Metadata = class {
|
|
9672
9964
|
constructor({ parsedData, rawData }) {
|
|
9673
|
-
__privateAdd(this,
|
|
9965
|
+
__privateAdd(this, _map);
|
|
9674
9966
|
__privateAdd(this, _data);
|
|
9675
|
-
__privateSet(this,
|
|
9967
|
+
__privateSet(this, _map, parsedData);
|
|
9676
9968
|
__privateSet(this, _data, rawData);
|
|
9677
9969
|
}
|
|
9678
9970
|
getRaw() {
|
|
9679
9971
|
return __privateGet(this, _data);
|
|
9680
9972
|
}
|
|
9681
9973
|
get(name) {
|
|
9682
|
-
return __privateGet(this,
|
|
9683
|
-
}
|
|
9684
|
-
getAll() {
|
|
9685
|
-
return objectFromMap(__privateGet(this, _metadataMap));
|
|
9974
|
+
return __privateGet(this, _map).get(name) ?? null;
|
|
9686
9975
|
}
|
|
9687
|
-
|
|
9688
|
-
return __privateGet(this,
|
|
9976
|
+
[Symbol.iterator]() {
|
|
9977
|
+
return __privateGet(this, _map).entries();
|
|
9689
9978
|
}
|
|
9690
9979
|
};
|
|
9691
|
-
|
|
9980
|
+
_map = new WeakMap();
|
|
9692
9981
|
_data = new WeakMap();
|
|
9693
9982
|
|
|
9694
9983
|
// src/pdf.js/src/display/optional_content_config.js
|
|
@@ -9908,9 +10197,6 @@ var OptionalContentConfig = class {
|
|
|
9908
10197
|
}
|
|
9909
10198
|
return [...__privateGet(this, _groups).keys()];
|
|
9910
10199
|
}
|
|
9911
|
-
getGroups() {
|
|
9912
|
-
return __privateGet(this, _groups).size > 0 ? objectFromMap(__privateGet(this, _groups)) : null;
|
|
9913
|
-
}
|
|
9914
10200
|
getGroup(id) {
|
|
9915
10201
|
return __privateGet(this, _groups).get(id) || null;
|
|
9916
10202
|
}
|
|
@@ -9924,6 +10210,9 @@ var OptionalContentConfig = class {
|
|
|
9924
10210
|
}
|
|
9925
10211
|
return __privateSet(this, _cachedGetHash, hash.hexdigest());
|
|
9926
10212
|
}
|
|
10213
|
+
[Symbol.iterator]() {
|
|
10214
|
+
return __privateGet(this, _groups).entries();
|
|
10215
|
+
}
|
|
9927
10216
|
};
|
|
9928
10217
|
_cachedGetHash = new WeakMap();
|
|
9929
10218
|
_groups = new WeakMap();
|
|
@@ -11224,6 +11513,102 @@ var PDFNodeStreamFsRangeReader = class {
|
|
|
11224
11513
|
}
|
|
11225
11514
|
};
|
|
11226
11515
|
|
|
11516
|
+
// src/pdf.js/src/display/pdf_objects.js
|
|
11517
|
+
var INITIAL_DATA = Symbol("INITIAL_DATA");
|
|
11518
|
+
var _objs, _PDFObjects_instances, ensureObj_fn;
|
|
11519
|
+
var PDFObjects = class {
|
|
11520
|
+
constructor() {
|
|
11521
|
+
__privateAdd(this, _PDFObjects_instances);
|
|
11522
|
+
__privateAdd(this, _objs, /* @__PURE__ */ Object.create(null));
|
|
11523
|
+
}
|
|
11524
|
+
/**
|
|
11525
|
+
* If called *without* callback, this returns the data of `objId` but the
|
|
11526
|
+
* object needs to be resolved. If it isn't, this method throws.
|
|
11527
|
+
*
|
|
11528
|
+
* If called *with* a callback, the callback is called with the data of the
|
|
11529
|
+
* object once the object is resolved. That means, if you call this method
|
|
11530
|
+
* and the object is already resolved, the callback gets called right away.
|
|
11531
|
+
*
|
|
11532
|
+
* @param {string} objId
|
|
11533
|
+
* @param {function} [callback]
|
|
11534
|
+
* @returns {any}
|
|
11535
|
+
*/
|
|
11536
|
+
get(objId, callback = null) {
|
|
11537
|
+
if (callback) {
|
|
11538
|
+
const obj2 = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
|
|
11539
|
+
obj2.promise.then(() => callback(obj2.data));
|
|
11540
|
+
return null;
|
|
11541
|
+
}
|
|
11542
|
+
const obj = __privateGet(this, _objs)[objId];
|
|
11543
|
+
if (!obj || obj.data === INITIAL_DATA) {
|
|
11544
|
+
throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
|
|
11545
|
+
}
|
|
11546
|
+
return obj.data;
|
|
11547
|
+
}
|
|
11548
|
+
/**
|
|
11549
|
+
* @param {string} objId
|
|
11550
|
+
* @returns {boolean}
|
|
11551
|
+
*/
|
|
11552
|
+
has(objId) {
|
|
11553
|
+
const obj = __privateGet(this, _objs)[objId];
|
|
11554
|
+
return !!obj && obj.data !== INITIAL_DATA;
|
|
11555
|
+
}
|
|
11556
|
+
/**
|
|
11557
|
+
* @param {string} objId
|
|
11558
|
+
* @returns {boolean}
|
|
11559
|
+
*/
|
|
11560
|
+
delete(objId) {
|
|
11561
|
+
const obj = __privateGet(this, _objs)[objId];
|
|
11562
|
+
if (!obj || obj.data === INITIAL_DATA) {
|
|
11563
|
+
return false;
|
|
11564
|
+
}
|
|
11565
|
+
delete __privateGet(this, _objs)[objId];
|
|
11566
|
+
return true;
|
|
11567
|
+
}
|
|
11568
|
+
/**
|
|
11569
|
+
* Resolves the object `objId` with optional `data`.
|
|
11570
|
+
*
|
|
11571
|
+
* @param {string} objId
|
|
11572
|
+
* @param {any} [data]
|
|
11573
|
+
*/
|
|
11574
|
+
resolve(objId, data = null) {
|
|
11575
|
+
const obj = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
|
|
11576
|
+
obj.data = data;
|
|
11577
|
+
obj.resolve();
|
|
11578
|
+
}
|
|
11579
|
+
clear() {
|
|
11580
|
+
for (const objId in __privateGet(this, _objs)) {
|
|
11581
|
+
const { data } = __privateGet(this, _objs)[objId];
|
|
11582
|
+
data?.bitmap?.close();
|
|
11583
|
+
}
|
|
11584
|
+
__privateSet(this, _objs, /* @__PURE__ */ Object.create(null));
|
|
11585
|
+
}
|
|
11586
|
+
*[Symbol.iterator]() {
|
|
11587
|
+
for (const objId in __privateGet(this, _objs)) {
|
|
11588
|
+
const { data } = __privateGet(this, _objs)[objId];
|
|
11589
|
+
if (data === INITIAL_DATA) {
|
|
11590
|
+
continue;
|
|
11591
|
+
}
|
|
11592
|
+
yield [objId, data];
|
|
11593
|
+
}
|
|
11594
|
+
}
|
|
11595
|
+
};
|
|
11596
|
+
_objs = new WeakMap();
|
|
11597
|
+
_PDFObjects_instances = new WeakSet();
|
|
11598
|
+
/**
|
|
11599
|
+
* Ensures there is an object defined for `objId`.
|
|
11600
|
+
*
|
|
11601
|
+
* @param {string} objId
|
|
11602
|
+
* @returns {Object}
|
|
11603
|
+
*/
|
|
11604
|
+
ensureObj_fn = function(objId) {
|
|
11605
|
+
var _a2;
|
|
11606
|
+
return (_a2 = __privateGet(this, _objs))[objId] || (_a2[objId] = {
|
|
11607
|
+
...Promise.withResolvers(),
|
|
11608
|
+
data: INITIAL_DATA
|
|
11609
|
+
});
|
|
11610
|
+
};
|
|
11611
|
+
|
|
11227
11612
|
// src/pdf.js/src/display/text_layer.js
|
|
11228
11613
|
var MAX_TEXT_DIVS_TO_RENDER = 1e5;
|
|
11229
11614
|
var DEFAULT_FONT_SIZE = 30;
|
|
@@ -11699,7 +12084,6 @@ var XfaText = class _XfaText {
|
|
|
11699
12084
|
};
|
|
11700
12085
|
|
|
11701
12086
|
// src/pdf.js/src/display/api.js
|
|
11702
|
-
var DEFAULT_RANGE_CHUNK_SIZE = 65536;
|
|
11703
12087
|
var RENDERING_CANCELLED_TIMEOUT = 100;
|
|
11704
12088
|
function getDocument(src = {}) {
|
|
11705
12089
|
if (true) {
|
|
@@ -11717,7 +12101,7 @@ function getDocument(src = {}) {
|
|
|
11717
12101
|
const withCredentials = src.withCredentials === true;
|
|
11718
12102
|
const password = src.password ?? null;
|
|
11719
12103
|
const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;
|
|
11720
|
-
const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize :
|
|
12104
|
+
const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : 2 ** 16;
|
|
11721
12105
|
let worker = src.worker instanceof PDFWorker ? src.worker : null;
|
|
11722
12106
|
const verbosity = src.verbosity;
|
|
11723
12107
|
const docBaseUrl = typeof src.docBaseUrl === "string" && !isDataScheme(src.docBaseUrl) ? src.docBaseUrl : null;
|
|
@@ -11749,8 +12133,8 @@ function getDocument(src = {}) {
|
|
|
11749
12133
|
const disableStream = src.disableStream === true;
|
|
11750
12134
|
const disableAutoFetch = src.disableAutoFetch === true;
|
|
11751
12135
|
const pdfBug = src.pdfBug === true;
|
|
11752
|
-
const CanvasFactory = src.CanvasFactory || (isNodeJS ?
|
|
11753
|
-
const FilterFactory = src.FilterFactory || (isNodeJS ?
|
|
12136
|
+
const CanvasFactory = src.CanvasFactory || (isNodeJS ? NodeCanvasFactory2 : DOMCanvasFactory);
|
|
12137
|
+
const FilterFactory = src.FilterFactory || (isNodeJS ? NodeFilterFactory2 : DOMFilterFactory);
|
|
11754
12138
|
const enableHWA = src.enableHWA === true;
|
|
11755
12139
|
const useWasm = src.useWasm !== false;
|
|
11756
12140
|
const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;
|
|
@@ -11766,11 +12150,10 @@ function getDocument(src = {}) {
|
|
|
11766
12150
|
wasmFactory: useWorkerFetch ? null : new WasmFactory2({ baseUrl: wasmUrl })
|
|
11767
12151
|
};
|
|
11768
12152
|
if (!worker) {
|
|
11769
|
-
|
|
12153
|
+
worker = PDFWorker.create({
|
|
11770
12154
|
verbosity,
|
|
11771
12155
|
port: GlobalWorkerOptions.workerPort
|
|
11772
|
-
};
|
|
11773
|
-
worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
|
|
12156
|
+
});
|
|
11774
12157
|
task._worker = worker;
|
|
11775
12158
|
}
|
|
11776
12159
|
const docParams = {
|
|
@@ -11835,21 +12218,7 @@ function getDocument(src = {}) {
|
|
|
11835
12218
|
if (!url) {
|
|
11836
12219
|
throw new Error("getDocument - no `url` parameter provided.");
|
|
11837
12220
|
}
|
|
11838
|
-
|
|
11839
|
-
if (isNodeJS) {
|
|
11840
|
-
if (isValidFetchUrl(url)) {
|
|
11841
|
-
if (typeof fetch === "undefined" || typeof Response === "undefined" || !("body" in Response.prototype)) {
|
|
11842
|
-
throw new Error(
|
|
11843
|
-
"getDocument - the Fetch API was disabled in Node.js, see `--no-experimental-fetch`."
|
|
11844
|
-
);
|
|
11845
|
-
}
|
|
11846
|
-
NetworkStream = PDFFetchStream;
|
|
11847
|
-
} else {
|
|
11848
|
-
NetworkStream = PDFNodeStream;
|
|
11849
|
-
}
|
|
11850
|
-
} else {
|
|
11851
|
-
NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : PDFNetworkStream;
|
|
11852
|
-
}
|
|
12221
|
+
const NetworkStream = isValidFetchUrl(url) ? PDFFetchStream : isNodeJS ? PDFNodeStream : PDFNetworkStream;
|
|
11853
12222
|
networkStream = new NetworkStream({
|
|
11854
12223
|
url,
|
|
11855
12224
|
length,
|
|
@@ -11881,64 +12250,6 @@ function getDocument(src = {}) {
|
|
|
11881
12250
|
}).catch(task._capability.reject);
|
|
11882
12251
|
return task;
|
|
11883
12252
|
}
|
|
11884
|
-
function getUrlProp(val) {
|
|
11885
|
-
if (false) {
|
|
11886
|
-
return null;
|
|
11887
|
-
}
|
|
11888
|
-
if (val instanceof URL) {
|
|
11889
|
-
return val.href;
|
|
11890
|
-
}
|
|
11891
|
-
if (typeof val === "string") {
|
|
11892
|
-
if (isNodeJS) {
|
|
11893
|
-
return val;
|
|
11894
|
-
}
|
|
11895
|
-
const url = URL.parse(val, window.location);
|
|
11896
|
-
if (url) {
|
|
11897
|
-
return url.href;
|
|
11898
|
-
}
|
|
11899
|
-
}
|
|
11900
|
-
throw new Error(
|
|
11901
|
-
"Invalid PDF url data: either string or URL-object is expected in the url property."
|
|
11902
|
-
);
|
|
11903
|
-
}
|
|
11904
|
-
function getDataProp(val) {
|
|
11905
|
-
if (isNodeJS && typeof Buffer !== "undefined" && // eslint-disable-line no-undef
|
|
11906
|
-
val instanceof Buffer) {
|
|
11907
|
-
throw new Error(
|
|
11908
|
-
"Please provide binary data as `Uint8Array`, rather than `Buffer`."
|
|
11909
|
-
);
|
|
11910
|
-
}
|
|
11911
|
-
if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {
|
|
11912
|
-
return val;
|
|
11913
|
-
}
|
|
11914
|
-
if (typeof val === "string") {
|
|
11915
|
-
return stringToBytes(val);
|
|
11916
|
-
}
|
|
11917
|
-
if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === "object" && !isNaN(val?.length)) {
|
|
11918
|
-
return new Uint8Array(val);
|
|
11919
|
-
}
|
|
11920
|
-
throw new Error(
|
|
11921
|
-
"Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property."
|
|
11922
|
-
);
|
|
11923
|
-
}
|
|
11924
|
-
function getFactoryUrlProp(val) {
|
|
11925
|
-
if (typeof val !== "string") {
|
|
11926
|
-
return null;
|
|
11927
|
-
}
|
|
11928
|
-
if (val.endsWith("/")) {
|
|
11929
|
-
return val;
|
|
11930
|
-
}
|
|
11931
|
-
throw new Error(`Invalid factory url: "${val}" must include trailing slash.`);
|
|
11932
|
-
}
|
|
11933
|
-
var isRefProxy = (v) => typeof v === "object" && Number.isInteger(v?.num) && v.num >= 0 && Number.isInteger(v?.gen) && v.gen >= 0;
|
|
11934
|
-
var isNameProxy = (v) => typeof v === "object" && typeof v?.name === "string";
|
|
11935
|
-
var isValidExplicitDest = _isValidExplicitDest.bind(
|
|
11936
|
-
null,
|
|
11937
|
-
/* validRef = */
|
|
11938
|
-
isRefProxy,
|
|
11939
|
-
/* validName = */
|
|
11940
|
-
isNameProxy
|
|
11941
|
-
);
|
|
11942
12253
|
var _docId2;
|
|
11943
12254
|
var _PDFDocumentLoadingTask = class _PDFDocumentLoadingTask {
|
|
11944
12255
|
constructor() {
|
|
@@ -11993,20 +12304,16 @@ var _PDFDocumentLoadingTask = class _PDFDocumentLoadingTask {
|
|
|
11993
12304
|
*/
|
|
11994
12305
|
async destroy() {
|
|
11995
12306
|
this.destroyed = true;
|
|
11996
|
-
|
|
12307
|
+
try {
|
|
12308
|
+
if (this._worker?.port) {
|
|
12309
|
+
this._worker._pendingDestroy = true;
|
|
12310
|
+
}
|
|
11997
12311
|
await this._transport?.destroy();
|
|
11998
|
-
}
|
|
11999
|
-
|
|
12000
|
-
|
|
12001
|
-
this._worker._pendingDestroy = true;
|
|
12002
|
-
}
|
|
12003
|
-
await this._transport?.destroy();
|
|
12004
|
-
} catch (ex) {
|
|
12005
|
-
if (this._worker?.port) {
|
|
12006
|
-
delete this._worker._pendingDestroy;
|
|
12007
|
-
}
|
|
12008
|
-
throw ex;
|
|
12312
|
+
} catch (ex) {
|
|
12313
|
+
if (this._worker?.port) {
|
|
12314
|
+
delete this._worker._pendingDestroy;
|
|
12009
12315
|
}
|
|
12316
|
+
throw ex;
|
|
12010
12317
|
}
|
|
12011
12318
|
this._transport = null;
|
|
12012
12319
|
this._worker?.destroy();
|
|
@@ -12025,6 +12332,7 @@ var _PDFDocumentLoadingTask = class _PDFDocumentLoadingTask {
|
|
|
12025
12332
|
_docId2 = new WeakMap();
|
|
12026
12333
|
__privateAdd(_PDFDocumentLoadingTask, _docId2, 0);
|
|
12027
12334
|
var PDFDocumentLoadingTask = _PDFDocumentLoadingTask;
|
|
12335
|
+
var _capability2, _progressiveDoneListeners, _progressiveReadListeners, _progressListeners, _rangeListeners;
|
|
12028
12336
|
var PDFDataRangeTransport = class {
|
|
12029
12337
|
/**
|
|
12030
12338
|
* @param {number} length
|
|
@@ -12033,46 +12341,46 @@ var PDFDataRangeTransport = class {
|
|
|
12033
12341
|
* @param {string} [contentDispositionFilename]
|
|
12034
12342
|
*/
|
|
12035
12343
|
constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {
|
|
12344
|
+
__privateAdd(this, _capability2, Promise.withResolvers());
|
|
12345
|
+
__privateAdd(this, _progressiveDoneListeners, []);
|
|
12346
|
+
__privateAdd(this, _progressiveReadListeners, []);
|
|
12347
|
+
__privateAdd(this, _progressListeners, []);
|
|
12348
|
+
__privateAdd(this, _rangeListeners, []);
|
|
12036
12349
|
this.length = length;
|
|
12037
12350
|
this.initialData = initialData;
|
|
12038
12351
|
this.progressiveDone = progressiveDone;
|
|
12039
12352
|
this.contentDispositionFilename = contentDispositionFilename;
|
|
12040
|
-
this._rangeListeners = [];
|
|
12041
|
-
this._progressListeners = [];
|
|
12042
|
-
this._progressiveReadListeners = [];
|
|
12043
|
-
this._progressiveDoneListeners = [];
|
|
12044
|
-
this._readyCapability = Promise.withResolvers();
|
|
12045
12353
|
}
|
|
12046
12354
|
/**
|
|
12047
12355
|
* @param {function} listener
|
|
12048
12356
|
*/
|
|
12049
12357
|
addRangeListener(listener) {
|
|
12050
|
-
this
|
|
12358
|
+
__privateGet(this, _rangeListeners).push(listener);
|
|
12051
12359
|
}
|
|
12052
12360
|
/**
|
|
12053
12361
|
* @param {function} listener
|
|
12054
12362
|
*/
|
|
12055
12363
|
addProgressListener(listener) {
|
|
12056
|
-
this
|
|
12364
|
+
__privateGet(this, _progressListeners).push(listener);
|
|
12057
12365
|
}
|
|
12058
12366
|
/**
|
|
12059
12367
|
* @param {function} listener
|
|
12060
12368
|
*/
|
|
12061
12369
|
addProgressiveReadListener(listener) {
|
|
12062
|
-
this
|
|
12370
|
+
__privateGet(this, _progressiveReadListeners).push(listener);
|
|
12063
12371
|
}
|
|
12064
12372
|
/**
|
|
12065
12373
|
* @param {function} listener
|
|
12066
12374
|
*/
|
|
12067
12375
|
addProgressiveDoneListener(listener) {
|
|
12068
|
-
this
|
|
12376
|
+
__privateGet(this, _progressiveDoneListeners).push(listener);
|
|
12069
12377
|
}
|
|
12070
12378
|
/**
|
|
12071
12379
|
* @param {number} begin
|
|
12072
12380
|
* @param {Uint8Array|null} chunk
|
|
12073
12381
|
*/
|
|
12074
12382
|
onDataRange(begin, chunk) {
|
|
12075
|
-
for (const listener of this
|
|
12383
|
+
for (const listener of __privateGet(this, _rangeListeners)) {
|
|
12076
12384
|
listener(begin, chunk);
|
|
12077
12385
|
}
|
|
12078
12386
|
}
|
|
@@ -12081,8 +12389,8 @@ var PDFDataRangeTransport = class {
|
|
|
12081
12389
|
* @param {number|undefined} total
|
|
12082
12390
|
*/
|
|
12083
12391
|
onDataProgress(loaded, total) {
|
|
12084
|
-
this.
|
|
12085
|
-
for (const listener of this
|
|
12392
|
+
__privateGet(this, _capability2).promise.then(() => {
|
|
12393
|
+
for (const listener of __privateGet(this, _progressListeners)) {
|
|
12086
12394
|
listener(loaded, total);
|
|
12087
12395
|
}
|
|
12088
12396
|
});
|
|
@@ -12091,21 +12399,21 @@ var PDFDataRangeTransport = class {
|
|
|
12091
12399
|
* @param {Uint8Array|null} chunk
|
|
12092
12400
|
*/
|
|
12093
12401
|
onDataProgressiveRead(chunk) {
|
|
12094
|
-
this.
|
|
12095
|
-
for (const listener of this
|
|
12402
|
+
__privateGet(this, _capability2).promise.then(() => {
|
|
12403
|
+
for (const listener of __privateGet(this, _progressiveReadListeners)) {
|
|
12096
12404
|
listener(chunk);
|
|
12097
12405
|
}
|
|
12098
12406
|
});
|
|
12099
12407
|
}
|
|
12100
12408
|
onDataProgressiveDone() {
|
|
12101
|
-
this.
|
|
12102
|
-
for (const listener of this
|
|
12409
|
+
__privateGet(this, _capability2).promise.then(() => {
|
|
12410
|
+
for (const listener of __privateGet(this, _progressiveDoneListeners)) {
|
|
12103
12411
|
listener();
|
|
12104
12412
|
}
|
|
12105
12413
|
});
|
|
12106
12414
|
}
|
|
12107
12415
|
transportReady() {
|
|
12108
|
-
this.
|
|
12416
|
+
__privateGet(this, _capability2).resolve();
|
|
12109
12417
|
}
|
|
12110
12418
|
/**
|
|
12111
12419
|
* @param {number} begin
|
|
@@ -12117,6 +12425,11 @@ var PDFDataRangeTransport = class {
|
|
|
12117
12425
|
abort() {
|
|
12118
12426
|
}
|
|
12119
12427
|
};
|
|
12428
|
+
_capability2 = new WeakMap();
|
|
12429
|
+
_progressiveDoneListeners = new WeakMap();
|
|
12430
|
+
_progressiveReadListeners = new WeakMap();
|
|
12431
|
+
_progressListeners = new WeakMap();
|
|
12432
|
+
_rangeListeners = new WeakMap();
|
|
12120
12433
|
var PDFDocumentProxy = class {
|
|
12121
12434
|
constructor(pdfInfo, transport) {
|
|
12122
12435
|
this._pdfInfo = pdfInfo;
|
|
@@ -12992,51 +13305,7 @@ tryCleanup_fn = function() {
|
|
|
12992
13305
|
__privateSet(this, _pendingCleanup, false);
|
|
12993
13306
|
return true;
|
|
12994
13307
|
};
|
|
12995
|
-
var
|
|
12996
|
-
var LoopbackPort = class {
|
|
12997
|
-
constructor() {
|
|
12998
|
-
__privateAdd(this, _listeners, /* @__PURE__ */ new Map());
|
|
12999
|
-
__privateAdd(this, _deferred, Promise.resolve());
|
|
13000
|
-
}
|
|
13001
|
-
postMessage(obj, transfer) {
|
|
13002
|
-
const event = {
|
|
13003
|
-
data: structuredClone(obj, transfer ? { transfer } : null)
|
|
13004
|
-
};
|
|
13005
|
-
__privateGet(this, _deferred).then(() => {
|
|
13006
|
-
for (const [listener] of __privateGet(this, _listeners)) {
|
|
13007
|
-
listener.call(this, event);
|
|
13008
|
-
}
|
|
13009
|
-
});
|
|
13010
|
-
}
|
|
13011
|
-
addEventListener(name, listener, options = null) {
|
|
13012
|
-
let rmAbort = null;
|
|
13013
|
-
if (options?.signal instanceof AbortSignal) {
|
|
13014
|
-
const { signal } = options;
|
|
13015
|
-
if (signal.aborted) {
|
|
13016
|
-
warn("LoopbackPort - cannot use an `aborted` signal.");
|
|
13017
|
-
return;
|
|
13018
|
-
}
|
|
13019
|
-
const onAbort = () => this.removeEventListener(name, listener);
|
|
13020
|
-
rmAbort = () => signal.removeEventListener("abort", onAbort);
|
|
13021
|
-
signal.addEventListener("abort", onAbort);
|
|
13022
|
-
}
|
|
13023
|
-
__privateGet(this, _listeners).set(listener, rmAbort);
|
|
13024
|
-
}
|
|
13025
|
-
removeEventListener(name, listener) {
|
|
13026
|
-
const rmAbort = __privateGet(this, _listeners).get(listener);
|
|
13027
|
-
rmAbort?.();
|
|
13028
|
-
__privateGet(this, _listeners).delete(listener);
|
|
13029
|
-
}
|
|
13030
|
-
terminate() {
|
|
13031
|
-
for (const [, rmAbort] of __privateGet(this, _listeners)) {
|
|
13032
|
-
rmAbort?.();
|
|
13033
|
-
}
|
|
13034
|
-
__privateGet(this, _listeners).clear();
|
|
13035
|
-
}
|
|
13036
|
-
};
|
|
13037
|
-
_listeners = new WeakMap();
|
|
13038
|
-
_deferred = new WeakMap();
|
|
13039
|
-
var _a, _fakeWorkerId, _isWorkerDisabled, _workerPorts, _PDFWorker_instances, resolve_fn, _PDFWorker_static, mainThreadWorkerMessageHandler_get;
|
|
13308
|
+
var _a, _capability3, _messageHandler, _port2, _webWorker, _fakeWorkerId, _isWorkerDisabled, _workerPorts, _PDFWorker_instances, resolve_fn, initializeFromPort_fn, initialize_fn, setupFakeWorker_fn, _PDFWorker_static, mainThreadWorkerMessageHandler_get;
|
|
13040
13309
|
var _PDFWorker = class _PDFWorker {
|
|
13041
13310
|
constructor({
|
|
13042
13311
|
name = null,
|
|
@@ -13044,173 +13313,73 @@ var _PDFWorker = class _PDFWorker {
|
|
|
13044
13313
|
verbosity = getVerbosityLevel()
|
|
13045
13314
|
} = {}) {
|
|
13046
13315
|
__privateAdd(this, _PDFWorker_instances);
|
|
13316
|
+
__privateAdd(this, _capability3, Promise.withResolvers());
|
|
13317
|
+
__privateAdd(this, _messageHandler, null);
|
|
13318
|
+
__privateAdd(this, _port2, null);
|
|
13319
|
+
__privateAdd(this, _webWorker, null);
|
|
13047
13320
|
this.name = name;
|
|
13048
13321
|
this.destroyed = false;
|
|
13049
13322
|
this.verbosity = verbosity;
|
|
13050
|
-
this._readyCapability = Promise.withResolvers();
|
|
13051
|
-
this._port = null;
|
|
13052
|
-
this._webWorker = null;
|
|
13053
|
-
this._messageHandler = null;
|
|
13054
13323
|
if (port) {
|
|
13055
|
-
if (__privateGet(_PDFWorker, _workerPorts)
|
|
13324
|
+
if (__privateGet(_PDFWorker, _workerPorts).has(port)) {
|
|
13056
13325
|
throw new Error("Cannot use more than one PDFWorker per port.");
|
|
13057
13326
|
}
|
|
13058
|
-
|
|
13059
|
-
this.
|
|
13060
|
-
|
|
13327
|
+
__privateGet(_PDFWorker, _workerPorts).set(port, this);
|
|
13328
|
+
__privateMethod(this, _PDFWorker_instances, initializeFromPort_fn).call(this, port);
|
|
13329
|
+
} else {
|
|
13330
|
+
__privateMethod(this, _PDFWorker_instances, initialize_fn).call(this);
|
|
13331
|
+
}
|
|
13332
|
+
if (false) {
|
|
13333
|
+
Object.defineProperty(this, "_webWorker", {
|
|
13334
|
+
get() {
|
|
13335
|
+
return __privateGet(this, _webWorker);
|
|
13336
|
+
}
|
|
13337
|
+
});
|
|
13061
13338
|
}
|
|
13062
|
-
this._initialize();
|
|
13063
13339
|
}
|
|
13064
13340
|
/**
|
|
13065
13341
|
* Promise for worker initialization completion.
|
|
13066
13342
|
* @type {Promise<void>}
|
|
13067
13343
|
*/
|
|
13068
13344
|
get promise() {
|
|
13069
|
-
return this.
|
|
13345
|
+
return __privateGet(this, _capability3).promise;
|
|
13070
13346
|
}
|
|
13071
13347
|
/**
|
|
13072
13348
|
* The current `workerPort`, when it exists.
|
|
13073
13349
|
* @type {Worker}
|
|
13074
|
-
*/
|
|
13075
|
-
get port() {
|
|
13076
|
-
return this
|
|
13077
|
-
}
|
|
13078
|
-
/**
|
|
13079
|
-
* The current MessageHandler-instance.
|
|
13080
|
-
* @type {MessageHandler}
|
|
13081
|
-
*/
|
|
13082
|
-
get messageHandler() {
|
|
13083
|
-
return this._messageHandler;
|
|
13084
|
-
}
|
|
13085
|
-
_initializeFromPort(port) {
|
|
13086
|
-
if (false) {
|
|
13087
|
-
throw new Error("Not implemented: _initializeFromPort");
|
|
13088
|
-
}
|
|
13089
|
-
this._port = port;
|
|
13090
|
-
this._messageHandler = new MessageHandler("main", "worker", port);
|
|
13091
|
-
this._messageHandler.on("ready", function() {
|
|
13092
|
-
});
|
|
13093
|
-
__privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
|
|
13094
|
-
}
|
|
13095
|
-
_initialize() {
|
|
13096
|
-
if (__privateGet(_PDFWorker, _isWorkerDisabled) || __privateGet(_PDFWorker, _PDFWorker_static, mainThreadWorkerMessageHandler_get)) {
|
|
13097
|
-
this._setupFakeWorker();
|
|
13098
|
-
return;
|
|
13099
|
-
}
|
|
13100
|
-
let { workerSrc } = _PDFWorker;
|
|
13101
|
-
try {
|
|
13102
|
-
if (!_PDFWorker._isSameOrigin(window.location, workerSrc)) {
|
|
13103
|
-
workerSrc = _PDFWorker._createCDNWrapper(
|
|
13104
|
-
new URL(workerSrc, window.location).href
|
|
13105
|
-
);
|
|
13106
|
-
}
|
|
13107
|
-
const worker = new Worker(workerSrc, { type: "module" });
|
|
13108
|
-
const messageHandler = new MessageHandler("main", "worker", worker);
|
|
13109
|
-
const terminateEarly = () => {
|
|
13110
|
-
ac.abort();
|
|
13111
|
-
messageHandler.destroy();
|
|
13112
|
-
worker.terminate();
|
|
13113
|
-
if (this.destroyed) {
|
|
13114
|
-
this._readyCapability.reject(new Error("Worker was destroyed"));
|
|
13115
|
-
} else {
|
|
13116
|
-
this._setupFakeWorker();
|
|
13117
|
-
}
|
|
13118
|
-
};
|
|
13119
|
-
const ac = new AbortController();
|
|
13120
|
-
worker.addEventListener(
|
|
13121
|
-
"error",
|
|
13122
|
-
() => {
|
|
13123
|
-
if (!this._webWorker) {
|
|
13124
|
-
terminateEarly();
|
|
13125
|
-
}
|
|
13126
|
-
},
|
|
13127
|
-
{ signal: ac.signal }
|
|
13128
|
-
);
|
|
13129
|
-
messageHandler.on("test", (data) => {
|
|
13130
|
-
ac.abort();
|
|
13131
|
-
if (this.destroyed || !data) {
|
|
13132
|
-
terminateEarly();
|
|
13133
|
-
return;
|
|
13134
|
-
}
|
|
13135
|
-
this._messageHandler = messageHandler;
|
|
13136
|
-
this._port = worker;
|
|
13137
|
-
this._webWorker = worker;
|
|
13138
|
-
__privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
|
|
13139
|
-
});
|
|
13140
|
-
messageHandler.on("ready", (data) => {
|
|
13141
|
-
ac.abort();
|
|
13142
|
-
if (this.destroyed) {
|
|
13143
|
-
terminateEarly();
|
|
13144
|
-
return;
|
|
13145
|
-
}
|
|
13146
|
-
try {
|
|
13147
|
-
sendTest();
|
|
13148
|
-
} catch {
|
|
13149
|
-
this._setupFakeWorker();
|
|
13150
|
-
}
|
|
13151
|
-
});
|
|
13152
|
-
const sendTest = () => {
|
|
13153
|
-
const testObj = new Uint8Array();
|
|
13154
|
-
messageHandler.send("test", testObj, [testObj.buffer]);
|
|
13155
|
-
};
|
|
13156
|
-
sendTest();
|
|
13157
|
-
return;
|
|
13158
|
-
} catch {
|
|
13159
|
-
info("The worker has been disabled.");
|
|
13160
|
-
}
|
|
13161
|
-
this._setupFakeWorker();
|
|
13350
|
+
*/
|
|
13351
|
+
get port() {
|
|
13352
|
+
return __privateGet(this, _port2);
|
|
13162
13353
|
}
|
|
13163
|
-
|
|
13164
|
-
|
|
13165
|
-
|
|
13166
|
-
|
|
13167
|
-
|
|
13168
|
-
|
|
13169
|
-
if (this.destroyed) {
|
|
13170
|
-
this._readyCapability.reject(new Error("Worker was destroyed"));
|
|
13171
|
-
return;
|
|
13172
|
-
}
|
|
13173
|
-
const port = new LoopbackPort();
|
|
13174
|
-
this._port = port;
|
|
13175
|
-
const id = `fake${__privateWrapper(_PDFWorker, _fakeWorkerId)._++}`;
|
|
13176
|
-
const workerHandler = new MessageHandler(id + "_worker", id, port);
|
|
13177
|
-
WorkerMessageHandler.setup(workerHandler, port);
|
|
13178
|
-
this._messageHandler = new MessageHandler(id, id + "_worker", port);
|
|
13179
|
-
__privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
|
|
13180
|
-
}).catch((reason) => {
|
|
13181
|
-
this._readyCapability.reject(
|
|
13182
|
-
new Error(`Setting up fake worker failed: "${reason.message}".`)
|
|
13183
|
-
);
|
|
13184
|
-
});
|
|
13354
|
+
/**
|
|
13355
|
+
* The current MessageHandler-instance.
|
|
13356
|
+
* @type {MessageHandler}
|
|
13357
|
+
*/
|
|
13358
|
+
get messageHandler() {
|
|
13359
|
+
return __privateGet(this, _messageHandler);
|
|
13185
13360
|
}
|
|
13186
13361
|
/**
|
|
13187
13362
|
* Destroys the worker instance.
|
|
13188
13363
|
*/
|
|
13189
13364
|
destroy() {
|
|
13190
13365
|
this.destroyed = true;
|
|
13191
|
-
this
|
|
13192
|
-
this
|
|
13193
|
-
__privateGet(_PDFWorker, _workerPorts)
|
|
13194
|
-
this
|
|
13195
|
-
this
|
|
13196
|
-
this
|
|
13366
|
+
__privateGet(this, _webWorker)?.terminate();
|
|
13367
|
+
__privateSet(this, _webWorker, null);
|
|
13368
|
+
__privateGet(_PDFWorker, _workerPorts).delete(__privateGet(this, _port2));
|
|
13369
|
+
__privateSet(this, _port2, null);
|
|
13370
|
+
__privateGet(this, _messageHandler)?.destroy();
|
|
13371
|
+
__privateSet(this, _messageHandler, null);
|
|
13197
13372
|
}
|
|
13198
13373
|
/**
|
|
13199
13374
|
* @param {PDFWorkerParameters} params - The worker initialization parameters.
|
|
13200
13375
|
* @returns {PDFWorker}
|
|
13201
13376
|
*/
|
|
13202
|
-
static
|
|
13203
|
-
|
|
13204
|
-
throw new Error("Not implemented: fromPort");
|
|
13205
|
-
}
|
|
13206
|
-
if (!params?.port) {
|
|
13207
|
-
throw new Error("PDFWorker.fromPort - invalid method signature.");
|
|
13208
|
-
}
|
|
13209
|
-
const cachedPort = __privateGet(this, _workerPorts)?.get(params.port);
|
|
13377
|
+
static create(params) {
|
|
13378
|
+
const cachedPort = __privateGet(this, _workerPorts).get(params?.port);
|
|
13210
13379
|
if (cachedPort) {
|
|
13211
13380
|
if (cachedPort._pendingDestroy) {
|
|
13212
13381
|
throw new Error(
|
|
13213
|
-
"PDFWorker.
|
|
13382
|
+
"PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls."
|
|
13214
13383
|
);
|
|
13215
13384
|
}
|
|
13216
13385
|
return cachedPort;
|
|
@@ -13239,16 +13408,118 @@ var _PDFWorker = class _PDFWorker {
|
|
|
13239
13408
|
return shadow(this, "_setupFakeWorkerGlobal", loader());
|
|
13240
13409
|
}
|
|
13241
13410
|
};
|
|
13411
|
+
_capability3 = new WeakMap();
|
|
13412
|
+
_messageHandler = new WeakMap();
|
|
13413
|
+
_port2 = new WeakMap();
|
|
13414
|
+
_webWorker = new WeakMap();
|
|
13242
13415
|
_fakeWorkerId = new WeakMap();
|
|
13243
13416
|
_isWorkerDisabled = new WeakMap();
|
|
13244
13417
|
_workerPorts = new WeakMap();
|
|
13245
13418
|
_PDFWorker_instances = new WeakSet();
|
|
13246
13419
|
resolve_fn = function() {
|
|
13247
|
-
this.
|
|
13248
|
-
this
|
|
13420
|
+
__privateGet(this, _capability3).resolve();
|
|
13421
|
+
__privateGet(this, _messageHandler).send("configure", {
|
|
13249
13422
|
verbosity: this.verbosity
|
|
13250
13423
|
});
|
|
13251
13424
|
};
|
|
13425
|
+
initializeFromPort_fn = function(port) {
|
|
13426
|
+
__privateSet(this, _port2, port);
|
|
13427
|
+
__privateSet(this, _messageHandler, new MessageHandler("main", "worker", port));
|
|
13428
|
+
__privateGet(this, _messageHandler).on("ready", () => {
|
|
13429
|
+
});
|
|
13430
|
+
__privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
|
|
13431
|
+
};
|
|
13432
|
+
initialize_fn = function() {
|
|
13433
|
+
if (__privateGet(_PDFWorker, _isWorkerDisabled) || __privateGet(_PDFWorker, _PDFWorker_static, mainThreadWorkerMessageHandler_get)) {
|
|
13434
|
+
__privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
|
|
13435
|
+
return;
|
|
13436
|
+
}
|
|
13437
|
+
let { workerSrc } = _PDFWorker;
|
|
13438
|
+
try {
|
|
13439
|
+
if (!_PDFWorker._isSameOrigin(window.location, workerSrc)) {
|
|
13440
|
+
workerSrc = _PDFWorker._createCDNWrapper(
|
|
13441
|
+
new URL(workerSrc, window.location).href
|
|
13442
|
+
);
|
|
13443
|
+
}
|
|
13444
|
+
const worker = new Worker(workerSrc, { type: "module" });
|
|
13445
|
+
const messageHandler = new MessageHandler("main", "worker", worker);
|
|
13446
|
+
const terminateEarly = () => {
|
|
13447
|
+
ac.abort();
|
|
13448
|
+
messageHandler.destroy();
|
|
13449
|
+
worker.terminate();
|
|
13450
|
+
if (this.destroyed) {
|
|
13451
|
+
__privateGet(this, _capability3).reject(new Error("Worker was destroyed"));
|
|
13452
|
+
} else {
|
|
13453
|
+
__privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
|
|
13454
|
+
}
|
|
13455
|
+
};
|
|
13456
|
+
const ac = new AbortController();
|
|
13457
|
+
worker.addEventListener(
|
|
13458
|
+
"error",
|
|
13459
|
+
() => {
|
|
13460
|
+
if (!__privateGet(this, _webWorker)) {
|
|
13461
|
+
terminateEarly();
|
|
13462
|
+
}
|
|
13463
|
+
},
|
|
13464
|
+
{ signal: ac.signal }
|
|
13465
|
+
);
|
|
13466
|
+
messageHandler.on("test", (data) => {
|
|
13467
|
+
ac.abort();
|
|
13468
|
+
if (this.destroyed || !data) {
|
|
13469
|
+
terminateEarly();
|
|
13470
|
+
return;
|
|
13471
|
+
}
|
|
13472
|
+
__privateSet(this, _messageHandler, messageHandler);
|
|
13473
|
+
__privateSet(this, _port2, worker);
|
|
13474
|
+
__privateSet(this, _webWorker, worker);
|
|
13475
|
+
__privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
|
|
13476
|
+
});
|
|
13477
|
+
messageHandler.on("ready", (data) => {
|
|
13478
|
+
ac.abort();
|
|
13479
|
+
if (this.destroyed) {
|
|
13480
|
+
terminateEarly();
|
|
13481
|
+
return;
|
|
13482
|
+
}
|
|
13483
|
+
try {
|
|
13484
|
+
sendTest();
|
|
13485
|
+
} catch {
|
|
13486
|
+
__privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
|
|
13487
|
+
}
|
|
13488
|
+
});
|
|
13489
|
+
const sendTest = () => {
|
|
13490
|
+
const testObj = new Uint8Array();
|
|
13491
|
+
messageHandler.send("test", testObj, [testObj.buffer]);
|
|
13492
|
+
};
|
|
13493
|
+
sendTest();
|
|
13494
|
+
return;
|
|
13495
|
+
} catch {
|
|
13496
|
+
info("The worker has been disabled.");
|
|
13497
|
+
}
|
|
13498
|
+
__privateMethod(this, _PDFWorker_instances, setupFakeWorker_fn).call(this);
|
|
13499
|
+
};
|
|
13500
|
+
setupFakeWorker_fn = function() {
|
|
13501
|
+
if (!__privateGet(_PDFWorker, _isWorkerDisabled)) {
|
|
13502
|
+
warn("Setting up fake worker.");
|
|
13503
|
+
__privateSet(_PDFWorker, _isWorkerDisabled, true);
|
|
13504
|
+
}
|
|
13505
|
+
_PDFWorker._setupFakeWorkerGlobal.then((WorkerMessageHandler) => {
|
|
13506
|
+
if (this.destroyed) {
|
|
13507
|
+
__privateGet(this, _capability3).reject(new Error("Worker was destroyed"));
|
|
13508
|
+
return;
|
|
13509
|
+
}
|
|
13510
|
+
const port = new LoopbackPort();
|
|
13511
|
+
__privateSet(this, _port2, port);
|
|
13512
|
+
const id = `fake${__privateWrapper(_PDFWorker, _fakeWorkerId)._++}`;
|
|
13513
|
+
const workerHandler = new MessageHandler(id + "_worker", id, port);
|
|
13514
|
+
WorkerMessageHandler.setup(workerHandler, port);
|
|
13515
|
+
__privateSet(this, _messageHandler, new MessageHandler(id, id + "_worker", port));
|
|
13516
|
+
__privateMethod(this, _PDFWorker_instances, resolve_fn).call(this);
|
|
13517
|
+
}).catch((reason) => {
|
|
13518
|
+
__privateGet(this, _capability3).reject(
|
|
13519
|
+
new Error(`Setting up fake worker failed: "${reason.message}".`)
|
|
13520
|
+
);
|
|
13521
|
+
});
|
|
13522
|
+
};
|
|
13252
13523
|
_PDFWorker_static = new WeakSet();
|
|
13253
13524
|
mainThreadWorkerMessageHandler_get = function() {
|
|
13254
13525
|
try {
|
|
@@ -13260,7 +13531,7 @@ mainThreadWorkerMessageHandler_get = function() {
|
|
|
13260
13531
|
__privateAdd(_PDFWorker, _PDFWorker_static);
|
|
13261
13532
|
__privateAdd(_PDFWorker, _fakeWorkerId, 0);
|
|
13262
13533
|
__privateAdd(_PDFWorker, _isWorkerDisabled, false);
|
|
13263
|
-
__privateAdd(_PDFWorker, _workerPorts);
|
|
13534
|
+
__privateAdd(_PDFWorker, _workerPorts, /* @__PURE__ */ new WeakMap());
|
|
13264
13535
|
(() => {
|
|
13265
13536
|
if (true) {
|
|
13266
13537
|
if (isNodeJS) {
|
|
@@ -13281,6 +13552,21 @@ __privateAdd(_PDFWorker, _workerPorts);
|
|
|
13281
13552
|
new Blob([wrapper], { type: "text/javascript" })
|
|
13282
13553
|
);
|
|
13283
13554
|
};
|
|
13555
|
+
_PDFWorker.fromPort = (params) => {
|
|
13556
|
+
deprecated(
|
|
13557
|
+
"`PDFWorker.fromPort` - please use `PDFWorker.create` instead."
|
|
13558
|
+
);
|
|
13559
|
+
if (!params?.port) {
|
|
13560
|
+
throw new Error("PDFWorker.fromPort - invalid method signature.");
|
|
13561
|
+
}
|
|
13562
|
+
return _PDFWorker.create(params);
|
|
13563
|
+
};
|
|
13564
|
+
}
|
|
13565
|
+
if (false) {
|
|
13566
|
+
_PDFWorker._resetGlobalState = () => {
|
|
13567
|
+
__privateSet(_PDFWorker, _isWorkerDisabled, false);
|
|
13568
|
+
delete globalThis.pdfjsWorker;
|
|
13569
|
+
};
|
|
13284
13570
|
}
|
|
13285
13571
|
})();
|
|
13286
13572
|
var PDFWorker = _PDFWorker;
|
|
@@ -13846,100 +14132,6 @@ cacheSimpleMethod_fn = function(name, data = null) {
|
|
|
13846
14132
|
__privateGet(this, _methodPromises).set(name, promise);
|
|
13847
14133
|
return promise;
|
|
13848
14134
|
};
|
|
13849
|
-
var INITIAL_DATA = Symbol("INITIAL_DATA");
|
|
13850
|
-
var _objs, _PDFObjects_instances, ensureObj_fn;
|
|
13851
|
-
var PDFObjects = class {
|
|
13852
|
-
constructor() {
|
|
13853
|
-
__privateAdd(this, _PDFObjects_instances);
|
|
13854
|
-
__privateAdd(this, _objs, /* @__PURE__ */ Object.create(null));
|
|
13855
|
-
}
|
|
13856
|
-
/**
|
|
13857
|
-
* If called *without* callback, this returns the data of `objId` but the
|
|
13858
|
-
* object needs to be resolved. If it isn't, this method throws.
|
|
13859
|
-
*
|
|
13860
|
-
* If called *with* a callback, the callback is called with the data of the
|
|
13861
|
-
* object once the object is resolved. That means, if you call this method
|
|
13862
|
-
* and the object is already resolved, the callback gets called right away.
|
|
13863
|
-
*
|
|
13864
|
-
* @param {string} objId
|
|
13865
|
-
* @param {function} [callback]
|
|
13866
|
-
* @returns {any}
|
|
13867
|
-
*/
|
|
13868
|
-
get(objId, callback = null) {
|
|
13869
|
-
if (callback) {
|
|
13870
|
-
const obj2 = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
|
|
13871
|
-
obj2.promise.then(() => callback(obj2.data));
|
|
13872
|
-
return null;
|
|
13873
|
-
}
|
|
13874
|
-
const obj = __privateGet(this, _objs)[objId];
|
|
13875
|
-
if (!obj || obj.data === INITIAL_DATA) {
|
|
13876
|
-
throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
|
|
13877
|
-
}
|
|
13878
|
-
return obj.data;
|
|
13879
|
-
}
|
|
13880
|
-
/**
|
|
13881
|
-
* @param {string} objId
|
|
13882
|
-
* @returns {boolean}
|
|
13883
|
-
*/
|
|
13884
|
-
has(objId) {
|
|
13885
|
-
const obj = __privateGet(this, _objs)[objId];
|
|
13886
|
-
return !!obj && obj.data !== INITIAL_DATA;
|
|
13887
|
-
}
|
|
13888
|
-
/**
|
|
13889
|
-
* @param {string} objId
|
|
13890
|
-
* @returns {boolean}
|
|
13891
|
-
*/
|
|
13892
|
-
delete(objId) {
|
|
13893
|
-
const obj = __privateGet(this, _objs)[objId];
|
|
13894
|
-
if (!obj || obj.data === INITIAL_DATA) {
|
|
13895
|
-
return false;
|
|
13896
|
-
}
|
|
13897
|
-
delete __privateGet(this, _objs)[objId];
|
|
13898
|
-
return true;
|
|
13899
|
-
}
|
|
13900
|
-
/**
|
|
13901
|
-
* Resolves the object `objId` with optional `data`.
|
|
13902
|
-
*
|
|
13903
|
-
* @param {string} objId
|
|
13904
|
-
* @param {any} [data]
|
|
13905
|
-
*/
|
|
13906
|
-
resolve(objId, data = null) {
|
|
13907
|
-
const obj = __privateMethod(this, _PDFObjects_instances, ensureObj_fn).call(this, objId);
|
|
13908
|
-
obj.data = data;
|
|
13909
|
-
obj.resolve();
|
|
13910
|
-
}
|
|
13911
|
-
clear() {
|
|
13912
|
-
for (const objId in __privateGet(this, _objs)) {
|
|
13913
|
-
const { data } = __privateGet(this, _objs)[objId];
|
|
13914
|
-
data?.bitmap?.close();
|
|
13915
|
-
}
|
|
13916
|
-
__privateSet(this, _objs, /* @__PURE__ */ Object.create(null));
|
|
13917
|
-
}
|
|
13918
|
-
*[Symbol.iterator]() {
|
|
13919
|
-
for (const objId in __privateGet(this, _objs)) {
|
|
13920
|
-
const { data } = __privateGet(this, _objs)[objId];
|
|
13921
|
-
if (data === INITIAL_DATA) {
|
|
13922
|
-
continue;
|
|
13923
|
-
}
|
|
13924
|
-
yield [objId, data];
|
|
13925
|
-
}
|
|
13926
|
-
}
|
|
13927
|
-
};
|
|
13928
|
-
_objs = new WeakMap();
|
|
13929
|
-
_PDFObjects_instances = new WeakSet();
|
|
13930
|
-
/**
|
|
13931
|
-
* Ensures there is an object defined for `objId`.
|
|
13932
|
-
*
|
|
13933
|
-
* @param {string} objId
|
|
13934
|
-
* @returns {Object}
|
|
13935
|
-
*/
|
|
13936
|
-
ensureObj_fn = function(objId) {
|
|
13937
|
-
var _a2;
|
|
13938
|
-
return (_a2 = __privateGet(this, _objs))[objId] || (_a2[objId] = {
|
|
13939
|
-
...Promise.withResolvers(),
|
|
13940
|
-
data: INITIAL_DATA
|
|
13941
|
-
});
|
|
13942
|
-
};
|
|
13943
14135
|
var _internalRenderTask;
|
|
13944
14136
|
var RenderTask = class {
|
|
13945
14137
|
constructor(internalRenderTask) {
|
|
@@ -17455,12 +17647,9 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
|
|
|
17455
17647
|
}
|
|
17456
17648
|
/** @inheritdoc */
|
|
17457
17649
|
enableEditMode() {
|
|
17458
|
-
if (
|
|
17459
|
-
return;
|
|
17650
|
+
if (!super.enableEditMode()) {
|
|
17651
|
+
return false;
|
|
17460
17652
|
}
|
|
17461
|
-
this.parent.setEditingState(false);
|
|
17462
|
-
this.parent.updateToolbar(AnnotationEditorType.FREETEXT);
|
|
17463
|
-
super.enableEditMode();
|
|
17464
17653
|
this.overlayDiv.classList.remove("enabled");
|
|
17465
17654
|
this.editorDiv.contentEditable = true;
|
|
17466
17655
|
this._isDraggable = false;
|
|
@@ -17490,14 +17679,13 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
|
|
|
17490
17679
|
this.editorDiv.addEventListener("paste", this.editorDivPaste.bind(this), {
|
|
17491
17680
|
signal
|
|
17492
17681
|
});
|
|
17682
|
+
return true;
|
|
17493
17683
|
}
|
|
17494
17684
|
/** @inheritdoc */
|
|
17495
17685
|
disableEditMode() {
|
|
17496
|
-
if (!
|
|
17497
|
-
return;
|
|
17686
|
+
if (!super.disableEditMode()) {
|
|
17687
|
+
return false;
|
|
17498
17688
|
}
|
|
17499
|
-
this.parent.setEditingState(true);
|
|
17500
|
-
super.disableEditMode();
|
|
17501
17689
|
this.overlayDiv.classList.add("enabled");
|
|
17502
17690
|
this.editorDiv.contentEditable = false;
|
|
17503
17691
|
this.div.setAttribute("aria-activedescendant", __privateGet(this, _editorDivId));
|
|
@@ -17509,6 +17697,7 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
|
|
|
17509
17697
|
});
|
|
17510
17698
|
this.isEditing = false;
|
|
17511
17699
|
this.parent.div.classList.add("freetextEditing");
|
|
17700
|
+
return true;
|
|
17512
17701
|
}
|
|
17513
17702
|
/** @inheritdoc */
|
|
17514
17703
|
focusin(event) {
|
|
@@ -17592,17 +17781,7 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
|
|
|
17592
17781
|
this.enableEditMode();
|
|
17593
17782
|
this.editorDiv.focus();
|
|
17594
17783
|
}
|
|
17595
|
-
/**
|
|
17596
|
-
* ondblclick callback.
|
|
17597
|
-
* @param {MouseEvent} event
|
|
17598
|
-
*/
|
|
17599
|
-
dblclick(event) {
|
|
17600
|
-
this.enterInEditMode();
|
|
17601
|
-
}
|
|
17602
|
-
/**
|
|
17603
|
-
* onkeydown callback.
|
|
17604
|
-
* @param {KeyboardEvent} event
|
|
17605
|
-
*/
|
|
17784
|
+
/** @inheritdoc */
|
|
17606
17785
|
keydown(event) {
|
|
17607
17786
|
if (event.target === this.div && event.key === "Enter") {
|
|
17608
17787
|
this.enterInEditMode();
|
|
@@ -17632,6 +17811,10 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
|
|
|
17632
17811
|
this.editorDiv.setAttribute("aria-multiline", true);
|
|
17633
17812
|
}
|
|
17634
17813
|
/** @inheritdoc */
|
|
17814
|
+
get canChangeContent() {
|
|
17815
|
+
return true;
|
|
17816
|
+
}
|
|
17817
|
+
/** @inheritdoc */
|
|
17635
17818
|
render() {
|
|
17636
17819
|
if (this.div) {
|
|
17637
17820
|
return this.div;
|
|
@@ -17656,7 +17839,6 @@ var _FreeTextEditor = class _FreeTextEditor extends AnnotationEditor {
|
|
|
17656
17839
|
this.overlayDiv = document.createElement("div");
|
|
17657
17840
|
this.overlayDiv.classList.add("overlay", "enabled");
|
|
17658
17841
|
this.div.append(this.overlayDiv);
|
|
17659
|
-
bindEvents(this, this.div, ["dblclick", "keydown"]);
|
|
17660
17842
|
if (this._isCopy || this.annotationElementId) {
|
|
17661
17843
|
const [parentWidth, parentHeight] = this.parentDimensions;
|
|
17662
17844
|
if (this.annotationElementId) {
|
|
@@ -22487,14 +22669,8 @@ getGrayPixels_fn = function(bitmap) {
|
|
|
22487
22669
|
const isteps = Math.floor(steps);
|
|
22488
22670
|
steps = steps === isteps ? isteps - 1 : isteps;
|
|
22489
22671
|
for (let i = 0; i < steps; i++) {
|
|
22490
|
-
newWidth = prevWidth;
|
|
22491
|
-
newHeight = prevHeight;
|
|
22492
|
-
if (newWidth > maxDim) {
|
|
22493
|
-
newWidth = Math.ceil(newWidth / 2);
|
|
22494
|
-
}
|
|
22495
|
-
if (newHeight > maxDim) {
|
|
22496
|
-
newHeight = Math.ceil(newHeight / 2);
|
|
22497
|
-
}
|
|
22672
|
+
newWidth = Math.ceil(prevWidth / 2);
|
|
22673
|
+
newHeight = Math.ceil(prevHeight / 2);
|
|
22498
22674
|
const offscreen2 = new OffscreenCanvas(newWidth, newHeight);
|
|
22499
22675
|
const ctx2 = offscreen2.getContext("2d");
|
|
22500
22676
|
ctx2.drawImage(
|
|
@@ -22568,7 +22744,7 @@ var SignatureOptions = class _SignatureOptions extends DrawingOptions {
|
|
|
22568
22744
|
constructor() {
|
|
22569
22745
|
super();
|
|
22570
22746
|
super.updateProperties({
|
|
22571
|
-
fill:
|
|
22747
|
+
fill: AnnotationEditor._defaultLineColor,
|
|
22572
22748
|
"stroke-width": 0
|
|
22573
22749
|
});
|
|
22574
22750
|
}
|
|
@@ -22582,7 +22758,7 @@ var DrawnSignatureOptions = class _DrawnSignatureOptions extends InkDrawingOptio
|
|
|
22582
22758
|
constructor(viewerParameters) {
|
|
22583
22759
|
super(viewerParameters);
|
|
22584
22760
|
super.updateProperties({
|
|
22585
|
-
stroke:
|
|
22761
|
+
stroke: AnnotationEditor._defaultLineColor,
|
|
22586
22762
|
"stroke-width": 1
|
|
22587
22763
|
});
|
|
22588
22764
|
}
|
|
@@ -22955,9 +23131,10 @@ var StampEditor = class extends AnnotationEditor {
|
|
|
22955
23131
|
}
|
|
22956
23132
|
/** @inheritdoc */
|
|
22957
23133
|
static paste(item, parent) {
|
|
22958
|
-
parent.pasteEditor(
|
|
22959
|
-
|
|
22960
|
-
|
|
23134
|
+
parent.pasteEditor(
|
|
23135
|
+
{ mode: AnnotationEditorType.STAMP },
|
|
23136
|
+
{ bitmapFile: item.getAsFile() }
|
|
23137
|
+
);
|
|
22961
23138
|
}
|
|
22962
23139
|
/** @inheritdoc */
|
|
22963
23140
|
altTextFinish() {
|
|
@@ -23722,10 +23899,10 @@ var _AnnotationEditorLayer = class _AnnotationEditorLayer {
|
|
|
23722
23899
|
}
|
|
23723
23900
|
/**
|
|
23724
23901
|
* Update the toolbar if it's required to reflect the tool currently used.
|
|
23725
|
-
* @param {
|
|
23902
|
+
* @param {Object} options
|
|
23726
23903
|
*/
|
|
23727
|
-
updateToolbar(
|
|
23728
|
-
__privateGet(this, _uiManager3).updateToolbar(
|
|
23904
|
+
updateToolbar(options) {
|
|
23905
|
+
__privateGet(this, _uiManager3).updateToolbar(options);
|
|
23729
23906
|
}
|
|
23730
23907
|
/**
|
|
23731
23908
|
* The mode has changed: it must be updated.
|
|
@@ -24084,12 +24261,12 @@ var _AnnotationEditorLayer = class _AnnotationEditorLayer {
|
|
|
24084
24261
|
}
|
|
24085
24262
|
/**
|
|
24086
24263
|
* Paste some content into a new editor.
|
|
24087
|
-
* @param {
|
|
24264
|
+
* @param {Object} options
|
|
24088
24265
|
* @param {Object} params
|
|
24089
24266
|
*/
|
|
24090
|
-
async pasteEditor(
|
|
24091
|
-
|
|
24092
|
-
await __privateGet(this, _uiManager3).updateMode(mode);
|
|
24267
|
+
async pasteEditor(options, params) {
|
|
24268
|
+
this.updateToolbar(options);
|
|
24269
|
+
await __privateGet(this, _uiManager3).updateMode(options.mode);
|
|
24093
24270
|
const { offsetX, offsetY } = __privateMethod(this, _AnnotationEditorLayer_instances, getCenterPoint_fn).call(this);
|
|
24094
24271
|
const id = this.getNextId();
|
|
24095
24272
|
const editor = __privateMethod(this, _AnnotationEditorLayer_instances, createNewEditor_fn).call(this, {
|
|
@@ -24665,10 +24842,63 @@ var DrawLayer = _DrawLayer;
|
|
|
24665
24842
|
|
|
24666
24843
|
// src/pdf.js/src/pdf.js
|
|
24667
24844
|
if (false) {
|
|
24668
|
-
globalThis.
|
|
24845
|
+
globalThis._pdfjsTestingUtils = {
|
|
24669
24846
|
HighlightOutliner
|
|
24670
24847
|
};
|
|
24671
24848
|
}
|
|
24849
|
+
globalThis.pdfjsLib = {
|
|
24850
|
+
AbortException,
|
|
24851
|
+
AnnotationEditorLayer,
|
|
24852
|
+
AnnotationEditorParamsType,
|
|
24853
|
+
AnnotationEditorType,
|
|
24854
|
+
AnnotationEditorUIManager,
|
|
24855
|
+
AnnotationLayer,
|
|
24856
|
+
AnnotationMode,
|
|
24857
|
+
AnnotationType,
|
|
24858
|
+
build,
|
|
24859
|
+
ColorPicker,
|
|
24860
|
+
createValidAbsoluteUrl,
|
|
24861
|
+
DOMSVGFactory,
|
|
24862
|
+
DrawLayer,
|
|
24863
|
+
FeatureTest,
|
|
24864
|
+
fetchData,
|
|
24865
|
+
getDocument,
|
|
24866
|
+
getFilenameFromUrl,
|
|
24867
|
+
getPdfFilenameFromUrl,
|
|
24868
|
+
getUuid,
|
|
24869
|
+
getXfaPageViewport,
|
|
24870
|
+
GlobalWorkerOptions,
|
|
24871
|
+
ImageKind,
|
|
24872
|
+
InvalidPDFException,
|
|
24873
|
+
isDataScheme,
|
|
24874
|
+
isPdfFile,
|
|
24875
|
+
isValidExplicitDest,
|
|
24876
|
+
MathClamp,
|
|
24877
|
+
noContextMenu,
|
|
24878
|
+
normalizeUnicode,
|
|
24879
|
+
OPS,
|
|
24880
|
+
OutputScale,
|
|
24881
|
+
PasswordResponses,
|
|
24882
|
+
PDFDataRangeTransport,
|
|
24883
|
+
PDFDateString,
|
|
24884
|
+
PDFWorker,
|
|
24885
|
+
PermissionFlag,
|
|
24886
|
+
PixelsPerInch,
|
|
24887
|
+
RenderingCancelledException,
|
|
24888
|
+
ResponseException,
|
|
24889
|
+
setLayerDimensions,
|
|
24890
|
+
shadow,
|
|
24891
|
+
SignatureExtractor,
|
|
24892
|
+
stopEvent,
|
|
24893
|
+
SupportedImageMimeTypes,
|
|
24894
|
+
TextLayer,
|
|
24895
|
+
TouchManager,
|
|
24896
|
+
updateUrlHash,
|
|
24897
|
+
Util,
|
|
24898
|
+
VerbosityLevel,
|
|
24899
|
+
version,
|
|
24900
|
+
XfaLayer
|
|
24901
|
+
};
|
|
24672
24902
|
|
|
24673
24903
|
// src/lib/AnnotationOperatorsList.ts
|
|
24674
24904
|
var AnnotationOperatorsList = class {
|
|
@@ -25667,6 +25897,26 @@ function makeSerializable(object) {
|
|
|
25667
25897
|
])
|
|
25668
25898
|
);
|
|
25669
25899
|
}
|
|
25900
|
+
function colorToRgb(color) {
|
|
25901
|
+
if (color.startsWith("#")) {
|
|
25902
|
+
const hex = color.slice(1);
|
|
25903
|
+
if (hex.length === 3) {
|
|
25904
|
+
return [
|
|
25905
|
+
Number.parseInt(hex[0] + hex[0], 16),
|
|
25906
|
+
Number.parseInt(hex[1] + hex[1], 16),
|
|
25907
|
+
Number.parseInt(hex[2] + hex[2], 16)
|
|
25908
|
+
];
|
|
25909
|
+
}
|
|
25910
|
+
if (hex.length === 6) {
|
|
25911
|
+
return [
|
|
25912
|
+
Number.parseInt(hex.slice(0, 2), 16),
|
|
25913
|
+
Number.parseInt(hex.slice(2, 4), 16),
|
|
25914
|
+
Number.parseInt(hex.slice(4, 6), 16)
|
|
25915
|
+
];
|
|
25916
|
+
}
|
|
25917
|
+
}
|
|
25918
|
+
throw new Error(`Invalid color format: ${color}`);
|
|
25919
|
+
}
|
|
25670
25920
|
|
|
25671
25921
|
// src/lib/PDFPageProxy.ts
|
|
25672
25922
|
var getAnnotations = PDFPageProxy.prototype.getAnnotations;
|
|
@@ -25792,10 +26042,18 @@ PDFPageProxy.prototype.getAnnotations = async function(params) {
|
|
|
25792
26042
|
annotation.borderStyle.width = currentLineWidth;
|
|
25793
26043
|
}
|
|
25794
26044
|
if (fn === OPS.setStrokeRGBColor && firstStroke) {
|
|
25795
|
-
|
|
26045
|
+
if (typeof args[0] === "string") {
|
|
26046
|
+
annotation.color = colorToRgb(args[0]);
|
|
26047
|
+
} else {
|
|
26048
|
+
annotation.color = args;
|
|
26049
|
+
}
|
|
25796
26050
|
}
|
|
25797
26051
|
if (fn === OPS.setFillRGBColor && firstFill) {
|
|
25798
|
-
|
|
26052
|
+
if (typeof args[0] === "string") {
|
|
26053
|
+
currentFillColor = colorToRgb(args[0]);
|
|
26054
|
+
} else {
|
|
26055
|
+
currentFillColor = args;
|
|
26056
|
+
}
|
|
25799
26057
|
}
|
|
25800
26058
|
if (fn === OPS.setGState) {
|
|
25801
26059
|
for (const entry of args[0]) {
|
|
@@ -25838,11 +26096,11 @@ var WasmFactory = class {
|
|
|
25838
26096
|
async fetch({ filename }) {
|
|
25839
26097
|
switch (filename) {
|
|
25840
26098
|
case "openjpeg.wasm":
|
|
25841
|
-
return import("./openjpeg-
|
|
26099
|
+
return import("./openjpeg-B2WN24QZ.js").then(
|
|
25842
26100
|
(module) => module.default
|
|
25843
26101
|
);
|
|
25844
26102
|
case "qcms_bg":
|
|
25845
|
-
return import("./qcms_bg-
|
|
26103
|
+
return import("./qcms_bg-T4RSHPOQ.js").then(
|
|
25846
26104
|
(module) => module.default
|
|
25847
26105
|
);
|
|
25848
26106
|
}
|
|
@@ -26508,6 +26766,7 @@ export {
|
|
|
26508
26766
|
XfaLayer,
|
|
26509
26767
|
build,
|
|
26510
26768
|
canvasToData,
|
|
26769
|
+
colorToRgb,
|
|
26511
26770
|
createCanvas,
|
|
26512
26771
|
createSvgContext,
|
|
26513
26772
|
createTextLayer,
|
|
@@ -26564,5 +26823,6 @@ export {
|
|
|
26564
26823
|
stopEvent,
|
|
26565
26824
|
toDataUrl,
|
|
26566
26825
|
toSvgNode,
|
|
26826
|
+
updateUrlHash,
|
|
26567
26827
|
version
|
|
26568
26828
|
};
|