1import{c as S,r as v,l as K,w as j,o as W,b as q,d as r,g as s,p as f,t as n,m as F,u as I,R as M,F as R,e as b,i as G,h as A,x as H,C as J,D as Q,f as i,j as X}from"./app.Btm2sMGp.js";import{i as Y,_ as ee}from"./verification.QVTPrvhj.js";import{n as te}from"./notifyPageReady.zc5qOxj0.js";import{A as L}from"./AdsCarousel.DnSXKPUg.js";import{_ as ae}from"./AdsBanner.Drzf4JpB.js";import{u as se}from"./usePageContent.DNn8z5sI.js";import"./seo.BLXrlHNx.js";const ie={class:"space-y-12"},oe={"data-animate":"",class:"rounded-3xl bg-white p-10 shadow-lg shadow-slate-900/5"},re={class:"flex flex-col gap-6 md:flex-row md:items-start md:justify-between"},ne={class:"space-y-3"},le={class:"text-xs font-semibold uppercase tracking-[0.3em] text-primary-500"},ce={class:"text-3xl font-semibold text-slate-900"},de={class:"max-w-2xl text-sm text-slate-500"},ue={key:0,"data-animate":"",class:"flex flex-col items-center gap-4 rounded-3xl bg-white p-10 text-center shadow-lg shadow-slate-900/5"},me={key:1,"data-animate":"",class:"rounded-3xl border border-rose-100 bg-rose-50 p-8 text-center text-rose-600 shadow-sm"},pe={key:2,"data-animate":"",class:"space-y-6"},ge={class:"rounded-3xl border border-slate-200 bg-white p-12 text-center text-slate-500 shadow-sm"},fe={class:"grid grid-cols-1 gap-6 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4"},xe={key:1,class:"flex h-full w-full items-center justify-center bg-gradient-to-b from-slate-800 to-slate-600 p-6 text-center text-lg font-semibold text-white"},_e={class:"flex flex-1 flex-col gap-3 p-5"},he={class:"space-y-2"},ye={class:"text-xs font-semibold uppercase tracking-wide text-slate-900 line-clamp-2"},ve={class:"text-xs text-slate-600 leading-relaxed line-clamp-4"},be={class:"mt-auto space-y-3 text-xs text-slate-500"},we={class:"space-y-1.5"},ke={key:0,class:"flex items-center gap-2 font-semibold text-slate-700"},Pe={class:"flex items-center gap-2 font-semibold text-slate-700"},Ne={key:1,class:"flex items-center gap-2"},Te={class:"flex items-center gap-1"},Ce={key:2,class:"flex items-center gap-2"},Se={key:0,class:"flex justify-center pt-2"},$e={key:0,class:"inline-flex items-center gap-2 text-xs font-medium text-slate-500"},Ee={key:1,class:"text-xs text-slate-400"},Ve={__name:"Events",setup(Fe){const{text:p}=se("eventi",{"hero.pre_title":"Calendario cittadino","hero.title":"Eventi in città ","hero.description":"Scopri gli eventi pubblici in programma: concerti, festival, degustazioni e molto altro. Resta aggiornato con Sciacca in Rete.","hero.cta_label":"Promuovi il tuo evento","hero.cta_url":"/ads","empty_state.message":"Al momento non ci sono eventi disponibili. Torna a trovarci presto!","ads.title":"Proposte per il tempo libero","ads.description":"Partner selezionati, sponsor locali e campagne dedicate alla community degli eventi."}),_=S(()=>({preTitle:p("hero.pre_title","Calendario cittadino"),title:p("hero.title","Eventi in città "),description:p("hero.description","Scopri gli eventi pubblici in programma: concerti, festival, degustazioni e molto altro. Resta aggiornato con Sciacca in Rete."),ctaLabel:p("hero.cta_label","Promuovi il tuo evento"),ctaUrl:p("hero.cta_url","/ads")||"/ads"})),U=S(()=>p("empty_state.message","Al momento non ci sono eventi disponibili. Torna a trovarci presto!")),w=S(()=>({title:p("ads.title","Proposte per il tempo libero"),description:p("ads.description","Partner selezionati, sponsor locali e campagne dedicate alla community degli eventi.")})),h=v(!1),k=v(""),g=v([]),y=v(!1),P=v(null),o=K({currentPage:0,lastPage:0,nextPage:null,total:0}),O=t=>Y(t?.activity,t?.plan??t?.plan_label??t?.activity?.subscription_plan),D=t=>{const e=t?.activity?.name??t?.external_activity_name;return e||(t?.metadata?.source==="instagram_ingestion"?null:"Sciacca in Rete")},N=S(()=>!!o.nextPage);let u=null;const Z=(t={},e=1,l=!1)=>{const a=Number(t?.current_page??e),c=Number(t?.last_page??a);if(o.currentPage=Number.isFinite(a)?a:e,o.lastPage=Number.isFinite(c)?c:o.currentPage,o.nextPage=o.currentPage<o.lastPage?o.currentPage+1:null,t&&t.total!==void 0&&t.total!==null){const d=Number(t.total);Number.isFinite(d)&&(o.total=d)}else l||(o.total=g.value.length)},$=async()=>{typeof window>"u"||(await J(),u&&(u.disconnect(),u=null),!(!N.value||!P.value)&&(u=new IntersectionObserver(t=>{t.some(e=>e.isIntersecting)&&(!o.nextPage||h.value||y.value||z({page:o.nextPage,append:!0}))},{rootMargin:"320px 0px 0px"}),u.observe(P.value)))},z=async({page:t=1,append:e=!1}={})=>
1{if(e){if(y.value||h.value)return;y.value=!0}else h.value=!0,o.currentPage=0,o.lastPage=0,o.nextPage=null,o.total=0;try{const l={page:t},{data:a}=await H.get("/api/events",{params:l}),c=Array.isArray(a?.data)?a.data:[];if(e){const m=g.value.slice(),C=new Set(m.map(x=>x?.slug??x?.id));c.forEach(x=>{const E=x?.slug??x?.id;E==null||C.has(E)||(C.add(E),m.push(x))}),g.value=m}else g.value=c;const d=a?.meta??a;Z(d,t,e),k.value=""}catch(l){console.error(l),e||(k.value="Impossibile caricare gli eventi al momento.",g.value=[])}finally{e?y.value=!1:(h.value=!1,te()),$()}},B=t=>{const e=t?.date_start?new Date(t.date_start):null;if(!e||Number.isNaN(e.getTime()))return"";const l="Europe/Rome",a=new Intl.DateTimeFormat("it-IT",{day:"numeric",month:"long",year:"numeric",timeZone:l}),c=C=>new Intl.DateTimeFormat("it-IT",{year:"numeric",month:"2-digit",day:"2-digit",timeZone:l}).format(C),d=t?.date_end?new Date(t.date_end):null;if(d&&!Number.isNaN(d.getTime())&&c(e)!==c(d))return`${a.format(e)} â ${a.format(d)}`;const m=new Intl.DateTimeFormat("it-IT",{hour:"2-digit",minute:"2-digit",timeZone:l}).format(e);return m==="00:00"?a.format(e):`${a.format(e)} · ore ${m}`},T=t=>new Intl.NumberFormat("it-IT",{style:"currency",currency:"EUR",maximumFractionDigits:2}).format(Number(t??0)),V=t=>{const e=Array.isArray(t.ticket_types)?t.ticket_types:[];if((!!t.metadata?.institutional||t.external_activity_name==="Comune di Sciacca")&&!e.length&&!t.ticket_price&&!t.is_paid)return t.metadata?.free_entry===!1?"Vedi programma del Comune":"Ingresso libero";if(e.length){const a=e.map(m=>Number(m.price??0)).filter(m=>Number.isFinite(m));if(!a.length)return`${e.length} tipologie disponibili`;const c=Math.min(...a),d=Math.max(...a);return c===d?`${e.length} tipologie ⢠${T(c)}`:`${e.length} tipologie ⢠${T(c)} - ${T(d)}`}return t.ticket_price?T(t.ticket_price):t.is_paid?"Pagamento richiesto":"Ingresso libero"};return j(()=>P.value,()=>{$()}),j(N,t=>{if(!t&&u){u.disconnect(),u=null;return}$()}),W(()=>{z()}),q(()=>{u&&(u.disconnect(),u=null)}),(t,e)=>{const l=Q("AppImage");return i(),r("div",ie,[s("header",oe,[s("div",re,[s("div",ne,[s("p",le,n(_.value.preTitle),1),s("h1",ce,n(_.value.title),1),s("p",de,n(_.value.description),1)]),f(I(M),{to:_.value.ctaUrl,class:"inline-flex items-center gap-2 self-start rounded-full border border-slate-200 px-4 py-2 text-sm font-semibold text-slate-600 transition hover:border-primary-300 hover:text-primary-600"},{default:F(()=>[A(n(_.value.ctaLabel)+" ",1),e[0]||(e[0]=s("span",{"aria-hidden":"true"},"â",-1))]),_:1},8,["to"])])]),h.value?(i(),r("section",ue,[...e[1]||(e[1]=[s("span",{class:"h-10 w-10 animate-spin rounded-full border-2 border-primary-500 border-t-transparent"},null,-1),s("p",{class:"text-sm font-medium text-slate-500"},"Caricamento eventiâ¦",-1)])])):k.value?(i(),r("section",me,n(k.value),1)):(i(),r("section",pe,[g.value.length===0?(i(),r(R,{key:0},[s("div",ge,n(U.value),1),f(L,{position:"events_inline",title:w.value.title,description:w.value.description,limit:4},null,8,["title","description"])],64)):(i(),r(R,{key:1},[f(L,{position:"events_inline",title:w.value.title,description:w.value.description,limit:4},null,8,["title","description"]),s("div",fe,[(i(!0),r(R,null,G(g.value,a=>(i(),r("article",{key:a.slug,class:"group flex flex-col overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-lg shadow-slate-900/5 transition hover:-translate-y-1 hover:border-primary-200"},[f(I(M),{to:{name:"event-detail",params:{slug:a.slug}},class:"relative block aspect-[4/5] overflow-hidden bg-slate-200"},{default:F(()=>[a.cover_image_url?(i(),X(l,{key:0,src:a.cover_image_url,alt:`Immagine ${a.title}`,class:"h-full w-full object-cover transition duration-500 group-hover:scale-105",srcset:a.cover_image_srcset||"",sources:a.cover_image_sources||[],sizes:"(min-width: 1536px) 20vw, (min-width: 1280px) 22vw, (min-width: 1024px) 26vw, (min-width: 768px) 45vw, 100vw"},null,8,["src","alt","srcset","sources"])):(i(),r("div",xe,n(a.title),1))]),_:2},1032,["to"]),s("div",_e,[s("div",he,[s("h2",ye,n(a.title),1),s("p",ve,n(a.description),1)]),s("div",be,[s("div",we,[B(a)?(i(),r("p",ke,[e[2]||(e[2]=s("span",{class:"text-primary-500"},"ð
",-1)),s("span",null,n(B(a)),1)])):b("",!0),s("p",Pe,[e[3]||(e[3]=s("span",{class:"text-primary-500"},"ð",-1)),s("span",null,n(a.location??"Sciacca in Rete"),1)]),D(a)?(i(),r("p",Ne,[e[4]||(e[4]=s("span",{class:"text-primary-500"},"ð¥",-1)),s("span",Te,[s("span",null,n(D(a)),1),f(ee,{visible:O(a),size:"xs"}
1,null,8,["visible"])])])):b("",!0),V(a)?(i(),r("p",Ce,[e[5]||(e[5]=s("span",{class:"text-primary-500"},"ðï¸",-1)),s("span",null,n(V(a)),1)])):b("",!0)]),f(I(M),{to:{name:"event-detail",params:{slug:a.slug}},class:"inline-flex w-full items-center justify-center gap-2 rounded-full bg-slate-900 px-4 py-2.5 text-xs font-semibold uppercase tracking-wide text-white transition hover:bg-slate-700"},{default:F(()=>[A(n(a.is_paid?"Dettagli e ticket":"Scopri l'evento")+" ",1),e[6]||(e[6]=s("span",{"aria-hidden":"true"},"â",-1))]),_:2},1032,["to"])])])]))),128))]),g.value.length&&N.value?(i(),r("div",Se,[y.value?(i(),r("span",$e,[...e[7]||(e[7]=[s("span",{class:"h-4 w-4 animate-spin rounded-full border-2 border-primary-500 border-t-transparent"},null,-1),A(" Caricamento altri eventi⦠",-1)])])):(i(),r("span",Ee,"Scorri per caricare altri eventiâ¦"))])):b("",!0),N.value?(i(),r("div",{key:1,ref_key:"loadMoreTrigger",ref:P,class:"h-1 w-full"},null,512)):b("",!0)],64)),f(ae,{position:"events_sidebar",limit:2})]))])}}};export{Ve 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.