@libresign/pdf-elements 0.1.2 → 0.2.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 +14 -12
- package/dist/pdf-elements.common.js +31 -4
- package/dist/pdf-elements.common.js.map +1 -1
- package/dist/pdf-elements.css +1 -1
- package/dist/pdf-elements.umd.js +31 -4
- package/dist/pdf-elements.umd.js.map +1 -1
- package/dist/pdf-elements.umd.min.js +1 -1
- package/dist/pdf-elements.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/PDFElements.vue +33 -0
package/README.md
CHANGED
|
@@ -13,18 +13,19 @@ A Vue 2 component for rendering PDFs with draggable and resizable element overla
|
|
|
13
13
|
|
|
14
14
|
### Props
|
|
15
15
|
|
|
16
|
-
| Prop | Type | Default |
|
|
17
|
-
|
|
18
|
-
| `width` | String | `'100%'` |
|
|
19
|
-
| `height` | String | `'100%'` |
|
|
20
|
-
| `initFiles` | Array | `[]` |
|
|
21
|
-
| `initFileNames` | Array | `[]` |
|
|
22
|
-
| `initialScale` | Number | `1` |
|
|
23
|
-
| `showPageFooter` | Boolean | `true` |
|
|
24
|
-
| `hideSelectionUI` | Boolean | `false` |
|
|
25
|
-
| `showSelectionHandles` | Boolean | `true` |
|
|
26
|
-
| `showElementActions` | Boolean | `true` |
|
|
27
|
-
| `pageCountFormat` | String | `'{currentPage} of {totalPages}'` |
|
|
16
|
+
| Prop | Type | Default | Description |
|
|
17
|
+
|------|------|---------|-------------|
|
|
18
|
+
| `width` | String | `'100%'` | Container width |
|
|
19
|
+
| `height` | String | `'100%'` | Container height |
|
|
20
|
+
| `initFiles` | Array | `[]` | PDF files to load |
|
|
21
|
+
| `initFileNames` | Array | `[]` | Names for the PDF files |
|
|
22
|
+
| `initialScale` | Number | `1` | Initial zoom scale |
|
|
23
|
+
| `showPageFooter` | Boolean | `true` | Show page footer with document name and page number |
|
|
24
|
+
| `hideSelectionUI` | Boolean | `false` | Hide selection handles and actions UI |
|
|
25
|
+
| `showSelectionHandles` | Boolean | `true` | Show resize/move handles on selected elements |
|
|
26
|
+
| `showElementActions` | Boolean | `true` | Show action buttons on selected elements |
|
|
27
|
+
| `pageCountFormat` | String | `'{currentPage} of {totalPages}'` | Format string for page counter |
|
|
28
|
+
| `autoFitZoom` | Boolean | `false` | Automatically adjust zoom to fit viewport on window resize |
|
|
28
29
|
|
|
29
30
|
### Events
|
|
30
31
|
|
|
@@ -35,3 +36,4 @@ A Vue 2 component for rendering PDFs with draggable and resizable element overla
|
|
|
35
36
|
- `element-{type}` - Custom element rendering (e.g., `element-signature`)
|
|
36
37
|
- `custom` - Fallback for elements without specific type
|
|
37
38
|
- `actions` - Custom action buttons
|
|
39
|
+
|
|
@@ -2686,7 +2686,7 @@ if (typeof window !== 'undefined') {
|
|
|
2686
2686
|
// Indicate to webpack that this file can be concatenated
|
|
2687
2687
|
/* harmony default export */ const setPublicPath = (null);
|
|
2688
2688
|
|
|
2689
|
-
;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PDFElements.vue?vue&type=template&id=
|
|
2689
|
+
;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PDFElements.vue?vue&type=template&id=7a179460&scoped=true
|
|
2690
2690
|
var render = function render() {
|
|
2691
2691
|
var _vm = this,
|
|
2692
2692
|
_c = _vm._self._c;
|
|
@@ -30107,6 +30107,10 @@ function readAsPDF(file) {
|
|
|
30107
30107
|
pageCountFormat: {
|
|
30108
30108
|
type: String,
|
|
30109
30109
|
default: '{currentPage} of {totalPages}'
|
|
30110
|
+
},
|
|
30111
|
+
autoFitZoom: {
|
|
30112
|
+
type: Boolean,
|
|
30113
|
+
default: false
|
|
30110
30114
|
}
|
|
30111
30115
|
},
|
|
30112
30116
|
data() {
|
|
@@ -30179,6 +30183,9 @@ function readAsPDF(file) {
|
|
|
30179
30183
|
this.$el?.addEventListener('wheel', this.boundHandleWheel, {
|
|
30180
30184
|
passive: false
|
|
30181
30185
|
});
|
|
30186
|
+
if (this.autoFitZoom) {
|
|
30187
|
+
window.addEventListener('resize', this.adjustZoomToFit);
|
|
30188
|
+
}
|
|
30182
30189
|
},
|
|
30183
30190
|
beforeUnmount() {
|
|
30184
30191
|
if (this.zoomRafId) {
|
|
@@ -30196,6 +30203,9 @@ function readAsPDF(file) {
|
|
|
30196
30203
|
window.removeEventListener('scroll', this.onViewportScroll);
|
|
30197
30204
|
window.removeEventListener('resize', this.onViewportScroll);
|
|
30198
30205
|
this.$el?.removeEventListener('scroll', this.onViewportScroll);
|
|
30206
|
+
if (this.autoFitZoom) {
|
|
30207
|
+
window.removeEventListener('resize', this.adjustZoomToFit);
|
|
30208
|
+
}
|
|
30199
30209
|
if (this.viewportRafId) {
|
|
30200
30210
|
window.cancelAnimationFrame(this.viewportRafId);
|
|
30201
30211
|
this.viewportRafId = 0;
|
|
@@ -30674,15 +30684,32 @@ function readAsPDF(file) {
|
|
|
30674
30684
|
const doc = this.pdfDocuments[docIndex];
|
|
30675
30685
|
const pagesScale = doc.pagesScale[pageIndex] || 1;
|
|
30676
30686
|
return pageRef.getCanvasMeasurement().canvasHeight / pagesScale;
|
|
30687
|
+
},
|
|
30688
|
+
calculateOptimalScale(maxPageWidth) {
|
|
30689
|
+
const containerWidth = this.$el?.clientWidth || 0;
|
|
30690
|
+
if (!containerWidth || !maxPageWidth) return 1;
|
|
30691
|
+
const availableWidth = containerWidth - 40;
|
|
30692
|
+
return Math.max(0.1, Math.min(2, availableWidth / maxPageWidth));
|
|
30693
|
+
},
|
|
30694
|
+
adjustZoomToFit() {
|
|
30695
|
+
if (!this.autoFitZoom || !this.pdfDocuments.length) return;
|
|
30696
|
+
const canvases = this.$el?.querySelectorAll('canvas');
|
|
30697
|
+
if (!canvases?.length) return;
|
|
30698
|
+
const maxCanvasWidth = Math.max(...Array.from(canvases).map(canvas => canvas.width / (this.scale || 1)));
|
|
30699
|
+
const optimalScale = this.calculateOptimalScale(maxCanvasWidth);
|
|
30700
|
+
if (Math.abs(optimalScale - this.scale) > 0.01) {
|
|
30701
|
+
this.scale = optimalScale;
|
|
30702
|
+
this.visualScale = optimalScale;
|
|
30703
|
+
}
|
|
30677
30704
|
}
|
|
30678
30705
|
}
|
|
30679
30706
|
});
|
|
30680
30707
|
;// ./src/components/PDFElements.vue?vue&type=script&lang=js
|
|
30681
30708
|
/* harmony default export */ const components_PDFElementsvue_type_script_lang_js = (PDFElementsvue_type_script_lang_js);
|
|
30682
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PDFElements.vue?vue&type=style&index=0&id=
|
|
30709
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PDFElements.vue?vue&type=style&index=0&id=7a179460&prod&scoped=true&lang=css
|
|
30683
30710
|
// extracted by mini-css-extract-plugin
|
|
30684
30711
|
|
|
30685
|
-
;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=
|
|
30712
|
+
;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=7a179460&prod&scoped=true&lang=css
|
|
30686
30713
|
|
|
30687
30714
|
;// ./src/components/PDFElements.vue
|
|
30688
30715
|
|
|
@@ -30699,7 +30726,7 @@ var PDFElements_component = normalizeComponent(
|
|
|
30699
30726
|
staticRenderFns,
|
|
30700
30727
|
false,
|
|
30701
30728
|
null,
|
|
30702
|
-
"
|
|
30729
|
+
"7a179460",
|
|
30703
30730
|
null
|
|
30704
30731
|
|
|
30705
30732
|
)
|