diff --git a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj
index 5e913f39..080d08c7 100644
--- a/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj
+++ b/EnvelopeGenerator.Web/EnvelopeGenerator.Web.csproj
@@ -17,6 +17,10 @@
1.0.0.2
+
+
+
+
@@ -27,8 +31,13 @@
+
+
+
+
+
diff --git a/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml.min.css b/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml.min.css
new file mode 100644
index 00000000..8b87f503
--- /dev/null
+++ b/EnvelopeGenerator.Web/Views/Shared/_Layout.cshtml.min.css
@@ -0,0 +1 @@
+a.navbar-brand{white-space:normal;text-align:center;word-break:break-all}a{color:#07c}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#1b6ec2;border-color:#1861ac}.border-top{border-top:1px solid #e5e5e5}.border-bottom{border-bottom:1px solid #e5e5e5}.box-shadow{box-shadow:0 .25rem .75rem rgba(0,0,0,.05)}button.accept-policy{font-size:1rem;line-height:inherit}.footer{position:absolute;bottom:0;width:100%;white-space:nowrap;line-height:60px}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/bundleconfig.json b/EnvelopeGenerator.Web/bundleconfig.json
new file mode 100644
index 00000000..34dd05f2
--- /dev/null
+++ b/EnvelopeGenerator.Web/bundleconfig.json
@@ -0,0 +1,62 @@
+[
+ {
+ "outputFileName": "wwwroot/js/app.min.js",
+ "inputFiles": [
+ "wwwroot/js/app.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/js/api-service.min.js",
+ "inputFiles": [
+ "wwwroot/js/api-service.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/js/error-space.min.js",
+ "inputFiles": [
+ "wwwroot/js/error-space.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/js/event-binder.min.js",
+ "inputFiles": [
+ "wwwroot/js/event-binder.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/js/network.min.js",
+ "inputFiles": [
+ "wwwroot/js/network.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/js/ui.min.js",
+ "inputFiles": [
+ "wwwroot/js/ui.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/js/util.min.js",
+ "inputFiles": [
+ "wwwroot/js/util.js"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/css/error-space.min.css",
+ "inputFiles": [
+ "wwwroot/css/error-space.css"
+ ]
+ },
+ {
+ "outputFileName": "wwwroot/css/site.min.css",
+ "inputFiles": [
+ "wwwroot/css/site.css"
+ ]
+ },
+ {
+ "outputFileName": "Views/Shared/_Layout.cshtml.min.css",
+ "inputFiles": [
+ "Views/Shared/_Layout.cshtml.css"
+ ]
+ }
+]
diff --git a/EnvelopeGenerator.Web/wwwroot/css/error-space.min.css b/EnvelopeGenerator.Web/wwwroot/css/error-space.min.css
new file mode 100644
index 00000000..c6b0fe3d
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/css/error-space.min.css
@@ -0,0 +1 @@
+html,body{height:100%;width:100%;margin:0;background:linear-gradient(90deg,rgba(47,54,64,1) 23%,rgba(24,27,32,1) 100%)}:root{--moon-left-position:0px}.moon{background:linear-gradient(90deg,rgba(208,208,208,1) 48%,rgba(145,145,145,1) 100%);position:absolute;top:-100px;left:var(--moon-left-position);width:900px;height:900px;content:'';border-radius:100%;box-shadow:0 0 30px -4px rgba(0,0,0,.5)}.moon__crater{position:absolute;content:'';border-radius:100%;background:linear-gradient(90deg,rgba(122,122,122,1) 38%,rgba(195,195,195,1) 100%);opacity:.6}.moon__crater1{top:250px;left:calc(var(--moon-left-position) + 800px);width:60px;height:180px}.moon__crater2{top:650px;left:calc(var(--moon-left-position) + 640px);width:40px;height:80px;transform:rotate(55deg)}.moon__crater3{top:-20px;left:calc(var(--moon-left-position) + 340px);width:65px;height:120px;transform:rotate(250deg)}.star{background:#808080;position:absolute;width:5px;height:5px;content:'';border-radius:100%;transform:rotate(250deg);opacity:.4;animation-name:shimmer;animation-duration:1.5s;animation-iteration-count:infinite;animation-direction:alternate}@keyframes shimmer{from{opacity:0}to{opacity:.7}}.star1{top:40%;left:50%;animation-delay:1s}.star2{top:60%;left:90%;animation-delay:3s}.star3{top:10%;left:70%;animation-delay:2s}.star4{top:90%;left:40%}.star5{top:20%;left:30%;animation-delay:.5s}.error{position:absolute;left:100px;top:400px;transform:translateY(-60%);font-family:'Montserrat',sans-serif;color:#363e49}.error__title{font-size:10em}.error__subtitle{font-size:2em}.error__description{opacity:.5}.error__button{display:inline-block;margin-top:3em;margin-right:.5em;padding:.5em 2em;outline:0;border:2px solid #2f3640;background-color:transparent;border-radius:8em;color:#576375;cursor:pointer;transition-duration:.2s;font-size:.75em;font-family:'Montserrat',sans-serif;text-decoration:none}.error__button:hover{color:#21252c}.error__button--active{background-color:#e67e22;border:2px solid #e67e22;color:#fff}.error__button--active:hover{box-shadow:0 0 8px 0 rgba(0,0,0,.5);color:#fff}.astronaut{position:absolute;width:185px;height:300px;left:70%;top:50%;transform:translate(-50%,-50%) rotate(20deg) scale(1.2)}.astronaut__head{background-color:#fff;position:absolute;top:60px;left:60px;width:60px;height:60px;content:'';border-radius:2em}.astronaut__head-visor-flare1{background-color:#7f8fa6;position:absolute;top:28px;left:40px;width:10px;height:10px;content:'';border-radius:2em;opacity:.5}.astronaut__head-visor-flare2{background-color:#718093;position:absolute;top:40px;left:38px;width:5px;height:5px;content:'';border-radius:2em;opacity:.3}.astronaut__backpack{background-color:#bfbfbf;position:absolute;top:90px;left:47px;width:86px;height:90px;content:'';border-radius:8px}.astronaut__body{background-color:#e6e6e6;position:absolute;top:115px;left:55px;width:70px;height:80px;content:'';border-radius:8px}.astronaut__body__chest{background-color:#d9d9d9;position:absolute;top:140px;left:68px;width:45px;height:25px;content:'';border-radius:6px}.astronaut__arm-left1{background-color:#e6e6e6;position:absolute;top:127px;left:9px;width:65px;height:20px;content:'';border-radius:8px;transform:rotate(-30deg)}.astronaut__arm-left2{background-color:#e6e6e6;position:absolute;top:102px;left:7px;width:20px;height:45px;content:'';border-radius:8px;transform:rotate(-12deg);border-top-left-radius:8em;border-top-right-radius:8em}.astronaut__arm-right1{background-color:#e6e6e6;position:absolute;top:113px;left:100px;width:65px;height:20px;content:'';border-radius:8px;transform:rotate(-10deg)}.astronaut__arm-right2{background-color:#e6e6e6;position:absolute;top:78px;left:141px;width:20px;height:45px;content:'';border-radius:8px;transform:rotate(-10deg);border-top-left-radius:8em;border-top-right-radius:8em}.astronaut__arm-thumb-left{background-color:#e6e6e6;position:absolute;top:110px;left:21px;width:10px;height:6px;content:'';border-radius:8em;transform:rotate(-35deg)}.astronaut__arm-thumb-right{background-color:#e6e6e6;position:absolute;top:90px;left:133px;width:10px;height:6px;content:'';border-radius:8em;transform:rotate(20deg)}.astronaut__wrist-left{background-color:#e67e22;position:absolute;top:122px;left:6.5px;width:21px;height:4px;content:'';border-radius:8em;transform:rotate(-15deg)}.astronaut__wrist-right{background-color:#e67e22;position:absolute;top:98px;left:141px;width:21px;height:4px;content:'';border-radius:8em;transform:rotate(-10deg)}.astronaut__leg-left{background-color:#e6e6e6;position:absolute;top:188px;left:50px;width:23px;height:75px;content:'';transform:rotate(10deg)}.astronaut__leg-right{background-color:#e6e6e6;position:absolute;top:188px;left:108px;width:23px;height:75px;content:'';transform:rotate(-10deg)}.astronaut__foot-left{background-color:#fff;position:absolute;top:240px;left:43px;width:28px;height:20px;content:'';transform:rotate(10deg);border-radius:3px;border-top-left-radius:8em;border-top-right-radius:8em;border-bottom:4px solid #e67e22}.astronaut__foot-right{background-color:#fff;position:absolute;top:240px;left:111px;width:28px;height:20px;content:'';transform:rotate(-10deg);border-radius:3px;border-top-left-radius:8em;border-top-right-radius:8em;border-bottom:4px solid #e67e22}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/css/site.min.css b/EnvelopeGenerator.Web/wwwroot/css/site.min.css
new file mode 100644
index 00000000..51edabeb
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/css/site.min.css
@@ -0,0 +1 @@
+#app{background:#808080;width:100vw;height:80vh}.btn-group{margin-right:10vw;margin-bottom:10vh}.btn_refresh,.btn_reject,.btn_complete{height:2.5rem}.btn_complete .icon,.btn_reject .icon,.btn_refresh .icon{width:1.1rem}.btn_complete span,.btn_reject span,.btn_refresh span{vertical-align:middle}.button-finish{transition:background-color linear 300ms;background-color:#059669;color:#fff;border-left:0}.button-finish:hover,.button-finish:focus,.button-finish:active{background-color:#10b981;color:#fff}.button-reject{transition:background-color linear 300ms;background-color:#d97706;color:#fff;border-left:0}.button-reject:hover,.button-reject:focus,.button-reject:active{background-color:#f59e0b;color:#fff}.button-reset{transition:background-color linear 300ms;background-color:#2563eb;color:#fff;border-left:0}.button-reset:hover,.button-reset:focus,.button-reset:active{background-color:#3b82f6;color:#fff}body{background-color:#bbb}.page{margin-top:3rem;background:#fff;border-radius:5px;box-shadow:rgba(9,30,66,.25) 0 4px 8px -2px,rgba(9,30,66,.08) 0 0 0 1px;max-width:40rem}.page section{max-width:30rem;margin:0 auto}.page header .icon{display:inline-block;border-radius:100px;padding:15px;margin-bottom:2rem}.page header .icon.admin{background-color:#331904;color:#fecba1}.page header .icon.locked{background-color:#ffc107;color:#000}.page header .icon.signed{background-color:#146c43;color:#fff}.page header .icon.rejected{background-color:#e4d8d5;color:#fff}.page .form{max-width:30rem;margin:2rem auto;display:flex;gap:1rem}#form-access-code>.input,#form-admin-password>.input{flex-grow:1}#page-admin header .icon{background-color:#331904;color:#fecba1}.envelope{display:block;border:1px solid #eee;margin-bottom:1rem;padding:.5rem}footer#page-footer{color:#333;max-width:40rem;margin-top:1rem;font-size:.85rem}footer#page-footer a,footer#page-footer a:link,footer#page-footer a:hover,footer#page-footer a:visited,footer#page-footer a:focus{color:#444}.sender-card{background-color:transparent;border:0}.sender-card .row{height:7vh}.sender-card img{height:7vh;background-color:#d1cfcf;border-radius:50px}.envelope-message{font-family:'Roboto',sans-serif}.none-display{display:none}.dropdown-flag img,.img-flag{width:30%;height:70%}.dropdown-flag{height:75%;width:75%}.increase-dropdown-height{min-height:400px}.dropdown-flag .select2-container{width:100%!important;max-width:180px}.lang-item{font-size:.85rem}#langDropdownMenuButton{min-width:4vw}.highlight{font-weight:700;font-size:13px}.signature-process-title,.signature-process-name{font-size:18px}.signature-process-name{font-size:15px;font-weight:700}.mail-link{color:#000;text-decoration:none}.mail-link:hover{text-decoration:underline}@media(max-width:767px){.navbar{flex-direction:column;align-items:flex-start}.navbar-brand{font-size:.5rem;text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis}.collapse .card-text,.collapsing .card-text{font-size:.6rem;margin:0;padding:0}.sender-card .card-body{padding:.5rem}.btn_group{position:fixed;flex-direction:row;bottom:.5rem;right:.5rem}.img-fluid{width:1.2rem;height:100%;display:none}img{max-width:4rem}.page{margin-top:1rem;max-width:90%;padding:.5rem}.page section{max-width:90%}}@media(max-height:850px){.collapse .card-text,.collapsing .card-text{font-size:.5rem;margin:0;padding:0}}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js b/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js
new file mode 100644
index 00000000..3c4ccd64
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/api-service.min.js
@@ -0,0 +1,2 @@
+class Content{static get JSON(){return"application/json"}}class API{static get REJECT_URL(){return`/api/envelope/reject`}static get REJECT_REDIR_URL(){return`/envelopekey/${API.ENV_KEY}/rejected`}static __XSRF_TOKEN
+ static get XSRF_TOKEN(){return API.__XSRF_TOKEN??=document.getElementsByName("__RequestVerificationToken")[0].value,API.__XSRF_TOKEN}static get ENV_KEY(){return ENV_KEY??document.querySelector('meta[name="env-key"]').getAttribute("content")}}const submitForm=async n=>await fetch(n.action,{method:n.method,body:new FormData(n),headers:{"X-Requested-With":"XMLHttpRequest"}}),createRequest=async(n,t,i,r)=>fetch(t,{credentials:"include",method:n,headers:{"Content-Type":r,"X-XSRF-TOKEN":API.XSRF_TOKEN},body:JSON.stringify(i)}),createPost=(n,t,i)=>createRequest("POST",n,t,i),rejectEnvelope=n=>createPost(API.REJECT_URL,n,Content.JSON),redirect=n=>window.location.href=n,redirRejected=()=>redirect(API.REJECT_REDIR_URL);
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js.map b/EnvelopeGenerator.Web/wwwroot/js/app.js.map
deleted file mode 100644
index 76e3ab9d..00000000
--- a/EnvelopeGenerator.Web/wwwroot/js/app.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"app.js","sourceRoot":"","sources":["../../scripts/app.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.min.js b/EnvelopeGenerator.Web/wwwroot/js/app.min.js
new file mode 100644
index 00000000..06a97566
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/app.min.js
@@ -0,0 +1 @@
+const ActionType={Created:0,Saved:1,Sent:2,EmailSent:3,Delivered:4,Seen:5,Signed:6,Rejected:7};class App{constructor(n,t,i,r,u,f){this.container=f??`#${this.constructor.name.toLowerCase()}`;this.envelopeKey=n;this.Network=new Network;this.Instance=null;this.currentDocument=null;this.currentReceiver=null;this.signatureCount=0;this.envelopeReceiver=t;this.documentBytes=i;this.licenseKey=r;this.locale=u}async init(){this.currentDocument=this.envelopeReceiver.envelope.documents[0];this.currentReceiver=this.envelopeReceiver.receiver;const n=this.documentBytes;if(n.fatal||n.error)return Swal.fire({title:"Fehler",text:"Dokument konnte nicht geladen werden!",icon:"error"});const t=this.documentBytes;this.Instance=await UI.loadPSPDFKit(t,this.container,this.licenseKey,this.locale);UI.configurePSPDFKit(this.Instance,this.handleClick.bind(this));this.Instance.addEventListener("annotations.load",this.handleAnnotationsLoad.bind(this));this.Instance.addEventListener("annotations.change",this.handleAnnotationsChange.bind(this));this.Instance.addEventListener("annotations.create",this.handleAnnotationsCreate.bind(this));this.Instance.addEventListener("annotations.willChange",()=>{Comp.ActPanel.Toggle()});try{this.signatureCount=this.currentDocument.elements.length;await Annotation.createAnnotations(this.currentDocument,this.Instance);const n=await this.Network.openDocument(this.envelopeKey);if(n.fatal||n.error)return Swal.fire({title:"Fehler",text:"Umschlag konnte nicht geöffnet werden!",icon:"error"})}catch(i){}[...document.getElementsByClassName("btn_refresh")].forEach(n=>n.addEventListener("click",()=>this.handleClick("RESET")));[...document.getElementsByClassName("btn_complete")].forEach(n=>n.addEventListener("click",()=>this.handleClick("FINISH")))}handleAnnotationsLoad(n){n.toJS()}handleAnnotationsChange(){}async handleAnnotationsCreate(n){const t=n.toJS()[0],i=!!t.formFieldName,r=!!t.isSignature;if(i===!1&&r===!0){const r=t.boundingBox.left-20,u=t.boundingBox.top-20,n=150,i=75,f=new Date,e=await Annotation.createAnnotationFrameBlob(this.envelopeReceiver.name,this.currentReceiver.signature,f,n,i),o=await fetch(e),s=await o.blob(),h=await this.Instance.createAttachment(s),c=Annotation.createImageAnnotation(new PSPDFKit.Geometry.Rect({left:r,top:u,width:n,height:i}),t.pageIndex,h);this.Instance.create(c)}}async handleClick(n){let t=!1;switch(n){case"RESET":t=await this.handleReset(null);t.isConfirmed&&Swal.fire({title:"Erfolg",text:"Dokument wurde zurückgesetzt",icon:"info"});break;case"FINISH":t=await this.handleFinish(null);t==!0&&(window.location.href=`/EnvelopeKey/${this.envelopeKey}/Success`);break;case"REJECT":alert("Dokument abgelent!")}}async handleFinish(){const n=await this.Instance.exportInstantJSON(),t=await n.formFieldValues,r=t.filter(n=>Annotation.isFieldRequired(n)),u=r.some(n=>n.value===undefined||n.value===null||n.value==="");if(u)return Swal.fire({title:"Warnung",text:"Bitte füllen Sie alle Standortinformationen vollständig aus!",icon:"warning"}),!1;const f=new RegExp("^[a-zA-Z\\u0080-\\u024F]+(?:([\\ \\-\\']|(\\.\\ ))[a-zA-Z\\u0080-\\u024F]+)*$"),e=t.filter(n=>Annotation.isCityField(n));for(var i of e)if(!f.test(i.value))return Swal.fire({title:"Warnung",text:`Bitte überprüfen Sie die eingegebene Ortsangabe "${i.value}" auf korrekte Formatierung. Beispiele für richtige Formate sind: München, Île-de-France, Sauðárkrókur, San Francisco, St. Catharines usw.`,icon:"warning"}),!1;const o=await this.validateAnnotations(this.signatureCount);return o===!1?(Swal.fire({title:"Warnung",text:"Es wurden nicht alle Signaturfelder ausgefüllt!",icon:"warning"}),!1):Swal.fire({title:localized.confirmation,html:`
${localized.sigAgree}
`,icon:"question",showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:localized.finalize,cancelButtonText:localized.back}).then(async t=>{if(t.isConfirmed){try{await this.Instance.save()}catch(i){return Swal.fire({title:"Fehler",text:"Umschlag konnte nicht signiert werden!",icon:"error"}),!1}try{const i=await n,t=await this.Network.postEnvelope(this.envelopeKey,this.currentDocument.id,i);return t.fatal?(Swal.fire({title:"Fehler",text:"Umschlag konnte nicht signiert werden!",icon:"error"}),!1):t.error?(Swal.fire({title:"Warnung",text:"Umschlag ist nicht mehr verfügbar.",icon:"warning"}),!1):!0}catch(i){return!1}}else return!1})}async validateAnnotations(n){const t=await Annotation.getAnnotations(this.Instance),i=t.map(n=>n.toJS()).filter(n=>n.isSignature);return n>i.length?!1:!0}async handleReset(){const n=await Swal.fire({title:"Sind sie sicher?",text:"Wollen Sie das Dokument und alle erstellten Signaturen zurücksetzen?",icon:"question",showCancelButton:!0});if(n.isConfirmed){const n=await Annotation.deleteAnnotations(this.Instance)}return n}}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/error-space.min.js b/EnvelopeGenerator.Web/wwwroot/js/error-space.min.js
new file mode 100644
index 00000000..4172dfad
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/error-space.min.js
@@ -0,0 +1 @@
+function drawVisor(){const t=document.getElementById("visor"),n=t.getContext("2d");n.beginPath();n.moveTo(5,45);n.bezierCurveTo(15,64,45,64,55,45);n.lineTo(55,20);n.bezierCurveTo(55,15,50,10,45,10);n.lineTo(15,10);n.bezierCurveTo(15,10,5,10,5,20);n.lineTo(5,45);n.fillStyle="#2f3640";n.strokeStyle="#f5f6fa";n.fill();n.stroke()}function animate(){requestAnimationFrame(animate);ctx.clearRect(0,0,innerWidth,innerHeight);ctx.beginPath();ctx.moveTo(130,170);ctx.bezierCurveTo(250,y1,345,y2,400,y3);ctx.strokeStyle="white";ctx.lineWidth=8;ctx.stroke();y1===100&&(y1Forward=!0);y1===300&&(y1Forward=!1);y2===100&&(y2Forward=!0);y2===310&&(y2Forward=!1);y3===100&&(y3Forward=!0);y3===317&&(y3Forward=!1);y1Forward?y1+=1:y1-=1;y2Forward?y2+=1:y2-=1;y3Forward?y3+=1:y3-=1}const cordCanvas=document.getElementById("cord"),ctx=cordCanvas.getContext("2d");let y1=160,y2=100,y3=100,y1Forward=!0,y2Forward=!1,y3Forward=!0;drawVisor();animate();
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js b/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js
new file mode 100644
index 00000000..ef914c50
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/event-binder.min.js
@@ -0,0 +1,3 @@
+$(".btn_reject").click(()=>Swal.fire({title:localized.rejection,html:`
${localized.rejectionReasonQ}
`,icon:"question",input:"text",inputAttributes:{autocapitalize:"off"},showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",confirmButtonText:localized.complete,cancelButtonText:localized.back,showLoaderOnConfirm:!0,preConfirm:async n=>{try{return await rejectEnvelope(n)}catch(t){Swal.showValidationMessage(`
+ Request failed: ${t}
+ `)}},allowOutsideClick:()=>!Swal.isLoading()}).then(n=>{if(n.isConfirmed){const t=n.value;t.ok?redirRejected():Swal.showValidationMessage(`Request failed: ${t.message}`)}}));class Comp{static ActPanel=class{static __Root;static get Root(){Comp.ActPanel.__Root??=document.getElementById("flex-actio-panel");return Comp.ActPanel.__Root}static get Elements(){return[...Comp.ActPanel.Root.children]}static get IsHided(){return Comp.ActPanel.Root.style.display=="none"}static set Display(n){Comp.ActPanel.Root.style.display=n;Comp.ActPanel.Elements.forEach(t=>t.style.display=n)}static Toggle(){Comp.ActPanel.Display=Comp.ActPanel.IsHided?"":"none"}};}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/network.min.js b/EnvelopeGenerator.Web/wwwroot/js/network.min.js
new file mode 100644
index 00000000..c6806615
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/network.min.js
@@ -0,0 +1 @@
+async function setLangAsync(n,t){document.getElementById("selectedFlag").className="fi "+t+" me-2";await fetch(`/lang/${n}`,{method:"POST",headers:{"Content-Type":"application/json"}})}async function setLanguage(n){const t=await fetch("/lang",{method:"GET",headers:{"Content-Type":"application/json"}}).then(n=>n.json()).then(t=>t.includes(n)).catch(()=>!1);if(t)return await fetch(`/lang/${n}`,{method:"POST",headers:{"Content-Type":"application/json"}}).then(n=>{if(n.redirected)window.location.href=n.url;else if(!n.ok)return Promise.reject("Failed to set language")})}class Network{async getEnvelope(n){return this.getRequest(`/api/envelope/${n}`).then(this.wrapJsonResponse.bind(this))}async postEnvelope(n,t,i){return this.postRequest(`/api/envelope/${n}?index=${t}`,i).then(this.wrapJsonResponse.bind(this))}async getDocument(n,t){return this.getRequest(`/api/document/${n}?index=${t}`).then(this.wrapBinaryResponse.bind(this))}async openDocument(n){return this.postRequest(`/api/document/${n}`,{}).then(this.wrapJsonResponse.bind(this))}withCSRFToken(n){const t=getCSRFToken;let i=n.headers;return n.headers={...i,...t},n}getCSRFToken(){const n=document.getElementsByName("__RequestVerificationToken")[0].value;return{"X-XSRF-TOKEN":n}}getRequest(n,t){const r=this.getCSRFToken(),i={credentials:"include",method:"GET",headers:{...r}};return t!==undefined&&(i.body=JSON.stringify(t)),fetch(n,i)}postRequest(n,t){const i=this.getCSRFToken(),r={credentials:"include",method:"POST",headers:{...i,"Content-Type":"application/json; charset=utf-8"},body:JSON.stringify(t)};return fetch(n,r)}async wrapJsonResponse(n){return await this.wrapResponse(n,async n=>await n.json())}async wrapBinaryResponse(n){return await this.wrapResponse(n,async n=>await n.arrayBuffer())}async wrapResponse(n,t){let i;if(n.status===200){const r=await t(n);i=new WrappedResponse(r,null)}else if(n.status===403){const t=await n.json();i=new WrappedResponse(null,t)}else i=new WrappedResponse(null,null);return i}}class WrappedResponse{constructor(n,t){this.data=n;this.error=t;this.fatal=n===null&&t===null}}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/ui.min.js b/EnvelopeGenerator.Web/wwwroot/js/ui.min.js
new file mode 100644
index 00000000..d428fe8e
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/ui.min.js
@@ -0,0 +1,7 @@
+class UI{static allowedToolbarItems=["sidebar-thumbnails","sidebar-document-ouline","sidebar-bookmarks","pager","pan","zoom-out","zoom-in","zoom-mode","spacer","search",];static Instance
+ static loadPSPDFKit(n,t,i,r){return UI.Instance=PSPDFKit.load({locale:r,licenseKey:i,styleSheets:["/css/site.css"],container:t,document:n,annotationPresets:UI.getPresets(),electronicSignatures:{creationModes:["DRAW","TYPE","IMAGE"]},initialViewState:new PSPDFKit.ViewState({sidebarMode:PSPDFKit.SidebarMode.THUMBNAILS}),isEditableAnnotation:function(n){return n.isSignature||n.description=="FRAME"?!1:!0},customRenderers:{Annotation:UI.annotationRenderer}}),UI.Instance}static configurePSPDFKit(n,t){const i=UI.getToolbarItems(n,t);n.setToolbarItems(i)}static annotationRenderer(){return null}static getToolbarItems(n,t){const i=UI.getCustomItems(t),r=UI.getDefaultItems(n.toolbarItems);return r.concat(i)}static createElementFromHTML(n){const t=document.createElement("div");return t.innerHTML=n.trim(),t.firstChild}static getCustomItems=function(n){return[];return[{type:"custom",id:"button-reset",className:"button-reset",title:"Zurücksetzen",onPress(){n("RESET")},icon:``},{type:"custom",id:"button-reject",className:"button-reject",title:"Ablehnen",onPress(){n("REJECT")},icon:``},{type:"custom",id:"button-finish",className:"button-finish",title:"Abschließen",onPress(){n("FINISH")}},]};static getDefaultItems(n){return n.filter(n=>UI.allowedToolbarItems.includes(n.type))}static getPresets(){const n=PSPDFKit.defaultAnnotationPresets;return n.ink={lineWidth:10},n.widget={readOnly:!0},n}}
\ No newline at end of file
diff --git a/EnvelopeGenerator.Web/wwwroot/js/util.min.js b/EnvelopeGenerator.Web/wwwroot/js/util.min.js
new file mode 100644
index 00000000..054ab348
--- /dev/null
+++ b/EnvelopeGenerator.Web/wwwroot/js/util.min.js
@@ -0,0 +1 @@
+function getCoordinates(){return new Promise((n,t)=>{navigator.geolocation?navigator.geolocation.getCurrentPosition(t=>n(t.coords),n=>t(n)):t(new Error("Geolocation is not supported by this browser."))})}async function getCity(){try{const t=await getCoordinates(),i=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${t.latitude}&lon=${t.longitude}`),n=await i.json();if(n&&n.address){const t=n.address.city||n.address.town||n.address.village||n.address.hamlet,i=n.address.postcode;return i+" "+t||""}}catch{return""}}async function getLocation(){try{const t=await getCoordinates(),i=await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${t.latitude}&lon=${t.longitude}`),n=await i.json();if(n&&n.address){const t=n.address.city||n.address.town||n.address.village||n.address.hamlet,i=n.address.postcode;return{postalCode:i,city:t}}}catch{return{postalCode:"",city:""}}}function locale_date_dd_mm_yyyy(){const n=new Date,t=String(n.getDate()).padStart(2,"0"),i=String(n.getMonth()+1).padStart(2,"0"),r=String(n.getFullYear()).slice(-4);return`${t}/${i}/${r}`}function isMobile(){return __is_mobile===null&&(__is_mobile=/Mobi|Android/i.test(window.navigator.userAgent)),__is_mobile}const B64ToBuff=n=>new Uint8Array(Array.from(atob(n),n=>n.charCodeAt(0))).buffer;const getLocaleDateString=()=>(new Date).toLocaleDateString("de-DE");let __is_mobile=null;
\ No newline at end of file