react-pdf-editor-1 1.2.38 → 1.2.40

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.
Files changed (3) hide show
  1. package/dist/index.js +112 -64
  2. package/package.json +1 -1
  3. package/src/index.js +31 -1
package/dist/index.js CHANGED
@@ -51,14 +51,18 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
51
51
  _useState8 = _slicedToArray(_useState7, 2),
52
52
  annotations = _useState8[0],
53
53
  setAnnotations = _useState8[1];
54
- var _useState9 = (0, _react.useState)(null),
54
+ var _useState9 = (0, _react.useState)(false),
55
55
  _useState10 = _slicedToArray(_useState9, 2),
56
- authTokens = _useState10[0],
57
- setAuthTokens = _useState10[1];
58
- var _useState11 = (0, _react.useState)(false),
56
+ hasSeal = _useState10[0],
57
+ setHasSeal = _useState10[1];
58
+ var _useState11 = (0, _react.useState)(null),
59
59
  _useState12 = _slicedToArray(_useState11, 2),
60
- signatureModalOpen = _useState12[0],
61
- setSignatureModalOpen = _useState12[1];
60
+ authTokens = _useState12[0],
61
+ setAuthTokens = _useState12[1];
62
+ var _useState13 = (0, _react.useState)(false),
63
+ _useState14 = _slicedToArray(_useState13, 2),
64
+ signatureModalOpen = _useState14[0],
65
+ setSignatureModalOpen = _useState14[1];
62
66
  var createIframe = function createIframe() {
63
67
  var iframe = document.createElement('iframe');
64
68
  iframe.src = iframeSrc || "/pdf-ui/index.html";
@@ -127,6 +131,9 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
127
131
  if (event.data.type === "annotations-change") {
128
132
  setAnnotations(event.data.message);
129
133
  }
134
+ if (event.data.type === 'has-seal-change') {
135
+ setHasSeal(!!event.data.message);
136
+ }
130
137
  if (event.data.type === "annotation-modal-open-change") {
131
138
  setSignatureModalOpen(event.data.message);
132
139
  }
@@ -168,10 +175,10 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
168
175
  return window.parent.removeEventListener('message', handleIframeLoaded);
169
176
  };
170
177
  }, []);
171
- var _useState13 = (0, _react.useState)(null),
172
- _useState14 = _slicedToArray(_useState13, 2),
173
- clickedTag = _useState14[0],
174
- setClickedTag = _useState14[1];
178
+ var _useState15 = (0, _react.useState)(null),
179
+ _useState16 = _slicedToArray(_useState15, 2),
180
+ clickedTag = _useState16[0],
181
+ setClickedTag = _useState16[1];
175
182
  var handleTagClicked = function handleTagClicked(event) {
176
183
  if (event.data.type === 'click-tag') {
177
184
  setClickedTag(event.data);
@@ -278,30 +285,69 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
278
285
  return _ref2.apply(this, arguments);
279
286
  };
280
287
  }();
288
+ var finalizeDocument = /*#__PURE__*/function () {
289
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
290
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
291
+ while (1) switch (_context2.prev = _context2.next) {
292
+ case 0:
293
+ return _context2.abrupt("return", new Promise(function (resolve, reject) {
294
+ var _document5;
295
+ var listener = function listener(event) {
296
+ if (!event || !event.data) return;
297
+ if (event.data.type === 'finalize-document') {
298
+ // Child posts { type: 'finalize-document', annotations }
299
+ resolve(event.data.annotations);
300
+ window.removeEventListener('message', listener);
301
+ } else if (event.data.type === 'finalize-document-failed') {
302
+ reject(new Error(event.data.message || 'Finalize document failed'));
303
+ window.removeEventListener('message', listener);
304
+ }
305
+ };
306
+
307
+ // Add listener to capture the next finalize signal
308
+ window.addEventListener('message', listener);
309
+
310
+ // Optionally nudge the iframe if it supports being prompted to finalize
311
+ // @ts-ignore
312
+ var iframeWin = (_document5 = document) === null || _document5 === void 0 || (_document5 = _document5.getElementById('webviewer-1')) === null || _document5 === void 0 ? void 0 : _document5.contentWindow;
313
+ iframeWin === null || iframeWin === void 0 ? void 0 : iframeWin.postMessage({
314
+ type: 'finalize-document'
315
+ }, window.location.origin);
316
+ }));
317
+ case 1:
318
+ case "end":
319
+ return _context2.stop();
320
+ }
321
+ }, _callee2);
322
+ }));
323
+ return function finalizeDocument() {
324
+ return _ref3.apply(this, arguments);
325
+ };
326
+ }();
281
327
  var toggleSignatureModal = function toggleSignatureModal(enable) {
282
- var _document5;
328
+ var _document6;
283
329
  // @ts-ignore
284
- var iframeWin = (_document5 = document) === null || _document5 === void 0 || (_document5 = _document5.getElementById('webviewer-1')) === null || _document5 === void 0 ? void 0 : _document5.contentWindow;
330
+ var iframeWin = (_document6 = document) === null || _document6 === void 0 || (_document6 = _document6.getElementById('webviewer-1')) === null || _document6 === void 0 ? void 0 : _document6.contentWindow;
285
331
  iframeWin.postMessage({
286
332
  type: 'toggle-signature-modal',
287
333
  enable: enable
288
334
  }, window.location.origin);
289
335
  };
290
336
  var setThumbnailZoom = function setThumbnailZoom(value) {
291
- var _document6;
337
+ var _document7;
292
338
  // @ts-ignore
293
- var iframeWin = (_document6 = document) === null || _document6 === void 0 || (_document6 = _document6.getElementById('webviewer-1')) === null || _document6 === void 0 ? void 0 : _document6.contentWindow;
339
+ var iframeWin = (_document7 = document) === null || _document7 === void 0 || (_document7 = _document7.getElementById('webviewer-1')) === null || _document7 === void 0 ? void 0 : _document7.contentWindow;
294
340
  iframeWin.postMessage({
295
341
  type: 'set-thumbnail-zoom',
296
342
  value: value
297
343
  }, window.location.origin);
298
344
  };
299
- var setAuthInfo = function setAuthInfo(_ref3) {
300
- var _document7;
301
- var token = _ref3.token,
302
- refreshToken = _ref3.refreshToken;
345
+ var setAuthInfo = function setAuthInfo(_ref4) {
346
+ var _document8;
347
+ var token = _ref4.token,
348
+ refreshToken = _ref4.refreshToken;
303
349
  // @ts-ignore
304
- var iframeWin = (_document7 = document) === null || _document7 === void 0 || (_document7 = _document7.getElementById('webviewer-1')) === null || _document7 === void 0 ? void 0 : _document7.contentWindow;
350
+ var iframeWin = (_document8 = document) === null || _document8 === void 0 || (_document8 = _document8.getElementById('webviewer-1')) === null || _document8 === void 0 ? void 0 : _document8.contentWindow;
305
351
  iframeWin === null || iframeWin === void 0 ? void 0 : iframeWin.postMessage({
306
352
  type: 'set-auth-info',
307
353
  authInfo: {
@@ -311,12 +357,12 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
311
357
  }, window.location.origin);
312
358
  };
313
359
  var splitPages = /*#__PURE__*/function () {
314
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
315
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
316
- while (1) switch (_context2.prev = _context2.next) {
360
+ var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
361
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
362
+ while (1) switch (_context3.prev = _context3.next) {
317
363
  case 0:
318
- return _context2.abrupt("return", new Promise(function (resolve, reject) {
319
- var _document8;
364
+ return _context3.abrupt("return", new Promise(function (resolve, reject) {
365
+ var _document9;
320
366
  var listener = function listener(event) {
321
367
  if (event.data.type === 'split-pages-completed' && event.data.success) {
322
368
  resolve(event.data.message); // Resolve the promise with the result
@@ -331,7 +377,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
331
377
  window.addEventListener('message', listener);
332
378
 
333
379
  // @ts-ignore
334
- var iframeWin = (_document8 = document) === null || _document8 === void 0 || (_document8 = _document8.getElementById('webviewer-1')) === null || _document8 === void 0 ? void 0 : _document8.contentWindow;
380
+ var iframeWin = (_document9 = document) === null || _document9 === void 0 || (_document9 = _document9.getElementById('webviewer-1')) === null || _document9 === void 0 ? void 0 : _document9.contentWindow;
335
381
 
336
382
  // Sending the extract-pages message to the iframe
337
383
  iframeWin.postMessage({
@@ -340,21 +386,21 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
340
386
  }));
341
387
  case 1:
342
388
  case "end":
343
- return _context2.stop();
389
+ return _context3.stop();
344
390
  }
345
- }, _callee2);
391
+ }, _callee3);
346
392
  }));
347
393
  return function splitPages() {
348
- return _ref4.apply(this, arguments);
394
+ return _ref5.apply(this, arguments);
349
395
  };
350
396
  }();
351
397
  var mergeFiles = /*#__PURE__*/function () {
352
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(value) {
353
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
354
- while (1) switch (_context3.prev = _context3.next) {
398
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(value) {
399
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
400
+ while (1) switch (_context4.prev = _context4.next) {
355
401
  case 0:
356
- return _context3.abrupt("return", new Promise(function (resolve, reject) {
357
- var _document9;
402
+ return _context4.abrupt("return", new Promise(function (resolve, reject) {
403
+ var _document10;
358
404
  var listener = function listener(event) {
359
405
  if (event.data.type === 'merge-files-completed' && event.data.success) {
360
406
  resolve(event.data.message); // Resolve the promise with the result
@@ -369,7 +415,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
369
415
  window.addEventListener('message', listener);
370
416
 
371
417
  // @ts-ignore
372
- var iframeWin = (_document9 = document) === null || _document9 === void 0 || (_document9 = _document9.getElementById('webviewer-1')) === null || _document9 === void 0 ? void 0 : _document9.contentWindow;
418
+ var iframeWin = (_document10 = document) === null || _document10 === void 0 || (_document10 = _document10.getElementById('webviewer-1')) === null || _document10 === void 0 ? void 0 : _document10.contentWindow;
373
419
 
374
420
  // Sending the extract-pages message to the iframe
375
421
  iframeWin.postMessage({
@@ -379,21 +425,21 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
379
425
  }));
380
426
  case 1:
381
427
  case "end":
382
- return _context3.stop();
428
+ return _context4.stop();
383
429
  }
384
- }, _callee3);
430
+ }, _callee4);
385
431
  }));
386
432
  return function mergeFiles(_x3) {
387
- return _ref5.apply(this, arguments);
433
+ return _ref6.apply(this, arguments);
388
434
  };
389
435
  }();
390
436
  var removeChatHistory = /*#__PURE__*/function () {
391
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
392
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
393
- while (1) switch (_context4.prev = _context4.next) {
437
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
438
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
439
+ while (1) switch (_context5.prev = _context5.next) {
394
440
  case 0:
395
- return _context4.abrupt("return", new Promise(function (resolve, reject) {
396
- var _document10;
441
+ return _context5.abrupt("return", new Promise(function (resolve, reject) {
442
+ var _document11;
397
443
  var listener = function listener(event) {
398
444
  if (event.data.type === 'remove-chat-history-completed' && event.data.success) {
399
445
  resolve(event.data.message); // Resolve the promise with the result
@@ -408,7 +454,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
408
454
  window.addEventListener('message', listener);
409
455
 
410
456
  // @ts-ignore
411
- var iframeWin = (_document10 = document) === null || _document10 === void 0 || (_document10 = _document10.getElementById('webviewer-1')) === null || _document10 === void 0 ? void 0 : _document10.contentWindow;
457
+ var iframeWin = (_document11 = document) === null || _document11 === void 0 || (_document11 = _document11.getElementById('webviewer-1')) === null || _document11 === void 0 ? void 0 : _document11.contentWindow;
412
458
 
413
459
  // Sending the extract-pages message to the iframe
414
460
  iframeWin.postMessage({
@@ -417,21 +463,21 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
417
463
  }));
418
464
  case 1:
419
465
  case "end":
420
- return _context4.stop();
466
+ return _context5.stop();
421
467
  }
422
- }, _callee4);
468
+ }, _callee5);
423
469
  }));
424
470
  return function removeChatHistory() {
425
- return _ref6.apply(this, arguments);
471
+ return _ref7.apply(this, arguments);
426
472
  };
427
473
  }();
428
474
  var combineFiles = /*#__PURE__*/function () {
429
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(value) {
430
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
431
- while (1) switch (_context5.prev = _context5.next) {
475
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(value) {
476
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
477
+ while (1) switch (_context6.prev = _context6.next) {
432
478
  case 0:
433
- return _context5.abrupt("return", new Promise(function (resolve, reject) {
434
- var _document11;
479
+ return _context6.abrupt("return", new Promise(function (resolve, reject) {
480
+ var _document12;
435
481
  var listener = function listener(event) {
436
482
  if (event.data.type === 'combine-files-completed' && event.data.success) {
437
483
  resolve(event.data.message); // Resolve the promise with the result
@@ -446,7 +492,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
446
492
  window.addEventListener('message', listener);
447
493
 
448
494
  // @ts-ignore
449
- var iframeWin = (_document11 = document) === null || _document11 === void 0 || (_document11 = _document11.getElementById('webviewer-1')) === null || _document11 === void 0 ? void 0 : _document11.contentWindow;
495
+ var iframeWin = (_document12 = document) === null || _document12 === void 0 || (_document12 = _document12.getElementById('webviewer-1')) === null || _document12 === void 0 ? void 0 : _document12.contentWindow;
450
496
 
451
497
  // Sending the extract-pages message to the iframe
452
498
  iframeWin.postMessage({
@@ -456,21 +502,21 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
456
502
  }));
457
503
  case 1:
458
504
  case "end":
459
- return _context5.stop();
505
+ return _context6.stop();
460
506
  }
461
- }, _callee5);
507
+ }, _callee6);
462
508
  }));
463
509
  return function combineFiles(_x4) {
464
- return _ref7.apply(this, arguments);
510
+ return _ref8.apply(this, arguments);
465
511
  };
466
512
  }();
467
513
  var extractPages = /*#__PURE__*/function () {
468
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(value) {
469
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
470
- while (1) switch (_context6.prev = _context6.next) {
514
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(value) {
515
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
516
+ while (1) switch (_context7.prev = _context7.next) {
471
517
  case 0:
472
- return _context6.abrupt("return", new Promise(function (resolve, reject) {
473
- var _document12;
518
+ return _context7.abrupt("return", new Promise(function (resolve, reject) {
519
+ var _document13;
474
520
  var listener = function listener(event) {
475
521
  if (event.data.type === 'extract-pages-completed' && event.data.success) {
476
522
  resolve(event.data.result); // Resolve the promise with the result
@@ -485,7 +531,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
485
531
  window.addEventListener('message', listener);
486
532
 
487
533
  // @ts-ignore
488
- var iframeWin = (_document12 = document) === null || _document12 === void 0 || (_document12 = _document12.getElementById('webviewer-1')) === null || _document12 === void 0 ? void 0 : _document12.contentWindow;
534
+ var iframeWin = (_document13 = document) === null || _document13 === void 0 || (_document13 = _document13.getElementById('webviewer-1')) === null || _document13 === void 0 ? void 0 : _document13.contentWindow;
489
535
 
490
536
  // Sending the extract-pages message to the iframe
491
537
  iframeWin.postMessage({
@@ -495,16 +541,17 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
495
541
  }));
496
542
  case 1:
497
543
  case "end":
498
- return _context6.stop();
544
+ return _context7.stop();
499
545
  }
500
- }, _callee6);
546
+ }, _callee7);
501
547
  }));
502
548
  return function extractPages(_x5) {
503
- return _ref8.apply(this, arguments);
549
+ return _ref9.apply(this, arguments);
504
550
  };
505
551
  }();
506
552
  return {
507
553
  requestBuffer: requestBuffer,
554
+ finalizeDocument: finalizeDocument,
508
555
  removeChatHistory: removeChatHistory,
509
556
  setAuthInfo: setAuthInfo,
510
557
  splitPages: splitPages,
@@ -521,6 +568,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
521
568
  setThumbnailZoom: setThumbnailZoom,
522
569
  selectedPages: selectedPages,
523
570
  annotations: annotations,
571
+ hasSeal: hasSeal,
524
572
  authTokens: authTokens,
525
573
  signatureModalOpen: signatureModalOpen
526
574
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-pdf-editor-1",
3
- "version": "1.2.38",
3
+ "version": "1.2.40",
4
4
  "description": "## Core",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -25,6 +25,7 @@ export const useCreateIframeAndLoadViewer = ({
25
25
  const iframeLoadedSuccessfully = useRef(false); // Add this ref to keep track of iframe's load state
26
26
  const [pagesLoaded, setPagesLoaded] = useState(null);
27
27
  const [annotations, setAnnotations] = useState([]);
28
+ const [hasSeal, setHasSeal] = useState(false);
28
29
  const [authTokens, setAuthTokens] = useState(null);
29
30
  const [signatureModalOpen, setSignatureModalOpen] = useState(false);
30
31
 
@@ -84,6 +85,9 @@ export const useCreateIframeAndLoadViewer = ({
84
85
  if (event.data.type === "annotations-change") {
85
86
  setAnnotations(event.data.message);
86
87
  }
88
+ if (event.data.type === 'has-seal-change') {
89
+ setHasSeal(!!event.data.message);
90
+ }
87
91
  if (event.data.type === "annotation-modal-open-change") {
88
92
  setSignatureModalOpen(event.data.message);
89
93
  }
@@ -211,6 +215,30 @@ export const useCreateIframeAndLoadViewer = ({
211
215
  });
212
216
  };
213
217
 
218
+ const finalizeDocument = async () => {
219
+ return new Promise((resolve, reject) => {
220
+ const listener = (event) => {
221
+ if (!event || !event.data) return;
222
+ if (event.data.type === 'finalize-document') {
223
+ // Child posts { type: 'finalize-document', annotations }
224
+ resolve(event.data.annotations);
225
+ window.removeEventListener('message', listener);
226
+ } else if (event.data.type === 'finalize-document-failed') {
227
+ reject(new Error(event.data.message || 'Finalize document failed'));
228
+ window.removeEventListener('message', listener);
229
+ }
230
+ };
231
+
232
+ // Add listener to capture the next finalize signal
233
+ window.addEventListener('message', listener);
234
+
235
+ // Optionally nudge the iframe if it supports being prompted to finalize
236
+ // @ts-ignore
237
+ var iframeWin = document?.getElementById('webviewer-1')?.contentWindow;
238
+ iframeWin?.postMessage({ type: 'finalize-document' }, window.location.origin);
239
+ });
240
+ }
241
+
214
242
  const toggleSignatureModal = (enable) => {
215
243
  // @ts-ignore
216
244
  var iframeWin = document?.getElementById('webviewer-1')?.contentWindow;
@@ -354,6 +382,7 @@ export const useCreateIframeAndLoadViewer = ({
354
382
 
355
383
  return {
356
384
  requestBuffer,
385
+ finalizeDocument,
357
386
  removeChatHistory,
358
387
  setAuthInfo,
359
388
  splitPages,
@@ -369,7 +398,8 @@ export const useCreateIframeAndLoadViewer = ({
369
398
  setThumbnailZoom,
370
399
  selectedPages,
371
400
  annotations,
401
+ hasSeal,
372
402
  authTokens,
373
403
  signatureModalOpen
374
404
  };
375
- };
405
+ };