UNPKG

@digital-blueprint/esign-app

Version:

[GitHub Repository](https://github.com/digital-blueprint/esign-app) | [npmjs package](https://www.npmjs.com/package/@digital-blueprint/esign-app) | [Unpkg CDN](https://unpkg.com/browse/@digital-blueprint/esign-app/) | [Esign Bundle](https://gitlab.tugraz.

408 lines (398 loc) 36.4 kB
/*! * License: LGPL-2.1-or-later * Dependencies: * * @webcomponents/scoped-custom-element-registry: BSD-3-Clause * @dbp-toolkit/app-shell: LGPL-2.1-or-later * @dbp-toolkit/language-select: LGPL-2.1-or-later * @dbp-toolkit/auth: LGPL-2.1-or-later * lit-html: BSD-3-Clause * @dbp-toolkit/notification: LGPL-2.1-or-later * @dbp-toolkit/theme-switcher: LGPL-2.1-or-later * universal-router: MIT * @dbp-toolkit/matomo: LGPL-2.1-or-later * @tugraz/web-components: LGPL-2.1-or-later */ import{A as e,L as t,M as n,Q as r,W as i,Y as a,_ as o,b as s,d as c,j as l,k as u,o as d,q as f,s as p,t as m,v as h,w as g,x as _,y as v,z as y}from"./shared/dbp-lit-element.BQ5UQue-.js";import"./shared/directive-helpers.BcbjX-8e.js";import"./shared/i18n.CFAuR9R5.js";import{a as b,c as x,i as S,l as C,n as w,o as T,r as E,s as D,t as O}from"./shared/table-components.D8cP2E_k.js";import"./shared/dbp-file-handling-lit-element.FiLZbGlJ.js";import{t as k}from"./shared/file-source.BuwpzU-D.js";import{t as A}from"./shared/file-sink.CqCc3sCg.js";var j=class extends e(i){constructor(){super(),this._loading=!1,this._done=!0,this.locationCount=0,this.loginPageLoaded=!1,this._onReceiveIframeMessage=this._onReceiveIframeMessage.bind(this)}static get scopedElements(){return{"dbp-mini-spinner":l}}static get properties(){return{_loading:{type:Boolean,state:!0},_done:{type:Boolean,state:!0},locationCount:{type:Number,attribute:`location-count`,reflect:!0},loginPageLoaded:{type:Boolean,attribute:`login-page-loaded`,reflect:!0}}}connectedCallback(){super.connectedCallback(),window.addEventListener(`message`,this._onReceiveIframeMessage)}disconnectedCallback(){window.removeEventListener(`message`,this._onReceiveIframeMessage),super.disconnectedCallback()}_onReceiveIframeMessage(e){let t=e.data;if(t.type===`pdf-as-error`){this._done=!0;let e=t.error;t.cause&&(e=`${e}: ${t.cause}`),this.dispatchEvent(new CustomEvent(`signature-error`,{detail:{message:e}}))}else t.type===`pdf-as-callback`&&(this._done=!0,this.dispatchEvent(new CustomEvent(`signature-done`,{detail:{code:t.code??t.sessionId}})))}setUrl(e){let t=this.renderRoot.querySelector(`#iframe`);this._loading=!0,this._done=!1,t.src=e,this.locationCount=0}reset(){this.setUrl(`about:blank`),this.locationCount=0}static get styles(){return a` :host { display: inline-block; } #iframe { /* "overflow" should not be supported by browsers, but some seem to use it */ overflow: hidden; border-width: 0; width: 100%; height: 100%; } .hidden { display: none; } `}update(e){e.forEach((e,t)=>{switch(t){case`locationCount`:this.loginPageLoaded=this.locationCount>1;break}}),super.update(e)}render(){return f` ${this._loading?f` <dbp-mini-spinner></dbp-mini-spinner> `:f``} <!-- "scrolling" is deprecated, but still seem to help --> <iframe id="iframe" class=${c({hidden:this._loading||this._done})} @load="${e=>{this._loading=!1,this.locationCount++}}" @error="${e=>{this._loading=!1}}" scrolling="no"></iframe> `}};t(`dbp-qualified-signature-pdf-upload`,class extends e(D){constructor(){super(),this.entryPointUrl=``,this.nextcloudWebAppPasswordURL=``,this.nextcloudWebDavURL=``,this.nextcloudName=``,this.nextcloudFileURL=``,this.nextcloudAuthInfo=``,this.fileHandlingEnabledTargets=`local`,this._onReceiveBeforeUnload=this.onReceiveBeforeUnload.bind(this),this._setQueuedFilesTabulatorTable=this.setQueuedFilesTabulatorTable.bind(this),this._tabulatorTableHandleCollapse=this.tabulatorTableHandleCollapse.bind(this),this._handleTableSelection=this.handleTableSelection.bind(this),this._tabulatorTableHandleRenderCompleted=this.tabulatorTableHandleRenderCompleted.bind(this),this._handleModalClosed=this.handleModalClosed.bind(this),this._handlePdfModalClosing=this.handlePdfModalClosing.bind(this),this._handleAnnotationModalClosing=this.handleAnnotationModalClosing.bind(this)}static get scopedElements(){return{"dbp-icon":n,"dbp-file-source":k,"dbp-file-sink":A,"dbp-pdf-preview":T,"dbp-mini-spinner":l,"dbp-button":o,"dbp-icon-button":h,"dbp-loading-button":v,"dbp-pdf-annotation-view":E,"external-sign-iframe":j,"dbp-esign-tabulator-table":O,"dbp-tooltip":b,"dbp-modal":p}}static get properties(){return{...super.properties,externalAuthInProgress:{type:Boolean,attribute:!1}}}connectedCallback(){super.connectedCallback(),setInterval(()=>{this.handleQueuedFiles()},1e3),window.addEventListener(`beforeunload`,this._onReceiveBeforeUnload),window.addEventListener(`dbp-pdf-preview-accept`,this._setQueuedFilesTabulatorTable),window.addEventListener(`dbp-pdf-annotations-save`,this._setQueuedFilesTabulatorTable),window.addEventListener(`dbp-pdf-annotations-cancel`,this._setQueuedFilesTabulatorTable),window.addEventListener(`dbp-tabulator-table-collapsible-event`,this._tabulatorTableHandleCollapse),window.addEventListener(`dbp-tabulator-table-row-selection-changed-event`,this._handleTableSelection),window.addEventListener(`dbp-tabulator-table-render-complete-event`,this._tabulatorTableHandleRenderCompleted),window.addEventListener(`dbp-modal-closed`,this._handleModalClosed),window.addEventListener(`dbp-pdf-preview-accept`,this._handlePdfModalClosing),window.addEventListener(`dbp-pdf-preview-cancel`,this._handlePdfModalClosing),window.addEventListener(`dbp-pdf-annotations-cancel`,this._handleAnnotationModalClosing),window.addEventListener(`dbp-pdf-annotations-save`,this._handleAnnotationModalClosing)}disconnectedCallback(){window.removeEventListener(`beforeunload`,this._onReceiveBeforeUnload),window.removeEventListener(`dbp-pdf-preview-accept`,this._setQueuedFilesTabulatorTable),window.removeEventListener(`dbp-pdf-annotations-save`,this._setQueuedFilesTabulatorTable),window.removeEventListener(`dbp-pdf-annotations-cancel`,this._setQueuedFilesTabulatorTable),window.removeEventListener(`dbp-tabulator-table-collapsible-event`,this._tabulatorTableHandleCollapse),window.removeEventListener(`dbp-tabulator-table-render-complete-event`,this._tabulatorTableHandleRenderCompleted),window.removeEventListener(`dbp-tabulator-table-row-selection-changed-event`,this._handleTableSelection),window.removeEventListener(`dbp-modal-closed`,this._handleModalClosed),window.removeEventListener(`dbp-pdf-preview-accept`,this._handlePdfModalClosing),window.removeEventListener(`dbp-pdf-preview-cancel`,this._handlePdfModalClosing),window.removeEventListener(`dbp-pdf-annotations-cancel`,this._handleAnnotationModalClosing),window.removeEventListener(`dbp-pdf-annotations-save`,this._handleAnnotationModalClosing),super.disconnectedCallback()}firstUpdated(e){super.firstUpdated(e),this.tableQueuedFilesTable=this._(`#table-queued-files`),this.tableSignedFilesTable=this._(`#table-signed-files`),this.tableFailedFilesTable=this._(`#table-failed-files`)}async queueFile(e){let t=await super.queueFile(e);return await this._updateNeedsPlacementStatus(t),this.setQueuedFilesTabulatorTable(),this.requestUpdate(),t}async handleQueuedFiles(){let e=this._i18n;if(this.endSigningProcessIfQueueEmpty(),this.queuedFilesCount===0){this.signingProcessEnabled=!1;return}if(!this.signingProcessEnabled||this.externalAuthInProgress||this.uploadInProgress||this.addAnnotationInProgress)return;this.signaturePlacementInProgress=!1;let t=!1;for(let n of Object.keys(this.queuedFiles)){if(t===!0)continue;let r=this.queuedFilesPlacementModes[n]===`manual`;this.queuedFilesNeedsPlacement.get(n)&&!r&&(this.selectedFiles.length===0||this.fileIsSelectedFile(n))&&(m({summary:e.t(`error-manual-positioning-missing-title`),body:e.t(`error-manual-positioning-missing`),type:`danger`,timeout:5}),t=!0)}if(t){this.signingProcessEnabled=!1,this.signingProcessActive=!1,await this.stopSigningProcess();return}let n=null;if(this.selectedFiles.length>0){let e=this.selectedFiles.shift();n=Object.keys(this.queuedFiles).find(t=>this.queuedFiles[t].file.name.trim()===e.filename.trim()),this.selectedFilesProcessing=!0}else n=Object.keys(this.queuedFiles)[0];this._(`#external-auth`).open();let i=this.takeFileFromQueue(n).file;this.currentFile=i,this.currentKey=n,this.currentFilePlacementMode=this.queuedFilesPlacementModes[n],this.currentFileSignaturePlacement=this.queuedFilesSignaturePlacements[n],this.uploadInProgress=!0;let a={};if(this.queuedFilesPlacementModes[n]===`manual`){let e=this.queuedFilesSignaturePlacements[n];e!==void 0&&(a=x(e))}a.invisible=`false`,a.profile=`default`,this.uploadStatusText=e.t(`qualified-pdf-upload.upload-status-file-text`,{fileName:i.name,fileSize:r(i.size,!1)});let o=this.isAnnotationsEnabledForKey(n),s=this.takeAnnotationsFromQueue(n);await this.uploadFile(i,a,o?s:[]),this.uploadInProgress=!1,this.selectedFilesProcessing&&this.selectedFiles.length===0&&(this.signingProcessEnabled=!1,this.signingProcessActive=!1,await this.stopSigningProcess())}onReceiveBeforeUnload(e){let t=this._i18n;this.signedFilesCount!==0&&(!e.isTrusted&&confirm(t.t(`qualified-pdf-upload.confirm-page-leave`))||(e.preventDefault(),e.returnValue=``))}parseError(e){let t=this._i18n,n=e;return e.includes(`SecurityLayer Error: [6001]`)||e.includes(`SecurityLayer Error: [6000]`)?n=t.t(`error-cancel-message`):e.includes(`SecurityLayer Error: [6002]`)&&(n=t.t(`error-rights-message`)),n}async _onIFrameDone(e){let t=e.detail.code,n=this.currentFileName===``?`mydoc.pdf`:this.currentFileName,r=d(this.entryPointUrl,`/esign/qualifiedly-signed-documents`)+`/`+encodeURIComponent(t);try{let e=await fetch(r,{headers:{"Content-Type":`application/ld+json`,Authorization:`Bearer `+this.auth.token}});if(this.externalAuthInProgress=!1,this._(`#iframe`).reset(),this.endSigningProcessIfQueueEmpty(),!e.ok)throw e;let t=await e.json();t.name=C(n),this.signedFiles.push(t),this.signedFilesCount++,this.signedFilesCountToReport++,this.sendSetPropertyEvent(`analytics-event`,{category:`QualifiedlySigning`,action:`DocumentSigned`,name:t.contentSize})}catch(e){console.error(`Error while fetching signed document:`,e);let t=this.currentFile;t.json={"hydra:description":`Download failed!`},this.addToErrorFiles(t)}finally{this._(`#external-auth`).close(),this.sendReportNotification()}}_onIFrameError(e){let t=e.detail.message,n=this.currentFile;n.json={"hydra:description":this.parseError(t)},this.addToErrorFiles(n),this._(`#iframe`).reset(),this.externalAuthInProgress=!1,this.endSigningProcessIfQueueEmpty(),this._(`#external-auth`).close(),this.sendReportNotification()}addToErrorFiles(e){this.endSigningProcessIfQueueEmpty(),this.errorFiles[Math.floor(Math.random()*1e6)]=e,this.errorFilesCount++,this.errorFilesCountToReport++,this.sendSetPropertyEvent(`analytics-event`,{category:`QualifiedlySigning`,action:`SigningFailed`,name:e.json[`hydra:description`]})}onFileUploadFinished(e){if(e.status!==201)this.addToErrorFiles(e),this.sendReportNotification(),this._(`#external-auth`).close();else if(e.json[`@type`]===`http://schema.org/EntryPoint`){this.externalAuthInProgress=!0;let t=e.json;this.currentFileName=t.name,this.currentFile=e,this._(`#iframe`).setUrl(t.url)}}update(e){super.update(e),e.forEach((e,t)=>{switch(t){case`lang`:this.setQueuedFilesTabulatorTable();break;case`entryPointUrl`:this.entryPointUrl&&(this.fileSourceUrl=d(this.entryPointUrl,`/esign/qualified-signing-requests`));break;case`queuedFilesCount`:this.setQueuedFilesTabulatorTable();break;case`signedFilesCount`:this.setSignedFilesTabulatorTable();break;case`errorFilesCount`:this.setFailedFilesTabulatorTable();break}})}clearQueuedFiles(){if(this.selectedFiles.length){let e=[];for(let t of this.selectedFiles)this.queuedFilesSignaturePlacements.forEach((e,n)=>{n==t.key&&delete this.queuedFilesSignaturePlacements[n]}),this.queuedFilesPlacementModes.forEach((e,n)=>{n==t.key&&delete this.queuedFilesPlacementModes[n]}),this.queuedFilesNeedsPlacement.delete(t.key),e.push(t.key);super.clearQueuedFiles(e)}}static get styles(){return a` ${u()} ${_(!1)} ${s()} ${g()} ${w()} #external-auth #iframe { margin-top: 0.5em; } #external-auth .button.is-cancel { color: var(--dbp-danger); } #iframe { width: 100%; height: 350px; /* keeps the A-Trust webpage aligned left */ max-width: 575px; } `}hasSignaturePermissions(){return this._hasSignaturePermissions(`ROLE_SCOPE_QUALIFIED-SIGNATURE`)}async stopSigningProcess(){if(this.externalAuthInProgress&&(this._(`#iframe`).reset(),this.signingProcessEnabled=!1,this.externalAuthInProgress=!1,this.signingProcessActive=!1,this.currentFile.file!==void 0)){let e=await this.reQueueFile(this.currentFile.file);this.queuedFilesPlacementModes[e]=this.currentFilePlacementMode,this.queuedFilesSignaturePlacements[e]=this.currentFileSignaturePlacement,this.setQueuedFilesTabulatorTable()}}_onLoginClicked(e){this.sendSetPropertyEvent(`requested-login-status`,`logged-in`),e.preventDefault()}render(){let e=y(S,`qualified-signature-placeholder.png`),t=this._i18n;return f` <div class="${c({hidden:!this.isLoggedIn()||!this.hasSignaturePermissions()||this.isLoading()})}"> <div class="field"> <div class="control"> <p class="description">${t.t(`qualified-pdf-upload.upload-text`)}</p> <button @click="${()=>{this._(`#file-source`).setAttribute(`dialog-open`,``)}}" ?disabled="${this.signingProcessActive}" class="button is-primary" id="upload-pdf-button"> ${t.t(`qualified-pdf-upload.upload-button-label`)} </button> <dbp-file-source id="file-source" subscribe="nextcloud-store-session:nextcloud-store-session" context="${t.t(`qualified-pdf-upload.file-picker-context`)}" allowed-mime-types="application/pdf" enabled-targets="${this.fileHandlingEnabledTargets}" nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}" nextcloud-web-dav-url="${this.nextcloudWebDavURL}" nextcloud-name="${this.nextcloudName}" nextcloud-auth-info="${this.nextcloudAuthInfo}" nextcloud-file-url="${this.nextcloudFileURL}" decompress-zip max-file-size="32000" lang="${this.lang}" ?disabled="${this.signingProcessActive}" text="${t.t(`qualified-pdf-upload.upload-area-text`)}" button-label="${t.t(`qualified-pdf-upload.upload-button-label`)}" @dbp-file-source-file-selected="${this.onFileSelected}" @dbp-file-source-switched="${this.onFileSourceSwitch}"></dbp-file-source> </div> </div> <div id="grid-container"> <div class="table-container"> <div class="files-block queued-files field ${c({hidden:!this.queueBlockEnabled})}"> <!-- Queued files headline and queueing spinner --> <h3 class="section-title"> ${t.t(`qualified-pdf-upload.queued-files-label`)} </h3> <div class="control field tabulator-actions"> <div class="table-actions"> <dbp-loading-button id="expand-all-btn-queued-files" class="${c({hidden:this.queuedFilesTableExpanded})}" ?disabled="${this.queuedFilesCount===0||this.queuedFilesTableCollapsible===!1}" value="${t.t(`qualified-pdf-upload.expand-all`)}" @click="${()=>{this.tableQueuedFilesTable.expandAll(),this.queuedFilesTableExpanded=!0}}" title="${t.t(`qualified-pdf-upload.expand-all`)}"> ${t.t(`qualified-pdf-upload.expand-all`)} </dbp-loading-button> <dbp-loading-button id="collapse-all-btn-queued-files" class="${c({hidden:!this.queuedFilesTableExpanded})}" ?disabled="${this.queuedFilesCount===0||this.queuedFilesTableCollapsible===!1}" value="${t.t(`qualified-pdf-upload.collapse-all`)}" @click="${()=>{this.tableQueuedFilesTable.collapseAll(),this.queuedFilesTableExpanded=!1}}" title="${t.t(`qualified-pdf-upload.collapse-all`)}"> ${t.t(`qualified-pdf-upload.collapse-all`)} </dbp-loading-button> <dbp-loading-button id="select-all-btn-queued-files" class="${c({hidden:this.queuedFilesTableAllSelected})}" ?disabled="${this.queuedFilesCount===0}" value="${t.t(`qualified-pdf-upload.select-all`)}" @click="${()=>{this.queuedFilesTableAllSelected=!0,this.tableQueuedFilesTable.selectAllRows()}}" title="${t.t(`qualified-pdf-upload.select-all`)}"> ${t.t(`qualified-pdf-upload.select-all`)} </dbp-loading-button> <dbp-loading-button id="deselect-all-btn-queued-files" class="${c({hidden:!this.queuedFilesTableAllSelected})}" ?disabled="${this.queuedFilesCount===0}" value="${t.t(`qualified-pdf-upload.deselect-all`)}" @click="${()=>{this.queuedFilesTableAllSelected=!1,this.tableQueuedFilesTable.deselectAllRows()}}" title="${t.t(`qualified-pdf-upload.deselect-all`)}"> ${t.t(`qualified-pdf-upload.deselect-all`)} </dbp-loading-button> </div> <div class="sign-actions"> <!-- Buttons to start/stop signing process and clear queue --> <button id="clear-queue-button-queued-files" @click="${this.clearQueuedFiles}" ?disabled="${this.queuedFilesCount===0||this.signingProcessActive||this.selectedFiles.length<1}" class="button"> ${t.t(`qualified-pdf-upload.clear-all`)} </button> <button id="start-signing-button" @click="${()=>{this.signingProcessEnabled=!0,this.signingProcessActive=!0,this.initialQueuedFilesCount=this.queuedFilesCount}}" ?disabled="${this.queuedFilesCount===0}" class="button is-primary"> ${t.t(`qualified-pdf-upload.start-signing-process-button`)} </button> </div> </div> <!-- List of queued files --> <div class="control file-list"> <dbp-esign-tabulator-table id="table-queued-files" identifier="table-queued-files" class="table-queued-files" lang="${this.lang}" select-rows-enabled></dbp-esign-tabulator-table> </div> ${this.anyPlacementMissing?f` <div class="legend"> <dbp-icon name="warning-high" aria-hidden="true"></dbp-icon> <span class="legend-description"> ${t.t(`label-manual-positioning-missing`)} </span> </div> `:``} <!-- Text "queue empty" --> <div class="empty-queue control ${c({hidden:this.queuedFilesCount!==0})}"> ${t.t(`qualified-pdf-upload.queued-files-empty1`)} <br /> ${t.t(`qualified-pdf-upload.queued-files-empty2`)} </div> </div> <!-- List of signed PDFs --> <div class="files-block signed-files field ${c({hidden:this.signedFilesCount===0})}"> <h3 class="section-title "> ${t.t(`qualified-pdf-upload.signed-files-label`)} </h3> <!-- Button to download all signed PDFs --> <div class="field ${c({hidden:this.signedFilesCount===0})}"> <div class="control tabulator-actions"> <div class="table-actions"> <dbp-loading-button id="expand-all-btn-signed-files" class="${c({hidden:this.signedFilesTableExpanded})}" ?disabled="${this.signedFilesCount===0||this.signedFilesTableCollapsible===!1}" value="${t.t(`qualified-pdf-upload.expand-all`)}" @click="${()=>{this.tableSignedFilesTable.expandAll(),this.signedFilesTableExpanded=!0}}" title="${t.t(`qualified-pdf-upload.expand-all`)}"> ${t.t(`qualified-pdf-upload.expand-all`)} </dbp-loading-button> <dbp-loading-button id="collapse-all-btn-signed-files" class="${c({hidden:!this.signedFilesTableExpanded})}" ?disabled="${this.signedFilesCount===0||this.signedFilesTableCollapsible===!1}" value="${t.t(`qualified-pdf-upload.collapse-all`)}" @click="${()=>{this.tableSignedFilesTable.collapseAll(),this.signedFilesTableExpanded=!1}}" title="${t.t(`qualified-pdf-upload.collapse-all`)}"> ${t.t(`qualified-pdf-upload.collapse-all`)} </dbp-loading-button> </div> <div class="signed-actions"> <button id="clear-signed-files-btn" class="clear-signed-files button" @click="${this.clearSignedFiles}" class="button"> ${t.t(`qualified-pdf-upload.clear-all`)} </button> <dbp-loading-button id="zip-download-button" value="${t.t(`qualified-pdf-upload.download-zip-button`)}" title="${t.t(`qualified-pdf-upload.download-zip-button-tooltip`)}" class="zip-download-button" @click="${this.zipDownloadClickHandler}" type="is-primary"></dbp-loading-button> </div> </div> </div> <dbp-esign-tabulator-table id="table-signed-files" identifier="table-signed-files" class="table-signed-files" lang="${this.lang}"></dbp-esign-tabulator-table> </div> <!-- List of errored files --> <div class="files-block error-files field ${c({hidden:this.errorFilesCount===0})}"> <h3 class="section-title"> ${t.t(`qualified-pdf-upload.error-files-label`)} </h3> <!-- Button to upload errored files again --> <div class="field ${c({hidden:this.errorFilesCount===0})}"> <div class="control tabulator-actions"> <div class="table-actions"> <dbp-loading-button id="expand-all-btn-failed-files" class="${c({hidden:this.failedFilesTableExpanded})}" ?disabled="${this.errorFilesCount===0||this.failedFilesTableCollapsible===!1}" value="${t.t(`qualified-pdf-upload.expand-all`)}" @click="${()=>{this.tableFailedFilesTable.expandAll(),this.failedFilesTableExpanded=!0}}" title="${t.t(`qualified-pdf-upload.expand-all`)}"> ${t.t(`qualified-pdf-upload.expand-all`)} </dbp-loading-button> <dbp-loading-button id="collapse-all-btn-failed-files" class="${c({hidden:!this.failedFilesTableExpanded})}" ?disabled="${this.errorFilesCount===0||this.failedFilesTableCollapsible===!1}" value="${t.t(`qualified-pdf-upload.collapse-all`)}" @click="${()=>{this.tableFailedFilesTable.collapseAll(),this.failedFilesTableExpanded=!1}}" title="${t.t(`qualified-pdf-upload.collapse-all`)}"> ${t.t(`qualified-pdf-upload.collapse-all`)} </dbp-loading-button> </div> <div class="failed-actions"> <button id="clear-error-files-btn" @click="${this.clearErrorFiles}" class="clear-signed-files button"> ${t.t(`qualified-pdf-upload.clear-all`)} </button> <dbp-loading-button id="re-upload-all-button" ?disabled="${this.uploadInProgress}" value="${t.t(`qualified-pdf-upload.re-upload-all-button`)}" title="${t.t(`qualified-pdf-upload.re-upload-all-button-title`)}" class="is-right" @click="${this.reUploadAllClickHandler}" type="is-primary"></dbp-loading-button> </div> </div> </div> <dbp-esign-tabulator-table id="table-failed-files" identifier="table-failed-files" class="table-failed-files" lang="${this.lang}"></dbp-esign-tabulator-table> </div> </div> <div class="modal-container"> <!-- PDF preview --> <dbp-modal id="pdf-preview" modal-id="pdf-preview-modal" class="modal--pdf-preview" title="${this.withSigBlock?t.t(`official-pdf-upload.signature-placement-label`):t.t(`official-pdf-upload.preview-label`)}"> <div slot="header" class="header"> <div class="filename"> <strong>${this.currentFile.name}</strong> (${r(this.currentFile===void 0?0:this.currentFile.size)}) </div> </div> <div slot="content"> <dbp-pdf-preview lang="${this.lang}" allow-signature-rotation signature-placeholder-image-src="${e}" signature-width="80" signature-height="29" @dbp-pdf-preview-accept="${this.storePDFData}" @dbp-pdf-preview-cancel="${this.hidePDF}"></dbp-pdf-preview> </div> </dbp-modal> <!-- Annotation view --> <dbp-modal id="annotation-view" modal-id="annotation-view-modal" class="modal--annotation-view ${c({hidden:!this.isAnnotationViewVisible})}" title="${t.t(`qualified-pdf-upload.annotation-view-label`)}"> <div slot="header" class="header"> <div class="modal-notification"> <dbp-notification id="dbp-modal-notification-annotation" inline lang="${this.lang}"></dbp-notification> </div> <div class="filename"> <strong> ${this.currentFile.file===void 0?``:this.currentFile.file.name} </strong> (${r(this.currentFile.file===void 0?0:this.currentFile.file.size)}) </div> </div> <div slot="content"> <dbp-pdf-annotation-view lang="${this.lang}" @dbp-pdf-annotations-save="${this.processAnnotationEvent}" @dbp-pdf-annotations-cancel="${this.processAnnotationCancelEvent}"></dbp-pdf-annotation-view> </div> </dbp-modal> <!-- File upload progress --> <div id="upload-progress" class="field notification is-info ${c({hidden:!this.uploadInProgress})}"> <dbp-mini-spinner></dbp-mini-spinner> <strong>${this.uploadStatusFileName}</strong> ${this.uploadStatusText} </div> <!-- External auth --> <dbp-modal id="external-auth" modal-id="external-auth-modal" class="modal--external-auth ${c({hidden:!this.externalAuthInProgress})}" title="${t.t(`qualified-pdf-upload.current-signing-process-label`)}"> <div slot="header" class="header"> <div class="filename"> <strong>${this.currentFileName}</strong> (${r(this.currentFile.file===void 0?0:this.currentFile.file.size)}) </div> </div> <div slot="content"> <external-sign-iframe id="iframe" @signature-error="${this._onIFrameError}" @signature-done="${this._onIFrameDone}"></external-sign-iframe> </div> </dbp-modal> </div> </div> </div> <div class="notification is-warning ${c({hidden:this.isLoggedIn()||this.isLoading()})}"> ${t.t(`error-login-message`)} <a href="#" @click="${this._onLoginClicked}">${t.t(`error-login-link`)}</a> </div> <div class="notification is-danger ${c({hidden:this.hasSignaturePermissions()||!this.isLoggedIn()||this.isLoading()})}"> ${t.t(`error-permission-message-qualified`)} </div> <div class="${c({hidden:!this.isLoading()})}"> <dbp-mini-spinner></dbp-mini-spinner> </div> <dbp-file-sink id="file-sink" context="${t.t(`qualified-pdf-upload.save-field-label`,{count:this.signedFilesToDownload})}" filename="signed-documents.zip" subscribe="initial-file-handling-state:initial-file-handling-state,nextcloud-store-session:nextcloud-store-session" enabled-targets="${this.fileHandlingEnabledTargets}" nextcloud-auth-url="${this.nextcloudWebAppPasswordURL}" nextcloud-web-dav-url="${this.nextcloudWebDavURL}" nextcloud-name="${this.nextcloudName}" nextcloud-file-url="${this.nextcloudFileURL}" lang="${this.lang}"></dbp-file-sink> `}}); //# sourceMappingURL=dbp-qualified-signature-pdf-upload.js.map