@embedpdf/plugin-stamp 2.15.0 → 3.0.0-next.1

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 (66) hide show
  1. package/LICENSE +192 -21
  2. package/dist/index.cjs +591 -2
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +187 -0
  5. package/dist/index.d.ts +187 -1
  6. package/dist/index.js +584 -975
  7. package/dist/index.js.map +1 -1
  8. package/package.json +23 -61
  9. package/dist/lib/actions.d.ts +0 -14
  10. package/dist/lib/defaults/name-map.d.ts +0 -2
  11. package/dist/lib/handlers/rubber-stamp.handler.d.ts +0 -4
  12. package/dist/lib/index.d.ts +0 -11
  13. package/dist/lib/manifest.d.ts +0 -4
  14. package/dist/lib/reducer.d.ts +0 -5
  15. package/dist/lib/stamp-plugin.d.ts +0 -54
  16. package/dist/lib/tools.d.ts +0 -58
  17. package/dist/lib/types.d.ts +0 -130
  18. package/dist/preact/adapter.d.ts +0 -5
  19. package/dist/preact/annotation.d.ts +0 -1
  20. package/dist/preact/core.d.ts +0 -1
  21. package/dist/preact/index.cjs +0 -2
  22. package/dist/preact/index.cjs.map +0 -1
  23. package/dist/preact/index.d.ts +0 -1
  24. package/dist/preact/index.js +0 -116
  25. package/dist/preact/index.js.map +0 -1
  26. package/dist/react/adapter.d.ts +0 -2
  27. package/dist/react/annotation.d.ts +0 -1
  28. package/dist/react/core.d.ts +0 -1
  29. package/dist/react/index.cjs +0 -2
  30. package/dist/react/index.cjs.map +0 -1
  31. package/dist/react/index.d.ts +0 -1
  32. package/dist/react/index.js +0 -115
  33. package/dist/react/index.js.map +0 -1
  34. package/dist/shared/components/index.d.ts +0 -1
  35. package/dist/shared/components/stamp-img.d.ts +0 -10
  36. package/dist/shared/hooks/index.d.ts +0 -1
  37. package/dist/shared/hooks/use-stamp.d.ts +0 -18
  38. package/dist/shared/index.d.ts +0 -4
  39. package/dist/shared-preact/components/index.d.ts +0 -1
  40. package/dist/shared-preact/components/stamp-img.d.ts +0 -10
  41. package/dist/shared-preact/hooks/index.d.ts +0 -1
  42. package/dist/shared-preact/hooks/use-stamp.d.ts +0 -18
  43. package/dist/shared-preact/index.d.ts +0 -4
  44. package/dist/shared-react/components/index.d.ts +0 -1
  45. package/dist/shared-react/components/stamp-img.d.ts +0 -10
  46. package/dist/shared-react/hooks/index.d.ts +0 -1
  47. package/dist/shared-react/hooks/use-stamp.d.ts +0 -18
  48. package/dist/shared-react/index.d.ts +0 -4
  49. package/dist/svelte/components/StampImg.svelte.d.ts +0 -10
  50. package/dist/svelte/components/index.d.ts +0 -1
  51. package/dist/svelte/hooks/index.d.ts +0 -1
  52. package/dist/svelte/hooks/use-stamp.svelte.d.ts +0 -23
  53. package/dist/svelte/index.cjs +0 -2
  54. package/dist/svelte/index.cjs.map +0 -1
  55. package/dist/svelte/index.d.ts +0 -4
  56. package/dist/svelte/index.js +0 -187
  57. package/dist/svelte/index.js.map +0 -1
  58. package/dist/vue/components/index.d.ts +0 -1
  59. package/dist/vue/components/stamp-img.vue.d.ts +0 -9
  60. package/dist/vue/hooks/index.d.ts +0 -1
  61. package/dist/vue/hooks/use-stamp.d.ts +0 -460
  62. package/dist/vue/index.cjs +0 -2
  63. package/dist/vue/index.cjs.map +0 -1
  64. package/dist/vue/index.d.ts +0 -4
  65. package/dist/vue/index.js +0 -189
  66. package/dist/vue/index.js.map +0 -1
@@ -1,460 +0,0 @@
1
- import { StampPlugin, StampLibrary, ResolvedStamp, ActiveStampInfo } from '../../lib/index.ts';
2
- import { MaybeRefOrGetter } from 'vue';
3
- export declare const useStampPlugin: () => import('@embedpdf/core/vue').PluginState<StampPlugin>;
4
- export declare const useStampCapability: () => import('@embedpdf/core/vue').CapabilityState<Readonly<import('../../lib/index.ts').StampCapability>>;
5
- export declare const useStampLibraries: () => {
6
- libraries: import('vue').Ref<{
7
- id: string;
8
- name: string;
9
- nameKey?: string | undefined;
10
- document: {
11
- id: string;
12
- pageCount: number;
13
- pages: {
14
- index: number;
15
- size: {
16
- width: number;
17
- height: number;
18
- };
19
- rotation: import('@embedpdf/models').Rotation;
20
- objectNumber: number;
21
- boxes?: {
22
- media: {
23
- left: number;
24
- top: number;
25
- right: number;
26
- bottom: number;
27
- };
28
- crop: {
29
- left: number;
30
- top: number;
31
- right: number;
32
- bottom: number;
33
- };
34
- bleed?: {
35
- left: number;
36
- top: number;
37
- right: number;
38
- bottom: number;
39
- } | undefined;
40
- trim?: {
41
- left: number;
42
- top: number;
43
- right: number;
44
- bottom: number;
45
- } | undefined;
46
- art?: {
47
- left: number;
48
- top: number;
49
- right: number;
50
- bottom: number;
51
- } | undefined;
52
- } | undefined;
53
- }[];
54
- isEncrypted: boolean;
55
- isOwnerUnlocked: boolean;
56
- permissions: number;
57
- normalizedRotation: boolean;
58
- };
59
- stamps: {
60
- id: string;
61
- pageIndex: number;
62
- name: import('@embedpdf/models').PdfAnnotationName;
63
- subject: string;
64
- subjectKey?: string | undefined;
65
- label?: string | undefined;
66
- categories?: string[] | undefined;
67
- }[];
68
- categories?: string[] | undefined;
69
- readonly: boolean;
70
- }[], StampLibrary[] | {
71
- id: string;
72
- name: string;
73
- nameKey?: string | undefined;
74
- document: {
75
- id: string;
76
- pageCount: number;
77
- pages: {
78
- index: number;
79
- size: {
80
- width: number;
81
- height: number;
82
- };
83
- rotation: import('@embedpdf/models').Rotation;
84
- objectNumber: number;
85
- boxes?: {
86
- media: {
87
- left: number;
88
- top: number;
89
- right: number;
90
- bottom: number;
91
- };
92
- crop: {
93
- left: number;
94
- top: number;
95
- right: number;
96
- bottom: number;
97
- };
98
- bleed?: {
99
- left: number;
100
- top: number;
101
- right: number;
102
- bottom: number;
103
- } | undefined;
104
- trim?: {
105
- left: number;
106
- top: number;
107
- right: number;
108
- bottom: number;
109
- } | undefined;
110
- art?: {
111
- left: number;
112
- top: number;
113
- right: number;
114
- bottom: number;
115
- } | undefined;
116
- } | undefined;
117
- }[];
118
- isEncrypted: boolean;
119
- isOwnerUnlocked: boolean;
120
- permissions: number;
121
- normalizedRotation: boolean;
122
- };
123
- stamps: {
124
- id: string;
125
- pageIndex: number;
126
- name: import('@embedpdf/models').PdfAnnotationName;
127
- subject: string;
128
- subjectKey?: string | undefined;
129
- label?: string | undefined;
130
- categories?: string[] | undefined;
131
- }[];
132
- categories?: string[] | undefined;
133
- readonly: boolean;
134
- }[]>;
135
- };
136
- export declare const useStampsByCategory: (category: MaybeRefOrGetter<string>) => import('vue').Ref<{
137
- library: {
138
- id: string;
139
- name: string;
140
- nameKey?: string | undefined;
141
- document: {
142
- id: string;
143
- pageCount: number;
144
- pages: {
145
- index: number;
146
- size: {
147
- width: number;
148
- height: number;
149
- };
150
- rotation: import('@embedpdf/models').Rotation;
151
- objectNumber: number;
152
- boxes?: {
153
- media: {
154
- left: number;
155
- top: number;
156
- right: number;
157
- bottom: number;
158
- };
159
- crop: {
160
- left: number;
161
- top: number;
162
- right: number;
163
- bottom: number;
164
- };
165
- bleed?: {
166
- left: number;
167
- top: number;
168
- right: number;
169
- bottom: number;
170
- } | undefined;
171
- trim?: {
172
- left: number;
173
- top: number;
174
- right: number;
175
- bottom: number;
176
- } | undefined;
177
- art?: {
178
- left: number;
179
- top: number;
180
- right: number;
181
- bottom: number;
182
- } | undefined;
183
- } | undefined;
184
- }[];
185
- isEncrypted: boolean;
186
- isOwnerUnlocked: boolean;
187
- permissions: number;
188
- normalizedRotation: boolean;
189
- };
190
- stamps: {
191
- id: string;
192
- pageIndex: number;
193
- name: import('@embedpdf/models').PdfAnnotationName;
194
- subject: string;
195
- subjectKey?: string | undefined;
196
- label?: string | undefined;
197
- categories?: string[] | undefined;
198
- }[];
199
- categories?: string[] | undefined;
200
- readonly: boolean;
201
- };
202
- stamp: {
203
- id: string;
204
- pageIndex: number;
205
- name: import('@embedpdf/models').PdfAnnotationName;
206
- subject: string;
207
- subjectKey?: string | undefined;
208
- label?: string | undefined;
209
- categories?: string[] | undefined;
210
- };
211
- }[], ResolvedStamp[] | {
212
- library: {
213
- id: string;
214
- name: string;
215
- nameKey?: string | undefined;
216
- document: {
217
- id: string;
218
- pageCount: number;
219
- pages: {
220
- index: number;
221
- size: {
222
- width: number;
223
- height: number;
224
- };
225
- rotation: import('@embedpdf/models').Rotation;
226
- objectNumber: number;
227
- boxes?: {
228
- media: {
229
- left: number;
230
- top: number;
231
- right: number;
232
- bottom: number;
233
- };
234
- crop: {
235
- left: number;
236
- top: number;
237
- right: number;
238
- bottom: number;
239
- };
240
- bleed?: {
241
- left: number;
242
- top: number;
243
- right: number;
244
- bottom: number;
245
- } | undefined;
246
- trim?: {
247
- left: number;
248
- top: number;
249
- right: number;
250
- bottom: number;
251
- } | undefined;
252
- art?: {
253
- left: number;
254
- top: number;
255
- right: number;
256
- bottom: number;
257
- } | undefined;
258
- } | undefined;
259
- }[];
260
- isEncrypted: boolean;
261
- isOwnerUnlocked: boolean;
262
- permissions: number;
263
- normalizedRotation: boolean;
264
- };
265
- stamps: {
266
- id: string;
267
- pageIndex: number;
268
- name: import('@embedpdf/models').PdfAnnotationName;
269
- subject: string;
270
- subjectKey?: string | undefined;
271
- label?: string | undefined;
272
- categories?: string[] | undefined;
273
- }[];
274
- categories?: string[] | undefined;
275
- readonly: boolean;
276
- };
277
- stamp: {
278
- id: string;
279
- pageIndex: number;
280
- name: import('@embedpdf/models').PdfAnnotationName;
281
- subject: string;
282
- subjectKey?: string | undefined;
283
- label?: string | undefined;
284
- categories?: string[] | undefined;
285
- };
286
- }[]>;
287
- export declare const useStampsByLibrary: (libraryId: MaybeRefOrGetter<string | undefined>, category?: MaybeRefOrGetter<string | undefined>) => import('vue').Ref<{
288
- library: {
289
- id: string;
290
- name: string;
291
- nameKey?: string | undefined;
292
- document: {
293
- id: string;
294
- pageCount: number;
295
- pages: {
296
- index: number;
297
- size: {
298
- width: number;
299
- height: number;
300
- };
301
- rotation: import('@embedpdf/models').Rotation;
302
- objectNumber: number;
303
- boxes?: {
304
- media: {
305
- left: number;
306
- top: number;
307
- right: number;
308
- bottom: number;
309
- };
310
- crop: {
311
- left: number;
312
- top: number;
313
- right: number;
314
- bottom: number;
315
- };
316
- bleed?: {
317
- left: number;
318
- top: number;
319
- right: number;
320
- bottom: number;
321
- } | undefined;
322
- trim?: {
323
- left: number;
324
- top: number;
325
- right: number;
326
- bottom: number;
327
- } | undefined;
328
- art?: {
329
- left: number;
330
- top: number;
331
- right: number;
332
- bottom: number;
333
- } | undefined;
334
- } | undefined;
335
- }[];
336
- isEncrypted: boolean;
337
- isOwnerUnlocked: boolean;
338
- permissions: number;
339
- normalizedRotation: boolean;
340
- };
341
- stamps: {
342
- id: string;
343
- pageIndex: number;
344
- name: import('@embedpdf/models').PdfAnnotationName;
345
- subject: string;
346
- subjectKey?: string | undefined;
347
- label?: string | undefined;
348
- categories?: string[] | undefined;
349
- }[];
350
- categories?: string[] | undefined;
351
- readonly: boolean;
352
- };
353
- stamp: {
354
- id: string;
355
- pageIndex: number;
356
- name: import('@embedpdf/models').PdfAnnotationName;
357
- subject: string;
358
- subjectKey?: string | undefined;
359
- label?: string | undefined;
360
- categories?: string[] | undefined;
361
- };
362
- }[], ResolvedStamp[] | {
363
- library: {
364
- id: string;
365
- name: string;
366
- nameKey?: string | undefined;
367
- document: {
368
- id: string;
369
- pageCount: number;
370
- pages: {
371
- index: number;
372
- size: {
373
- width: number;
374
- height: number;
375
- };
376
- rotation: import('@embedpdf/models').Rotation;
377
- objectNumber: number;
378
- boxes?: {
379
- media: {
380
- left: number;
381
- top: number;
382
- right: number;
383
- bottom: number;
384
- };
385
- crop: {
386
- left: number;
387
- top: number;
388
- right: number;
389
- bottom: number;
390
- };
391
- bleed?: {
392
- left: number;
393
- top: number;
394
- right: number;
395
- bottom: number;
396
- } | undefined;
397
- trim?: {
398
- left: number;
399
- top: number;
400
- right: number;
401
- bottom: number;
402
- } | undefined;
403
- art?: {
404
- left: number;
405
- top: number;
406
- right: number;
407
- bottom: number;
408
- } | undefined;
409
- } | undefined;
410
- }[];
411
- isEncrypted: boolean;
412
- isOwnerUnlocked: boolean;
413
- permissions: number;
414
- normalizedRotation: boolean;
415
- };
416
- stamps: {
417
- id: string;
418
- pageIndex: number;
419
- name: import('@embedpdf/models').PdfAnnotationName;
420
- subject: string;
421
- subjectKey?: string | undefined;
422
- label?: string | undefined;
423
- categories?: string[] | undefined;
424
- }[];
425
- categories?: string[] | undefined;
426
- readonly: boolean;
427
- };
428
- stamp: {
429
- id: string;
430
- pageIndex: number;
431
- name: import('@embedpdf/models').PdfAnnotationName;
432
- subject: string;
433
- subjectKey?: string | undefined;
434
- label?: string | undefined;
435
- categories?: string[] | undefined;
436
- };
437
- }[]>;
438
- export declare const useActiveStamp: (documentId: MaybeRefOrGetter<string>) => import('vue').Ref<{
439
- libraryId: string;
440
- stamp: {
441
- id: string;
442
- pageIndex: number;
443
- name: import('@embedpdf/models').PdfAnnotationName;
444
- subject: string;
445
- subjectKey?: string | undefined;
446
- label?: string | undefined;
447
- categories?: string[] | undefined;
448
- };
449
- } | null, ActiveStampInfo | {
450
- libraryId: string;
451
- stamp: {
452
- id: string;
453
- pageIndex: number;
454
- name: import('@embedpdf/models').PdfAnnotationName;
455
- subject: string;
456
- subjectKey?: string | undefined;
457
- label?: string | undefined;
458
- categories?: string[] | undefined;
459
- };
460
- } | null>;
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t=require("@embedpdf/plugin-stamp"),r=require("@embedpdf/core/vue"),a=require("vue"),i=require("@embedpdf/models"),o=()=>r.useCapability(t.StampPlugin.id),l=["src"],n=a.defineComponent({__name:"stamp-img",props:{libraryId:{},pageIndex:{},width:{},dpr:{}},setup(e){const t=e,{provides:r}=o(),n=a.ref(null);let u=null;function s(){u&&(URL.revokeObjectURL(u),u=null)}let p=null;return a.watch([()=>r.value,()=>t.libraryId,()=>t.pageIndex,()=>t.width,()=>t.dpr],([e,t,r,a,o],l,c)=>{if(p&&(p(),p=null),!e)return void(n.value=null);const d=e.renderStamp(t,r,a,o??window.devicePixelRatio);p=()=>d.abort({code:i.PdfErrorCode.Cancelled,message:"canceled stamp render task"}),d.wait(e=>{s();const t=URL.createObjectURL(e);u=t,n.value=t,p=null},i.ignore),c(()=>{p&&(p(),p=null),s()})},{immediate:!0}),(e,t)=>n.value?(a.openBlock(),a.createElementBlock("img",a.mergeProps({key:0,src:n.value},e.$attrs,{onLoad:s}),null,16,l)):a.createCommentVNode("",!0)}}),u=e.createPluginPackage(t.StampPluginPackage).build();exports.StampImg=n,exports.StampPluginPackage=u,exports.useActiveStamp=e=>{const{provides:t}=o(),r=a.ref(null);return a.watch([t,()=>a.toValue(e)],([e,t],a,i)=>{if(!e||!t)return void(r.value=null);const o=e.forDocument(t);r.value=o.getActiveStamp();i(o.onActiveStampChange(e=>{r.value=e}))},{immediate:!0}),r},exports.useStampCapability=o,exports.useStampLibraries=()=>{const{provides:e}=o(),t=a.ref([]);return a.watch(e,(e,r,a)=>{if(!e)return void(t.value=[]);t.value=e.getLibraries();a(e.onLibraryChange(e=>{t.value=e}))},{immediate:!0}),{libraries:t}},exports.useStampPlugin=()=>r.usePlugin(t.StampPlugin.id),exports.useStampsByCategory=e=>{const{provides:t}=o(),r=a.ref([]);return a.watch([t,()=>a.toValue(e)],([e,t],a,i)=>{if(!e)return void(r.value=[]);r.value=e.getStampsByCategory(t);i(e.onLibraryChange(()=>{r.value=e.getStampsByCategory(t)}))},{immediate:!0}),r},exports.useStampsByLibrary=(e,t)=>{const{provides:r}=o(),i=a.ref([]);return a.watch([r,()=>a.toValue(e),()=>a.toValue(t)],([e,t,r],a,o)=>{if(!e)return void(i.value=[]);const l=()=>{var a,o;const l=e.getLibraries(),n=[];for(const e of l)if(!t||"all"===t||e.id===t)for(const t of e.stamps){if(r){const i=(null==(a=e.categories)?void 0:a.includes(r))??!1,l=(null==(o=t.categories)?void 0:o.includes(r))??!1;if(!i&&!l)continue}n.push({library:e,stamp:t})}i.value=n};l();o(e.onLibraryChange(l))},{immediate:!0}),i},Object.keys(t).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>t[e]})});
2
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/vue/hooks/use-stamp.ts","../../src/vue/components/stamp-img.vue","../../src/vue/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { StampPlugin, StampLibrary, ResolvedStamp, ActiveStampInfo } from '@embedpdf/plugin-stamp';\nimport { ref, watch, toValue, type MaybeRefOrGetter } from 'vue';\n\nexport const useStampPlugin = () => usePlugin<StampPlugin>(StampPlugin.id);\nexport const useStampCapability = () => useCapability<StampPlugin>(StampPlugin.id);\n\nexport const useStampLibraries = () => {\n const { provides } = useStampCapability();\n const libraries = ref<StampLibrary[]>([]);\n\n watch(\n provides,\n (capability, _, onCleanup) => {\n if (!capability) {\n libraries.value = [];\n return;\n }\n\n libraries.value = capability.getLibraries();\n const unsubscribe = capability.onLibraryChange((libs) => {\n libraries.value = libs;\n });\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n return { libraries };\n};\n\nexport const useStampsByCategory = (category: MaybeRefOrGetter<string>) => {\n const { provides } = useStampCapability();\n const stamps = ref<ResolvedStamp[]>([]);\n\n watch(\n [provides, () => toValue(category)],\n ([capability, cat], _, onCleanup) => {\n if (!capability) {\n stamps.value = [];\n return;\n }\n\n stamps.value = capability.getStampsByCategory(cat);\n const unsubscribe = capability.onLibraryChange(() => {\n stamps.value = capability.getStampsByCategory(cat);\n });\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n return stamps;\n};\n\nexport const useStampsByLibrary = (\n libraryId: MaybeRefOrGetter<string | undefined>,\n category?: MaybeRefOrGetter<string | undefined>,\n) => {\n const { provides } = useStampCapability();\n const stamps = ref<ResolvedStamp[]>([]);\n\n watch(\n [provides, () => toValue(libraryId), () => toValue(category)],\n ([capability, libId, cat], _, onCleanup) => {\n if (!capability) {\n stamps.value = [];\n return;\n }\n\n const derive = () => {\n const libraries = capability.getLibraries();\n const results: ResolvedStamp[] = [];\n\n for (const library of libraries) {\n if (libId && libId !== 'all' && library.id !== libId) continue;\n\n for (const stamp of library.stamps) {\n if (cat) {\n const libraryMatches = library.categories?.includes(cat) ?? false;\n const stampMatches = stamp.categories?.includes(cat) ?? false;\n if (!libraryMatches && !stampMatches) continue;\n }\n results.push({ library, stamp });\n }\n }\n\n stamps.value = results;\n };\n\n derive();\n const unsubscribe = capability.onLibraryChange(derive);\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n return stamps;\n};\n\nexport const useActiveStamp = (documentId: MaybeRefOrGetter<string>) => {\n const { provides } = useStampCapability();\n const activeStamp = ref<ActiveStampInfo | null>(null);\n\n watch(\n [provides, () => toValue(documentId)],\n ([capability, docId], _, onCleanup) => {\n if (!capability || !docId) {\n activeStamp.value = null;\n return;\n }\n\n const scope = capability.forDocument(docId);\n activeStamp.value = scope.getActiveStamp();\n const unsubscribe = scope.onActiveStampChange((stamp) => {\n activeStamp.value = stamp;\n });\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n return activeStamp;\n};\n","<script setup lang=\"ts\">\nimport { ref, watch } from 'vue';\nimport { useStampCapability } from '../hooks';\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\ninterface StampImgProps {\n libraryId: string;\n pageIndex: number;\n width: number;\n dpr?: number;\n}\n\nconst props = defineProps<StampImgProps>();\n\nconst { provides } = useStampCapability();\n\nconst url = ref<string | null>(null);\nlet urlToRevoke: string | null = null;\n\nfunction revoke() {\n if (urlToRevoke) {\n URL.revokeObjectURL(urlToRevoke);\n urlToRevoke = null;\n }\n}\n\nlet abortTask: (() => void) | null = null;\n\nwatch(\n [\n () => provides.value,\n () => props.libraryId,\n () => props.pageIndex,\n () => props.width,\n () => props.dpr,\n ],\n ([capability, libraryId, pageIndex, width, dpr], _, onCleanup) => {\n if (abortTask) {\n abortTask();\n abortTask = null;\n }\n\n if (!capability) {\n url.value = null;\n return;\n }\n\n const task = capability.renderStamp(\n libraryId,\n pageIndex,\n width,\n dpr ?? window.devicePixelRatio,\n );\n\n abortTask = () =>\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled stamp render task',\n });\n\n task.wait((blob) => {\n revoke();\n const objectUrl = URL.createObjectURL(blob);\n urlToRevoke = objectUrl;\n url.value = objectUrl;\n abortTask = null;\n }, ignore);\n\n onCleanup(() => {\n if (abortTask) {\n abortTask();\n abortTask = null;\n }\n revoke();\n });\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <img v-if=\"url\" :src=\"url\" v-bind=\"$attrs\" @load=\"revoke\" />\n</template>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { StampPluginPackage as BaseStampPackage } from '@embedpdf/plugin-stamp';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-stamp';\n\nexport const StampPluginPackage = createPluginPackage(BaseStampPackage).build();\n"],"names":["useStampCapability","useCapability","StampPlugin","id","props","__props","provides","url","ref","urlToRevoke","revoke","URL","revokeObjectURL","abortTask","watch","value","libraryId","pageIndex","width","dpr","capability","_","onCleanup","task","renderStamp","window","devicePixelRatio","abort","code","PdfErrorCode","Cancelled","message","wait","blob","objectUrl","createObjectURL","ignore","immediate","_openBlock","_createElementBlock","_mergeProps","src","$attrs","onLoad","_hoisted_1","StampPluginPackage","createPluginPackage","BaseStampPackage","build","documentId","activeStamp","toValue","docId","scope","forDocument","getActiveStamp","onActiveStampChange","stamp","libraries","getLibraries","onLibraryChange","libs","usePlugin","category","stamps","cat","getStampsByCategory","libId","derive","results","library","libraryMatches","_a","categories","includes","stampMatches","_b","push"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './hooks';
2
- export * from './components';
3
- export * from '../lib/index.ts';
4
- export declare const StampPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').StampPlugin, import('../lib/index.ts').StampPluginConfig, import('../lib/index.ts').StampState, import('../lib/index.ts').StampAction>>;
package/dist/vue/index.js DELETED
@@ -1,189 +0,0 @@
1
- import { createPluginPackage } from "@embedpdf/core";
2
- import { StampPlugin, StampPluginPackage as StampPluginPackage$1 } from "@embedpdf/plugin-stamp";
3
- export * from "@embedpdf/plugin-stamp";
4
- import { usePlugin, useCapability } from "@embedpdf/core/vue";
5
- import { ref, watch, toValue, defineComponent, openBlock, createElementBlock, mergeProps, createCommentVNode } from "vue";
6
- import { ignore, PdfErrorCode } from "@embedpdf/models";
7
- const useStampPlugin = () => usePlugin(StampPlugin.id);
8
- const useStampCapability = () => useCapability(StampPlugin.id);
9
- const useStampLibraries = () => {
10
- const { provides } = useStampCapability();
11
- const libraries = ref([]);
12
- watch(
13
- provides,
14
- (capability, _, onCleanup) => {
15
- if (!capability) {
16
- libraries.value = [];
17
- return;
18
- }
19
- libraries.value = capability.getLibraries();
20
- const unsubscribe = capability.onLibraryChange((libs) => {
21
- libraries.value = libs;
22
- });
23
- onCleanup(unsubscribe);
24
- },
25
- { immediate: true }
26
- );
27
- return { libraries };
28
- };
29
- const useStampsByCategory = (category) => {
30
- const { provides } = useStampCapability();
31
- const stamps = ref([]);
32
- watch(
33
- [provides, () => toValue(category)],
34
- ([capability, cat], _, onCleanup) => {
35
- if (!capability) {
36
- stamps.value = [];
37
- return;
38
- }
39
- stamps.value = capability.getStampsByCategory(cat);
40
- const unsubscribe = capability.onLibraryChange(() => {
41
- stamps.value = capability.getStampsByCategory(cat);
42
- });
43
- onCleanup(unsubscribe);
44
- },
45
- { immediate: true }
46
- );
47
- return stamps;
48
- };
49
- const useStampsByLibrary = (libraryId, category) => {
50
- const { provides } = useStampCapability();
51
- const stamps = ref([]);
52
- watch(
53
- [provides, () => toValue(libraryId), () => toValue(category)],
54
- ([capability, libId, cat], _, onCleanup) => {
55
- if (!capability) {
56
- stamps.value = [];
57
- return;
58
- }
59
- const derive = () => {
60
- var _a, _b;
61
- const libraries = capability.getLibraries();
62
- const results = [];
63
- for (const library of libraries) {
64
- if (libId && libId !== "all" && library.id !== libId) continue;
65
- for (const stamp of library.stamps) {
66
- if (cat) {
67
- const libraryMatches = ((_a = library.categories) == null ? void 0 : _a.includes(cat)) ?? false;
68
- const stampMatches = ((_b = stamp.categories) == null ? void 0 : _b.includes(cat)) ?? false;
69
- if (!libraryMatches && !stampMatches) continue;
70
- }
71
- results.push({ library, stamp });
72
- }
73
- }
74
- stamps.value = results;
75
- };
76
- derive();
77
- const unsubscribe = capability.onLibraryChange(derive);
78
- onCleanup(unsubscribe);
79
- },
80
- { immediate: true }
81
- );
82
- return stamps;
83
- };
84
- const useActiveStamp = (documentId) => {
85
- const { provides } = useStampCapability();
86
- const activeStamp = ref(null);
87
- watch(
88
- [provides, () => toValue(documentId)],
89
- ([capability, docId], _, onCleanup) => {
90
- if (!capability || !docId) {
91
- activeStamp.value = null;
92
- return;
93
- }
94
- const scope = capability.forDocument(docId);
95
- activeStamp.value = scope.getActiveStamp();
96
- const unsubscribe = scope.onActiveStampChange((stamp) => {
97
- activeStamp.value = stamp;
98
- });
99
- onCleanup(unsubscribe);
100
- },
101
- { immediate: true }
102
- );
103
- return activeStamp;
104
- };
105
- const _hoisted_1 = ["src"];
106
- const _sfc_main = /* @__PURE__ */ defineComponent({
107
- __name: "stamp-img",
108
- props: {
109
- libraryId: {},
110
- pageIndex: {},
111
- width: {},
112
- dpr: {}
113
- },
114
- setup(__props) {
115
- const props = __props;
116
- const { provides } = useStampCapability();
117
- const url = ref(null);
118
- let urlToRevoke = null;
119
- function revoke() {
120
- if (urlToRevoke) {
121
- URL.revokeObjectURL(urlToRevoke);
122
- urlToRevoke = null;
123
- }
124
- }
125
- let abortTask = null;
126
- watch(
127
- [
128
- () => provides.value,
129
- () => props.libraryId,
130
- () => props.pageIndex,
131
- () => props.width,
132
- () => props.dpr
133
- ],
134
- ([capability, libraryId, pageIndex, width, dpr], _, onCleanup) => {
135
- if (abortTask) {
136
- abortTask();
137
- abortTask = null;
138
- }
139
- if (!capability) {
140
- url.value = null;
141
- return;
142
- }
143
- const task = capability.renderStamp(
144
- libraryId,
145
- pageIndex,
146
- width,
147
- dpr ?? window.devicePixelRatio
148
- );
149
- abortTask = () => task.abort({
150
- code: PdfErrorCode.Cancelled,
151
- message: "canceled stamp render task"
152
- });
153
- task.wait((blob) => {
154
- revoke();
155
- const objectUrl = URL.createObjectURL(blob);
156
- urlToRevoke = objectUrl;
157
- url.value = objectUrl;
158
- abortTask = null;
159
- }, ignore);
160
- onCleanup(() => {
161
- if (abortTask) {
162
- abortTask();
163
- abortTask = null;
164
- }
165
- revoke();
166
- });
167
- },
168
- { immediate: true }
169
- );
170
- return (_ctx, _cache) => {
171
- return url.value ? (openBlock(), createElementBlock("img", mergeProps({
172
- key: 0,
173
- src: url.value
174
- }, _ctx.$attrs, { onLoad: revoke }), null, 16, _hoisted_1)) : createCommentVNode("", true);
175
- };
176
- }
177
- });
178
- const StampPluginPackage = createPluginPackage(StampPluginPackage$1).build();
179
- export {
180
- _sfc_main as StampImg,
181
- StampPluginPackage,
182
- useActiveStamp,
183
- useStampCapability,
184
- useStampLibraries,
185
- useStampPlugin,
186
- useStampsByCategory,
187
- useStampsByLibrary
188
- };
189
- //# sourceMappingURL=index.js.map