1"use strict";(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[5641],{12047(e,t,a){a.d(t,{E:()=>r.E});var r=a(71458)},81448(e,t,a){a.d(t,{_:()=>s});var r=a(77810),n=a(43497);const o={layoutContainer:n.AH` 2 &:not(.fluid) { 3 margin-left: auto; 4 margin-right: auto; 5 max-width: var(--body-max-width); 6 } 7 `,fluid:n.AH` 8 width: 100%; 9 `,outer:n.AH` 10 width: 100%; 11 padding-block: var(--space-parent-vertical-padding); 12 13 &[data-fill='surface'] { 14 background-color: var(--color-surface-surface); 15 color: var(--color-surface-on-surface); 16 } 17 18 &[data-fill='surface-dim'] { 19 background-color: var(--color-surface-surface-dim); 20 color: var(--color-surface-on-surface); 21 } 22 23 &[data-fill='surface-dimmest'] { 24 background-color: var(--color-surface-surface-dimmest); 25 color: var(--color-surface-on-surface); 26 } 27 28 &[data-fill='primary'] { 29 background-color: var(--color-brand-primary); 30 color: var(--color-brand-on-primary); 31 } 32 33 // Override padding for accordion container items as we can't control LayoutContainer 34 .accordion-container-item-content & { 35 --space-parent-horizontal-padding: 0; 36 padding-block: var(--space-small-8); 37 } 38 `,verticalPaddingSnug:n.AH` 39 padding-block: var(--space-child-vertical-padding); 40 `,verticalPaddingNone:n.AH` 41 padding-block: 0; 42 `,inner:n.AH` 43 margin-left: auto; 44 margin-right: auto; 45 max-width: var(--body-max-width); 46 padding: 0; 47 `},i=({className:e=[],fluid:t=!1}={})=>(0,n.cx)("halfords-layout-container",o.layoutContainer,t&&[o.fluid,"halfords-layout-container-fluid"],e),l=({className:e=[],verticalPadding:t="default"}={})=>(0,n.cx)("halfords-layout-container-outer",o.outer,"snug"===t&&o.verticalPaddingSnug,"none"===t&&o.verticalPaddingNone,e),s=({fluid:e=!1,className:t,children:a,customStyle:s,dataTestIdPrefix:c,as:d,fullBleed:m=!1,fill:u,verticalPadding:p="default"})=>{const f=c?`${c}-layout-container`:"halfords-layout-container",g=d??"div";return m?r.createElement(g,{className:l({className:t,verticalPadding:p}),"data-testid":f,"data-fill":u,"data-full-bleed":"true",style:s},r.createElement("div",{className:(0,n.cx)("halfords-layout-container-inner",o.inner)},a)):r.createElement(g,{className:i({className:t,fluid:e}),"data-testid":f,style:s},a)}},54206(e,t,a){a.d(t,{Q:()=>r.Q});var r=a(95565)},84455(e,t,a){a.d(t,{s:()=>r.sx});var r=a(51805)},77173(e,t,a){a.d(t,{nt:()=>g});var r=a(28407),n=a(10939),o=a(90412),i=a(90031),l=a(4026),s=a(29188),c=a(52602);function d(e){return e&&!Array.isArray(e)&&"subfolders"in e}function m(e){return Array.isArray(e)}function u(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function p(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?u(Object(a),!0).forEach(function(t){(0,n.A)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):u(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}const f=(e,t=!0,a)=>{const{app:{commerceAPI:{parameters:{shortCode:n,organizationId:o,siteId:u,clientId:f}}}}=(0,l.getConfig)(),g=e.folderId?"c_content_folder_id":"c_content_folders_id",E=e.folderId?e.folderId:e.foldersId,v=(0,i.useCustomMutation)({options:{method:"GET",customApiPathParameters:{endpointPath:"content-asset",apiName:"content"},parameters:p(p({},void 0===E?{}:{[g]:E}),{},{siteId:u})},clientConfig:{parameters:{clientId:f,siteId:u,organizationId:o,shortCode:n}},rawResponse:!1}),y=["content-folder",E],b=(0,s.I)(p({queryKey:y,meta:{displayName:`useContentFolder(${E})`},queryFn:(h=(0,r.A)(function*(){try{if(!e||!e.folderId&&!e.foldersId)throw new Error("Either folderId or foldersId is required");const t={siteId:u};void 0!==E&&(t[g]=E);const a=yield v.mutateAsync({parameters:t});if(!a||"object"!=typeof a)throw new Error("Invalid response");return a}catch(e){const t=e instanceof Error?e.message:"Unknown error";throw new Error(`Failed to fetch content folder: ${t}`)}}),function(){return h.apply(this,arguments)}),retry:3,retryDelay:c.A,enabled:t&&(!!e.folderId||!!e.foldersId)},a));var h;return p(p({},b),{},{isContentFolderStructure:!!b.data&&d(b.data),isContentFolderItems:!!b.data&&m(b.data),folderStructure:b.data&&d(b.data)?b.data:void 0,folderItems:b.data&&m(b.data)?b.data:void 0})},g=(e,t=!0,a)=>f(e,t,p({staleTime:1/0,cacheTime:o.oG},a))},78638(e,t,a){a.d(t,["Y",0,{DEFAULT_GET_DIRECTION_URL:"https://www.google.com/maps/dir/?api=1&destination=",DEFAULT_LOCATION_IMAGE_
47URL:"https://i1.adis.ws/i/washford/store-default-banner",CALL_ICON:"call",SMS_ICON:"sms",BOOKING_OPTIONS_CONTENT_ASSET:"pwa-locations-booking-options",HOLIDAY_THRESHOLD:14,SITE_LOGO:"https://www.halfords.com/on/demandware.static/Sites-halfords-uk-Site/-/default/dw2d36a422/images/logo.svg"}])},7767(e,t,a){a.r(t),a.d(t,{default:()=>M});var r=a(77810),n=a(10939),o=a(54752),i=a(34692),l=a(10647),s=a(95355),c=a(8301),d=a(90412),m=a(71351),u=a(78638);function p(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function f(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?p(Object(a),!0).forEach(function(t){(0,n.A)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}const g=()=>{var e;const t=(0,i.A)(),{isHalfordsUK:a}=(0,l.A)(),n=(0,s.f)(),p=a?"Halfords UK":"Halfords IE",g=t.formatMessage({id:"REGIONS.META.TITLE",defaultMessage:[{type:0,value:"Regions | "},{type:1,value:"siteName"}]},{siteName:p}),E=t.formatMessage({id:"REGIONS.META.DESCRIPTION",defaultMessage:[{type:0,value:"Find Halfords stores and garages across different regions in the UK and Ireland"}]}),v=`${n}/locations/regions`,{data:y}=(0,c.T)(d.ih.FOOTER_SOCIAL),b=(0,m.j)(null==y||null===(e=y[0])||void 0===e?void 0:e.content),h=r.useMemo(()=>null!=b&&b.list?b.list.map(e=>e.href).filter(e=>!!e):[],[b]),O={"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":`${n}/#website`,url:n,name:p,publisher:{"@id":`${n}/#organization`}},f({"@type":"Organization","@id":`${n}/#organization`,name:p,url:n,logo:{"@type":"ImageObject",url:u.Y.SITE_LOGO}},h.length>0&&{sameAs:h}),{"@type":"WebPage","@id":`${v}#webpage`,name:g,url:v,isPartOf:{"@id":`${n}/#website`},about:{"@id":`${n}/#organization`},description:E},{"@type":"BreadcrumbList",url:v,itemListElement:[{"@type":"ListItem",position:1,item:{"@id":`${n}/home`,name:"Home"}},{"@type":"ListItem",position:2,item:{"@id":`${n}/locations`,name:"Locations & Opening Times"}},{"@type":"ListItem",position:3,item:{"@id":v,name:"Regions"}}]}]};return r.createElement(o.Helmet,null,r.createElement("title",null,g),r.createElement("meta",{name:"description",content:E}),r.createElement("meta",{property:"og:type",content:"website"}),r.createElement("meta",{property:"og:title",content:g}),r.createElement("meta",{property:"og:description",content:E}),r.createElement("meta",{property:"og:url",content:v}),r.createElement("meta",{name:"twitter:title",content:g}),r.createElement("meta",{name:"twitter:description",content:E}),r.createElement("script",{type:"application/ld+json"},JSON.stringify(O)))};var E=a(29772),v=a(62241),y=a(81448),b=a(69377),h=a(12047),O=a(34407),I=a(54206),N=a(64869),A=a(43497),C=a(26307);const w={container:A.AH` 48 display: flex; 49 flex-direction: column; 50 gap: var(--space-medium-24); 51 padding: var(--space-medium-16) var(--space-medium-12); 52 background: var(--color-surface-surface-dim); 53 ${C.H.minTablet} { 54 padding: var(--space-large-32) var(--space-medium-24); 55 } 56 `,accordionContainer:A.AH` 57 width: 100%; 58 background-color: var(--color-primary-white); 59 border-radius: var(--space-medium-12); 60 border: var(--space-stroke-default) solid var(--color-outline-outline-medium); 61 62 ${C.H.minDesktop} { 63 display: none; // Hide accordion on desktop 64 } 65 `,accordionItem:A.AH` 66 border-bottom: var(--space-stroke-default) solid var(--color-outline-outline-medium); 67 &:last-child { 68 border-bottom: none; 69 } 70 &:first-child { 71 border-top: none; 72 } 73 `,accordionHeader:A.AH` 74 padding: var(--space-medium-16) var(--space-medium-16); 75 `,mobileCardsContainer:A.AH` 76 display: flex; 77 flex-direction: column; 78 gap: var(--space-medium-16); 79 &:last-child { 80 padding-bottom: var(--space-medium-16); 81 } 82 `,mobileCard:A.AH` 83 width: 100%; 84 min-height: 112px; 85 `,desktopRegionsGrid:A.AH` 86 display: none; 87 88 ${C.H.minDesktop} { 89 display: flex; 90 flex-direction: column; 91 gap: var(--space-medium-12); 92 } 93 `,regionsGrid:A.AH` 94 display: flex; 95 flex-direction: column; 96 gap: var(--space-medium-12); 97 `,regionSection:A.AH` 98 display: flex; 99 flex-direction: column; 100 gap: var(--space-medium-12); 101 padding: var(--space-medium-12); 102 border: none; 103 `,regionTitle:A.AH` 104 padding: 0; 105 `,cardsContainer:A.AH` 106 display: flex; 107 flex-direction: column; 108 gap: var(--space-medium-24); 109 padding: var(--space-medium-16) 0; 110 111 ${C.H.minTablet} { 112 flex-direction: row; 113 flex-wrap: wrap; 114 } 115 `,card:A.AH` 116 width: 100%; 117 min-height: 112px; 118 ${C.H.minTablet} { 119 flex: 0 0 calc(25% - 18px); 120 } 121 `,cardContent:A.AH` 122 display: flex; 123 align-items: center; 124 gap: var(--space-small-8); 125 `,cardFooter:A.AH` 126 padding: 0; 127 `};var S=a(73867),T=a(24467),H=a(19146),x=a(41340),L=a(77173);var _=a(53004),P=a(52376),R=a(48140),D=a(26551),k=a(84455);const M=function(){const e=(0,N.c)(),t=(0,i.A)(),{res:a}=(0,v.useServerContext)(),n=(0,S.zy)(),o=(0,S.W6)(),{publish:s}=(0,H._)(),{setPageDetails:d}=(0,x.JR)(),{isHalfordsIE:m}=(0,l.A)();a&&a.set("Cache-Control","s-maxage=86400"),(0,r.useEffect)(()=>{m&&e("/locations")},[m,e]),(0,r.useEffect)(()=>{n.pathname.endsWith("/")||o.replace({pathname:n.pathname+"/",search:n.search,hash:n.hash})},[n,o]);const u=[{item:t.formatMessage({id:"LOCATIONS.BREADCRUMBS.HOME",defaultMessage:[{type:0,value:"Home"}]}),url:"/home",onClick:t=>{t.preventDefault(),e("/home")}},{item:t.formatMessage({id:"LOCATIONS.BREADCRUMBS.LOCATION",defaultMessage:[{type:0,value:"Locations & Opening Times"}]}),url:"/locations",onClick:t=>{t.preventDefault(),e("/locations")}},{item:t.formatMessage({id:"LOCATIONS.BREADCRUMBS.REGIONS",defaultMessage:[{type:0,value:"Regions"}]}),url:"/locations/regions",onClick:t=>{t.preventDefault(),e("/locations/regions")}}],[p,f]=(0,r.useState)(!1);(0,r.useEffect)(()=>{f(!0)},[]);const A=(0,L.nt)({foldersId:"locations-page"},!0),C=(0,r.useMemo)(()=>{var e;return null!==(e=A.folderStructure)&&void 0!==e&&e.subfolders?A.folderStructure.subfolders.map(e=>e.id):[]},[A.folderStructure]),M=(0,L.nt)({folderId:C.join(",")},C.length>0),j=(0,c.T)("regions-page-seo",!0),$=(0,r.useMemo)(()=>
127{if(!j.data||0===j.data.length)return null;try{const e=j.data[0],t=JSON.parse(e.content);return{title:t.title||"",subTitle:t.subTitle||"",seoHeader:t.seoHeader||"",seoContent:t.seoContent||""}}catch(e){return null}},[j.data]),G=(0,r.useMemo)(()=>{var e;return M.data&&null!==(e=A.folderStructure)&&void 0!==e&&e.subfolders?A.folderStructure.subfolders.map(e=>{const t=M.data;return{id:e.id,name:e.displayName,items:t[e.id]||[]}}):[]},[M.data,A.folderStructure]),B=t=>{var a;null===(a=window)||void 0===a||a.scrollTo({top:0,behavior:"smooth"}),e(`/locations/regions/${null==t?void 0:t.toLowerCase()}`)};return(0,r.useEffect)(()=>{if(!p)return;const e={pageId:T.g$.REGIONS,pageType:T.g$.REGIONS,pageName:"",pageCategoryL1:"Regions",siteBrand:"retail:autocentre",siteBrand2:"retail:autocentre",breadcrumb:["Regions"],category:"Regions"};d(e),s(`${T.R2.PAGE_VIEW}:regions`,{gtm:e,newRelic:e,qubit:{page:{category:"regions",type:T.g$.REGIONS,breadcrumb:e.breadcrumb}}})},[p]),r.createElement(r.Fragment,null,r.createElement(g,null),r.createElement(E.sJ,{pageType:"regions",pageCategory:"regions",breadcrumb:["Home","Locations","Regions"]}),r.createElement(y._,{as:"article",className:w.container},r.createElement(b.x,{as:"section"},r.createElement(h.E,{columns:{xs:12}},r.createElement(I.Q,{items:u})),(null==$?void 0:$.title)&&r.createElement(h.E,{columns:{xs:12}},r.createElement(k.s,{content:$.title})),(null==$?void 0:$.subTitle)&&r.createElement(h.E,{columns:{xs:12}},r.createElement(k.s,{content:$.subTitle})),M.isLoading&&r.createElement(h.E,{columns:{xs:12}},r.createElement(R.E,{containerClassName:w.cardsContainer,className:w.card,count:8})),!M.isLoading&&G.length>0&&r.createElement(h.E,{columns:{xs:12}},r.createElement(D.nD,{allowMultiple:!0,defaultOpenIndices:[0],className:w.accordionContainer},G.map((e,a)=>r.createElement(D.As,{key:e.id,id:`region-${e.id}`,className:w.accordionItem,index:a},r.createElement(D.u,{className:w.accordionHeader},r.createElement(O.o,{as:"h2",variant:"labelSmall"},e.name)),r.createElement(D.ub,null,r.createElement("div",{className:w.mobileCardsContainer},e.items.map(e=>r.createElement(_.Z,{key:e.id,className:w.mobileCard,footer:{className:w.cardFooter,action:{text:t.formatMessage({id:"LOCATIONS.CONTENT.VIEW_REGION",defaultMessage:[{type:0,value:"View Details"}]}),onClick:()=>B(e.name||e.id),buttonVariant:"brandPrimary",fullWidth:!0}}},r.createElement("div",{className:w.cardContent},r.createElement(P.In,{IconToRender:"globe","aria-hidden":!0}),r.createElement(O.o,{as:"h3",variant:"labelMedium"},e.name||e.id)))))))))),!M.isLoading&&G.length>0&&r.createElement(h.E,{columns:{xs:12},className:w.desktopRegionsGrid},G.map(e=>r.createElement(_.Z,{key:e.id,className:w.regionSection,header:{className:w.regionTitle,content:r.createElement(O.o,{as:"h2",variant:"headingSmall"},e.name)}},r.createElement("div",{className:w.cardsContainer},e.items.map(e=>r.createElement(_.Z,{key:e.id,className:w.card,footer:{className:w.cardFooter,action:{text:t.formatMessage({id:"LOCATIONS.CONTENT.VIEW_REGION",defaultMessage:[{type:0,value:"View Details"}]}),onClick:()=>B(e.name||e.id),buttonVariant:"brandPrimary",fullWidth:!0}}},r.createElement("div",{className:w.cardContent},r.createElement(P.In,{IconToRender:"globe","aria-hidden":!0}),r.createElement(O.o,{as:"h3",variant:"labelMedium"},e.name||e.id)))))))),(null==$?void 0:$.seoHeader)&&r.createElement(h.E,{columns:{xs:12}},r.createElement(k.s,{content:$.seoHeader})),(null==$?void 0:$.seoContent)&&r.createElement(h.E,{columns:{xs:12}},r.createElement(k.s,{content:$.seoContent})))))}}}]);
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.