1import{V as e}from"./MDmhbhK1.js";import{i as a,_ as s,c as l,a4 as i,k as n,y as t,f as o,G as u,g as d,h as r,b as c,a as m,w as v}from"./BMSgpEOY.js";import{h as g,U as p,G as _,E as y,i as f,u as b,ag as I,b as k,ac as h,a9 as w,o as T,a7 as V,as as C,ak as $,F as j,af as x,ad as D,c as M,ar as z}from"./BfDnOnaI.js";import"./DW_5mmOQ.js";import"./BgqashYW.js";import"./C6JKCuGv.js";import"./Ddjqagto.js";import"./zVa8_k6r.js";import"./D6lL9OO6.js";import"./BrKvIZ3J.js";import"./B0UcvsiM.js";import"./BxKFyGuJ.js";import"./CLggjyVW.js";import"./Db6QDIQ7.js";const P={class:"images-filters"},B={class:"images-filters__fields"},F=g({__name:"ImagesFilters",props:{venueTypes:{},locations:{},loading:{type:Boolean}},emits:["filter"],setup(s,{emit:l}){const i=l,n=k(null),t=k(null);function o(){i("filter",{venueTypeId:n.value,regionId:t.value})}return(l,i)=>(h(),p("div",P,[_("div",B,[y(e,{modelValue:b(n),"onUpdate:modelValue":i[0]||(i[0]=e=>f(n)?n.value=e:null),items:s.venueTypes,"item-title":"label","item-value":"id",label:"Type de lieu",variant:"outlined",density:"compact","hide-details":"",clearable:"",class:"images-filters__select"},null,8,["modelValue","items"]),y(e,{modelValue:b(t),"onUpdate:modelValue":i[1]||(i[1]=e=>f(t)?t.value=e:null),items:s.locations,"item-title":"name","item-value":"id",label:"Région",variant:"outlined",density:"compact","hide-details":"",clearable:"",class:"images-filters__select"},null,8,["modelValue","items"])]),y(a,{color:"primary",loading:s.loading,onClick:o},{default:I(()=>[...i[2]||(i[2]=[w(" Filtrer ",-1)])]),_:1},8,["loading"])]))}}),E=Object.assign(s(F,[["__scopeId","data-v-07e51a23"]]),{__name:"PagesImagesFilters"}),G={class:"image-card__img-ctnr"},U=["alt"],O={class:"image-card__caption"},S=["alt","src"],q={class:"address-text"},L=g({__name:"ImageCard",props:{image:{}},emits:["click"],setup(e,{emit:a}){const s=e,i=a,n=k(!1),t=k(),o=s.image.urls.width,u=s.image.urls.height,d=`data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 ${o} ${u}'%3E%3Crect fill='%23e0e0e0' width='${o}' height='${u}'/%3E%3C/svg%3E`;return T(()=>{requestAnimationFrame(()=>{const e=s.image.urls["720w"]??"";if(!e)return;const a=new Image;a.src=e,a.onload=()=>{n.value=!0,t.value&&(t.value.src=e)}})}),(a,s)=>{const n=l;return h(),p("div",{class:"image-card",onClick:s[2]||(s[2]=a=>i("click",e.image))},[_("div",G,[_("img",{ref_key:"imgRef",ref:t,src:d,alt:e.image.business.label},null,8,U)]),_("div",O,[y(n,{to:`/lieu/${e.image.business.slug}`,target:"_blank",class:"image-card__caption--name",onClick:s[0]||(s[0]=C(()=>{},["stop"]))},{default:I(()=>[w(V(e.image.business.label),1)]),_:1},8,["to"]),y(n,{to:e.image.business.address.page,target:"_blank",class:"image-card__caption--location",onClick:s[1]||(s[1]=C(()=>{},["stop"]))},{default:I(()=>[e.image.business.address.country.id>1?(h(),p("img",{key:0,alt:e.image.business.address.country.label,class:"geo-flag",src:`/images/flags/country-${e.image.business.address.country.id}.svg`},null,8,S)):$("",!0),_("span",q,V(e.image.business.address.toString),1)]),_:1},8,["to"])])])}}}),R=Object.assign(s(L,[["__scopeId","data-v-c13f858d"]]),{__name:"PagesImagesImageCard"}),A={class:"images-masonry"},H={key:0,class:"images-masonry__empty"},N={key:1,class:"images-masonry__load-more"},J=g({__name:"ImagesGrid",props:{images:{},hasMore:{type:Boolean},loadingMore:{type:Boolean}},emits:["load-more","image-click"],setup(e,{emit:s}){const l=s;return(s,n)=>{const t=R;return h(),p("div",null,[_("div",A,[(h(!0),p(j,null,x(e.images,(e,a)=>(h(),D(t,{key:`${e.business.id}-${a}`,image:e,onClick:a=>l("image-click",e)},null,8,["image","onClick"]))),128))]),0===e.images.length?(h(),p("p",H," Il n'y a pas d'image répondant à ces critères ... ")):$("",!0),e.hasMore?(h(),p("div",N,[y(a,{variant:"outlined",loading:e.loadingMore,onClick:n[0]||(n[0]=e=>l("load-more"))},{default:I(()=>[n[1]||(n[1]=_("span",null,"Voir plus",-1)),y(i,{end:"",icon:"fas fa-chevron-down",size:"small"})]),_:1},8,["loading"])])):$("",!0)])}}}),K=Object.assign(s(J,[["__scopeId","data-v-f58de67a"]]),{__name:"PagesImagesGrid"}),Q={class:"venue-modal__headings"},W={class:"venue-modal__name"},X={class:"venue-modal__address"},Y=["alt","src"],Z={key:0,class:"venue-modal__swiper-wrapper"},ee={"slides-per-view":1,"space-between":16,navigation:!0,style:{"--swiper-navigation-size":"1rem"}},ae=["src","alt"],se={class:"venue-modal__last-slide"},le=["src","alt"],ie={class:"venue-modal__last-slide-overlay"},ne={class:"venue-modal__section"},te=["innerHTML"],oe={class:"venue-modal__section"},ue={class:"venue-modal__attributes"},de={class:"venue-modal__attribute-card"},re={key:0,class:"venue-modal__attribute-card"},ce={key:1,class:"venue-modal__attribute-card"},me={key:2,class:"venue-modal__attribute-card"},ve={key:3,class:"venue-modal__attribute-card"},ge={key:1,class:"venue-modal__section"},pe={class:"venue-modal__event-types"},_e={class:"venue-modal__section"},ye={class:"venue-modal__pricing"},fe={class:"venue-modal__price-card"},be={key:0},Ie={key:1},ke={class:"venue-modal__price-card"},he={key:0},we={key:1},Te=g({__name:"VenueImageModal",props:{modelValue:{type:Boolean},image:{}},emits:["update:modelValue"],setup(e,{emit:s}){const c=e,m=s,v=t().public.mediaRootUrl,g=M({get:()=>c.modelValue,set:e=>m("update:modelValue",e)}),k=M(()=>c.image?.business??null),T=M(()=>c.image?.urls["960x640"]??""),C=M(()=>k.value&&v?k.value.photoFilenames.map(e=>`${v}/images/1/salles/960x640/${k.value?.id}/${e}`).filter(e=>e!==T.value):[]),z=M(()=>T.value?[T.value,...C.value]:[]);function P(e,a){return e&&a?Math.min(e,a):e||a}const B=M(()=>k.value?P(k.value.pricingVenuePrv,k.value.pricingVenuePro):null),F=M(()=>k.value?P(k.value.pricingPerGuestPrv,k.value.pricingPerGuestPro):null),E=M(()=>k.value?.pricingDisplay?B.value?`Dès ${B.value} â¬`:F.value?`Dès ${F.value} ⬠par pers.`:null:null);
1return(e,s)=>{const t=l;return h(),D(n,{modelValue:b(g),"onUpdate:modelValue":s[1]||(s[1]=e=>f(g)?g.value=e:null),"max-width":"950",scrollable:""},{default:I(()=>[b(k)?(h(),D(o,{key:0,class:"venue-modal"},{default:I(()=>[y(u,{class:"venue-modal__header"},{default:I(()=>[_("div",Q,[_("h2",W,V(b(k).label),1),_("p",X,[b(k).address.country.id>1?(h(),p("img",{key:0,alt:b(k).address.country.label,class:"geo-flag",src:`/images/flags/country-${b(k).address.country.id}.svg`},null,8,Y)):$("",!0),w(" "+V(b(k).address.toString),1)])]),y(a,{icon:"",variant:"text",size:"small",onClick:s[0]||(s[0]=e=>g.value=!1)},{default:I(()=>[y(i,{icon:"fas fa-times"})]),_:1})]),_:1}),y(d,{class:"venue-modal__content"},{default:I(()=>[b(z).length>0?(h(),p("div",Z,[_("swiper-container",ee,[(h(!0),p(j,null,x(b(z),(e,a)=>(h(),p("swiper-slide",{key:a},[_("img",{src:e,alt:b(k).label,class:"venue-modal__slide-img"},null,8,ae)]))),128)),_("swiper-slide",null,[_("div",se,[_("img",{src:b(T),alt:b(k).label,class:"venue-modal__slide-img"},null,8,le),_("div",ie,[y(t,{to:`/lieu/${b(k).slug}`,target:"_blank"},{default:I(()=>[w(" Découvrez toutes les images du lieu ("+V(b(k).photosCount)+" images) ",1)]),_:1},8,["to"])])])])])])):$("",!0),_("div",ne,[_("div",{class:"venue-modal__description",innerHTML:b(k).description},null,8,te),y(t,{to:`/lieu/${b(k).slug}`,target:"_blank",class:"venue-modal__learn-more"},{default:I(()=>[...s[2]||(s[2]=[w(" En savoir plus ",-1)])]),_:1},8,["to"])]),_("div",oe,[s[3]||(s[3]=_("h3",{class:"venue-modal__subtitle"}," Caractéristiques principales ",-1)),_("div",ue,[_("div",de,[y(i,{icon:"fas fa-cube",size:"small"}),_("p",null,V(b(k).spaces)+" espace"+V(1!==b(k).spaces?"s":""),1)]),b(k).area?(h(),p("div",re,[y(i,{icon:"fas fa-ruler-triangle",size:"small"}),_("p",null,V(b(k).area)+" m²",1)])):$("",!0),b(k).capMax?(h(),p("div",ce,[y(i,{icon:"fas fa-users",size:"small"}),_("p",null,V(b(k).capMax)+" pers.",1)])):$("",!0),b(k).hostingBedsCount?(h(),p("div",me,[y(i,{icon:"fas fa-bed",size:"small"}),_("p",null,V(b(k).hostingBedsCount)+" pers.",1)])):$("",!0),b(E)?(h(),p("div",ve,[y(i,{icon:"fas fa-money-bill",size:"small"}),_("p",null,V(b(E)),1)])):$("",!0)])]),b(k).eventTypes.length>0?(h(),p("div",ge,[s[4]||(s[4]=_("h3",{class:"venue-modal__subtitle"}," Ce lieu est idéal pour les événements suivants : ",-1)),_("div",pe,[(h(!0),p(j,null,x(b(k).eventTypes,e=>(h(),p("div",{key:e.id,class:"venue-modal__event-type-card"},[_("span",null,V(e.label),1)]))),128))])])):$("",!0),_("div",_e,[s[7]||(s[7]=_("h3",{class:"venue-modal__subtitle"}," Tarifs ",-1)),_("div",ye,[_("div",fe,[s[5]||(s[5]=_("p",{class:"venue-modal__price-title"}," Tarif par personne ",-1)),b(k).pricingDisplay&&b(F)?(h(),p("p",be," Dès "+V(b(F))+" ⬠",1)):(h(),p("p",Ie," Sur devis "))]),_("div",ke,[s[6]||(s[6]=_("p",{class:"venue-modal__price-title"}," Tarif salle vide ",-1)),b(k).pricingDisplay&&b(B)?(h(),p("p",he," Dès "+V(b(B))+" ⬠",1)):(h(),p("p",we," Sur devis "))])])])]),_:1}),y(r,{class:"venue-modal__footer"},{default:I(()=>[y(t,{to:`/lieu/${b(k).slug}`,target:"_blank",class:"venue-modal__footer-link"},{default:I(()=>[...s[8]||(s[8]=[w(" Voir la fiche du lieu ",-1)])]),_:1},8,["to"]),y(t,{to:`/lieu/${b(k).slug}`,target:"_blank",class:"venue-modal__footer-cta"},{default:I(()=>[...s[9]||(s[9]=[w(" Demander un devis ",-1)])]),_:1},8,["to"])]),_:1})]),_:1})):$("",!0)]),_:1},8,["modelValue"])}}}),Ve=Object.assign(s(Te,[["__scopeId","data-v-6507dcc3"]]),{__name:"PagesImagesVenueImageModal"});async function Ce(e={}){return await $fetch("/api/media/discovery-images",{query:{limit:e.limit??100,offset:e.offset??0,businessTypeId:e.businessTypeId??void 0,regionId:e.regionId??void 0}})}async function $e(){return await $fetch("/api/location/list")}const je={class:"images-page"},xe={class:"images-page__content"},De={key:0,class:"text-center pa-16"},Me=s(g({__name:"images",async setup(e){let a,s;c({title:"Images de lieux événementiels inspirants - ABC Salles",meta:[{name:"description",content:"Découvrez des images inspirantes de lieux événementiels à louer pour vos événements privés ou professionnels"}]});const{data:l,status:i}=([a,s]=z(async()=>m("discovery-images",async()=>{const[e,a,s]=await Promise.all([Ce({limit:100,offset:0}),$fetch("/api/venue/types",{query:{lightEncode:1}}),$e()]);return{discoveryData:e,venueTypesData:a,locationsData:s}})),a=await a,s(),a),n=k(l.value?.discoveryData.images??[]),t=k(l.value?.discoveryData.count??0),o=k([{id:0,label:"Tous",priority:0,labels:null},...l.value?.venueTypesData??[]]),u=k([{id:0,name:"Tous"},...l.value?.locationsData??[]]),d=k(0),r=k(100),g=k(!1),I=k(!1),w=M(()=>"pending"===i.value),T=k({venueTypeId:null,regionId:null}),V=M(()=>n.value.length<t.value),C=k(!1),$=k(null);function x(e){$.value=e,C.value=!0}async function D(){if(!g.value){g.value=!0;try{d.value+=r.value,r.value=50;const e=await Ce({limit:r.value,offset:d.value,businessTypeId:T.value.venueTypeId,regionId:T.value.regionId});n.value=[...n.value,...e.images??[]],t.value=e.count??0}catch(e){}finally{g.value=!1}}}async function P(e){I.value=!0,T.value={venueTypeId:e.venueTypeId&&0!==e.venueTypeId?e.venueTypeId:null,regionId:e.regionId&&0!==e.regionId?e.regionId:null},d.value=0,r.value=100;try{const e=await Ce({limit:r.value,offset:0,businessTypeId:T.value.venueTypeId,regionId:T.value.regionId});n.value=e.images??[],t.value=e.count??0}catch(a){}finally{I.value=!1}}return(e,a)=>{const s=E,l=K,i=Ve;return h(),p("div",je,[a[2]||(a[2]=_("section",{class:"images-page__intro"},[_("h1",null,"Images inspirantes de lieux événementiels")],-1)),_("section",xe,[b(w)?(h(),p("div",De,[y(v,{indeterminate:"",color:"primary",size:"48"}),a[1]||(a[1]=_("p",{class:"mt-4 text-body-medium"}," Chargement des images... ",-1))])):(h(),p(j,{key:1},[y(s,{"venue-types":b(o),locations:b(u),loading:b(I),onFilter:P},null,8,["venue-types","locations","loading"]),y(l,{images:b(n),"has-more":b(V),"loading-more":b(g),onLoadMore:D,onImageClick:x},null,8,["images","has-more","loading-more"])],64))]),y(i,{modelValue:b(C),"onUpdate:modelValue":a[0]||(a[0]=e=>f(C)?C.value=e:null),image:b($)},null,8,["modelValue","image"])])}}}),[["__scopeId","data-v-62afaf8b"]]);export{Me 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.