import B from"./inputtext.esm.ze3zl5ir.js";import{f as H,u as A,o as N,e as Y,_ as Q,b as z}from"./entry.bbCM3YBn.js";import G from"./floatlabel.esm.LvCsOXw4.js";import Z from"./multiselect.esm.Gbzwm7Se.js";import J from"./inputswitch.esm.hFtoPPtr.js";import K from"./fieldset.esm.J_oAeqgi.js";import{a6 as X,j as P,a as S,H as m,A as b,R as c,P as T,I as ee,u as a,N as te,a7 as se,z as oe,L as I,Q as k,U as g,W as x,_ as R,O as U,a4 as ae,a3 as re,r as ne,b as le,a8 as E,Z as $,t as ie,G as ce}from"./swiper-vue.CNECMMGx.js";import{_ as de,a as ue}from"./SwiperControlNext.vue.tSedhPWj.js";import{u as q,a as _e,b as fe}from"./index.CLKAGR5F.js";import{_ as me}from"./EventCard.vue.s8lxA3vc.js";import pe from"./progressspinner.esm.ipqBMe7L.js";import{a as ge}from"./fetch.-APetXn2.js";function ye(e){switch(!0){case ke(e):return!Object.keys(e).length;case(e instanceof Map||e instanceof Set):return!e.size;case he(e):return!e.length;case typeof e=="string":return!e.trim().length;default:return!0}}function he(e){return Array.isArray(e)}function ke(e){return Object.prototype.toString.call(e)==="[object Object]"}const M=e=>{switch(e){case 1:return"Январь";case 2:return"Февраль";case 3:return"Март";case 4:return"Апрель";case 5:return"Май";case 6:return"Июнь";case 7:return"Июль";case 8:return"Август";case 9:return"Сентябрь";case 10:return"Октябрь";case 11:return"Ноябрь";case 12:return"Декабрь";default:throw new Error("Номер месяца должен быть от 1 до 12")}},ve=e=>{switch(e){case 1:return"Пт";case 2:return"Вт";case 3:return"Ср";case 4:return"Чт";case 5:return"Пт";case 6:return"Сб";case 0:return"Вс";default:throw new Error("Номер дня должен быть от 1 до 6")}},W=e=>{const n=[],o=e.getDate(),l=e.getFullYear(),t=e.getMonth(),_=new Date(l,t+1,0).getDate();for(let f=o;f<=_;f++){const i=new Date(l,t,f),s=i.getDate(),y=i.getDay(),p=y===0||y===6,v=M(i.getMonth()+1),w=i.getFullYear(),r=`${w}-${i.getMonth()+1}-${s}`,d={day:s,dayWeek:ve(y),month:v,year:w,fullDate:r,isLastDayWeek:p};n.push(d)}return n},we=e=>{const n={},o=new Date,l=o.getMonth(),t=o.getFullYear();let _=l,f=t;const i=W(o),s=M(l+1);n[s]=i;for(let y=1;y<=e;y++){_+=1,_>11&&(_=0,f+=1);const p=new Date(f,_,1),v=M(p.getMonth()+1);n[v]=W(p)}return n},be=e=>{const n=we(e);let o=[];return Object.keys(n).forEach(l=>{o=[...o,l,...n[l]]}),{calendarDays:n,listDays:o}},De=e=>{const n=X(e),o={};for(const[l,t]of Object.entries(n))switch(!0){case(Array.isArray(t)&&!!t.length):o[l]=t.join(",");break;case(typeof t=="boolean"&&t):o[l]=t;break;case!!t:o[l]=t}return o},Ie=["data-active","data-highlight"],Fe={class:"day__text"},Ve=P({__name:"Day",props:{day:{},position:{},dayWeek:{},isLastDayWeek:{type:Boolean}},emits:["click:day"],setup(e,{expose:n,emit:o}){const{day:l,dayWeek:t,position:_}=e,f=o,i=S(null),s=S(!1),y=S(!1),p=()=>{f("click:day",_)};return n({toggleIsActive:()=>{s.value=!s.value},toggleisHighlight:()=>{y.value=!y.value}}),(r,d)=>(m(),b("button",{ref_key:"element",ref:i,type:"button",class:"day","data-active":a(s),"data-highlight":a(y),onClick:p},[c("span",Fe,T(r.day),1),c("span",{class:ee(`day__week-text ${r.isLastDayWeek?"day__week-text--off":""}`)},T(r.dayWeek),3)],8,Ie))}}),$e=["data-highlight"],Se=P({__name:"Month",setup(e,{expose:n}){const o=S(!1);return n({toggleisHighlight:()=>{o.value=!o.value}}),(t,_)=>(m(),b("div",{class:"month","data-highlight":a(o)},[c("p",null,[te(t.$slots,"default")])],8,$e))}}),Ce={class:"days-slider__control"},Pe={class:"days-slider__control"},Ae=P({__name:"DaysSlider",props:{dateFrom:{},dateTo:{}},emits:["update:date"],setup(e,{expose:n,emit:o}){const{dateFrom:l,dateTo:t}=e,_=o,{listDays:f}=be(2),i=S([]),s={from:0,to:0},y=d=>{v(d)},p=()=>{const d=i.value.slice(s.from,s.to+1);d.length<3||d.forEach(h=>{h.toggleisHighlight()})},v=d=>{const h=i.value[d],D=s.from===d&&!s.to,F=!s.from,V=s.from&&s.from!==d&&!s.to,C=!!s.from&&!!s.to;switch(p(),!0){case D:h.toggleIsActive(),s.from=0;break;case F:h.toggleIsActive(),s.from=d;break;case V:h.toggleIsActive(),s.to=d,s.from>s.to&&(s.to=s.from,s.from=d);break;case C:i.value[s.from].toggleIsActive(),i.value[s.to].toggleIsActive(),h.toggleIsActive(),s.from=d,s.to=0;break}p(),w()},w=()=>{const d=f[s.from],h=f[s.to],D={dateFrom:d.fullDate?d.fullDate:"",dateTo:h.fullDate?h.fullDate:""};_("update:date",D)},r=()=>{s.from&&(i.value[s.from].toggleIsActive(),i.value[s.to].toggleIsActive(),p(),s.from=0,s.to=0)};return se(()=>{f.forEach((d,h)=>{d.fullDate===l?s.from=h:d.fullDate===t&&(s.to=h)})}),oe(()=>{s.from&&!s.to?i.value[s.from].toggleIsActive():s.from&&s.to&&(p(),i.value[s.from].toggleIsActive(),i.value[s.to].toggleIsActive())}),n({resetSlider:r}),(d,h)=>{const D=de,F=ae,V=ue,C=re;return m(),I(C,{"wrapper-class":"days-slider__wrapper",class:"days-slider","slides-per-view":"auto","slides-per-group-auto":!0,"free-mode":!0,breakpoints:{1024:{slidesOffsetAfter:40,slidesOffsetBefore:40}},"initial-slide":s.from},{"container-start":k(()=>[c("div",Ce,[g(D)])]),"container-end":k(()=>[c("div",Pe,[g(V)])]),default:k(()=>[(m(!0),b(x,null,R(a(f),(u,L)=>(m(),b(x,{key:`${u.month} ${u.year}`},[u.day?(m(),I(F,{key:0,class:"days-slider__slide"},{default:k(()=>[g(Ve,{ref_for:!0,ref_key:"slides",ref:i,day:u.day,"day-week":u.dayWeek,"is-last-day-week":u.isLastDayWeek,position:L,"onClick:day":y},null,8,["day","day-week","is-last-day-week","position"])]),_:2},1024)):(m(),I(F,{key:1,class:"days-slider__slide days-slider__slide--month"},{default:k(()=>[g(Se,{ref_for:!0,ref_key:"slides",ref:i},{default:k(()=>[U(T(u),1)]),_:2},1536)]),_:2},1024))],64))),128))]),_:1},8,["initial-slide"])}}});function O(e){return typeof e=="function"?e():a(e)}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const j=()=>{};function Te(e,n){function o(...l){return new Promise((t,_)=>{Promise.resolve(e(()=>n.apply(this,l),{fn:n,thisArg:this,args:l})).then(t).catch(_)})}return o}function xe(e,n={}){let o,l,t=j;const _=i=>{clearTimeout(i),t(),t=j};return i=>{const s=O(e),y=O(n.maxWait);return o&&_(o),s<=0||y!==void 0&&y<=0?(l&&(_(l),l=null),Promise.resolve(i())):new Promise((p,v)=>{t=n.rejectOnCancel?v:p,y&&!l&&(l=setTimeout(()=>{o&&_(o),l=null,p(i())},y)),o=setTimeout(()=>{l&&_(l),l=null,p(i())},s)})}}function Ue(e,n=200,o={}){return Te(xe(n,o),e)}const Me=Ue(e=>{H().push({query:De(e)})},250),Ee={categoryIds:[],townIds:[],isPushkinsCard:!1,isFree:!1,s:"",dateFrom:"",dateTo:"",page:null},We=()=>{var t,_;const{query:e,fullPath:n}=A(),o=ne({categoryIds:[],townIds:[],isPushkinsCard:!!e.isPushkinsCard||!1,isFree:!!e.isFree||!1,s:e.s||"",dateFrom:e.dateFrom||"",dateTo:e.dateTo||"",page:+e.page||null});return(t=e.categoryIds)!=null&&t.length&&(o.categoryIds=e.categoryIds.split(",").map(f=>Number(f))),(_=e.townIds)!=null&&_.length&&(o.townIds=e.townIds.split(",").map(f=>Number(f))),{query:o,resetState:()=>Object.assign(o,Ee),initialPath:n}},Oe={class:"filter"},je={class:"filter__days"},Ne={class:"filter__controls"},Re=c("div",{class:""},null,-1),qe={for:"search"},Le={class:"filter__toggler"},Be={class:"filter__controls-wrapper"},He={key:0,class:"filter__category"},Ye=c("label",{for:"categories"},"Тип мероприятия",-1),Qe={class:"filter__towns"},ze=c("label",{for:"towns"},"Населенный пункт",-1),Ge={class:"filter__is-pushkin-card"},Ze=c("label",{for:"is-pushkin"},"Пушкинская карта",-1),Je={class:"filter__is-free"},Ke=c("label",{for:"is-free"},"Бесплатно",-1),Xe={class:"filter__controls-wrapper"},et={key:0,class:"filter__category"},tt=c("label",{for:"categories"},"Тип мероприятия",-1),st={class:"filter__towns"},ot=c("label",{for:"towns"},"Населенный пункт",-1),at={class:"filter__is-pushkin-card"},rt=c("label",{for:"is-pushkin"},"Пушкинская карта",-1),nt={class:"filter__is-free"},lt=c("label",{for:"is-free"},"Бесплатно",-1),it=c("div",{class:""},null,-1),ct={for:"search"},dt=P({__name:"FilterEvents",setup(e){const n=A(),o=q().findOne(n.params.slug),l=S(),{query:t,resetState:_,initialPath:f}=We(),i=w=>{t.dateFrom=w.dateFrom,t.dateTo=w.dateTo};N((w,r)=>{var d;f==="/"&&f===w.fullPath&&(_(),(d=l.value)==null||d.resetSlider())});const s=S(!0),y=()=>s.value=!s.value,{towns:p}=_e(),{categories:v}=fe();return le(t,()=>Me(t)),(w,r)=>{const d=B,h=Y,D=G,F=Z,V=J,C=K;return m(),b("div",Oe,[c("div",je,[g(Ae,{ref_key:"daysSlider",ref:l,"date-from":a(t).dateFrom,"date-to":a(t).dateTo,"onUpdate:date":i},null,8,["date-from","date-to"])]),c("div",Ne,[g(C,{class:"filter__controls-collapse",toggleable:!0,collapsed:!0,"onUpdate:collapsed":y},{togglericon:k(()=>[c("div",{class:"filter__search",onClick:r[1]||(r[1]=E(()=>{},["stop"]))},[g(D,null,{default:k(()=>[g(d,{id:"search",modelValue:a(t).s,"onUpdate:modelValue":r[0]||(r[0]=u=>a(t).s=u),type:"search"},null,8,["modelValue"]),Re,c("label",qe,[g(h,{name:"uil:search",color:"#8f3250"}),U(" Поиск ")])]),_:1})]),c("div",Le,[a(s)?(m(),I(h,{key:0,name:"icon-park-outline:filter",color:"#8f3250"})):(m(),I(h,{key:1,name:"icon-park-solid:filter",color:"#8f3250"}))])]),legend:k(()=>[]),default:k(()=>[c("div",Be,[a(o)?$("",!0):(m(),b("div",He,[a(v)?(m(),I(D,{key:0},{default:k(()=>[g(F,{id:"categories",modelValue:a(t).categoryIds,"onUpdate:modelValue":r[2]||(r[2]=u=>a(t).categoryIds=u),class:"filter__select",options:a(v),"option-label":"title","option-value":"id",placeholder:"Выберите тип"},null,8,["modelValue","options"]),Ye]),_:1})):$("",!0)])),c("div",Qe,[a(p)?(m(),I(D,{key:0},{default:k(()=>[g(F,{id:"towns",modelValue:a(t).townIds,"onUpdate:modelValue":r[3]||(r[3]=u=>a(t).townIds=u),class:"filter__select",options:a(p),"option-label":"name","option-value":"id",placeholder:"Выберите пункт"},null,8,["modelValue","options"]),ze]),_:1})):$("",!0)]),c("div",Ge,[g(V,{modelValue:a(t).isPushkinsCard,"onUpdate:modelValue":r[4]||(r[4]=u=>a(t).isPushkinsCard=u),pt:{input:{id:"is-pushkin"}}},null,8,["modelValue"]),Ze]),c("div",Je,[g(V,{modelValue:a(t).isFree,"onUpdate:modelValue":r[5]||(r[5]=u=>a(t).isFree=u),pt:{input:{id:"is-free"}}},null,8,["modelValue"]),Ke])])]),_:1}),c("div",Xe,[a(o)?$("",!0):(m(),b("div",et,[a(v)?(m(),I(D,{key:0},{default:k(()=>[g(F,{id:"categories",modelValue:a(t).categoryIds,"onUpdate:modelValue":r[6]||(r[6]=u=>a(t).categoryIds=u),class:"filter__select",options:a(v),"option-label":"title","option-value":"id",placeholder:"Выберите тип"},null,8,["modelValue","options"]),tt]),_:1})):$("",!0)])),c("div",st,[a(p)?(m(),I(D,{key:0},{default:k(()=>[g(F,{id:"towns",modelValue:a(t).townIds,"onUpdate:modelValue":r[7]||(r[7]=u=>a(t).townIds=u),class:"filter__select",options:a(p),"option-label":"name","option-value":"id",placeholder:"Выберите пункт"},null,8,["modelValue","options"]),ot]),_:1})):$("",!0)]),c("div",at,[g(V,{modelValue:a(t).isPushkinsCard,"onUpdate:modelValue":r[8]||(r[8]=u=>a(t).isPushkinsCard=u),pt:{input:{id:"is-pushkin"}}},null,8,["modelValue"]),rt]),c("div",nt,[g(V,{modelValue:a(t).isFree,"onUpdate:modelValue":r[9]||(r[9]=u=>a(t).isFree=u),pt:{input:{id:"is-free"}}},null,8,["modelValue"]),lt]),c("div",{class:"filter__search",onClick:r[11]||(r[11]=E(()=>{},["stop"]))},[g(D,null,{default:k(()=>[g(d,{id:"search",modelValue:a(t).s,"onUpdate:modelValue":r[10]||(r[10]=u=>a(t).s=u),type:"search"},null,8,["modelValue"]),it,c("label",ct,[g(h,{name:"uil:search",color:"#8f3250"}),U(" Поиск ")])]),_:1})])])])])}}}),ut=()=>{const e=A(),n=ie(e.query);return N((o,l)=>{ye(o.query)||(n.value=o.query)}),{query:n}},_t={key:0,class:"list-events"},ft={key:1,class:"list-events__item--empty"},mt={key:0},pt=P({__name:"ListEvents",async setup(e){let n,o;const{query:l}=ut(),t=A(),_=q().findOne(t.params.slug),{data:f,pending:i}=([n,o]=ce(()=>ge("data",()=>$fetch("/api/events",{query:_?{...l.value,categoryIds:[_.id]}:l.value}),{watch:[l]})),n=await n,o(),n);return(s,y)=>{const p=Q,v=me,w=pe;return a(f)?(m(),b("ul",_t,[a(f).data.length?(m(!0),b(x,{key:0},R(a(f).data,r=>(m(),b("li",{key:r.id,class:"list-events__item"},[g(v,{loading:a(i),event:r,to:`/categories/${r.category.slug}/${r.slug}`},{image:k(()=>[r.images&&r.images.length?(m(),I(p,{key:0,image:{src:r.images[0].w480},alt:r.title},null,8,["image","alt"])):(m(),I(p,{key:1,image:{src:""}}))]),_:2},1032,["loading","event","to"])]))),128)):(m(),b("li",ft,[a(i)?(m(),I(w,{key:1,"aria-label":a(i)},null,8,["aria-label"])):(m(),b("p",mt,"Мепроприятий не найдено 🤷‍♂️"))]))])):$("",!0)}}}),gt={},yt={class:"events"},ht=c("h2",{class:"visually-hidden"},"Актуальные мероприятия",-1);function kt(e,n){const o=dt,l=pt;return m(),b("section",yt,[ht,g(o),g(l)])}const Tt=z(gt,[["render",kt]]);export{Tt as _};
