@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.
- package/README.md +24 -1
- package/dist/components/DraggableElement.vue.d.ts +240 -0
- package/dist/components/PDFElements.vue.d.ts +552 -0
- package/dist/components/PDFPage.vue.d.ts +40 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.mjs +1293 -0
- package/dist/pdf-uHvE5neP.mjs +17593 -0
- package/dist/pdf.worker.min-DmO9Xdfo.mjs +4 -0
- package/dist/types.d.ts +30 -0
- package/dist/utils/asyncReader.d.ts +10 -0
- package/dist/utils/geometry.d.ts +5 -0
- package/dist/utils/measurements.d.ts +12 -0
- package/dist/utils/objectStore.d.ts +5 -0
- package/dist/utils/pageBounds.d.ts +5 -0
- package/dist/utils/zoom.d.ts +2 -0
- package/package.json +46 -21
- package/src/components/DraggableElement.vue +18 -15
- package/src/components/PDFElements.vue +135 -60
- package/src/components/PDFPage.vue +11 -7
- package/src/index.ts +18 -0
- package/src/types.ts +35 -0
- package/src/utils/asyncReader.ts +103 -0
- package/src/utils/{geometry.js → geometry.ts} +16 -2
- package/src/utils/{measurements.js → measurements.ts} +20 -1
- package/src/utils/{objectStore.js → objectStore.ts} +15 -4
- package/src/utils/{pageBounds.js → pageBounds.ts} +2 -2
- package/src/utils/{zoom.js → zoom.ts} +3 -1
- package/dist/demo.html +0 -1
- package/dist/pdf-elements.common.js +0 -31698
- package/dist/pdf-elements.common.js.map +0 -1
- package/dist/pdf-elements.css +0 -1
- package/dist/pdf-elements.umd.js +0 -31710
- package/dist/pdf-elements.umd.js.map +0 -1
- package/dist/pdf-elements.umd.min.js +0 -2
- package/dist/pdf-elements.umd.min.js.map +0 -1
- package/dist/pdf.worker.min.mjs +0 -22
- package/src/index.js +0 -17
- package/src/utils/asyncReader.js +0 -44
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
3
3
|
|
|
4
|
-
export
|
|
4
|
+
export interface CanvasMeasurement {
|
|
5
|
+
canvasWidth: number
|
|
6
|
+
canvasHeight: number
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface PageMeasurement {
|
|
10
|
+
width: number
|
|
11
|
+
height: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface PageMeasurementProvider {
|
|
15
|
+
getCanvasMeasurement: () => CanvasMeasurement
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function getCachedMeasurement(
|
|
19
|
+
cache: Record<string, PageMeasurement>,
|
|
20
|
+
cacheKey: string,
|
|
21
|
+
pageRef: PageMeasurementProvider,
|
|
22
|
+
pagesScale: number
|
|
23
|
+
) {
|
|
5
24
|
const cached = cache[cacheKey]
|
|
6
25
|
if (cached) {
|
|
7
26
|
return cached
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
import type { PDFDocumentEntry, PDFElementObject } from '../types'
|
|
5
|
+
|
|
6
|
+
export function objectIdExistsInDoc(doc: PDFDocumentEntry | undefined, objectId: string) {
|
|
5
7
|
if (!doc || !objectId) return false
|
|
6
8
|
return doc.allObjects.some((objects) => objects.some((obj) => obj.id === objectId))
|
|
7
9
|
}
|
|
8
10
|
|
|
9
|
-
export function findObjectPageIndex(doc, objectId) {
|
|
11
|
+
export function findObjectPageIndex(doc: PDFDocumentEntry | undefined, objectId: string) {
|
|
10
12
|
if (!doc || !objectId) return undefined
|
|
11
13
|
for (let pageIndex = 0; pageIndex < doc.allObjects.length; pageIndex++) {
|
|
12
14
|
if (doc.allObjects[pageIndex].some((obj) => obj.id === objectId)) {
|
|
@@ -16,7 +18,12 @@ export function findObjectPageIndex(doc, objectId) {
|
|
|
16
18
|
return undefined
|
|
17
19
|
}
|
|
18
20
|
|
|
19
|
-
export function updateObjectInDoc(
|
|
21
|
+
export function updateObjectInDoc(
|
|
22
|
+
doc: PDFDocumentEntry | undefined,
|
|
23
|
+
pageIndex: number,
|
|
24
|
+
objectId: string,
|
|
25
|
+
payload: Partial<PDFElementObject>
|
|
26
|
+
) {
|
|
20
27
|
const objects = doc?.allObjects?.[pageIndex]
|
|
21
28
|
if (!objects) return false
|
|
22
29
|
const objectIndex = objects.findIndex((obj) => obj.id === objectId)
|
|
@@ -25,7 +32,11 @@ export function updateObjectInDoc(doc, pageIndex, objectId, payload) {
|
|
|
25
32
|
return true
|
|
26
33
|
}
|
|
27
34
|
|
|
28
|
-
export function removeObjectFromDoc(
|
|
35
|
+
export function removeObjectFromDoc(
|
|
36
|
+
doc: PDFDocumentEntry | undefined,
|
|
37
|
+
pageIndex: number,
|
|
38
|
+
objectId: string
|
|
39
|
+
) {
|
|
29
40
|
const objects = doc?.allObjects?.[pageIndex]
|
|
30
41
|
if (!objects) return false
|
|
31
42
|
const objectIndex = objects.findIndex((obj) => obj.id === objectId)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
3
3
|
|
|
4
|
-
export function getViewportWindow(scrollTop, viewHeight, margin = 300) {
|
|
4
|
+
export function getViewportWindow(scrollTop: number, viewHeight: number, margin = 300) {
|
|
5
5
|
return {
|
|
6
6
|
minY: Math.max(0, scrollTop - margin),
|
|
7
7
|
maxY: scrollTop + viewHeight + margin,
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export function isPageInViewport(offsetTop, offsetHeight, minY, maxY) {
|
|
11
|
+
export function isPageInViewport(offsetTop: number, offsetHeight: number, minY: number, maxY: number) {
|
|
12
12
|
return !(offsetTop + offsetHeight < minY || offsetTop > maxY)
|
|
13
13
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2026 LibreCode coop and contributors
|
|
2
2
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
import type { PDFDocumentEntry } from '../types'
|
|
5
|
+
|
|
6
|
+
export function applyScaleToDocs(docs: PDFDocumentEntry[], scale: number) {
|
|
5
7
|
docs.forEach((doc) => {
|
|
6
8
|
doc.pagesScale = doc.pagesScale.map(() => scale)
|
|
7
9
|
})
|
package/dist/demo.html
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<!doctype html><meta charset="utf-8"><title>pdf-elements demo</title><script src="./pdf-elements.umd.js"></script><link rel="stylesheet" href="./pdf-elements.css"><script>console.log(pdf-elements)</script>
|