@libresign/pdf-elements 0.3.1 → 0.4.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/dist/pdf-elements.common.js +71 -9
- package/dist/pdf-elements.common.js.map +1 -1
- package/dist/pdf-elements.css +1 -1
- package/dist/pdf-elements.umd.js +71 -9
- 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 +48 -0
package/dist/pdf-elements.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
canvas[data-v-acf7a444]{display:block}.draggable-wrapper[data-v-9f1fd9e4]{position:relative}.actions-toolbar[data-v-9f1fd9e4]{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:5;white-space:nowrap}.action-btn[data-v-9f1fd9e4]{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-9f1fd9e4]:hover{background:#ffffff1a}.draggable-element[data-v-9f1fd9e4]{position:absolute;cursor:move;user-select:none;border-radius:6px;overflow:visible}.draggable-element.selected[data-v-9f1fd9e4]{box-shadow:inset 0 0 0 2px #2563eb}.resize-handle[data-v-9f1fd9e4]{all:unset;position:absolute;width:12px;height:12px;min-width:0;min-height:0;background:#2563eb;border:1px solid #fff;border-radius:3px;padding:0;margin:0;line-height:0;font-size:0;box-sizing:border-box;display:block;appearance:none;cursor:pointer;z-index:5}.handle-top-left[data-v-9f1fd9e4]{top:-7px;left:-7px;cursor:nwse-resize}.handle-top-right[data-v-9f1fd9e4]{top:-7px;right:-7px;cursor:nesw-resize}.handle-bottom-left[data-v-9f1fd9e4]{bottom:-7px;left:-7px;cursor:nesw-resize}.handle-bottom-right[data-v-9f1fd9e4]{bottom:-7px;right:-7px;cursor:nwse-resize}.pdf-elements-root[data-v-
|
|
1
|
+
canvas[data-v-acf7a444]{display:block}.draggable-wrapper[data-v-9f1fd9e4]{position:relative}.actions-toolbar[data-v-9f1fd9e4]{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:5;white-space:nowrap}.action-btn[data-v-9f1fd9e4]{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-9f1fd9e4]:hover{background:#ffffff1a}.draggable-element[data-v-9f1fd9e4]{position:absolute;cursor:move;user-select:none;border-radius:6px;overflow:visible}.draggable-element.selected[data-v-9f1fd9e4]{box-shadow:inset 0 0 0 2px #2563eb}.resize-handle[data-v-9f1fd9e4]{all:unset;position:absolute;width:12px;height:12px;min-width:0;min-height:0;background:#2563eb;border:1px solid #fff;border-radius:3px;padding:0;margin:0;line-height:0;font-size:0;box-sizing:border-box;display:block;appearance:none;cursor:pointer;z-index:5}.handle-top-left[data-v-9f1fd9e4]{top:-7px;left:-7px;cursor:nwse-resize}.handle-top-right[data-v-9f1fd9e4]{top:-7px;right:-7px;cursor:nesw-resize}.handle-bottom-left[data-v-9f1fd9e4]{bottom:-7px;left:-7px;cursor:nesw-resize}.handle-bottom-right[data-v-9f1fd9e4]{bottom:-7px;right:-7px;cursor:nwse-resize}.pdf-elements-root[data-v-4b0138d1]{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.pages-container[data-v-4b0138d1]{width:100%;padding:20px 0 0 0;text-align:center;background:#f7fafc;overflow:hidden}.page-slot[data-v-4b0138d1]{margin:0 auto}.page-wrapper[data-v-4b0138d1]{display:inline-block;margin-bottom:0}.page-canvas[data-v-4b0138d1]{position:relative;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.shadow-outline[data-v-4b0138d1]{box-shadow:0 0 0 3px #4299e180}.preview-element[data-v-4b0138d1]{position:absolute;opacity:.7;pointer-events:none}.overlay[data-v-4b0138d1]{position:absolute;top:0;left:0;transform-origin:top left;width:100%;height:100%}.page-footer[data-v-4b0138d1]{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
|
@@ -208,12 +208,26 @@ var IS_PURE = __webpack_require__(6395);
|
|
|
208
208
|
var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
|
|
209
209
|
var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
|
|
210
210
|
|
|
211
|
+
// Should not throw an error for an iterator without `return` method. Fixed in Safari 26.2
|
|
212
|
+
// https://bugs.webkit.org/show_bug.cgi?id=297532
|
|
213
|
+
function throwsOnIteratorWithoutReturn() {
|
|
214
|
+
try {
|
|
215
|
+
// eslint-disable-next-line es/no-map, es/no-iterator, es/no-iterator-prototype-flatmap -- required for testing
|
|
216
|
+
var it = Iterator.prototype.flatMap.call(new Map([[4, 5]]).entries(), function (v) { return v; });
|
|
217
|
+
it.next();
|
|
218
|
+
it['return']();
|
|
219
|
+
} catch (error) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
211
224
|
var FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE
|
|
212
225
|
&& !iteratorHelperThrowsOnInvalidIterator('flatMap', function () { /* empty */ });
|
|
213
226
|
var flatMapWithoutClosingOnEarlyError = !IS_PURE && !FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
|
|
214
227
|
&& iteratorHelperWithoutClosingOnEarlyError('flatMap', TypeError);
|
|
215
228
|
|
|
216
|
-
var FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError
|
|
229
|
+
var FORCED = IS_PURE || FLAT_MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || flatMapWithoutClosingOnEarlyError
|
|
230
|
+
|| throwsOnIteratorWithoutReturn();
|
|
217
231
|
|
|
218
232
|
var IteratorProxy = createIteratorProxy(function () {
|
|
219
233
|
var iterator = this.iterator;
|
|
@@ -2311,10 +2325,10 @@ var SHARED = '__core-js_shared__';
|
|
|
2311
2325
|
var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
|
|
2312
2326
|
|
|
2313
2327
|
(store.versions || (store.versions = [])).push({
|
|
2314
|
-
version: '3.
|
|
2328
|
+
version: '3.48.0',
|
|
2315
2329
|
mode: IS_PURE ? 'pure' : 'global',
|
|
2316
|
-
copyright: '©
|
|
2317
|
-
license: 'https://github.com/zloirock/core-js/blob/v3.
|
|
2330
|
+
copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',
|
|
2331
|
+
license: 'https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE',
|
|
2318
2332
|
source: 'https://github.com/zloirock/core-js'
|
|
2319
2333
|
});
|
|
2320
2334
|
|
|
@@ -3172,7 +3186,7 @@ if (typeof window !== 'undefined') {
|
|
|
3172
3186
|
// Indicate to webpack that this file can be concatenated
|
|
3173
3187
|
/* harmony default export */ const setPublicPath = (null);
|
|
3174
3188
|
|
|
3175
|
-
;// ./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=
|
|
3189
|
+
;// ./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=4b0138d1&scoped=true
|
|
3176
3190
|
var render = function render() {
|
|
3177
3191
|
var _vm = this,
|
|
3178
3192
|
_c = _vm._self._c;
|
|
@@ -3222,7 +3236,13 @@ var render = function render() {
|
|
|
3222
3236
|
staticClass: "overlay",
|
|
3223
3237
|
on: {
|
|
3224
3238
|
"mousemove": _vm.handleMouseMove,
|
|
3225
|
-
"touchmove": _vm.handleMouseMove
|
|
3239
|
+
"touchmove": _vm.handleMouseMove,
|
|
3240
|
+
"click": function ($event) {
|
|
3241
|
+
return _vm.handleOverlayClick(docIndex, pIndex, $event);
|
|
3242
|
+
},
|
|
3243
|
+
"touchend": function ($event) {
|
|
3244
|
+
return _vm.handleOverlayClick(docIndex, pIndex, $event);
|
|
3245
|
+
}
|
|
3226
3246
|
}
|
|
3227
3247
|
}, [_vm.isAddingMode && _vm.previewPageDocIndex === docIndex && _vm.previewPageIndex === pIndex && _vm.previewElement && _vm.previewVisible ? _c('div', {
|
|
3228
3248
|
staticClass: "preview-element",
|
|
@@ -30736,6 +30756,10 @@ function getCachedMeasurement(cache, cacheKey, pageRef, pagesScale) {
|
|
|
30736
30756
|
type: Boolean,
|
|
30737
30757
|
default: false
|
|
30738
30758
|
},
|
|
30759
|
+
emitObjectClick: {
|
|
30760
|
+
type: Boolean,
|
|
30761
|
+
default: false
|
|
30762
|
+
},
|
|
30739
30763
|
ignoreClickOutsideSelectors: {
|
|
30740
30764
|
type: Array,
|
|
30741
30765
|
default: () => []
|
|
@@ -31208,6 +31232,44 @@ function getCachedMeasurement(cache, cacheKey, pageRef, pagesScale) {
|
|
|
31208
31232
|
this.previewVisible = true;
|
|
31209
31233
|
});
|
|
31210
31234
|
},
|
|
31235
|
+
handleOverlayClick(docIndex, pageIndex, event) {
|
|
31236
|
+
if (!this.emitObjectClick) return;
|
|
31237
|
+
const {
|
|
31238
|
+
x: clientX,
|
|
31239
|
+
y: clientY
|
|
31240
|
+
} = this.getPointerPosition(event);
|
|
31241
|
+
if (!Number.isFinite(clientX) || !Number.isFinite(clientY)) return;
|
|
31242
|
+
this.cachePageBoundsForPage(docIndex, pageIndex);
|
|
31243
|
+
const pageRect = this.getPageRect(docIndex, pageIndex);
|
|
31244
|
+
if (!pageRect) return;
|
|
31245
|
+
const pagesScale = this.getDisplayedPageScale(docIndex, pageIndex) || 1;
|
|
31246
|
+
const relX = (clientX - pageRect.left) / pagesScale;
|
|
31247
|
+
const relY = (clientY - pageRect.top) / pagesScale;
|
|
31248
|
+
const doc = this.pdfDocuments?.[docIndex];
|
|
31249
|
+
const pageObjects = doc?.allObjects?.[pageIndex] || [];
|
|
31250
|
+
let hitObject = null;
|
|
31251
|
+
for (let i = pageObjects.length - 1; i >= 0; i--) {
|
|
31252
|
+
const object = pageObjects[i];
|
|
31253
|
+
const x = Number(object.x);
|
|
31254
|
+
const y = Number(object.y);
|
|
31255
|
+
const width = Number(object.width);
|
|
31256
|
+
const height = Number(object.height);
|
|
31257
|
+
if (![x, y, width, height].every(Number.isFinite)) {
|
|
31258
|
+
continue;
|
|
31259
|
+
}
|
|
31260
|
+
if (relX >= x && relX <= x + width && relY >= y && relY <= y + height) {
|
|
31261
|
+
hitObject = object;
|
|
31262
|
+
break;
|
|
31263
|
+
}
|
|
31264
|
+
}
|
|
31265
|
+
if (!hitObject) return;
|
|
31266
|
+
this.$emit('pdf-elements:object-click', {
|
|
31267
|
+
docIndex,
|
|
31268
|
+
pageIndex,
|
|
31269
|
+
object: hitObject,
|
|
31270
|
+
event
|
|
31271
|
+
});
|
|
31272
|
+
},
|
|
31211
31273
|
handleKeyDown(event) {
|
|
31212
31274
|
if (event.key === 'Escape' && this.isAddingMode) {
|
|
31213
31275
|
this.cancelAdding();
|
|
@@ -31655,10 +31717,10 @@ function getCachedMeasurement(cache, cacheKey, pageRef, pagesScale) {
|
|
|
31655
31717
|
});
|
|
31656
31718
|
;// ./src/components/PDFElements.vue?vue&type=script&lang=js
|
|
31657
31719
|
/* harmony default export */ const components_PDFElementsvue_type_script_lang_js = (PDFElementsvue_type_script_lang_js);
|
|
31658
|
-
;// ./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=
|
|
31720
|
+
;// ./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=4b0138d1&prod&scoped=true&lang=css
|
|
31659
31721
|
// extracted by mini-css-extract-plugin
|
|
31660
31722
|
|
|
31661
|
-
;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=
|
|
31723
|
+
;// ./src/components/PDFElements.vue?vue&type=style&index=0&id=4b0138d1&prod&scoped=true&lang=css
|
|
31662
31724
|
|
|
31663
31725
|
;// ./src/components/PDFElements.vue
|
|
31664
31726
|
|
|
@@ -31675,7 +31737,7 @@ var PDFElements_component = normalizeComponent(
|
|
|
31675
31737
|
staticRenderFns,
|
|
31676
31738
|
false,
|
|
31677
31739
|
null,
|
|
31678
|
-
"
|
|
31740
|
+
"4b0138d1",
|
|
31679
31741
|
null
|
|
31680
31742
|
|
|
31681
31743
|
)
|