const dceSignaturePads=new WeakMap;function resizeCanvas(a){const n=dceSignaturePads.get(a);if(!n)return;let{canvas:o,signaturePad:e,hiddenInput:t,aspectRatio:d,useJPEG:v}=n,c=a.getBoundingClientRect();if(c.width===0||c.height===0)return;const s=e.toData(),l=o.width,g=o.height;let u=Math.round(c.width),r=Math.round(u/d);if(u===l)return;if(o.width=u,o.height=r,n.updateValue&&e.removeEventListener("afterUpdateStroke",n.updateValue),e.off(),e=new SignaturePad(o,{penColor:o.getAttribute("data-pen-color"),backgroundColor:o.getAttribute("data-background-color")}),n.signaturePad=e,l>0&&g>0){const h=u/l,p=r/g;s.forEach(b=>{b.points.forEach(i=>{i.x*=h,i.y*=p,i.pressure*=h})}),e.fromData(s)}const f=()=>{e.isEmpty()?t.value="":t.value=e.toDataURL(`image/${v?"jpeg":"png"}`)};e.addEventListener("afterUpdateStroke",f),n.updateValue=f}function initializeSignaturePad(a,n,o){const e=dceSignaturePads.get(a);e&&(e.updateValue&&e.signaturePad.removeEventListener("afterUpdateStroke",e.updateValue),e.signaturePad.off(),e.clearButton&&e.clearHandler&&e.clearButton.removeEventListener("click",e.clearHandler),e.resizeObserver&&e.resizeObserver.disconnect());const t=a.querySelector("canvas"),d=a.querySelector("input"),v=a.querySelector("[data-action=clear]"),c=parseFloat(t.getAttribute("data-aspect-ratio"))||2,s=t.getAttribute("data-jpeg")==="yes";let l=a.getBoundingClientRect(),g=Math.round(l.width),u=Math.round(g/c);t.width=g,t.height=u;let r=new SignaturePad(t,{penColor:t.getAttribute("data-pen-color"),backgroundColor:t.getAttribute("data-background-color")});const f=()=>{r.isEmpty()?d.value="":d.value=r.toDataURL(`image/${s?"jpeg":"png"}`)};r.addEventListener("afterUpdateStroke",f);const h=function(){const i=t.getContext("2d");i.fillStyle=t.getAttribute("data-background-color"),i.fillRect(0,0,t.width,t.height),r.clear(),d.value=""};v.addEventListener("click",h);const p=new ResizeObserver(i=>{window.requestAnimationFrame(()=>{resizeCanvas(a)})});p.observe(a);const b={wrapper:a,canvas:t,signaturePad:r,hiddenInput:d,aspectRatio:c,useJPEG:s,updateValue:f,clearButton:v,clearHandler:h,resizeObserver:p};dceSignaturePads.set(a,b)}function WidgetElements_FormSignature(a,n){a.find(".dce-signature-wrapper").each((e,t)=>initializeSignaturePad(t,a,n))}jQuery(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/form.default",WidgetElements_FormSignature)});