1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8872],{20052:(e,r,t)=>{t.r(r),t.d(r,{default:()=>M});var o=t(95531),a=t(37876),s=t(3219),i=t(56057),n=t(14232),l=t(19081),h=t(72035),d=t(33791),c=t(4106),g=t(53413),u=t(43968),p=t(30533),m=t(2014),b=t(82755),R=t(27041);let S=/^(<h[1-6][^>]*>[\s\S]*?<\/h[1-6]>)([\s\S]*)$/,v=(0,m.AH)({display:"flex",alignItems:"center",flexWrap:"wrap",gap:"xs"}),f=(0,m.AH)({display:"contents"}),x=(0,n.memo)(function({cityDescription:e,searchType:r}){let{isSpanish:t}=(0,R.s)();if(r!==u.kW.FOR_RENT||!e?.markdown)return null;let o=(0,u.VR)(e.markdown,null),s=o.trim(),i=t&&s?s.match(S):null;return(0,a.jsx)(p.Yqy,{h:"s",t:"s",children:(0,a.jsx)(p._Ny,{children:(0,a.jsx)(p.T33,{size:"body",children:i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:v,children:[(0,a.jsx)("div",{className:f,dangerouslySetInnerHTML:{__html:i[1]}}),(0,a.jsx)(b.A,{})]}),i[2].trim()?(0,a.jsx)("div",{dangerouslySetInnerHTML:{__html:i[2]}}):null]}):(0,a.jsx)("div",{dangerouslySetInnerHTML:{__html:o}})})})})});var y=t(71594),L=t(76721);class N extends n.Component{shouldComponentUpdate(e){return this.props.searchData.currentUrl!==e.searchData.currentUrl||this.props.searchData.marketInsights!==e.searchData.marketInsights}render(){let{searchData:e,searchType:r}=this.props;return r===u.kW.FOR_SALE&&e&&this.canDisplayMarketInsights(e)?this.renderMarketInsights(e):null}constructor(...e){super(...e),this.renderMarketInsights=({marketInsights:e,surroundings:r,names:t,searchLocationSurroundings:o}={})=>(0,a.jsx)(p.Yqy,{h:"s",children:(0,a.jsx)(y.Ay,{marketInsightsData:e,surroundings:r,searchLocationSurroundings:o,locationName:t&&t.locationName,popularSearchesFooterLinks:this.props.popularSearchesFooterLinks})}),this.canDisplayMarketInsights=e=>e.marketInsights||e.surroundings}}let F=N=(0,o.Cg)([(0,L.u4)()],N);var w=t(48292),C=t(25890),D=t(81961);let O=(0,m.AH)({paddingTop:"0",paddingRight:"s",paddingBottom:"xl",paddingLeft:"s",paddingSafeLeft:"s",_medium:{paddingRight:"s"}}),A=m.AH.raw({paddingRight:"0",display:"flex","& .text-placeholder":{flex:"1 1 auto",marginY:"3px",marginX:"0"}});class _ extends n.Component{static{this.defaultProps={neighborhoods:null,searchType:w.R.FOR_SALE,locationName:"",currentUrl:""}}static{this.getNeighborhoodsAttribution=e=>{if(Array.isArray(e)){for(let r=0;r<e.length;r+=1)if(e[r]?.neighborhoodAttribution)return e[r].neighborhoodAttribution}}}shouldComponentUpdate(e){return this.props.currentUrl!==e.currentUrl}getActiveNeighborhoods(){let{neighborhoods:e,details:r,searchType:t}=this.props;if(!Array.isArray(e))return[];let o=(0,C.tv)({details:r}),a=e=>{let r=e?.neighborhoodSearchUrlCTA;return!!("FOR_RENT"===t?r?.forRent:r?.forSale)&&e.ndpActive};if(o){let r=e[0];return r?.relatedHoods?.nearby?r.relatedHoods.nearby.filter(a):e.filter((e,r)=>0!==r&&a(e))}return e.filter(a)}render(){let{locationName:e,details:r,i18n:t}=this.props,{t:o}=t,s=r?.location?.cities?.[0],i=this.getActiveNeighborhoods();if(0===i.length)return null;let n=i.map(this.renderNeighborhood),l=s?.city.toLowerCase().replace(/ /g,"-"),h=s?.state.toLowerCase(),d=s?`/${h}/${l}-neighborhoods/`:null,c=s?o("searchResults.exploreNeighborhoods.headingInCity",{city:s.city,state:s.state}):o("searchResults.exploreNeighborhoods.headingFallback"),g=_.getNeighborhoodsAttribution(i);return(0,a.jsxs)("div",{className:O,role:"region","aria-label":o("searchResults.exploreNeighborhoods.ariaLabel",{locationName:e}),children:[(0,a.jsx)(p.DZT,{css:A,size:"subHeader",as:"h3",margin:"0 0 16px",children:d?(0,a.jsx)(p.MzZ,{href:d,noUnderline:!0,children:c}):c}),(0,a.jsx)(p.pvf,{children:n}),(0,a.jsx)(p.Yqy,{t:"s",children:(0,a.jsx)(p.T33,{color:"lowlight",children:g||o("searchResults.exploreNeighborhoods.defaultAttribution")})})]})}constructor(...e){super(...e),this.renderNeighborhood=(e,r)=>{let{createAnalyticsEvent:t,searchType:o,i18n:s}=this.props,{t:i}=s,n=t(L.c.INTERACTION,{interactedWith:"list:neighborhood card"});return(0,a.jsx)("div",{"data-testid":`srp-neighborhood-card-${r}`,children:(0,a.jsx)(w.A,{neighborhood:e,type:"FOR_RENT"===o?w.R.FOR_RENT:w.R.FOR_SALE,onClick:()=>n.track(),shouldLinkToSrp:!1,ctaLabel:i("FOR_RENT"===o?"searchResults.exploreNeighborhoods.ctaForRent":"searchResults.exploreNeighborhoods.ctaForSale",{name:e.name})})},e.ndpUrl)}}}_=(0,o.Cg)([(0,L.u4)()],_);let H=(0,D.z)(_);var j=t(9605),T=t(61427),E=t(74860);let k=(0,j.I4)("div",{base:{lg:{padding:"s",paddingBottom:"xs"}}},{defaultProps:{className:"Container"}}),I=(0,j.I4)("div",{base:{marginTop:"m",marginBottom:"m",_medium:{paddingLeft:"s",paddingRight:"s"}}},{defaultProps:{className:"NeighborhoodLinkContainer"}}),U="#add-review",$=(0,n.memo)(function({searchData:e}){let{t:r,isSpanish:t}
1=(0,R.s)(),o=(0,L.UZ)(),[s,i]=(0,n.useState)(!1);(0,n.useEffect)(()=>{function e(){window.location.hash===U&&i(!0)}return window.location.hash===U&&i(!0),window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]);let l=(0,E.Y)(()=>{o(L.c.ACTION,{interactedWith:"crib hybrid module:expand"}).track()},[o]),h=(0,E.Y)(()=>{o(L.c.ACTION,{interactedWith:"crib hybrid module:collapse"}).track()},[o]);if(e?.searchLocationSurroundings&&("SURROUNDINGS_Neighborhood"!==e.searchLocationSurroundings.__typename||!1!==e.searchLocationSurroundings.ndpActive)){let{locationId:o,localUGC:i,ndpUrl:n,name:d}=e.searchLocationSurroundings,c=r("whatLocalsSay.headingWithLocation",{locationName:d});return(0,a.jsxs)(k,{id:"what-locals-say",className:y.bu,role:"region","aria-label":c,children:[(0,a.jsx)(T.NU,{locationId:parseInt(o,10),localUGC:i,lowlight:!0,onExpand:l,onCollapse:h,initialAttributeCount:3,attributeLayout:"column",reviewCardsBreakpoints:[1,1,1,2,2],heading:c,sourcePage:"srp",openAddReview:s,reviewsCategoryNavAccessory:t?(0,a.jsx)(p.Yqy,{t:0,b:"xs",children:(0,a.jsx)(b.A,{})}):void 0}),n&&d&&(0,a.jsxs)(I,{children:[(0,a.jsx)("h3",{children:r("searchResults.whatLocalsSay.learnMoreHeading",{name:d})}),(0,a.jsx)(p.EYj,{size:"body",children:r("searchResults.whatLocalsSay.ndpDescription")}),(0,a.jsx)(p.$nd,{href:n,target:"_blank",style:{width:"100%",marginTop:`${(0,p.kgf)("s")}`},children:r("searchResults.whatLocalsSay.insightsButton",{name:d})})]})]})}return null},(e,r)=>e.searchData?.searchLocationSurroundings?.localUGC?.localReviews===r.searchData?.searchLocationSurroundings?.localUGC?.localReviews);var B=t(82312);class P extends n.Component{render(){let{searchData:e,searchType:r,locationName:t,session:o}=this.props,n=!!o?.isBot;return(0,a.jsx)(i.X,{fetchPolicy:"no-cache",errorPolicy:"all",query:(0,s.J1)` 2 query WEB_searchResultsMarketDetailsQuery( 3 $url: String! 4 $isNearbyCitiesEnabled: Boolean = false 5 $includeReviewHighlights: Boolean = false 6 ) { 7 searchHomesByUrl(url: $url) { 8 currentUrl 9 ...SearchResultsMarketDetailsFragment 10 } 11 } 12 13 ${(0,c.p)()} 14 `,variables:{url:e?.currentUrl,isNearbyCitiesEnabled:!0,includeReviewHighlights:g.$.public.features.isWLSReviewHighlightsEnabled},ssr:!1,children:({loading:e,data:o={}})=>{if(!n&&e||!o?.searchHomesByUrl&&!this.props.searchData)return(0,a.jsx)(B.wB,{});let s=o?.searchHomesByUrl||this.props.searchData,i=s?.location?.__typename==="SEARCH_ResultLocationCity"?s.location.cityDescription:void 0;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(F,{searchData:s,searchType:r}),(0,a.jsx)(H,{currentUrl:s?.currentUrl,neighborhoods:s.surroundings,searchType:r,locationName:t,details:s.details}),(0,a.jsx)($,{searchData:s}),(0,a.jsx)(x,{cityDescription:i,searchType:r})]})}})}}P=(0,o.Cg)([(0,l.W)({ab:h.y,session:d.IC})],P);let M=(0,p.WjH)(P)},25890:(e,r,t)=>{t.d(r,{pD:()=>a,tv:()=>o});let o=e=>!!(e&&e.details&&e.details.location&&e.details.location.neighborhoods&&1===e.details.location.neighborhoods.length)||e&&e.details&&e.details.location&&e.details.location.neighborhoodRegions&&1===e.details.location.neighborhoodRegions.length,a=e=>!!(e&&e.details&&e.details.location&&e.details.location.school&&e.details.location.school.id)},48292:(e,r,t)=>{t.d(r,{R:()=>c,A:()=>p});var o=t(37876),a=t(28033),s=t(30533),i=t(14232),n=t(23520),l=t.n(n),h=t(84559),d=t(81961);let c={FOR_SALE:"for sale",FOR_RENT:"for rent",SOLD:"sold"};class g extends i.Component{static{this.defaultProps={type:c.FOR_SALE,lazyLoadImage:!1}}static{this.fragment={get neighborhood(){return(0,h.B)()}}}getNeighborhoodCardHeroImageSrc(){let{neighborhood:e}=this.props;return e?.media?.heroImage?e.media.heroImage.url?.path??"":""}getCardHomeCount(e){let{neighborhood:r}=this.props;if(r&&r.localFacts){if(e===c.FOR_SALE)return r.localFacts.homesForSaleCount;if(e===c.FOR_RENT)return r.localFacts.homesForRentCount;if(e===c.SOLD)return r.localFacts.soldHomesCount}return""}getHomeLabel(){let{type:e,i18n:r}=this.props,{t}=r,o=this.getCardHomeCount(e),a=""!==o&&null!=o&&0!==Number(o);if(e===c.SOLD){if(!a)return t("homeDetails.neighborhoodOverview.card.noSoldHomes");let e=Number(o);return t(1===e?"homeDetails.neighborhoodOverview.card.oneSoldHome":"homeDetails.neighborhoodOverview.card.manySoldHomes",{count:e})}if(!a)return t("homeDetails.neighborhoodOverview.card.noHomesForYou");let s=Number(o);return t(1===s?"homeDetails.neighborhoodOverview.card.oneHomeForYou":"homeDetails.neighborhoodOverview.card.manyHomesForYou",{count:s})}getCardPriceText(e,r,t){let{t:o}=this.props.i18n;return e||r?1===this.getCardHomeCount(t)?(0,a.A)(e):e!==r&&e&&r?`${(0,a.A)(e)}
14 - ${(0,a.A)(r)}`:`${(0,a.A)(e||r)}+`:o(t===c.FOR_SALE?"homeDetails.neighborhoodOverview.card.noForSaleData":t===c.FOR_RENT?"homeDetails.neighborhoodOverview.card.noForRentData":"homeDetails.neighborhoodOverview.card.noSoldHomesData")}getPriceRangeLabel(){let{type:e,i18n:r}=this.props,{t}=r;return t(e===c.FOR_RENT?"homeDetails.neighborhoodOverview.card.priceRangeLabelForRent":e===c.SOLD?"homeDetails.neighborhoodOverview.card.priceRangeLabelSold":"homeDetails.neighborhoodOverview.card.priceRangeLabelForSale")}getCardPriceRange(){let{neighborhood:e,type:r,i18n:t}=this.props,{t:o}=t;if(e&&e.localFacts){let t=0,o=0;return r===c.FOR_SALE&&e.localFacts.forSaleStats&&(t=e.localFacts.forSaleStats.min,o=e.localFacts.forSaleStats.max),r===c.FOR_RENT&&e.localFacts.forRentStats&&(t=e.localFacts.forRentStats.min,o=e.localFacts.forRentStats.max),r===c.SOLD&&e.localFacts.soldHomesStats&&(t=e.localFacts.soldHomesStats.min,o=e.localFacts.soldHomesStats.max),this.getCardPriceText(t,o,r)}return o(r===c.FOR_SALE?"homeDetails.neighborhoodOverview.card.noForSaleData":r===c.FOR_RENT?"homeDetails.neighborhoodOverview.card.noForRentData":"homeDetails.neighborhoodOverview.card.noSoldHomesData")}render(){let{neighborhood:e,type:r,lazyLoadImage:t,shouldLinkToSrp:a,ctaLabel:i,i18n:n,...l}=this.props,{t:h}=n;if(!e||!e.ndpActive)return null;let d=i??h(a?"homeDetails.neighborhoodOverview.card.seeHomesCta":"homeDetails.neighborhoodOverview.seeLocalHighlights");return(0,o.jsx)(s.LQm,{name:e.name,hrefSrp:r!==c.FOR_RENT?e.neighborhoodSearchUrlCTA?.forSale??"":e.neighborhoodSearchUrlCTA?.forRent??"",hrefNdp:e.ndpUrl,imageSrc:t?"":this.getNeighborhoodCardHeroImageSrc(),type:r,homeLabel:this.getHomeLabel(),priceRange:this.getCardPriceRange(),priceRangeLabel:this.getPriceRangeLabel(),ctaLabel:d,...l})}}let u=(0,d.z)(g);l()(u,g);let p=u}}]);
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.