1import{t as f}from"./number-utils-B4fVme-k.js";const p="MPVJ6E3JUE",Y="c461e5c86e2f73c47f1bec35531998a3",N="knack_events",B=20,z=100,W=12,L=["Title","Event Date","City","State","Country","Venue"],q=["Property","Title","Event Date","Start Date","City","State","Country","Venue","Poster","Buy Tickets","Show Code","Coming Soon","Pre-Sale","Country Flag","Latitude","Longitude","_geoloc"],J="__cc_hit_start__",X="__cc_hit_end__",H=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],w={january:0,jan:0,february:1,feb:1,march:2,mar:2,april:3,apr:3,may:4,june:5,jun:5,july:6,jul:6,august:7,aug:7,september:8,sept:8,sep:8,semptember:8,october:9,oct:9,november:10,nov:10,december:11,dec:11},x=new Set(["the","and","or","of","in","at","on","to","for","a","an"]),I={al:"alabama",ak:"alaska",az:"arizona",ar:"arkansas",ca:"california",co:"colorado",ct:"connecticut",de:"delaware",fl:"florida",ga:"georgia",hi:"hawaii",id:"idaho",il:"illinois",ia:"iowa",ks:"kansas",ky:"kentucky",la:"louisiana",me:"maine",md:"maryland",ma:"massachusetts",mi:"michigan",mn:"minnesota",ms:"mississippi",mo:"missouri",mt:"montana",ne:"nebraska",nv:"nevada",nh:"new hampshire",nj:"new jersey",nm:"new mexico",ny:"new york",nc:"north carolina",nd:"north dakota",oh:"ohio",ok:"oklahoma",pa:"pennsylvania",ri:"rhode island",sc:"south carolina",sd:"south dakota",tn:"tennessee",tx:"texas",ut:"utah",vt:"vermont",va:"virginia",wa:"washington",wv:"west virginia",wi:"wisconsin",wy:"wyoming"},D={us:"united states",usa:"united states",uk:"united kingdom"},c=t=>typeof t=="string"?t.trim():"",C=t=>{const e=c(t).toLowerCase();return e==="yes"||e==="true"},Q=t=>typeof t=="string"?t:"",K=t=>t.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim(),l=t=>K(t).split(/\s+/).filter(Boolean),_=t=>t?/^https?:\/\//i.test(t)?t:t.startsWith("//")?`https:${t}`:/^[\w.-]+\.[a-z]{2,}/i.test(t)?`https://${t}`:"":"",A=(t,e,n)=>`${H[Math.max(0,Math.min(t-1,11))]} ${e}, ${n}`,Z=t=>{if(!t)return"";const e=t.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})(?:\s*to\s*(\d{1,2})\/(\d{1,2})\/(\d{4}))?$/i);if(!e)return t;const n=Number(e[1]),r=Number(e[2]),s=Number(e[3]);if(!e[4])return A(n,r,s);const a=Number(e[4]),o=Number(e[5]),i=Number(e[6]);return s===i&&n===a?`${H[Math.max(0,Math.min(n-1,11))]} ${r}-${o}, ${s}`:`${A(n,r,s)} - ${A(a,o,i)}`},tt=t=>{if(!t)return!1;const e=new Date(t).getTime(),n=new Date,r=Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()),s=r+7*24*60*60*1e3;return e>=r&&e<=s},h=(t,e)=>{var r;const n=(r=t._highlightResult)==null?void 0:r[e];return n?Q(n.value):""},et=t=>{const e=h(t,"Title"),n=h(t,"Event Date"),r=h(t,"City"),s=h(t,"State"),a=h(t,"Country"),o=h(t,"Venue"),i={};return e&&(i.title=e),n&&(i.date=n),r&&(i.city=r),s&&(i.state=s),a&&(i.country=a),o&&(i.venue=o),Object.keys(i).length>0?i:void 0},O=t=>{const e=f(t["Start Date"]),n=t._geoloc??{},r=f(n.lat)??f(t.Latitude),s=f(n.lng)??f(t.Longitude),a=c(t["Event Date"]),o=C(t["Coming Soon"]);return{id:c(t.objectID)||`${c(t["Show Code"])}-${c(t.City)}-${c(t.Venue)}`,series:c(t.Property),title:c(t.Title),date:Z(a),rawDate:a,city:c(t.City),state:c(t.State),country:c(t.Country),venue:c(t.Venue),poster:_(c(t.Poster)),ticketUrl:_(c(t["Buy Tickets"])),showCode:c(t["Show Code"]),startDateMs:e,latitude:r,longitude:s,isSoon:tt(e),isNewlyAnnounced:o,isPresale:C(t["Pre-Sale"]),countryFlagUrl:_(c(t["Country Flag"])),highlights:et(t)}},u=t=>t.trim().toLowerCase(),nt=t=>[u(t.showCode),u(t.title),u(t.city),u(t.state),u(t.country),u(t.venue),t.startDateMs??u(t.rawDate)].join("|"),U=t=>{const e=new Map;for(const n of t){const r=nt(n);if(!e.has(r)){e.set(r,n);continue}const s=e.get(r);if(!s)continue;const a=s.highlights?Object.keys(s.highlights).length:0;(n.highlights?Object.keys(n.highlights).length:0)>a&&e.set(r,n)}return[...e.values()]},rt=(t,e)=>{if(t===e)return!0;const n=t.length,r=e.length;if(Math.abs(n-r)>1)return!1;let s=0,a=0,o=0;for(;s<n&&a<r;){if(t[s]===e[a]){s+=1,a+=1;continue}if(o+=1,o>1)return!1;n>r?s+=1:(r>n||(s+=1),a+=1)}return(s<n||a<r)&&(o+=1),o<=1},st=t=>x.has(t)?[t]:I[t]?l(I[t]):D[t]?l(D[t]):[t],at=t=>{const e=l(t);return e.filter(r=>!(e.length>1&&x.has(r))).flatMap(st)},ot=t=>{const e=[...l(t.title),...l(t.series),...l(t.venue),...l(t.showCode),...l(t.date),...l(t.rawDate)],n=[...l(t.city),...l(t.state),...l(t.country)];return{allWords:[...e,...n],nonLocationWords:e}},it=(t,e)=>{if(e.length===0)return!0;const{allWords:n,nonLocationWords:r}=ot(t);return e.every(s=>!!(n.some(o=>o===s)||s.length>=3&&n.some(o=>o.startsWith(s))||s.length>=5&&r.some(o=>rt(o,s))))},ct=(t,e)=>{const n=at(e);return n.length===0?t:t.filter(r=>it(r,n))},lt=t=>{const e=new URLSearchParams({query:t.query,hitsPerPage:String(t.hitsPerPage),page:String(t.page),removeWordsIfNoResults:"none",typoTolerance:"min",ignorePlurals:"true",attributesToRetrieve:JSON.stringify(q)});t.numericFilters&&t.numericFilters.length>0&&e.set("numericFilters",JSON.stringify(t.numericFilters));const n=t.attributesToHighlight??L;return n.length>0&&e.set("attributesToHighlight",JSON.stringify(n)),t.includeHighlightTags!==!1&&(e.set("highlightPreTag",J),e.set("highlightPostTag",X)),e.toString()},R=async t=>{const e=`https://${p}-dsn.algolia.net/1/indexes/${encodeURIComponent(N)}/query`,n=lt(t),r=await fetch(e,{method:"POST",signal:t.signal,headers:{"Content-Type":"application/json","X-Algolia-Application-Id":p,"X-Algolia-API-Key":Y},body:JSON.stringify({params:n})});if(!r.ok)throw new Error(`Algolia query failed with status ${r.status}`);return await r.json()},k=()=>{const t=new Date;return Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())},M=async t=>R({query:"",page:t,hitsPerPage:z,attributesToHighlight:[],includeHighlightTags:!1}),G=()=>!!N,dt=t=>
1[t.city,t.state,t.country].filter(Boolean).join(", "),F=(t,e)=>{const n=t.startDateMs??Number.MAX_SAFE_INTEGER,r=e.startDateMs??Number.MAX_SAFE_INTEGER;return n!==r?n-r:t.title.localeCompare(e.title)},ut=(t,e)=>{const n=Date.UTC(e,t,1),r=t===11?e+1:e,s=t===11?0:t+1,a=Date.UTC(r,s,1);return{start:n,end:a}},gt=t=>{const e=String(t).trim().toLowerCase().split(/\s+/).filter(Boolean);let n=null,r=null;const s=[];for(const a of e){const o=a.replace(/[^a-z0-9]/g,"");if(o in w&&n===null){n=w[o];continue}if(/^(19|20)\d{2}$/.test(o)&&r===null){r=Number(o);continue}s.push(a)}return{originalQuery:t,cleanedQuery:s.join(" ").trim(),monthIndex:n,year:r}},ht=(t,e)=>{const n=[];if(t.monthIndex===null){if(t.year!==null){const g=Date.UTC(t.year,0,1),d=Date.UTC(t.year+1,0,1);return n.push(`Start Date >= ${g}`),n.push(`Start Date < ${d}`),{filters:n,effectiveYear:t.year}}return{filters:n,effectiveYear:null}}const r=new Date,s=r.getUTCFullYear(),a=r.getUTCMonth(),o=t.year??(e?s:t.monthIndex<a?s+1:s),i=ut(t.monthIndex,o);return n.push(`Start Date >= ${i.start}`),n.push(`Start Date < ${i.end}`),{filters:n,effectiveYear:o}},yt=async({query:t,page:e=0,hitsPerPage:n=W,includePastEvents:r=!1,signal:s})=>{if(!G())throw new Error("Missing Algolia configuration. Set VITE_ALGOLIA_APP_ID, VITE_ALGOLIA_SEARCH_API_KEY, and VITE_ALGOLIA_INDEX_NAME.");const a=gt(t),{filters:o,effectiveYear:i}=ht(a,r),g=await R({query:a.cleanedQuery,page:e,hitsPerPage:n,numericFilters:o,attributesToHighlight:L,includeHighlightTags:!0,signal:s}),d=U((g.hits??[]).map(O)),$=k(),j=!r&&a.monthIndex===null&&a.year===null?d.filter(S=>!S.startDateMs||S.startDateMs>=$):d,y=ct(j,a.cleanedQuery);!a.cleanedQuery&&a.monthIndex===null&&y.sort(F);const T=Math.max(1,Number(g.nbPages??1)),E=Math.max(0,Number(g.page??e)),V=Math.max(0,Number(g.nbHits??y.length)),v=T===1?y.length:V;return{events:y,page:E,totalPages:T,totalHits:v,hasMore:E+1<T,originalQuery:a.originalQuery,cleanedQuery:a.cleanedQuery,monthFilter:a.monthIndex===null||i===null?null:{monthIndex:a.monthIndex,year:i}}};let m=null;const mt=5*60*1e3;let P=0,b=0;const Tt=async()=>{if(m&&Date.now()-P<mt)return m;const t=++b;return m=(async()=>{if(!G())throw new Error("Missing Algolia configuration. Set VITE_ALGOLIA_APP_ID, VITE_ALGOLIA_SEARCH_API_KEY, and VITE_ALGOLIA_INDEX_NAME.");const e=await M(0),n=Math.min(Math.max(1,Number(e.nbPages??1)),B),r=[...e.hits??[]];for(let o=1;o<n;o+=1){const i=await M(o);r.push(...i.hits??[])}const s=k(),a=U(r.map(O).filter(o=>!o.startDateMs||o.startDateMs>=s));return a.sort(F),a})(),P=Date.now(),m.catch(()=>{b===t&&(m=null)}),m};export{J as E,Tt as a,X as b,dt as f,nt as g,yt as s};
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.