@libresign/pdf-elements 0.2.1 → 0.2.2
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/pdf-elements.common.js +143 -10
- package/dist/pdf-elements.common.js.map +1 -1
- package/dist/pdf-elements.css +1 -1
- package/dist/pdf-elements.umd.js +143 -10
- package/dist/pdf-elements.umd.js.map +1 -1
- package/dist/pdf-elements.umd.min.js +2 -2
- package/dist/pdf-elements.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/components/PDFElements.vue +51 -7
package/dist/pdf-elements.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
canvas[data-v-2c9e224a]{display:block}.draggable-wrapper[data-v-55db89ce]{position:relative}.actions-toolbar[data-v-55db89ce]{position:absolute;display:flex;gap:4px;background:#1f2937;border-radius:6px;padding:6px 8px;box-shadow:0 4px 12px -2px #00000026,0 2px 6px -2px #0000001a;z-index:100;white-space:nowrap}.action-btn[data-v-55db89ce]{border:none;background:#0000;color:#fff;padding:4px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s ease}.action-btn[data-v-55db89ce]:hover{background:#ffffff1a}.draggable-element[data-v-55db89ce]{position:absolute;cursor:move;user-select:none;border-radius:6px;overflow:visible}.draggable-element.selected[data-v-55db89ce]{box-shadow:inset 0 0 0 2px #2563eb}.resize-handle[data-v-55db89ce]{position:absolute;width:10px;height:10px;background:#2563eb;border:1px solid #fff;border-radius:2px;padding:0;margin:0;cursor:pointer;z-index:200}.handle-top-left[data-v-55db89ce]{top:-6px;left:-6px;cursor:nwse-resize}.handle-top-right[data-v-55db89ce]{top:-6px;right:-6px;cursor:nesw-resize}.handle-bottom-left[data-v-55db89ce]{bottom:-6px;left:-6px;cursor:nesw-resize}.handle-bottom-right[data-v-55db89ce]{bottom:-6px;right:-6px;cursor:nwse-resize}.pdf-elements-root[data-v-
|
|
1
|
+
canvas[data-v-2c9e224a]{display:block}.draggable-wrapper[data-v-55db89ce]{position:relative}.actions-toolbar[data-v-55db89ce]{position:absolute;display:flex;gap:4px;background:#1f2937;border-radius:6px;padding:6px 8px;box-shadow:0 4px 12px -2px #00000026,0 2px 6px -2px #0000001a;z-index:100;white-space:nowrap}.action-btn[data-v-55db89ce]{border:none;background:#0000;color:#fff;padding:4px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s ease}.action-btn[data-v-55db89ce]:hover{background:#ffffff1a}.draggable-element[data-v-55db89ce]{position:absolute;cursor:move;user-select:none;border-radius:6px;overflow:visible}.draggable-element.selected[data-v-55db89ce]{box-shadow:inset 0 0 0 2px #2563eb}.resize-handle[data-v-55db89ce]{position:absolute;width:10px;height:10px;background:#2563eb;border:1px solid #fff;border-radius:2px;padding:0;margin:0;cursor:pointer;z-index:200}.handle-top-left[data-v-55db89ce]{top:-6px;left:-6px;cursor:nwse-resize}.handle-top-right[data-v-55db89ce]{top:-6px;right:-6px;cursor:nesw-resize}.handle-bottom-left[data-v-55db89ce]{bottom:-6px;left:-6px;cursor:nesw-resize}.handle-bottom-right[data-v-55db89ce]{bottom:-6px;right:-6px;cursor:nwse-resize}.pdf-elements-root[data-v-ddd8aa14]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.pages-container[data-v-ddd8aa14]{width:100%;padding:20px 0 0 0;text-align:center;background:#f7fafc;overflow:hidden}.page-slot[data-v-ddd8aa14]{margin:0 auto}.page-wrapper[data-v-ddd8aa14]{display:inline-block;margin-bottom:0}.page-canvas[data-v-ddd8aa14]{position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.shadow-outline[data-v-ddd8aa14]{box-shadow:0 0 0 3px #4299e180}.preview-element[data-v-ddd8aa14]{position:absolute;opacity:.7;pointer-events:none}.drag-ghost[data-v-ddd8aa14]{position:fixed;opacity:.9;pointer-events:none;z-index:10000;transform-origin:top left;transition:none;box-shadow:0 8px 16px #0000004d}.overlay[data-v-ddd8aa14]{position:absolute;top:0;left:0;transform-origin:top left;width:100%;height:100%}.page-footer[data-v-ddd8aa14]{display:flex;justify-content:space-between;align-items:center;padding:12px 20px 20px 20px;color:#4b5563;font-size:14px}
|
package/dist/pdf-elements.umd.js
CHANGED
|
@@ -190,6 +190,74 @@ module.exports = getBuiltIn('document', 'documentElement');
|
|
|
190
190
|
module.exports = {};
|
|
191
191
|
|
|
192
192
|
|
|
193
|
+
/***/ },
|
|
194
|
+
|
|
195
|
+
/***/ 531
|
|
196
|
+
(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
var $ = __webpack_require__(6518);
|
|
200
|
+
var call = __webpack_require__(9565);
|
|
201
|
+
var aCallable = __webpack_require__(9306);
|
|
202
|
+
var anObject = __webpack_require__(8551);
|
|
203
|
+
var getIteratorDirect = __webpack_require__(1767);
|
|
204
|
+
var getIteratorFlattenable = __webpack_require__(8646);
|
|
205
|
+
var createIteratorProxy = __webpack_require__(9462);
|
|
206
|
+
var iteratorClose = __webpack_require__(9539);
|
|
207
|
+
var IS_PURE = __webpack_require__(6395);
|
|
208
|
+
var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
|
|
209
|
+
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
|
|
210
|
+
|
|
211
|
+
var FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE
|
|
212
|
+
&& !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });
|
|
213
|
+
var flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
214
|
+
&& iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);
|
|
215
|
+
|
|
216
|
+
var FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError;
|
|
217
|
+
|
|
218
|
+
var IteratorProxy = createIteratorProxy(function () {
|
|
219
|
+
var iterator = this.iterator;
|
|
220
|
+
var mapper = this.mapper;
|
|
221
|
+
var result, inner;
|
|
222
|
+
|
|
223
|
+
while (true) {
|
|
224
|
+
if (inner = this.inner) try {
|
|
225
|
+
result = anObject(call(inner.next, inner.iterator));
|
|
226
|
+
if (!result.done) return result.value;
|
|
227
|
+
this.inner = null;
|
|
228
|
+
} catch (error) { iteratorClose(iterator, 'throw', error); }
|
|
229
|
+
|
|
230
|
+
result = anObject(call(this.next, iterator));
|
|
231
|
+
|
|
232
|
+
if (this.done = !!result.done) return;
|
|
233
|
+
|
|
234
|
+
try {
|
|
235
|
+
this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);
|
|
236
|
+
} catch (error) { iteratorClose(iterator, 'throw', error); }
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
// `Iterator.prototype.flatMap` method
|
|
241
|
+
// https://tc39.es/ecma262/#sec-iterator.prototype.flatmap
|
|
242
|
+
$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
|
|
243
|
+
flatMap: function flatMap(mapper) {
|
|
244
|
+
anObject(this);
|
|
245
|
+
try {
|
|
246
|
+
aCallable(mapper);
|
|
247
|
+
} catch (error) {
|
|
248
|
+
iteratorClose(this, 'throw', error);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);
|
|
252
|
+
|
|
253
|
+
return new IteratorProxy(getIteratorDirect(this), {
|
|
254
|
+
mapper: mapper,
|
|
255
|
+
inner: null
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
|
|
193
261
|
/***/ },
|
|
194
262
|
|
|
195
263
|
/***/ 616
|
|
@@ -2234,6 +2302,24 @@ var WeakMap = globalThis.WeakMap;
|
|
|
2234
2302
|
module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
|
|
2235
2303
|
|
|
2236
2304
|
|
|
2305
|
+
/***/ },
|
|
2306
|
+
|
|
2307
|
+
/***/ 8646
|
|
2308
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2309
|
+
|
|
2310
|
+
|
|
2311
|
+
var call = __webpack_require__(9565);
|
|
2312
|
+
var anObject = __webpack_require__(8551);
|
|
2313
|
+
var getIteratorDirect = __webpack_require__(1767);
|
|
2314
|
+
var getIteratorMethod = __webpack_require__(851);
|
|
2315
|
+
|
|
2316
|
+
module.exports = function (obj, stringHandling) {
|
|
2317
|
+
if (!stringHandling || typeof obj !== 'string') anObject(obj);
|
|
2318
|
+
var method = getIteratorMethod(obj);
|
|
2319
|
+
return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));
|
|
2320
|
+
};
|
|
2321
|
+
|
|
2322
|
+
|
|
2237
2323
|
/***/ },
|
|
2238
2324
|
|
|
2239
2325
|
/***/ 8686
|
|
@@ -29090,7 +29176,7 @@ globalThis.pdfjsLib = {
|
|
|
29090
29176
|
//# sourceMappingURL=pdf.mjs.map
|
|
29091
29177
|
;// ./node_modules/pdfjs-dist/build/pdf.worker.min.mjs
|
|
29092
29178
|
const pdf_worker_min_namespaceObject = __webpack_require__.p + "pdf.worker.min.mjs";
|
|
29093
|
-
;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=
|
|
29179
|
+
;// ./node_modules/babel-loader/lib/index.js??clonedRuleSet-83.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=ddd8aa14&scoped=true
|
|
29094
29180
|
var render = function render() {
|
|
29095
29181
|
var _vm = this,
|
|
29096
29182
|
_c = _vm._self._c;
|
|
@@ -29236,6 +29322,8 @@ var es_iterator_constructor = __webpack_require__(8111);
|
|
|
29236
29322
|
var es_iterator_filter = __webpack_require__(2489);
|
|
29237
29323
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
|
|
29238
29324
|
var es_iterator_find = __webpack_require__(116);
|
|
29325
|
+
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js
|
|
29326
|
+
var es_iterator_flat_map = __webpack_require__(531);
|
|
29239
29327
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
|
|
29240
29328
|
var es_iterator_for_each = __webpack_require__(7588);
|
|
29241
29329
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
|
|
@@ -30074,6 +30162,7 @@ function readAsPDF(file) {
|
|
|
30074
30162
|
|
|
30075
30163
|
|
|
30076
30164
|
|
|
30165
|
+
|
|
30077
30166
|
/* harmony default export */ const PDFElementsvue_type_script_lang_js = ({
|
|
30078
30167
|
name: 'PDFElements',
|
|
30079
30168
|
components: {
|
|
@@ -30172,7 +30261,8 @@ function readAsPDF(file) {
|
|
|
30172
30261
|
zoomRafId: null,
|
|
30173
30262
|
boundHandleWheel: null,
|
|
30174
30263
|
debouncedApplyZoom: null,
|
|
30175
|
-
visualScale: this.initialScale
|
|
30264
|
+
visualScale: this.initialScale,
|
|
30265
|
+
resizeObserver: null
|
|
30176
30266
|
};
|
|
30177
30267
|
},
|
|
30178
30268
|
mounted() {
|
|
@@ -30198,6 +30288,14 @@ function readAsPDF(file) {
|
|
|
30198
30288
|
});
|
|
30199
30289
|
if (this.autoFitZoom) {
|
|
30200
30290
|
window.addEventListener('resize', this.adjustZoomToFit);
|
|
30291
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
30292
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
30293
|
+
this.scheduleAutoFitZoom();
|
|
30294
|
+
});
|
|
30295
|
+
if (this.$el) {
|
|
30296
|
+
this.resizeObserver.observe(this.$el);
|
|
30297
|
+
}
|
|
30298
|
+
}
|
|
30201
30299
|
}
|
|
30202
30300
|
},
|
|
30203
30301
|
beforeUnmount() {
|
|
@@ -30218,6 +30316,10 @@ function readAsPDF(file) {
|
|
|
30218
30316
|
this.$el?.removeEventListener('scroll', this.onViewportScroll);
|
|
30219
30317
|
if (this.autoFitZoom) {
|
|
30220
30318
|
window.removeEventListener('resize', this.adjustZoomToFit);
|
|
30319
|
+
if (this.resizeObserver) {
|
|
30320
|
+
this.resizeObserver.disconnect();
|
|
30321
|
+
this.resizeObserver = null;
|
|
30322
|
+
}
|
|
30221
30323
|
}
|
|
30222
30324
|
if (this.viewportRafId) {
|
|
30223
30325
|
window.cancelAnimationFrame(this.viewportRafId);
|
|
@@ -30241,8 +30343,18 @@ function readAsPDF(file) {
|
|
|
30241
30343
|
pdfDoc = await readAsPDF(file);
|
|
30242
30344
|
}
|
|
30243
30345
|
const pages = [];
|
|
30346
|
+
const pageWidths = Array(pdfDoc.numPages).fill(0);
|
|
30244
30347
|
for (let p = 1; p <= pdfDoc.numPages; p++) {
|
|
30245
|
-
|
|
30348
|
+
const pagePromise = pdfDoc.getPage(p);
|
|
30349
|
+
pagePromise.then(page => {
|
|
30350
|
+
pageWidths[p - 1] = page.getViewport({
|
|
30351
|
+
scale: 1
|
|
30352
|
+
}).width;
|
|
30353
|
+
if (this.autoFitZoom) {
|
|
30354
|
+
this.scheduleAutoFitZoom();
|
|
30355
|
+
}
|
|
30356
|
+
});
|
|
30357
|
+
pages.push(pagePromise);
|
|
30246
30358
|
}
|
|
30247
30359
|
docs.push({
|
|
30248
30360
|
name,
|
|
@@ -30250,6 +30362,7 @@ function readAsPDF(file) {
|
|
|
30250
30362
|
pdfDoc,
|
|
30251
30363
|
numPages: pdfDoc.numPages,
|
|
30252
30364
|
pages,
|
|
30365
|
+
pageWidths,
|
|
30253
30366
|
pagesScale: Array(pdfDoc.numPages).fill(this.scale),
|
|
30254
30367
|
allObjects: Array(pdfDoc.numPages).fill(0).map(() => [])
|
|
30255
30368
|
});
|
|
@@ -30263,7 +30376,7 @@ function readAsPDF(file) {
|
|
|
30263
30376
|
});
|
|
30264
30377
|
this.$nextTick(() => {
|
|
30265
30378
|
if (this.autoFitZoom) {
|
|
30266
|
-
this.
|
|
30379
|
+
this.scheduleAutoFitZoom();
|
|
30267
30380
|
}
|
|
30268
30381
|
});
|
|
30269
30382
|
}
|
|
@@ -30685,6 +30798,9 @@ function readAsPDF(file) {
|
|
|
30685
30798
|
if (docIndex < 0 || docIndex >= this.pdfDocuments.length) return;
|
|
30686
30799
|
this.pdfDocuments[docIndex].pagesScale[pageIndex] = e.scale;
|
|
30687
30800
|
this.cachePageBounds();
|
|
30801
|
+
if (this.autoFitZoom) {
|
|
30802
|
+
this.scheduleAutoFitZoom();
|
|
30803
|
+
}
|
|
30688
30804
|
},
|
|
30689
30805
|
formatPageNumber(currentPage, totalPages) {
|
|
30690
30806
|
return this.pageCountFormat.replace('{currentPage}', currentPage).replace('{totalPages}', totalPages);
|
|
@@ -30709,11 +30825,28 @@ function readAsPDF(file) {
|
|
|
30709
30825
|
const availableWidth = containerWidth - 40;
|
|
30710
30826
|
return Math.max(0.1, Math.min(2, availableWidth / maxPageWidth));
|
|
30711
30827
|
},
|
|
30828
|
+
scheduleAutoFitZoom() {
|
|
30829
|
+
if (this.zoomRafId) return;
|
|
30830
|
+
this.zoomRafId = window.requestAnimationFrame(() => {
|
|
30831
|
+
this.zoomRafId = 0;
|
|
30832
|
+
this.adjustZoomToFit();
|
|
30833
|
+
});
|
|
30834
|
+
},
|
|
30712
30835
|
adjustZoomToFit() {
|
|
30713
30836
|
if (!this.autoFitZoom || !this.pdfDocuments.length) return;
|
|
30714
|
-
const
|
|
30715
|
-
|
|
30716
|
-
|
|
30837
|
+
const widths = this.pdfDocuments.flatMap(doc => doc.pageWidths || []).filter(width => width > 0);
|
|
30838
|
+
let maxCanvasWidth = 0;
|
|
30839
|
+
if (widths.length) {
|
|
30840
|
+
maxCanvasWidth = Math.max(...widths);
|
|
30841
|
+
} else {
|
|
30842
|
+
if (this.autoFitZoom) {
|
|
30843
|
+
this.scheduleAutoFitZoom();
|
|
30844
|
+
return;
|
|
30845
|
+
}
|
|
30846
|
+
const canvases = this.$el?.querySelectorAll('canvas');
|
|
30847
|
+
if (!canvases?.length) return;
|
|
30848
|
+
maxCanvasWidth = Math.max(...Array.from(canvases).map(canvas => canvas.width / (this.scale || 1)));
|
|
30849
|
+
}
|
|
30717
30850
|
const optimalScale = this.calculateOptimalScale(maxCanvasWidth);
|
|
30718
30851
|
if (Math.abs(optimalScale - this.scale) > 0.01) {
|
|
30719
30852
|
this.scale = optimalScale;
|
|
@@ -30728,10 +30861,10 @@ function readAsPDF(file) {
|
|
|
30728
30861
|
});
|
|
30729
30862
|
;// ./src/components/PDFElements.vue?vue&type=script&lang=js
|
|
30730
30863
|
/* harmony default export */ const components_PDFElementsvue_type_script_lang_js = (PDFElementsvue_type_script_lang_js);
|
|
30731
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-55.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-55.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-55.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PDFElements.vue?vue&type=style&index=0&id=
|
|
30864
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-55.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-55.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-55.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/PDFElements.vue?vue&type=style&index=0&id=ddd8aa14&prod&scoped=true&lang=css
|
|
30732
30865
|
// extracted by mini-css-extract-plugin
|
|
30733
30866
|
|
|
30734
|
-
;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=
|
|
30867
|
+
;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=ddd8aa14&prod&scoped=true&lang=css
|
|
30735
30868
|
|
|
30736
30869
|
;// ./src/components/PDFElements.vue
|
|
30737
30870
|
|
|
@@ -30748,7 +30881,7 @@ var PDFElements_component = normalizeComponent(
|
|
|
30748
30881
|
staticRenderFns,
|
|
30749
30882
|
false,
|
|
30750
30883
|
null,
|
|
30751
|
-
"
|
|
30884
|
+
"ddd8aa14",
|
|
30752
30885
|
null
|
|
30753
30886
|
|
|
30754
30887
|
)
|