@@ -146,7 +146,7 @@ export default {
146146 if (this .isEnvelope ) {
147147 if (! this .envelopeFilesReady ) return []
148148 return this .envelopeFiles .map (f => {
149- const metadata = typeof f . metadata === ' string ' ? JSON . parse (f .metadata ) : f . metadata
149+ const metadata = this . parseMetadata (f .metadata )
150150 return ` ${ f .name } .${ metadata? .extension || ' pdf' }`
151151 })
152152 }
@@ -197,6 +197,13 @@ export default {
197197 unsubscribe('libresign:visible-elements-select-signer', this.onSelectSigner)
198198 },
199199 methods: {
200+ getVuePdfEditor() {
201+ return this.$refs.pdfEditor?.$refs?.vuePdfEditor
202+ },
203+ getCanvasList() {
204+ const editor = this.getVuePdfEditor()
205+ return editor?.$refs?.pdfBody?.querySelectorAll('canvas') || []
206+ },
200207 async showModal() {
201208 if (!this.canRequestSign) {
202209 return
@@ -220,7 +227,7 @@ export default {
220227
221228 let currentPage = 1
222229 this.envelopeFiles.forEach((file, index) => {
223- const metadata = typeof file.metadata === 'string' ? JSON.parse(file.metadata) : file.metadata
230+ const metadata = file.metadata
224231 const pageCount = metadata?.p || 0
225232
226233 for (let i = 0; i < pageCount; i++) {
@@ -270,7 +277,7 @@ export default {
270277 getPageHeightForFile(fileId, page) {
271278 if (this.isEnvelope) {
272279 const fileInfo = this.envelopeFiles.find(f => f.id === fileId)
273- const metadata = typeof fileInfo?.metadata === 'string' ? JSON.parse(fileInfo.metadata) : fileInfo?.metadata
280+ const metadata = fileInfo?.metadata
274281 return metadata?.d?.[page - 1]?.h
275282 }
276283
@@ -326,13 +333,13 @@ export default {
326333 return
327334 }
328335 this.signerSelected = signer
329- const canvasList = this.$refs.pdfEditor.$refs.vuePdfEditor.$refs.pdfBody.querySelectorAll('canvas' )
336+ const canvasList = this.getCanvasList( )
330337 canvasList.forEach((canvas) => {
331338 canvas.addEventListener('click', this.doSelectSigner)
332339 })
333340 },
334341 doSelectSigner(event) {
335- const canvasList = this.$refs.pdfEditor.$refs.vuePdfEditor.$refs.pdfBody.querySelectorAll('canvas' )
342+ const canvasList = this.getCanvasList( )
336343 const canvasIndex = Array.from(canvasList).indexOf(event.target)
337344 const globalPageNumber = canvasIndex + 1 // 1-based
338345
@@ -366,8 +373,6 @@ export default {
366373
367374 const pageHeight = this.getPageHeightForFile(this.isEnvelope ? this.envelopeFiles[documentIndex]?.id : this.document?.id, pageInDocument)
368375 if (!pageHeight) {
369- console.error('Missing pageHeight when adding signer', { pageInDocument, documentIndex })
370- showError(this.$t('libresign', 'Page height metadata not available'))
371376 return
372377 }
373378 const left = normalizedX - this.width / 2
@@ -396,7 +401,7 @@ export default {
396401 this.$refs.pdfEditor.addSigner(this.signerSelected)
397402 },
398403 stopAddSigner() {
399- const canvasList = this.$refs.pdfEditor.$refs.vuePdfEditor.$refs.pdfBody.querySelectorAll('canvas' )
404+ const canvasList = this.getCanvasList( )
400405 canvasList.forEach((canvas) => {
401406 canvas.removeEventListener('click', this.doSelectSigner)
402407 })
@@ -461,7 +466,7 @@ export default {
461466 const pageInfo = this.filePagesMap[globalPageNumber]
462467 const pageHeight = this.getPageHeightForFile(pageInfo.id, object.pageNumber)
463468 if (!pageHeight) {
464-
469+ return
465470 }
466471
467472 const left = Math.floor(object.normalizedCoordinates.llx)
0 commit comments