1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2235],{52235:(e,t,i)=>{i.r(t),i.d(t,{default:()=>x});var s=i(37876),l=i(55128),r=i(19909),a=i(88016),n=i(14232),c=i(12540),o=i(51930),d=i(48230),u=i.n(d),g=i(68202),h=i(37659),m=i(14776),p=i(278),f=i(46153),v=i(69418);let S={general:"General Services",emergency:"Emergency Services",speciality:"Speciality Services",additional:"Additional Services",type_1:"General Services",type_2:"Emergency Services",type_3:"Speciality Services",type_4:"Additional Services"},x=e=>{let{websiteData:t,data:i}=e,{TriggerEvents:d}=(0,o.useCarterAnalytics)(),[x,y]=(0,n.useState)(""),[b,N]=(0,n.useState)(!1),[j,C]=(0,n.useState)([]),[E,M]=(0,n.useState)(),[_,w]=(0,n.useState)(!1),[P,I]=(0,n.useState)(new Set),{multiSiteGroupChildren:O,loading:T,fetchMultiSiteGroupChildren:$}=(0,h.i5)(),G=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(console.log("[MultiSiteServicesPage] Fallback useEffect running",{hasFetched:G.current,isLoading:T.isLoading,hasChildren:!!O?.results?.length,childrenCount:O?.results?.length||0,hasSlug:!!t?.slug,category:t?.category,isMultiSiteChild:t?.isMultiSiteChild,fetchFunctionExists:!!$}),G.current||T.isLoading)return void console.log("[MultiSiteServicesPage] Skipping fetch:",{reason:G.current?"already fetched":"currently loading"});let e=t?.slug,i=t?.status?.toLowerCase()||"draft",s=t?.category,l=t?.isMultiSiteChild,r=t?.isMultiSiteParent,a=t?.isMultiSiteChild&&t?.parent?.folderId?._id||t?.folderId?._id,n=t?.isMultiSiteChild&&t?.parent?.slug?t.parent.slug:t?.slug,c=s===m.CategoryEnum.MultiWebsiteGroup||"MULTI_WEBSITE_GROUP"===s||l||r;!O?.results?.length&&c&&e&&$&&(console.log("[MultiSiteServicesPage] Fallback: Triggering fetchMultiSiteGroupChildren",{parentSlug:n,type:i,folderId:a,category:s,isMultiSiteChild:l,isMultiSiteParent:r}),G.current=!0,$(n,i,a).catch(e=>{console.error("[MultiSiteServicesPage] Error in fetchMultiSiteGroupChildren:",e),G.current=!1}))},[t?.slug,t?.status,t?.category,t?.isMultiSiteChild,t?.isMultiSiteParent,t?.parent?.slug,t?.parent?.folderId?._id,t?.folderId?._id,O?.results?.length,T.isLoading,$]),(0,n.useEffect)(()=>{G.current=!1},[t?._id]),(0,n.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>{let e=t?.category===m.CategoryEnum.MultiWebsiteGroup||t?.isMultiSiteChild||t?.isMultiSiteParent,i=!O?.results?.length,s=!!t?.slug,l=!T.isLoading,r=!G.current;if(e&&i&&s&&l&&r&&$){let e=t?.isMultiSiteChild&&t?.parent?.slug?t.parent.slug:t.slug,i=t?.status?.toLowerCase()||"draft",s=t?.isMultiSiteChild&&t?.parent?.folderId?._id||t?.folderId?._id;if(console.log("[MultiSiteServicesPage] Timeout fallback: Triggering fetch",{parentSlug:e,type:i,folderId:s,fetchFunctionType:typeof $,fetchFunctionExists:!!$}),!$)return void console.error("[MultiSiteServicesPage] fetchMultiSiteGroupChildren is not available!");G.current=!0,console.log("[MultiSiteServicesPage] About to call fetchMultiSiteGroupChildren..."),console.log("[MultiSiteServicesPage] Function details:",{functionName:$?.name,functionType:typeof $,isAsync:$?.constructor?.name==="AsyncFunction",functionString:$?.toString?.()?.substring(0,200)});let l=$(e,i,s);console.log("[MultiSiteServicesPage] Promise created:",{isPromise:l instanceof Promise,promiseState:l}),l.then(e=>{console.log("\uD83D\uDD0D [MultiSiteServicesPage] fetchMultiSiteGroupChildren SUCCESS:",e)}).catch(e=>{console.error("[MultiSiteServicesPage] Error in timeout fallback fetch:",e),console.error("[MultiSiteServicesPage] Error details:",{message:e?.message,stack:e?.stack,name:e?.name}),G.current=!1})}},1e3);return()=>clearTimeout(e)},[_,t?._id,t?.slug,t?.category]);let L=(0,n.useMemo)(()=>(O?.results||[]).map(e=>({_id:e._id,name:e.name||e.slug,slug:e.slug})),[O]);(0,n.useEffect)(()=>{if(0===L.length)return;let e=sessionStorage.getItem("multiSiteServiceSlug");e&&L.some(t=>t.slug===e)?y(e):y(L[0]?.slug||"")},[L]),(0,n.useEffect)(()=>{w(!0)},[]);let k=(0,n.useMemo)(()=>new p.A,[]),A=(0,n.useCallback)(async e=>{if(e)try{N(!0);let i=l.aG[t?.status?.toLowerCase()]||"DRAFT";console.log("[MultiSiteServicesPage] Fetching service groups for:",{slug:e,siteStatus:i});let s=await k.GetWebsiteEntityData({entityType:"templateSpecificData",
1siteStatus:i,websiteIdOrSlug:e,pagination:{page:1,limit:50,sort:[{field:"priority",direction:"ASC"}],filters:{conditions:[{field:"type",operator:"EQ",value:"MultiSiteServiceGroup"}]}}}),r=s?.results?.templateSpecificData||[];if(console.log("[MultiSiteServicesPage] Total service groups found:",r.length),!r||0===r.length)return void C([]);let a=r.filter(e=>!1!==e.enabled&&e.additionalDetails?.enabled!==!1);if(console.log("[MultiSiteServicesPage] Enabled groups:",a.length),0===a.length)return void C([]);let n=[];for(let t of a){let s=t.additionalDetails?.services||{},r=[];Object.entries(s).forEach(e=>{let[t,i]=e;i?.enabled&&r.push(t)}),console.log(`[MultiSiteServicesPage] Group "${t.title}" enabled types:`,r);let a={};if(r.length>0){let t=r.map(async t=>{try{let s=l.$S[t]||t,r=await k.GetWebsiteEntityData({entityType:"services",siteStatus:i,websiteIdOrSlug:e,serviceType:s,pagination:{page:1,limit:100,sort:[{field:"priority",direction:"ASC"}]}}),a=r?.results?.services||[];return console.log(`[MultiSiteServicesPage] Found ${a.length} services for type ${t}`),{typeKey:t,services:a}}catch(e){return console.error(`Error fetching services for type ${t}:`,e),{typeKey:t,services:[]}}});(await Promise.all(t)).forEach(e=>{let{typeKey:t,services:i}=e;a[t]=i})}let c={};Object.entries(s).forEach(e=>{let[i,s]=e;if(s?.enabled){let e=a[i]||[],l=e.filter(e=>e.multiSiteGroupId===t._id);0===l.length&&e.length>0&&(l=e),c[i]={enabled:s.enabled,name:s.name||s.title||i,title:s.title||s.name,services:l}}}),n.push({_id:t._id,title:t.title,slug:t.slug,additionalDetails:t.additionalDetails,serviceCategories:c})}if(console.log("[MultiSiteServicesPage] Processed groups:",n.length),C(n),n.length>0){let e=n[0],t=Object.keys(e.serviceCategories||{}).find(t=>e.serviceCategories[t]?.enabled);t&&M(t)}}catch(e){console.error("Error fetching service groups for location:",e),C([])}finally{N(!1)}},[t?.status,k]);(0,n.useEffect)(()=>{x&&(I(new Set),A(x))},[x,A]);let D=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"card",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"service_page";d?.REGULAR_CLICK({type:t,event:i,id:e})},R=e=>{I(t=>{let i=new Set(t);return i.has(e)?i.delete(e):i.add(e),i})},F=t?.pagesAndSections?.find(e=>e?.name==="landing-page")?.sections?.[r.bP.OUR_SERVICES_SECTION]?.data?.services||{},U=(0,n.useMemo)(()=>j.some(e=>{let t=e.serviceCategories||{};return Object.keys(t).some(e=>t[e]?.enabled&&t[e]?.services?.length>0)}),[j]);return((0,n.useEffect)(()=>{console.log("[MultiSiteServicesPage] Debug:",{locationOptionsCount:L.length,selectedLocationSlug:x,childrenLoading:T.isLoading,serviceGroupsCount:j.length,hasAtleastOneEnabled:U})},[L.length,x,T.isLoading,j.length,U]),T.isLoading&&0===L.length)?(0,s.jsx)("section",{className:"inner-banner py-[50px] lg:py-[60px] xl:py-20",children:(0,s.jsxs)("div",{className:"container",children:[(0,s.jsxs)("div",{className:"inner_page-head full-width margin-0",children:[(0,s.jsx)("div",{className:"h-8 w-64 bg-gray-200 animate-pulse rounded mb-4"}),(0,s.jsx)("div",{className:"h-4 w-96 bg-gray-200 animate-pulse rounded"})]}),(0,s.jsx)("div",{className:"mt-8 space-y-4",children:[1,2,3].map(e=>(0,s.jsx)("div",{className:"h-16 bg-gray-200 animate-pulse rounded"},e))})]})}):0===L.length?(0,s.jsx)("section",{className:"inner-banner py-[50px] lg:py-[60px] xl:py-20",children:(0,s.jsx)("div",{className:"container",children:(0,s.jsxs)("div",{className:"inner_page-head",children:[(0,s.jsx)("h1",{className:"page-heading",children:(0,c.EJ)(i?.heading||"Our Services",l.N8?.COMMON_PAGE_SECTION?.TITLE)}),(0,s.jsx)("p",{className:"page-desc text-gray-500",children:"No locations available"})]})})}):(0,s.jsx)("section",{className:"inner-banner py-[50px] lg:py-[60px] xl:py-20",children:(0,s.jsxs)("div",{className:"container",children:[(0,s.jsx)("div",{className:"inner_page-head full-width margin-0",children:(0,s.jsxs)("div",{className:"flex flex-col md:flex-row md:items-start md:justify-between gap-4 mb-8 md:mb-14 lg:mb-20",children:[(0,s.jsxs)("div",{className:`${L.length>0&&"max-w-3xl"}`,children:[(0,s.jsx)("h1",{className:`page-heading ${L.length>0?"text-left":"text-center"}`,children:(0,c.EJ)(i?.heading||"Our Services",l.N8?.COMMON_PAGE_SECTION?.TITLE)}),(0,s.jsx)("p",{className:`page-desc ${L.length>0?"text-left":"text-center"}`,children:(0,c.EJ)(i?.subHeading||"Many pet owners only bring their pets to the vet during emergencie
1s, but proactive, routine care is key to keeping pets healthy.",l.N8?.COMMON_PAGE_SECTION?.DESC)})]}),L.length>0&&(0,s.jsxs)("div",{className:"dropdown-wrpr flex items-center justify-center flex-col gap-2",children:[(0,s.jsxs)(f.l6,{value:x,onValueChange:e=>(e=>{y(e),sessionStorage.setItem("multiSiteServiceSlug",e)})(e),disabled:b||T.isLoading,children:[(0,s.jsx)(f.bq,{className:"min-w-[200px] w-full sm:w-auto px-4 lg:px-6 py-2 text-white primary-btn border-0",children:(0,s.jsx)(f.yv,{placeholder:"Select Location"})}),(0,s.jsx)(f.gC,{children:L.map(e=>(0,s.jsx)(f.eb,{value:e.slug,children:e.name},e._id))})]}),(0,s.jsx)("p",{className:"page-desc sm:max-w-60",children:"The page will update based on the location selected."})]})]})}),b?(0,s.jsx)("div",{className:"tabs-sections",children:(0,s.jsx)("div",{className:"service-accordian",children:[1,2,3].map(e=>(0,s.jsx)("div",{className:"accord-card mb-4",children:(0,s.jsx)("div",{className:"h-16 bg-gray-200 animate-pulse rounded-lg"})},e))})}):U?(0,s.jsx)("div",{className:"tabs-sections space-y-20",children:_&&!b&&j.map((e,i)=>{let n=e.serviceCategories||{},o=e.additionalDetails?.servicePricing,d=e.title,h=e.description||e.shortDe
1scription||e.additionalDetails?.description||e.additionalDetails?.shortDescription,m=Object.keys(n).filter(e=>n[e]?.enabled);return m.some(e=>n[e]?.services?.length>0)?(0,s.jsxs)("div",{children:[(d||h||o?.enabled&&o?.pdfUrl)&&(0,s.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-4 mb-8",children:[(0,s.jsxs)("div",{children:[d&&(0,s.jsx)("h2",{className:"text-xl font-semibold text-[color:var(--vis-header)]",children:(0,c.EJ)(d,l.N8?.COMMON_PAGE_SECTION?.TITLE)}),h&&(0,s.jsx)("p",{className:"text-gray-600 mt-1",children:(0,c.EJ)(h,l.N8?.COMMON_PAGE_SECTION?.DESC)})]}),o?.enabled&&o?.pdfUrl&&(0,s.jsx)("div",{className:"flex-shrink-0",children:(0,s.jsx)(u(),{href:o?.pdfUrl,target:"_blank",rel:"noopener noreferrer",className:"btn outline-btn",onClick:()=>D("service_pricing","button","service_page"),children:o?.buttonText||"Service Pricing"})})]}),(0,s.jsx)("div",{className:"service-accordian",children:(0,s.jsx)(a.nD,{role:"region","aria-label":`Service categories accordion for ${d||"services"}`,type:"multiple",className:"w-full multi-service-grid",defaultValue:m,children:Object.entries(n).map((o,d)=>{let[h,m]=o,p=Object.entries(n).filter(e=>{let[,t]=e;return t?.enabled}),f=p.findIndex(e=>{let[t]=e;return t===h}),y=f===p.length-1&&(f+1)%2==1,b=`${e._id}-${h}`;return m?.enabled&&(0,s.jsxs)(a.As,{className:"accord-card rounded-lg p-4 text-center last:odd:col-span-2",value:h,children:[(0,s.jsx)(a.$m,{className:`acord-triger ${"emergency"===h?"er-card":""}`,role:"button","aria-controls":`multisite-service-content-${i}-${d}`,"aria-expanded":E===h,children:(0,l.Zr)(F?.[h]?.name||m?.name||m?.title||S[h]||h)}),(0,s.jsx)(a.ub,{id:`multisite-service-content-${i}-${d}`,role:"region","aria-label":`Service category: ${(0,l.Zr)(m?.name||h)}`,children:(()=>{let e=m?.services||[],i=e.length>7,a=P.has(b),n=i&&!a?e.slice(0,7):e;return(0,s.jsxs)("ul",{className:`mt-4 grid ${y?"grid-col-1 md:grid-cols-2 xl:grid-cols-4":"grid-col-1 md:grid-cols-2"} gap-4 text-center`,children:[n.map((e,i)=>(0,s.jsx)("li",{className:"serv-card",children:(0,s.jsxs)(u(),{href:(e=>{if(x){let i=t?.isMultiSiteChild?t?.parent?.slug:t?.slug,s=(0,l.WS)(t,r.Nb.SERVICES_PAGE);return t?.status?.toLowerCase()==="published"&&t?.isProd?`/location/${x}/${s}/${e}`:`/website/${t?.status?.toLowerCase()||"draft"}/${i}/location/${x}/${s}/${e}`}return g.W_.enrichRoute(t,(0,l.WS)(t,r.Nb.SERVICES_PAGE),e)})(e?.slug),onClick:()=>D(e?.slug),className:"serv-card-link multiCard",children:[(0,s.jsx)("div",{className:"serv-icon",children:(0,s.jsx)(v.d,{src:l.Lt[e?.iconId-1]?.image?.src||"",size:46,className:"full-icon",colorInherit:!1})}),(0,s.jsxs)("div",{className:"service-card-text flex-1 flex flex-col items-start justify-start py-0 md:py-2",children:[(0,s.jsx)("h2",{className:"text-ellipsis w-full overflow-hidden text-left text-lg/5 text-[var(--vis-primary)] font-semibold underline ",children:e?.name}),(0,s.jsx)("div",{className:"multi-service-desc",children:(0,c.EJ)((0,c.LM)(e?.description,t),l.N8?.SERVICE_LISTING_CARD?.DESC)})]})]})},e._id||i)),i&&!a&&(0,s.jsx)("li",{className:"serv-card flex items-center justify-center",children:(0,s.jsx)("button",{onClick:()=>R(b),className:"btn text-btn underline italic","aria-expanded":a,"aria-label":"Show more services",children:"See More"})}),i&&a&&(0,s.jsx)("li",{className:"serv-card",children:(0,s.jsxs)("button",{onClick:()=>R(b),className:"serv-card-link multiCard w-full h-full","aria-expanded":a,"aria-label":"Show fewer services",children:[(0,s.jsx)("div",{className:"serv-icon",children:(0,s.jsx)("div",{className:"mx-auto h-[46px] w-[46px] flex items-center justify-center",children:(0,s.jsx)("span",{className:"text-2xl font-bold text-[var(--vis-primary)]",children:"â"})})}),(0,s.jsx)("div",{className:"service-card-text flex-1 flex flex-col items-start justify-start py-0 md:py-2",children:(0,s.jsx)("h2",{className:"text-ellipsis w-full overflow-hidden text-left text-lg/5 text-[var(--vis-primary)] font-semibold underline",children:"See Less"})})]})})]})})()})]},h)})})})]},e._id||i):null})}):(0,s.jsx)("div",{className:"text-center py-8",children:(0,s.jsx)("p",{className:"text-gray-500",children:"No services available for this location"})})]})})}}}]);
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.