import{d as j,a as z,r as u,e as v,j as H,bs as P,s as O,b1 as $,f as _,i as b,C as w,D as I,o as m,x as A,g as t,z as k,A as x,t as F,aW as Q,aG as Y,aJ as Z,h as ee,bI as l,aI as ae,J as te,bJ as ue,_ as le}from"./BxiWQxwE.js";import{u as oe}from"./DV8hZmlQ.js";const se={class:"controller"},ne=["disabled","aria-label"],re=["aria-label","min","max","disabled"],ie=["disabled","aria-label"],ce=250,de=1300,ve=1e3,me=4e3,fe=j({__name:"quantity",props:{product:{type:Object,required:!0}},emits:["add","remove","update"],setup(D,{emit:E}){const i=D,{pastriesSaved:B,photoCakeProduct:L}=oe(),{$messages:N}=z(),n=u(!0),o=u(!1),f=u(!1),r=u(null),T=u(!0),R=a=>["Backspace","Delete","ArrowLeft","ArrowRight"].includes(a.code)?!0:isNaN(Number(a.key))||a.code==="Space"?(a.preventDefault(),!1):!0,S=v(()=>Number(e.value)<10?!1:Number(e.value)>90?"controller--input--large":"controller--input--medium"),g=u(!1),U=u(!1),h=E,s=u(!0),e=u(0),C=v(()=>e.value===l.MIN),y=v(()=>e.value===l.MAX),K=()=>{y.value||(i.product.webgroupId===ue&&e.value===0?L.value=i.product:(g.value=!0,U.value=!0,e.value=Number(e.value)+1))},W=()=>{C.value||(e.value=Number(e.value)-1)},q=()=>{e.value===c.value||e.value===""||(s.value=!0,Number(e.value)>0&&c.value===0?h("add",{product:i.product,amount:Number(e.value)}):p.value&&Number(e.value)<1&&c.value>0?h("remove",{product:i.product,amount:Number(e.value)}):p.value&&Number(e.value)>0&&h("update",{product:p.value,amount:Number(e.value)}))},p=v(()=>{var a;return(a=B.value)==null?void 0:a.find(d=>d.productId===i.product.productId)}),c=v(()=>{var a;return((a=p.value)==null?void 0:a.amount)??0}),G=a=>{n.value=!0,o.value=!0,a.preventDefault()},V=()=>{e.value===""&&(e.value=1),Number(e.value)>l.MAX&&(e.value=l.MAX),Number(e.value)<l.MIN&&(e.value=l.MIN),r.value&&clearTimeout(r.value),window.innerWidth<766&&(r.value=setTimeout(()=>{n.value=!1,o.value=!1},100))},M=()=>{if(e.value===0){setTimeout(()=>{n.value=!0,o.value=!1,f.value=!1},ce);return}if(f.value=!0,o.value=!0,window.innerWidth<766&&T.value){T.value=!1,Number(e.value)>0&&(n.value=!1);return}window.innerWidth<766&&(r.value&&clearTimeout(r.value),r.value=setTimeout(()=>{Number(e.value)>0?(n.value=!1,o.value=!1):(o.value=!1,f.value=!1)},me))};return H(async()=>{await P(()=>T.value=!1),e.value=c.value,setTimeout(()=>{s.value=!1},ve),M()}),O(c,a=>{a!==e.value&&(e.value=a),s.value&&(s.value=!1)}),$(e,()=>{q()},{debounce:de}),O(()=>e.value,a=>{a===""&&e.value===""||M()}),(a,d)=>{const X=te;return m(),_("div",se,[b(I,{name:"controller--remove-button-animation"},{default:w(()=>[t(o)?(m(),_("button",{key:0,class:x(["controller--remove",{"controller--delete":t(e)===1}]),disabled:t(C)||t(s),"aria-label":t(N)("aria.quantity.remove"),onClick:k(W,["stop"])},[(m(),F(Q(`svgo-${t(e)===1?"delete":"minus"}`)))],10,ne)):A("",!0)]),_:1}),b(I,{name:"controller--input-animation"},{default:w(()=>[t(f)?(m(),_("div",{key:0,onClick:G},[Y(ee("input",{ref:"inputEl","onUpdate:modelValue":d[0]||(d[0]=J=>ae(e)?e.value=J:null),"aria-label":t(N)("aria.quantity.input"),enterkeyhint:"done",class:x(["controller--input",t(S)]),type:"number",pattern:"[0-9]{1,3}",min:t(l).MIN,max:t(l).MAX,disabled:t(s),onKeydown:R,onBlur:V},null,42,re),[[Z,t(e)]])])):A("",!0)]),_:1}),b(I,{name:"controller--add-button-animation"},{default:w(()=>[t(n)?(m(),_("button",{key:0,class:"controller--add",disabled:t(y)||t(s),"aria-label":t(N)("aria.plusOne"),onClick:k(K,["stop"])},[b(X)],8,ie)):A("",!0)]),_:1})])}}}),be=le(fe,[["__scopeId","data-v-815a2935"]]);export{be as default};
