@libresign/pdf-elements 1.0.2 → 1.1.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/dist/components/PDFElements.vue.d.ts +32 -0
- package/dist/index.css +1 -1
- package/dist/index.mjs +250 -225
- package/dist/{pdf-uHvE5neP.mjs → pdf-l6QfMa5e.mjs} +2232 -2176
- package/dist/pdf.worker.min-eBwwJm95.mjs +4 -0
- package/package.json +1 -1
- package/src/components/PDFElements.vue +45 -0
- package/dist/pdf.worker.min-DmO9Xdfo.mjs +0 -4
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libresign/pdf-elements",
|
|
3
3
|
"description": "PDF viewer with draggable and resizable element overlays for Vue 3",
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"author": "LibreCode <contact@librecode.coop>",
|
|
6
6
|
"private": false,
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -23,14 +23,19 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
23
23
|
/>
|
|
24
24
|
<div
|
|
25
25
|
class="overlay"
|
|
26
|
+
:role="isAddingMode ? 'button' : undefined"
|
|
27
|
+
:tabindex="isAddingMode ? 0 : -1"
|
|
28
|
+
:aria-label="getOverlayAriaLabel(docIndex, pIndex)"
|
|
26
29
|
@mousemove="handleMouseMove"
|
|
27
30
|
@touchmove="handleMouseMove"
|
|
28
31
|
@click="handleOverlayClick(docIndex, pIndex, $event)"
|
|
29
32
|
@touchend="handleOverlayClick(docIndex, pIndex, $event)"
|
|
33
|
+
@keydown="handleOverlayKeyDown(docIndex, pIndex, $event)"
|
|
30
34
|
>
|
|
31
35
|
<div
|
|
32
36
|
v-if="isAddingMode && previewPageDocIndex === docIndex && previewPageIndex === pIndex && previewElement && previewVisible"
|
|
33
37
|
class="preview-element"
|
|
38
|
+
aria-hidden="true"
|
|
34
39
|
:style="{
|
|
35
40
|
left: `${previewPosition.x * previewScale.x}px`,
|
|
36
41
|
top: `${previewPosition.y * previewScale.y}px`,
|
|
@@ -217,6 +222,10 @@ export default defineComponent({
|
|
|
217
222
|
type: Boolean,
|
|
218
223
|
default: false,
|
|
219
224
|
},
|
|
225
|
+
pageAriaLabel: {
|
|
226
|
+
type: Function as PropType<(info: { docIndex: number; docName: string; totalDocs: number; pageNumber: number; totalPages: number; isAddingMode: boolean }) => string>,
|
|
227
|
+
default: null,
|
|
228
|
+
},
|
|
220
229
|
pdfjsOptions: {
|
|
221
230
|
type: Object as PropType<Record<string, unknown>>,
|
|
222
231
|
default: () => ({}),
|
|
@@ -730,6 +739,42 @@ export default defineComponent({
|
|
|
730
739
|
}
|
|
731
740
|
},
|
|
732
741
|
|
|
742
|
+
getOverlayAriaLabel(docIndex, pageIndex) {
|
|
743
|
+
const doc = this.pdfDocuments?.[docIndex]
|
|
744
|
+
const docName = doc?.name ?? `Document ${docIndex + 1}`
|
|
745
|
+
const totalDocs = this.pdfDocuments?.length ?? 1
|
|
746
|
+
const totalPages = doc?.numPages ?? 0
|
|
747
|
+
const pageNumber = pageIndex + 1
|
|
748
|
+
if (this.pageAriaLabel) {
|
|
749
|
+
return this.pageAriaLabel({ docIndex, docName, totalDocs, pageNumber, totalPages, isAddingMode: this.isAddingMode })
|
|
750
|
+
}
|
|
751
|
+
const docPrefix = totalDocs > 1 ? `Document ${docIndex + 1} of ${totalDocs} (${docName}), ` : ''
|
|
752
|
+
if (this.isAddingMode) {
|
|
753
|
+
return `${docPrefix}Page ${pageNumber} of ${totalPages}. Press Enter or Space to place here.`
|
|
754
|
+
}
|
|
755
|
+
return `${docPrefix}Page ${pageNumber} of ${totalPages}.`
|
|
756
|
+
},
|
|
757
|
+
|
|
758
|
+
handleOverlayKeyDown(docIndex, pageIndex, event) {
|
|
759
|
+
if (!this.isAddingMode || !this.previewElement) return
|
|
760
|
+
if (event.key !== 'Enter' && event.key !== ' ') return
|
|
761
|
+
event.preventDefault()
|
|
762
|
+
|
|
763
|
+
const pageWidth = this.getPageWidth(docIndex, pageIndex)
|
|
764
|
+
const pageHeight = this.getPageHeight(docIndex, pageIndex)
|
|
765
|
+
const scale = this.getDisplayedPageScale(docIndex, pageIndex) || 1
|
|
766
|
+
|
|
767
|
+
this.previewPageDocIndex = docIndex
|
|
768
|
+
this.previewPageIndex = pageIndex
|
|
769
|
+
this.previewScale = { x: scale, y: scale }
|
|
770
|
+
this.previewPosition = {
|
|
771
|
+
x: Math.round((pageWidth - this.previewElement.width) / 2),
|
|
772
|
+
y: Math.round((pageHeight - this.previewElement.height) / 2),
|
|
773
|
+
}
|
|
774
|
+
this.previewVisible = true
|
|
775
|
+
this.finishAdding()
|
|
776
|
+
},
|
|
777
|
+
|
|
733
778
|
handleWheel(event) {
|
|
734
779
|
if (!event.ctrlKey) return
|
|
735
780
|
event.preventDefault()
|