1import{d as He,a as Je,z as Ke,J as Qe,u as We,o as Xe,b as Ye,c as n,l as t,h as i,q as re,_ as Ze,t as b,e as g,v as et,p as x,g as f,F as T,r as P,a5 as tt,L as V,a3 as S,a7 as ue,a8 as at,B as m,R as w,aa as Y,an as lt,ao as st,a9 as ot,k as Z,i as de,x as nt,f as it,j as o}from"./CO-mOBGH.js";import{u as rt}from"./Digangeb.js";import{u as ut}from"./BSFV989u.js";import{V as ce}from"./DU0y8vAW.js";import{_ as ve}from"./CSsMInbk.js";import{_ as I}from"./DTMsOJTh.js";import{V as ee}from"./BAKxPZVF.js";import{_ as dt}from"./BfY6_Vq0.js";const ct={class:"travel-page"},vt={key:0,class:"flex flex-col items-center justify-center py-20"},pt={key:1},mt={key:0},ft={class:"travel-detail-header"},bt={class:"flex-1 min-w-0"},yt={class:"travel-detail-subtitle"},ht={key:0,class:"travel-header-actions"},_t={class:"travel-detail-content"},gt={class:"travel-section"},kt={class:"travel-section-header"},xt={class:"travel-section-body"},wt={class:"travel-info-grid"},Dt={class:"travel-info-item"},Ct={class:"travel-info-value"},Vt={class:"travel-info-item"},At={class:"travel-info-value travel-info-destination"},St={key:0,class:"travel-info-item"},Et={class:"travel-info-value"},$t={key:1,class:"travel-info-item"},Tt={class:"travel-info-value"},Pt={class:"travel-section"},jt={class:"travel-section-header"},Ut={class:"travel-section-body"},Ot={key:0,class:"text-gray-700 text-sm leading-relaxed"},Nt={key:1,class:"travel-empty-state"},It={class:"travel-section"},Lt={class:"travel-section-header"},qt={class:"travel-section-body"},Mt={key:0,class:"text-gray-700 text-sm leading-relaxed"},Bt={key:1,class:"travel-empty-state"},Ft={class:"travel-section"},Rt={class:"travel-section-header"},zt={class:"travel-section-body"},Gt={key:0,class:"space-y-2"},Ht={class:"flex items-center gap-2 min-w-0 flex-1"},Jt=["href"],Kt=["onClick","disabled"],Qt={key:0},Wt={key:1,class:"animate-spin"},Xt={key:1,class:"travel-empty-state"},Yt={key:0,class:"travel-section"},Zt={class:"travel-section-header"},ea={class:"travel-section-body"},ta={class:"flex items-center justify-between gap-3 flex-wrap"},aa={key:1,class:"travel-section"},la={class:"travel-section-header"},sa={class:"travel-section-body"},oa={key:0,class:"space-y-3"},na={class:"travel-option-bloc-header"},ia={class:"flex items-center gap-2"},ra={class:"font-medium text-sm text-gray-700"},ua={class:"flex items-center gap-1"},da=["onClick"],ca=["onClick"],va={class:"p-4"},pa={class:"grid grid-cols-1 md:grid-cols-3 gap-2"},ma={class:"text-sm text-gray-700"},fa={class:"text-sm font-semibold text-travel"},ba={key:1,class:"travel-empty-state"},ya={class:"travel-section"},ha={class:"travel-section-header"},_a={class:"travel-section-body"},ga={key:0,class:"space-y-3"},ka={class:"travel-participant-card"},xa={class:"flex flex-col md:flex-row md:items-center md:justify-between gap-3"},wa={class:"flex items-center gap-3 min-w-0"},Da=["src","alt"],Ca={key:1,class:"travel-participant-avatar"},Va={class:"min-w-0"},Aa={class:"flex items-center gap-2 flex-wrap"},Sa={class:"font-medium text-gray-800"},Ea={key:0,class:"text-xs text-gray-400 mt-0.5"},$a={key:1,class:"flex flex-wrap gap-1 mt-1"},Ta={key:0,class:"flex items-center gap-2 flex-shrink-0"},Pa={key:1,class:"travel-empty-state"},ja={key:2,class:"travel-add-participants"},Ua={class:"travel-add-participants-header"},Oa={key:0,class:"travel-empty-state"},Na={class:"flex items-start gap-3"},Ia={class:"flex-1"},La=["onClick"],qa={key:0,class:"mt-3"},Ma={key:1,class:"flex justify-end mt-4"},Ba={type:"submit",class:"travel-btn-submit"},Fa={key:0,class:"travel-modal-backdrop"},Ra={class:"travel-modal"},za={class:"travel-modal-header"},Ga={class:"travel-modal-body"},Ha={class:"mb-4"},Ja={class:"mb-4"},Ka={class:"mb-4"},Qa={class:"mt-4"},Wa={class:"travel-checkbox-label"},Xa={class:"travel-modal-footer"},Ya=["disabled"],Za={key:0},el={key:1,class:"flex items-center gap-2"},tl={key:1,class:"travel-modal-backdrop"},al={class:"travel-modal travel-modal--sm"},ll={class:"travel-modal-header"},sl={class:"w-10 h-10 rounded-full bg-red-50 flex items-center justify-center"},ol={class:"travel-modal-footer"},nl={key:2,class:"travel-modal-backdrop"},il={class:"travel-modal travel-modal--sm"},rl={class:"travel-modal-header"},ul={class:"travel-modal-body"},dl={class:"travel-checkbox-label"},cl={key:0,class:"text-xs text-gray-500 mt-1"},vl={class:"travel-modal-footer"},pl=["disabled"],ml={key:0},fl={key:1,class:"flex items-center gap-2"},bl={key:3,class:"travel-modal-backdrop"},yl={class:"travel-modal travel-modal--lg"},hl={class:"travel-modal-header"},_l={class:"travel-modal-body"},gl={class:"mb-4"},kl={class:"mb-3"},xl={class:"flex items-center justify-between mb-3"},wl={key:0,class:"travel-empty-state"},Dl={class:"flex-1"},Cl=["onUpdate:modelValue","placeholder"],Vl={class:"w-28"},Al=["onUpdate:modelValue"],Sl=["onClick"],El={class:"travel-modal-footer"},$l=["disabled"],Tl={key:0},Pl={key:1,class:"flex items-center gap-2"},jl={key:1,class:"travel-detail-content"},Ul={class:"travel-section"},Ol={class:"travel-section-body"},Nl={class:"travel-empty-state"},Hl=He({__name:"index",setup(Il){const pe=Je(),y=Ke(),D=ut(),te=Qe(),me=We(),{travelPaymentBadge:H}=rt(),fe=Z(()=>D.hasPermission("user.is_webmaster")||D.hasPermission("accountancy_view")),C=m([]),r=m(null),J=m(!1),k=Z(()=>pe.params.id),be=Z(()=>{const l=te.getUser?.id;return l==null?!1:(r.value?.participants||[]).some(e=>e.user.id==l)});function ye(l){const e=te.getUser?.id;return`/app/travel/${k.value}/${e!=null&&l.id==e?"me":l.token}`}const j=m([]),E=m(null),K=m(!1),Q=m(!1),L=m(!1),h=m({name:"",file:null,signature:!1}),U=m(!1),$=m(null),W=m(!1),X=m(!1),q=m(!1),M=m(!1),B=m(!1),F=m(!1),d=m({title:"",destination:"",departureDate:null,returnDate:null,description:"",comment:"",depositDueDate:null,displayDate:!0}),A=async()=>{try{J.value=!0;const l=await w(`/api/travel/travel/${k.value}`,{method:"GET"});return l?r.value=l:(r.value=null,y.add({title:"Erreur",description:"Aucune donnée utilisateur trouvée",icon:"material-symbols:error",color:"red"})),l}catch(l){return console.error("Erreur lors du chargement des données utilisateur:",l),r.value=null,y.add({title:"Erreur",description:"Impossible de charger les données utilisateur",icon:"material-symbols:error",color:"red"}),null}finally{J.value=!1}},he=()=>{C.value.push({id:Date.now().toString()+Math.random().toString(36).slice(2),value:null,label:"Club",options:j.value.length?[...j.value]:[],userOptions:[],userValue:null,usersLoading:!1})},_e=l=>{const e=C.value.findIndex(s=>s.id===l);e!==-1&&C.value.splice(e,1)},ge=(l,e)=>{const v=(a=>a==null?a:Array.isArray(a)?a.map(u=>u&&typeof u=="object"&&"value"in u?u.value:u):typeof a=="object"&&"value"in a?a.value:a)(e);if(v!=null&&!(Array.isArray(v)&&v.length===0)){const a=Array.isArray(v)?v[0]:v;ke(l,a)}else{const a=C.value.find(u=>u.id===l);a&&(a.userOptions=[],a.userValue=null)}},ke=async(l,e)=>{const s=C.value.find(v=>v.id===l);if(s){s.usersLoading=!0;try{const v=await w(`/api/travel/user/${e}`,{method:"GET"});let a;Array.isArray(v)?a=v:Array.isArray(v?.data)?a=v.data:v&&typeof v=="object"&&!Array.isArray(v)?a=Object.entries(v).map(([u,p])=>({id:u,name:p})):a=[],s.userOptions=a.map(u=>({label:u.name??u.username??`User ${u.id}`,value:u.id??u.value??u})),s.userValue!=null&&((Array.isArray(s.userValue)?s.userValue.every(p=>s.userOptions.some(c=>c.value==p)):s.userOptions.some(p=>p.value==s.userValue))||(s.userValue=null))}catch(v){console.error("Erreur chargement users pour club",e,v),s.userOptions=[]}finally{s.usersLoading=!1}}},xe=async()=>{try{const l=await w("/api/club/all",{method:"GET"});let e;Array.isArray(l)?e=l:Array.isArray(l.data)?e=l.data:Array.isArray(l.clubs)?e=l.clubs:e=[],j.value=e.map(s=>({label:s.name??`Club ${s.id}`,value:s.token}
1)),C.value.forEach(s=>{(!s.options||s.options.length===0)&&(s.options=[...j.value])})}catch(l){console.error("Erreur chargement clubs:",l),j.value=[]}};function ae(l){if(l==null||l==="")return"";const e=l instanceof Date?l:new Date(l);return Number.isNaN(e.getTime())?String(l):e.toLocaleDateString()}function we(l){if(l==null||l==="")return"";const e=Number(String(l).replace(",","."));return Number.isNaN(e)?String(l):e.toFixed(2)+" â¬"}function De(){h.value={name:"",file:null,signature:!1},Q.value=!0}function le(){Q.value=!1}async function Ce(){if(!h.value.file){y.add({title:"Erreur",description:"Veuillez sélectionner un fichier",color:"red",icon:"material-symbols:error"});return}const l=r.value?.participants||[];if(h.value.signature&&l.length===0){y.add({title:"Aucun participant",description:"Un document à signer se rattache aux participants : ajoutez-en au moins un.",color:"red",icon:"material-symbols:error"});return}L.value=!0;try{const e=()=>{const s=new FormData;return s.append("document[file]",h.value.file),s.append("document[name]",h.value.name||h.value.file.name),s};h.value.signature?await Promise.all(l.map(s=>w(`/api/travel/participants/${k.value}/${s.user.token}/documents`,{method:"POST",data:e()}))):await w(`/api/travel/travel/${k.value}/documents`,{method:"POST",data:e()}),await A(),y.add({title:"Succès",description:"Document ajouté",color:"green",icon:"material-symbols:check"}),le()}catch(e){console.error(e),y.add({title:"Erreur",description:"Impossible d'ajouter le document",color:"red",icon:"material-symbols:error"})}finally{L.value=!1}}const R=m(null);function Ve(l){$.value={message:"Confirmer la suppression de ce document ?",action:()=>Ee(l)}}function Ae(l){$.value={message:"Confirmer la suppression de ce bloc d'options ?",action:()=>Oe(l)}}async function Se(){const l=$.value;if(l){W.value=!0;try{await l.action()}finally{W.value=!1,$.value=null}}}async function Ee(l){if(k.value)try{R.value=l,await w(`/api/travel/travel/${k.value}/document/${l}`,{method:"DELETE"}),await A(),y.add({title:"Succès",description:"Document supprimé",color:"green",icon:"material-symbols:check"})}catch(e){console.error(e),y.add({title:"Erreur",description:"Impossible de supprimer le document",color:"red",icon:"material-symbols:error"})}finally{R.value=null}}const z=m(!1),G=m(!1),se=()=>Date.now().toString()+Math.random().toString(36).slice(2),_=m({title:"",kind:"multiple",options:[]});function $e(){_.value={title:"",kind:"multiple",options:[]},E.value=null,z.value=!0}function Te(l){const e=(l.bloc||[]).map(s=>({id:se(),label:String(s.title??""),amount:Number.isFinite(Number(s.amount))?Number(s.amount):parseFloat(String(s.amount))||0}));_.value={title:l.title??"",kind:l.kind==="unique"?"unique":"multiple",options:e},E.value=l.id,z.value=!0}function oe(){z.value=!1}function Pe(){_.value.options.push({id:se(),label:"",amount:0})}function je(l){const e=_.value.options.findIndex(s=>s.id===l);e!==-1&&_.value.options.splice(e,1)}async function Ue(){if(!_.value.title||_.value.options.length===0){y.add({title:"Erreur",description:"Titre et au moins une option requis",color:"red",icon:"material-symbols:error"});return}G.value=!0;try{const l=new FormData;l.append("option[title]",_.value.title),l.append("option[kind]",_.value.kind),_.value.options.forEach(e=>{e.label&&String(e.label).trim()!==""&&(l.append("option[title_bloc][]",e.label),l.append("option[amount_bloc][]",String(e.amount??0)))}),E.value!==null&&l.append("option[id]",String(E.value)),await w(`/api/travel/travel/${k.value}/option`,{method:"POST",data:l}),await A(),oe(),E.value=null}catch(l){console.error(l)}finally{G.value=!1}}async function Oe(l){if(k.value)try{await w(`/api/travel/travel/${k.value}/option/${l}`,{method:"DELETE"}),await A(),y.add({title:"Succès",description:"Bloc supprimé",color:"green",icon:"material-symbols:check"})}catch(e){console.error(e),y.add({title:"Erreur",description:"Impossible de supprimer le bloc",color:"red",icon:"material-symbols:error"})}}function Ne(){r.value&&(d.value={title:r.value.title??"",destination:r.value.destination??"",departureDate:r.value.departureDate?new Date(r.value.departureDate):null,returnDate:r.value.returnDate?new Date(r.value.returnDate):null,description:r.value.description??"",comment:r.value.comment??"",depositDueDate:r.value.depositDueDate?new Date(r.value.depositDueDate):null,displayDate:r.value.displayDate!==!1},X.value=!0)}function ne(){X.value=!1}async function Ie(){if(r.value){if(!d.value.title.trim()||!d.value.destination.trim()){y.add({title:"Erreur",description:"Nom et destination sont obligatoires",color:"red",icon:"material-symbols:error"});return}if(!d.value.departureDate||!d.value.returnDate||!d.value.depositDueDate){y.add({title:"Erreur",description:"Les trois dates sont obligatoires",color:"red",icon:"material-symbols:error"});return}q.value=!0;try{const l=new FormData;l.append("travel_edit[title]",d.value.title),l.append("travel_edit[destination]",d.value.destination),l.append("travel_edit[departureDate]",Y(d.value.departureDate)),l.append("travel_edit[returnDate]",Y(d.value.returnDate)),l.append("travel_edit[description]",d.value.description||""),l.append("travel_edit[comment]",d.value.comment||""),l.append("travel_edit[depositDueDate]",Y(d.value.depositDueDate)),l.append("travel_edit[displayDate]",d.value.displayDate?"1":"0"),await w(`/api/travel/travel/${k.value}`,{method:"POST",data:l}),await A(),y.add({title:"Succès",description:"Voyage mis à jour",color:"green",icon:"material-symbols:check"}),ne()}catch(l){console.error(l),y.add({title:"Erreur",description:"Impossible de modifier le voyage",color:"red",icon:"material-symbols:error"})}finally{q.value=!1}}}function Le(l){if(!l)return!1;const e=l instanceof Date?l:lt(l);if(!e)return!1;const s=st(ot());return!!s&&e>s}function qe(){B.value=!0}function Me(){B.value=!1}async function Be(){if(k.value){F.value=!0;try{await w(`/api/travel/travel/${k.value}/delete`,{method:"DELETE"}),y.add({title:"Succès",description:"Voyage supprimé",icon:"material-symbols:check_circle",color:"green"}),me.push("/app/travel")}catch(l){console.error(l),y.add({title:"Erreur",description:"La suppression a échoué",icon:"material-symbols:error",color:"red"})}finally{F.value=!1,B.value=!1}}}const Fe=async()=>{M.value=!0;const l=new FormData;
1l.append("add_travel[travelToken]",k.value),C.value.forEach(e=>{if(e.userValue!==null&&e.userValue!==void 0&&e.userValue!==""){const v=(c=>c==null?[]:Array.isArray(c)?c.map(N=>N&&typeof N=="object"&&"value"in N?N.value:N):typeof c=="object"&&"value"in c?[c.value]:[c])(e.userValue),u=(c=>c==null?"unknown":Array.isArray(c)?c.length?c[0]&&typeof c[0]=="object"&&"value"in c[0]?c[0].value:c[0]:"unknown":typeof c=="object"&&"value"in c?c.value:c)(e.value),p=String(u).replace(/[^\w-]/g,"_")||"unknown";v.forEach(c=>l.append(`add_travel[participants][${p}][]`,String(c)))}});try{await w("/api/travel/add",{method:"POST",data:l}),y.add({title:"Succès",description:"Participants ajoutés",icon:"material-symbols:check_circle",color:"green"}),await A(),C.value=[]}catch(e){console.error(e),M.value=!1}finally{M.value=!1}},O=m(null),ie=m("");function Re(l){O.value=l.token,ie.value=`${l.first_name} ${l.last_name}`.trim(),U.value=!0}function ze(){U.value=!1,O.value=null}async function Ge(){if(O.value){K.value=!0;try{await w(`/api/travel/user/${k.value}/${O.value}`,{method:"DELETE"}),await A()}catch(l){console.error(l)}finally{K.value=!1,U.value=!1,O.value=null}}}return Xe(async()=>{await A(),await xe()}),Ye({title:"Mon voyage"}),(l,e)=>{const s=et,v=Ze;return o(),n("div",ct,[J.value?(o(),n("div",vt,[...e[17]||(e[17]=[t("div",{class:"animate-spin rounded-full h-10 w-10 border-2 border-travel border-t-transparent"},null,-1),t("p",{class:"mt-4 text-gray-400 text-sm"},"Chargement des donnees de voyage...",-1)])])):(o(),n("div",pt,[r.value?(o(),n("div",mt,[t("div",ft,[i(v,{to:"/app/travel",class:"travel-back-btn","aria-label":"Retour"},{default:re(()=>[i(s,{name:"material-symbols:arrow-back",class:"w-5 h-5"})]),_:1}),t("div",bt,[e[18]||(e[18]=t("h1",{class:"travel-detail-title"},"Voyage",-1)),t("p",yt,b(r.value.title),1)]),g(D).hasPermission("user.is_webmaster")?(o(),n("div",ht,[t("button",{type:"button",class:"travel-btn-outline",onClick:Ne},[i(s,{name:"heroicons:pencil-square",class:"w-4 h-4"}),e[19]||(e[19]=x(" Modifier ",-1))]),Le(r.value?.returnDate)?(o(),n("button",{key:0,type:"button",class:"travel-btn-danger",onClick:qe},[i(s,{name:"heroicons:trash",class:"w-4 h-4"}),e[20]||(e[20]=x(" Supprimer ",-1))])):f("",!0)])):f("",!0)]),t("div",_t,[t("div",gt,[t("div",kt,[i(s,{name:"heroicons:information-circle",class:"w-5 h-5"}),e[21]||(e[21]=t("h2",null,"Informations",-1))]),t("div",xt,[t("div",wt,[t("div",Dt,[e[22]||(e[22]=t("span",{class:"travel-info-label"},"Nom du voyage",-1)),t("span",Ct,b(r.value.title),1)]),t("div",Vt,[e[23]||(e[23]=t("span",{class:"travel-info-label"},"Destination",-1)),t("span",At,[i(s,{name:"heroicons:map-pin",class:"w-4 h-4"}),x(" "+b(r.value.destination),1)])]),r.value?.displayDate!==!1?(o(),n("div",St,[e[24]||(e[24]=t("span",{class:"travel-info-label"},"Depart",-1)),t("span",Et,b(ae(r.value?.departureDate)),1)])):f("",!0),r.value?.displayDate!==!1?(o(),n("div",$t,[e[25]||(e[25]=t("span",{class:"travel-info-label"},"Retour",-1)),t("span",Tt,b(ae(r.value?.returnDate)),1)])):f("",!0)])])]),t("div",Pt,[t("div",jt,[i(s,{name:"heroicons:document-text",class:"w-5 h-5"}),e[26]||(e[26]=t("h2",null,"Description",-1))]),t("div",Ut,[r.value?.description?(o(),n("p",Ot,b(r.value.description),1)):(o(),n("div",Nt,[i(s,{name:"heroicons:document",class:"w-8 h-8 text-gray-300"}),e[27]||(e[27]=t("p",null,"Aucune description",-1))]))])]),t("div",It,[t("div",Lt,[i(s,{name:"heroicons:chat-bubble-left-right",class:"w-5 h-5"}),e[28]||(e[28]=t("h2",null,"Commentaire",-1))]),t("div",qt,[r.value?.comment?(o(),n("p",Mt,b(r.value.comment),1)):(o(),n("div",Bt,[i(s,{name:"heroicons:chat-bubble-left",class:"w-8 h-8 text-gray-300"}),e[29]||(e[29]=t("p",null,"Aucun commentaire",-1))]))])]),t("div",Ft,[t("div",Rt,[i(s,{name:"heroicons:paper-clip",class:"w-5 h-5"}),e[31]||(e[31]=t("h2",null,"Documents",-1)),g(D).hasPermission("user.is_webmaster")?(o(),n("button",{key:0,type:"button",onClick:De,class:"ml-auto travel-btn-add"},[i(s,{name:"heroicons:plus",class:"w-4 h-4"}),e[30]||(e[30]=x(" Ajouter ",-1))])):f("",!0)]),t("div",zt,[r.value?.documents?.length?(o(),n("div",Gt,[(o(!0),n(T,null,P(r.value.documents,(a,u)=>(o(),n("div",{key:u,class:"travel-doc-row"},[t("div",Ht,[i(s,{name:"heroicons:document",class:"w-4 h-4 text-gray-400 flex-shrink-0"}),t("a",{href:a.path,target:"_blank",class:"travel-doc-link"},b(a.name||a.path),9,Jt)]),g(D).hasPermission("user.is_webmaster")?(o(),n("button",{key:0,t
1ype:"button",onClick:p=>Ve(a.id),disabled:R.value===a.id,class:"travel-btn-icon-danger"},[R.value!==a.id?(o(),n("span",Qt,[i(s,{name:"heroicons:trash",class:"w-4 h-4"})])):(o(),n("span",Wt,[i(s,{name:"heroicons:arrow-path",class:"w-4 h-4"})]))],8,Kt)):f("",!0)]))),128))])):(o(),n("div",Xt,[i(s,{name:"heroicons:document-plus",class:"w-8 h-8 text-gray-300"}),e[32]||(e[32]=t("p",null,"Aucun document",-1))]))])]),g(be)?(o(),n("div",Yt,[t("div",Zt,[i(s,{name:"heroicons:user-circle",class:"w-5 h-5"}),e[33]||(e[33]=t("h2",null,"Mon inscription",-1))]),t("div",ea,[t("div",ta,[e[34]||(e[34]=t("p",{class:"text-sm text-gray-600"},"Vous êtes inscrit à ce voyage.",-1)),i(I,{text:"Voir mon detail",color:"primary-dark",onClick:e[0]||(e[0]=()=>l.$router.push(`/app/travel/${g(k)}/me`))})])])])):f("",!0),g(D).hasPermission("user.is_webmaster")?(o(),n("div",aa,[t("div",la,[i(s,{name:"heroicons:adjustments-horizontal",class:"w-5 h-5"}),e[36]||(e[36]=t("h2",null,"Blocs d'options",-1)),t("button",{type:"button",onClick:$e,class:"ml-auto travel-btn-add"},[i(s,{name:"heroicons:plus",class:"w-4 h-4"}),e[35]||(e[35]=x(" Ajouter un bloc ",-1))])]),t("div",sa,[r.value?.options?.length?(o(),n("div",oa,[(o(!0),n(T,null,P(r.value.options,(a,u)=>(o(),n("div",{key:u,class:"travel-option-bloc"},[t("div",na,[t("div",ia,[t("span",{class:de(["travel-option-bloc-badge",a.kind==="unique"?"travel-option-bloc-badge--unique":""])},b(a.kind==="unique"?"Choix unique":"Choix multiples"),3),t("span",ra,b(a.title),1)]),t("div",ua,[t("button",{type:"button",onClick:p=>Te(a),class:"travel-btn-icon-edit"},[i(s,{name:"heroicons:pencil",class:"w-4 h-4"})],8,da),t("button",{type:"button",onClick:p=>Ae(a.id),class:"travel-btn-icon-danger"},[i(s,{name:"heroicons:trash",class:"w-4 h-4"})],8,ca)])]),t("div",va,[t("div",pa,[(o(!0),n(T,null,P(a.bloc,(p,c)=>(o(),n("div",{key:c,class:"travel-option-item"},[t("span",ma,b(p.title),1),t("span",fa,b(we(p.amount)),1)]))),128))])])]))),128))])):(o(),n("div",ba,[i(s,{name:"heroicons:squares-plus",class:"w-8 h-8 text-gray-300"}),e[37]||(e[37]=t("p",null,"Aucun bloc d'options",-1))]))])])):f("",!0),t("div",ya,[t("div",ha,[i(s,{name:"heroicons:user-group",class:"w-5 h-5"}),t("h2",null,"Participants ("+b(r.value?.participants?.length||0)+")",1)]),t("div",_a,[r.value?.participants?.length?(o(),n("div",ga,[(o(!0),n(T,null,P(r.value.participants,(a,u)=>(o(),n("div",{key:a.user.id??u},[t("div",ka,[t("div",xa,[t("div",wa,[a.user.profile_picture?(o(),n("img",{key:0,src:("useRuntimeConfig"in l?l.useRuntimeConfig:g(nt))().public.vpdivePublic+a.user.profile_picture,alt:a.user.first_name,class:"travel-participant-avatar travel-participant-avatar--img"},null,8,Da)):(o(),n("div",Ca,b((a.user.first_name||"?").charAt(0).toUpperCase()),1)),t("div",Va,[t("div",Aa,[t("span",Sa,b(a.user.first_name)+" "+b(a.user.last_name),1),a.payment_status?(o(),n("span",{key:0,class:de(["inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium",g(H)(a.payment_status).class])},[i(s,{name:g(H)(a.payment_status).icon,class:"w-3.5 h-3.5"},null,8,["name"]),x(" "+b(g(H)(a.payment_status).label),1)],2)):f("",!0)]),g(D).hasPermission("user.is_webmaster")?(o(),n("div",Ea,b(a.user.email),1)):f("",!0),g(D).hasPermission("user.is_webmaster")?(o(),n("div",$a,[(o(!0),n(T,null,P(a.user.user_club_traceability.filter(p=>p.club.unique_name!="vpdive"),(p,c)=>(o(),n("span",{key:c,class:"travel-club-badge"},b(p.club.unique_name),1))),128))])):f("",!0)])]),g(fe)?(o(),n("div",Ta,[i(I,{text:"Détail",color:"primary-dark",onClick:()=>l.$router.push(ye(a.user))},null,8,["onClick"]),g(D).hasPermission("user.is_webmaster")?(o(),it(I,{key:0,text:"Supprimer",color:"danger",onClick:()=>Re(a.user)},null,8,["onClick"])):f("",!0)])):f("",!0)])])]))),128))])):(o(),n("div",Pa,[i(s,{name:"heroicons:users",class:"w-8 h-8 text-gray-300"}),e[38]||(e[38]=t("p",null,"Aucun participant",-1))])),i(ve,{modelValue:!!$.value,title:"Confirmer la suppression",message:$.value?.message||"",confirmText:"Supprimer",cancelText:"Annuler",loading:W.value,onConfirm:Se,onCancel:e[1]||(e[1]=a=>$.value=null)},null,8,["modelValue","message","loading"]),i(ve,{modelValue:U.value,"onUpdate:modelValue":e[2]||(e[2]=a=>U.value=a),title:"Confirmer la suppression",message:`Etes-vous sur de vouloir supprimer ${ie.value||"ce participant"} ?`,confirmText:"Supprimer",cancelText:"Annuler",loading:K.value,onConfirm:e[3]||(e[3]=a=>Ge()),onCancel:ze},null,8,["modelValue","message","loading"]),g(D).hasPermission("user.is_webmaster")?(o(),n("div",ja,[t("form",{onSubmit:tt(Fe,["prevent"])},[t("div",Ua,[e[40]||(e[40]=t("h3",null,"Ajouter des participants",-1)),t("button",{type:"button",onClick:he,class:"travel-btn-add"},[i(s,{name:"heroicons:plus",class:"w-4 h-4"}),e[39]||(e[39]=x(" Ajouter un club ",-1))])]),C.value.length===0?(o(),n("div",Oa,[i(s,{name:"heroicons:building-office",class:"w-8 h-8 text-gray-300"}),e[41]||(e[41]=t("p",null,"Selectionnez un club pour ajouter des participants",-1))])):f("",!0),(o(!0),n(T,null,P(C.value,a=>(o(),n("div",{key:a.id,class:"travel-club-item"},[t("div",Na,[t("div",Ia,[i(ce,{modelValue:a.value,"onUpdate:modelValue":[u=>a.value=u,u=>ge(a.id,u)],options:j.value,label:a.label,canSearch:"",placeholder:`Choisir (${a.label})`},null,8,["modelValue","onUpdate:modelValue","options","label","placeholder"])]),t("button",{type:"button",onClick:u=>_e(a.id),class:"travel-btn-icon-danger mt-6"},[i(s,{name:"heroicons:x-mark",class:"w-4 h-4"})],8,La)]),a.value?(o(),n("div",qa,[i(ce,{modelValue:a.userValue,"onUpdate:modelValue":u=>a.userValue=u,options:a.userOptions,label:Array.isArray(a.value)?`Participant(s) pour ${a.value.map(u=>a.options?.find(p=>p.value===u)?.label||u).join(", ")}`:`Participant(s) pour ${a.options?.find(u=>u.value===a.value)?.label||a.label}`,placeholder:"Selectionner les participants",canSearch:"",multiple:!0},null,8,["modelValue","onUpdate:modelValue","options","label"])])):f("",!0)]))),128)),!M.value&&C.value.length?(o(),n("div",Ma,[t("button",Ba,[i(s,{name:"heroicons:check",class:"w-4 h-4"}),e[42]||(e[42]=x(" Enregistrer ",-1))])])):f("",!0)],32)])):f("",!0)])])]),X.value&&g(D).hasPermission("user.is_webmaster")?(o(),n("div",Fa,[t("div",Ra,[t("div",za,[i(s,{name:"heroicons:pencil-square",class:"w-5 h-5 text-travel"}),e[43]||(e[43]=t("h4",null,"Modifier le voyage",-1))]),t("div",Ga,[e[45]||(e[45]=t("label",{class:"travel-modal-label"},"Nom du voyage",-1)),V(t("input",{"onUpdate:modelValue":e[4]||(e[4]=a=>d.value.title=a),class:"travel-modal-input"},null,512),[[S,d.value.title]]),e[46]||(e[46]=t("label",{class:"travel-modal-label"},"Destination",-1)),V(t("input",{"onUpdate:modelValue":e[5]||(e[5]=a=>d.value.destination=a),class:"travel-modal-input"},null,512),[[S,d.value.destination]]),t("div",Ha,[i(ee,{label:"Date de départ",modelValue:d.value.departureDate,"onUpdate:modelValue":e[6]||(e[6]=a=>d.value.departureDate=a),type:"date",class:"w-full"},null,8,["modelValue"])]),t("div",Ja,[i(ee,{label:"Date de retour",modelValue:d.value.returnDate,"onUpdate:modelValue":e[7]||
1(e[7]=a=>d.value.returnDate=a),type:"date",min:d.value.departureDate||void 0,class:"w-full"},null,8,["modelValue","min"])]),t("div",Ka,[i(ee,{label:"Date limite d'acompte",modelValue:d.value.depositDueDate,"onUpdate:modelValue":e[8]||(e[8]=a=>d.value.depositDueDate=a),type:"date",max:d.value.departureDate||void 0,required:""},null,8,["modelValue","max"])]),e[47]||(e[47]=t("label",{class:"travel-modal-label"},"Description",-1)),V(t("textarea",{"onUpdate:modelValue":e[9]||(e[9]=a=>d.value.description=a),class:"travel-modal-textarea",rows:"3"},null,512),[[S,d.value.description]]),e[48]||(e[48]=t("label",{class:"travel-modal-label"},"Commentaire",-1)),V(t("textarea",{"onUpdate:modelValue":e[10]||(e[10]=a=>d.value.comment=a),class:"travel-modal-textarea",rows:"2"},null,512),[[S,d.value.comment]]),t("div",Qa,[t("label",Wa,[V(t("input",{type:"checkbox","onUpdate:modelValue":e[11]||(e[11]=a=>d.value.displayDate=a),class:"travel-checkbox"},null,512),[[ue,d.value.displayDate]]),e[44]||(e[44]=t("span",null,"Afficher les dates du voyage",-1))])])]),t("div",Xa,[t("button",{onClick:ne,class:"travel-btn-cancel"},"Annuler"),t("button",{onClick:Ie,disabled:q.value,class:"travel-btn-submit"},[q.value?(o(),n("span",el,[i(s,{name:"heroicons:arrow-path",class:"w-4 h-4 animate-spin"}),e[49]||(e[49]=x(" Enregistrement... ",-1))])):(o(),n("span",Za,"Enregistrer"))],8,Ya)])])])):f("",!0),B.value?(o(),n("div",tl,[t("div",al,[t("div",ll,[t("div",sl,[i(s,{name:"heroicons:exclamation-triangle",class:"w-5 h-5 text-red-500"})]),e[50]||(e[50]=t("h4",null,"Confirmer la suppression",-1))]),e[51]||(e[51]=t("div",{class:"travel-modal-body"},[t("p",{class:"text-gray-600 text-sm"}," Etes-vous sur de vouloir supprimer ce voyage ? Cette action est irreversible. ")],-1)),t("div",ol,[i(I,{text:"Annuler",color:"secondary",onClick:Me,class:"flex-1"}),i(I,{text:F.value?"Suppression...":"Confirmer la suppression",color:"danger",onClick:Be,class:"flex-1",disabled:F.value},null,8,["text","disabled"])])])])):f("",!0),Q.value?(o(),n("div",nl,[t("div",il,[t("div",rl,[i(s,{name:"heroicons:document-plus",class:"w-5 h-5 text-travel"}),e[52]||(e[52]=t("h4",null,"Ajouter un document",-1))]),t("div",ul,[e[54]||(e[54]=t("label",{class:"travel-modal-label"},"Nom du document",-1)),V(t("input",{"onUpdate:modelValue":e[12]||(e[12]=a=>h.value.name=a),class:"travel-modal-input",placeholder:"Nom (optionnel)"},null,512),[[S,h.value.name]]),e[55]||(e[55]=t("label",{class:"travel-modal-label"},"Fichier",-1)),i(dt,{modelValue:h.value.file,"onUpdate:modelValue":e[13]||(e[13]=a=>{h.value.file=a,a&&!h.value.name&&(h.value.name=a.name)})},null,8,["modelValue"]),e[56]||(e[56]=t("label",{class:"travel-modal-label"},"Options",-1)),t("label",dl,[V(t("input",{type:"checkbox","onUpdate:modelValue":e[14]||(e[14]=a=>h.value.signature=a),class:"travel-checkbox"},null,512),[[ue,h.value.signature]]),e[53]||(e[53]=t("span",null,"Signature requise",-1))]),h.value.signature?(o(),n("p",cl," Le document sera ajouté à chacun des "+b(r.value?.participants?.length||0)+" participant(s) pour signature. ",1)):f("",!0)]),t("div",vl,[t("button",{onClick:le,class:"travel-btn-cancel"},"Annuler"),t("button",{onClick:Ce,disabled:L.value,class:"travel-btn-submit"},[L.value?(o(),n("span",fl,[i(s,{name:"heroicons:arrow-path",class:"w-4 h-4 animate-spin"}),e[57]||(e[57]=x(" Ajout... ",-1))])):(o(),n("span",ml,"Ajouter"))],8,pl)])])])):f("",!0),z.value?(o(),n("div",bl,[t("div",yl,[t("div",hl,[i(s,{name:"heroicons:adjustments-horizontal",class:"w-5 h-5 text-travel"}),t("h4",null,b(E.value!==null?"Modifier le bloc d'options":"Ajouter un bloc d'options"),1)]),t("div",_l,[e[62]||(e[62]=t("label",{class:"travel-modal-label"},"Titre du bloc",-1)),V(t("input",{"onUpdate:modelValue":e[15]||(e[15]=a=>_.value.title=a),class:"travel-modal-input",placeholder:"Titre du bloc (ex: Options repas)"},null,512),[[S,_.value.title]]),e[63]||(e[63]=t("label",{class:"travel-modal-label"},"Type",-1)),t("div",gl,[V(t("select",{"onUpdate:modelValue":e[16]||(e[16]=a=>_.value.kind=a),class:"travel-modal-select"},[...e[58]||(e[58]=[t("option",{value:"multiple"},"Choix multiples",-1),t("option",{value:"unique"},"Choix unique",-1)])],512),[[at,_.value.kind]])]),t("div",kl,[t("div",xl,[e[60]||(e[60]=t("h5",{class:"text-sm font-medium text-gray-600"},"Options",-1)),t("button",{type:"button",onClick:Pe,class:"travel-btn-add"},[i(s,{name:"heroicons:plus",class:"w-3.5 h-3.5"}),e[59]||(e[59]=x(" Ajouter une option ",-1))])]),_.value.options.length===0?(o(),n("div",wl,[...e[61]||(e[61]=[t("p",null,"Aucune option",-1)])])):f("",!0),(o(!0),n(T,null,P(_.value.options,
1(a,u)=>(o(),n("div",{key:a.id,class:"travel-option-row"},[t("div",Dl,[V(t("input",{"onUpdate:modelValue":p=>a.label=p,placeholder:`Option #${u+1}`,class:"travel-modal-input"},null,8,Cl),[[S,a.label]])]),t("div",Vl,[V(t("input",{"onUpdate:modelValue":p=>a.amount=p,type:"number",min:"0",step:"0.01",class:"travel-modal-input"},null,8,Al),[[S,a.amount,void 0,{number:!0}]])]),t("button",{type:"button",onClick:p=>je(a.id),class:"travel-btn-icon-danger"},[i(s,{name:"heroicons:x-mark",class:"w-4 h-4"})],8,Sl)]))),128))])]),t("div",El,[t("button",{onClick:oe,class:"travel-btn-cancel"},"Annuler"),t("button",{onClick:Ue,disabled:G.value,class:"travel-btn-submit"},[G.value?(o(),n("span",Pl,[i(s,{name:"heroicons:arrow-path",class:"w-4 h-4 animate-spin"}),e[64]||(e[64]=x(" Enregistrement... ",-1))])):(o(),n("span",Tl,b(E.value!==null?"Enregistrer":"Ajouter le bloc"),1))],8,$l)])])])):f("",!0)])):(o(),n("div",jl,[t("div",Ul,[t("div",Ol,[t("div",Nl,[i(s,{name:"heroicons:exclamation-triangle",class:"w-8 h-8 text-gray-300"}),e[66]||(e[66]=t("p",null,"Ce voyage est introuvable ou n'a pas pu être chargé.",-1)),i(v,{to:"/app/travel",class:"travel-btn-primary mt-4"},{default:re(()=>[i(s,{name:"heroicons:arrow-left",class:"w-4 h-4"}),e[65]||(e[65]=x(" Retour aux voyages ",-1))]),_:1})])])])]))]))])}}});export{Hl 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.