@shznet/pdf-sign-react 0.2.2 → 0.2.3
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/README.md +100 -5
- package/dist/index.js +99 -60
- package/dist/lib/pdf-sign-react.d.ts +15 -1
- package/dist/lib/pdf-sign-react.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ export function App() {
|
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
```tsx
|
|
39
|
-
<button onClick={() => controlRef.current?.print(
|
|
39
|
+
<button onClick={() => controlRef.current?.print()}>
|
|
40
40
|
Print PDF
|
|
41
41
|
</button>
|
|
42
42
|
```
|
|
@@ -46,10 +46,105 @@ export function App() {
|
|
|
46
46
|
| Prop | Type | Description |
|
|
47
47
|
|------|------|-------------|
|
|
48
48
|
| `src` | `string \| Uint8Array \| ArrayBuffer` | PDF source to load. |
|
|
49
|
-
| `
|
|
49
|
+
| `page` | `number` | Current page number (1-based). Supports two-way binding via state. |
|
|
50
|
+
| `viewMode` | `'single' \| 'scroll'` | View mode - changes trigger re-render. |
|
|
51
|
+
| `scale` | `number` | Zoom scale - changes trigger re-render. |
|
|
50
52
|
| `zoomable` | `boolean` | Enable/disable gesture zooming (default: true). |
|
|
51
|
-
| `fields` | `SignatureField[]` |
|
|
53
|
+
| `fields` | `SignatureField[]` | Controlled fields list. |
|
|
54
|
+
| `pdfLoaderOptions` | `PdfLoaderOptions` | PDF.js configuration (workerSrc, etc.). |
|
|
55
|
+
| `onReady` | `(control: PdfSignControl) => void` | Callback when control is initialized. |
|
|
52
56
|
| `onLoad` | `() => void` | Callback when PDF is loaded. |
|
|
53
|
-
| `onPageChange` | `(page: number, total: number) => void` | Callback when page changes. |
|
|
57
|
+
| `onPageChange` | `(page: number, total: number) => void` | Callback when page changes (enables two-way binding). |
|
|
54
58
|
| `onScaleChange` | `(scale: number) => void` | Callback when zoom level changes. |
|
|
55
|
-
| `onFieldsChange` | `(fields: SignatureField[]) => void` | Callback when fields are
|
|
59
|
+
| `onFieldsChange` | `(fields: SignatureField[]) => void` | Callback when fields are modified. |
|
|
60
|
+
| `onError` | `(error: Error) => void` | Callback on errors. |
|
|
61
|
+
|
|
62
|
+
## Two-Way Binding Example
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
import { PdfSignReact } from '@shznet/pdf-sign-react';
|
|
66
|
+
import { useState } from 'react';
|
|
67
|
+
|
|
68
|
+
export function App() {
|
|
69
|
+
const [currentPage, setCurrentPage] = useState(1);
|
|
70
|
+
const [totalPages, setTotalPages] = useState(0);
|
|
71
|
+
const [scale, setScale] = useState(1.0);
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<div>
|
|
75
|
+
<div>
|
|
76
|
+
<button onClick={() => setCurrentPage(p => Math.max(1, p - 1))}>
|
|
77
|
+
Previous
|
|
78
|
+
</button>
|
|
79
|
+
<span>Page {currentPage} / {totalPages}</span>
|
|
80
|
+
<button onClick={() => setCurrentPage(p => Math.min(totalPages, p + 1))}>
|
|
81
|
+
Next
|
|
82
|
+
</button>
|
|
83
|
+
|
|
84
|
+
<button onClick={() => setScale(s => s + 0.25)}>Zoom In</button>
|
|
85
|
+
<button onClick={() => setScale(s => Math.max(0.25, s - 0.25))}>Zoom Out</button>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
<PdfSignReact
|
|
89
|
+
src="https://example.com/doc.pdf"
|
|
90
|
+
page={currentPage}
|
|
91
|
+
scale={scale}
|
|
92
|
+
onPageChange={(page, total) => {
|
|
93
|
+
setCurrentPage(page); // Two-way binding
|
|
94
|
+
setTotalPages(total);
|
|
95
|
+
}}
|
|
96
|
+
onScaleChange={setScale} // Two-way binding
|
|
97
|
+
style={{ height: '600px' }}
|
|
98
|
+
/>
|
|
99
|
+
</div>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Ref Methods
|
|
105
|
+
|
|
106
|
+
Access methods via `ref` for imperative control:
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
const pdfRef = useRef<PdfSignReactRef>(null);
|
|
110
|
+
|
|
111
|
+
// Navigation
|
|
112
|
+
pdfRef.current?.goToPage(5);
|
|
113
|
+
pdfRef.current?.nextPage();
|
|
114
|
+
pdfRef.current?.previousPage();
|
|
115
|
+
const currentPage = pdfRef.current?.getCurrentPage();
|
|
116
|
+
const totalPages = pdfRef.current?.getTotalPages();
|
|
117
|
+
|
|
118
|
+
// Zoom
|
|
119
|
+
pdfRef.current?.setScale(1.5);
|
|
120
|
+
const scale = pdfRef.current?.getScale();
|
|
121
|
+
|
|
122
|
+
// View Mode
|
|
123
|
+
await pdfRef.current?.setViewMode('single');
|
|
124
|
+
const mode = pdfRef.current?.getViewMode();
|
|
125
|
+
|
|
126
|
+
// Page Dimensions
|
|
127
|
+
const dims = await pdfRef.current?.getPageDimensions(0); // Page 1 (0-based index)
|
|
128
|
+
console.log(`Page size: ${dims?.width} x ${dims?.height} points`);
|
|
129
|
+
|
|
130
|
+
// Field Management
|
|
131
|
+
await pdfRef.current?.addField({
|
|
132
|
+
id: 'sig1',
|
|
133
|
+
pageIndex: 0,
|
|
134
|
+
rect: { x: 100, y: 100, width: 200, height: 80 },
|
|
135
|
+
type: 'signature',
|
|
136
|
+
content: '<svg>...</svg>',
|
|
137
|
+
draggable: true,
|
|
138
|
+
resizable: true
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
pdfRef.current?.removeField('sig1');
|
|
142
|
+
pdfRef.current?.updateField('sig1', { rect: { x: 150, y: 150, width: 200, height: 80 } });
|
|
143
|
+
const fields = pdfRef.current?.getFields();
|
|
144
|
+
|
|
145
|
+
// Printing
|
|
146
|
+
await pdfRef.current?.print({ withSignatures: false });
|
|
147
|
+
|
|
148
|
+
// Direct Control Access
|
|
149
|
+
const control = pdfRef.current?.getControl();
|
|
150
|
+
```
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as an } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as on, useRef as rs, useImperativeHandle as hn, useEffect as
|
|
2
|
+
import { forwardRef as on, useRef as rs, useImperativeHandle as hn, useEffect as Vt } from "react";
|
|
3
3
|
var vi = (c) => {
|
|
4
4
|
throw TypeError(c);
|
|
5
5
|
}, Ds = (c, t, e) => t.has(c) || vi("Cannot " + e), Y = (c, t, e) => (Ds(c, t, "read from private field"), e ? e.call(c) : t.get(c)), Ft = (c, t, e) => t.has(c) ? vi("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(c) : t.set(c, e), mt = (c, t, e, s) => (Ds(c, t, "write to private field"), t.set(c, e), e), It = (c, t, e) => (Ds(c, t, "access private method"), e), ln = (c, t, e, s) => ({
|
|
@@ -361,38 +361,38 @@ function L(c, t, e, s = !1) {
|
|
|
361
361
|
writable: !1
|
|
362
362
|
}), e;
|
|
363
363
|
}
|
|
364
|
-
const
|
|
364
|
+
const Yt = (function() {
|
|
365
365
|
function c(t, e) {
|
|
366
366
|
this.message = t, this.name = e;
|
|
367
367
|
}
|
|
368
368
|
return c.prototype = new Error(), c.constructor = c, c;
|
|
369
369
|
})();
|
|
370
|
-
class Xs extends
|
|
370
|
+
class Xs extends Yt {
|
|
371
371
|
constructor(t, e) {
|
|
372
372
|
super(t, "PasswordException"), this.code = e;
|
|
373
373
|
}
|
|
374
374
|
}
|
|
375
|
-
class os extends
|
|
375
|
+
class os extends Yt {
|
|
376
376
|
constructor(t, e) {
|
|
377
377
|
super(t, "UnknownErrorException"), this.details = e;
|
|
378
378
|
}
|
|
379
379
|
}
|
|
380
|
-
class ys extends
|
|
380
|
+
class ys extends Yt {
|
|
381
381
|
constructor(t) {
|
|
382
382
|
super(t, "InvalidPDFException");
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
|
-
class We extends
|
|
385
|
+
class We extends Yt {
|
|
386
386
|
constructor(t, e, s) {
|
|
387
387
|
super(t, "ResponseException"), this.status = e, this.missing = s;
|
|
388
388
|
}
|
|
389
389
|
}
|
|
390
|
-
class bn extends
|
|
390
|
+
class bn extends Yt {
|
|
391
391
|
constructor(t) {
|
|
392
392
|
super(t, "FormatError");
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
|
-
class $t extends
|
|
395
|
+
class $t extends Yt {
|
|
396
396
|
constructor(t) {
|
|
397
397
|
super(t, "AbortException");
|
|
398
398
|
}
|
|
@@ -913,7 +913,7 @@ class ke {
|
|
|
913
913
|
return T.applyInverseTransform(s, this.transform), s;
|
|
914
914
|
}
|
|
915
915
|
}
|
|
916
|
-
class Rs extends
|
|
916
|
+
class Rs extends Yt {
|
|
917
917
|
constructor(t, e = 0) {
|
|
918
918
|
super(t, "RenderingCancelledException"), this.extraDelay = e;
|
|
919
919
|
}
|
|
@@ -1110,7 +1110,7 @@ function Et(c) {
|
|
|
1110
1110
|
} = c.getTransform().invertSelf();
|
|
1111
1111
|
return [t, e, s, i, n, r];
|
|
1112
1112
|
}
|
|
1113
|
-
function
|
|
1113
|
+
function Wt(c, t, e = !1, s = !0) {
|
|
1114
1114
|
if (t instanceof ke) {
|
|
1115
1115
|
const {
|
|
1116
1116
|
pageWidth: i,
|
|
@@ -8025,7 +8025,7 @@ class he {
|
|
|
8025
8025
|
}
|
|
8026
8026
|
for (const c in Ee)
|
|
8027
8027
|
he.prototype[c] !== void 0 && (he.prototype[Ee[c]] = he.prototype[c]);
|
|
8028
|
-
class
|
|
8028
|
+
class qt {
|
|
8029
8029
|
static #t = null;
|
|
8030
8030
|
static #e = "";
|
|
8031
8031
|
static get workerPort() {
|
|
@@ -9209,7 +9209,7 @@ class yt {
|
|
|
9209
9209
|
pageX: r,
|
|
9210
9210
|
pageY: a
|
|
9211
9211
|
} = s.rawDims;
|
|
9212
|
-
this.#b = [1, 0, 0, -1, -r, a + n], this.#o = i, this.#n = n, yt.#P(), e.style.setProperty("--min-font-size", yt.#_),
|
|
9212
|
+
this.#b = [1, 0, 0, -1, -r, a + n], this.#o = i, this.#n = n, yt.#P(), e.style.setProperty("--min-font-size", yt.#_), Wt(e, s), this.#t.promise.finally(() => {
|
|
9213
9213
|
yt.#A.delete(this), this.#r = null, this.#p = null;
|
|
9214
9214
|
}).catch(() => {
|
|
9215
9215
|
});
|
|
@@ -9241,7 +9241,7 @@ class yt {
|
|
|
9241
9241
|
onBefore: e = null
|
|
9242
9242
|
}) {
|
|
9243
9243
|
const s = t.scale * kt.pixelRatio, i = t.rotation;
|
|
9244
|
-
if (i !== this.#u && (e?.(), this.#u = i,
|
|
9244
|
+
if (i !== this.#u && (e?.(), this.#u = i, Wt(this.#h, {
|
|
9245
9245
|
rotation: i
|
|
9246
9246
|
})), s !== this.#d) {
|
|
9247
9247
|
e?.(), this.#d = s;
|
|
@@ -9421,7 +9421,7 @@ function Gi(c = {}) {
|
|
|
9421
9421
|
};
|
|
9422
9422
|
l || (l = Cs.create({
|
|
9423
9423
|
verbosity: d,
|
|
9424
|
-
port:
|
|
9424
|
+
port: qt.workerPort
|
|
9425
9425
|
}), t._worker = l);
|
|
9426
9426
|
const de = {
|
|
9427
9427
|
docId: e,
|
|
@@ -10011,14 +10011,14 @@ class Nr {
|
|
|
10011
10011
|
return this._stats;
|
|
10012
10012
|
}
|
|
10013
10013
|
}
|
|
10014
|
-
var
|
|
10014
|
+
var Gt, Pt, Ht, le, gs, Jt, ne, St, Ue, Wi, qi, me, _e, Xe;
|
|
10015
10015
|
const rt = class Ae {
|
|
10016
10016
|
constructor({
|
|
10017
10017
|
name: t = null,
|
|
10018
10018
|
port: e = null,
|
|
10019
10019
|
verbosity: s = fn()
|
|
10020
10020
|
} = {}) {
|
|
10021
|
-
if (Ft(this, St), Ft(this,
|
|
10021
|
+
if (Ft(this, St), Ft(this, Gt, Promise.withResolvers()), Ft(this, Pt, null), Ft(this, Ht, null), Ft(this, le, null), this.name = t, this.destroyed = !1, this.verbosity = s, e) {
|
|
10022
10022
|
if (Y(Ae, ne).has(e))
|
|
10023
10023
|
throw new Error("Cannot use more than one PDFWorker per port.");
|
|
10024
10024
|
Y(Ae, ne).set(e, this), It(this, St, Wi).call(this, e);
|
|
@@ -10026,7 +10026,7 @@ const rt = class Ae {
|
|
|
10026
10026
|
It(this, St, qi).call(this);
|
|
10027
10027
|
}
|
|
10028
10028
|
get promise() {
|
|
10029
|
-
return Y(this,
|
|
10029
|
+
return Y(this, Gt).promise;
|
|
10030
10030
|
}
|
|
10031
10031
|
get port() {
|
|
10032
10032
|
return Y(this, Ht);
|
|
@@ -10047,8 +10047,8 @@ const rt = class Ae {
|
|
|
10047
10047
|
return new Ae(t);
|
|
10048
10048
|
}
|
|
10049
10049
|
static get workerSrc() {
|
|
10050
|
-
if (
|
|
10051
|
-
return
|
|
10050
|
+
if (qt.workerSrc)
|
|
10051
|
+
return qt.workerSrc;
|
|
10052
10052
|
throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
|
|
10053
10053
|
}
|
|
10054
10054
|
static get _setupFakeWorkerGlobal() {
|
|
@@ -10059,8 +10059,8 @@ const rt = class Ae {
|
|
|
10059
10059
|
)).WorkerMessageHandler)());
|
|
10060
10060
|
}
|
|
10061
10061
|
};
|
|
10062
|
-
|
|
10063
|
-
Y(this,
|
|
10062
|
+
Gt = /* @__PURE__ */ new WeakMap(), Pt = /* @__PURE__ */ new WeakMap(), Ht = /* @__PURE__ */ new WeakMap(), le = /* @__PURE__ */ new WeakMap(), gs = /* @__PURE__ */ new WeakMap(), Jt = /* @__PURE__ */ new WeakMap(), ne = /* @__PURE__ */ new WeakMap(), St = /* @__PURE__ */ new WeakSet(), Ue = function() {
|
|
10063
|
+
Y(this, Gt).resolve(), Y(this, Pt).send("configure", {
|
|
10064
10064
|
verbosity: this.verbosity
|
|
10065
10065
|
});
|
|
10066
10066
|
}, Wi = function(c) {
|
|
@@ -10079,7 +10079,7 @@ Vt = /* @__PURE__ */ new WeakMap(), Pt = /* @__PURE__ */ new WeakMap(), Ht = /*
|
|
|
10079
10079
|
const t = new Worker(c, {
|
|
10080
10080
|
type: "module"
|
|
10081
10081
|
}), e = new ve("main", "worker", t), s = () => {
|
|
10082
|
-
i.abort(), e.destroy(), t.terminate(), this.destroyed ? Y(this,
|
|
10082
|
+
i.abort(), e.destroy(), t.terminate(), this.destroyed ? Y(this, Gt).reject(new Error("Worker was destroyed")) : It(this, St, me).call(this);
|
|
10083
10083
|
}, i = new AbortController();
|
|
10084
10084
|
t.addEventListener("error", () => {
|
|
10085
10085
|
Y(this, le) || s();
|
|
@@ -10115,7 +10115,7 @@ Vt = /* @__PURE__ */ new WeakMap(), Pt = /* @__PURE__ */ new WeakMap(), Ht = /*
|
|
|
10115
10115
|
}, me = function() {
|
|
10116
10116
|
Y(rt, Jt) || (I("Setting up fake worker."), mt(rt, Jt, !0)), rt._setupFakeWorkerGlobal.then((c) => {
|
|
10117
10117
|
if (this.destroyed) {
|
|
10118
|
-
Y(this,
|
|
10118
|
+
Y(this, Gt).reject(new Error("Worker was destroyed"));
|
|
10119
10119
|
return;
|
|
10120
10120
|
}
|
|
10121
10121
|
const t = new jn();
|
|
@@ -10123,7 +10123,7 @@ Vt = /* @__PURE__ */ new WeakMap(), Pt = /* @__PURE__ */ new WeakMap(), Ht = /*
|
|
|
10123
10123
|
const e = `fake${ln(rt, gs)._++}`, s = new ve(e + "_worker", e, t);
|
|
10124
10124
|
c.setup(s, t), mt(this, Pt, new ve(e, e + "_worker", t)), It(this, St, Ue).call(this);
|
|
10125
10125
|
}).catch((c) => {
|
|
10126
|
-
Y(this,
|
|
10126
|
+
Y(this, Gt).reject(new Error(`Setting up fake worker failed: "${c.message}".`));
|
|
10127
10127
|
});
|
|
10128
10128
|
}, _e = /* @__PURE__ */ new WeakSet(), Xe = function() {
|
|
10129
10129
|
try {
|
|
@@ -10131,7 +10131,7 @@ Vt = /* @__PURE__ */ new WeakMap(), Pt = /* @__PURE__ */ new WeakMap(), Ht = /*
|
|
|
10131
10131
|
} catch {
|
|
10132
10132
|
return null;
|
|
10133
10133
|
}
|
|
10134
|
-
}, Ft(rt, _e), Ft(rt, gs, 0), Ft(rt, Jt, !1), Ft(rt, ne, /* @__PURE__ */ new WeakMap()), dt && (mt(rt, Jt, !0),
|
|
10134
|
+
}, Ft(rt, _e), Ft(rt, gs, 0), Ft(rt, Jt, !1), Ft(rt, ne, /* @__PURE__ */ new WeakMap()), dt && (mt(rt, Jt, !0), qt.workerSrc ||= "./pdf.worker.mjs"), rt._isSameOrigin = (c, t) => {
|
|
10135
10135
|
const e = URL.parse(c);
|
|
10136
10136
|
if (!e?.origin || e.origin === "null")
|
|
10137
10137
|
return !1;
|
|
@@ -10913,7 +10913,7 @@ class Ye extends $r {
|
|
|
10913
10913
|
return document.createElementNS(Rt, t);
|
|
10914
10914
|
}
|
|
10915
10915
|
}
|
|
10916
|
-
const zr = 9,
|
|
10916
|
+
const zr = 9, Xt = /* @__PURE__ */ new WeakSet(), Ur = (/* @__PURE__ */ new Date()).getTimezoneOffset() * 60 * 1e3;
|
|
10917
10917
|
class fs {
|
|
10918
10918
|
static create(t) {
|
|
10919
10919
|
switch (t.data.annotationType) {
|
|
@@ -10932,7 +10932,7 @@ class fs {
|
|
|
10932
10932
|
case "Sig":
|
|
10933
10933
|
return new Wr(t);
|
|
10934
10934
|
}
|
|
10935
|
-
return new
|
|
10935
|
+
return new Kt(t);
|
|
10936
10936
|
case it.POPUP:
|
|
10937
10937
|
return new Ts(t);
|
|
10938
10938
|
case it.FREETEXT:
|
|
@@ -11114,7 +11114,7 @@ class K {
|
|
|
11114
11114
|
viewport: i
|
|
11115
11115
|
}
|
|
11116
11116
|
} = this, n = document.createElement("section");
|
|
11117
|
-
n.setAttribute("data-annotation-id", e.id), !(this instanceof
|
|
11117
|
+
n.setAttribute("data-annotation-id", e.id), !(this instanceof Kt) && !(this instanceof zs) && (n.tabIndex = 0);
|
|
11118
11118
|
const {
|
|
11119
11119
|
style: r
|
|
11120
11120
|
} = n;
|
|
@@ -11365,7 +11365,7 @@ class K {
|
|
|
11365
11365
|
if (n === -1 || r === e)
|
|
11366
11366
|
continue;
|
|
11367
11367
|
const o = typeof a == "string" ? a : null, h = document.querySelector(`[data-element-id="${r}"]`);
|
|
11368
|
-
if (h && !
|
|
11368
|
+
if (h && !Xt.has(h)) {
|
|
11369
11369
|
I(`_getElementsByName - element not allowed: ${r}`);
|
|
11370
11370
|
continue;
|
|
11371
11371
|
}
|
|
@@ -11381,7 +11381,7 @@ class K {
|
|
|
11381
11381
|
const {
|
|
11382
11382
|
exportValue: n
|
|
11383
11383
|
} = i, r = i.getAttribute("data-element-id");
|
|
11384
|
-
r !== e &&
|
|
11384
|
+
r !== e && Xt.has(i) && s.push({
|
|
11385
11385
|
id: r,
|
|
11386
11386
|
exportValue: n,
|
|
11387
11387
|
domElement: i
|
|
@@ -11575,7 +11575,7 @@ class zs extends K {
|
|
|
11575
11575
|
}
|
|
11576
11576
|
const u = document.querySelector(`[data-element-id="${d}"]`);
|
|
11577
11577
|
if (u) {
|
|
11578
|
-
if (!
|
|
11578
|
+
if (!Xt.has(u)) {
|
|
11579
11579
|
I(`_bindResetFormAction - element not allowed: ${d}`);
|
|
11580
11580
|
continue;
|
|
11581
11581
|
}
|
|
@@ -11607,7 +11607,7 @@ class Gr extends K {
|
|
|
11607
11607
|
})), !this.data.popupRef && this.hasPopupData && (this.hasOwnCommentButton = !0, this._createPopup()), this.container.append(t), this.container;
|
|
11608
11608
|
}
|
|
11609
11609
|
}
|
|
11610
|
-
class
|
|
11610
|
+
class Kt extends K {
|
|
11611
11611
|
render() {
|
|
11612
11612
|
return this.container;
|
|
11613
11613
|
}
|
|
@@ -11678,7 +11678,7 @@ class Yt extends K {
|
|
|
11678
11678
|
e ? t.setAttribute("required", !0) : t.removeAttribute("required"), t.setAttribute("aria-required", e);
|
|
11679
11679
|
}
|
|
11680
11680
|
}
|
|
11681
|
-
class jr extends
|
|
11681
|
+
class jr extends Kt {
|
|
11682
11682
|
constructor(t) {
|
|
11683
11683
|
const e = t.renderForms || t.data.hasOwnCanvas || !t.data.hasAppearance && !!t.data.fieldValue;
|
|
11684
11684
|
super(t, {
|
|
@@ -11715,7 +11715,7 @@ class jr extends Yt {
|
|
|
11715
11715
|
commitKey: 1,
|
|
11716
11716
|
focused: !1
|
|
11717
11717
|
};
|
|
11718
|
-
this.data.multiLine ? (s = document.createElement("textarea"), s.textContent = a ?? n, this.data.doNotScroll && (s.style.overflowY = "hidden")) : (s = document.createElement("input"), s.type = this.data.password ? "password" : "text", s.setAttribute("value", a ?? n), this.data.doNotScroll && (s.style.overflowX = "hidden")), this.data.hasOwnCanvas && (s.hidden = !0),
|
|
11718
|
+
this.data.multiLine ? (s = document.createElement("textarea"), s.textContent = a ?? n, this.data.doNotScroll && (s.style.overflowY = "hidden")) : (s = document.createElement("input"), s.type = this.data.password ? "password" : "text", s.setAttribute("value", a ?? n), this.data.doNotScroll && (s.style.overflowX = "hidden")), this.data.hasOwnCanvas && (s.hidden = !0), Xt.add(s), this.contentElement = s, s.setAttribute("data-element-id", e), s.disabled = this.data.readOnly, s.name = this.data.fieldName, s.tabIndex = 0;
|
|
11719
11719
|
const {
|
|
11720
11720
|
datetimeFormat: h,
|
|
11721
11721
|
datetimeType: l,
|
|
@@ -11908,14 +11908,14 @@ class jr extends Yt {
|
|
|
11908
11908
|
return this._setTextStyle(s), this._setBackgroundColor(s), this._setDefaultPropertiesFromJS(s), this.container.append(s), this.container;
|
|
11909
11909
|
}
|
|
11910
11910
|
}
|
|
11911
|
-
class Wr extends
|
|
11911
|
+
class Wr extends Kt {
|
|
11912
11912
|
constructor(t) {
|
|
11913
11913
|
super(t, {
|
|
11914
11914
|
isRenderable: !!t.data.hasOwnCanvas
|
|
11915
11915
|
});
|
|
11916
11916
|
}
|
|
11917
11917
|
}
|
|
11918
|
-
class qr extends
|
|
11918
|
+
class qr extends Kt {
|
|
11919
11919
|
constructor(t) {
|
|
11920
11920
|
super(t, {
|
|
11921
11921
|
isRenderable: t.renderForms
|
|
@@ -11930,7 +11930,7 @@ class qr extends Yt {
|
|
|
11930
11930
|
value: i
|
|
11931
11931
|
})), this.container.classList.add("buttonWidgetAnnotation", "checkBox");
|
|
11932
11932
|
const n = document.createElement("input");
|
|
11933
|
-
return
|
|
11933
|
+
return Xt.add(n), n.setAttribute("data-element-id", s), n.disabled = e.readOnly, this._setRequired(n, this.data.required), n.type = "checkbox", n.name = e.fieldName, i && n.setAttribute("checked", !0), n.setAttribute("exportValue", e.exportValue), n.tabIndex = 0, n.addEventListener("change", (r) => {
|
|
11934
11934
|
const {
|
|
11935
11935
|
name: a,
|
|
11936
11936
|
checked: o
|
|
@@ -11959,7 +11959,7 @@ class qr extends Yt {
|
|
|
11959
11959
|
}), this._setEventListeners(n, null, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], (r) => r.target.checked)), this._setBackgroundColor(n), this._setDefaultPropertiesFromJS(n), this.container.append(n), this.container;
|
|
11960
11960
|
}
|
|
11961
11961
|
}
|
|
11962
|
-
class Yi extends
|
|
11962
|
+
class Yi extends Kt {
|
|
11963
11963
|
constructor(t) {
|
|
11964
11964
|
super(t, {
|
|
11965
11965
|
isRenderable: t.renderForms
|
|
@@ -11979,7 +11979,7 @@ class Yi extends Yt {
|
|
|
11979
11979
|
value: !1
|
|
11980
11980
|
});
|
|
11981
11981
|
const n = document.createElement("input");
|
|
11982
|
-
if (
|
|
11982
|
+
if (Xt.add(n), n.setAttribute("data-element-id", s), n.disabled = e.readOnly, this._setRequired(n, this.data.required), n.type = "radio", n.name = e.fieldName, i && n.setAttribute("checked", !0), n.tabIndex = 0, n.addEventListener("change", (r) => {
|
|
11983
11983
|
const {
|
|
11984
11984
|
name: a,
|
|
11985
11985
|
checked: o
|
|
@@ -12029,7 +12029,7 @@ class Xr extends zs {
|
|
|
12029
12029
|
})), t;
|
|
12030
12030
|
}
|
|
12031
12031
|
}
|
|
12032
|
-
class Yr extends
|
|
12032
|
+
class Yr extends Kt {
|
|
12033
12033
|
constructor(t) {
|
|
12034
12034
|
super(t, {
|
|
12035
12035
|
isRenderable: t.renderForms
|
|
@@ -12040,7 +12040,7 @@ class Yr extends Yt {
|
|
|
12040
12040
|
const t = this.annotationStorage, e = this.data.id, s = t.getValue(e, {
|
|
12041
12041
|
value: this.data.fieldValue
|
|
12042
12042
|
}), i = document.createElement("select");
|
|
12043
|
-
|
|
12043
|
+
Xt.add(i), i.setAttribute("data-element-id", e), i.disabled = this.data.readOnly, this._setRequired(i, this.data.required), i.name = this.data.fieldName, i.tabIndex = 0;
|
|
12044
12044
|
let n = this.data.combo && this.data.options.length > 0;
|
|
12045
12045
|
this.data.combo || (i.size = this.data.options.length, this.data.multiSelect && (i.multiple = !0)), i.addEventListener("resetform", (l) => {
|
|
12046
12046
|
const d = this.data.defaultFieldValue;
|
|
@@ -12977,7 +12977,7 @@ class Vs {
|
|
|
12977
12977
|
const {
|
|
12978
12978
|
annotations: e
|
|
12979
12979
|
} = t, s = this.div;
|
|
12980
|
-
|
|
12980
|
+
Wt(s, this.viewport);
|
|
12981
12981
|
const i = /* @__PURE__ */ new Map(), n = [], r = {
|
|
12982
12982
|
data: null,
|
|
12983
12983
|
layer: s,
|
|
@@ -13100,7 +13100,7 @@ class Vs {
|
|
|
13100
13100
|
viewport: t
|
|
13101
13101
|
}) {
|
|
13102
13102
|
const e = this.div;
|
|
13103
|
-
this.viewport = t,
|
|
13103
|
+
this.viewport = t, Wt(e, {
|
|
13104
13104
|
rotation: t.rotation
|
|
13105
13105
|
}), this.#h(), e.hidden = !1;
|
|
13106
13106
|
}
|
|
@@ -13696,7 +13696,7 @@ class M {
|
|
|
13696
13696
|
return [(t + 5 * s) / 6, (e + 5 * i) / 6, (5 * s + n) / 6, (5 * i + r) / 6, (s + n) / 2, (i + r) / 2];
|
|
13697
13697
|
}
|
|
13698
13698
|
}
|
|
13699
|
-
class
|
|
13699
|
+
class jt {
|
|
13700
13700
|
#t;
|
|
13701
13701
|
#e = [];
|
|
13702
13702
|
#i;
|
|
@@ -13712,12 +13712,12 @@ class Gt {
|
|
|
13712
13712
|
#p = [];
|
|
13713
13713
|
static #m = 8;
|
|
13714
13714
|
static #f = 2;
|
|
13715
|
-
static #c =
|
|
13715
|
+
static #c = jt.#m + jt.#f;
|
|
13716
13716
|
constructor({
|
|
13717
13717
|
x: t,
|
|
13718
13718
|
y: e
|
|
13719
13719
|
}, s, i, n, r, a = 0) {
|
|
13720
|
-
this.#t = s, this.#d = n * i, this.#s = r, this.#r.set([NaN, NaN, NaN, NaN, t, e], 6), this.#i = a, this.#h =
|
|
13720
|
+
this.#t = s, this.#d = n * i, this.#s = r, this.#r.set([NaN, NaN, NaN, NaN, t, e], 6), this.#i = a, this.#h = jt.#m * i, this.#l = jt.#c * i, this.#u = i, this.#p.push(t, e);
|
|
13721
13721
|
}
|
|
13722
13722
|
isEmpty() {
|
|
13723
13723
|
return isNaN(this.#r[8]);
|
|
@@ -13877,7 +13877,7 @@ class tn extends M {
|
|
|
13877
13877
|
return this.#e;
|
|
13878
13878
|
}
|
|
13879
13879
|
newOutliner(t, e, s, i, n, r = 0) {
|
|
13880
|
-
return new
|
|
13880
|
+
return new jt(t, e, s, i, n, r);
|
|
13881
13881
|
}
|
|
13882
13882
|
getNewOutline(t, e) {
|
|
13883
13883
|
const [s, i, n, r] = this.#e, [a, o, h, l] = this.#t, d = n * h, u = r * l, p = s * h + a, f = i * l + o, g = this.newOutliner({
|
|
@@ -14053,7 +14053,7 @@ class aa extends M {
|
|
|
14053
14053
|
return ["highlightOutline"];
|
|
14054
14054
|
}
|
|
14055
14055
|
}
|
|
14056
|
-
class Ps extends
|
|
14056
|
+
class Ps extends jt {
|
|
14057
14057
|
newFreeDrawOutline(t, e, s, i, n, r) {
|
|
14058
14058
|
return new oa(t, e, s, i, n, r);
|
|
14059
14059
|
}
|
|
@@ -17352,7 +17352,7 @@ class Lt {
|
|
|
17352
17352
|
render({
|
|
17353
17353
|
viewport: t
|
|
17354
17354
|
}) {
|
|
17355
|
-
this.viewport = t,
|
|
17355
|
+
this.viewport = t, Wt(this.div, t);
|
|
17356
17356
|
for (const e of this.#c.getEditors(this.pageIndex))
|
|
17357
17357
|
this.add(e), e.rebuild();
|
|
17358
17358
|
this.updateMode();
|
|
@@ -17362,7 +17362,7 @@ class Lt {
|
|
|
17362
17362
|
}) {
|
|
17363
17363
|
this.#c.commitOrRemove(), this.#A();
|
|
17364
17364
|
const e = this.viewport.rotation, s = t.rotation;
|
|
17365
|
-
if (this.viewport = t,
|
|
17365
|
+
if (this.viewport = t, Wt(this.div, {
|
|
17366
17366
|
rotation: s
|
|
17367
17367
|
}), e !== s)
|
|
17368
17368
|
for (const i of this.#r.values())
|
|
@@ -17530,7 +17530,7 @@ globalThis.pdfjsLib = {
|
|
|
17530
17530
|
getRGB: De,
|
|
17531
17531
|
getUuid: Si,
|
|
17532
17532
|
getXfaPageViewport: Mn,
|
|
17533
|
-
GlobalWorkerOptions:
|
|
17533
|
+
GlobalWorkerOptions: qt,
|
|
17534
17534
|
ImageKind: je,
|
|
17535
17535
|
InvalidPDFException: ys,
|
|
17536
17536
|
isDataScheme: Ze,
|
|
@@ -17550,7 +17550,7 @@ globalThis.pdfjsLib = {
|
|
|
17550
17550
|
RenderingCancelledException: Rs,
|
|
17551
17551
|
renderRichText: Ti,
|
|
17552
17552
|
ResponseException: We,
|
|
17553
|
-
setLayerDimensions:
|
|
17553
|
+
setLayerDimensions: Wt,
|
|
17554
17554
|
shadow: L,
|
|
17555
17555
|
SignatureExtractor: ee,
|
|
17556
17556
|
stopEvent: Q,
|
|
@@ -17566,7 +17566,7 @@ globalThis.pdfjsLib = {
|
|
|
17566
17566
|
class ca {
|
|
17567
17567
|
document = null;
|
|
17568
17568
|
constructor(t = {}) {
|
|
17569
|
-
t.workerSrc ?
|
|
17569
|
+
t.workerSrc ? qt.workerSrc = t.workerSrc : qt.workerSrc = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${Xi}/pdf.worker.min.mjs`;
|
|
17570
17570
|
}
|
|
17571
17571
|
async loadDocument(t) {
|
|
17572
17572
|
try {
|
|
@@ -18296,6 +18296,29 @@ class ya {
|
|
|
18296
18296
|
getScale() {
|
|
18297
18297
|
return this.currentScale;
|
|
18298
18298
|
}
|
|
18299
|
+
/**
|
|
18300
|
+
* Get dimensions of a specific page in PDF points
|
|
18301
|
+
* @param pageIndex - Zero-based page index
|
|
18302
|
+
* @returns Page dimensions { width: number, height: number } or null if page doesn't exist
|
|
18303
|
+
*/
|
|
18304
|
+
async getPageDimensions(t) {
|
|
18305
|
+
if (!this.pdfDocument)
|
|
18306
|
+
throw new Error("PDF not loaded");
|
|
18307
|
+
if (t < 0 || t >= this.pdfDocument.numPages)
|
|
18308
|
+
return null;
|
|
18309
|
+
const e = this.pageInfo.get(t);
|
|
18310
|
+
if (e)
|
|
18311
|
+
return { width: e.width, height: e.height };
|
|
18312
|
+
try {
|
|
18313
|
+
const s = (await this.pdfDocument.getPage(t + 1)).getViewport({ scale: 1 }), i = {
|
|
18314
|
+
width: s.width,
|
|
18315
|
+
height: s.height
|
|
18316
|
+
};
|
|
18317
|
+
return this.pageInfo.set(t, i), i;
|
|
18318
|
+
} catch (s) {
|
|
18319
|
+
return console.error(`Failed to get dimensions for page ${t}:`, s), null;
|
|
18320
|
+
}
|
|
18321
|
+
}
|
|
18299
18322
|
// Field Management
|
|
18300
18323
|
fields = [];
|
|
18301
18324
|
setFields(t) {
|
|
@@ -18516,6 +18539,9 @@ class wa {
|
|
|
18516
18539
|
getScale() {
|
|
18517
18540
|
return this.viewer.getScale();
|
|
18518
18541
|
}
|
|
18542
|
+
async getPageDimensions(t) {
|
|
18543
|
+
return this.viewer.getPageDimensions(t);
|
|
18544
|
+
}
|
|
18519
18545
|
// Event handling
|
|
18520
18546
|
on(t, e) {
|
|
18521
18547
|
this.viewer.on(t, e);
|
|
@@ -18566,12 +18592,23 @@ const xa = on((c, t) => {
|
|
|
18566
18592
|
getViewMode: () => s.current?.getViewMode() ?? "scroll",
|
|
18567
18593
|
print: async (n) => {
|
|
18568
18594
|
s.current && await s.current.print(n);
|
|
18569
|
-
}
|
|
18595
|
+
},
|
|
18596
|
+
getPageDimensions: async (n) => s.current ? await s.current.getPageDimensions(n) : null,
|
|
18597
|
+
addField: async (n) => {
|
|
18598
|
+
s.current && await s.current.addField(n);
|
|
18599
|
+
},
|
|
18600
|
+
removeField: (n) => {
|
|
18601
|
+
s.current?.removeField(n);
|
|
18602
|
+
},
|
|
18603
|
+
updateField: (n, r) => {
|
|
18604
|
+
s.current?.updateField(n, r);
|
|
18605
|
+
},
|
|
18606
|
+
getFields: () => s.current?.getFields() ?? []
|
|
18570
18607
|
}));
|
|
18571
18608
|
const i = rs(c);
|
|
18572
|
-
return
|
|
18609
|
+
return Vt(() => {
|
|
18573
18610
|
i.current = c;
|
|
18574
|
-
}),
|
|
18611
|
+
}), Vt(() => {
|
|
18575
18612
|
if (!(!e.current || s.current))
|
|
18576
18613
|
return s.current = new wa({
|
|
18577
18614
|
container: e.current,
|
|
@@ -18585,16 +18622,18 @@ const xa = on((c, t) => {
|
|
|
18585
18622
|
}), s.current.on("field:add", (n) => i.current.onFieldAdd?.(n)), s.current.on("field:remove", (n) => i.current.onFieldRemove?.(n)), s.current.on("field:update", (n) => i.current.onFieldUpdate?.(n)), s.current.on("fields:change", (n) => i.current.onFieldsChange?.(n)), c.onReady && c.onReady(s.current), () => {
|
|
18586
18623
|
s.current?.destroy(), s.current = null;
|
|
18587
18624
|
};
|
|
18588
|
-
}, []),
|
|
18625
|
+
}, []), Vt(() => {
|
|
18589
18626
|
s.current && c.src && s.current.load(c.src).then(() => c.onLoad?.()).catch((n) => c.onError?.(n));
|
|
18590
|
-
}, [c.src]),
|
|
18627
|
+
}, [c.src]), Vt(() => {
|
|
18628
|
+
s.current && c.page !== void 0 && s.current.getCurrentPage() !== c.page && s.current.goToPage(c.page);
|
|
18629
|
+
}, [c.page]), Vt(() => {
|
|
18591
18630
|
s.current && c.viewMode && s.current.setViewMode(c.viewMode);
|
|
18592
|
-
}, [c.viewMode]),
|
|
18631
|
+
}, [c.viewMode]), Vt(() => {
|
|
18593
18632
|
if (s.current && c.scale !== void 0) {
|
|
18594
18633
|
const n = s.current.getScale();
|
|
18595
18634
|
Math.abs(n - c.scale) > 1e-3 && s.current.setScale(c.scale);
|
|
18596
18635
|
}
|
|
18597
|
-
}, [c.scale]),
|
|
18636
|
+
}, [c.scale]), Vt(() => {
|
|
18598
18637
|
if (s.current && c.fields) {
|
|
18599
18638
|
const n = s.current.getFields();
|
|
18600
18639
|
if (JSON.stringify(n) === JSON.stringify(c.fields))
|
|
@@ -21,16 +21,30 @@ export interface PdfSignReactRef {
|
|
|
21
21
|
/** Set view mode */
|
|
22
22
|
setViewMode(mode: ViewMode): Promise<void>;
|
|
23
23
|
/** Get current view mode */
|
|
24
|
-
/** Get current view mode */
|
|
25
24
|
getViewMode(): ViewMode;
|
|
26
25
|
/** Print the PDF */
|
|
27
26
|
print(options?: {
|
|
28
27
|
withSignatures?: boolean;
|
|
29
28
|
}): Promise<void>;
|
|
29
|
+
/** Get dimensions of a specific page in PDF points */
|
|
30
|
+
getPageDimensions(pageIndex: number): Promise<{
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
} | null>;
|
|
34
|
+
/** Add a signature field */
|
|
35
|
+
addField(field: SignatureField): Promise<void>;
|
|
36
|
+
/** Remove a signature field by ID */
|
|
37
|
+
removeField(fieldId: string): void;
|
|
38
|
+
/** Update a signature field */
|
|
39
|
+
updateField(fieldId: string, updates: Partial<SignatureField>): void;
|
|
40
|
+
/** Get all signature fields */
|
|
41
|
+
getFields(): SignatureField[];
|
|
30
42
|
}
|
|
31
43
|
export interface PdfSignReactProps {
|
|
32
44
|
/** PDF source URL or ArrayBuffer - auto-loads when provided */
|
|
33
45
|
src?: string | Uint8Array | ArrayBuffer;
|
|
46
|
+
/** Initial page number */
|
|
47
|
+
page?: number;
|
|
34
48
|
/** Initial view mode: 'scroll' or 'single' */
|
|
35
49
|
viewMode?: ViewMode;
|
|
36
50
|
/** Current zoom scale */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-sign-react.d.ts","sourceRoot":"","sources":["../../src/lib/pdf-sign-react.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE3G,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,UAAU,IAAI,cAAc,GAAG,IAAI,CAAC;IACpC,yCAAyC;IACzC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,gCAAgC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB;IACtB,QAAQ,IAAI,IAAI,CAAC;IACjB,0BAA0B;IAC1B,YAAY,IAAI,IAAI,CAAC;IACrB,8BAA8B;IAC9B,cAAc,IAAI,MAAM,CAAC;IACzB,sBAAsB;IACtB,aAAa,IAAI,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6BAA6B;IAC7B,QAAQ,IAAI,MAAM,CAAC;IACnB,oBAAoB;IACpB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,4BAA4B;IAC5B,
|
|
1
|
+
{"version":3,"file":"pdf-sign-react.d.ts","sourceRoot":"","sources":["../../src/lib/pdf-sign-react.tsx"],"names":[],"mappings":"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"}
|