PageSourceSearch

https://www.trulia.com/assets/static/prod/2026ba3f/_next/static/chunks/8890-2a8001879d4bf5ad.js

js trulia.com collected 2026-09-24 07:18:50 UTC 16,586 bytes, 217 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8890],{32417:(e,r,t)=>{t.d(r,{jm:()=>h,dB:()=>L,Ay:()=>j,Ez:()=>T,mj:()=>D,dC:()=>M,xM:()=>I});var i=t(95531),o=t(37876),a=t(76721),l=t(30533),s=t(14232),n=t(50634),m=t(23520),d=t.n(m),c=t(77622);let p="https://www.trulia.com/images/txl3R/placeholder_images/PropertyCardPlaceholder.svg",u,h={FLOOR_PLAN:"HOME_FloorPlan",PROPERTY:"HOME_Property",ROOM_FOR_RENT:"HOME_RoomForRent",RENTAL_COMMUNITY:"HOME_RentalCommunity",BUILDER_COMMUNITY:"HOME_BuilderCommunity"},g={RECENTLY_SOLD_PRICE:"HOME_LastSoldPrice",TRULIA_ESTIMATE_PRICE:"HOME_ValuationPrice",ON_MARKET_PRICE:"HOME_SinglePrice",FORECLOSURE_ESTIMATE:"HOME_ForeclosureEstimatePrice",EMPTY_PRICE:"HOME_EmptyPrice",EMPTY_SOLD_PRICE:"HOME_EmptySoldPrice",ON_MARKET_PRICE_RANGE:"HOME_PriceRange",UNKNOWN_PRICE:"HOME_UnknownPrice"},A=e=>e.price&&e.price.formattedPrice?e.price.typeDescription&&"HOME_ValuationPrice"===e.price.__typename?`${e.price.typeDescription} ${e.price.formattedPrice}`:e.price.formattedPrice:"",y=(e,r=!1,t)=>{let i=t?.bedAbbrev??"bd",o=t?.studio??"Studio";if(r&&e.bedrooms&&e.bedrooms.formattedValue)return e.bedrooms.formattedValue;if(e.bedrooms?.value)return`${e.bedrooms.value} ${i}`;if(e.bedrooms?.__typename==="HOME_BedroomRange"&&e.bedrooms?.min!==null){let r=0===e.bedrooms.min?o:e.bedrooms.min,t=0===e.bedrooms.max?o:e.bedrooms.max;return t===r||null===t?0===e.bedrooms.min?o:`${r} ${i}`:`${r}-${t} ${i}`}return""},b=(e,r=!1,t)=>{let i=t?.bathAbbrev??"ba";return r&&e.bathrooms&&e.bathrooms.formattedValue?e.bathrooms.formattedValue:e.bathrooms?.value?`${e.bathrooms.value} ${i}`:e.bathrooms?.__typename==="HOME_BathroomRange"&&e.bathrooms?.min!==null?e.bathrooms.min===e.bathrooms.max||null===e.bathrooms.max?`${e.bathrooms.min} ${i}`:`${e.bathrooms.min}-${e.bathrooms.max} ${i}`:""},f=e=>{let r="default";switch(e){case"HIGHLIGHTED":r="on market";break;case"ALERT":r="off market";break;case"LOWLIGHT":r="lowlight";break;case"NORMAL":r="default"}return r},C=(e,r)=>e.tags||e.fullTags?r?e.fullTags.map(e=>{let r=e.icon?.vectorImage?.svg;return{type:f(e.level),value:e.formattedName||"",iconUrl:r}}):e.tags.map(e=>{let r=e.icon?.vectorImage?.svg;return{type:f(e.level),value:e.formattedName||"",iconUrl:r}}):null,O=e=>e.priceChange&&e.priceChange.priceChangeDirection?"EQUAL"===e.priceChange.priceChangeDirection?u:e.priceChange.priceChangeDirection.toLowerCase():u,E=e=>{let r="",t="",i="",o="";return e.location&&(r=((e,r,t)=>{if(!e)return t||"";if(!r)return e;let i=e.replace(/\.$/,"").trim();return r.replace(/\.$/,"").trim().startsWith(i)?e:`${e} | ${r}`})(e.location.communityLocation,e.location.streetAddress,e.location.partialLocation),t=e.location.city||"",i=e.location.stateCode||"",o=e.location.zipCode||""),{streetAddress:r,city:t,stateCode:i,zipCode:o}},_=e=>e.__typename===h.RENTAL_COMMUNITY?null:e.floorSpace&&e.floorSpace.formattedDimension,S=(e,r=[],t=p,i="small")=>{let o={},a=(0,c.supportsWebp)(r);return e.media&&Array.isArray(e.media.photos)&&e.media.photos.length>0&&e.media.photos[0].url&&e.media.photos[0].url[i]&&(o.photos=e.media.photos.map(e=>a&&e.webpUrl?{url:e.webpUrl&&(e.webpUrl[i]||e.webpUrl.extraLarge||e.webpUrl.large||e.webpUrl.medium||e.webpUrl.small)}:{url:e.url[i]||e.url.extraLarge||e.url.large||e.url.medium||e.url.small}),o.imageSrc=o.photos[0].url),e.media&&e.media.heroImage&&e.media.heroImage.url&&e.media.heroImage.url[i]?o.imageSrc=a&&e.media.heroImage.webpUrl?e.media.heroImage.webpUrl[i]:e.media.heroImage.url[i]:o.imageSrc||(o.imageSrc=t),o},v=e=>e?.media?.heroImage?.__typename==="MEDIA_HeroImageStreetView",T=(e,r)=>{if(r){let r=e?.activeListing?.provider?.extraShortSummary||e?.lastSold?.provider?.extraShortSummary;if(Array.isArray(r))return r.join(", ")}let t=e?.activeListing?.provider?.summary||e?.lastSold?.provider?.summary||e?.provider?.summary;if(Array.isArray(t))return t.join(", ")},R=e=>e?.displayFlags?.showMLSLogoOnListingCard?e?.activeListing?.provider?.listingSource?.logoUrl||e?.lastSold?.provider?.listingSource?.logoUrl:"",I=(e,r,t=p,i={},o)=>{let{useFullTags:a,useExtraShortSummary:l,useFullAttributes:s,propertyCardFactLabels:n}=i;return{...E(e),...S(e,r,t,o),tags:C(e,a),saved:e.preferences&&e.preferences.isSaved,propertyLink:e.url||"",price:A(e),beds:y(e,s,n),baths:b(e,s,n),floorSpace:_(e),lotSize:e?.lotSize?.formattedDimension,trend:O(e),imageAlt:e.location&&e.location.fullLocation||"",fallbackSrc:t,isStreetView:v(e),summary:T(e,l),summaryColor:e?.displayFlags?.addAttributionProminenceOnListCard?"default":"lowlight",logoUrl:R(e)}},M=(e,r,t=p,i={},o)=>{let{useFullAttributes:a,propertyCardFactLabels:l}=i;return{...E(e),...S(e,r,t,o),tags:C(e),saved:e.preferences&&e.preferences.isSaved,propertyLink:e.url||"",price:A(e),beds:y(e,a,l),baths:b(e,a,l),floorSpace:_(e),lotSize:e?.lotSize?.formattedDimension,trend:O(e),imageAlt:e.location&&e.location.fullLocation||"",fallbackSrc:t,isStreetView:v(e),isRoomForRent:e.__typename===h.ROOM_FOR_RENT,summary:T(e),logoUrl:R(e),priceAttributes:e?.price?.typeDescription?{typeDescription:e.price.typeDescription,typeDescriptionIcon:e.price.typeDescriptionIcon,typeDescriptionDetail
1s:e.price.typeDescriptionDetails}:null}},L=e=>{let r=e&&e.__typename;return r===h.PROPERTY||r===h.FLOOR_PLAN||r===h.ROOM_FOR_RENT||r===h.RENTAL_COMMUNITY},D=()=>g;var P=t(19081),H=t(33791),N=t(81961),k=t(49548),x=t(18113),w=t(72035);class F extends s.Component{static{this.defaultProps={lazyLoadImage:!1,carouselEnabled:!0,placeholderImage:"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",useFullTags:!1,homeDetails:{url:"",tags:[],bedrooms:"",bathrooms:"",floorSpace:null,currentStatus:null,media:null,location:null,isSaveable:!1,preferences:null,price:null,priceChange:null,handleHideHome:null,handleShareHome:null,handleSeeSimilarHomes:null},eagerLoadingFirstImage:!1}}static{this.fragments=k.A}render(){let{homeDetails:e}=this.props,{__typename:r}=e,{isActiveForRent:t}="currentStatus"in e?e.currentStatus:{isActiveForRent:!1};return r===h.ROOM_FOR_RENT||r===h.RENTAL_COMMUNITY||t?this.generateForRentPropertyCard():r===h.PROPERTY||r===h.FLOOR_PLAN||r===h.BUILDER_COMMUNITY?this.generateForSalePropertyCard():null}constructor(...e){super(...e),this.state={mediaIndex:0},this.onSave=()=>{let{onSave:e,onUnsave:r,homeDetails:t}=this.props;t.preferences&&t.preferences.isSaved?r({homeDetails:t}):e({homeDetails:t})},this.onClick=e=>{let{onClick:r,homeDetails:t,fallbackSrc:i,session:o={},mediaSize:a}=this.props,{supportedMediaTypes:l}=o,{mediaIndex:s}=this.state;if(r){let{photos:o,imageSrc:n}=S(t,l,i,a);r(e,o?o[s].url:n)}},this.onMediaIndexChanged=e=>{let{onMediaIndexChanged:r}=this.props;this.setState({mediaIndex:e},()=>{r&&r(e)})},this.filterCardPhotos=e=>{let{lazyLoadImage:r,placeholderImage:t,carouselEnabled:i}=this.props;if(r){let{photos:r,imageSrc:i,imageSources:o,...a}=e;return{...a,imageSrc:t}}if(!i){let{photos:r,imageSrc:t,imageSources:i,...o}=e;return{...o,imageSrc:t}}return e},this.filterOtherCardProps=e=>{let{handleLeadForm:r,handleHideHome:t,handleSeeSimilarHomes:i,carouselEnabled:o,handleShareHome:a,viewer:l,searchType:s,placeholderImage:n,lazyLoadImage:m,isLeadFormSubmitted:d,createAnalyticsEvent:c,trackingModuleName:p,ab:u,...h}=e;return h},this.getAdditionalActions=()=>{let e,{handleShareHome:r,handleHideHome:t,handleUnhideHome:i,handleSeeSimilarHomes:s,onUnsave:n,onSave:m,homeDetails:d,createAnalyticsEvent:c,isActionRowExposed:p,isLeadFormSubmitted:u,handleLeadForm:h,i18n:g}=this.props,{t:A}=g,y=r?{id:"share",title:A("homeDetails.userActions.share"),icon:(0,o.jsx)(l.liv,{}),onClick:e=>{r(d),(0,x.A)(e)}}:null,b=t?{id:"hide",title:A("homeDetails.userActions.hide"),icon:(0,o.jsx)(l.WKY,{}),onClick:e=>{t(d),(0,x.A)(e)}}:null,f=i?{id:"unhide",title:A("homeDetails.userActions.unhide"),icon:(0,o.jsx)(l.WKY,{}),onClick:e=>{i(d),(0,x.A)(e)}}:null,C=d.isTourAvailable,O=h?{id:"lead form",title:u?"Sent":C?"Tour":"Email",disabled:u,icon:C?(0,o.jsx)(l.CTc,{}):(0,o.jsx)(l.aZ_,{}),onClick:e=>{(0,x.A)(e),h(),c(a.c.ACTION,{interactedWith:"property card exposed: lead form click",leadStart:1}).track()}}:null,E=s?{id:"similarHomes",title:A(p?"homeDetails.userActions.similar":"homeDetails.userActions.seeSimilarHomes"),icon:(0,o.jsx)(l.iQn,{}),onClick:e=>{s(d),(0,x.A)(e),c(a.c.INTERACTION,{interactedWith:`property card ${p?"exposed":"dropdown"} action:similar homes`}).track()}}:null;r&&(e=d.preferences&&d.preferences.isSaved?{id:"unsave",title:A("homeDetails.userActions.unsave"),icon:(0,o.jsx)(l.zwu,{}),onClick:e=>{n({homeDetails:d}),c(a.c.INTERACTION,{interactedWith:"property card:dropdown unsave"}).track(),(0,x.A)(e)}}:{id:"save",title:A("homeDetails.userActions.save"),icon:(0,o.jsx)(l.C3E,{}),onClick:e=>{m({homeDetails:d}),c(a.c.INTERACTION,{interactedWith:`property card ${p?"exposed":"dropdown"}:dropdown save`}).track(),(0,x.A)(e)}});let _=d.preferences?.isSaved;return p?[E,_?null:b,y,_?O:null,_?null:e].filter(e=>e):[e,y,b,f,E].filter(e=>e)},this.generateForSalePropertyCard=()=>{let{homeDetails:e,fallbackSrc:r,useFullTags:t,onSave:i,session:a={},onUnsave:s,index:n,mediaSize:m,eagerLoadingFirstImage:d,breakpoint:c,isActionRowExposed:p,useFullAttributes:u,additionalActions:h,...g}=this.props,{supportedMediaTypes:A}=a,y=!0===e.isSaveable&&i&&s,b=this.filterCardPhotos(I(e,A,r,{useFullTags:t,useFullAttributes:u,propertyCardFactLabels:{bedAbbrev:"bd",bathAbbrev:"ba",studio:"Studio"}},m)),f=this.filterOtherCardProps(g),C=h||this.getAdditionalActions(),O=e?.groupedInsights?.insights&&e?.media?.photos?.length>0?e?.groupedInsights?.insights:null;return(0,o.jsx)("div",{ref:this.cardRef,children:(0,o.jsx)(l.Q94,{...b,...f,onClick:this.onClick,onMediaIndexChanged:this.onMediaIndexChanged,onSave:y?this.onSave:null,facts:O,"data-testid":"home-card-sale",fetchpriority:d&&0===n?"high":"auto",additionalActions:C,isActionRowExposed:p})})},this.generateForRentPropertyCard=()=>{let{homeDetails:e,fallbackSrc:r,onSave:t,onUnsave:i,session:a={},index:s,mediaSize:m,eagerLoadingFirstImage:d,useFullAttributes:c,ab:p,additionalActions:u,...h}=this.props,{supportedMediaTypes:g}=a,A=!0===e.isSaveable&&t&&i,{t:y}=this.props.i18n,b={bedAbbrev:y("propertyCard.bedAbbrev"),bathAbbrev:y("propertyCard.bathAbbrev"),studio:y("propertyCard.studio")}
1,f=this.filterCardPhotos(M(e,g,r,{useFullAttributes:c,propertyCardFactLabels:b},m)),C=this.filterOtherCardProps(h),O=u||this.getAdditionalActions();return(0,o.jsx)(n.pL,{threshold:0,as:"div",onChange:this.handleInViewTracking,triggerOnce:!0,children:(0,o.jsx)("div",{ref:this.cardRef,children:(0,o.jsx)(l.Yfw,{...f,...C,onClick:this.onClick,onMediaIndexChanged:this.onMediaIndexChanged,onSave:A?this.onSave:null,"data-testid":"home-card-rent",fetchpriority:d&&0===s?"high":"auto",additionalActions:O})})},e?.url)},this.handleInViewTracking=e=>{let{createAnalyticsEvent:r,trackingModuleName:t,homeDetails:i}=this.props;e&&r(a.c.ACTION,{pageDetails:t,providerListingId:"providerListingId"in i?i.providerListingId:null,eventAction:"RentalPropertyImpression",sendOnlyTo:"clickstream"}).track()}}}F=(0,i.Cg)([(0,P.W)({session:H.IC,ab:w.y}),(0,a.u4)()],F);let U=(0,N.z)(F);d()(U,F);let $=(0,l.WjH)(U);d()($,U);let j=$},49548:(e,r,t)=>{t.d(r,{A:()=>o});var i=t(3219);let o={get homeDetails(){return(0,i.Ay)`
2      fragment HomeDetailsCardFragment on HOME_Details {
3        __typename
4        location {
5          city
6          stateCode
7          zipCode
8          streetAddress
9          fullLocation: formattedLocation(formatType: STREET_CITY_STATE_ZIP)
10          partialLocation: formattedLocation(formatType: STREET_ONLY)
11        }
12        price {
13          formattedPrice
14          ... on HOME_ValuationPrice {
15            typeDescription(abbreviate: true)
16          }
17          ... on HOME_SinglePrice {
18            typeDescription
19            typeDescriptionIcon
20            typeDescriptionDetails {
21              markdown
22            }
23          }
24          ... on HOME_PriceRange {
25            typeDescription
26            typeDescriptionIcon
27            typeDescriptionDetails {
28              markdown
29            }
30          }
31        }
32        url
33        homeUrl
34        tags(include: MINIMAL, includePriceDrops: $includePriceDrops) {
35          level
36          formattedName
37          icon {
38            vectorImage {
39              svg
40            }
41          }
42        }
43        fullTags: tags {
44          level
45          formattedName
46          icon {
47            vectorImage {
48              svg
49            }
50          }
51        }
52        floorSpace {
53          formattedDimension
54        }
55        lotSize {
56          ... on HOME_SingleDimension {
57            formattedDimension(minDecimalDigits: 2, maxDecimalDigits: 2)
58          }
59        }
60        bedrooms {
61          formattedValue(formatType: COMMON_ABBREVIATION)
62          ... on HOME_BedroomRange {
63            min
64            max
65          }
66
67          ... on HOME_FixedBedrooms {
68            value
69          }
70        }
71        bathrooms {
72          formattedValue(formatType: COMMON_ABBREVIATION)
73          ... on HOME_FixedBathrooms {
74            value
75          }
76          ... on HOME_BathroomRange {
77            max
78            min
79          }
80        }
81        isSaveable
82        preferences {
83          isSaved
84        }
85        metadata {
86          compositeId
87          legacyIdForSave
88          unifiedListingType
89          typedHomeId
90        }
91        typedHomeId
92        tracking {
93          key
94          value
95        }
96        displayFlags {
97          showMLSLogoOnListingCard
98          addAttributionProminenceOnListCard
99        }
100        ... on HOME_RoomForRent {
101          providerListingId
102        }
103
104        ... on HOME_RentalCommunity {
105          activeListing {
106            provider {
107              summary(formatType: SHORT)
108              listingSource {
109                logoUrl
110              }
111            }
112          }
113          location {
114            communityLocation: formattedLocation(
115              formatType: STREET_COMMUNITY_NAME
116            )
117          }
118          providerListingId
119        }
120
121        ... on HOME_Property {
122          currentStatus {
123            isRecentlySold
124            isRecentlyRented
125            isActiveForRent
126            isActiveForSale
127            isOffMarket
128            isForeclosure
129          }
130          priceChange {
131            priceChangeDirection
132          }
133          activeListing {
134            provider {
135              summary(formatType: SHORT)
136              extraShortSummary: summary(formatType: EXTRA_SHORT)
137              listingSource {
138                logoUrl
139              }
140            }
141            dateListed
142          }
143          lastSold {
144            provider {
145              summary(formatType: SHORT)
146              extraShortSummary: summary(formatType: EXTRA_SHORT)
147              listingSource {
148                logoUrl
149              }
150            }
151          }
152          providerListingId
153        }
154
155        ... on HOME_FloorPlan {
156          priceChange {
157            priceChangeDirection
158          }
159          provider {
160            summary(formatType: SHORT)
161          }
162        }
163      }
164    `},get homeDetailsHero(){return(0,i.Ay)`
165      fragment HomeDetailsCardHeroFragment on HOME_Details {
166        media {
167          heroImage(fallbacks: $heroImageFallbacks) {
168            url {
169              small
170              medium
171            }
172            webpUrl: url(compression: webp) {
173              small
174            }
175          }
176        }
177      }
178    `},get homeDetailsPhotos(){return(0,i.Ay)`
179      fragment HomeDetailsCardPhotosFragment on HOME_Details {
180        media {
181          __typename
182          heroImage(fallbacks: $heroImageFallbacks) {
183            url {
184              small
185              medium
186            }
187            webpUrl: url(compression: webp) {
188              small
189              medium
190            }
191          }
192          photos {
193            url {
194              small
195              medium
196            }
197            webpUrl: url(compression: webp) {
198              small
199              medium
200            }
201          }
202        }
203      }
204    `},get homeDetailsCallToAction(){return(0,i.Ay)`
205      fragment HomeDetailsCallToActionFragment on HOME_Details {
206        hasPrequalifiers
207        ... on HOME_Property {
208          isTourAvailable(isOptimistic: true)
209        }
210        leadFormCallToAction(context: CARD, appendOneClick: true) {
211          callToActionType
212          callToActionDisplayLabel
213          supportsCancellableSubmission
214          buttonStyle
215        }
216      }
217    `}}},75258:(e,r,t)=>{t.d(r,{Z:()=>i.A});var i=t(49548)}}]);

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.