react-pdf-editor-1 1.2.42 → 1.2.44

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/index.js CHANGED
@@ -32,7 +32,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
32
32
  initialAnnotations = _ref.initialAnnotations,
33
33
  notarySeal = _ref.notarySeal,
34
34
  initialSigners = _ref.initialSigners,
35
- modifiedUiElements = _ref.modifiedUiElements;
35
+ modifiedUiElements = _ref.modifiedUiElements,
36
+ textTagDefaults = _ref.textTagDefaults;
36
37
  var _useState = (0, _react.useState)(false),
37
38
  _useState2 = _slicedToArray(_useState, 2),
38
39
  internalIsReady = _useState2[0],
@@ -67,6 +68,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
67
68
  _useState16 = _slicedToArray(_useState15, 2),
68
69
  signatureModalOpen = _useState16[0],
69
70
  setSignatureModalOpen = _useState16[1];
71
+ var documentUpdatedListeners = (0, _react.useRef)(new Set());
70
72
  var createIframe = function createIframe() {
71
73
  var iframe = document.createElement('iframe');
72
74
  iframe.src = iframeSrc || "/pdf-ui/index.html";
@@ -101,7 +103,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
101
103
  initialSigners: initialSigners,
102
104
  modifiedUiElements: modifiedUiElements,
103
105
  authInfo: authInfo,
104
- defaultAnnotationEditorMode: defaultAnnotationEditorMode
106
+ defaultAnnotationEditorMode: defaultAnnotationEditorMode,
107
+ textTagDefaults: textTagDefaults
105
108
  };
106
109
 
107
110
  // Set up a function to send the message
@@ -118,6 +121,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
118
121
 
119
122
  // Set up an event listener to listen for a response from the iframe
120
123
  window.parent.addEventListener('message', function (event) {
124
+ var _event$data;
121
125
  if (event.data.type === 'file-received' && event.data.success) {
122
126
  // If the message was received successfully, clear the interval
123
127
  clearInterval(interval);
@@ -146,6 +150,15 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
146
150
  if (event.data.type === "annotation-modal-open-change") {
147
151
  setSignatureModalOpen(event.data.message);
148
152
  }
153
+ if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'document-updated') {
154
+ documentUpdatedListeners.current.forEach(function (listener) {
155
+ try {
156
+ listener(event.data.message);
157
+ } catch (listenerError) {
158
+ console.error('Error running document-updated listener', listenerError);
159
+ }
160
+ });
161
+ }
149
162
  });
150
163
  };
151
164
  container.current.appendChild(iframe);
@@ -184,6 +197,11 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
184
197
  return window.parent.removeEventListener('message', handleIframeLoaded);
185
198
  };
186
199
  }, []);
200
+ (0, _react.useEffect)(function () {
201
+ return function () {
202
+ documentUpdatedListeners.current.clear();
203
+ };
204
+ }, []);
187
205
  var _useState17 = (0, _react.useState)(null),
188
206
  _useState18 = _slicedToArray(_useState17, 2),
189
207
  clickedTag = _useState18[0],
@@ -558,6 +576,16 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
558
576
  return _ref9.apply(this, arguments);
559
577
  };
560
578
  }();
579
+ var onDocumentUpdated = (0, _react.useCallback)(function (listener) {
580
+ if (typeof listener !== 'function') {
581
+ console.warn('onDocumentUpdated requires a function listener');
582
+ return function () {};
583
+ }
584
+ documentUpdatedListeners.current.add(listener);
585
+ return function () {
586
+ documentUpdatedListeners.current["delete"](listener);
587
+ };
588
+ }, []);
561
589
  return {
562
590
  requestBuffer: requestBuffer,
563
591
  finalizeDocument: finalizeDocument,
@@ -580,7 +608,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
580
608
  notarySealIds: notarySealIds,
581
609
  hasSeal: hasSeal,
582
610
  authTokens: authTokens,
583
- signatureModalOpen: signatureModalOpen
611
+ signatureModalOpen: signatureModalOpen,
612
+ onDocumentUpdated: onDocumentUpdated
584
613
  };
585
614
  };
586
615
  exports.useCreateIframeAndLoadViewer = useCreateIframeAndLoadViewer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-pdf-editor-1",
3
- "version": "1.2.42",
3
+ "version": "1.2.44",
4
4
  "description": "## Core",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/index.d.ts CHANGED
@@ -29,5 +29,6 @@ declare module 'pdf_editor_aleon35_react_plugin' {
29
29
  splitPages: () => void;
30
30
  extractPages: () => void;
31
31
  selectedPages: number[];
32
+ onDocumentUpdated: (listener: (pdfData: Uint8Array) => void) => () => void;
32
33
  };
33
34
  }
package/src/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { useEffect, useRef, useState } from 'react';
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
2
 
3
3
  export const useCreateIframeAndLoadViewer = ({
4
4
  files,
@@ -17,7 +17,8 @@ export const useCreateIframeAndLoadViewer = ({
17
17
  initialAnnotations,
18
18
  notarySeal,
19
19
  initialSigners,
20
- modifiedUiElements
20
+ modifiedUiElements,
21
+ textTagDefaults
21
22
  }) => {
22
23
  const [internalIsReady, setInternalIsReady] = useState(false); // Add this state variable
23
24
  const [selectedPages, setSelectedPages] = useState([]);
@@ -29,6 +30,7 @@ export const useCreateIframeAndLoadViewer = ({
29
30
  const [notarySealIds, setNotarySealIds] = useState([]);
30
31
  const [authTokens, setAuthTokens] = useState(null);
31
32
  const [signatureModalOpen, setSignatureModalOpen] = useState(false);
33
+ const documentUpdatedListeners = useRef(new Set());
32
34
 
33
35
  const createIframe = () => {
34
36
  const iframe = document.createElement('iframe');
@@ -53,7 +55,7 @@ export const useCreateIframeAndLoadViewer = ({
53
55
  // When the iframe is loaded, post the file to it
54
56
  iframe.onload = function() {
55
57
  const targetOrigin = window.location.origin;
56
- const message = { files, fileName, tools, locale, licenseKey, mode, uuid, customData, initialAnnotations, notarySeal, initialSigners, modifiedUiElements, authInfo, defaultAnnotationEditorMode };
58
+ const message = { files, fileName, tools, locale, licenseKey, mode, uuid, customData, initialAnnotations, notarySeal, initialSigners, modifiedUiElements, authInfo, defaultAnnotationEditorMode, textTagDefaults };
57
59
 
58
60
  // Set up a function to send the message
59
61
  const sendMessage = () => {
@@ -97,6 +99,16 @@ export const useCreateIframeAndLoadViewer = ({
97
99
  if (event.data.type === "annotation-modal-open-change") {
98
100
  setSignatureModalOpen(event.data.message);
99
101
  }
102
+ if (event.data?.type === 'document-updated') {
103
+ documentUpdatedListeners.current.forEach((listener) => {
104
+ try {
105
+ listener(event.data.message);
106
+ }
107
+ catch (listenerError) {
108
+ console.error('Error running document-updated listener', listenerError);
109
+ }
110
+ });
111
+ }
100
112
  });
101
113
  };
102
114
 
@@ -134,6 +146,10 @@ export const useCreateIframeAndLoadViewer = ({
134
146
  return () => window.parent.removeEventListener('message', handleIframeLoaded);
135
147
  }, []);
136
148
 
149
+ useEffect(() => () => {
150
+ documentUpdatedListeners.current.clear();
151
+ }, []);
152
+
137
153
  const [clickedTag, setClickedTag] = useState(null);
138
154
 
139
155
  const handleTagClicked = (event) => {
@@ -386,6 +402,19 @@ export const useCreateIframeAndLoadViewer = ({
386
402
  });
387
403
  };
388
404
 
405
+ const onDocumentUpdated = useCallback((listener) => {
406
+ if (typeof listener !== 'function') {
407
+ console.warn('onDocumentUpdated requires a function listener');
408
+ return () => {};
409
+ }
410
+
411
+ documentUpdatedListeners.current.add(listener);
412
+
413
+ return () => {
414
+ documentUpdatedListeners.current.delete(listener);
415
+ };
416
+ }, []);
417
+
389
418
  return {
390
419
  requestBuffer,
391
420
  finalizeDocument,
@@ -407,6 +436,7 @@ export const useCreateIframeAndLoadViewer = ({
407
436
  notarySealIds,
408
437
  hasSeal,
409
438
  authTokens,
410
- signatureModalOpen
439
+ signatureModalOpen,
440
+ onDocumentUpdated
411
441
  };
412
442
  };