import{c as w,_ as x,a as d,b as s,d as h,e as D,f as g,t as u,F as y,r as p,g as v,w as f,h as S,o as r}from"./index-DiWXEcfx.js";const C={name:"CalendarPageComponent",data(){return{shows:[],days:[{val:"monday",title:"Lundi",id:1,index:0},{val:"tuesday",title:"Mardi",id:2,index:1},{val:"wednesday",title:"Mercredi",id:3,index:2},{val:"thursday",title:"Jeudi",id:4,index:3},{val:"friday",title:"Vendredi",id:5,index:4},{val:"saturday",title:"Samedi",id:6,index:5},{val:"sunday",title:"Dimanche",id:0,index:6}],displayedDay:[],week:"",date:new Date,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,isLoading:!1,query:""}},computed:{dateInputValue(){if(!this.date)return"";const a=this.date.getFullYear(),e=String(this.date.getMonth()+1).padStart(2,"0"),n=String(this.date.getDate()).padStart(2,"0");return`${a}-${e}-${n}`},searchMode(){return this.query&&this.query!==""?"query":"date"}},methods:{async getCalendar(a){this.query=a,this.dispatchShowsInWeek([]);const e=this.date;let n=new Date(e.getTime()+7*24*60*60*1e3);a&&a.length>0&&(n=new Date(e.getTime()+365*24*60*60*1e3)),this.isLoading=!0;try{const t=await this.getGoogleCalendar(e,n,a);if(this.shows=w(t),!this.shows||!this.shows[0]||!this.shows[0].starts_at)return;const i=new Date(Number(this.shows[0].starts_at)).getTime();if(e.getTime()>i||n.getTime()<i)return;this.dispatchShowsInWeek(this.shows)}catch(t){console.error("Failed to fetch calendar",t),this.shows=[]}finally{this.isLoading=!1}},dispatchShowsInWeek(a){this.displayedDay=[];for(let e=0;e<a.length;e++){if(!a[e])continue;let n=new Date(Number(a[e].starts_at));const t=this.days.find(o=>o.id===n.getDay()),i=this.displayedDay.find(o=>o.date.getFullYear()===n.getFullYear()&&o.date.getMonth()===n.getMonth()&&o.date.getDate()===n.getDate());i?i.shows=i.shows.concat(a[e]):this.displayedDay=this.displayedDay.concat({date:n,dayName:t==null?void 0:t.val,dayTitle:t==null?void 0:t.title,id:t==null?void 0:t.id,index:t==null?void 0:t.index,shows:[a[e]]})}},async changeWeek(a){let e=new Date(this.date);a=="+"?e.setDate(e.getDate()+7):e.setDate(e.getDate()-7),this.date=e;const n=e.toISOString();this.week=n.slice(0,10),await this.getCalendar()},async goToWeek(a){const e=a.target.value;console.log(e);const n=new Date(e),t=new Date(n),i=t.getDay(),o=i===0?6:i-1;t.setDate(t.getDate()-o),t.setHours(12,0,0),console.log("mondayOfWeek: ",t),t.toString()==="Invalid Date"?console.log("yolo"):(this.week=t.toISOString().slice(0,10),this.date=t,await this.getCalendar())},updateQuerySearch(a){const e=a.target.value;e!==""&&(this.date=this.getMonday()),this.getCalendar(e)},getMonday(){const a=new Date,e=a.getDate()-a.getDay()+1;let n=new Date(a.setDate(e));return n.setHours(12,0,0),n}},async mounted(){this.date=this.getMonday(),this.week=this.date.toISOString(),this.week=this.week.slice(0,10),this.searchMode,await this.getCalendar()}},E={id:"calendars"},T={class:"header"},W={class:"label-input"},b=["value"],L={key:0,class:"week_header"},M={class:"week_title_and_picker"},F={key:0,class:"semaine_title"},N={class:"date_picker_container"},q={key:1,class:"week"},O={class:"day"},V={class:"show-name"},A={key:0},Z={class:"artist-name"},Q={key:1},R={key:2},j={class:"genres-list"},B={key:0,class:"no-shows"},Y={key:1};function I(a,e,n,t,i,o){var k;const _=S("router-link");return r(),d("section",E,[s("div",T,[e[5]||(e[5]=s("h1",{class:"title title--mt-0"},"Calendrier",-1)),s("div",W,[e[4]||(e[4]=s("label",{for:"searchQuery",class:"input"},"Émission/animateur·ice/style",-1)),s("input",{id:"searchQuery",onChange:e[0]||(e[0]=(...c)=>o.updateQuerySearch&&o.updateQuerySearch(...c)),value:i.query,placeholder:"Mon émission préférée"},null,40,b)])]),o.searchMode==="date"?(r(),d("article",L,[s("div",{class:"chgWeek button",onClick:e[1]||(e[1]=c=>o.changeWeek("-"))},e[6]||(e[6]=[s("img",{id:"prec",src:D},null,-1),s("span",{class:"not-on-phone"},[s("span",{class:"not-on-small"},"Semaine "),g("précédente")],-1)])),s("div",M,[i.date?(r(),d("h3",F," Semaine du "+u(`${new Date(i.date.getFullYear(),i.date.getMonth(),i.date.getDate()).toLocaleDateString("fr-FR")}`),1)):h("",!0),s("div",N,[s("input",{type:"date",id:"week-picker",class:"date_picker",onChange:e[2]||(e[2]=(...c)=>o.goToWeek&&o.goToWeek(...c))},null,32)])]),s("div",{class:"chgWeek button",onClick:e[3]||(e[3]=c=>o.changeWeek("+"))},e[7]||(e[7]=[s("span",{class:"not-on-phone"},[s("span",{class:"not-on-small"},"Semaine "),g("suivante")],-1),s("img",{src:D},null,-1)]))])):h("",!0),i.date?(r(),d("section",q,[(r(!0),d(y,null,p(i.displayedDay,c=>(r(),d("div",{key:c.dayName},[s("div",O,[g(u(c.dayTitle)+" "+u(c.date.toLocaleDateString("fr-FR"))+" ",1),(r(!0),d(y,null,p(c.shows,l=>(r(),d("section",{key:l.id,class:"show"},[s("div",null,[s("u",null,u(new Date(Number(l.starts_at)).toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",timeZone:i.timeZone}))+" - "+u(new Date(Number(l.ends_at)).toLocaleTimeString("fr-FR",{hour:"2-digit",minute:"2-digit",timeZone:i.timeZone})),1),e[8]||(e[8]=g("  ")),s("span",V,u(l.name),1)]),l.dj&&l.dj.length?(r(),d("div",A,[e[9]||(e[9]=g(" Animée par ")),s("span",Z,u(l.dj),1)])):h("",!0),l.redundancy!==-1?(r(),d("div",Q," Toutes les "+u(l.redundancy===1?"":l.redundancy)+" semaines ",1)):(r(),d("div",R,"Émission speciale")),s("div",j,[(r(!0),d(y,null,p(l.genres,m=>(r(),d("span",{class:"genre",key:m},[v(_,{to:{path:"/podcasts",query:{q:"#"+(m==null?void 0:m.toLowerCase())}}},{default:f(()=>[g("#"+u(m),1)]),_:2},1032,["to"])]))),128))])]))),128))])]))),128)),((k=i.displayedDay)==null?void 0:k.length)===0&&!i.isLoading?(r(),d("div",B,e[10]||(e[10]=[s("h2",null,"Aucune émission programmée pour cette semaine.",-1),s("p",null,"La programmation zest radio s'étend généralement de début octobre (après le soundclash) jusqu'à la fête de la musique.",-1)]))):h("",!0),i.isLoading?(r(),d("div",Y,"Chargement...")):h("",!0)])):h("",!0)])}const P=x(C,[["render",I],["__scopeId","data-v-1c17cbcc"]]);export{P as default};