@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.
@@ -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-00b0fcba]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.pages-container[data-v-00b0fcba]{width:100%;padding:20px 0 0 0;text-align:center;background:#f7fafc;overflow:hidden}.page-slot[data-v-00b0fcba]{margin:0 auto}.page-wrapper[data-v-00b0fcba]{display:inline-block;margin-bottom:0}.page-canvas[data-v-00b0fcba]{position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.shadow-outline[data-v-00b0fcba]{box-shadow:0 0 0 3px #4299e180}.preview-element[data-v-00b0fcba]{position:absolute;opacity:.7;pointer-events:none}.drag-ghost[data-v-00b0fcba]{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-00b0fcba]{position:absolute;top:0;left:0;transform-origin:top left;width:100%;height:100%}.page-footer[data-v-00b0fcba]{display:flex;justify-content:space-between;align-items:center;padding:12px 20px 20px 20px;color:#4b5563;font-size:14px}
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}
@@ -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=00b0fcba&scoped=true
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
- pages.push(pdfDoc.getPage(p));
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.adjustZoomToFit();
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 canvases = this.$el?.querySelectorAll('canvas');
30715
- if (!canvases?.length) return;
30716
- const maxCanvasWidth = Math.max(...Array.from(canvases).map(canvas => canvas.width / (this.scale || 1)));
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=00b0fcba&prod&scoped=true&lang=css
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=00b0fcba&prod&scoped=true&lang=css
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
- "00b0fcba",
30884
+ "ddd8aa14",
30752
30885
  null
30753
30886
 
30754
30887
  )