hash.art
\n `,e=new Blob([t],{type:"text/html"}),a=URL.createObjectURL(e),n=document.createElement("a");n.href=a,n.download="exported_canvas.html",document.body.appendChild(n),n.click(),document.body.removeChild(n)}));let A=!1,R=0,L=0;function U(e){e.preventDefault(),A=!0,R=e.clientX||e.touches[0].clientX-t.offsetLeft,L=e.clientY||e.touches[0].clientY-t.offsetTop,p[v].beginPath()}function B(e){if(!A)return;e.preventDefault();const a=(e.clientX||e.touches[0].clientX)-t.offsetLeft,n=(e.clientY||e.touches[0].clientY)-t.offsetTop;p[v].lineTo(a,n),p[v].stroke(),R=a,L=n}function Z(){A=!1,p[v].closePath(),I()}function I(){const t=p[v].canvas.toDataURL();k.push(t)}t.addEventListener("mousedown",(t=>U(t))),t.addEventListener("mousemove",(t=>B(t))),t.addEventListener("mouseup",(()=>Z())),t.addEventListener("mouseout",(()=>Z())),t.addEventListener("touchstart",(t=>U(t.touches[0])),{passive:!1}),t.addEventListener("touchmove",(t=>B(t.touches[0])),{passive:!1}),t.addEventListener("touchend",(()=>Z()),{passive:!1}),t.addEventListener("touchcancel",(()=>Z()),{passive:!1}),x()}))