import{d as J,a as Q,e as ee,r as v,s as te,j as ae,aF as oe,f as ne,h as i,z as g,g as l,i as F,A as R,aG as V,bL as A,v as b,B as X,aI as se,o as le,a4 as ie,V as re,_ as ue}from"./BxiWQxwE.js";import ce from"./C5EyhMCy.js";import{u as de}from"./DV8hZmlQ.js";import"./DbZappjS.js";import"./CACLnWKE.js";import"./4HfP1VOY.js";import"./QMEN6lyk.js";import"./CxeYIrhH.js";const ve={class:"popup"},pe={class:"close-button"},me=["aria-label"],fe={class:"editor"},ge={class:"cake-container"},he={class:"file-upload"},_e={for:"file-input",class:"button"},we=["src","alt"],ke={class:"side-bar"},be=["aria-label","disabled"],C=4,xe=J({__name:"image-editor",emits:["save-picture-cake","editor-closed"],setup(ye,{emit:T}){const U=re(),{$messages:m}=Q(),{photoCakeProduct:f}=de(),Y=ee(()=>{var t;const e=(t=f.value)==null?void 0:t.productId;return e?{square:[69959,69960].includes(e),flat:e===69958}:!1}),I={text:"",fontSize:"36px",font:"Arial",color:"#3DA638",originalImage:null,generatedImage:null,location:0,scale:1,rotation:0},a=v({...I}),s=v(null),d=v(),r=v(null),x=v(!1),h=v(!1),D=v(0),z=v(0),y=v(0),E=v(0),L=T,N=()=>{L("editor-closed")},W=e=>{var n;const t=e.target,o=(n=t==null?void 0:t.files)==null?void 0:n[0];o&&S(o)},j=e=>{var o,n;h.value=!1;const t=(n=(o=e.dataTransfer)==null?void 0:o.files)==null?void 0:n[0];t&&S(t)},S=e=>{const t=C*1024*1024,o=e.size/1024/1024;if(e.size>t){alert(m("dekaPastry.editor.fileSizeError",{size:`${o.toFixed(2)}`,maxsize:`${C}`}));return}const n=new FileReader;n.onload=c=>{var p,w;const u=new Image;u.onload=()=>{var k;s.value=u,a.value.originalImage=(k=c.target)==null?void 0:k.result,_(),Z()},typeof((p=c.target)==null?void 0:p.result)=="string"&&(u.src=(w=c.target)==null?void 0:w.result)},n.readAsDataURL(e)},_=()=>{var $,B;if(!s.value||!d.value)return;const e=d.value,t=e.getContext("2d");if(!t||!e.parentElement)return;const o=($=e.parentElement)==null?void 0:$.clientWidth,n=(B=e.parentElement)==null?void 0:B.clientHeight;e.width=o,e.height=n;const c=e.width/s.value.width,u=e.height/s.value.height,p=Math.min(c,u)*a.value.scale,w=e.width/2-s.value.width/2*p+y.value,k=e.height/2-s.value.height/2*p+E.value;t.clearRect(0,0,e.width,e.height),t.save(),t.translate(w+s.value.width*p/2,k+s.value.height*p/2),t.rotate(a.value.rotation*Math.PI/180),t.scale(p,p),t.translate(-s.value.width/2,-s.value.height/2),t.drawImage(s.value,0,0),t.restore(),r.value=t,H()},G=()=>{if(a.value={...I},s.value=null,!d.value)return;const e=d.value,t=e.getContext("2d");t&&(t.clearRect(0,0,e.width,e.height),r.value=t)},H=()=>{if(!r.value||!d.value)return;r.value.save(),r.value.font=`bold ${a.value.fontSize} ${a.value.font}`,r.value.fillStyle=a.value.color,r.value.shadowColor="rgba(0, 0, 0, 0.5)",r.value.shadowOffsetX=2,r.value.shadowOffsetY=2,r.value.shadowBlur=4;const e=a.value.text,t=r.value.measureText(e).width,o=(d.value.width-t)/2,n=d.value.height*(a.value.location===0?.25:.75);r.value.fillText(e,o,n),r.value.restore()},O=()=>{var e;(e=d.value)==null||e.toBlob(t=>{const o=new FileReader;o.onloadend=()=>{var c,u;const n=o.result;a.value.generatedImage=n,L("save-picture-cake",{name:((c=f.value)==null?void 0:c.productInformation.headerText)??"",productId:((u=f.value)==null?void 0:u.productId)??-1,amount:1,product:f.value,pictureCakeData:a.value})},t&&o.readAsDataURL(t)})},q=e=>{x.value=!0,D.value=e.clientX-y.value,z.value=e.clientY-E.value},K=e=>{x.value&&(y.value=e.clientX-D.value,E.value=e.clientY-z.value,_())},M=()=>{x.value=!1},Z=()=>{const e=d.value;e&&(e.addEventListener("mousedown",q),e.addEventListener("mousemove",K),e.addEventListener("mouseup",M),e.addEventListener("mouseleave",M))};te(()=>[a.value.text,a.value.font,a.value.fontSize,a.value.location,a.value.color],()=>_());const P=e=>{e.key==="Escape"&&(f.value=null)};return ae(()=>{document.body.classList.add("locked"),window.addEventListener("keydown",P)}),oe(()=>{document.body.classList.remove("locked"),window.removeEventListener("keydown",P)}),(e,t)=>{var c;const o=ie,n=ce;return le(),ne("div",ve,[i("div",pe,[i("button",{type:"button",class:"button-clean","aria-label":l(m)("aria.close"),onClick:g(N,["prevent"])},[F(o)],8,me)]),i("div",fe,[i("div",ge,[i("div",{class:R(["cake",{dragging:l(h)}]),onDrop:g(j,["prevent"]),onDragover:t[0]||(t[0]=g(()=>{},["prevent"])),onDragenter:t[1]||(t[1]=g(u=>h.value=!0,["prevent"])),onDragleave:t[2]||(t[2]=g(u=>h.value=!1,["prevent"]))},[V(i("div",he,[i("p",null,b(l(m)("dekaPastry.editor.dragPicture")),1),i("label",_e,[X(b(l(m)("dekaPastry.editor.choosePictureShort"))+" ",1),t[4]||(t[4]=i("br",null,null,-1)),X(" "+b(l(m)("dekaPastry.editor.maxFileSize",{size:`${C}`})),1)]),i("input",{id:"file-input",type:"file",accept:"image/jpeg, image/jpg, image/png, image/bmp, image/webp",onChange:W},null,32)],512),[[A,!l(s)]]),V(i("canvas",{ref_key:"canvas",ref:d,class:R(["canvas",l(Y)])},null,2),[[A,l(s)]]),i("img",{src:`${l(U).public.files}/static-images/deka/web/dekagebak/picture-cake-${(c=l(f))==null?void 0:c.productId}.png`,alt:l(m)("aria.pictureCake"),class:"border-image"},null,8,we)],34)]),i("div",ke,[F(n,{modelValue:l(a),"onUpdate:modelValue":t[3]||(t[3]=u=>se(a)?a.value=u:null),onUpdatePictureCake:_,onClear:G},null,8,["modelValue"]),i("button",{type:"button",class:"save-button","aria-label":l(m)("common.save"),disabled:!l(s),onClick:O},b(l(m)("dekaPastry.editor.save")),9,be)])])])}}}),Pe=ue(xe,[["__scopeId","data-v-63fe6c08"]]);export{Pe as default};
