@libresign/pdf-elements 0.2.1 → 0.2.3

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.
@@ -180,6 +180,74 @@ module.exports = getBuiltIn('document', 'documentElement');
180
180
  module.exports = {};
181
181
 
182
182
 
183
+ /***/ },
184
+
185
+ /***/ 531
186
+ (__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
187
+
188
+
189
+ var $ = __webpack_require__(6518);
190
+ var call = __webpack_require__(9565);
191
+ var aCallable = __webpack_require__(9306);
192
+ var anObject = __webpack_require__(8551);
193
+ var getIteratorDirect = __webpack_require__(1767);
194
+ var getIteratorFlattenable = __webpack_require__(8646);
195
+ var createIteratorProxy = __webpack_require__(9462);
196
+ var iteratorClose = __webpack_require__(9539);
197
+ var IS_PURE = __webpack_require__(6395);
198
+ var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
199
+ var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
200
+
201
+ var FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE
202
+ && !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });
203
+ var flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
204
+ && iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);
205
+
206
+ var FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError;
207
+
208
+ var IteratorProxy = createIteratorProxy(function () {
209
+ var iterator = this.iterator;
210
+ var mapper = this.mapper;
211
+ var result, inner;
212
+
213
+ while (true) {
214
+ if (inner = this.inner) try {
215
+ result = anObject(call(inner.next, inner.iterator));
216
+ if (!result.done) return result.value;
217
+ this.inner = null;
218
+ } catch (error) { iteratorClose(iterator, 'throw', error); }
219
+
220
+ result = anObject(call(this.next, iterator));
221
+
222
+ if (this.done = !!result.done) return;
223
+
224
+ try {
225
+ this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false);
226
+ } catch (error) { iteratorClose(iterator, 'throw', error); }
227
+ }
228
+ });
229
+
230
+ // `Iterator.prototype.flatMap` method
231
+ // https://tc39.es/ecma262/#sec-iterator.prototype.flatmap
232
+ $({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
233
+ flatMap: function flatMap(mapper) {
234
+ anObject(this);
235
+ try {
236
+ aCallable(mapper);
237
+ } catch (error) {
238
+ iteratorClose(this, 'throw', error);
239
+ }
240
+
241
+ if (flatMapWithoutClosingOnEarlyError) return call(flatMapWithoutClosingOnEarlyError, this, mapper);
242
+
243
+ return new IteratorProxy(getIteratorDirect(this), {
244
+ mapper: mapper,
245
+ inner: null
246
+ });
247
+ }
248
+ });
249
+
250
+
183
251
  /***/ },
184
252
 
185
253
  /***/ 616
@@ -2224,6 +2292,24 @@ var WeakMap = globalThis.WeakMap;
2224
2292
  module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
2225
2293
 
2226
2294
 
2295
+ /***/ },
2296
+
2297
+ /***/ 8646
2298
+ (module, __unused_webpack_exports, __webpack_require__) {
2299
+
2300
+
2301
+ var call = __webpack_require__(9565);
2302
+ var anObject = __webpack_require__(8551);
2303
+ var getIteratorDirect = __webpack_require__(1767);
2304
+ var getIteratorMethod = __webpack_require__(851);
2305
+
2306
+ module.exports = function (obj, stringHandling) {
2307
+ if (!stringHandling || typeof obj !== 'string') anObject(obj);
2308
+ var method = getIteratorMethod(obj);
2309
+ return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj));
2310
+ };
2311
+
2312
+
2227
2313
  /***/ },
2228
2314
 
2229
2315
  /***/ 8686
@@ -29080,7 +29166,7 @@ globalThis.pdfjsLib = {
29080
29166
  //# sourceMappingURL=pdf.mjs.map
29081
29167
  ;// ./node_modules/pdfjs-dist/build/pdf.worker.min.mjs
29082
29168
  const pdf_worker_min_namespaceObject = __webpack_require__.p + "pdf.worker.min.mjs";
29083
- ;// ./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=00b0fcba&scoped=true
29169
+ ;// ./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=a3ee1be0&scoped=true
29084
29170
  var render = function render() {
29085
29171
  var _vm = this,
29086
29172
  _c = _vm._self._c;
@@ -29226,6 +29312,8 @@ var es_iterator_constructor = __webpack_require__(8111);
29226
29312
  var es_iterator_filter = __webpack_require__(2489);
29227
29313
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.find.js
29228
29314
  var es_iterator_find = __webpack_require__(116);
29315
+ // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.flat-map.js
29316
+ var es_iterator_flat_map = __webpack_require__(531);
29229
29317
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
29230
29318
  var es_iterator_for_each = __webpack_require__(7588);
29231
29319
  // EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
@@ -30064,6 +30152,7 @@ function readAsPDF(file) {
30064
30152
 
30065
30153
 
30066
30154
 
30155
+
30067
30156
  /* harmony default export */ const PDFElementsvue_type_script_lang_js = ({
30068
30157
  name: 'PDFElements',
30069
30158
  components: {
@@ -30162,7 +30251,8 @@ function readAsPDF(file) {
30162
30251
  zoomRafId: null,
30163
30252
  boundHandleWheel: null,
30164
30253
  debouncedApplyZoom: null,
30165
- visualScale: this.initialScale
30254
+ visualScale: this.initialScale,
30255
+ autoFitApplied: false
30166
30256
  };
30167
30257
  },
30168
30258
  mounted() {
@@ -30186,9 +30276,6 @@ function readAsPDF(file) {
30186
30276
  this.$el?.addEventListener('wheel', this.boundHandleWheel, {
30187
30277
  passive: false
30188
30278
  });
30189
- if (this.autoFitZoom) {
30190
- window.addEventListener('resize', this.adjustZoomToFit);
30191
- }
30192
30279
  },
30193
30280
  beforeUnmount() {
30194
30281
  if (this.zoomRafId) {
@@ -30206,9 +30293,6 @@ function readAsPDF(file) {
30206
30293
  window.removeEventListener('scroll', this.onViewportScroll);
30207
30294
  window.removeEventListener('resize', this.onViewportScroll);
30208
30295
  this.$el?.removeEventListener('scroll', this.onViewportScroll);
30209
- if (this.autoFitZoom) {
30210
- window.removeEventListener('resize', this.adjustZoomToFit);
30211
- }
30212
30296
  if (this.viewportRafId) {
30213
30297
  window.cancelAnimationFrame(this.viewportRafId);
30214
30298
  this.viewportRafId = 0;
@@ -30218,6 +30302,7 @@ function readAsPDF(file) {
30218
30302
  async init() {
30219
30303
  if (!this.initFiles || this.initFiles.length === 0) return;
30220
30304
  const docs = [];
30305
+ this.autoFitApplied = false;
30221
30306
  for (let i = 0; i < this.initFiles.length; i++) {
30222
30307
  const file = this.initFiles[i];
30223
30308
  const name = this.initFileNames[i] || `document-${i + 1}.pdf`;
@@ -30231,8 +30316,18 @@ function readAsPDF(file) {
30231
30316
  pdfDoc = await readAsPDF(file);
30232
30317
  }
30233
30318
  const pages = [];
30319
+ const pageWidths = Array(pdfDoc.numPages).fill(0);
30234
30320
  for (let p = 1; p <= pdfDoc.numPages; p++) {
30235
- pages.push(pdfDoc.getPage(p));
30321
+ const pagePromise = pdfDoc.getPage(p);
30322
+ pagePromise.then(page => {
30323
+ pageWidths[p - 1] = page.getViewport({
30324
+ scale: 1
30325
+ }).width;
30326
+ if (this.autoFitZoom) {
30327
+ this.scheduleAutoFitZoom();
30328
+ }
30329
+ });
30330
+ pages.push(pagePromise);
30236
30331
  }
30237
30332
  docs.push({
30238
30333
  name,
@@ -30240,6 +30335,7 @@ function readAsPDF(file) {
30240
30335
  pdfDoc,
30241
30336
  numPages: pdfDoc.numPages,
30242
30337
  pages,
30338
+ pageWidths,
30243
30339
  pagesScale: Array(pdfDoc.numPages).fill(this.scale),
30244
30340
  allObjects: Array(pdfDoc.numPages).fill(0).map(() => [])
30245
30341
  });
@@ -30253,7 +30349,7 @@ function readAsPDF(file) {
30253
30349
  });
30254
30350
  this.$nextTick(() => {
30255
30351
  if (this.autoFitZoom) {
30256
- this.adjustZoomToFit();
30352
+ this.scheduleAutoFitZoom();
30257
30353
  }
30258
30354
  });
30259
30355
  }
@@ -30675,6 +30771,9 @@ function readAsPDF(file) {
30675
30771
  if (docIndex < 0 || docIndex >= this.pdfDocuments.length) return;
30676
30772
  this.pdfDocuments[docIndex].pagesScale[pageIndex] = e.scale;
30677
30773
  this.cachePageBounds();
30774
+ if (this.autoFitZoom) {
30775
+ this.scheduleAutoFitZoom();
30776
+ }
30678
30777
  },
30679
30778
  formatPageNumber(currentPage, totalPages) {
30680
30779
  return this.pageCountFormat.replace('{currentPage}', currentPage).replace('{totalPages}', totalPages);
@@ -30699,12 +30798,31 @@ function readAsPDF(file) {
30699
30798
  const availableWidth = containerWidth - 40;
30700
30799
  return Math.max(0.1, Math.min(2, availableWidth / maxPageWidth));
30701
30800
  },
30801
+ scheduleAutoFitZoom() {
30802
+ if (this.autoFitApplied) return;
30803
+ if (this.zoomRafId) return;
30804
+ this.zoomRafId = window.requestAnimationFrame(() => {
30805
+ this.zoomRafId = 0;
30806
+ this.adjustZoomToFit();
30807
+ });
30808
+ },
30702
30809
  adjustZoomToFit() {
30703
- if (!this.autoFitZoom || !this.pdfDocuments.length) return;
30704
- const canvases = this.$el?.querySelectorAll('canvas');
30705
- if (!canvases?.length) return;
30706
- const maxCanvasWidth = Math.max(...Array.from(canvases).map(canvas => canvas.width / (this.scale || 1)));
30810
+ if (!this.autoFitZoom || this.autoFitApplied || !this.pdfDocuments.length) return;
30811
+ const widths = this.pdfDocuments.flatMap(doc => doc.pageWidths || []).filter(width => width > 0);
30812
+ let maxCanvasWidth = 0;
30813
+ if (widths.length) {
30814
+ maxCanvasWidth = Math.max(...widths);
30815
+ } else {
30816
+ if (this.autoFitZoom) {
30817
+ this.scheduleAutoFitZoom();
30818
+ return;
30819
+ }
30820
+ const canvases = this.$el?.querySelectorAll('canvas');
30821
+ if (!canvases?.length) return;
30822
+ maxCanvasWidth = Math.max(...Array.from(canvases).map(canvas => canvas.width / (this.scale || 1)));
30823
+ }
30707
30824
  const optimalScale = this.calculateOptimalScale(maxCanvasWidth);
30825
+ this.autoFitApplied = true;
30708
30826
  if (Math.abs(optimalScale - this.scale) > 0.01) {
30709
30827
  this.scale = optimalScale;
30710
30828
  this.visualScale = optimalScale;
@@ -30718,10 +30836,10 @@ function readAsPDF(file) {
30718
30836
  });
30719
30837
  ;// ./src/components/PDFElements.vue?vue&type=script&lang=js
30720
30838
  /* harmony default export */ const components_PDFElementsvue_type_script_lang_js = (PDFElementsvue_type_script_lang_js);
30721
- ;// ./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=00b0fcba&prod&scoped=true&lang=css
30839
+ ;// ./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=a3ee1be0&prod&scoped=true&lang=css
30722
30840
  // extracted by mini-css-extract-plugin
30723
30841
 
30724
- ;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=00b0fcba&prod&scoped=true&lang=css
30842
+ ;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=a3ee1be0&prod&scoped=true&lang=css
30725
30843
 
30726
30844
  ;// ./src/components/PDFElements.vue
30727
30845
 
@@ -30738,7 +30856,7 @@ var PDFElements_component = normalizeComponent(
30738
30856
  staticRenderFns,
30739
30857
  false,
30740
30858
  null,
30741
- "00b0fcba",
30859
+ "a3ee1be0",
30742
30860
  null
30743
30861
 
30744
30862
  )