@pdfme/ui 5.5.6 → 5.5.7-dev.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/dist/index.es.js +4885 -4839
- package/dist/index.umd.js +2 -2
- package/dist/types/src/Designer.d.ts +6 -0
- package/dist/types/src/Form.d.ts +8 -0
- package/dist/types/src/Viewer.d.ts +8 -0
- package/dist/types/src/components/Designer/index.d.ts +1 -1
- package/dist/types/src/components/Preview.d.ts +5 -1
- package/package.json +2 -2
- package/src/Designer.tsx +17 -1
- package/src/Form.tsx +21 -0
- package/src/Viewer.tsx +27 -1
- package/src/components/Designer/index.tsx +6 -2
- package/src/components/Preview.tsx +11 -1
|
@@ -3,13 +3,19 @@ import { BaseUIClass } from './class.js';
|
|
|
3
3
|
declare class Designer extends BaseUIClass {
|
|
4
4
|
private onSaveTemplateCallback?;
|
|
5
5
|
private onChangeTemplateCallback?;
|
|
6
|
+
private onPageChangeCallback?;
|
|
6
7
|
private pageCursor;
|
|
7
8
|
constructor(props: DesignerProps);
|
|
8
9
|
saveTemplate(): void;
|
|
9
10
|
updateTemplate(template: Template): void;
|
|
10
11
|
onSaveTemplate(cb: (template: Template) => void): void;
|
|
11
12
|
onChangeTemplate(cb: (template: Template) => void): void;
|
|
13
|
+
onPageChange(cb: (pageInfo: {
|
|
14
|
+
currentPage: number;
|
|
15
|
+
totalPages: number;
|
|
16
|
+
}) => void): void;
|
|
12
17
|
getPageCursor(): number;
|
|
18
|
+
getTotalPages(): number;
|
|
13
19
|
protected render(): void;
|
|
14
20
|
}
|
|
15
21
|
export default Designer;
|
package/dist/types/src/Form.d.ts
CHANGED
|
@@ -2,12 +2,20 @@ import { PreviewProps } from '@pdfme/common';
|
|
|
2
2
|
import { PreviewUI } from './class.js';
|
|
3
3
|
declare class Form extends PreviewUI {
|
|
4
4
|
private onChangeInputCallback?;
|
|
5
|
+
private onPageChangeCallback?;
|
|
6
|
+
private pageCursor;
|
|
5
7
|
constructor(props: PreviewProps);
|
|
6
8
|
onChangeInput(cb: (arg: {
|
|
7
9
|
index: number;
|
|
8
10
|
value: string;
|
|
9
11
|
name: string;
|
|
10
12
|
}) => void): void;
|
|
13
|
+
onPageChange(cb: (pageInfo: {
|
|
14
|
+
currentPage: number;
|
|
15
|
+
totalPages: number;
|
|
16
|
+
}) => void): void;
|
|
17
|
+
getPageCursor(): number;
|
|
18
|
+
getTotalPages(): number;
|
|
11
19
|
setInputs(inputs: {
|
|
12
20
|
[key: string]: string;
|
|
13
21
|
}[]): void;
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { PreviewProps } from '@pdfme/common';
|
|
2
2
|
import { PreviewUI } from './class.js';
|
|
3
3
|
declare class Viewer extends PreviewUI {
|
|
4
|
+
private onPageChangeCallback?;
|
|
5
|
+
private pageCursor;
|
|
4
6
|
constructor(props: PreviewProps);
|
|
7
|
+
onPageChange(cb: (pageInfo: {
|
|
8
|
+
currentPage: number;
|
|
9
|
+
totalPages: number;
|
|
10
|
+
}) => void): void;
|
|
11
|
+
getPageCursor(): number;
|
|
12
|
+
getTotalPages(): number;
|
|
5
13
|
protected render(): void;
|
|
6
14
|
}
|
|
7
15
|
export default Viewer;
|
|
@@ -6,6 +6,6 @@ declare const TemplateEditor: ({ template, size, onSaveTemplate, onChangeTemplat
|
|
|
6
6
|
onChangeTemplate: (t: Template) => void;
|
|
7
7
|
} & {
|
|
8
8
|
onChangeTemplate: (t: Template) => void;
|
|
9
|
-
onPageCursorChange: (newPageCursor: number) => void;
|
|
9
|
+
onPageCursorChange: (newPageCursor: number, totalPages: number) => void;
|
|
10
10
|
}) => React.JSX.Element;
|
|
11
11
|
export default TemplateEditor;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PreviewProps, Size } from '@pdfme/common';
|
|
3
|
-
declare const Preview: ({ template, inputs, size, onChangeInput, }: Omit<PreviewProps, "domContainer"> & {
|
|
3
|
+
declare const Preview: ({ template, inputs, size, onChangeInput, onPageChange, }: Omit<PreviewProps, "domContainer"> & {
|
|
4
4
|
onChangeInput?: (args: {
|
|
5
5
|
index: number;
|
|
6
6
|
value: string;
|
|
7
7
|
name: string;
|
|
8
8
|
}) => void;
|
|
9
|
+
onPageChange?: (pageInfo: {
|
|
10
|
+
currentPage: number;
|
|
11
|
+
totalPages: number;
|
|
12
|
+
}) => void;
|
|
9
13
|
size: Size;
|
|
10
14
|
}) => React.JSX.Element;
|
|
11
15
|
export default Preview;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pdfme/ui",
|
|
3
|
-
"version": "5.5.
|
|
3
|
+
"version": "5.5.7-dev.3",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"author": "hand-dot",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"module": "dist/index.es.js",
|
|
26
26
|
"types": "dist/types/src/index.d.ts",
|
|
27
27
|
"scripts": {
|
|
28
|
-
"dev": "
|
|
28
|
+
"dev": "run-p devBuild:watch devBuildType:watch",
|
|
29
29
|
"devBuild:watch": "esbuild src/index.ts --bundle --outfile=dist/index.es.js --format=esm --watch",
|
|
30
30
|
"devBuildType:watch": "tsc --emitDeclarationOnly --watch",
|
|
31
31
|
"build": "vite build && tsc --emitDeclarationOnly",
|
package/src/Designer.tsx
CHANGED
|
@@ -16,6 +16,7 @@ import AppContextProvider from './components/AppContextProvider.js';
|
|
|
16
16
|
class Designer extends BaseUIClass {
|
|
17
17
|
private onSaveTemplateCallback?: (template: Template) => void;
|
|
18
18
|
private onChangeTemplateCallback?: (template: Template) => void;
|
|
19
|
+
private onPageChangeCallback?: (pageInfo: { currentPage: number; totalPages: number }) => void;
|
|
19
20
|
private pageCursor: number = 0;
|
|
20
21
|
|
|
21
22
|
constructor(props: DesignerProps) {
|
|
@@ -48,10 +49,19 @@ class Designer extends BaseUIClass {
|
|
|
48
49
|
this.onChangeTemplateCallback = cb;
|
|
49
50
|
}
|
|
50
51
|
|
|
52
|
+
public onPageChange(cb: (pageInfo: { currentPage: number; totalPages: number }) => void) {
|
|
53
|
+
this.onPageChangeCallback = cb;
|
|
54
|
+
}
|
|
55
|
+
|
|
51
56
|
public getPageCursor() {
|
|
52
57
|
return this.pageCursor;
|
|
53
58
|
}
|
|
54
59
|
|
|
60
|
+
public getTotalPages() {
|
|
61
|
+
if (!this.domContainer) throw Error(DESTROYED_ERR_MSG);
|
|
62
|
+
return this.template.schemas.length;
|
|
63
|
+
}
|
|
64
|
+
|
|
55
65
|
protected render() {
|
|
56
66
|
if (!this.domContainer) throw Error(DESTROYED_ERR_MSG);
|
|
57
67
|
ReactDOM.render(
|
|
@@ -77,8 +87,14 @@ class Designer extends BaseUIClass {
|
|
|
77
87
|
this.onChangeTemplateCallback(template);
|
|
78
88
|
}
|
|
79
89
|
}}
|
|
80
|
-
onPageCursorChange={(newPageCursor: number) => {
|
|
90
|
+
onPageCursorChange={(newPageCursor: number, totalPages: number) => {
|
|
81
91
|
this.pageCursor = newPageCursor;
|
|
92
|
+
if (this.onPageChangeCallback) {
|
|
93
|
+
this.onPageChangeCallback({
|
|
94
|
+
currentPage: newPageCursor,
|
|
95
|
+
totalPages: totalPages,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
82
98
|
}}
|
|
83
99
|
size={this.size}
|
|
84
100
|
/>
|
package/src/Form.tsx
CHANGED
|
@@ -8,6 +8,8 @@ import Preview from './components/Preview.js';
|
|
|
8
8
|
|
|
9
9
|
class Form extends PreviewUI {
|
|
10
10
|
private onChangeInputCallback?: (arg: { index: number; value: string; name: string }) => void;
|
|
11
|
+
private onPageChangeCallback?: (pageInfo: { currentPage: number; totalPages: number }) => void;
|
|
12
|
+
private pageCursor: number = 0;
|
|
11
13
|
|
|
12
14
|
constructor(props: PreviewProps) {
|
|
13
15
|
super(props);
|
|
@@ -17,6 +19,19 @@ class Form extends PreviewUI {
|
|
|
17
19
|
this.onChangeInputCallback = cb;
|
|
18
20
|
}
|
|
19
21
|
|
|
22
|
+
public onPageChange(cb: (pageInfo: { currentPage: number; totalPages: number }) => void) {
|
|
23
|
+
this.onPageChangeCallback = cb;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public getPageCursor() {
|
|
27
|
+
return this.pageCursor;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public getTotalPages() {
|
|
31
|
+
if (!this.domContainer) throw Error(DESTROYED_ERR_MSG);
|
|
32
|
+
return this.template.schemas.length;
|
|
33
|
+
}
|
|
34
|
+
|
|
20
35
|
public setInputs(inputs: { [key: string]: string }[]): void {
|
|
21
36
|
const previousInputs = this.getInputs();
|
|
22
37
|
|
|
@@ -71,6 +86,12 @@ class Form extends PreviewUI {
|
|
|
71
86
|
}
|
|
72
87
|
}
|
|
73
88
|
}}
|
|
89
|
+
onPageChange={(pageInfo) => {
|
|
90
|
+
this.pageCursor = pageInfo.currentPage;
|
|
91
|
+
if (this.onPageChangeCallback) {
|
|
92
|
+
this.onPageChangeCallback(pageInfo);
|
|
93
|
+
}
|
|
94
|
+
}}
|
|
74
95
|
/>
|
|
75
96
|
</AppContextProvider>,
|
|
76
97
|
this.domContainer,
|
package/src/Viewer.tsx
CHANGED
|
@@ -7,6 +7,9 @@ import Preview from './components/Preview.js';
|
|
|
7
7
|
import AppContextProvider from './components/AppContextProvider.js';
|
|
8
8
|
|
|
9
9
|
class Viewer extends PreviewUI {
|
|
10
|
+
private onPageChangeCallback?: (pageInfo: { currentPage: number; totalPages: number }) => void;
|
|
11
|
+
private pageCursor: number = 0;
|
|
12
|
+
|
|
10
13
|
constructor(props: PreviewProps) {
|
|
11
14
|
super(props);
|
|
12
15
|
console.warn(
|
|
@@ -14,6 +17,19 @@ class Viewer extends PreviewUI {
|
|
|
14
17
|
);
|
|
15
18
|
}
|
|
16
19
|
|
|
20
|
+
public onPageChange(cb: (pageInfo: { currentPage: number; totalPages: number }) => void) {
|
|
21
|
+
this.onPageChangeCallback = cb;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public getPageCursor() {
|
|
25
|
+
return this.pageCursor;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public getTotalPages() {
|
|
29
|
+
if (!this.domContainer) throw Error(DESTROYED_ERR_MSG);
|
|
30
|
+
return this.template.schemas.length;
|
|
31
|
+
}
|
|
32
|
+
|
|
17
33
|
protected render() {
|
|
18
34
|
if (!this.domContainer) throw Error(DESTROYED_ERR_MSG);
|
|
19
35
|
ReactDOM.render(
|
|
@@ -23,7 +39,17 @@ class Viewer extends PreviewUI {
|
|
|
23
39
|
plugins={this.getPluginsRegistry()}
|
|
24
40
|
options={this.getOptions()}
|
|
25
41
|
>
|
|
26
|
-
<Preview
|
|
42
|
+
<Preview
|
|
43
|
+
template={this.template}
|
|
44
|
+
size={this.size}
|
|
45
|
+
inputs={this.inputs}
|
|
46
|
+
onPageChange={(pageInfo) => {
|
|
47
|
+
this.pageCursor = pageInfo.currentPage;
|
|
48
|
+
if (this.onPageChangeCallback) {
|
|
49
|
+
this.onPageChangeCallback(pageInfo);
|
|
50
|
+
}
|
|
51
|
+
}}
|
|
52
|
+
/>
|
|
27
53
|
</AppContextProvider>,
|
|
28
54
|
this.domContainer,
|
|
29
55
|
);
|
|
@@ -54,7 +54,7 @@ const TemplateEditor = ({
|
|
|
54
54
|
onChangeTemplate: (t: Template) => void;
|
|
55
55
|
} & {
|
|
56
56
|
onChangeTemplate: (t: Template) => void;
|
|
57
|
-
onPageCursorChange: (newPageCursor: number) => void;
|
|
57
|
+
onPageCursorChange: (newPageCursor: number, totalPages: number) => void;
|
|
58
58
|
}) => {
|
|
59
59
|
const past = useRef<SchemaForUI[][]>([]);
|
|
60
60
|
const future = useRef<SchemaForUI[][]>([]);
|
|
@@ -110,7 +110,7 @@ const TemplateEditor = ({
|
|
|
110
110
|
pageCursor,
|
|
111
111
|
onChangePageCursor: (p) => {
|
|
112
112
|
setPageCursor(p);
|
|
113
|
-
onPageCursorChange(p);
|
|
113
|
+
onPageCursorChange(p, schemasList.length);
|
|
114
114
|
onEditEnd();
|
|
115
115
|
},
|
|
116
116
|
});
|
|
@@ -239,6 +239,9 @@ const TemplateEditor = ({
|
|
|
239
239
|
onChangeTemplate(newTemplate);
|
|
240
240
|
await updateTemplate(newTemplate);
|
|
241
241
|
void refresh(newTemplate);
|
|
242
|
+
|
|
243
|
+
// Notify page change with updated total pages
|
|
244
|
+
onPageCursorChange(newPageCursor, sl.length);
|
|
242
245
|
|
|
243
246
|
// Use setTimeout to update scroll position after render
|
|
244
247
|
setTimeout(() => {
|
|
@@ -326,6 +329,7 @@ const TemplateEditor = ({
|
|
|
326
329
|
// Update scroll position and state
|
|
327
330
|
canvasRef.current.scrollTop = getPagesScrollTopByIndex(pageSizes, p, scale);
|
|
328
331
|
setPageCursor(p);
|
|
332
|
+
onPageCursorChange(p, schemasList.length);
|
|
329
333
|
onEditEnd();
|
|
330
334
|
}}
|
|
331
335
|
zoomLevel={zoomLevel}
|
|
@@ -27,8 +27,10 @@ const Preview = ({
|
|
|
27
27
|
inputs,
|
|
28
28
|
size,
|
|
29
29
|
onChangeInput,
|
|
30
|
+
onPageChange,
|
|
30
31
|
}: Omit<PreviewProps, 'domContainer'> & {
|
|
31
32
|
onChangeInput?: (args: { index: number; value: string; name: string }) => void;
|
|
33
|
+
onPageChange?: (pageInfo: { currentPage: number; totalPages: number }) => void;
|
|
32
34
|
size: Size;
|
|
33
35
|
}) => {
|
|
34
36
|
const { token } = theme.useToken();
|
|
@@ -102,7 +104,12 @@ const Preview = ({
|
|
|
102
104
|
pageSizes,
|
|
103
105
|
scale,
|
|
104
106
|
pageCursor,
|
|
105
|
-
onChangePageCursor:
|
|
107
|
+
onChangePageCursor: (p) => {
|
|
108
|
+
setPageCursor(p);
|
|
109
|
+
if (onPageChange) {
|
|
110
|
+
onPageChange({ currentPage: p, totalPages: schemasList.length });
|
|
111
|
+
}
|
|
112
|
+
},
|
|
106
113
|
});
|
|
107
114
|
|
|
108
115
|
const handleChangeInput = ({ name, value }: { name: string; value: string }) =>
|
|
@@ -146,6 +153,9 @@ const Preview = ({
|
|
|
146
153
|
if (!containerRef.current) return;
|
|
147
154
|
containerRef.current.scrollTop = getPagesScrollTopByIndex(pageSizes, p, scale);
|
|
148
155
|
setPageCursor(p);
|
|
156
|
+
if (onPageChange) {
|
|
157
|
+
onPageChange({ currentPage: p, totalPages: schemasList.length });
|
|
158
|
+
}
|
|
149
159
|
}}
|
|
150
160
|
zoomLevel={zoomLevel}
|
|
151
161
|
setZoomLevel={setZoomLevel}
|