1import{L as D}from"./Loader-Baqe17Om.js";import{M as x}from"./Modal-TGyeVepA.js";import{r as f,o as a,i as S,q as L,g as b,a as o,t as n,c,F as w,e as k,n as M,d as v,p as $,f as p,b as m,h as y,w as B,z as F}from"./vue-router-CSEP06dd.js";import{_ as T}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{A as V}from"./ActiveViewers-Dp0RKCPO.js";const A={components:{Modal:x},props:["private_lesson_time","shown"],data(){return{status:""}},computed:{datetimeLocal(){return this.private_lesson_time?this.formatDateTimeShort(this.private_lesson_time.start,{timezone:this.guessTimezone()}):""}},methods:{close(){this.$emit("closed")},bookPrivateLesson(){if(this.status)return!1;this.status="processing",Snackbar.show(this.$t("processing"),0),axios.post("/create-private-lesson-visit",{private_lesson_time_id:this.private_lesson_time.id}).then(()=>{Snackbar.show(this.$t("success")),this.close(),setTimeout(()=>window.location.href=this.$path("upcoming"),1e3)})}}},N={class:"py-3 d-flex align-items-center"},E=["src","alt"],U={class:"fw-bold"},j={type:"button",class:"btn btn-sm btn-dark","data-bs-dismiss":"modal"};function R(e,s,i,r,t,l){const h=f("modal");return a(),S(h,{title:e.$t("pleaseConfirm"),shown:i.shown,onClosed:l.close},L({footer:b(()=>[o("button",j,n(e.$t("cancel")),1),o("button",{type:"button",class:"ms-2 btn btn-sm btn-dark",onClick:s[0]||(s[0]=d=>l.bookPrivateLesson())},n(e.$t("book")),1)]),_:2},[i.private_lesson_time?{name:"body",fn:b(()=>[o("div",null,n(e.$t("privateBookConfirm")),1),o("div",N,[o("img",{src:i.private_lesson_time.instructor.thumbnail,alt:i.private_lesson_time.instructor.name,class:"rounded-circle me-3",style:{width:"50px",height:"50px"}},null,8,E),o("div",null,[o("div",U,n(l.datetimeLocal),1),o("div",null,n(e.$t("with"))+" "+n(i.private_lesson_time.instructor.name),1)])])]),key:"0"}:void 0]),1032,["title","shown","onClosed"])}const q=T(A,[["render",R]]),H={components:{Modal:x},props:["shown","instructors","selectedInstructor"],emits:["closed","selected"],methods:{select(e){this.$emit("selected",e),this.$emit("closed")}}},Y={class:"d-flex flex-wrap justify-content-center"},G=["onClick"],J=["src","alt"],K={class:"small"},O={type:"button",class:"btn btn-sm btn-dark","data-bs-dismiss":"modal"};function Q(e,s,i,r,t,l){const h=f("modal");return a(),S(h,{title:e.$t("selectInstructor"),shown:i.shown,onClosed:s[0]||(s[0]=d=>e.$emit("closed"))},{body:b(()=>[o("div",Y,[(a(!0),c(w,null,k(i.instructors,d=>(a(),c("a",{key:d.id,href:"",onClick:v(C=>l.select(d),["prevent"]),class:M(["text-decoration-none text-center me-3 mb-3",i.selectedInstructor&&i.selectedInstructor.id===d.id?"fw-bold text-black":"text-muted"])},[o("img",{src:d.thumbnail,alt:d.first_name,class:"rounded-circle mb-1 d-block mx-auto",style:$(i.selectedInstructor&&i.selectedInstructor.id===d.id?"width: 86px; height: 86px; border: 3px solid var(--bs-black);":"width: 86px; height: 86px; border: 3px solid transparent;")},null,12,J),o("div",K,n(d.first_name),1)],10,G))),128))])]),footer:b(()=>[o("button",O,n(e.$t("cancel")),1)]),_:1},8,["title","shown"])}const W=T(H,[["render",Q]]),X={components:{Loader:D,ConfirmPrivateLessonModal:q,SelectInstructorModal:W,ActiveViewers:V},data(){return{timezone:"",lessonType:null,selectedLessonTypeId:null,instructors:[],selectedInstructor:null,currentPage:0,totalPages:0,dateTimes:[],selectedPrivateLessonTime:null,confirmModalShown:!1,instructorModalShown:!1,ready:!1,status:""}},mounted(){this.addTitleAndDescription(this.$t("bookPrivate"),this.$t("descriptionBookPrivate")),this.timezone=this.guessTimezone(),axios.get("/lesson-types").then(e=>{this.lessonType=e.data.data[0],this.selectedLessonTypeId=this.lessonType.id,this.getInstructors()})},computed:{displayDateTimes(){return this.$root.auth_user.profile?this.dateTimes:this.dateTimes.map(e=>({date:e.date,day:e.day,times:this.selectDailyTimes(e)}))}},methods:{hashString(e){let s=0;for(let i=0;i<e.length;i++)s=(s*31+e.charCodeAt(i))%2147483647;return s},selectDailyTimes(e){let s=e.times;if(s.length===0)return[];let i=this.selectedInstructor,r=i.first_name+i.last_name+e.date,t=this.hashString(r),l=Math.min(s.length,1+t%3),h=_.orderBy(s,[d=>this.hashString(r+"|"+d.id)],["asc"]).slice(0,l);return h=_.orderBy(h,["unixTime"],["asc"]),h.map(d=>({...d,highDemand:this.hashString(r+"|hd|"+d.id)%5===0}))},selectInstructor(e){this.selectedInstructor=e,this.currentPage=0,this.dateTimes=[],this.getData()}
1,getInstructors(){axios.get("/instructors/1").then(e=>{this.instructors=this.dailyShuffle(e.data.data),this.ready=!0})},dailyShuffle(e){let s=[...e];const i=new Date;let r=i.getUTCFullYear()*1e4+(i.getUTCMonth()+1)*100+i.getUTCDate();for(let t=s.length-1;t>0;t--){r=(r*16807+11)%2147483647;let l=r%(t+1);[s[t],s[l]]=[s[l],s[t]]}return s},getData(){this.status||!this.selectedInstructor||(this.status="loading",axios("/lesson-times/"+this.selectedLessonTypeId+"/1/"+this.selectedInstructor.id+"?page="+(this.currentPage+1)).then(e=>{this.currentPage++,this.totalPages=e.data.meta.last_page;let s=e.data.data;s.forEach(r=>{r.timeLocal=this.formatTime(r.start,{timezone:this.timezone}),r.unixTime=moment(r.start).tz(this.timezone).unix()}),_.orderBy(s,["unixTime"],["asc"]).forEach(r=>{let t=moment(r.start).tz(this.timezone).format(this.$t("dateFormatLong")),l=moment(r.start).tz(this.timezone).format("ddd").toLowerCase();!this.dateTimes.filter(h=>h.date===t).length>0&&this.dateTimes.push({date:t,day:l,times:[]}),this.dateTimes[this.dateTimes.length-1].times.push(r)}),this.status=""}))},attemptBookPrivateLesson(e){if(Snackbar.show(this.$t("processing"),0),!this.$root.auth_user.profile)return Snackbar.hide(),this.$router.push(this.$path("buy-packages")+"/"+e.id);axios.get("/check-can-book-private-lesson/"+e.id).then(s=>{if(Snackbar.hide(),s.data.can_book)this.showConfirmModal(e);else return this.$router.push(this.$path("buy-packages")+"/"+e.id)})},showConfirmModal(e){this.selectedPrivateLessonTime=e,this.confirmModalShown=!0},hideConfirmModal(){this.selectedPrivateLessonTime=null,this.confirmModalShown=!1}}},Z={class:"p-4 border-bottom"},ee={class:"h3 mb-0"},te={key:0,class:"px-4 py-3 border-bottom"},se={key:0,class:"d-flex align-items-center"},oe=["src","alt"],ne={class:"fw-bold"},ie={key:1,class:"p-4"},re={key:0,style:{height:"500px"}},le={key:1},ae={key:0,class:"small mb-3"},de={class:"w-100 mt-3 mb-2 fw-bold"},ce={class:"d-flex flex-wrap"},he=["onClick"],me={class:"m-1 px-3 py-2 bg-white border rounded-3 small text-center"},ue={key:2,class:"mt-3",style:{height:"500px"}},_e={href:"",class:"small"},fe={style:{height:"500px"}};function pe(e,s,i,r,t,l){const h=f("confirm-private-lesson-modal"),d=f("active-viewers"),C=f("select-instructor-modal"),I=f("loader");return a(),c("div",null,[p(h,{shown:t.confirmModalShown,private_lesson_time:t.selectedPrivateLessonTime,onClosed:l.hideConfirmModal},null,8,["shown","private_lesson_time","onClosed"]),p(d),o("div",Z,[o("h1",ee,n(e.$t("bookPrivate")),1)]),p(C,{shown:t.instructorModalShown,instructors:t.instructors,"selected-instructor":t.selectedInstructor,onSelected:l.selectInstructor,onClosed:s[0]||(s[0]=u=>t.instructorModalShown=!1)},null,8,["shown","instructors","selected-instructor","onSelected"]),t.instructors.length>0?(a(),c("div",te,[t.selectedInstructor?(a(),c("div",se,[o("img",{src:t.selectedInstructor.thumbnail,alt:t.selectedInstructor.first_name,class:"rounded-circle me-3",style:{width:"86px",height:"86px"}},null,8,oe),o("div",null,[o("div",ne,n(t.selectedInstructor.first_name)+" "+n(t.selectedInstructor.last_name),1),o("a",{href:"",onClick:s[1]||(s[1]=v(u=>t.instructorModalShown=!0,["prevent"])),class:"small"},n(e.$t("change")),1)])])):(a(),c("a",{key:1,href:"",onClick:s[2]||(s[2]=v(u=>t.instructorModalShown=!0,["prevent"])),class:"text-decoration-none"},n(e.$t("selectInstructor")),1))])):m("",!0),p(I,{show:!t.ready},null,8,["show"]),t.ready?(a(),c("div",ie,[t.instructors.length===0?(a(),c("div",re,n(e.$t("noResults")),1)):m("",!0),t.selectedInstructor?(a(),c("div",le,[t.lessonType?(a(),c("div",ae,[o("div",null,[o("b",null,n(e.$t("duration"))+":",1),y(" "+n(t.lessonType.name),1)]),o("div",null,[o("b",null,n(e.$t("timezone"))+":",1),y(" "+n(t.timezone.split("/").pop().replace(/_/g," ")),1)]),o("div",null,[o("b",null,n(e.$t("instructor"))+":",1),y(" "+n(t.selectedInstructor.first_name)+" "+n(t.selectedInstructor.last_name),1)])])):m("",!0),t.dateTimes.length>0?(a(!0),c(w,{key:1},k(l.displayDateTimes,(u,P)=>(a(),c("div",{key:P},[o("div",de,n(e.ucFirst(u.date)),1),o("div",ce,[(a(!0),c(w,null,k(u.times,(g,z)=>(a(),c("a",{key:z,href:"",onClick:v(ve=>l.attemptBookPrivateLesson(g),["prevent"]),class:"text-black text-decoration-none"},[o("div",me,[o("div",{class:M(["fw-bold",g.highDemand?"text-danger":"text-muted"]),style:{"font-size":".7rem"}},n(g.highDemand?e.$t("highDemand"):e.$t("available")),3),o("div",null,n(g.timeLocal),1)])],8,he))),128))])]))),128)):m("",!0),!t.status&&t.dateTimes.length===0?(a(),c("div",ue,n(e.$t("noResults")),1)):m("",!0),!t.status&&t.dateTimes.length>0&&t.currentPage<t.totalPages?(a(),c("div",{key:3,class:"mt-3",onClick:s[3]||(s[3]=v((...u)=>l.getData&&l.getData(...u),["prevent"]))},[o("a",_e,n(e.$t("loadMore")),1)])):m("",!0)])):m("",!0),B(o("div",fe,[p(I,{show:t.status},null,8,["show"])],512),[[F,t.status]])])):m("",!0)])}const Te=T(X,[["render",pe]]);export{Te 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.