@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.
@@ -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-5a4a7f3b]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.pages-container[data-v-5a4a7f3b]{width:100%;padding:20px 0 0 0;text-align:center;background:#f7fafc;overflow:hidden}.page-slot[data-v-5a4a7f3b]{margin:0 auto}.page-wrapper[data-v-5a4a7f3b]{display:inline-block;margin-bottom:0}.page-canvas[data-v-5a4a7f3b]{position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.shadow-outline[data-v-5a4a7f3b]{box-shadow:0 0 0 3px #4299e180}.preview-element[data-v-5a4a7f3b]{position:absolute;opacity:.7;pointer-events:none}.drag-ghost[data-v-5a4a7f3b]{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-5a4a7f3b]{position:absolute;top:0;left:0;transform-origin:top left;width:100%;height:100%}.page-footer[data-v-5a4a7f3b]{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-7a179460]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.pages-container[data-v-7a179460]{width:100%;padding:20px 0 0 0;text-align:center;background:#f7fafc;overflow:hidden}.page-slot[data-v-7a179460]{margin:0 auto}.page-wrapper[data-v-7a179460]{display:inline-block;margin-bottom:0}.page-canvas[data-v-7a179460]{position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.shadow-outline[data-v-7a179460]{box-shadow:0 0 0 3px #4299e180}.preview-element[data-v-7a179460]{position:absolute;opacity:.7;pointer-events:none}.drag-ghost[data-v-7a179460]{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-7a179460]{position:absolute;top:0;left:0;transform-origin:top left;width:100%;height:100%}.page-footer[data-v-7a179460]{display:flex;justify-content:space-between;align-items:center;padding:12px 20px 20px 20px;color:#4b5563;font-size:14px}
@@ -2696,7 +2696,7 @@ if (typeof window !== 'undefined') {
2696
2696
  // Indicate to webpack that this file can be concatenated
2697
2697
  /* harmony default export */ const setPublicPath = (null);
2698
2698
 
2699
- ;// ./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=5a4a7f3b&scoped=true
2699
+ ;// ./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=7a179460&scoped=true
2700
2700
  var render = function render() {
2701
2701
  var _vm = this,
2702
2702
  _c = _vm._self._c;
@@ -30117,6 +30117,10 @@ function readAsPDF(file) {
30117
30117
  pageCountFormat: {
30118
30118
  type: String,
30119
30119
  default: '{currentPage} of {totalPages}'
30120
+ },
30121
+ autoFitZoom: {
30122
+ type: Boolean,
30123
+ default: false
30120
30124
  }
30121
30125
  },
30122
30126
  data() {
@@ -30189,6 +30193,9 @@ function readAsPDF(file) {
30189
30193
  this.$el?.addEventListener('wheel', this.boundHandleWheel, {
30190
30194
  passive: false
30191
30195
  });
30196
+ if (this.autoFitZoom) {
30197
+ window.addEventListener('resize', this.adjustZoomToFit);
30198
+ }
30192
30199
  },
30193
30200
  beforeUnmount() {
30194
30201
  if (this.zoomRafId) {
@@ -30206,6 +30213,9 @@ function readAsPDF(file) {
30206
30213
  window.removeEventListener('scroll', this.onViewportScroll);
30207
30214
  window.removeEventListener('resize', this.onViewportScroll);
30208
30215
  this.$el?.removeEventListener('scroll', this.onViewportScroll);
30216
+ if (this.autoFitZoom) {
30217
+ window.removeEventListener('resize', this.adjustZoomToFit);
30218
+ }
30209
30219
  if (this.viewportRafId) {
30210
30220
  window.cancelAnimationFrame(this.viewportRafId);
30211
30221
  this.viewportRafId = 0;
@@ -30684,15 +30694,32 @@ function readAsPDF(file) {
30684
30694
  const doc = this.pdfDocuments[docIndex];
30685
30695
  const pagesScale = doc.pagesScale[pageIndex] || 1;
30686
30696
  return pageRef.getCanvasMeasurement().canvasHeight / pagesScale;
30697
+ },
30698
+ calculateOptimalScale(maxPageWidth) {
30699
+ const containerWidth = this.$el?.clientWidth || 0;
30700
+ if (!containerWidth || !maxPageWidth) return 1;
30701
+ const availableWidth = containerWidth - 40;
30702
+ return Math.max(0.1, Math.min(2, availableWidth / maxPageWidth));
30703
+ },
30704
+ adjustZoomToFit() {
30705
+ if (!this.autoFitZoom || !this.pdfDocuments.length) return;
30706
+ const canvases = this.$el?.querySelectorAll('canvas');
30707
+ if (!canvases?.length) return;
30708
+ const maxCanvasWidth = Math.max(...Array.from(canvases).map(canvas => canvas.width / (this.scale || 1)));
30709
+ const optimalScale = this.calculateOptimalScale(maxCanvasWidth);
30710
+ if (Math.abs(optimalScale - this.scale) > 0.01) {
30711
+ this.scale = optimalScale;
30712
+ this.visualScale = optimalScale;
30713
+ }
30687
30714
  }
30688
30715
  }
30689
30716
  });
30690
30717
  ;// ./src/components/PDFElements.vue?vue&type=script&lang=js
30691
30718
  /* harmony default export */ const components_PDFElementsvue_type_script_lang_js = (PDFElementsvue_type_script_lang_js);
30692
- ;// ./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=5a4a7f3b&prod&scoped=true&lang=css
30719
+ ;// ./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=7a179460&prod&scoped=true&lang=css
30693
30720
  // extracted by mini-css-extract-plugin
30694
30721
 
30695
- ;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=5a4a7f3b&prod&scoped=true&lang=css
30722
+ ;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=7a179460&prod&scoped=true&lang=css
30696
30723
 
30697
30724
  ;// ./src/components/PDFElements.vue
30698
30725
 
@@ -30709,7 +30736,7 @@ var PDFElements_component = normalizeComponent(
30709
30736
  staticRenderFns,
30710
30737
  false,
30711
30738
  null,
30712
- "5a4a7f3b",
30739
+ "7a179460",
30713
30740
  null
30714
30741
 
30715
30742
  )