1import{L as fe,d as se,u as le,b as S,w as K,j as i,F as $,g as m,N as ye,f as b,_ as ie,r as A,z as ee,c as ue,o as l,k as _,i as e,A as g,ab as de,e as q,am as pe,l as k,n as N,t as u,m as U,Z as be,p as T,s as O,v as me,bb as ve,dg as xe,B as D,C as ne,a2 as J,a1 as ke,al as _e}from"./index.js";import{_ as ce}from"./Loading.vue_vue_type_style_index_0_lang.js";import{_ as te,a as E}from"./Option.vue_vue_type_script_setup_true_lang.js";import{N as he}from"./NumberInput.js";import{M as ge}from"./minus.js";import{P as ae}from"./plus2.js";import{u as $e}from"./usePosPaymentMethods.js";import{B as we}from"./ban.js";import{m as Ce}from"./orderModifiers.js";import{A as Ve}from"./arrow-left.js";import{T as Ie}from"./trash-2.js";/** 2 * @license lucide-vue-next v0.469.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Te=fe("SendIcon",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]),ze={key:0,class:"fixed inset-0 z-50 flex justify-end"},Ne={class:"relative w-full max-w-lg bg-white dark:bg-gray-800 h-full flex flex-col shadow-xl"},je={class:"p-4 border-b dark:border-gray-700 flex items-center justify-between"},Me={class:"p-4 border-b dark:border-gray-700 space-y-3"},Ae={class:"flex gap-2"},Se={class:"flex-1 overflow-y-auto"},Ue={class:"grid grid-cols-2 gap-3 p-4"},Le=["onClick"],Oe={class:"font-medium text-sm dark:text-gray-100 truncate"},Be={class:"text-xs text-gray-500 dark:text-gray-400"},Pe={key:0,class:"border-t dark:border-gray-700"},De={class:"p-4 bg-gray-50 dark:bg-gray-700/50"},Ee={class:"text-sm font-medium dark:text-gray-200 mb-2"},qe={class:"space-y-2 max-h-32 overflow-y-auto"},Re={class:"dark:text-gray-300 truncate flex-1"},Fe={class:"flex items-center gap-2"},We=["onClick"],Ye={class:"w-6 text-center dark:text-gray-300"},Qe=["onClick"],Xe=["onClick"],Ze={class:"p-4 border-t dark:border-gray-700"},Ge={key:0,class:"w-full flex flex-col gap-4"},He={class:"border w-full flex flex-row justify-between items-center rounded-lg dark:border-gray-600 p-3"},Je={class:"max-w-[9rem]"},Ke={class:"text-base free block mb-2 dark:text-gray-100"},et={class:"flex flex-row flex-wrap gap-3 mb-5"},tt=["name","checked","onChange"],at={key:0,class:"free description"},st=se({__name:"TabItemsPanel",props:{modelValue:{type:Boolean},orderId:{}},emits:["update:modelValue","items-added"],setup(B,{emit:j}){const w=B,C=j,a=le(),{$toast:h}=ue(),r=ee({search:"",category_id:"",menu_id:""}),V=A([]),I=A([]),v=A([]),z=A(!1),c=A(null),o=U(()=>{var t;return((t=V.value.find(s=>s.id===r.menu_id))==null?void 0:t.categories)||[]});S({fire:"immediately",action:async()=>a.menu.getAllMenu(["id","name"],["categories:id,name"]),onSuccess:t=>{V.value=t.data}});const{state:f,execute:re}=S({fire:"immediately",action:async()=>a.menu.getMenuItemsWithModifiers({...r.search?{search:r.search}:r,per_page:50}),onSuccess:t=>{I.value=t.data.data}}),L=pe(()=>re(),500),{state:R,execute:X}=S({fire:"on-demand",onError:h.error,action:async()=>{const t=v.value.map(d=>{var y;return{name:d.name,price:Number(d.price),quantity:d.count,menu_item_id:d.id,modifiers:(y=d.selectedOption)==null?void 0:y.map(x=>({option_id:x.id,option_price:Number(x.price)}))}}),s=await a.order.addItemsToTab(w.orderId,{items:t});return v.value=[],C("items-added",s.data.order),s}});function Z(t){return v.value.some(s=>s.id===t.id)}function F(t){if(t.modifiers&&t.modifiers.length)c.value={...t,count:1,selectedOption:[]},z.value=!0;else{const s=v.value.find(d=>d.id===t.id);s?s.count++:v.value.push({...t,count:1,selectedOption:[]})}}function G(t,s){if(!c.value)return;const d=c.value.selectedOption.findIndex(y=>y.id===s.id);d===-1?(c.value.selectedOption=c.value.selectedOption.filter(y=>!t.options.some(x=>x.id===y.id)),c.value.selectedOption.push(s)):c.value.selectedOption.splice(d,1)}function W(){c.value&&(v.value.push({...c.value}),c.value=null,z.value=!1)}function Y(t){t.count++}function H(t){t.count>1?t.count--:P(t)}function P(t){const s=v.value.indexOf(t);s!==-1&&v.value.splice(s,1)}async function n(){await X()}return K(()=>w.modelValue,t=>{t||(v.value=[],r.search="",r.category_id="",r.menu_id="")}),(t,s)=>(l(),i($,null,[m(ye,{name:"slide"},{default:b(()=>[B.modelValue?(l(),i("div",ze,[e("div",{class:"absolute inset-0 bg-black/50",onClick:s[0]||(s[0]=d=>C("update:modelValue",!1))}),e("div",Ne,[e("div",je,[s[9]||(s[9]=e("h3",{class:"font-medium dark:text-gray-100"},"Add Items",-1)),e("button",{onClick:s[1]||(s[1]=d=>C("update:modelValue",!1)),class:"p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700"},[m(g(de),{class:"size-5 dark:text-gray-300"})])]),e("div",Me,[e("div",Ae,[m(te,{modelValue:r.menu_id,"onUpdate:modelValue":[s[2]||(s[2]=d=>r.menu_id=d),s[3]||(s[3]=()=>{r.category_id="",g(L)()})],class:"flex-1",size:"sm"},{default:b(()=>[m(E,{value:""},{default:b(()=>[...s[10]||(s[10]=[k("All Menu",-1)])]),_:1}
6),(l(!0),i($,null,N(V.value,d=>(l(),q(E,{value:d.id,key:d.id},{default:b(()=>[k(u(d.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),r.menu_id?(l(),q(te,{key:0,modelValue:r.category_id,"onUpdate:modelValue":[s[4]||(s[4]=d=>r.category_id=d),g(L)],class:"flex-1",size:"sm"},{default:b(()=>[m(E,{value:""},{default:b(()=>[...s[11]||(s[11]=[k("All Categories",-1)])]),_:1}),(l(!0),i($,null,N(o.value,d=>(l(),q(E,{value:d.id,key:d.id},{default:b(()=>[k(u(d.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue"])):_("",!0)]),m(be,{size:"sm",modelValue:r.search,"onUpdate:modelValue":s[5]||(s[5]=d=>r.search=d),type:"search",class:"w-full",onInput:g(L),placeholder:"Search items..."},null,8,["modelValue","onInput"])]),e("div",Se,[m(ce,{"loading-class":"h-full flex items-center justify-center",loading:t.$u.isLoading(g(f)),result:I.value},{"not-found":b(()=>[...s[12]||(s[12]=[e("div",{class:"h-full flex items-center justify-center"},[e("p",{class:"text-gray-500 dark:text-gray-400"},"No items found")],-1)])]),default:b(()=>[e("div",Ue,[(l(!0),i($,null,N(I.value,d=>(l(),i("button",{key:d.id,onClick:()=>F(d),class:T(["p-3 rounded-lg border dark:border-gray-600 text-left hover:border-dinesurf-green-400 dark:hover:border-dinesurf-green-400 transition-colors",{"border-dinesurf-green-400 bg-dinesurf-green-50 dark:bg-dinesurf-green-900/20":Z(d)}])},[e("p",Oe,u(d.name),1),e("p",Be,u(t.$u.formatCurrency(Number(d.price))),1)],10,Le))),128))])]),_:1},8,["loading","result"])]),v.value.length?(l(),i("div",Pe,[e("div",De,[e("p",Ee," Selected Items ("+u(v.value.length)+") ",1),e("div",qe,[(l(!0),i($,null,N(v.value,d=>(l(),i("div",{key:d.id,class:"flex items-center justify-between text-sm"},[e("span",Re,u(d.name),1),e("div",Fe,[e("button",{onClick:y=>H(d),class:"p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-600"},[m(g(ge),{class:"size-3 dark:text-gray-300"})],8,We),e("span",Ye,u(d.count),1),e("button",{onClick:y=>Y(d),class:"p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-600"},[m(g(ae),{class:"size-3 dark:text-gray-300"})],8,Qe),e("button",{onClick:y=>P(d),class:"p-1 rounded hover:bg-red-100 dark:hover:bg-red-900/30 text-red-500"},[m(g(de),{class:"size-3"})],8,Xe)])]))),128))])])])):_("",!0),e("div",Ze,[m(O,{class:"w-full",disabled:!v.value.length||t.$u.isLoading(g(R)),loading:t.$u.isLoading(g(R)),onClick:n},{default:b(()=>[k(" Add "+u(v.value.length)+" Item"+u(v.value.length!==1?"s":"")+" to Tab ",1)]),_:1},8,["disabled","loading"])])])])):_("",!0)]),_:1}),m(ie,{size:"xl",modelValue:z.value,"onUpdate:modelValue":s[8]||(s[8]=d=>z.value=d)},{default:b(()=>{var d;return[m(me,{title:(d=c.value)==null?void 0:d.name,"no-header-line":"",onClose:s[7]||(s[7]=y=>z.value=!1)},{default:b(()=>[c.value?(l(),i("section",Ge,[e("div",He,[s[13]||(s[13]=e("p",{class:"text-base free font-medium dark:text-gray-100"},"Quantity",-1)),e("div",Je,[m(he,{size:"sm",modelValue:c.value.count,"onUpdate:modelValue":s[6]||(s[6]=y=>c.value.count=y)},null,8,["modelValue"])])]),e("div",null,[(l(!0),i($,null,N(c.value.modifiers||[],(y,x)=>(l(),i($,{key:x},[e("label",Ke,u(y.name)+" modifiers ",1),e("div",et,[(l(!0),i($,null,N(y.options,(M,Q)=>{var p;return l(),i("label",{key:Q,class:"text-base p-3 border dark:border-gray-600 gap-2.5 rounded-md flex free mb-2 dark:text-gray-100"},[e("div",null,[e("input",{type:"radio",name:y.name,checked:!!((p=c.value.selectedOption)!=null&&p.find(oe=>oe.id===M.id)),onChange:oe=>G(y,M),class:"kit:checkbox border rounded-md size-5"},null,40,tt)]),e("div",null,[k(u(M.option)+" ",1),M.price?(l(),i("p",at,u(t.$u.formatCurrency(Number(M.price))),1)):_("",!0)])])}),128))])],64))),128))])])):_("",!0),m(O,{class:"w-full",onClick:W},{default:b(()=>[...s[14]||(s[14]=[k(" Add to selection ",-1)])]),_:1})]),_:1},8,["title"])]}),_:1},8,["modelValue"])],64))}}),rt=ve(st,[["__scopeId","data-v-e66d9dd4"]]),ot={class:"space-y-4"},dt={class:"grid grid-cols-3 gap-3"},nt={class:"flex items-center gap-3 mb-2"},lt={class:"flex items-center gap-3 mb-2"},it={class:"flex items-center gap-3 mb-2"},ut={key:0,class:"space-y-3"},mt={class:"flex items-center gap-2"},ct={key:1,class:"space-y-3"},gt={key:2,class:"space-y-3"},ft={class:"flex items-center gap-2"},yt={class:"flex justify-end gap-3 pt-4 border-t dark:border-gray-700"},pt=se({__name:"CloseTabModal",props:{modelValue:{type:Boolean},orderId:{},loading:{type:Boolean},email:{},phone:{}},emits:["update:modelValue","close-tab"],setup(B,{emit:j}){const w=B,C=j,a=ee({action:"pay_now",payment_method:null,agree:!1,void_reason:"",void_agree:!1,email:"",ph
6one:""}),h=ee({payment_method:void 0}),r=U({get:()=>w.modelValue,set:c=>{C("update:modelValue",c)}}),{methods:V,load:I}=$e();K(()=>w.modelValue,c=>{c&&I().catch(()=>{})},{immediate:!0});const v=U(()=>a.action==="send_invoice"?!!(a.email.trim()||a.phone.trim()):a.action==="void"?a.void_agree:a.payment_method!==null&&a.agree);function z(){if(h.payment_method=void 0,a.action==="pay_now"&&!a.payment_method){h.payment_method="Please select a payment method";return}C("close-tab",{action:a.action,...a.action==="pay_now"&&{payment_method:a.payment_method},...a.action==="void"&&a.void_reason&&{void_reason:a.void_reason},...a.action==="send_invoice"&&{email:a.email.trim()||void 0,phone:a.phone.trim()||void 0}})}return K(()=>w.modelValue,c=>{if(c){a.email=w.email??"",a.phone=w.phone??"";return}a.action="pay_now",a.payment_method=null,a.agree=!1,a.void_reason="",a.void_agree=!1,a.email="",a.phone="",h.payment_method=void 0}),(c,o)=>(l(),q(ie,{modelValue:r.value,"onUpdate:modelValue":o[11]||(o[11]=f=>r.value=f),size:"xl"},{default:b(()=>[m(me,{title:"Close Tab",subtitle:"Choose how to close this tab",onClose:o[10]||(o[10]=f=>C("update:modelValue",!1))},{default:b(()=>[e("div",ot,[e("div",dt,[e("button",{onClick:o[0]||(o[0]=f=>a.action="pay_now"),class:T(["p-4 rounded-lg border-2 transition-all text-left",a.action==="pay_now"?"border-dinesurf-green-500 bg-dinesurf-green-50 dark:bg-dinesurf-green-900/20":"border-gray-200 dark:border-gray-600 hover:border-gray-300 dark:hover:border-gray-500"])},[e("div",nt,[e("div",{class:T(["w-10 h-10 rounded-full flex items-center justify-center",a.action==="pay_now"?"bg-dinesurf-green-100 dark:bg-dinesurf-green-800":"bg-gray-100 dark:bg-gray-700"])},[m(g(xe),{class:T(["size-5",a.action==="pay_now"?"text-dinesurf-green-600 dark:text-dinesurf-green-400":"text-gray-500 dark:text-gray-400"])},null,8,["class"])],2),o[12]||(o[12]=e("span",{class:"font-medium dark:text-gray-100"},"Pay Now",-1))]),o[13]||(o[13]=e("p",{class:"text-sm text-gray-500 dark:text-gray-400"}," Record payment and close the tab immediately ",-1))],2),e("button",{onClick:o[1]||(o[1]=f=>a.action="send_invoice"),class:T(["p-4 rounded-lg border-2 transition-all text-left",a.action==="send_invoice"?"border-dinesurf-green-500 bg-dinesurf-green-50 dark:bg-dinesurf-green-900/20":"border-gray-200 dark:border-gray-600 hover:border-gray-300 dark:hover:border-gray-500"])},[e("div",lt,[e("div",{class:T(["w-10 h-10 rounded-full flex items-center justify-center",a.action==="send_invoice"?"bg-dinesurf-green-100 dark:bg-dinesurf-green-800":"bg-gray-100 dark:bg-gray-700"])},[m(g(Te),{class:T(["size-5",a.action==="send_invoice"?"text-dinesurf-green-600 dark:text-dinesurf-green-400":"text-gray-500 dark:text-gray-400"])},null,8,["class"])],2),o[14]||(o[14]=e("span",{class:"font-medium dark:text-gray-100"},"Send bill",-1))]),o[15]||(o[15]=e("p",{class:"text-sm text-gray-500 dark:text-gray-400"}," Email and WhatsApp a payment link. The tab stays open until it is paid. ",-1))],2),e("button",{onClick:o[2]||(o[2]=f=>a.action="void"),class:T(["p-4 rounded-lg border-2 transition-all text-left",a.action==="void"?"border-red-500 bg-red-50 dark:bg-red-900/20":"border-gray-200 dark:border-gray-600 hover:border-gray-300 dark:hover:border-gray-500"])},[e("div",it,[e("div",{class:T(["w-10 h-10 rounded-full flex items-center justify-center",a.action==="void"?"bg-red-100 dark:bg-red-800":"bg-gray-100 dark:bg-gray-700"])},[m(g(we),{class:T(["size-5",a.action==="void"?"text-red-600 dark:text-red-400":"text-gray-500 dark:text-gray-400"])},null,8,["class"])],2),o[16]||(o[16]=e("span",{class:"font-medium dark:text-gray-100"},"Void",-1))]),o[17]||(o[17]=e("p",{class:"text-sm text-gray-500 dark:text-gray-400"}," Void this tab without recording payment ",-1))],2)]),a.action==="pay_now"?(l(),i("div",ut,[o[19]||(o[19]=e("label",{class:"block text-sm font-medium dark:text-gray-200"}," Payment Method ",-1)),m(te,{modelValue:a.payment_method,"onUpdate:modelValue":o[3]||(o[3]=f=>a.payment_method=f),placeholder:"Select payment method",error:h.payment_method,size:"sm"},{default:b(()=>
6[(l(!0),i($,null,N(g(V),f=>(l(),q(E,{value:f.id,key:f.id},{default:b(()=>[k(u(f.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","error"]),e("div",mt,[D(e("input",{type:"checkbox","onUpdate:modelValue":o[4]||(o[4]=f=>a.agree=f),id:"payment-confirm",class:"rounded border-gray-300 dark:border-gray-600"},null,512),[[ne,a.agree]]),o[18]||(o[18]=e("label",{for:"payment-confirm",class:"text-sm text-gray-600 dark:text-gray-400"}," I confirm that payment has been received ",-1))])])):_("",!0),a.action==="send_invoice"?(l(),i("div",ct,[o[20]||(o[20]=e("p",{class:"text-sm text-gray-600 dark:text-gray-400"}," The guest gets a link that shows the tab as it is now and works for 4 hours. The tab closes itself when it is paid; while the guest has the link open, nothing can be added or taken off it. ",-1)),D(e("input",{type:"email","onUpdate:modelValue":o[5]||(o[5]=f=>a.email=f),placeholder:"Email",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg text-sm dark:bg-gray-800 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-dinesurf-green-500 focus:border-transparent"},null,512),[[J,a.email]]),D(e("input",{type:"tel","onUpdate:modelValue":o[6]||(o[6]=f=>a.phone=f),placeholder:"WhatsApp number",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg text-sm dark:bg-gray-800 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-dinesurf-green-500 focus:border-transparent"},null,512),[[J,a.phone]])])):_("",!0),a.action==="void"?(l(),i("div",gt,[o[22]||(o[22]=e("label",{class:"block text-sm font-medium dark:text-gray-200"}," Reason for Voiding (Optional) ",-1)),D(e("input",{type:"text","onUpdate:modelValue":o[7]||(o[7]=f=>a.void_reason=f),placeholder:"e.g., Customer left without paying",class:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg text-sm dark:bg-gray-800 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent"},null,512),[[J,a.void_reason]]),e("div",ft,[D(e("input",{type:"checkbox","onUpdate:modelValue":o[8]||(o[8]=f=>a.void_agree=f),id:"void-confirm",class:"rounded border-gray-300 dark:border-gray-600"},null,512),[[ne,a.void_agree]]),o[21]||(o[21]=e("label",{for:"void-confirm",class:"text-sm text-gray-600 dark:text-gray-400"}," I confirm that I want to void this tab ",-1))])])):_("",!0),e("div",yt,[m(O,{variant:"light",onClick:o[9]||(o[9]=f=>C("update:modelValue",!1))},{default:b(()=>[...o[23]||(o[23]=[k(" Cancel ",-1)])]),_:1}),m(O,{disabled:!v.value,loading:w.loading,onClick:z},{default:b(()=>[k(u(a.action==="pay_now"?"Record Payment":a.action==="send_invoice"?"Send bill":"Void Tab"),1)]),_:1},8,["disabled","loading"])])])]),_:1})]),_:1},8,["modelValue"]))}}),bt={class:"h-full flex flex-col"},vt={class:"mb-6 flex items-center justify-between"},xt={class:"flex items-center gap-3"},kt={class:"free description"},_t={class:"flex items-center gap-2"},ht={key:0,class:"flex-1 flex flex-col lg:flex-row gap-6"},$t={class:"flex-1 bg-white dark:bg-gray-700/30 rounded-lg border dark:border-gray-600"},wt={key:0,class:"divide-y dark:divide-gray-600"},Ct={class:"flex-1"},Vt={class:"font-medium dark:text-gray-100"},It={class:"text-sm text-gray-500 dark:text-gray-400"},Tt={key:0,class:"text-xs text-gray-400 dark:text-gray-500 mt-1"},zt={class:"flex items-center gap-4"},Nt={class:"flex items-center gap-2"},jt=["onClick","disabled"],Mt={class:"w-8 text-center font-medium dark:text-gray-200"},At=["onClick","disabled"],St={class:"font-medium dark:text-gray-200 w-24 text-right"},Ut=["onClick","disabled"],Lt={key:1,class:"p-8 text-center"},Ot={class:"lg:w-80"},Bt={class:"bg-white dark:bg-gray-700/30 rounded-lg border dark:border-gray-600 p-4 sticky top-4"},Pt={class:"space-y-2 mb-4"},Dt={class:"flex justify-between text-sm"},Et={class:"dark:text-gray-200"},qt={class:"text-gray-500 dark:text-gray-400"},Rt={class:"dark:text-gray-200"},Ft={key:1,class:"flex justify-between text-sm"},Wt={class:"dark:text-gray-200"},Yt={key:2,class:"flex justify-between text-sm"},Qt={class:"text-dinesurf-green-600 dark:text-dinesurf-green-400"},Xt={class:"border-t dark:border-gray-600 pt-4 mb-6"},Zt={class:"flex justify-between"},Gt={class:"font-medium dark:text-gray-200"},Ht={class:"font-semibold text-lg text-dinesurf-green-600 dark:text-dinesurf-green-400"},Jt={key:0,class:"mb-4 p-3 rounded-lg bg-amber-50 dark:bg-amber-900/20 text-sm"},Kt={class:"text-amber-700 dark:text-amber-300 mt-1"},ea=["disabled"],ta={class:"space-y-2"},aa={class:"mt-6 pt-4 border-t dark:border-gray-600"},sa={class:"space-y-1 text-sm"},ra={class:"dark:text-gray-300"},oa={key:0,class:"dark:text-gray-300"},da={key:1,class:"dark:text-gray-300"},na={key:1,class:"h-full flex items-center justify-center"},xa=se({__name:"OpenTab",setup(B){const j=le(),w=ke(),C=_e(),{$toast:a}=ue(),h=U(()=>Number(w.params.id)),r=A(null),V=A(!1),I=A(!1),v=U(()=>r.value?r.value.table_number?`Table ${r.value.table_number}`:r.value.name?r.value.name:`Order #${r.value.id}`:"Loading..."),z=U(()=>r.value?r.value.items.reduce((n,t)=>n+o(t),0):0),c=U(()=>r.value?Number(r.value.deposit_credit||0):0);function o(n){var d;const t=Number(n.price)*n.quantity,s=((d=n.modifiers)==null?void 0:d.reduce((y,x)=>y+Number(x.option_price),0))||0;return t+s*n.quantity}const{state:f,execute:re}=S({fire:"immediately",action:async()=>j.order.getOpenTab(h.value),onSuccess:n=>{r.value=n.data},onError:n=>{a.error(n.message||"Unable to fetch tab.")}}),{state:L,execute:R}=S({fire:"on-demand",onError:a.error,action:async(n,t)=>{const s=await j.order.updateTabItem(h.value,n,{quantity:t});return r.value=s.data.order,s}}),{state:X,execute:Z}=S({fire:"on-demand",onError:a.error,action:async n=>{const t=await j.order.removeTabItem(h.value,n);return r.value=t.data.order,a.success("Item removed"),t}}),{state:F,execute:G}=S({fire:"on-demand",onError:a.error,action:async n=>{var s;const t=await j.order.closeTab(h.value,n);return I.value=!1,n.action==="send_invoice"||n.action==="cancel_bill"?(r.value=t.data.order,a.success(n.action==="send_invoice"?`Bill sent to ${(((s=t.data.bill)==null?void 0:s.sent_to)||[]).join(" and ")}`:"Bill cancelled"),t):(a.success(n.action==="pay_now"?"Tab closed and payment recorded":"Tab voided successfully"),C.push({name:"dashboard.orders.open-tabs"}),t)}});async function W(n,t){if(t<1){Y(n);return}await R(n.id,t)}async function Y(n){await Z(n.id)}function H(n){r.value=n,V.value=!1,a.success("Items added to tab")}async function P(n){await G(n)}return(n,t)=>{var s,d,y;return l(),i("div",bt,[e("div",vt,[e("div",xt,[e("button",{onClick:t[0]||(t[0]=x=>g(C).push({name:"dashboard.orders.open-tabs"})),class:"p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors"},[m(g(Ve),{class:"size-5 dark:text-gray-300"})]),e("div",null,[e("h3",null,u(v.value),1),e("p",kt,u((s=r.value)==null?void 0:s.order_type)+" order",1)])]),e("div",_t,[m(O,{variant:"light",size:"sm",onClick:t[1]||(t[1]=x=>V.value=!0)},{default:b(()=>[m(g(ae),{class:"size-4 mr-1"}),t[6]||(t[6]=k(" Add Items ",-1))]),_:1})])]),m(ce,{"loading-class":"h-full flex-1",loading:n.$u.isLoading(g(f))},{default:b(()=>{var x,M,Q;return[r.value?(l(),i("div",ht,[e("div",$t,[t[8]||(t[8]=e("div",{class:"p-4 border-b dark:border-gray-600"},[e("h4",{class:"font-medium dark:text-gray-200"},"Items")],-1)),r.value.items.length?(l(),i("div",wt,[(l(!0),i($,
6null,N(r.value.items,p=>(l(),i("div",{key:p.id,class:"p-4 flex items-center justify-between"},[e("div",Ct,[e("p",Vt,u(p.name),1),e("p",It,u(n.$u.formatCurrency(Number(p.price)))+" each ",1),p.modifiers&&p.modifiers.length?(l(),i("p",Tt," + "+u(p.modifiers.map(g(Ce)).join(", ")),1)):_("",!0)]),e("div",zt,[e("div",Nt,[e("button",{onClick:()=>W(p,p.quantity-1),disabled:n.$u.isLoading(g(L)),class:"p-1 rounded-md hover:bg-gray-100 dark:hover:bg-gray-600 disabled:opacity-50"},[m(g(ge),{class:"size-4 dark:text-gray-300"})],8,jt),e("span",Mt,u(p.quantity),1),e("button",{onClick:()=>W(p,p.quantity+1),disabled:n.$u.isLoading(g(L)),class:"p-1 rounded-md hover:bg-gray-100 dark:hover:bg-gray-600 disabled:opacity-50"},[m(g(ae),{class:"size-4 dark:text-gray-300"})],8,At)]),e("p",St,u(n.$u.formatCurrency(o(p))),1),e("button",{onClick:()=>Y(p),disabled:n.$u.isLoading(g(X)),class:"p-1 rounded-md text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 disabled:opacity-50"},[m(g(Ie),{class:"size-4"})],8,Ut)])]))),128))])):(l(),i("div",Lt,[...t[7]||(t[7]=[e("p",{class:"text-gray-500 dark:text-gray-400"},"No items in this tab",-1)])]))]),e("div",Ot,[e("div",Bt,[t[18]||(t[18]=e("h4",{class:"font-medium dark:text-gray-200 mb-4"},"Summary",-1)),e("div",Pt,[e("div",Dt,[t[9]||(t[9]=e("span",{class:"text-gray-500 dark:text-gray-400"},"Subtotal",-1)),e("span",Et,u(n.$u.formatCurrency(z.value)),1)]),(M=(x=r.value.transaction)==null?void 0:x.taxes)!=null&&M.length?(l(!0),i($,{key:0},N(r.value.transaction.taxes,p=>(l(),i("div",{key:p.id,class:"flex justify-between text-sm"},[e("span",qt,u(p.name),1),e("span",Rt,u(n.$u.formatCurrency(Number(p.amount))),1)]))),128)):_("",!0),r.value.delivery_price&&Number(r.value.delivery_price)>0?(l(),i("div",Ft,[t[10]||(t[10]=e("span",{class:"text-gray-500 dark:text-gray-400"},"Delivery",-1)),e("span",Wt,u(n.$u.formatCurrency(Number(r.value.delivery_price))),1)])):_("",!0),c.value>0?(l(),i("div",Yt,[t[11]||(t[11]=e("span",{class:"text-gray-500 dark:text-gray-400"},"Deposit Credit",-1)),e("span",Qt,"-"+u(n.$u.formatCurrency(c.value)),1)])):_("",!0)]),e("div",Xt,[e("div",Zt,[e("span",Gt,u(c.value>0?"Balance Due":"Total"),1),e("span",Ht,u(n.$u.formatCurrency(Number(r.value.amount))),1)])]),r.value.bill?(l(),i("div",Jt,[t[12]||(t[12]=e("p",{class:"font-medium text-amber-800 dark:text-amber-200"}," Bill sent · waiting for payment ",-1)),e("p",Kt,[k(u(n.$u.formatCurrency(Number(r.value.bill.grand_total)))+" ",1),(Q=r.value.bill.resource_metadata)!=null&&Q.expires_at?(l(),i($,{key:0},[k(" · link works until "+u(n.$u.formatDate(r.value.bill.resource_metadata.expires_at,"h:mm a")),1)],64)):_("",!0)]),e("button",{class:"mt-2 text-sm underline text-amber-800 dark:text-amber-200 disabled:opacity-50",disabled:n.$u.isLoading(g(F)),onClick:t[2]||(t[2]=p=>P({action:"cancel_bill"}))}," Cancel bill ",8,ea)])):_("",!0),e("div",ta,[m(O,{class:"w-full",onClick:t[3]||(t[3]=p=>I.value=!0),disabled:!r.value.items.length},{default:b(()=>[...t[13]||(t[13]=[k(" Close Tab ",-1)])]),_:1},8,["disabled"])]),e("div",aa,[t[17]||(t[17]=e("p",{class:"text-xs text-gray-500 dark:text-gray-400 mb-2"}," Tab Info ",-1)),e("div",sa,[e("p",ra,[t[14]||(t[14]=e("span",{class:"text-gray-500 dark:text-gray-400"},"Created:",-1)),k(" "+u(n.$u.formatDate(r.value.created_at,"MMM D, YYYY h:mm a")),1)]),r.value.table_number?(l(),i("p",oa,[t[15]||(t[15]=e("span",{class:"text-gray-500 dark:text-gray-400"},"Table:",-1)),k(" "+u(r.value.table_number),1)])):_("",!0),r.value.name?(l(),i("p",da,[t[16]||(t[16]=e("span",{class:"text-gray-500 dark:text-gray-400"},"Customer:",-1)),k(" "+u(r.value.name),1)])):_("",!0)])])])])])):(l(),i("div",na,[...t[19]||(t[19]=[e("p",{class:"text-gray-500 dark:text-gray-400"},"Tab not found",-1)])]))]}),_:1},8,["loading"]),m(rt,{modelValue:V.value,"onUpdate:modelValue":t[4]||(t[4]=x=>V.value=x),"order-id":h.value,onItemsAdded:H},null,8,["modelValue","order-id"]),m(pt,{modelValue:I.value,"onUpdate:modelValue":t[5]||(t[5]=x=>I.value=x),"order-id":h.value,email:(d=r.value)==null?void 0:d.email,phone:(y=r.value)==null?void 0:y.phone,loading:n.$u.isLoading(g(F)),onCloseTab:P},null,8,["modelValue","order-id","email","phone","loading"])])}}});
6export{xa as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.