@@ -24,6 +24,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
2424 />
2525 <div
2626 class =" overlay"
27+ @mousemove =" handleMouseMove"
28+ @touchmove =" handleMouseMove"
2729 >
2830 <div
2931 v-if =" isAddingMode && previewPageDocIndex === docIndex && previewPageIndex === pIndex && previewElement && previewVisible"
@@ -36,10 +38,16 @@ SPDX-License-Identifier: AGPL-3.0-or-later
3638 }"
3739 >
3840 <slot
39- name =" custom"
41+ : name =" previewElement.type ? `element-${previewElement.type}` : ' custom' "
4042 :object =" previewElement"
4143 :isSelected =" false"
42- />
44+ >
45+ <slot
46+ name =" custom"
47+ :object =" previewElement"
48+ :isSelected =" false"
49+ />
50+ </slot >
4351 </div >
4452
4553 <DraggableElement
@@ -463,17 +471,17 @@ export default {
463471
464472 const canvasEl = this .getPageCanvasElement (docIndex, pageIndex)
465473 const pagesScale = this .pdfDocuments [docIndex]? .pagesScale ? .[pageIndex] || 1
466- const layoutWidth = canvasEl? .offsetWidth || rect .width
467- const layoutHeight = canvasEl? .offsetHeight || rect .height
468- const layoutScaleX = layoutWidth ? rect .width / layoutWidth : 1
469- const layoutScaleY = layoutHeight ? rect .height / layoutHeight : 1
474+ const renderWidth = canvasEl? .width || rect .width
475+ const renderHeight = canvasEl? .height || rect .height
476+ const layoutScaleX = renderWidth ? rect .width / renderWidth : 1
477+ const layoutScaleY = renderHeight ? rect .height / renderHeight : 1
470478 const relX = (clientX - rect .left ) / layoutScaleX / pagesScale
471479 const relY = (clientY - rect .top ) / layoutScaleY / pagesScale
472480
473- const pageWidth = layoutWidth / pagesScale
474- const pageHeight = layoutHeight / pagesScale
475- this .previewScale .x = pagesScale * layoutScaleX
476- this .previewScale .y = pagesScale * layoutScaleY
481+ const pageWidth = renderWidth / pagesScale
482+ const pageHeight = renderHeight / pagesScale
483+ this .previewScale .x = pagesScale
484+ this .previewScale .y = pagesScale
477485 let x = relX - this .previewElement .width / 2
478486 let y = relY - this .previewElement .height / 2
479487
@@ -593,26 +601,27 @@ export default {
593601 if (docIndex < 0 || docIndex >= this .pdfDocuments .length ) return []
594602
595603 const doc = this .pdfDocuments [docIndex]
596- const scale = this .scale || 1
597604 const result = []
598605
599606 doc .allObjects .forEach ((pageObjects , pageIndex ) => {
600607 const pageRef = this .getPageComponent (docIndex, pageIndex)
601608 if (! pageRef) return
602-
603609 const measurement = pageRef .getCanvasMeasurement ()
604- const normalizedCanvasHeight = measurement .canvasHeight / scale
610+ const pagesScale = doc .pagesScale [pageIndex] || 1
611+ const normalizedCanvasHeight = measurement .canvasHeight / pagesScale
605612
606613 pageObjects .forEach (object => {
607614 result .push ({
608615 ... object,
609616 pageIndex,
610617 pageNumber: pageIndex + 1 ,
611- scale,
618+ scale: pagesScale ,
612619 normalizedCoordinates: {
613620 llx: parseInt (object .x , 10 ),
614621 lly: parseInt (normalizedCanvasHeight - object .y , 10 ),
615622 ury: parseInt (normalizedCanvasHeight - object .y - object .height , 10 ),
623+ width: parseInt (object .width , 10 ),
624+ height: parseInt (object .height , 10 ),
616625 },
617626 })
618627 })
@@ -729,10 +738,27 @@ export default {
729738 deleteObject (docIndex , objectId ) {
730739 if (docIndex < 0 || docIndex >= this .pdfDocuments .length ) return
731740 const doc = this .pdfDocuments [docIndex]
732- doc .allObjects = doc .allObjects .map (objects =>
733- objects .filter (object => object .id !== objectId),
741+ let deletedObject = null
742+ let deletedPageIndex = - 1
743+
744+ doc .allObjects = doc .allObjects .map ((objects , pageIndex ) =>
745+ objects .filter (object => {
746+ if (object .id === objectId) {
747+ deletedObject = object
748+ deletedPageIndex = pageIndex
749+ return false
750+ }
751+ return true
752+ }),
734753 )
735754 delete this .objectIndexCache [` ${ docIndex} -${ objectId} ` ]
755+ if (deletedObject) {
756+ this .$emit (' pdf-elements:delete-object' , {
757+ object: deletedObject,
758+ docIndex,
759+ pageIndex: deletedPageIndex,
760+ })
761+ }
736762 },
737763
738764 checkAndMoveObjectPage (docIndex , objectId , mouseX , mouseY ) {
0 commit comments