1import{_ as N}from"./Modify.vue_vue_type_script_setup_true_lang.js";import{d as A,u as z,a as B,b as f,e as v,f as o,A as r,a1 as G,c as F,z as j,r as V,o as d,g as s,i as n,Z as p,j as _,F as y,n as k,aQ as I,m as P,s as x,t as D,l as q}from"./index.js";import{_ as Q,a as R}from"./Option.vue_vue_type_script_setup_true_lang.js";import{_ as Z}from"./Textarea.vue_vue_type_script_setup_true_lang.js";import{_ as H}from"./PhoneInput.vue_vue_type_script_setup_true_lang.js";import"./PhoneInput.vue_vue_type_style_index_0_lang.js";import{_ as J}from"./CreateSelectInput.vue_vue_type_script_setup_true_lang.js";import{_ as K}from"./Loading.vue_vue_type_style_index_0_lang.js";import{s as M}from"./sources.js";import{_ as O}from"./DayMonthInput.vue_vue_type_script_setup_true_lang.js";import{P as W}from"./plus2.js";import"./back-short.js";import"./plus.js";import"./months.js";const X={class:"dark:bg-gray-800 p-5 sm:gap-8 gap-5 flex sm:flex-row flex-col rounded-lg border dark:border-gray-700 bg-dinesurf-grey-default"},Y={class:"flex flex-col w-full gap-5"},ee={class:"flex flex-col w-full gap-5"},ae={class:"w-full dark:bg-gray-800 py-4 overflow-hidden border dark:border-gray-600"},te={key:0,class:"text-center"},le=["onClick"],se={class:"flex flex-row items-end gap-2.5"},oe={class:"w-full"},xe=A({__name:"EditGuest",setup(ne){const b=G(),{$toast:u}=F(),m=z(),g=V(""),h=B(),c=V([]),w=M,e=j({first_name:"",last_name:"",email:"",phone:"",general_notes:"",birthday:null,source:"",tags:[]}),$=P(()=>(e.tags??[]).map(a=>a.name)),{state:S}=f({fire:"immediately",action:()=>m.guestbook.getGuest(Number(b.params.id)),onSuccess:a=>{e.first_name=a.data.guest.first_name,e.last_name=a.data.guest.last_name,e.email=a.data.guest.email,e.phone=a.data.guest.phone,e.general_notes=a.data.general_notes,e.birthday=a.data.guest.birthday,e.source=a.data.source,e.tags=a.data.tags},onError:a=>{u.error(a.message||"Unable to fetch guest details")}}),{execute:U}=f({fire:"immediately",action:()=>m.guestbook.getTags(),onSuccess:a=>{c.value=Array.isArray(a.data)?a.data.map(t=>({id:t.id,name:t.name})):[]},onError:a=>{u.error(a.message||"Unable to fetch tags")}}),{state:C,execute:T}=f({onError:u.error,action:async()=>{var a;return m.guestbook.updateGuest(Number(b.params.id),{...e,tags:((a=e.tags)==null?void 0:a.map(t=>t.id))??[]})},onSuccess:()=>u.success("Updated successfully")}),E=a=>{e.tags||(e.tags=[]);const t=e.tags.findIndex(l=>l.id===a.id);t!==-1?e.tags.splice(t,1):e.tags.push(a)},{execute:L}=f({action:async()=>m.guestbook.createTag({vendor_id:h.vendor.id,name:g.value}),onSuccess:a=>{var t;(t=a.data)!=null&&t.id&&(e.tags||(e.tags=[]),c.value=[...c.value,{id:a.data.id,name:a.data.name}],e.tags.push({id:a.data.id,name:a.data.name}),g.value=""),U()},onError:u.error});return(a,t)=>(d(),v(K,{loading:a.$u.isLoading(r(S))},{default:o(()=>[s(N,{title:"Edit Guest",to:{name:"dashboard.guestbook.index"},label:"guestbook",description:"Enter the guest details below"},{button:o(()=>[s(x,{size:"sm",onClick:t[0]||(t[0]=()=>r(T)()),loading:a.$u.isLoading(r(C))},{default:o(()=>[...t[9]||(t[9]=[q(" Save guest ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n("section",X,[n("div",Y,[s(p,{label:"First name",modelValue:e.first_name,"onUpdate:modelValue":t[1]||(t[1]=l=>e.first_name=l)},null,8,["modelValue"]),s(p,{label:"Last name",modelValue:e.last_name,"onUpdate:modelValue":t[2]||(t[2]=l=>e.last_name=l)},null,8,["modelValue"]),s(H,{label:"Phone number",modelValue:e.phone,"onUpdate:modelValue":t[3]||(t[3]=l=>e.phone=l)},null,8,["modelValue"]),s(p,{label:"Email",modelValue:e.email,"onUpdate:modelValue":t[4]||(t[4]=l=>e.email=l)},null,8,["modelValue"]),s(O,{label:"Date of Birth",modelValue:e.birthday,"onUpdate:modelValue":t[5]||(t[5]=l=>e.birthday=l)},null,8,["modelValue"])]),n("div",ee,[s(Z,{placeholder:"e.g Allergic to shrimps",label:"Notes",modelValue:e.general_notes,"onUpdate:modelValue":t[6]||(t[6]=l=>e.general_notes=l)},null,8,["modelValue"]),s(Q,{label:"Source",class:"w-full",modelValue:e.source,"onUpdate:modelValue":t[7]||(t[7]=l=>e.source=l)},{default:o(()=>[(d(!0),_(y,null,k(r(w),(l,i)=>(d(),v(R,{key:l.value,index:i,option:{...l,label:r(I)(l.value)},listboxId:"reservation-source",isSelected:e.source===l.value,onClick:ie=>e.source=l.value},null,8,["index","option","isSelected","onClick"]))),128))]),_:1},8,["modelValue"]),s(J,{label:"Tags",placeholder:"Select tags","button-text":"Create tags",options:c.value,ref:"tagInput",modelValue:$.value.join(", ")},{options:o(({options:l})=>[n("div",ae,[l.length==0?(d(),_("div",te,"No tags found")):(d(!0),_(y,{key:1},k(l,i=>(d(),_("div",{class:"flex flex-row dark:hover:bg-gray-900/40 justify-between items-center gap-5 py-2.5 px-5",key:i,onClick:()=>E(i)},D(i.name),9,le))),128))])]),default:o(({close:l})=>[n("div",null,[n("div",se,[n("div",oe,[s(p,{size:"sm",label:"Tag",class:"w-full",modelValue:g.value,"onUpdate:modelValue":t[8]||(t[8]=i=>g.value=i)},null,8,["modelValue"])]),n("div",null,[s(x,{size:"sm",variant:"light",class:"w-full !rou
1nded-full !p-2 aspect-square",onClick:()=>{r(L)(),l()}},{default:o(()=>[s(r(W),{class:"w-6 h-6 text-dinesurf-green-600"})]),_:1},8,["onClick"])])])])]),_:1},8,["options","modelValue"])])])]),_:1})]),_:1},8,["loading"]))}});export{xe 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.