1import{_ as T}from"./CvkORgIo.js";import{_ as $}from"./8dQbaTgK.js";import{_ as F}from"./B5JXplTN.js";import{g as H,j as u,R as M,S as w,ax as E,d as U,e as B,w as S,I as R,c as l,a as r,b as y,m as a,l as b,t as L,B as A,p as C,v as D,o as i,N,z as V}from"./LtmEUpah.js";/* empty css */import"./DfeXKO78.js";import"./BxkI17w-.js";import"./D-rb8YRO.js";import"./DiwcBbHB.js";import"./DuezaHXm.js";const j=()=>{const P=H(),g=u(()=>String(P.params.slug||"")),p=u(()=>`brands-${g.value}`),{data:s,pending:k,error:m,refresh:n}=M(p,async()=>{const c=g.value;if(!c)throw w({statusCode:404,statusMessage:"Page not found (invalid slug)"});const[x,d]=await Promise.all([E({slug:c}).catch(e=>(console.error(`[GQL Error] SSR fetch for collection-page "${c}" failed:`,e),null)),$fetch("/api/fetched-data/products").catch(e=>(console.error(`[Products API Error] Fetch failed for "${c}":`,e),null))]),_=x?.collectionPage;if(!_)throw w({statusCode:404,statusMessage:"Page not found"});let h=d?Array.isArray(d)?d:d.nodes||d.edges?.map(e=>e.node)||[]:[];const t=(_.collectionPageFields?.selectProducts||[]).map(e=>String(e));if(h.length<10||!t.every(e=>h.some(o=>String(o?.databaseId)===e)))try{const e=await $fetch("/api/fetched-data/products").catch(o=>(console.error("[Products API Fallback Error] Fetch failed for collection page:",o),null));h=e?Array.isArray(e)?e:e.nodes||e.edges?.map(o=>o.node)||[]:[]}catch(e){console.error("Products fallback failed in useCollectionPageData:",e)}return{page:_,products:h}},{watch:[g]});return{data:s,pending:k,error:m,slug:g,refresh:n}},q={key:0,class:"flex flex-col min-h-[500px]"},G={key:1,class:"product-page-container"},O={class:"container title-banner-content"},z={key:0,class:"title-banner-image-content"},W=["src","alt"],J={class:"banner-main-row md:w-2/3"},Q={class:"title-banner-title"},Y=["innerHTML"],K={class:"container mobile-intro"},X=["innerHTML"],Z={key:0,class:"bg-white py-20 border-b border-nutravet-100"},ee={class:"container"},te=["innerHTML"],oe={class:"pt-10"},ne={class:"container text-center"},ae={class:"text-3xl lg:text-4xl font-bold text-nutravet-800 uppercase tracking-wider"},re={key:1,class:"container featured-products-section mt-10"},se={key:2,class:"bg-white py-20 border-b border-nutravet-100"},ce={class:"container"},le=["innerHTML"],ie=["innerHTML"],de={key:2,class:"page my-24"},ue=U({__name:"[slug]",setup(P){const{getTrackingId:g}=B(),p=t=>{if(!t)return"";const e=o=>o.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&");try{return new DOMParser().parseFromString(t,"text/html").documentElement.textContent||e(t)}catch{return e(t)}},{data:s,pending:k,slug:m}=j();S(s,t=>{});const n=u(()=>s.value?.page?.collectionPageFields||null),c=u(()=>{const t=s.value?.products||[];if(!n.value||!t.length)return[];const e=(n.value.selectProducts||[]).map(o=>String(o));return t.filter(o=>o&&o.databaseId&&e.includes(String(o.databaseId)))});S(c,t=>{t?.length&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({ecommerce:null}),window.dataLayer.push({event:"view_item_list",ecommerce:{item_list_id:m.value,item_list_name:s.value?.page?.title||"Featured List",items:t.map((e,o)=>({item_id:g(e),item_name:e.name,index:o+1,price:parseFloat(String(e.price||"0").replace(/[^0-9.-]+/g,"")||"0"),quantity:1}))}}))},{immediate:!0});const x=N();R(()=>{const t=x.public.SITE_URL||"nutravet.co.uk",e=t.startsWith("http")?t.replace(/\/$/,""):`https://${t}`,o=s.value?.page?.title||"Product Page",f=s.value?.page?.seo?.metaDesc||`Explore our ${o} range of pet healthcare products from Nutravet.`;return{title:`${o}`,meta:[{hid:"description",name:"description",content:f},{hid:"og:title",property:"og:title",content:o},{hid:"og:description",property:"og:description",content:f},{hid:"og:image",property:"og:image",content:n.value?.featuredImage?.node?.mediaItemUrl||n.value?.backgroundImage?.node?.mediaItemUrl||"/images/nutravet-logo-brown.jpg"},{hid:"og:url",property:"og:url",content:`${e}/brands/${m.value}`},{hid:"og:type",property:"og:type",content:"website"}],link:[{rel:"canonical",href:`${e}/brands/${m.value}`}],script:[{type:"application/ld+json",innerHTML:JSON.stringify({"@context":"https://schema.org","@type":"CollectionPage",name:o,description:f,image:n.value?.featuredImage?.node?.mediaItemUrl||n.value?.backgroundImage?.node?.mediaItemUrl,url:`${e}/brands/${m.value}`,mainEntity:{"@type":"ItemList",itemListElement:(c.value||[]).map((v,I)=>({"@type":"ListItem",position:I+1,url:`${e}/product/${v.slug}`,name:v.name}))}})}],style:s.value?.page?.pageCss?.pageCss?[{innerHTML:s.value.page.pageCss.pageCss}]:[]}});const d=u(()=>{const t={};return n.value?.backgroundImage?.node?.mediaItemUrl?t.backgroundImage=`url(${n.value.backgroundImage.node.mediaItemUrl})`:n.value?.backgroundColour?t.backgroundColor=n.value.backgroundColour:(t.backgroundImage="linear-gradient(0deg, rgba(0,0,0,0), rgba(0,0,0,0)), url('/images/register-bg-img2.png')",t.backgroundPosition="top left",t.backgroundRepeat="repeat"),t["--background-tint"]=n.value?.backgroundImageTint||"rgba(0,0,0,0.3)",t}),_=u(()=>n.value?.featuredImage?.node?.mediaItemUrl||null),h=u(()=>n.value?.featuredImage?.node?.altText||s.value?.page?.title||"Featured image");return(t,e)=>{const o=T,f=$,v=F,I=D;return i(),l("div",null,[r(k)?(i(),l("div",q,[y(o)])):r(s)?.page?(i(),l("main",G,[a("header",{class:"title-banner",style:A(r(d))},[a("div",O,[r(_)?(i(),l("div",z,[a("img",{src:r(_),alt:r(h),class:"featured-image-element"},null,8,W)])):b("",!0),a("div",J,[a("h1",Q,L(r(s).page.title||"Featured"),1),a("section",{class:"introductory-text desktop-intro",innerHTML:p(r(s).page.content)},null,8,Y)])]),a("div",K,[a("section",{class:"introductory-text",innerHTML:p(r(s).page.content)},null,8,X)])],4),r(n).mainBlurbSection?(i(),l("section",Z,[a("div",ee,[a("div",null,[a("div",{class:"text-xl text-nutravet-800 leading-relaxed mb-10 font-light introductory-content prose prose-nutravet max-w-none",innerHTML:p(r(n).mainBlurbSection)},null,8,te)])])])):b("",!0),a("section",oe,[a("div",ne,[a("h2",ae,L(r(n).rightFormatForYouH2Text||"Which format is right for you?"),1)])]),r(c)?.length>0?(i(),l("section",re,[y(I,null,{fallback:C(()=>[y(v)]),default:C(()=>[y(f,{products:r(c),"show-pagination":!1},null,8,["products"])]),_:1})])):b("",!0),r(n)?.collectionPageBottomSection?(i(),l("section",se,[a("div",ce,[r(n).collectionPageBottomTitle?(i(),l("h2",{key:0,class:"text-2xl font-bold mb-6",innerHTML:r(n).collectionPageBottomTitle},null,8,le)):b("",!0),a("section",{class:"collection-content",innerHTML:p(r(n).collectionPageBottomSection)}
1,null,8,ie)])])):b("",!0)])):(i(),l("main",de,[...e[0]||(e[0]=[a("h2",{class:"page__title"},"Page Not Found",-1),a("div",{class:"page__content text-center"},[a("p",null,"Sorry, that page doesn't exist or could not be loaded.")],-1)])]))])}}}),xe=V(ue,[["__scopeId","data-v-e3d26bb9"]]);export{xe 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.