PageSourceSearch

https://miamifilmfestival.com/_build/assets/useFilmSearch-kb9JKZWz.js

js miamifilmfestival.com collected 2026-10-02 04:37:19 UTC 4,067 bytes, 1 lines download raw bytes

1import{K as x,r as u,M as a,N as C}from"./client-r8XyruuW.js";import{u as S}from"./useSearchParams-Cb-9Ihuq.js";const E=d=>d?.flatMap(f=>f?.sessions?.length?f.sessions.map(n=>({film:f,session:n,key:f.uri+"-"+n?.id})):[])||[];function A({programID:d}){const f=x("api.program.films",{program:d}),[n,M]=S({mode:null,venues:null,countries:null,genres:null,directors:null,search:null,themes:null,categories:null}),h=n.search,o=n.mode||"a-z",c=o==="calendar",l=u.useMemo(()=>f.data?h&&h!==""?f.data?.program?.films?.filter(s=>[a.Film,a.MultiFilm,a.Short,a.Event,a.Other].includes(s?.eventInfo?.eventType)):o==="shorts"?f.data?.program?.films?.filter(s=>[a.Short,a.MultiFilm].includes(s?.eventInfo?.eventType)):f.data?.program?.films?.filter(s=>[a.Film,a.MultiFilm,a.Event,a.Other].includes(s?.eventInfo?.eventType)):null,[h,o,f.data]),F=u.useMemo(()=>{let s=[];return l&&(o==="a-z"?s=l?.map(e=>({film:e,key:e.uri})):o==="shorts"?s=l?.map(e=>({film:e,key:e.uri})):(o==="date"||o==="calendar")&&(s=E(l)),(o==="a-z"||o==="shorts")&&s.sort((e,t)=>e.film.title?.replace(/^The /,"")?.localeCompare(t.film.title?.replace(/^The /,""))),o==="shorts"&&s.sort((e,t)=>{const r=e.film.eventInfo?.eventType,i=t.film.eventInfo?.eventType;return r===i?0:r===a.MultiFilm?-1:i===a.MultiFilm?1:0}),(o==="calendar"||o==="date")&&(s.sort((e,t)=>e.session?.info?.dateTime.localeCompare(t.session?.info?.dateTime)),s=s.filter(e=>C.tz(e.session?.info?.dateTime).isAfter(C.tz().subtract(2,"hour")))),!c&&n.venues&&n.venues.length&&(s=s.filter(e=>{let t=!1;return n.venues?.forEach(r=>{e.film.sessions?.length?e.film.sessions?.forEach(i=>{(i?.info?.venue?.title?.includes(r)||r==="all")&&(t=!0)}):(e.session?.info?.venue?.title?.includes(r)||r==="all")&&(t=!0)}),t})),!c&&n.countries&&n.countries.length&&(s=s.filter(e=>{const t=e.film.filmInfo?.country;let r=!1;return n.countries?.forEach(i=>{(t?.includes(i)||i==="all")&&(r=!0)}),r})),!c&&n.genres&&n.genres.length&&(s=s.filter(e=>{const t=e.film.filmInfo?.genre;let r=!1;return n.genres?.forEach(i=>{(t?.includes(i)||i==="all")&&(r=!0)}),r})),!c&&n.themes&&n.themes.length&&(s=s.filter(e=>{const t=e.film.filmInfo?.theme;let r=!1;return n.themes?.forEach(i=>{(t?.includes(i)||i==="all")&&(r=!0)}),r})),!c&&n.categories&&n.categories.length&&(s=s.filter(e=>{const t=e.film.eventInfo?.filmTypeLabel;let r=!1;return n.categories?.forEach(i=>{(t?.includes(i)||i==="all")&&(r=!0)}),r})),!c&&n.search&&(s=s.filter(e=>e.film.title?.toLowerCase().replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,"").includes(n.search?.toLowerCase().replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,""))||e.film.filmInfo?.country?.includes(n.search)||e.film.filmInfo?.genre?.includes(n.search)||e.film.filmInfo?.theme?.includes(n.search)))),s},[n,l,c]),p=u.useMemo(()=>(E(l)?.map(t=>{const r=t.session?.info?.venue?.parent?.node||t.session?.info?.venue;return{title:r?.title,databaseId:r?.databaseId}})).filter((t,r,i)=>t.title&&i.findIndex(m=>m.title===t.title)===r).sort((t,r)=>t.title.localeCompare(r.title)),[l]),g=u.useMemo(()=>(l?.map(e=>e?.filmInfo?.country||[])??[]).flat().filter((e,t,r)=>e&&r.findIndex(i=>i===e)===t).sort((e,t)=>e.localeCompare(t)),[l]),v=u.useMemo(()=>(l?.map(e=>e?.filmInfo?.genre||[])??[]).flat().filter((e,t,r)=>e&&r.findIndex(i=>i===e)===t).sort((e,t)=>e.localeCompare(t)),[l]),y=u.useMemo(()=>(l?.map(e=>e?.filmInfo?.theme||[])??[]).flat().filter((e,t,r)=>e&&r.findIndex(i=>i===e)===t).sort((e,t)=>e.localeCompare(t)),[l]),I=u.useMemo(()=>[...new Set(l?.map(s=>s?.eventInfo?.filmTypeLabel).flat().filter(Boolean)??[])].sort((s,e)=>s.localeCompare(e)),[l]),b=u.useMemo(()=>[],[l]);return u.useEffect(()=>{const s={venues:p?.map(e=>e.title),countries:g,genres:v,themes:y,categories:I};try{const e={...n};let t=!1;for(let r in s){const i=s[r],m=n[r]??[];i.length>0&&Array.isArray(m)&&m.length>0&&m.some(T=>!i.includes(T))&&(e[r]=m.filter(T=>i.includes(T)),t=!0)}t&&M.setAll(e)}catch{}},[n,p,g,v,y,I]),{status:f.status,disableFilters:c,params:n,paramsApi:M,items:F,mode:o,venues:p,countries:g,genres:v,themes:y,directors:b,categories:I}}export{E as f,A as u};

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.