1import{s as _t,d as St,r as N,g as j,o as Tt,c as n,e as s,a as t,h as w,j as C,t as l,n as Z,F as pt,p as wt,A as vt,q as it,z as ue,v as Ht,B as rt,G as ce,b as Jt,u as me,i as f,C as bt,I as je,E as Ie,J as Ae,k as pe,H as qt,y as ae}from"./index-CLUkG7Y1.js";import{_ as Me}from"./PageFormLayout.vue_vue_type_script_setup_true_lang-DIZiXbi6.js";import{_ as Le}from"./EventFormInner.vue_vue_type_script_setup_true_lang-Dmz32xV1.js";import{u as Pe}from"./useOne-D2PWkmjy.js";import{g as Be,a as Ue}from"./applicationStatus-CSBaKwHh.js";import{w as Zt,b as Fe}from"./xlsxExport-AjCNS0q1.js";import{_ as Ve,l as ne,e as Oe,s as He}from"./DefaultCommunicationalHistoryDialog.vue_vue_type_script_setup_true_lang-BM1Ou1kG.js";import{u as Ze,p as Ke}from"./useEditableEmailRecipients--7r4SwPR.js";import{u as Xe,_ as Ye,a as qe}from"./useStockContext-JuMdrEmd.js";import{_ as Je}from"./EventAttendanceTab.vue_vue_type_script_setup_true_lang-CPo4QFPy.js";import{u as Ge,g as We,a as Qe,b as ts}from"./useDocuments-CL-97qTX.js";import"./xlsx-BmiLLvD3.js";import"./ColumnFilterSelect.vue_vue_type_script_setup_true_lang-DJzCbH8R.js";import"./api-0viYFoGO.js";const $t=1e3,le=["XS","S","M","L","XL","XXL","3XL","4XL","4YO","6YO","8YO","3-4","5-6","7-8"],Ct=["XS","S","M","L","XL"],Rt=["4yo","6yo","8yo"],Vt=[{key:"2-3.11",label:"2-3.11",minMonths:24,maxMonths:47},{key:"4-6.11",label:"4-6.11",minMonths:48,maxMonths:83},{key:"7-8.4",label:"7-8.4",minMonths:84,maxMonths:100},{key:"8.5-10.11",label:"8.5-10.11",minMonths:101,maxMonths:131},{key:"11-12.11",label:"11-12.11",minMonths:132,maxMonths:155},{key:"13-15",label:"13-15",minMonths:156,maxMonths:191}];function yt(y,o){if(!y)return"â";const _=new Date(y),d=o?new Date(o):null,u=new Intl.DateTimeFormat("cs-CZ",{dateStyle:"medium"});return d?`${u.format(_)} â ${u.format(d)}`:u.format(_)}function es(y,o){if(!y||!o)return"";const _=new Date(y),d=new Date(o);if(Number.isNaN(_.getTime())||Number.isNaN(d.getTime())||_.getTime()>d.getTime())return"";let u=d.getUTCFullYear()-_.getUTCFullYear(),b=d.getUTCMonth()-_.getUTCMonth();return d.getUTCDate()<_.getUTCDate()&&(b-=1),b<0&&(u-=1,b+=12),u<0?"":`${u},${b}`}function ve(y){if(!y)return null;const o=y.trim().replace(".",",");if(!o)return null;const[_,d="0"]=o.split(","),u=Number.parseInt(_,10),b=Number.parseInt(d,10);return!Number.isInteger(u)||!Number.isInteger(b)||u<0||b<0||b>11?null:u*12+b}async function oe(y,o){const _=[];let d=0;for(;;){const u=d+$t-1,{data:b,error:p}=await _t.rpc(y,o).range(d,u);if(p)throw p;const S=b??[];if(_.push(...S),S.length<$t)break;d+=$t}return _}async function ss(y){const o=[];let _=0;for(;;){const d=_+$t-1,{data:u,error:b}=await _t.from("admin_applications_flat_v").select("application_id, child_birth_date").in("event_id",y).order("application_id",{ascending:!0}).range(_,d);if(b)throw b;const p=u??[];if(o.push(...p),p.length<$t)break;_+=$t}return new Map(o.map(d=>[d.application_id,d.child_birth_date]))}async function as(y,o){if(!y.filter(u=>!(u.child_age??"").trim()).length)return y;const d=await ss(o);return y.map(u=>{const b=u.child_birth_date??d.get(u.application_id)??null,p=(u.child_age??"").trim()||es(b,u.starts_at);return{...u,child_birth_date:b,child_age:p||null}})}async function ns(y){var S,M;if(!y.length)return{applicationRows:[],tshirtRows:[],applicationsError:null,tshirtsError:null};const[o,_]=await Promise.allSettled([oe("admin_events_applications_export",{p_event_ids:y}),oe("admin_events_tshirts_export",{p_event_ids:y})]);let d=[],u=[],b=null,p=null;if(o.status==="fulfilled")try{d=await as(o.value,y),d.some(k=>!(k.child_age??"").trim())&&(b="U Äásti pÅihlášek se nepodaÅilo dopoÄÃtat vÄk dÃtÄte pro export.")}catch(k){b=(k==null?void 0:k.message)??"NepodaÅilo se dopoÄÃtat vÄk dÃtÄte pro export.",d=[]}else b=((S=o.reason)==null?void 0:S.message)??"NepodaÅilo se naÄÃst export termÃnů.";return _.status==="fulfilled"?u=_.value:p=((M=_.reason)==null?void 0:M.message)??"NepodaÅilo se naÄÃst export triÄek.",{applicationRows:d,tshirtRows:u,applicationsError:b,tshirtsError:p}}function ls(y){return[["Tábor","Lokalita","TermÃn","Celé jméno dÃtÄte","VÄk dÃtÄte","Celé jméno rodiÄe","Telefon rodiÄe","Zdravotnà omezenÃ","Dietnà preference","Poznámka rodiÄe","Zaplaceno"],...y.map(o=>[o.camp_name??"",o.location_name??"",yt(o.starts_at,o.ends_at),o.child_full_name??"",o.child_age??"",o.parent_full_name??"",o.parent_phone??"",o.health_limitations??"",o.diet_preference??"",o.notes_parent??"",o.is_paid?"Ano":"Ne"])]}function os(y){return[["Tábor","Lokalita","TermÃn","Celé jméno dÃtÄte","Velikost triÄka"],...y.map(o=>[o.camp_name??"",o.location_name??"",yt(o.starts_at,o.ends_at),o.child_full_name??"",be(o.tshirt_size)])]}function be(y){const o=(y??"").trim();return o&&o.toLowerCase()!=="null"?o:""}function is(y){return[...y].sort((o,_)=>{const d=o.toUpperCase().replace(/\s*\(.*\)\s*$/,""),u=_.toUpperCase().replace(/\s*\(.*\)\s*$/,""),b=le.indexOf(d),p=le.indexOf(u);return b!==-1&&p!==-1?b!==p?b-p:o.localeCompare(_,"cs"):b!==-1?-1:p!==-1?1:d.localeCompare(u,"cs")})}function ie(y,o){const _=new Map;for(const d of y){const u=ds(d.tshirt_baby_summary_size),b=u===null?rs(d.tshirt_parent_size===void 0?d.tshirt_size:d.tshirt_parent_size):null;if(!b&&!u)continue;const p=o(d);_.has(p)||_.set(p,{regular:new Map,baby:new Map});const S=_.get(p);u?S.baby.set(u,(S.baby.get(u)??0)+1):b&&S.regular.set(b,(S.regular.get(b)??0)+1)}return _}function rs(y){const o=be(y).replace(/^.*\(([^)]+)\).*$/,"$1").toUpperCase();return Ct.includes(o)?o:null}function ds(y){const o=(y??"").trim().toLowerCase();return Rt.find(d=>d.toLowerCase()===o)??null}function re(y){return[y,...Ct,"",...Rt]}function de(y,o){const _=Rt.some(u=>(o.baby.get(u)??0)>0),d=Ct.some(u=>(o.regular.get(u)??0)>0);return[y,...Ct.map(u=>_&&!d?"":o.regular.get(u)??0),"",...Rt.map(u=>d&&!_?"":o.baby.get(u)??0)]}function us(y){const o=new Map;for(const d of y){const u=ve(d.child_age);if(u===null)continue;const b=Vt.findIndex(E=>u>=E.minMonths&&u<=E.maxMonths);if(b===-1)continue;const p=yt(d.starts_at,d.ends_at),S=`${d.location_name??"â"}|${p}`,M=`${d.location_name??"â"} - ${p}`,k=d.camp_name??"â";o.has(S)||o.set(S,{label:M,camps:new Map});const I=o.get(S);I.camps.has(k)||I.camps.set(k,Vt.map(()=>0)),I.camps.get(k)[b]+=1}const _=[["Tábor",...Vt.map(d=>d.label)]];for(const d of Array.from(o.values()).sort((u,b)=>u.label.localeCompare(b.label,"cs"))){_.push([d.label,...Vt.map(()=>"")]);for(const[u,b]of Array.from(d.camps.entries()).sort((p,S)=>p[0].localeCompare(S[0],"cs")))_.push([u,...b]);_.push([])}return _.length>1&&_[_.length-1].every(d=>d==="")&&_.pop(),_}function cs(y){const o=ie(y,u=>u.camp_name??"â"),_=ie(y,u=>`${u.location_name??"â"} | ${yt(u.starts_at,u.ends_at)}`),d=[];d.push(["Info: U táborů se zapnutými baby velikostmi se souhrn 4yo/6yo/8yo poÄÃtá podle vÄku dÃtÄte, ne podle rodiÄovské volby."]),d.push(["Souhrn podle táborů"]),d.push(re("Tábor"));for(const[u,b]of Array.from(o.entries()).sort((p,S)=>p[0].localeCompare(S[0],"cs")))d.push(de(u,b));d.push([]),d.push(["Souhrn podle lokality + termÃnu"]),d.push(re("Lokalita + termÃn"));for(const[u,b]of Array.from(_.entries()).sort((p,S)=>p[0].localeCompare(S[0],"cs")))d.push(de(u,b));return{matrix:d,columnCount:1+Ct.length+1+Rt.length}}function ms(y,o){Zt(o,"TermÃny",ls(y),[24,24,24,26,12,26,18,24,24,32,12])}
1function ps(y,o){Zt(o,"TriÄka jednotlivÄ",os(y),[24,24,24,26,14])}function vs(y,o){Zt(o,"Souhrn dle veku",us(y),[34,12,12,12,14,14,10])}function bs(y,o){const{matrix:_,columnCount:d}=cs(y);Zt(o,"TriÄka souhrnnÄ",_,[30,...Array.from({length:Math.max(d-1,1)},(u,b)=>b===Ct.length?4:10)])}function Ot(y){return Fe(y)}const fs={class:"flex flex-col gap-4"},_s={class:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between"},ys={class:"stats stats-vertical md:stats-horizontal bg-base-100 border-base-300 w-full border md:divide-x"},gs={class:"stat px-6"},xs={class:"stat-value text-xl md:text-2xl"},hs={class:"stat px-6"},ks=["title"],$s={class:"stat px-6"},ws=["title"],Cs={class:"stat px-6"},Ss={class:"stat-value text-xl md:text-2xl"},Ts={key:0},zs={key:0,class:"stat-desc flex flex-wrap gap-2"},Es={key:0,class:"badge badge-warning badge-sm"},Ds={class:"stat px-6"},Ns={class:"stat-value text-xl md:text-2xl"},Rs={class:"stat-desc"},js={class:"stat px-6"},Is={class:"stat-value text-xl md:text-2xl"},As={class:"flex items-center justify-end gap-2 self-start md:self-auto"},Ms=["disabled"],Ls={key:0,class:"loading loading-spinner loading-xs"},Ps={class:"card bg-base-100 border-base-300 border"},Bs={class:"card-body gap-4"},Us={key:0},Fs={key:1,class:"alert alert-error"},Vs={key:2,class:"overflow-x-auto"},Os={class:"table"},Hs=["onClick"],Zs={class:"whitespace-nowrap"},Ks={key:0,class:"badge badge-warning ml-2"},Xs={class:"whitespace-nowrap"},Ys={class:"flex flex-col"},qs={class:"text-sm opacity-70"},Js=["href"],Gs={key:1},Ws=["href"],Qs={class:"text-right"},ta={key:0},ea={class:"flex items-center justify-end"},sa={key:0,class:"mr-2 text-sm opacity-70"},aa={key:0},na={key:1,class:"modal modal-open"},la={class:"modal-box max-w-4xl"},oa={key:0,class:"mt-4 flex items-center gap-2 text-sm"},ia={class:"mt-5 grid gap-4"},ra={class:"border-base-300 bg-base-100 rounded-2xl border p-4"},da={class:"flex flex-col gap-4 md:flex-row md:items-end md:justify-between"},ua={key:0,class:"text-error mt-2 text-sm"},ca={key:1,class:"mt-2 text-sm"},ma=["disabled"],pa={key:0,class:"loading loading-spinner loading-xs"},va={class:"border-base-300 bg-base-100 rounded-2xl border p-4"},ba={class:"flex flex-col gap-4 md:flex-row md:items-end md:justify-between"},fa={key:0,class:"text-error mt-2 text-sm"},_a={key:1,class:"mt-2 text-sm"},ya=["disabled"],ga={key:0,class:"loading loading-spinner loading-xs"},xa={class:"border-base-300 bg-base-200/60 rounded-2xl border border-dashed p-4"},ha={class:"flex flex-col gap-4"},ka={class:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between"},$a={class:"bg-base-100 flex items-center gap-3 rounded-xl px-3 py-2 text-sm"},wa={key:0,class:"text-error text-sm"},Ca={class:"grid gap-3 md:grid-cols-2"},Sa={class:"border-base-300 bg-base-100 rounded-xl border p-4"},Ta={class:"mt-2 text-sm"},za=["disabled"],Ea={class:"border-base-300 bg-base-100 rounded-xl border p-4"},Da={class:"mt-2 text-sm"},Na=["disabled"],Ra={class:"modal-action"},ja=["disabled"],Ia=St({__name:"EventApplicationsTab",props:{eventId:{},startsAt:{},eventSummary:{}},setup(y){const o=y,_=Jt(),d=N(!1),u=N(null),b=N([]),p=N(!1),S=N(!1),M=N(!1),k=N(null),I=N(null),E=N([]),K=N([]),F=N(!1),A=N(null),B=new Set(["submitted","confirmed","approved","paid","invoice"]);function L(i){return(i||"").toLowerCase()}function Y(i){return["cancelled","rejected"].includes(L(i))}function H(i){return!Y(i.status)&&!!(i.is_waitlisted||L(i.status)==="waitlisted")}function q(i){return!H(i)&&B.has(L(i.status))}function v(i,a){const J=new Date(i),ot=a?new Date(a):new Date;let at=ot.getFullYear()-J.getFullYear(),G=ot.getMonth()-J.getMonth();return ot.getDate()<J.getDate()&&(G-=1),G<0&&(at-=1,G+=12),{years:at,months:G,totalMonths:at*12+G}}const g=j(()=>b.value.map(i=>{const a=H(i),J=Y(i.status);return{...i,age:v(i.birth_date,o.startsAt),child_name:`${i.child_first_name} ${i.child_last_name}`,parent_name:[i.parent_first_name,i.parent_last_name].filter(Boolean).join(" "),statusKey:L(i.status),waitlisted:a,cancelled:J,capacityRelevant:q(i),statusLabel:Ue(i.status,a),statusBadgeClass:Be(i.status,a)}})),$=j(()=>g.value.filter(i=>i.capacityRelevant)),m=j(()=>g.value.filter(i=>!i.cancelled)),x=j(()=>g.value.filter(i=>i.waitlisted).length),h=j(()=>$.value.length),D=j(()=>{var i;return((i=o.eventSummary)==null?void 0:i.capacityTotal)??null});function c(i){return Math.round(i/12*10)/10}const P=j(()=>
1{if(!$.value.length)return{avg:null,min:null,max:null};const i=$.value.map(G=>G.age.totalMonths),a=i.reduce((G,nt)=>G+nt,0),J=c(a/i.length),ot=Math.min(...i),at=Math.max(...i);return{avg:J,min:c(ot),max:c(at)}}),W=j(()=>$.value.filter(i=>["paid","invoice"].includes(i.statusKey)).length),et=j(()=>{var J;const i=new Intl.NumberFormat("cs-CZ",{style:"currency",currency:"CZK",maximumFractionDigits:0}),a=(J=o.eventSummary)==null?void 0:J.campPriceBase;return a&&W.value>0?i.format(a*W.value)+"":"â KÄ"});async function ft(){d.value=!0,u.value=null;const{data:i,error:a}=await _t.rpc("admin_event_applications_list",{p_event_id:o.eventId});a&&(u.value=a.message),b.value=i??[],d.value=!1}Tt(ft);const V=j(()=>{if(!F.value)return K.value;const i=Date.now();return K.value.filter(a=>{if(!a.starts_at)return!0;const J=new Date(a.starts_at).getTime();return Number.isNaN(J)||J>=i})}),jt=j(()=>is(Array.from(new Set(V.value.map(i=>(i.tshirt_size??"").trim()).filter(Boolean))))),zt=j(()=>new Set(V.value.map(i=>i.camp_name??"â")).size),gt=j(()=>new Set(V.value.map(i=>`${i.location_name??"â"}|${yt(i.starts_at,i.ends_at)}`)).size),dt=j(()=>E.value.filter(i=>ve(i.child_age)!==null)),xt=j(()=>new Set(dt.value.map(i=>`${i.location_name??"-"}|${yt(i.starts_at,i.ends_at)}`)).size),Et=j(()=>new Set(dt.value.map(i=>`${i.location_name??"-"}|${yt(i.starts_at,i.ends_at)}|${i.camp_name??"-"}`)).size);function tt(i,a){A.value={kind:i,text:a}}async function It(){S.value=!0,k.value=null,I.value=null;try{const i=await ns([o.eventId]);E.value=i.applicationRows,K.value=i.tshirtRows,k.value=i.applicationsError,I.value=i.tshirtsError}finally{S.value=!1}}async function Kt(){p.value||S.value||(A.value=null,M.value=!0,await It())}function Dt(){p.value||(M.value=!1)}async function ht(){if(!(p.value||S.value)){if(!E.value.length){tt("error",k.value??"Pro tento termÃn nejsou žádné aktivnà pÅihlášky k exportu.");return}p.value=!0,A.value=null;try{ms(E.value,Ot("prihlasky_terminu")),M.value=!1,tt("success",`Export termÃnu je pÅipravený. Vyexportováno ${E.value.length} pÅihlášek.`)}catch(i){tt("error",(i==null?void 0:i.message)??"Export termÃnu se nepodaÅil.")}finally{p.value=!1}}}async function At(){if(!(p.value||S.value)){if(!V.value.length){tt("error",I.value??"Pro tento termÃn nejsou žádná triÄka k exportu.");return}p.value=!0,A.value=null;try{ps(V.value,Ot("tricka_jednotlive")),M.value=!1,tt("success",`Export triÄek jednotlivÄ je pÅipravený. Vyexportováno ${V.value.length} Åádků.`)}catch(i){tt("error",(i==null?void 0:i.message)??"Export triÄek jednotlivÄ se nepodaÅil.")}finally{p.value=!1}}}async function Mt(){if(!(p.value||S.value)){if(!dt.value.length){tt("error",k.value??"Pro tento termÃn nejsou žádné pÅihlášky se spoÄteným vÄkem.");return}p.value=!0,A.value=null;try{vs(dt.value,Ot("souhrn_podle_veku")),M.value=!1,tt("success",`Souhrnný export dle vÄku je pÅipravený. Vyexportováno ${Et.value} Åádků z ${xt.value} termÃnů.`)}catch(i){tt("error",(i==null?void 0:i.message)??"Souhrnný export dle vÄku se nepodaÅil.")}finally{p.value=!1}}}async function Lt(){if(!(p.value||S.value)){if(!V.value.length){tt("error",I.value??"Pro tento termÃn nejsou žádná triÄka k exportu.");return}p.value=!0,A.value=null;try{bs(V.value,Ot("tricka_souhrnne")),M.value=!1,tt("success","Export triÄek souhrnnÄ je pÅipravený.")}catch(i){tt("error",(i==null?void 0:i.message)??"Export triÄek souhrnnÄ se nepodaÅil.")}finally{p.value=!1}}}function Pt(i){_.push({name:"dashboard-application-parent-detail",params:{parentId:i}})}return(i,a)=>{var ot,at,G,nt,kt;const J=ue("router-link");return s(),n("div",fs,[t("div",_s,[t("div",ys,[t("div",gs,[a[4]||(a[4]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-calendar-days opacity-70"}),C(" TermÃn ")],-1)),t("div",xs,l(((ot=i.eventSummary)==null?void 0:ot.dateRangeText)??"â"),1)]),t("div",hs,[a[5]||(a[5]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-flag opacity-70"}),C(" Tábor ")],-1)),t("div",{class:"stat-value max-w-[28ch] truncate text-xl md:text-2xl",title:((at=i.eventSummary)==null?void 0:at.campName)??"â"},l(((G=i.eventSummary)==null?void 0:G.campName)??"â"),9,ks)]),t("div",$s,[a[6]||(a[6]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-location-dot opacity-70"}),C(" Lokalita ")],-1)),t("div",{class:"stat-value max-w-[28ch] truncate text-xl md:text-2xl",title:((nt=i.eventSummary)==null?void 0:nt.locationName)??"â"},l(((kt=i.eventSummary)==null?void 0:kt.locationName)??"â"),9,ws)]),t("div",Cs,[a[7]||(a[7]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-user-group opacity-70"}),C(" DÄti / Kapacita ")],-1)),t("div",Ss,[C(l(h.value)+" ",1),D.value!==null?(s(),n("span",Ts,"/"+l(D.value),1)):w("",!0)]),x.value?(s(),n("div",zs,[x.value?(s(),n("span",Es," +"+l(x.value)+" nahr. ",1)):w("",!0)])):w("",!0)]),t("div",Ds,[a[8]||(a[8]=t("div",{class:"stat-title"},"PrůmÄrný vÄk",-1)),t("div",Ns,l(P.value.avg!==null?P.value.avg+" r"
1:"â"),1),t("div",Rs," nejml. "+l(P.value.min!==null?P.value.min+" r":"â")+", nejst. "+l(P.value.max!==null?P.value.max+" r":"â"),1)]),t("div",js,[a[9]||(a[9]=t("div",{class:"stat-title"},"Vybráno",-1)),t("div",Is,l(et.value),1),a[10]||(a[10]=t("div",{class:"stat-desc"},"z uhrazených pÅihlášek",-1))])])]),A.value?(s(),n("div",{key:0,class:Z(["alert",A.value.kind==="success"?"alert-success":"alert-error"])},[t("span",null,l(A.value.text),1)],2)):w("",!0),t("div",As,[t("button",{class:"btn btn-sm btn-info",type:"button",disabled:d.value||p.value||S.value,onClick:Kt},[p.value||S.value?(s(),n("span",Ls)):w("",!0),t("span",null,l(p.value?"Exportujiâ¦":S.value?"NaÄÃtám exportyâ¦":"Exporty"),1)],8,Ms)]),t("div",Ps,[t("div",Bs,[d.value?(s(),n("div",Us,"NaÄÃtámâ¦")):u.value?(s(),n("div",Fs,[t("span",null,l(u.value),1)])):(s(),n("div",Vs,[t("table",Os,[a[13]||(a[13]=t("thead",null,[t("tr",null,[t("th",null,"DÃtÄ"),t("th",null,"VÄk"),t("th",null,"Stav"),t("th",null,"RodiÄ (kontakt)"),t("th",{class:"w-0"})])],-1)),t("tbody",null,[(s(!0),n(pt,null,wt(m.value,U=>(s(),n("tr",{key:U.application_id,class:Z(["hover:bg-base-200 cursor-pointer",{"bg-warning/10":U.waitlisted}]),onClick:Gt=>Pt(U.parent_id)},[t("td",Zs,[t("div",{class:Z(["font-medium",{"text-warning":U.waitlisted}])},[C(l(U.child_name)+" ",1),U.waitlisted?(s(),n("span",Ks,"NáhradnÃk")):w("",!0)],2)]),t("td",Xs,l(U.age.years)+" r / "+l(U.age.months)+" m",1),t("td",null,[t("span",{class:Z(U.statusBadgeClass)},l(U.statusLabel||U.status),3)]),t("td",null,[t("div",Ys,[t("span",null,l(U.parent_name),1),t("div",qs,[U.parent_email?(s(),n("a",{key:0,href:`mailto:${U.parent_email}`,onClick:a[0]||(a[0]=vt(()=>{},["stop"]))},l(U.parent_email),9,Js)):w("",!0),U.parent_email&&U.parent_phone?(s(),n("span",Gs,"·")):w("",!0),U.parent_phone?(s(),n("a",{key:2,href:`tel:${U.parent_phone}`,onClick:a[1]||(a[1]=vt(()=>{},["stop"]))},l(U.parent_phone),9,Ws)):w("",!0)])])]),t("td",Qs,[it(J,{class:"btn btn-xs btn-neutral",to:{name:"dashboard-application-parent-detail",params:{parentId:U.parent_id}},onClick:a[2]||(a[2]=vt(()=>{},["stop"]))},{default:Ht(()=>a[11]||(a[11]=[C(" OtevÅÃt ",-1)])),_:2,__:[11]},1032,["to"])])],10,Hs))),128)),m.value.length===0?(s(),n("tr",ta,a[12]||(a[12]=[t("td",{colspan:"5",class:"py-6 text-center opacity-70"},"Žádné pÅihlášky.",-1)]))):w("",!0)])])])),t("div",ea,[d.value?w("",!0):(s(),n("div",sa,[C(" Kapacita: "+l(h.value)+" ",1),x.value?(s(),n("span",aa,", nahr.: "+l(x.value),1)):w("",!0),t("span",null,", celkem: "+l(m.value.length),1)]))])])]),M.value?(s(),n("dialog",na,[t("div",la,[a[40]||(a[40]=t("h3",{class:"text-lg font-semibold"},"Exporty",-1)),a[41]||(a[41]=t("p",{class:"mt-3 text-sm leading-6"},"Exporty jsou omezené na tento konkrétnà termÃn.",-1)),S.value?(s(),n("div",oa,a[14]||(a[14]=[t("span",{class:"loading loading-spinner loading-sm"},null,-1),t("span",null,"NaÄÃtám podklady pro exportyâ¦",-1)]))):w("",!0),t("div",ia,[t("section",ra,[t("div",da,[t("div",null,[a[17]||(a[17]=t("div",{class:"text-base font-semibold"},"Export termÃnu",-1)),a[18]||(a[18]=t("p",{class:"mt-1 text-sm opacity-80"}," PÅihlášky po ÅádcÃch vÄetnÄ vÄku dÃtÄte a kontaktu na rodiÄe. ",-1)),k.value?(s(),n("p",ua,l(k.value),1)):(s(),n("p",ca,[a[15]||(a[15]=C(" PÅipraveno ",-1)),t("strong",null,l(E.value.length),1),a[16]||(a[16]=C(" pÅihlášek. ",-1))]))]),t("button",{class:"btn btn-info",type:"button",disabled:p.value||S.value||!!k.value||E.value.length===0,onClick:ht},[p.value?(s(),n("span",pa)):w("",!0),a[19]||(a[19]=t("span",null,"Export termÃnu",-1))],8,ma)])]),t("section",va,[t("div",ba,[t("div",null,[a[24]||(a[24]=t("div",{class:"text-base font-semibold"},"Souhrnný export dle vÄku",-1)),a[25]||(a[25]=t("p",{class:"mt-1 text-sm opacity-80"}," PoÄty dÄtà po táborech v rámci lokality a termÃnu, rozdÄlené do vÄkových košů. ",-1)),k.value?(s(),n("p",fa,l(k.value),1)):(s(),n("p",_a,[a[20]||(a[20]=C(" PÅipraveno ",-1)),t("strong",null,l(dt.value.length),1),a[21]||(a[21]=C(" pÅihlášek, ",-1)),t("strong",null,l(xt.value),1),a[22]||(a[22]=C(" termÃnů a ",-1)),t("strong",null,l(Et.value),1),a[23]||(a[23]=C(" táborových Åádků. ",-1))]))]),t("button",{class:"btn btn-info",type:"button",disabled:p.value||S.value||!!k.value||dt.value.length===0,onClick:Mt},[p.value?(s(),n("span",ga)):w("",!0),a[26]||(a[26]=t("span",null,"Export dle vÄku",-1))],8,ya)])]),t("section",xa,[t("div",ha,[t("div",ka,[a[28]||(a[28]=t("div",null,[t("div",{class:"text-base font-semibold"},"Exporty triÄek"),t("p",{class:"mt-1 text-sm opacity-80"},"Samostatné exporty triÄek pro tento termÃn.")],-1)),t("label",$a,[rt(t("input",{"onUpdate:modelValue":a[3]||(a[3]=U=>F.value=U),type:"checkbox",class:"checkbox checkbox-sm"},null,512),[[ce,F.value]]),a[27]||(a[27]=t("span",null,"VylouÄit probÄhlé",-1))])]),a[39]||(a[39]=t("p",{class:"text-xs opacity-70"}," PÅi zapnutà se export triÄek vyprázdnÃ, pokud zaÄátek tohoto termÃnu už je pÅed aktuálnÃm datem a Äasem. ",-1)),I.value?(s(),n("p",wa,l(I.value),1)):w("",!0),t("div",Ca,[t("div",Sa,[a[31]||(a[31]=t("div",{class:"font-medium"},"Export triÄek jednotlivÄ",-1)),a[32]||(a[32]=t("p",{class:"mt-1 text-sm opacity-80"},"Jeden Åádek = jedna pÅihláška.",-1)),t("p",Ta,[a[29]||(a[29]=C(" PÅipraveno ",-1)),t("strong",null,l(V.value.length),1),a[30]||(a[30]=C(" Åádků. ",-1))]),t("button",{class:"btn btn-info mt-4",type:"button",disabled:p.value||S.value||!!I.value||V.value.length===0,onClick:At}," Export triÄek jednotlivÄ ",8,za)]),t("div",Ea,[a[37]||(a[37]=t("div",{class:"font-medium"},"Export triÄek souhrnnÄ",-1)),a[38]||(a[38]=t("p",{class:"mt-1 text-sm opacity-80"}," Souhrn podle táborů a pod tÃm souhrn podle lokality a termÃnu. ",-1)),t("p",Da,[a[33]||(a[33]=C(" Táborů: ",-1)),t("strong",null,l(zt.value),1),a[34]||(a[34]=C(" , kombinacà lokalita + termÃn: ",-1)),t("strong",null,l(gt.value),1),a[35]||(a[35]=C(" , velikostÃ: ",-1)),t("strong",null,l(jt.value.length),1),a[36]||(a[36]=C(" . ",-1))]),t("button",{class:"btn btn-info mt-4",type:"button",disabled:p.value||S.value||!!I.value||V.value.length===0,onClick:Lt}," Export triÄek souhrnnÄ ",8,Na)])])])])]),t("div",Ra,[t("button",{class:"btn",type:"button",disabled:p.value,onClick:Dt}," ZavÅÃt ",8,ja)])]),t("form",{method:"dialog",class:"modal-backdrop"},[t("button",{type:"button",onClick:Dt},"close")])])):w("",!0)])}}}),Aa={class:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between"}
1,Ma={class:"stats stats-vertical md:stats-horizontal bg-base-100 border-base-300 w-full border md:divide-x"},La={class:"stat px-6"},Pa={class:"stat-value text-xl md:text-2xl"},Ba={class:"stat px-6"},Ua=["title"],Fa={class:"stat px-6"},Va=["title"],Oa={class:"fieldset rounded-box border-base-300 bg-base-100 border p-4 sm:p-5"},Ha={class:"flex flex-col gap-4"},Za={key:0,class:"alert alert-info"},Ka={key:1,class:"alert alert-error"},Xa={key:2},Ya={class:"mb-3"},qa={class:"join join-horizontal flex flex-wrap"},Ja={class:"text-base-content/70 mt-1 text-xs"},Ga={class:"mb-4 grid gap-3 md:grid-cols-3"},Wa={class:"stats bg-base-200 border-base-300 border"},Qa={class:"stat p-4"},tn={class:"stat-value text-2xl"},en={class:"stats bg-base-200 border-base-300 border"},sn={class:"stat p-4"},an={class:"stat-value text-2xl"},nn={class:"stats bg-base-200 border-base-300 border"},ln={class:"stat p-4"},on={class:"stat-value text-2xl"},rn={class:"mb-4 flex flex-col gap-3 md:flex-row md:items-center md:justify-between"},dn={class:"label cursor-pointer justify-start gap-3"},un=["disabled"],cn={key:0,class:"loading loading-spinner loading-xs"},mn={class:"border-base-300 mb-4 max-h-72 overflow-auto rounded-lg border"},pn={class:"table table-sm"},vn={class:"font-medium"},bn={key:0,class:"badge badge-ghost badge-xs ml-2"},fn={key:0,class:"badge badge-ghost badge-xs ml-2"},_n={key:2,class:"text-sm opacity-50"},yn={class:"text-base-content/60 mt-1 text-xs"},gn={key:0},xn={class:"mb-4"},hn={class:"mb-2 flex flex-wrap gap-2"},kn=["disabled"],$n=["disabled"],wn=["value"],Cn={key:2,class:"alert alert-warning mt-2 py-2 text-xs"},Sn={class:"mb-4"},Tn={class:"mb-4 grid gap-3 md:grid-cols-2"},zn={class:"col-span-2 md:col-span-1"},En={class:"col-span-2 md:col-span-2"},Dn={class:"mb-1 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between"},Nn=["disabled"],Rn={class:"border-base-300 bg-base-200/40 overflow-hidden rounded-lg border"},jn={class:"border-base-300 bg-base-200 flex gap-1 border-b p-2"},In=["value"],An={class:"mb-2 flex flex-col items-start gap-2"},Mn={class:"text-base-content/80 text-sm"},Ln={key:0,class:"alert alert-error"},Pn={key:1,class:"alert alert-success"},Bn={class:"flex flex-wrap gap-2"},Un=["disabled"],Fn={key:0,class:"loading loading-spinner loading-sm mr-2"},Vn={key:1,class:"fa-solid fa-vial"}
1,On=["disabled"],Hn={key:0,class:"loading loading-spinner loading-sm mr-2"},Zn={key:0,class:"modal modal-open"},Kn={class:"modal-box max-w-xl"},Xn={class:"form-control"},Yn=["disabled"],qn={key:0,class:"alert alert-error"},Jn={key:1,class:"alert alert-success"},Gn={class:"modal-action"},Wn=["disabled"],Qn=["disabled"],tl={key:0,class:"loading loading-spinner loading-sm"},el=St({__name:"EventEmailsTab",props:{startsAt:{},eventSummary:{}},setup(y){const o=me(),_=j(()=>String(o.params.id)),d=N([]),u=N(!1),b=N(null),p=N("primary"),S=N(!1),M=N(!1),k=N(""),I=N("Informace"),E=N(""),K=[{label:"12 px",value:"12px"},{label:"14 px",value:"14px"},{label:"16 px",value:"16px"},{label:"18 px",value:"18px"},{label:"20 px",value:"20px"},{label:"24 px",value:"24px"}],F=new Set(K.map(r=>r.value)),A=N(""),B=N(!1),L=N(null),Y=N(null),H=N(!1),q=N(""),v=N(!1),g=N(null),$=N([]),m=N(!1),x=N(null),h=N(!1);async function D(){b.value=null,u.value=!0;const{data:r,error:e}=await _t.rpc("admin_event_recipients_delivery_list",{p_event_id:_.value});if(u.value=!1,e){console.error("admin_event_recipients_delivery_list error",e),b.value="NepodaÅilo se naÄÃst seznam rodiÄů.";return}d.value=r??[]}function c(r){var R,O;const e=(R=r.primary_email)==null?void 0:R.trim(),T=(O=r.secondary_email)==null?void 0:O.trim();return p.value==="primary"?!!e:!!(e||T)}function P(r){var R,O;const e=(R=r.primary_email)==null?void 0:R.trim(),T=(O=r.secondary_email)==null?void 0:O.trim();return p.value==="primary"?!!(e&&!r.primary_sent_at):!!(e&&!r.primary_sent_at||T&&!r.secondary_sent_at)}function W(r){var e;return!!((e=r.primary_email)!=null&&e.trim()&&(!S.value||!r.primary_sent_at))}function et(r){var e;return!!((e=r.secondary_email)!=null&&e.trim()&&(!S.value||!r.secondary_sent_at))}const ft=j(()=>d.value.filter(c).length),V=j(()=>d.value.filter(P).length),jt=j(()=>ft.value-V.value),zt=j(()=>S.value?d.value.filter(P):d.value),gt=j(()=>{var e,T;const r=new Set;for(const R of zt.value){const O=(e=R.primary_email)==null?void 0:e.trim(),X=(T=R.secondary_email)==null?void 0:T.trim();p.value==="primary"?O&&W(R)&&r.add(O.toLowerCase()):(O&&W(R)&&r.add(O.toLowerCase()),X&&et(R)&&r.add(X.toLowerCase()))}return Array.from(r)}),{editingRecipients:dt,recipientsDraft:xt,effectiveBaseEmails:Et,effectiveBaseEmailsText:tt,excludedEmails:It,excludedEmailsText:Kt,hasExcludedEmails:Dt,isEmailExcluded:ht,beginRecipientsEdit:At,applyRecipientsEdit:Mt,cancelRecipientsEdit:Lt,resetRecipientsEdit:Pt}=Ze(gt),i=j(()=>{const r=Et.value.length;if(!k.value.trim())return r;const e=new Set,T=new Set(It.value);for(const R of Ke(k.value))T.has(R)||e.add(R);return r+e.size});let a=null;function J(){const r=window.getSelection();r&&r.rangeCount>0&&(a=r.getRangeAt(0))}function ot(){const r=kt(),e=window.getSelection();if(!r||!e||e.rangeCount===0||!U(r))return"";const T=e.getRangeAt(0);let R=T.commonAncestorContainer;for(R.nodeType===Node.TEXT_NODE&&(R=R.parentElement);R&&R!==r;){if(R.nodeType===Node.ELEMENT_NODE){const ut=Bt(R.style.fontSize);if(ut)return ut}R=R.parentElement}const O=T.cloneContents(),X=Array.from(O.querySelectorAll("[style]")).find(ut=>Bt(ut.style.fontSize));return X?Bt(X.style.fontSize):""}function at(){J(),A.value=ot()}function G(){const r=window.getSelection();a&&r&&(r.removeAllRanges(),r.addRange(a))}function nt(r,e){G(),document.execCommand(r,!1,e);const T=document.getElementById("event-email-editor");T&&(E.value=T.innerHTML)}function kt(){return document.getElementById("event-email-editor")}function U(r){const e=window.getSelection();if(!e||e.rangeCount===0)return!1;const T=e.getRangeAt(0).commonAncestorContainer;return r.contains(T.nodeType===Node.ELEMENT_NODE?T:T.parentElement)}function Gt(r){const e=document.createRange();e.selectNodeContents(r),e.collapse(!1);const T=window.getSelection();T==null||T.removeAllRanges(),T==null||T.addRange(e),a=e}function Wt(r){const e=kt();!e||!r||(e.focus(),U(e)?G():Gt(e),document.execCommand("insertHTML",!1,r),E.value=e.innerHTML,J())}function fe(r){r.querySelectorAll("[style]").forEach(e=>{var R;const T=e;T.style.fontSize="",(R=T.getAttribute("style"))!=null&&R.trim()||T.removeAttribute("style")})}function _e(r){const e=kt();if(!e||!F.has(r))return;e.focus(),G();const T=window.getSelection();if(!T||T.rangeCount===0||!U(e))return;const R=T.getRangeAt(0);if(R.collapsed)return;const O=R.extractContents();fe(O);const X=document.createElement("span");X.style.fontSize=r,X.appendChild(O),R.insertNode(X),R.selectNodeContents(X),T.removeAllRanges(),T.addRange(R),E.value=e.innerHTML,at()}function ye(r){const e=r.target;_e(e.value),A.value=ot()}function ge(){const r=prompt("Vložte URL odkazu (vÄetnÄ https://):","https://");r&&nt("createLink",r)}function xe(){nt("removeFormat"),nt("unlink")}function he(r){E.value=r.target.innerHTML}function ke(r){const e=document.createElement("div");return e.textContent=r,e.innerHTML.replace(/\r\n|\r|\n/g,"<br>")}function $e(r){var O,X;r.preventDefault();const e=((O=r.clipboardData)==null?void 0:O.getData("text/html"))??"",T=((X=r.clipboardData)==null?void 0:X.getData("text/plain"))??"",R=e?Nt(e,{inline:!1}):Nt(ke(T),{inline:!1});Wt(R)}const we=new Set(["p","div","br","a","strong","b","em","i","u","ul","ol","li","span"]);function Bt(r){const e=r.trim().toLowerCase();return F.has(e)?e:""}function Nt(r,e){if(!r)return"";const T=r.replace(/ /gi," ").replace(/<div>\s*<br>\s*<\/div>/gi,"<br>"),O=new DOMParser().parseFromString(`<body>${T}</body>`,"text/html");function X(Q){if(Q.nodeType===Node.TEXT_NODE){const st=(Q.textContent||"").replace(/\s+/g," ");return document.createTextNode(st)}if(Q.nodeType!==Node.ELEMENT_NODE)return null;const lt=Q,mt=lt.tagName.toLowerCase();if(mt==="br")return document.createElement("br");if(!we.has(mt)){const st=document.createDocumentFragment();
1return lt.childNodes.forEach(Ft=>{const se=X(Ft);se&&st.appendChild(se)}),st}const ct=document.createElement(mt);if(mt==="a"){const st=lt.getAttribute("href")||"";/^(https?:|mailto:)/i.test(st)&&ct.setAttribute("href",st)}lt.childNodes.forEach(st=>{const Ft=X(st);Ft&&ct.appendChild(Ft)});const Yt=Bt(lt.style.fontSize);if(Yt)if(mt==="p"||mt==="div"){const st=document.createElement("span");for(st.setAttribute("style",`font-size:${Yt};`);ct.firstChild;)st.appendChild(ct.firstChild);ct.appendChild(st)}else ct.setAttribute("style",`font-size:${Yt};`);return ct}const ut=document.createDocumentFragment();O.body.childNodes.forEach(Q=>{const lt=X(Q);lt&&ut.appendChild(lt)});const z=document.createElement("div");z.appendChild(ut);const ee=[];z.querySelectorAll("ul,ol").forEach((Q,lt)=>{const mt=`__LIST_${lt}__`;ee.push(Q.outerHTML);const ct=document.createElement("span");ct.textContent=mt,Q.replaceWith(ct)});let Ut=z.innerHTML.replace(/<\/div>\s*<div>/gi,"<br>").replace(/<div>/gi,"").replace(/<\/div>/gi,"<br>").replace(/<\/p>\s*<p>/gi,"<br><br>").replace(/<p>/gi,"").replace(/<\/p>/gi,"").replace(/(<br\s*\/?>\s*){3,}/gi,"<br><br>");return ee.forEach((Q,lt)=>{Ut=Ut.replace(new RegExp(`__LIST_${lt}__`,"g"),Q)}),e.inline?Ut.replace(/(<br\s*\/?>\s*){3,}/gi,"<br><br>").trim():Ut.split(/(?:<br\s*\/?>\s*){2}/i).map(Q=>Q.trim()).filter(Boolean).map(Q=>`<p style="margin:0 0 16px 0; line-height:1.5;">${Q}</p>`).join("").replace(/<p[^>]*>\s*<\/p>/gi,"").trim()}function Qt(r){return(r||"").replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim().length>0}function Xt(r){if(!r)return"â";const e=new Date(r);return Number.isNaN(e.getTime())?"â":new Intl.DateTimeFormat("cs-CZ",{dateStyle:"medium",timeStyle:"short"}).format(e)}function Ce(r){var T,R;if(p.value==="primary")return r.primary_sent_at?`Obesláno ${Xt(r.primary_sent_at)}`:"Neobesláno";const e=[];return(T=r.primary_email)!=null&&T.trim()&&e.push(r.primary_sent_at?`Primárnà ${Xt(r.primary_sent_at)}`:"Primárnà neobeslán"),(R=r.secondary_email)!=null&&R.trim()&&e.push(r.secondary_sent_at?`Sekundárnà ${Xt(r.secondary_sent_at)}`:"Sekundárnà neobeslán"),e.length?e.join(" | "):"Bez adresy"}async function Se(){x.value=null,h.value=!0,m.value=!0;try{$.value=await ne()}catch(r){x.value=(r==null?void 0:r.message)??"NepodaÅilo se naÄÃst historii obsahů."}finally{m.value=!1}}function Te(){h.value=!1}async function ze(r){const e=Nt(Oe(r),{inline:!1});e&&(await Ae(),Wt(e),h.value=!1)}function Ee(){L.value=null,g.value=null,v.value=!0}function te(){H.value||(v.value=!1)}async function De(){L.value=null,g.value=null;const r=Nt(E.value,{inline:!1});if(!Qt(r)){L.value="Text zprávy je povinný.";return}if(!q.value.trim()){L.value="VyplÅte alespoÅ jednu testovacà adresu.";return}H.value=!0;try{const e=await He({subjectOverride:I.value.trim()||null,emailBody:r,testEmails:q.value.trim()});g.value=`Do testovacà fronty bylo zaÅazeno ${e} e-mailů.`,$.value=await ne().catch(()=>$.value)}catch(e){console.error("admin_default_communicational_send_test error",e),L.value="NepodaÅilo se založit testovacà e-mail do fronty."}finally{H.value=!1}}async function Ne(){if(L.value=null,Y.value=null,!window.confirm("Resetovat stav obeslánà pro tento termÃn? Historie e-mailů zůstane zachovaná, jen se znovu zpÅÃstupnà odeslánà vÅ¡em."))return;M.value=!0;const{data:e,error:T}=await _t.rpc("admin_event_email_delivery_reset",{p_event_id:_.value});if(M.value=!1,T){console.error("admin_event_email_delivery_reset error",T),L.value="NepodaÅilo se resetovat stav obeslánÃ.";return}Y.value=`Stav obeslánà byl resetován (${typeof e=="number"?e:0} záznamů).`,await D()}async function Re(){L.value=null,Y.value=null;const r=Nt(E.value,{inline:!1});if(!Qt(r)){L.value="Text zprávy je povinný.";return}if(Et.value.length===0&&!k.value.trim()){L.value="Pro zvolený termÃn nemáme žádné e-maily a nejsou uvedeny ani ruÄnà adresy.";return}B.value=!0;const{data:e,error:T}=await _t.rpc("admin_event_send_email_default_communicational",{p_event_id:_.value,p_recipient_kind:p.value,p_subject_override:I.value.trim()||null,p_email_body:r,p_extra_emails:k.value.trim()||null,p_only_unsent:S.value,p_excluded_emails:Kt.value||null});if(B.value=!1,T){console.error("admin_event_send_email_default_communicational error",T),L.value="NepodaÅilo se založit e-maily do fronty.";return}const R=typeof e=="number"?e:0;Y.value=`Do fronty bylo zaÅazeno ${R} e-mailů.`,await D()}return Tt(()=>{D()}),(r,e)=>{var T,R,O,X,ut;return s(),n(pt,null,[t("div",Aa,[t("div",Ma,[t("div",La,[e[16]||(e[16]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-calendar-days opacity-70"}),C(" TermÃn ")],-1)),t("div",Pa,l(((T=r.eventSummary)==null?void 0:T.dateRangeText)??"â"),1)]),t("div",Ba,[e[17]||(e[17]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-flag opacity-70"}),C(" Tábor ")],-1)),t("div",{class:"stat-value max-w-[28ch] truncate text-xl md:text-2xl",title:((R=r.eventSummary)==null?void 0:R.campName)??"â"},l(((O=r.eventSummary)==null?void 0:O.campName)??"â"),9,Ua)]),t("div",Fa,[e[18]||(e[18]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-location-dot opacity-70"}),C(" Lokalita ")],-1)),t("div",{class:"stat-value max-w-[28ch] truncate text-xl md:text-2xl",title:((X=r.eventSummary)==null?void 0:X.locationName)??"â"},l(((ut=r.eventSummary)==null?void 0:ut.locationName)??"â"),9,Va)])])]),t("fieldset",Oa,[e[46]||(e[46]=t("legend",{class:"fieldset-legend"},"Hromadný e-mail rodiÄům",-1)),t("div",Ha,[u.value?(s(),n("div",Za,"NaÄÃtám seznam rodiÄůâ¦")):w("",!0),b.value?(s(),n("div",Ka,l(b.value),1)):w("",!0),!u.value&&!b.value?(s(),n("div",Xa,[e[45]||(e[45]=t("p",{class:"text-base-content/80 mb-2 text-sm"},[C(" Zde můžeÅ¡ poslat hromadný e-mail vÅ¡em rodiÄům, kteÅà majà dÃtÄ pÅihlášené na tento termÃn. E-mail se odeÅ¡le pÅes Å¡ablonu "),t("strong",null,"BÄžné sdÄlenÃ"),C(" ( "),t("
1code",null,"default_communicational"),C(" ) v Ecomailu. ")],-1)),t("div",Ya,[e[21]||(e[21]=t("label",{class:"label"},[t("span",{class:"label-text font-semibold"},"Adresáti")],-1)),t("div",qa,[t("button",{type:"button",class:Z(["btn btn-sm join-item",p.value==="primary"?"btn-primary":""]),onClick:e[0]||(e[0]=z=>p.value="primary")}," Jen primárnà rodiÄe ",2),t("button",{type:"button",class:Z(["btn btn-sm join-item",p.value==="both"?"btn-primary":""]),onClick:e[1]||(e[1]=z=>p.value="both")}," Primárnà + sekundárnà rodiÄe ",2)]),t("p",Ja,[e[19]||(e[19]=C(" Pro zvolenou možnost je aktuálnÄ nalezeno ",-1)),t("strong",null,l(gt.value.length),1),e[20]||(e[20]=C(" unikátnÃch e-mailových adres z databáze. ",-1))])]),t("div",Ga,[t("div",Wa,[t("div",Qa,[e[22]||(e[22]=t("div",{class:"stat-title text-xs"},"Adresáti v režimu",-1)),t("div",tn,l(ft.value),1)])]),t("div",en,[t("div",sn,[e[23]||(e[23]=t("div",{class:"stat-title text-xs"},"Už obesláno",-1)),t("div",an,l(jt.value),1)])]),t("div",nn,[t("div",ln,[e[24]||(e[24]=t("div",{class:"stat-title text-xs"},"JeÅ¡tÄ neobesláno",-1)),t("div",on,l(V.value),1)])])]),t("div",rn,[t("label",dn,[rt(t("input",{"onUpdate:modelValue":e[2]||(e[2]=z=>S.value=z),type:"checkbox",class:"checkbox checkbox-primary"},null,512),[[ce,S.value]]),e[25]||(e[25]=t("span",{class:"label-text font-semibold"},"Poslat jen tÄm, kteÅà jeÅ¡tÄ nejsou oznaÄenà jako obeslanÃ",-1))]),t("button",{type:"button",class:"btn btn-outline btn-sm",disabled:B.value||M.value||jt.value===0,onClick:Ne},[M.value?(s(),n("span",cn)):w("",!0),e[26]||(e[26]=C(" Resetovat stav obeslánà ",-1))],8,un)]),t("div",mn,[t("table",pn,[e[28]||(e[28]=t("thead",null,[t("tr",null,[t("th",null,"RodiÄ"),t("th",null,"E-maily"),t("th",null,"Stav")])],-1)),t("tbody",null,[(s(!0),n(pt,null,wt(zt.value,z=>(s(),n("tr",{key:z.parent_id},[t("td",null,[t("div",vn,l(z.parent_name||"â"),1)]),t("td",null,[z.primary_email?(s(),n("div",{key:0,class:Z(["text-sm",f(ht)(z.primary_email)?"text-base-content/40 line-through":""])},[C(l(z.primary_email)+" ",1),f(ht)(z.primary_email)?(s(),n("span",bn," VyÅazeno ")):w("",!0)],2)):w("",!0),p.value==="both"&&z.secondary_email?(s(),n("div",{key:1,class:Z(["text-sm opacity-70",f(ht)(z.secondary_email)?"line-through":""])},[C(l(z.secondary_email)+" ",1),f(ht)(z.secondary_email)?(s(),n("span",fn," VyÅazeno ")):w("",!0)],2)):w("",!0),c(z)?w("",!0):(s(),n("div",_n,"â"))]),t("td",null,[t("span",{class:Z(["badge",P(z)?"badge-warning":"badge-success"])},l(P(z)?"Äeká":"Obesláno"),3),t("div",yn,l(Ce(z)),1)])]))),128)),zt.value.length===0?(s(),n("tr",gn,e[27]||(e[27]=[t("td",{colspan:"3",class:"text-base-content/60 py-6 text-center"}," Pro aktuálnà filtr tu nejsou žádnà adresáti. ",-1)]))):w("",!0)])])]),t("div",xn,[e[29]||(e[29]=t("label",{class:"label"},[t("span",{class:"label-text font-semibold"},"E-maily z databáze (kopÃrovatelné)")],-1)),t("div",hn,[f(dt)?(s(),n(pt,{key:1},[t("button",{type:"button",class:"btn btn-primary btn-xs",onClick:e[4]||(e[4]=(...z)=>f(Mt)&&f(Mt)(...z))}," PoužÃt úpravy "),t("button",{type:"button",class:"btn btn-ghost btn-xs",onClick:e[5]||(e[5]=(...z)=>f(Lt)&&f(Lt)(...z))}," ZruÅ¡it ")],64)):(s(),n("button",{key:0,type:"button",class:"btn btn-outline btn-xs",disabled:B.value||M.value,onClick:e[3]||(e[3]=(...z)=>f(At)&&f(At)(...z))}," Upravit pÅÃjemce ",8,kn)),f(Dt)&&!f(dt)?(s(),n("button",{key:2,type:"button",class:"btn btn-ghost btn-xs",disabled:B.value||M.value,onClick:e[6]||(e[6]=(...z)=>f(Pt)&&f(Pt)(...z))}," Vrátit vÅ¡echny ",8,$n)):w("",!0)]),f(dt)?rt((s(),n("textarea",{key:0,"onUpdate:modelValue":e[7]||(e[7]=z=>je(xt)?xt.value=z:null),class:"textarea textarea-bordered min-h-[120px] w-full text-xs"},null,512)),[[bt,f(xt)]]):(s(),n("textarea",{key:1,class:"textarea textarea-bordered min-h-[120px] w-full text-xs",value:f(tt),readonly:""},null,8,wn)),f(Dt)?(s(),n("div",Cn," RuÄnÄ vyÅazeno: "+l(f(It).join(", ")),1)):w("",!0),e[30]||(e[30]=t("p",{class:"text-base-content/70 mt-1 text-xs"}," Adresy jsou oddÄlené Äárkou â lze je jednoduÅ¡e zkopÃrovat napÅ. pro externà službu. PÅepnutÃm výše se seznam automaticky aktualizuje. ",-1))]),t("div",Sn,[e[31]||(e[31]=t("label",{class:"label"},[t("span",{class:"label-text font-semibold"},"Dalšà e-mailové adresy"),t("span",{class:"label-text-alt text-xs"}
1,"oddÄluj Äárkou, stÅednÃkem nebo novým Åádkem")],-1)),rt(t("textarea",{"onUpdate:modelValue":e[8]||(e[8]=z=>k.value=z),class:"textarea textarea-bordered min-h-[80px] w-full text-xs",placeholder:"napÅ. [email protected], [email protected]"},null,512),[[bt,k.value]])]),t("div",Tn,[t("div",zn,[e[32]||(e[32]=t("label",{class:"label"},[t("span",{class:"label-text font-semibold"},"PÅedmÄt e-mailu")],-1)),rt(t("input",{"onUpdate:modelValue":e[9]||(e[9]=z=>I.value=z),type:"text",class:"input input-bordered w-full",placeholder:"Informace"},null,512),[[bt,I.value]]),e[33]||(e[33]=t("p",{class:"text-base-content/70 mt-1 text-xs"}," Pokud pole necháš prázdné, použije se výchozà pÅedmÄt Å¡ablony. ",-1))]),t("div",En,[t("div",Dn,[e[35]||(e[35]=t("label",{class:"block text-sm font-medium"},[C(" Text zprávy "),t("span",{class:"text-error"},"*"),t("code",{class:"ml-2 text-xs opacity-70"},"{*|EMAIL_BODY|*}")],-1)),t("button",{type:"button",class:"btn btn-outline btn-xs",disabled:B.value||H.value,onClick:Se},e[34]||(e[34]=[t("i",{class:"fa-solid fa-clock-rotate-left"},null,-1),C(" Historie obsahů ",-1)]),8,Nn)]),t("div",Rn,[t("div",jn,[t("button",{type:"button",class:"btn btn-xs",title:"TuÄné",onClick:e[10]||(e[10]=z=>nt("bold"))},e[36]||(e[36]=[t("strong",null,"B",-1)])),t("button",{type:"button",class:"btn btn-xs",title:"KurzÃva",onClick:e[11]||(e[11]=z=>nt("italic"))},e[37]||(e[37]=[t("em",null,"I",-1)])),t("button",{type:"button",class:"btn btn-xs",title:"PodtrženÃ",onClick:e[12]||(e[12]=z=>nt("underline"))},e[38]||(e[38]=[t("u",null,"U",-1)])),rt(t("select",{"onUpdate:modelValue":e[13]||(e[13]=z=>A.value=z),class:"select select-bordered select-xs !h-7 !w-28 shrink-0",title:"Velikost pÃsma",onChange:ye},[e[39]||(e[39]=t("option",{value:""},"Velikost",-1)),(s(),n(pt,null,wt(K,z=>t("option",{key:z.value,value:z.value},l(z.label),9,In)),64))],544),[[Ie,A.value]]),e[40]||(e[40]=t("div",{class:"divider divider-horizontal m-0"},null,-1)),t("button",{type:"button",class:"btn btn-xs",title:"Odkaz",onClick:ge},"ð"),t("button",{type:"button",class:"btn btn-xs",title:"Seznam",onClick:e[14]||(e[14]=z=>nt("insertUnorderedList"))}," ⢠"),e[41]||(e[41]=t("div",{class:"divider divider-horizontal m-0"},null,-1)),t("button",{type:"button",class:"btn btn-xs",title:"ZruÅ¡it formátovánÃ",onClick:xe}," â« ")]),t("div",{id:"event-email-editor",class:"bg-base-100 max-h-96 min-h-40 overflow-auto p-3",contenteditable:"true",role:"textbox","aria-multiline":"true","data-placeholder":"Sem napiÅ¡te zprávuâ¦",onInput:he,onKeyup:at,onMouseup:at,onPaste:$e},null,32)]),e[42]||(e[42]=t("p",{class:"text-base-content/70 mt-1 text-xs"},[C(" Text se vložà do Ecomail Å¡ablony jako promÄnná "),t("code",null,"EMAIL_BODY"),C(" . ")],-1))])]),t("div",An,[t("p",Mn,[e[43]||(e[43]=C(" Celkem bude zadaných adres k odeslánÃ: ",-1)),t("strong",null,l(i.value),1),C(" (DB: "+l(gt.value.length)+", ruÄnÄ: "+l(i.value-gt.value.length)+") ",1)]),L.value?(s(),n("div",Ln,l(L.value),1)):w("",!0),Y.value?(s(),n("div",Pn,l(Y.value),1)):w("",!0),t("div",Bn,[t("button",{type:"button",class:"btn btn-warning",disabled:B.value||H.value||M.value,onClick:Ee},[H.value?(s(),n("span",Fn)):(s(),n("i",Vn)),e[44]||(e[44]=C(" Testovacà e-mail ",-1))],8,Un),t("button",{type:"button",class:"btn btn-primary",disabled:B.value||H.value||M.value||i.value===0,onClick:Re},[B.value?(s(),n("span",Hn)):w("",!0),C(" "+l(B.value?"Zakládám e-mailyâ¦":"Odeslat e-mail(y)"),1)],8,On)])])])):w("",!0)])]),it(Ve,{show:h.value,items:$.value,loading:m.value,error:x.value,onClose:Te,onInsert:ze},null,8,["show","items","loading","error"]),v.value?(s(),n("dialog",Zn,[t("div",Kn,[e[49]||(e[49]=t("h2",{class:"text-lg font-semibold"},"Testovacà e-mail",-1)),t("form",{class:"mt-4 space-y-4",onSubmit:vt(De,["prevent"])},[t("label",Xn,[e[47]||(e[47]=t("div",{class:"label"},[t("span",{class:"label-text"},"Testovacà adresy"),t("span",{class:"label-text-alt"},"oddÄlit Äárkou nebo novým Åádkem")],-1)),rt(t("textarea",{"onUpdate:modelValue":e[15]||(e[15]=z=>q.value=z),class:"textarea textarea-bordered min-h-24 w-full",placeholder:"[email protected]",disabled:B.value||H.value},null,8,Yn),[[bt,q.value]])]),L.value?(s(),n("div",qn,l(L.value),1)):w("",!0),g.value?(s(),n("div",Jn,l(g.value),1)):w("",!0),t("div",Gn,[t("button",{type:"button",class:"btn btn-ghost",disabled:H.value,onClick:te}," ZavÅÃt ",8,Wn),t("button",{type:"submit",class:"btn btn-primary",disabled:B.value||H.value||!q.value.trim()},[H.value?(s(),n("span",tl)):w("",!0),e[48]||(e[48]=C(" Odeslat test ",-1))],8,Qn)])],32)]),t("form",{method:"dialog",class:"modal-backdrop",onClick:te},e[50]||(e[50]=[t("button",null,"ZavÅÃt",-1)]))])):w("",!0)],64)}}}),sl={class:"flex flex-col gap-4"},al={class:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between"}
1,nl={class:"stats stats-vertical md:stats-horizontal bg-base-100 border-base-300 w-full border md:divide-x"},ll={class:"stat px-6"},ol={class:"stat-value text-xl md:text-2xl"},il={class:"stat px-6"},rl=["title"],dl={class:"stat px-6"},ul=["title"],cl={class:"stat px-6"},ml={class:"stat-value text-xl md:text-2xl"},pl={class:"stat px-6"},vl={class:"stat-value text-xl md:text-2xl"},bl={key:0},fl={class:"card bg-base-100 border-base-300 border"},_l={class:"card-body gap-2"},yl={class:"flex items-start justify-between gap-3"},gl={key:0,class:"text-sm opacity-70"},xl={key:0,class:"opacity-70"},hl={key:1,class:"alert alert-error"},kl={class:"card bg-base-100 border-base-300 border"},$l={class:"card-body gap-4"},wl={class:"flex items-center justify-between"},Cl={class:"text-sm opacity-70"},Sl={key:0,class:"text-sm opacity-70"},Tl={key:1,class:"overflow-x-auto"},zl={class:"table"},El=["onClick"],Dl={class:"whitespace-nowrap"},Nl={class:"whitespace-nowrap"},Rl={class:"font-medium"},jl={class:"text-xs opacity-60"},Il={class:"min-w-[260px]"},Al={class:"flex flex-col"},Ml=["href"],Ll={key:1,class:"opacity-60"},Pl={class:"text-sm opacity-70"},Bl=["href"],Ul={key:1},Fl={class:"whitespace-nowrap"},Vl={class:"whitespace-nowrap"},Ol={class:"card bg-base-100 border-base-300 border"},Hl={class:"card-body gap-4"},Zl={class:"flex items-center justify-between"},Kl={class:"text-sm opacity-70"},Xl={key:0,class:"text-sm opacity-70"},Yl={key:1,class:"overflow-x-auto"},ql={class:"table table-sm"},Jl=["onClick"],Gl={class:"whitespace-nowrap"},Wl={class:"whitespace-nowrap"},Ql={class:"font-medium"},to={class:"text-xs opacity-60"},eo={class:"min-w-[260px]"},so={class:"flex flex-col"},ao=["href"],no={key:1,class:"opacity-60"},lo={class:"text-sm opacity-70"},oo=["href"],io={key:1},ro={class:"whitespace-nowrap"},uo={class:"whitespace-nowrap"},co=1,mo=St({__name:"EventInstructorsTab",props:{eventId:{},startsAt:{},eventSummary:{}},setup(y){const o=y,_=Jt(),d=N(!1),u=N(null),b=N([]);function p(v){if(!v)return"â";try{return new Date(v).toLocaleDateString("cs-CZ")}catch{return String(v)}}function S(v,g){const $=new Date(v),m=g?new Date(g):new Date;let x=m.getFullYear()-$.getFullYear(),h=m.getMonth()-$.getMonth();return m.getDate()<$.getDate()&&(h-=1),h<0&&(x-=1,h+=12),{years:x,months:h,totalMonths:x*12+h}}function M(v){return v==="head_leader"?"VedoucÃ":v==="assistant"?"PomocnÃk":"Instruktor"}function k(v){return v==="head_leader"?"badge badge-info":"badge badge-neutral"}function I(v){return v==="pending"?"Äeká":v==="approved"?"Schváleno":v==="rejected"?"ZamÃtnuto":v==="cancelled"?"ZruÅ¡eno":v}function E(v){return v==="pending"?"badge badge-warning":v==="approved"?"badge badge-success":v==="rejected"?"badge badge-error":v==="cancelled"?"badge badge-ghost":"badge badge-outline"}function K(v){_.push({name:"dashboard-applications-instructors-detail",params:{id:v}})}const F=j(()=>b.value.map(v=>{const g=`${v.applicant_first_name} ${v.applicant_last_name}`.trim(),$=v.applicant_birth_date?S(v.applicant_birth_date,o.startsAt):null;return{...v,fullName:g||"â",ageText:$?`${$.years} r`:"â",isApproved:v.selection_status==="approved",isLeader:v.selection_role==="head_leader"}})),A=j(()=>F.value.filter(v=>v.isApproved).sort((v,g)=>{const $=v.isLeader?0:1,m=g.isLeader?0:1;return $!==m?$-m:v.fullName.localeCompare(g.fullName,"cs")})),B=j(()=>F.value.filter(v=>!v.isApproved).sort((v,g)=>g.selection_created_at.localeCompare(v.selection_created_at))),L=j(()=>{var v;return((v=o.eventSummary)==null?void 0:v.instructorsCapacityTotal)??null}),Y=j(()=>A.value.filter(v=>v.isLeader).length),H=j(()=>A.value.filter(v=>!v.isLeader).length);async function q(){d.value=!0,u.value=null;try{const{data:v,error:g}=await _t.from("instructor_event_selections").select(` 2 id, 3 status, 4 role, 5 created_at, 6 decided_at, 7 application_id, 8 instructor_applications ( 9 id, 10 first_name, 11 last_name, 12 email, 13 phone, 14 birth_date, 15 status 16 ) 17 `).eq("event_id",o.eventId).order("created_at",{ascending:!1});if(g)throw g;b.value=(v??[]).map($=>{var m,x,h,D,c,P;return{selection_id:$.id,selection_status:$.status,selection_role:$.role??null,selection_created_at:$.created_at,
17selection_decided_at:$.decided_at??null,application_id:$.application_id,applicant_first_name:((m=$.instructor_applications)==null?void 0:m.first_name)??"",applicant_last_name:((x=$.instructor_applications)==null?void 0:x.last_name)??"",applicant_email:((h=$.instructor_applications)==null?void 0:h.email)??"",applicant_phone:((D=$.instructor_applications)==null?void 0:D.phone)??null,applicant_birth_date:((c=$.instructor_applications)==null?void 0:c.birth_date)??null,application_status:((P=$.instructor_applications)==null?void 0:P.status)??"â"}})}catch(v){console.error(v),u.value=(v==null?void 0:v.message)??"NepodaÅilo se naÄÃst instruktory.",b.value=[]}finally{d.value=!1}}return Tt(q),(v,g)=>{var $,m,x,h,D;return s(),n("div",sl,[t("div",al,[t("div",nl,[t("div",ll,[g[4]||(g[4]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-calendar-days opacity-70"}),C(" TermÃn ")],-1)),t("div",ol,l((($=v.eventSummary)==null?void 0:$.dateRangeText)??"â"),1)]),t("div",il,[g[5]||(g[5]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-flag opacity-70"}),C(" Tábor ")],-1)),t("div",{class:"stat-value max-w-[28ch] truncate text-xl md:text-2xl",title:((m=v.eventSummary)==null?void 0:m.campName)??"â"},l(((x=v.eventSummary)==null?void 0:x.campName)??"â"),9,rl)]),t("div",dl,[g[6]||(g[6]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-location-dot opacity-70"}),C(" Lokalita ")],-1)),t("div",{class:"stat-value max-w-[28ch] truncate text-xl md:text-2xl",title:((h=v.eventSummary)==null?void 0:h.locationName)??"â"},l(((D=v.eventSummary)==null?void 0:D.locationName)??"â"),9,ul)]),t("div",cl,[g[7]||(g[7]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-user-tie opacity-70"}),C(" Vedoucà / Kapacita ")],-1)),t("div",ml,l(Y.value)+"/"+l(co),1),g[8]||(g[8]=t("div",{class:"stat-desc"},"vedoucà se nepoÄÃtá do instruktorů",-1))]),t("div",pl,[g[9]||(g[9]=t("div",{class:"stat-title flex items-center gap-2"},[t("i",{class:"fa-solid fa-user-group opacity-70"}),C(" InstruktoÅi / Kapacita ")],-1)),t("div",vl,[C(l(H.value)+" ",1),L.value!==null?(s(),n("span",bl,"/"+l(L.value),1)):w("",!0)]),g[10]||(g[10]=t("div",{class:"stat-desc"},"poÄÃtá se pouze schválené bez vedoucÃho",-1))])])]),t("div",fl,[t("div",_l,[t("div",yl,[g[11]||(g[11]=t("div",null,[t("div",{class:"text-sm font-semibold opacity-80"},"InstruktoÅi a vedoucà â pÅihlášky k termÃnu"),t("div",{class:"text-sm opacity-70"}," Schválenà jsou nahoÅe, ostatnà stavy nÞe. KliknutÃm na Åádek otevÅeÅ¡ detail instruktora. ")],-1)),d.value?w("",!0):(s(),n("div",gl," Celkem: "+l(F.value.length)+" ⢠Schváleno: "+l(A.value.length),1))]),d.value?(s(),n("div",xl,"NaÄÃtámâ¦")):u.value?(s(),n("div",hl,[t("span",null,l(u.value),1)])):w("",!0)])]),t("div",kl,[t("div",$l,[t("div",wl,[g[12]||(g[12]=t("div",{class:"text-sm font-semibold opacity-80"},"SchválenÃ",-1)),t("div",Cl,l(A.value.length)+" osob",1)]),A.value.length?(s(),n("div",Tl,[t("table",zl,[g[13]||(g[13]=t("thead",null,[t("tr",null,[t("th",null,"Typ"),t("th",null,"Jméno"),t("th",null,"Kontakt"),t("th",null,"VÄk"),t("th",null,"Stav")])],-1)),t("tbody",null,[(s(!0),n(pt,null,wt(A.value,c=>(s(),n("tr",{key:c.selection_id,class:"hover:bg-base-200 cursor-pointer",onClick:P=>K(c.application_id),title:"OtevÅÃt detail instruktora"},[t("td",Dl,[t("span",{class:Z(k(c.selection_role))},l(M(c.selection_role)),3)]),t("td",Nl,[t("div",Rl,l(c.fullName),1),t("div",jl," žádost: "+l(p(c.selection_created_at)),1)]),t("td",Il,[t("div",Al,[c.applicant_email?(s(),n("a",{key:0,class:"link link-hover",href:`mailto:${c.applicant_email}`,onClick:g[0]||(g[0]=vt(()=>{},["stop"]))},l(c.applicant_email),9,Ml)):(s(),n("span",Ll,"â")),t("span",Pl,[c.applicant_phone?(s(),n("a",{key:0,class:"link link-hover",href:`tel:${c.applicant_phone}`,onClick:g[1]||(g[1]=vt(()=>{},["stop"]))},l(c.applicant_phone),9,Bl)):(s(),n("span",Ul,"â"))])])]),t("td",Fl,l(c.ageText),1),t("td",Vl,[t("span",{class:Z(E(c.selection_status))},l(I(c.selection_status)),3)])],8,El))),128))])])])):(s(),n("div",Sl," ZatÃm nikdo nenà schválen. "))])]),t("div",Ol,[t("div",Hl,[t("div",Zl,[g[14]||(g[14]=t("div",{class:"text-sm font-semibold opacity-80"},"Ostatnà stavy",-1)),t("div",Kl,l(B.value.length)+" položek",1)]),B.value.length?(s(),n("div",Yl,[t("table",ql,[g[15]||(g[15]=t("thead",null,[t("tr",null,[t("th",null,"Typ"),t("th",null,"Jméno"),t("th",null,"Kontakt"),t("th",null,"VÄk"),t("th",null,"Stav")])],-1)),t("tbody",null,[(s(!0),n(pt,null,wt(B.value,c=>(s(),n("tr",{key:c.selection_id,class:"hover:bg-base-200 cursor-pointer",onClick:P=>K(c.application_id),title:"OtevÅÃt detail instruktora"},[t("td",Gl,[t("span",{class:Z(k(c.selection_role))}
17,l(M(c.selection_role)),3)]),t("td",Wl,[t("div",Ql,l(c.fullName),1),t("div",to," žádost: "+l(p(c.selection_created_at)),1)]),t("td",eo,[t("div",so,[c.applicant_email?(s(),n("a",{key:0,class:"link link-hover",href:`mailto:${c.applicant_email}`,onClick:g[2]||(g[2]=vt(()=>{},["stop"]))},l(c.applicant_email),9,ao)):(s(),n("span",no,"â")),t("span",lo,[c.applicant_phone?(s(),n("a",{key:0,class:"link link-hover",href:`tel:${c.applicant_phone}`,onClick:g[3]||(g[3]=vt(()=>{},["stop"]))},l(c.applicant_phone),9,oo)):(s(),n("span",io,"â"))])])]),t("td",ro,l(c.ageText),1),t("td",uo,[t("span",{class:Z(E(c.selection_status))},l(I(c.selection_status)),3)])],8,Jl))),128))])]),g[16]||(g[16]=t("div",{class:"mt-3 text-xs opacity-60"}," Pozn.: v této záložce se nic neschvaluje â schválenà ÅeÅ¡ v detailu instruktora. ",-1))])):(s(),n("div",Xl," Žádné dalšà záznamy. "))])])])}}}),po={class:"space-y-4"},vo={class:"card bg-base-200"},bo={class:"card-body gap-4"},fo={class:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between"},_o={class:"space-y-1"},yo={class:"flex flex-wrap items-center gap-2"},go={key:0,class:"badge badge-warning"},xo={class:"text-sm opacity-70"},ho={class:"text-sm opacity-70"},ko={class:"font-semibold"},$o={class:"flex flex-wrap items-center gap-2"},wo=["disabled"],Co=["disabled"],So={key:0,class:"loading loading-spinner loading-xs"},To=["disabled"],zo={key:0,class:"loading loading-spinner loading-xs"},Eo={class:"grid grid-cols-1 gap-3 md:grid-cols-3"},Do={class:"rounded border border-base-300 bg-base-100 p-3"},No={class:"text-2xl font-semibold"},Ro={class:"rounded border border-base-300 bg-base-100 p-3"},jo={class:"rounded border border-base-300 bg-base-100 p-3"},Io={class:"text-2xl font-semibold text-success"},Ao={key:0,class:"alert alert-error"},Mo={key:1,class:"flex items-center gap-2"},Lo={key:2,class:"card bg-base-100 shadow"},Po={class:"card-body"},Bo={key:3,class:"flex items-center justify-between"},Uo=St({__name:"EventStockTab",props:{eventId:{},eventSummary:{}},setup(y){const o=y,_=N(!1),{loading:d,saving:u,acknowledging:b,stateSavingIds:p,errorMessage:S,context:M,policy:k,form:I,isDirty:E,reload:K,save:F,addItem:A,removeItem:B,toggleReceive:L,acknowledge:Y,setItemState:H}=Xe(o.eventId),q=j(()=>I.items.filter($=>$.order_state==="requested").length),v=j(()=>I.items.length-q.value),g=j(()=>{var $;return($=M.value)!=null&&$.last_checked_at?new Intl.DateTimeFormat("cs-CZ",{dateStyle:"medium",timeStyle:"short"}).format(new Date(M.value.last_checked_at)):"JeÅ¡tÄ nepotvrzeno"});return Tt(K),($,m)=>{var x;return s(),n("div",po,[t("div",vo,[t("div",bo,[t("div",fo,[t("div",_o,[t("div",yo,[m[4]||(m[4]=t("h2",{class:"card-title"},"Sklad k termÃnu",-1)),f(E)?(s(),n("span",go,"Neuloženo")):w("",!0)]),t("div",xo,l($.eventSummary.locationName)+" · "+l($.eventSummary.campName)+" · "+l($.eventSummary.dateRangeText),1),t("div",ho,[m[5]||(m[5]=C(" Dennà kontrola: ",-1)),t("span",ko,l(g.value),1)])]),t("div",$o,[t("button",{class:"btn btn-neutral",disabled:f(d),onClick:m[0]||(m[0]=(...h)=>f(K)&&f(K)(...h))},"Obnovit",8,wo),t("button",{class:"btn btn-outline",disabled:f(d)||f(b),onClick:m[1]||(m[1]=(...h)=>f(Y)&&f(Y)(...h))},[f(b)?(s(),n("span",So)):w("",!0),m[6]||(m[6]=C(" Dnes zkontrolováno ",-1))],8,Co),t("button",{class:Z(["btn btn-primary",f(u)?"btn-disabled":""]),disabled:!f(E)||f(u),title:"Uložà zmÄny v položkách",onClick:m[2]||(m[2]=(...h)=>f(F)&&f(F)(...h))},[f(u)?(s(),n("span",zo)):w("",!0),m[7]||(m[7]=C(" Uložit ",-1))],10,To)])]),t("div",Eo,[t("div",Do,[m[8]||(m[8]=t("div",{class:"text-xs uppercase opacity-60"},"Položek",-1)),t("div",No,l(f(I).items.length),1)]),t("div",Ro,[m[9]||(m[9]=t("div",{class:"text-xs uppercase opacity-60"},"ChybÃ",-1)),t("div",{class:Z(["text-2xl font-semibold",{"text-error":q.value>0}])},l(q.value),3)]),t("div",jo,[m[10]||(m[10]=t("div",{class:"text-xs uppercase opacity-60"},"OK",-1)),t("div",Io,l(v.value),1)])]),f(S)?(s(),n("div",Ao,[t("span",null,l(f(S)),1)])):w("",!0),f(d)?(s(),n("div",Mo,m[11]||(m[11]=[t("span",{class:"loading loading-spinner"},null,-1),C(" NaÄÃtám⦠",-1)]))):(s(),n("div",Lo,[t("div",Po,[it(Ye,{items:f(I).items,policy:f(k),"receive-ids":f(I).receive_item_ids,"state-saving-ids":f(p),onAdd:f(A),onRemove:f(B),onToggleReceive:f(L),onSetState:f(H)},null,8,["items","policy","receive-ids","state-saving-ids","onAdd","onRemove","onToggleReceive","onSetState"])])])),f(d)?w("",!0):(s(),n("div",Bo,[t("button",{class:"btn btn-neutral",onClick:m[3]||(m[3]=h=>_.value=!_.value)},l(_.value?"Skrýt seznam zmÄn":"Zobrazit seznam zmÄn"),1)])),it(qe,{"context-id":((x=f(M))==null?void 0:x.id)??null,visible:_.value},null,8,["context-id","visible"])])])])}}}),Fo={class:"grid grid-cols-12 gap-4"},Vo={class:"fieldset rounded-box border-base-300 bg-base-100 col-span-12 border p-4 sm:p-5"},Oo={class:"fieldset-legend"},Ho={class:"grid grid-cols-12 gap-3"},Zo={class:"col-span-12 md:col-span-6"},Ko={class:"col-span-12 md:col-span-3"},Xo={class:"col-span-12 md:col-span-3"},Yo={class:"col-span-12"},qo={class:"col-span-12"},Jo=["disabled"],Go={key:0,class:"mt-2 text-sm opacity-70"},Wo={key:0},Qo={key:1,class:"text-error mt-2 text-sm"},ti={class:"col-span-12 flex flex-wrap justify-end gap-2"},ei=["disabled"],si={class:"col-span-12"},ai={key:0,class:"alert alert-error"},ni={key:1,class:"skeleton h-24 w-full"},li={key:2,class:"overflow-x-auto"},oi={class:"table-zebra table"},ii={class:"font-medium"},ri={key:0,class:"text-xs opacity-70"},di={key:0,class:"text-xs opacity-70"},ui={class:"text-right"},ci={class:"flex justify-end gap-2"},mi=["disabled","onClick"],pi=["onClick"],vi=["onClick"],bi={key:0},fi=St({__name:"EventDocumentsTab",props:{eventId:{}},setup(y){const o=y,{loading:_,error:d,items:u,listForEvent:b,create:p,update:S,remove:M}=Ge(),k=N(A()),I=N(null),E=N(!1),K=N(!1),F=N(null);function A(){return{...We(),scope:"event",event_id:o.eventId}}function B(){I.value=null,F.value=null,k.value=A()}function L(m){I.value=m.id,F.value=null,k.value={title:m.title??"",description:m.description??"",valid_from:m.valid_from??null,valid_to:m.valid_to??null,scope:"event",bucket:m.bucket??null,file_path:m.file_path??null,file_name:m.file_name??null,mime_type:m.mime_type??null,file_size:m.file_size??null,event_id:o.eventId,location_id:null}}async function Y(m){var D;F.value=null;const x=m.target,h=(D=x.files)==null?void 0:D[0];if(h){K.value=!0;try{const c=new Date().toISOString().slice(0,7).replace("-","/"),P=await Qe(h,k.value.title||h.name,`events/${o.eventId}/${c}`);k.value={...k.value,...P}}catch(c){F.value=(c==null?void 0:c.message)||"Upload selhal."}finally{K.value=!1,x.value=""}}}async function H(){var m;if(k.value.title.trim()){E.value=!0;try{const x={...k.value,title:k.value.title.trim(),description:((m=k.value.description)==null?void 0:m.trim())||null,scope:"event",event_id:o.eventId,location_id:null};I.value?await S(I.value,x):await p(x),B(),await b(o.eventId)}finally{E.value=!1}}}async function q(m){confirm(`Opravdu smazat dokument "${m.title}"?`)&&(await M(m.id),I.value===m.id&&B(),await b(o.eventId))}async function v(m){if(!m.file_path)return;const x=await ts(m.file_path);window.open(x,"_blank","noopener")}function g(m){return m?new Date(m).toLocaleDateString("cs-CZ"):"-"}function $(m){if(!m||m<=0)return"";const x=["B","KB","MB","GB"];let h=m,D=0;for(;h>=1024&&D<x.length-1;)h/=1024,D+=1;return`${h.toFixed(h>=10||D===0?0:1)} ${x[D]}`}return Tt(()=>b(o.eventId)),pe(()=>o.eventId,async()=>{B(),await b(o.eventId)}),(m,x)=>(s(),n("div",Fo,[t("fieldset",Vo,[t("legend",Oo,l(I.value?"Upravit dokument termÃnu":"Nový dokument termÃnu"),1),t("div",Ho,[t("div",Zo,[x[4]||(x[4]=t("label",{class:"fieldset-label"},"Název",-1)),rt(t("input",{"onUpdate:modelValue":x[0]||(x[0]=h=>k.value.title=h),class:"input input-bordered w-full"},null,512),[[bt,k.value.title]])]),t("div",Ko,[x[5]||(x[5]=t("label",{class:"fieldset-label"},"Platà od",-1)),rt(t("input",{"onUpdate:modelValue":x[1]||(x[1]=h=>k.value.valid_from=h),type:"date",class:"input input-bordered w-full"},null,512),[[bt,k.value.valid_from]])]),t("div",Xo,[x[6]||(x[6]=t("label",{class:"fieldset-label"},"Platà do",-1)),rt(t("input",{"onUpdate:modelValue":x[2]||(x[2]=h=>k.value.valid_to=h),type:"date",class:"input input-bordered w-full"},null,512),[[bt,k.value.valid_to]])]),t("div",Yo,[x[7]||(x[7]=t("label",{class:"fieldset-label"},"Popis",-1)),rt(t("textarea",{"onUpdate:modelValue":x[3]||(x[3]=h=>k.value.description=h),class:"textarea textarea-bordered w-full",rows:"3"},null,512),[[bt,k.value.description]])]),t("div",qo,[x[8]||(x[8]=t("label",{class:"fieldset-label"},"Soubor",-1)),t("input",{type:"file",accept:"application/pdf",class:"file-input file-input-bordered w-full",disabled:K.value,onChange:Y},null,40,Jo),k.value.file_name?(s(),n("div",Go,[C(l(k.value.file_name)+" ",1),k.value.file_size?(s(),n("span",Wo,"("+l($(k.value.file_size))+")",1)):w("",!0)])):w("",!0),F.value?(s(),n("div",Qo,l(F.value),1)):w("",!0)]),t("div",ti,[I.value?(s(),n("button",{key:0,t
17ype:"button",class:"btn btn-ghost",onClick:B}," ZruÅ¡it úpravu ")):w("",!0),t("button",{type:"button",class:"btn btn-primary",disabled:E.value||K.value||!k.value.title.trim(),onClick:H},l(E.value?"Ukládám...":I.value?"Uložit zmÄny":"PÅidat dokument"),9,ei)])])]),t("div",si,[f(d)?(s(),n("div",ai,l(f(d)),1)):f(_)?(s(),n("div",ni)):(s(),n("div",li,[t("table",oi,[x[10]||(x[10]=t("thead",null,[t("tr",null,[t("th",null,"Název"),t("th",null,"Soubor"),t("th",null,"Platnost"),t("th",{class:"text-right"},"Akce")])],-1)),t("tbody",null,[(s(!0),n(pt,null,wt(f(u),h=>(s(),n("tr",{key:h.id},[t("td",null,[t("div",ii,l(h.title),1),h.description?(s(),n("div",ri,l(h.description),1)):w("",!0)]),t("td",null,[t("div",null,l(h.file_name||"-"),1),h.file_size?(s(),n("div",di,l($(h.file_size)),1)):w("",!0)]),t("td",null,l(g(h.valid_from))+" - "+l(g(h.valid_to)),1),t("td",ui,[t("div",ci,[t("button",{class:"btn btn-neutral btn-xs",type:"button",disabled:!h.file_path,onClick:D=>v(h)}," OtevÅÃt ",8,mi),t("button",{class:"btn btn-secondary btn-xs",type:"button",onClick:D=>L(h)}
17," Upravit ",8,pi),t("button",{class:"btn btn-error btn-xs",type:"button",onClick:D=>q(h)}," Smazat ",8,vi)])])]))),128)),f(u).length?w("",!0):(s(),n("tr",bi,x[9]||(x[9]=[t("td",{colspan:"4",class:"py-8 text-center opacity-70"}," TermÃn zatÃm nemá žádné dokumenty. ",-1)])))])])]))])]))}}),_i=["disabled"],yi={key:0,class:"loading loading-spinner loading-xs"},gi={class:"tabs tabs-boxed mb-4"},xi={key:0},hi={key:1},ki={key:2},$i={key:3},wi={key:4},Ci={key:5},Si={key:6},Ti={key:7,class:"modal modal-open"},zi={class:"modal-box"},Ei={class:"modal-action"},Di=["disabled"],Ni={method:"dialog",class:"modal-backdrop"},Yi=St({__name:"EventDetailPage",setup(y){const o=me(),_=Jt(),d=String(o.params.id),{item:u,loadById:b}=Pe("events","id, camp_id, location_id, starts_at, ends_at, note, capacity_total, instructors_capacity_total, staff_only, enabled, active, created_at, updated_at"),{list:p,load:S}=qt("camps","id, name, slug, description, currency_code, price_base, price_sibling, age_min, age_max",{column:"name",ascending:!0}),{list:M,load:k}=qt("locations","id, name, address_text, address_url, description",{column:"name",ascending:!0}),{remove:I}=qt("events","*"),E=N(o.query.tab??"detail"),K=N(0),F=N({loading:!1,saving:!1,canSave:!1});pe(()=>o.query.tab,D=>{D&&(E.value=D??"detail")});function A(D){E.value=D,_.replace({query:{...o.query,tab:D}})}const B=j(()=>E.value==="detail"),L=j(()=>E.value==="attendance");function Y(){K.value+=1}function H(D,c){if(!D)return"â";const P=new Date(D),W=c?new Date(c):null,et=new Intl.DateTimeFormat("cs-CZ",{dateStyle:"medium"});return W?`${et.format(P)} â ${et.format(W)}`:et.format(P)}const q=j(()=>p.value.find(D=>{var c;return D.id===((c=u.value)==null?void 0:c.camp_id)})||null),v=j(()=>{var D;return((D=q.value)==null?void 0:D.name)??"â"}),g=j(()=>{var D;return((D=M.value.find(c=>{var P;return c.id===((P=u.value)==null?void 0:P.location_id)}))==null?void 0:D.name)??"â"}),$=j(()=>{var D,c,P,W,et;return{campName:v.value,locationName:g.value,dateRangeText:H((D=u.value)==null?void 0:D.starts_at,(c=u.value)==null?void 0:c.ends_at),capacityTotal:((P=u.value)==null?void 0:P.capacity_total)??null,instructorsCapacityTotal:((W=u.value)==null?void 0:W.instructors_capacity_total)??null,campPriceBase:((et=q.value)==null?void 0:et.price_base)??null}}),m=N(!1),x=N(!1);async function h(){x.value=!0;const{error:D}=await I(d);x.value=!1,m.value=!1,D?alert(D.message??"Smazánà se nezdaÅilo."):_.push({name:"dashboard-events"})}return Tt(async()=>{await Promise.all([b(d),S(),k()])}),(D,c)=>{const P=ue("router-link");return s(),ae(Me,{title:"Detail termÃnu","back-to":{name:"dashboard-events"}},{"actions-left":Ht(()=>[B.value?(s(),n("button",{key:0,class:"btn btn-error",onClick:c[0]||(c[0]=W=>m.value=!0)}," Smazat termÃn ")):w("",!0),B.value?(s(),ae(P,{key:1,class:"btn btn-primary",to:{name:"dashboard-events-edit",params:{id:f(d)},query:{returnTo:f(o).fullPath}}},{default:Ht(()=>c[11]||(c[11]=[C(" Upravit ",-1)])),_:1,__:[11]},8,["to"])):w("",!0),L.value?(s(),n("button",{key:2,class:"btn btn-primary",type:"button",disabled:!F.value.canSave,onClick:Y},[F.value.saving?(s(),n("span",yi)):w("",!0),C(" "+l(F.value.saving?"Ukládámâ¦":"Uložit"),1)],8,_i)):w("",!0)]),default:Ht(()=>{var W,et,ft;return[t("div",gi,[t("button",{class:Z(["tab",{"tab-active":E.value==="detail"}]),onClick:c[1]||(c[1]=V=>A("detail"))}," TermÃn ",2),t("button",{class:Z(["tab",{"tab-active":E.value==="applications"}]),onClick:c[2]||(c[2]=V=>A("applications"))}," PÅihlášky ",2),t("button",{class:Z(["tab",{"tab-active":E.value==="attendance"}]),onClick:c[3]||(c[3]=V=>A("attendance"))}," Docházka ",2),t("button",{class:Z(["tab",{"tab-active":E.value==="instructors"}]),onClick:c[4]||(c[4]=V=>A("instructors"))}," InstruktoÅi ",2),t("button",{class:Z(["tab",{"tab-active":E.value==="emails"}]),onClick:c[5]||(c[5]=V=>A("emails"))}," Emaily ",2),t("button",{class:Z(["tab",{"tab-active":E.value==="warehouse"}]),onClick:c[6]||(c[6]=V=>A("warehouse"))}," Sklad ",2),t("button",{class:Z(["tab",{"tab-active":E.value==="documents"}]),onClick:c[7]||(c[7]=V=>A("documents"))}
17," Dokumenty ",2)]),E.value==="detail"?(s(),n("div",xi,[it(Le,{value:f(u)||void 0,camps:f(p),locations:f(M),readonly:!0},null,8,["value","camps","locations"])])):E.value==="applications"?(s(),n("div",hi,[it(Ia,{"event-id":f(d),"starts-at":((W=f(u))==null?void 0:W.starts_at)??null,"event-summary":$.value},null,8,["event-id","starts-at","event-summary"])])):E.value==="attendance"?(s(),n("div",ki,[it(Je,{"event-id":f(d),"starts-at":((et=f(u))==null?void 0:et.starts_at)??null,mode:"admin","save-signal":K.value,onState:c[8]||(c[8]=V=>F.value=V)},null,8,["event-id","starts-at","save-signal"])])):E.value==="instructors"?(s(),n("div",$i,[it(mo,{"event-id":f(d),"starts-at":((ft=f(u))==null?void 0:ft.starts_at)??null,"event-summary":{campName:$.value.campName,locationName:$.value.locationName,dateRangeText:$.value.dateRangeText,instructorsCapacityTotal:$.value.instructorsCapacityTotal}},null,8,["event-id","starts-at","event-summary"])])):E.value==="emails"?(s(),n("div",wi,[it(el,{"event-id":f(d),"event-summary":$.value},null,8,["event-id","event-summary"])])):E.value==="warehouse"?(s(),n("div",Ci,[it(Uo,{"event-id":f(d),"event-summary":{campName:$.value.campName,locationName:$.value.locationName,dateRangeText:$.value.dateRangeText}},null,8,["event-id","event-summary"])])):E.value==="documents"?(s(),n("div",Si,[it(fi,{"event-id":f(d)},null,8,["event-id"])])):w("",!0),m.value?(s(),n("dialog",Ti,[t("div",zi,[c[12]||(c[12]=t("h3",{class:"mb-2 text-lg font-bold"},"Smazat termÃn?",-1)),c[13]||(c[13]=t("p",{class:"mb-4"},"Opravdu chceÅ¡ smazat tento termÃn? Tato akce je nevratná.",-1)),t("div",Ei,[t("button",{class:"btn",onClick:c[9]||(c[9]=V=>m.value=!1)},"ZruÅ¡it"),t("button",{class:"btn btn-error",disabled:x.value,onClick:h},l(x.value?"Mažuâ¦":"Ano, smazat"),9,Di)])]),t("form",Ni,[t("button",{onClick:c[10]||(c[10]=V=>m.value=!1)},"close")])])):w("",!0)]}),_:1})}}});
17export{Yi 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.