1import{J as y,r as x,n as _,U as k,c as f,j as i,i as v,L as w}from"./index-C1yxSJ0L.js";const A={home_between_sections:"home",cinema_between_sections:"cinemas"},S=new Set(["home","cinemas","calendrier","articles","cineclubs","carte","kaleidoscope","dulac_cinemas","infos_pratiques"]);function j(n){const e=String(n??"").trim();if(!e)return"";if(e.startsWith("/"))return e;const o=k(e);if(o.startsWith("//"))return`https:${o}`;try{const t=new URL(o);if(t.protocol==="http:"||t.protocol==="https:")return t.toString()}catch{return""}return""}function h(n){const e=o=>{const t=[];for(const s of o){const a=typeof s=="string"?s.trim():"";if(S.has(a)){t.push(a);continue}const l=A[a];l&&t.push(l)}return[...new Set(t)]};return Array.isArray(n)?e(n):typeof n=="string"&&n.trim()?e([n]):[]}function N(n){if(!Array.isArray(n))return[];const e=[];for(const o of n){const t=typeof o=="string"?o.trim():"";t&&e.push(t)}return[...new Set(e)]}function I(n){const e=typeof n=="string"?n.trim():"";return e==="horizontal"?"banner":e==="vertical"?"sidebar":e==="banner"||e==="sidebar"?e:"banner"}function P(n={}){const{data:e,isLoading:o}=y(),t=n.placement,s=n.format,a=n.cinemaId===void 0||n.cinemaId===null?null:String(n.cinemaId).trim()||null;return{blocks:x.useMemo(()=>(Array.isArray(e==null?void 0:e.featuredBlocks)?e.featuredBlocks:[]).map(r=>{const u=_(String((r==null?void 0:r.image_url)??"").trim()),b=j(r==null?void 0:r.link_uri);if(!u||!b)return null;let d=h(r==null?void 0:r.placements);if(d.length===0&&r&&typeof r=="object"&&"slot"in r&&(d=h(r.slot)),d.length===0)return null;const g=String((r==null?void 0:r.title)??"").trim(),m=typeof(r==null?void 0:r.link_title)=="string"?r.link_title.trim():"";return{id:String((r==null?void 0:r.id)??""),title:g||void 0,imageUrl:u,imageAlt:typeof(r==null?void 0:r.image_alt)=="string"&&r.image_alt.trim()||g||"Publicité",href:b,linkTitle:m||g||void 0,placements:d,cinemaIds:N(r==null?void 0:r.cinema_ids),format:I(r==null?void 0:r.format),order:Number.isFinite(Number(r==null?void 0:r.order))?Number(r==null?void 0:r.order):0}}).filter(r=>!!r).filter(r=>t?r.placements.includes(t):!0).filter(r=>s?r.format===s:!0).filter(r=>t!=="cinemas"||!a||!r.cinemaIds||r.cinemaIds.length===0?!0:r.cinemaIds.includes(a)).sort((r,u)=>r.order-u.order),[e==null?void 0:e.featuredBlocks,t,s,a]),isLoading:o}}function B({href:n,imageUrl:e,imageAlt:o,linkTitle:t,format:s="sidebar",className:a}){const l=f("group relative overflow-hidden transition-[box-shadow,transform] duration-200 hover:shadow-md",s==="sidebar"?"aspect-[4/5] w-full max-w-[280px] rounded-xl border border-border/70 bg-card shadow-sm":f("w-full rounded-lg border border-border/50 bg-muted/15 shadow-sm","ring-1 ring-inset ring-foreground/[0.04] dark:ring-foreground/[0.07]","aspect-[1220/330]"),a),c=i.jsx("img",{src:e,alt:o,loading:"lazy",className:f("h-full w-full transition-transform duration-300 group-hover:scale-[1.008]",s==="sidebar"?"object-cover":"object-cover object-center")});return v(n)?i.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",title:t||o,className:l,children:c}):i.jsx(w,{to:n,title:t||o,className:l,children:c})}function L({placement:n,layout:e="inline",limit:o,className:t,itemClassName:s,cinemaId:a}){const{blocks:l}=P({placement:n,cinemaId:a}),c=typeof o=="number"?l.slice(0,o):l;if(c.length===0)return null;const p=i.jsx("div",{className:f("w-full flex flex-col gap-4",e==="homeSection"&&"container min-w-0",t),children:c.map(r=>i.jsx(B,{href:r.href,imageUrl:r.imageUrl,imageAlt:r.imageAlt,linkTitle:r.linkTitle,format:"banner",className:s},r.id))});return e==="homeSection"?i.jsx("section",{className:"border-t border-border/80 bg-muted/20 py-6 md:py-8","aria-label":"Partenariat",children:p}):p}export{L as F};
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.