@libresign/pdf-elements 0.3.1 → 1.0.0

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 (39) hide show
  1. package/README.md +24 -1
  2. package/dist/components/DraggableElement.vue.d.ts +240 -0
  3. package/dist/components/PDFElements.vue.d.ts +552 -0
  4. package/dist/components/PDFPage.vue.d.ts +40 -0
  5. package/dist/index.css +1 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.mjs +1293 -0
  8. package/dist/pdf-uHvE5neP.mjs +17593 -0
  9. package/dist/pdf.worker.min-DmO9Xdfo.mjs +4 -0
  10. package/dist/types.d.ts +30 -0
  11. package/dist/utils/asyncReader.d.ts +10 -0
  12. package/dist/utils/geometry.d.ts +5 -0
  13. package/dist/utils/measurements.d.ts +12 -0
  14. package/dist/utils/objectStore.d.ts +5 -0
  15. package/dist/utils/pageBounds.d.ts +5 -0
  16. package/dist/utils/zoom.d.ts +2 -0
  17. package/package.json +46 -21
  18. package/src/components/DraggableElement.vue +18 -15
  19. package/src/components/PDFElements.vue +135 -60
  20. package/src/components/PDFPage.vue +11 -7
  21. package/src/index.ts +18 -0
  22. package/src/types.ts +35 -0
  23. package/src/utils/asyncReader.ts +103 -0
  24. package/src/utils/{geometry.js → geometry.ts} +16 -2
  25. package/src/utils/{measurements.js → measurements.ts} +20 -1
  26. package/src/utils/{objectStore.js → objectStore.ts} +15 -4
  27. package/src/utils/{pageBounds.js → pageBounds.ts} +2 -2
  28. package/src/utils/{zoom.js → zoom.ts} +3 -1
  29. package/dist/demo.html +0 -1
  30. package/dist/pdf-elements.common.js +0 -31698
  31. package/dist/pdf-elements.common.js.map +0 -1
  32. package/dist/pdf-elements.css +0 -1
  33. package/dist/pdf-elements.umd.js +0 -31710
  34. package/dist/pdf-elements.umd.js.map +0 -1
  35. package/dist/pdf-elements.umd.min.js +0 -2
  36. package/dist/pdf-elements.umd.min.js.map +0 -1
  37. package/dist/pdf.worker.min.mjs +0 -22
  38. package/src/index.js +0 -17
  39. package/src/utils/asyncReader.js +0 -44
package/README.md CHANGED
@@ -5,10 +5,16 @@ SPDX-License-Identifier: AGPL-3.0-or-later
5
5
 
6
6
  # PDF Elements
7
7
 
8
- A Vue 2 component for rendering PDFs with draggable and resizable element overlays.
8
+ A Vue 3 component for rendering PDFs with draggable and resizable element overlays.
9
9
 
10
10
  **[Demo](https://libresign.github.io/pdf-elements/)** · [Examples](examples/)
11
11
 
12
+ ## Development
13
+
14
+ - `npm run dev` - Run the demo with Vite
15
+ - `npm run build` - Build the library (ESM + types)
16
+ - `npm run build:demo` - Build the demo to `dist-demo`
17
+
12
18
  ## API
13
19
 
14
20
  ### Props
@@ -28,6 +34,23 @@ A Vue 2 component for rendering PDFs with draggable and resizable element overla
28
34
  | `ignoreClickOutsideSelectors` | Array | `[]` | CSS selectors that keep the selection active when clicking outside the element |
29
35
  | `pageCountFormat` | String | `'{currentPage} of {totalPages}'` | Format string for page counter |
30
36
  | `autoFitZoom` | Boolean | `false` | Automatically adjust zoom to fit viewport on window resize |
37
+ | `pdfjsOptions` | Object | `{}` | Options passed to PDF.js `getDocument` (advanced) |
38
+
39
+ ### PDF.js options
40
+
41
+ `pdfjsOptions` is forwarded to PDF.js `getDocument(...)` and can be used to tune performance.
42
+
43
+ Example:
44
+
45
+ ```ts
46
+ <PDFElements
47
+ :pdfjs-options="{
48
+ disableFontFace: true,
49
+ disableRange: true,
50
+ disableStream: true,
51
+ }"
52
+ />
53
+ ```
31
54
 
32
55
  ### Events
33
56
 
@@ -0,0 +1,240 @@
1
+ import { PropType, CSSProperties } from 'vue';
2
+ import { PDFElementObject } from '../types';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ object: {
5
+ type: PropType<PDFElementObject>;
6
+ required: true;
7
+ };
8
+ pagesScale: {
9
+ type: NumberConstructor;
10
+ default: number;
11
+ };
12
+ pageWidth: {
13
+ type: NumberConstructor;
14
+ required: true;
15
+ };
16
+ pageHeight: {
17
+ type: NumberConstructor;
18
+ required: true;
19
+ };
20
+ onUpdate: {
21
+ type: PropType<(...args: any[]) => void>;
22
+ default: () => void;
23
+ };
24
+ onDelete: {
25
+ type: PropType<(...args: any[]) => void>;
26
+ default: () => void;
27
+ };
28
+ onDuplicate: {
29
+ type: PropType<(...args: any[]) => void>;
30
+ default: () => void;
31
+ };
32
+ onDragStart: {
33
+ type: PropType<(...args: any[]) => void>;
34
+ default: () => void;
35
+ };
36
+ onDragMove: {
37
+ type: PropType<(...args: any[]) => void>;
38
+ default: () => void;
39
+ };
40
+ onDragEnd: {
41
+ type: PropType<(...args: any[]) => void>;
42
+ default: () => void;
43
+ };
44
+ isBeingDraggedGlobally: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ draggingClientPos: {
49
+ type: PropType<{
50
+ x: number;
51
+ y: number;
52
+ }>;
53
+ default: () => {
54
+ x: number;
55
+ y: number;
56
+ };
57
+ };
58
+ currentDocIndex: {
59
+ type: NumberConstructor;
60
+ default: number;
61
+ };
62
+ currentPageIndex: {
63
+ type: NumberConstructor;
64
+ default: number;
65
+ };
66
+ globalDragDocIndex: {
67
+ type: NumberConstructor;
68
+ default: number;
69
+ };
70
+ globalDragPageIndex: {
71
+ type: NumberConstructor;
72
+ default: number;
73
+ };
74
+ showSelectionUi: {
75
+ type: BooleanConstructor;
76
+ default: boolean;
77
+ };
78
+ showDefaultActions: {
79
+ type: BooleanConstructor;
80
+ default: boolean;
81
+ };
82
+ readOnly: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
86
+ ignoreClickOutsideSelectors: {
87
+ type: PropType<string[]>;
88
+ default: () => any[];
89
+ };
90
+ }>, {}, {
91
+ isSelected: boolean;
92
+ mode: string;
93
+ direction: string;
94
+ startX: number;
95
+ startY: number;
96
+ startLeft: number;
97
+ startTop: number;
98
+ startWidth: number;
99
+ startHeight: number;
100
+ offsetX: number;
101
+ offsetY: number;
102
+ resizeOffsetX: number;
103
+ resizeOffsetY: number;
104
+ resizeOffsetW: number;
105
+ resizeOffsetH: number;
106
+ aspectRatio: number;
107
+ lastMouseX: number;
108
+ lastMouseY: number;
109
+ pointerOffsetDoc: {
110
+ x: number;
111
+ y: number;
112
+ };
113
+ currentPageRect: any;
114
+ rafId: any;
115
+ }, {
116
+ resizeDirections(): string[];
117
+ elementStyle(): CSSProperties;
118
+ toolbarStyle(): CSSProperties;
119
+ dragElementStyle(): CSSProperties;
120
+ }, {
121
+ handleElementClick(event: any): void;
122
+ handleClickOutside(event: any): void;
123
+ startResizeFromSlot(direction: any, event: any): void;
124
+ startDrag(event: any): void;
125
+ startResize(direction: any, event: any): void;
126
+ handleMove(event: any): void;
127
+ stopInteraction(): void;
128
+ capturePageRect(): any;
129
+ resetResizeOffsets(): void;
130
+ resetOffsets(): void;
131
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
132
+ object: {
133
+ type: PropType<PDFElementObject>;
134
+ required: true;
135
+ };
136
+ pagesScale: {
137
+ type: NumberConstructor;
138
+ default: number;
139
+ };
140
+ pageWidth: {
141
+ type: NumberConstructor;
142
+ required: true;
143
+ };
144
+ pageHeight: {
145
+ type: NumberConstructor;
146
+ required: true;
147
+ };
148
+ onUpdate: {
149
+ type: PropType<(...args: any[]) => void>;
150
+ default: () => void;
151
+ };
152
+ onDelete: {
153
+ type: PropType<(...args: any[]) => void>;
154
+ default: () => void;
155
+ };
156
+ onDuplicate: {
157
+ type: PropType<(...args: any[]) => void>;
158
+ default: () => void;
159
+ };
160
+ onDragStart: {
161
+ type: PropType<(...args: any[]) => void>;
162
+ default: () => void;
163
+ };
164
+ onDragMove: {
165
+ type: PropType<(...args: any[]) => void>;
166
+ default: () => void;
167
+ };
168
+ onDragEnd: {
169
+ type: PropType<(...args: any[]) => void>;
170
+ default: () => void;
171
+ };
172
+ isBeingDraggedGlobally: {
173
+ type: BooleanConstructor;
174
+ default: boolean;
175
+ };
176
+ draggingClientPos: {
177
+ type: PropType<{
178
+ x: number;
179
+ y: number;
180
+ }>;
181
+ default: () => {
182
+ x: number;
183
+ y: number;
184
+ };
185
+ };
186
+ currentDocIndex: {
187
+ type: NumberConstructor;
188
+ default: number;
189
+ };
190
+ currentPageIndex: {
191
+ type: NumberConstructor;
192
+ default: number;
193
+ };
194
+ globalDragDocIndex: {
195
+ type: NumberConstructor;
196
+ default: number;
197
+ };
198
+ globalDragPageIndex: {
199
+ type: NumberConstructor;
200
+ default: number;
201
+ };
202
+ showSelectionUi: {
203
+ type: BooleanConstructor;
204
+ default: boolean;
205
+ };
206
+ showDefaultActions: {
207
+ type: BooleanConstructor;
208
+ default: boolean;
209
+ };
210
+ readOnly: {
211
+ type: BooleanConstructor;
212
+ default: boolean;
213
+ };
214
+ ignoreClickOutsideSelectors: {
215
+ type: PropType<string[]>;
216
+ default: () => any[];
217
+ };
218
+ }>> & Readonly<{}>, {
219
+ pagesScale: number;
220
+ onUpdate: (...args: any[]) => void;
221
+ onDelete: (...args: any[]) => void;
222
+ onDuplicate: (...args: any[]) => void;
223
+ onDragStart: (...args: any[]) => void;
224
+ onDragMove: (...args: any[]) => void;
225
+ onDragEnd: (...args: any[]) => void;
226
+ isBeingDraggedGlobally: boolean;
227
+ draggingClientPos: {
228
+ x: number;
229
+ y: number;
230
+ };
231
+ currentDocIndex: number;
232
+ currentPageIndex: number;
233
+ globalDragDocIndex: number;
234
+ globalDragPageIndex: number;
235
+ showSelectionUi: boolean;
236
+ showDefaultActions: boolean;
237
+ readOnly: boolean;
238
+ ignoreClickOutsideSelectors: string[];
239
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
240
+ export default _default;