1 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 6 7 <link href="https://www.livabl.com/" rel="canonical" /> 8 <meta charset="utf-8" /> 9 <meta http-equiv="X-UA-Compatible" content="IE=edge">
9<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"027e82486e","applicationID":"4053565","transactionName":"MlZRZkJVW0VXB0VQCgscfmRzG31ZWwFyVgsRQVxeXFFHGX8KVVwd","queueTime":0,"applicationTime":89,"agent":"","atts":""}</script>
9<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"UgcBWFFbGwcAUVJXAQQ=",licenseKey:"027e82486e",applicationID:"4053565",browserID:"4053568"};;/*! For license information please see nr-loader-full-1.323.0.min.js.LICENSE.txt */ 10(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
10e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
10const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>S,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
10if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,R(e,t)}function R(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function w(e,t,r,n,i){if(R(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(w(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(w(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function S(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let R=0,w=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(R=R>0?Math.min(R,e):e),t&&(w=w>0?Math.max(w,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return R>0?Math.min(e,R):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return w>0?Math.max(e,w):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
10o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
10(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
10;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",649:"nr-full-iframe-message-handler",89
101:"nr-full"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={891:"sha512-3jboCmrue7pvfLFAQ9FaZC6iM4mLMLaZF6lKolNEXSkSEV504XyvxAZYc2IA7anoBv2V+k1HPTEP1kEgaIYkeg==",222:"sha512-VSWDjY6WtlUmQRPiGWVhKHgN3DMcL8oP9fKdTus8nteEdkVzXz/VhtS6N3wJyto6jHNHRLawzAny60sfcHbBNQ==",95:"sha512-JfHJ5y7GJR1Z5RXbhGTJAaX+pDpLAzH+9IdJQc7Lc7hz3fR+zqyabKG7hPG4eQQ3dZhcuoJKdfj+OhPePveplQ==",649:"sha512-mN3SeCI8QgOG4PdhbG1UlLTWP/P9Ckx3bEoFST53PE7ctYb2Pwk/sVJpCoVwkXTlhP17BH8L/BkzHI4sD+yo6Q=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={85:0,959:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
10ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var R=r(9232);var w=r(7836),T=r(3241);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var A=r(9908),x=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,S)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=w.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,A.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var O=r(1863),k=r(4261),L=r(1738);var M=r(1687),P=r(4234),N=r(5289),j=r(5270),I=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends P.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,M.Ak)(e,this.featureName),t()}))}):(0,M.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
10{if((0,I.V)(e.init))try{const{setupAgentSession:t}=await r.e(891).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,A.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(649).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(891).then(r.bind(r,6589)),r.e(891).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,N.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,j.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var K=r(6630);class U extends W{static featureName=K.T;constructor(e){var t;super(e,K.T),this.setupInspectionEvents(),t=e,(0,L.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,A.p)("api-"+k.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(891).then(r.bind(r,908)):r.e(891).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,N.sB)(t=>{e(t,"DOMContentLoaded")}),(0,N.GG)(t=>{e(t,"load")}),(0,N.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(U),_(this,e,e.loaderType||"agent"),t=this,(0,L.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,L.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,L.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,A.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,L.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,L.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,L.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,L.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,L.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,A.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,A.p)("docHidden",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,A.p)("winPagehide",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(891).then(r.bind(r,9018))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(891).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){"string"==typeof e&&(e=new Error(e)),(0,A.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,A.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
10null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,A.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,A.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,O.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const Re=["entry","scripts","all"],we=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Se={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Ae(e){(0,L.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Se.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=R.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:R.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||Re.includes(r.timingMethod)||(Se.invalidTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||R.f.BA,"parent.id":r.parent?.id})}
10),Object.entries(r.tags).forEach(([e,t])=>{we.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Se.disabled),u(r.id)&&u(r.name)||d(()=>Se.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Se.duplicateName(r),n===r.id&&t!==r.name&&Se.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Se.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
10imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,A.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class _e extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,L.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,L.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,L.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Ae(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,A.p)("ierr",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,A.p)("err",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,A.p)("err",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(891).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Oe=r(8990);let ke=1;function Le(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,Oe.I)(e,"nr@id",function(){return ke++})}function Me(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Pe=r(8139),Ne=r(3434),je=r(5732);const Ie={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||w.ee;const n=function(e){return(e||w.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Ne.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,je.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ke=g.gm.Request,Ue=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||w.ee).get("fetch")}(e);if(!(Ke&&Ue&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,je.$5)(t);var o;r.emit(i+"before-start",[e],n),n[w.P]&&n[w.P].dt&&(o=n[w.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
10return Ve[r.debugId]=1,We.forEach(e=>{n(Ke[Fe],e,He),n(Ue[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,A.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=S,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){_(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Me(i);a&&(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
10!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function R(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function w(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Me(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Me(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function S(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Me(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Me(e.response):"text"===r||""===r||void 0===r?Me(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,A.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",R),r.on("fetch-start",w),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(891).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||w.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Ne.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,L.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,A.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,A.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,L.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,A.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
10if(!(0,I.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(pt,function(e,r){(0,A.p)("bst",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,A.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,A.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(891).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,L.Y)(k.CH,function(){(0,A.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,L.Y)(k.Tb,function(){(0,A.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,j.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(891).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,A.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,j.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(891),r.e(222)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var Rt=r(981);const wt={},Tt=new Set;function St(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class At{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class xt extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,L.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,L.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Ae(e),function(e){(0,L.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(wt[r.debugId]++)return r;wt[r.debugId]=1,(0,V.G)(()=>{const e=(0,O.t)();Tt.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
10class n extends WebSocket{static name=Rt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new At(e[0],e[1]),this.targets=(0,je.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,O.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=St(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=St(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,A.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,A.p)("spv",[_t(e),(0,O.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,A.p)("spv",[_t(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,A.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
10h(e=>{const t=(0,C.s)(e=>{(0,A.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,A.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(891).then(r.bind(r,8019))):this.deregisterDrain()}}function _t(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Ot=r(2646);const kt=new Map;function Lt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||w.ee).get("logger")}(e),o=(0,Ne.YM)(a,void 0,s),c=new Ot.y(w.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Ne.Jt]||t[r];return kt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>kt.get(d),void 0,!0),a}var Mt=r(1910);class Pt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,L.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,L.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Lt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Ae(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Mt.i)(g.gm.console[t]),Lt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(891).then(r.bind(r,5288)))}}new F({features:[U,G,vt,Et,nt,Y,_e,xt,Pt],loaderType:"pro"})})()})();</script>
10 11 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0"> 12 <meta name="apple-mobile-web-app-capable" content="yes" /> 13 <meta property="og:title" content="Livabl.com | New Construction Homes for Sale & New Home Builders"> 14 <meta property="og:description" name="Description" content="Livabl is North America's largest new home construction and builder marketplace. Search over 20,000 new home, condo and townhome communities."> 15 <meta name="Author" content="Livabl"> 16 <meta name="Email" content="[email protected]"> 17 <meta name="referrer" content="origin-when-crossorigin" /> 18 19 20 21 <meta property="og:type" content="website" /> 22 23 <meta property="og:site_name" content="Livabl" /> 24 25 26 <meta property="og:image" content="https://d1hsh3wswahchu.cloudfront.net/siteimages/logos/livabl_logo_white.png"> 27 28 29 30 31 <!--[if lt IE 8]><meta http-equiv="refresh" content="0; url=/unsupported" /><![endif]--> 32 <link rel="icon" href="https://livabl.s3.amazonaws.com/favicons/favicon.ico" /> 33 <link rel="shortcut icon" href="https://livabl.s3.amazonaws.com/favicons/favicon.ico" /> 34 <link rel="apple-touch-icon" sizes="180x180" href="https://livabl.s3.amazonaws.com/favicons/apple-touch-icon.png" /> 35 <link rel="icon" type="image/png" sizes="32x32" href="https://livabl.s3.amazonaws.com/favicons/favicon-32x32.png" /> 36 <link rel="icon" type="image/png" sizes="16x16" href="https://livabl.s3.amazonaws.com/favicons/favicon-16x16.png" /> 37 <link rel="manifest" href="https://livabl.s3.amazonaws.com/favicons/site.webmanifest" /> 38 <link rel="mask-icon" href="https://livabl.s3.amazonaws.com/favicons/safari-pinned-tab.svg" color="#000000" /> 39 <link rel="shortcut icon" href="https://livabl.s3.amazonaws.com/favicons/favicon.ico" /> 40 <meta name="msapplication-TileColor" content="#ffffff" /> 41 <meta name="msapplication-config" content="https://livabl.s3.amazonaws.com/favicons/browserconfig.xml" /> 42 <meta name="theme-color" content="#ffffff" /> 43 44 <title>Livabl.com | New Construction Homes for Sale & New Home Builders</title> 45 <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> 46 <noscript><link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"></noscript> 47 48 <link rel="stylesheet" type="text/css" href="https://d1hsh3wswahchu.cloudfront.net/bundles/css/shared_55.0.0.css?r=D53CFC36DE41C119C6C1C61EF68A0ACE2A75BE68" /> 49
49<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/modernizrCustom_55.0.0.js?r=8812F9C2C9E84ADC8BB817780834CE118BDE5F00"></script>
49 50
50<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/namespace_55.0.0.js?r=61C4B528BAED8E02793C680504B169AD7344782B"></script>
50 51
51<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/moment_55.0.0.js?r=FDE7A0F6355E049CA6D968DE72EC8ADAEF451658"></script>
51 52
52<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/utilfunc_55.0.0.js?r=E5FBE955535B6AECAF6CC76BA3CF8A012369D806"></script>
52 53 54<!-- GTM -->
55<script> 56 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 57 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 58 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 59 'https://www.googletagmanager.com/gtm.js?id=' + i + dl + '';f.parentNode.insertBefore(j,f); 60 })(window,document,'script','dataLayer','GTM-NHXNK3K'); 61</script>
61 62
62<script src="/Scripts/Shared/waitForGoogleTag.js"></script>
62 63
63<script> 64 65 var loadPreBid = function () { 66 let myScript = document.createElement("script"); 67 myScript.setAttribute('async', 'async'); 68 myScript.setAttribute('defer', 'defer'); 69 myScript.setAttribute("src", "/Scripts/prebid6.3.0.js"); 70 myScript.onload = InitPreBid; 71 document.body.appendChild(myScript); 72 } 73 74 var loadGPT = function () { 75 let myScript = document.createElement("script"); 76 myScript.setAttribute('async', 'async'); 77 myScript.setAttribute('defer', 'defer'); 78 myScript.setAttribute("src", "https://securepubads.g.doubleclick.net/tag/js/gpt.js"); 79 myScript.onload = loadPreBid; 80 document.body.appendChild(myScript); 81 } 82 83 84 var _onload = function () { 85 loadGPT(); 86 } 87 88 if (window.addEventListener) { 89 window.addEventListener('load', _onload, false); 90 } 91 else { window.attachEvent('onload', _onload) } 92 93 function InitPreBid() { 94 95 var PREBID_TIMEOUT = 1250; 96 var FAILSAFE_TIMEOUT = 1750; 97 98 var adUnits = [{ 99 code: 'BBH_DBA_Top_320x50_728x90_970x90_970x250_AllDevices', 100 mediaTypes: { 101 banner: { 102 sizeConfig: [{ 103 minViewPort: [0, 0], 104 sizes: [[320, 50]] 105 }, 106 { 107 minViewPort: [767, 0], 108 sizes: [[728, 90]] 109 }, 110 { 111 minViewPort: [1023, 0], 112 sizes: [[728, 90], [970, 90]] 113 } 114 ] 115 } 116 }, 117 bids: [{ 118 bidder: 'ix', 119 params: { 120 siteId: '755407' 121 }, 122 sizeConfig: [{ 123 minViewPort: [0, 0], 124 relevantMediaTypes: ['none'] 125 }, 126 { 127 minViewPort: [767, 0], 128 relevantMediaTypes: ['banner'] 129 }, 130 { 131 minViewPort: [1023, 0], 132 relevantMediaTypes: ['banner'] 133 } 134 ] 135 }, 136 { 137 bidder: 'ix', 138 params: { 139 'siteId': '755400' 140 }, 141 sizeConfig: [{ 142 minViewPort: [0, 0], 143 relevantMediaTypes: ['none'] 144 }, 145 { 146 minViewPort: [767, 0], 147 relevantMediaTypes: ['none'] 148 }, 149 { 150 minViewPort: [1023, 0], 151 relevantMediaTypes: ['banner'] 152 } 153 ] 154 }, 155 { 156 bidder: 'rubicon', 157 params: { 158 accountId: 18596, 159 siteId: 395882, 160 zoneId: 2208726 161 }, 162 sizeConfig: [{ 163 minViewPort: [0, 0], 164 relevantMediaTypes: ['banner'] 165 }, 166 { 167 minViewPort: [767, 0], 168 relevantMediaTypes: ['banner'] 169 }, 170 { 171 minViewPort: [1023, 0], 172 relevantMediaTypes: ['banner'] 173 } 174 ] 175 }, 176 177 { 178 bidder: 'sharethrough', 179 params: { 180 pkey: 'MRo3gU7RfDO3dKGjnVnPTfHa' 181 }, 182 sizeConfig: [{ 183 minViewPort: [0, 0], 184 relevantMediaTypes: ['banner'] 185 }, 186 { 187 minViewPort: [767, 0], 188 relevantMediaTypes: ['none'] 189 }, 190 { 191 minViewPort: [1023, 0], 192 relevantMediaTypes: ['none'] 193 } 194 ] 195 }, { 196 bidder: 'sharethrough', 197 params: { 198 pkey: 'WrLMYp6tGeDpgSQ0QqUN8qTw' 199 }, 200 sizeConfig: [{ 201 minViewPort: [0, 0], 202 relevantMediaTypes: ['none'] 203 }, 204 { 205 minViewPort: [767, 0], 206 relevantMediaTypes: ['banner'] 207 }, 208 { 209 minViewPort: [1023, 0], 210 relevantMediaTypes: ['none'] 211 } 212 ] 213 }, { 214 bidder: 'sharethrough', 215 params: { 216 pkey: 'qjyQLK5GU9czt2KTnLTQn2Sm' 217 }, 218 sizeConfig: [{ 219 minViewPort: [0, 0], 220 relevantMediaTypes: ['none'] 221 }, 222 { 223 minViewPort: [767, 0], 224 relevantMediaTypes: ['none'] 225 }, 226 { 227 minViewPort: [1023, 0], 228 relevantMediaTypes: ['banner'] 229 } 230 ] 231 }, { 232 bidder: 'sharethrough', 233 params: {
234 pkey: 'Cu1D3mRNGjqcccd7LftUANRA' 235 }, 236 sizeConfig: [{ 237 minViewPort: [0, 0], 238 relevantMediaTypes: ['none'] 239 }, 240 { 241 minViewPort: [767, 0], 242 relevantMediaTypes: ['none'] 243 }, 244 { 245 minViewPort: [1023, 0], 246 relevantMediaTypes: ['banner'] 247 } 248 ] 249 }] 250 251 } 252 ] 253 254 var googletag = window.googletag || {}; 255 googletag.cmd = googletag.cmd || []; 256 257 var pbjs = window.pbjs || {}; 258 pbjs.que = pbjs.que || []; 259 260 pbjs.que.push(function () { 261 pbjs.addAdUnits(adUnits); 262 pbjs.setConfig({ 263 priceGranularity: "high", 264 rubicon: { singleRequest: true } 265 }); 266 pbjs.requestBids({ 267 bidsBackHandler: initAdserver, 268 timeout: PREBID_TIMEOUT 269 }); 270 }); 271 272 function initAdserver() { 273 if (pbjs.initAdserverSet) return; 274 pbjs.initAdserverSet = true; 275 googletag.cmd.push(function () { 276 pbjs.que.push(function () { 277 pbjs.setTargetingForGPTAsync(); 278 googletag.pubads().refresh(); 279 }); 280 }); 281 } 282 // in case PBJS doesn't load 283 setTimeout(function () { 284 initAdserver(); 285 }, FAILSAFE_TIMEOUT); 286 }; 287 </script>
287 288 289 290 <link rel="stylesheet" type="text/css" href="https://d1hsh3wswahchu.cloudfront.net/bundles/css/homepage_55.0.0.css?r=1467779E6530E8B93673B5B9CE3D53531E9DE7BC" /> 291 292<!-- Begin comScore Tag -->
293<script> 294 var _comscore = _comscore || []; 295 _comscore.push({ c1: "2", c2: "18897611" }); 296 (function() { 297 var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; 298 s.src = (document.location.protocol == "https:" ? "https://sb" : "https://b") + ".scorecardresearch.com/beacon.js"; 299 el.parentNode.insertBefore(s, el); 300 })(); 301</script>
301 302<noscript> 303 <img src="https://b.scorecardresearch.com/p?c1=2&c2=18897611&cv=2.0&cj=1" /> 304</noscript> 305<!-- End comScore Tag --> 306</head> 307<body> 308 309<!-- GTM -->
vendor: 75 bytes, lines 309-311
309 310<noscript> 311 <iframe src="https://www.googletagmanager.com/ns.html?id=
311GTM-NHXNK3K
vendor: 103 bytes, lines 311-314
311" 312 height="0" width="0" style="display:none;visibility:hidden"></iframe> 313</noscript> 314
314<!--[if IE 8]> 315 316
316<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
316 317 318 <link href="//maxcdn.bootstrapcdn.com/respond-proxy.html" rel="respond-proxy" /> 319 <link href="https://d1hsh3wswahchu.cloudfront.net/scripts/respond-proxy.html" rel="respond-proxy" /> 320 <link href="/Scripts/ScriptsLib/IE8Support/respond.proxy.gif" id="respond-redirect" rel="respond-redirect" /> 321
321<script src="/Scripts/ScriptsLib/IE8Support/respond.proxy.js"></script>
321 322 323
323<script language="javascript" type="text/javascript" src="/Scripts/ScriptsLib/flot-graphapi/excanvas.min.js"></script>
323 324 <![endif]--> 325
325<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js" type="text/javascript"></script>
325 326 <noscript style="color:red;position:fixed;top:112px;z-index:10000;background-color:white;"> 327 It seems your browser does not support javascript! If you are experiencing issues browsing try switching to a browser that supports javascript. 328 </noscript> 329 <div class="container-fluid row-offcanvas"> 330 331 332 333 334
335<script type="text/javascript"> 336 Namespace("bbh.location", { 337 userLocation: { 338 Latitude: 41.8483, 339 Longitude: -87.6517, 340 City: 'Chicago', 341 State: 'Illinois', 342 Country: 'United States' 343 }, 344 }); 345</script>
345 346 347 348
349<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
349 350 351 <div class="container search-wrapper home-search"> 352 353 354 355<div class="livabl-header-search search-input-container visible-sm-block visible-md-block visible-lg-block padding-search "> 356 <form class="navbar-form navbar-left " role="search" data-bbh-autocomplete="true" data-bbh-autocomplete-input-class="searchTermBox" 357 data-bbh-autocomplete-action="/bbhAjax/Search/MainSearchBar_AutoComplete" data-bbh-autocomplete-method="post" autocomplete="off" aria-label="Enter community, location or company"> 358 <input Value="0" data-val="true" data-val-required="The SearchType field is required." name="SearchType" type="hidden" value="Default" /> 359 <div class="col-md-12 col-lg-12 col-sm-12 col-xs-9 xs-fullsearch-box mr-10"> 360 361 <input aria-label="Enter community, location or company" autocomplete="off" autofocus="autofocus" class="form-control searchTermBox" name="SearchTerm" type="text" value="" /> 362 <button type="button" class="submit-search hidden-xs" aria-label="Search"> 363 <span class="btn-label"> 364 <div class="search-button-font"> 365 Search 366 </div> 367 <div class="new-angle-arrow"></div> 368 </span> 369 <span class="submit-spinning-loader"> 370 371 <svg class="spinning-loader" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="https://www.w3.org/2000/svg"> 372 <g clip-path="url(#clip0_5762_23118)"> 373 <path opacity="0.5" d="M6.26013 17.0391C5.65999 17.0391 5.15001 17.2491 4.72997 17.669C4.3101 18.0894 4.1 18.5993 4.1 19.1994C4.1 19.7996 4.30994 20.3095 4.72997 20.7298C5.15017 21.1498 5.66015 21.3598 6.26013 21.3598C6.85017 21.3598 7.35758 21.1498 7.78266 20.7298C8.20758 20.31 8.42005 19.7996 8.42005 19.1994C8.42005 18.5993 8.20764 18.0898 7.78266 17.669C7.35753 17.2494 6.85017 17.0391 6.26013 17.0391Z" fill="#1E1D21" /> 374 <path opacity="0.6" d="M5.78045 12.4806C5.78045 11.8206 5.54555 11.2558 5.0755 10.7854C4.6055 10.3154 4.04041 10.0804 3.38043 10.0804C2.7204 10.0804 2.15542 10.3154 1.68536 10.7854C1.21542 11.2554 0.980469 11.8204 0.980469 12.4806C0.980469 13.1405 1.21536 13.7052 1.68536 14.1754C2.15542 14.6455 2.7204 14.8805 3.38043 14.8805C4.04041 14.8805 4.6055 14.6455 5.0755 14.1754C5.54555 13.7055 5.78045 13.1405 5.78045 12.4806Z" fill="#1E1D21" /> 375 <path opacity="0.1" d="M19.7002 6.96114C20.0299 6.96114 20.3129 6.84346 20.5476 6.60856C20.7826 6.37346 20.9003 6.09086 20.9003 5.76092C20.9003 5.43083 20.7826 5.14844 20.5476 4.91349C20.3127 4.67839 20.0299 4.56091 19.7002 4.56091C19.3701 4.56091 19.0874 4.6786 18.8524 4.91349C18.6176 5.14849 18.5001 5.43083 18.5001 5.76092C18.5001 6.09102 18.6176 6.37346 18.8524 6.60856C19.0874 6.84367 19.3701 6.96114 19.7002 6.96114Z" fill="#1E1D21" /> 376 <path opacity="0.7" d="M6.26193 3.11951C5.53182 3.11951 4.90935 3.37705 4.39433 3.89197C3.87925 4.40689 3.62187 5.0294 3.62187 5.75936C3.62187 6.48958 3.87925 7.11183 4.39433 7.62696C4.90951 8.14204 5.53198 8.39952 6.26193 8.39952C6.99189 8.39952 7.6144 8.14188 8.12932 7.62696C8.64424 7.11183 8.90178 6.48942 8.90178 5.75936C8.90178 5.0294 8.64424 4.40689 8.12932 3.89197C7.6144 3.37705 6.99189 3.11951 6.26193 3.11951Z" fill="#1E1D21" /> 377 <path opacity="0.2" d="M23.6009 11.4589C23.321 11.1789 22.981 11.0391 22.5811 11.0391C22.1809 11.0391 21.8409 11.1789 21.561 11.4589C21.2813 11.739 21.1414 12.079 21.1414 12.4793C21.1414 12.8791 21.2813 13.2196 21.561 13.499C21.8411 13.7792 22.1809 13.919 22.5811 13.919C22.981 13.919 23.3212 13.7792 23.6009 13.499C23.881 13.2193 24.0207 12.8791 24.0207 12.4793C24.0207 12.0793 23.8812 11.7391 23.6009 11.4589Z" fill="#1E1D21" /> 378 <path opacity="0.3" d="M19.6997 17.5195C19.2394 17.5195 18.8444 17.6844 18.5143 18.0145C18.1846 18.3442 18.0195 18.7394 18.0195 19.1997C18.0195 19.6596 18.1846 20.0548 18.5143 20.3849C18.8444 20.715 19.2394 20.8797 19.6997 20.8797C20.1596 20.8797 20.5546 20.7146 20.8847 20.3849C21.2147 20.0548 21.3797 19.6598 21.3797 19.1997C21.3797 18.7394 21.2147 18.3446 20.8847 18.0145C20.5546 17.6843 20.1596 17.5195 19.6997 17.5195Z" fill="#1E1D21" /> 379 <path opacity="0.4" d="M12.9811 20.1586C12.4511 20.1586 11.9986 20.3464 11.6233 20.7215C11.2485 21.0966 11.0609 21.5489 11.0609 22.0789C11.0609 22.609 11.2483 23.0613 11.6233 23.4363C11.9986 23.8114 12.4509 23.9991 12.9811 23.9991C13.5112 23.9991 13.9635 23.8114 14.3386 23.4363C14.7136 23.0613 14.9012 22.609 14.9012 22.0789C14.9012 21.5489 14.7136 21.0966 14.3386 20.7215C13.9635 20.3464 13.5112 20.1586 12.9811 20.1586Z" fill="#1E1D21" /> 380 <path d="M12.9802 0C12.1804 0 11.5001 0.279867 10.94 0.839864C10.3801 1.39991 10.1001 2.08006 10.1001 2.88C10.1001 3.67999 10.38 4.35982 10.94 4.91992C11.5001 5.47981 12.1802 5.75984 12.9802 5.75984C13.7805 5.75984 14.4603 5.47997 15.0202 4.91992C15.58 4.36008 15.86 3.67999 15.86 2.88C15.86 2.08012 15.58 1.40012 15.0202 0.839864C14.4603 0.280025 13.7805 0 12.9802 0Z" fill="#1E1D21" /> 381 </g> 382 <defs> 383 <clipPath> 384 <rect width="24" height="24" fill="white" transform="translate(0.5)" /> 385 </clipPath> 386 </defs> 387 </svg> 388 389 </span> 390 </button> 391 <ul class="dropdown-menu search-categories hidden-xs " role="menu"> 392 <li> 393 <div> 394 <div class="header-icon search-all-icon"></div> 395 All 396 </div> 397 <input type="hidden" name="categoryPlaceholder" value="City, Neighborhood, Community, etc" /> 398 <input type="hidden" name="categoryType" value="Default"> 399 </li> 400 <li> 401 <div> 402 <div class="header-icon location-icon"></div> 403 Locations 404 </div> 405 <input type="hidden" name="categoryPlaceholder" value="City, Neighborhood, or Address" /> 406 <input type="hidden" name="categoryType" value="Location"> 407 </li> 408 <li> 409 <div> 410 <div class="header-icon community-icon"></div> 411 Communities 412 </div> 413 <input type="hidden" name="categoryPlaceholder" value="Communities" /> 414 <input type="hidden" name="categoryType" value="Development"> 415 </li> 416 <li> 417 <div> 418 <div class="header-icon company-icon"></div> 419 Companies 420 </div> 421 <input type="hidden" name="categoryPlaceholder" value="Companies" /> 422 <input type="hidden" name="categoryType" value="Developer"> 423 </li> 424 </ul> 425 </div> 426 427 <div class="display-breakpoint "> 428 <div class="lbl-grey-bordered-btn cancel-search">
429 <span> 430 431 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 432 <path fill-rule="evenodd" clip-rule="evenodd" d="M14.9491 3.70696C15.3397 3.31643 15.9728 3.31643 16.3633 3.70696C16.7539 4.09748 16.7539 4.73065 16.3633 5.12117L11.4142 10.0703L16.3646 15.0207C16.7551 15.4112 16.7551 16.0444 16.3646 16.4349C15.974 16.8254 15.3409 16.8254 14.9503 16.4349L9.99999 11.4845L5.04964 16.4349C4.65911 16.8254 4.02595 16.8254 3.63542 16.4349C3.2449 16.0444 3.2449 15.4112 3.63542 15.0207L8.58577 10.0703L3.63663 5.12117C3.24611 4.73065 3.24611 4.09748 3.63663 3.70696C4.02715 3.31643 4.66032 3.31643 5.05084 3.70696L9.99999 8.6561L14.9491 3.70696Z" fill="#1E1D21" /> 433 </svg> 434</span> 435 </div> 436 437 </div> 438 439 </form> 440 <div id="autoCompleteList" class="container-parent"> 441 <div class="category-container"> 442 <div class="category-tabs"> 443 <button class="category-tab-scroll left" id="leftCategoryTabArrow" style="display: none;"> 444 445 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 446 <path d="M12 6L8 10L12 14" stroke-width="2" stroke-linecap="round" /> 447 </svg> 448 449 </button> 450 <div id="allResults" class="category active allResult">All results</div> 451 <div id="communitiesResults" class="category">Communities</div> 452 <div id="locationResults" class="category">Locations</div> 453 <div id="articlesResults" class="category">Articles</div> 454 <div id="companiesResults" class="category">Companies</div> 455 <button class="category-tab-scroll right" id="rightCategoryTabArrow" style="display: none;"> 456 457 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 458 <path d="M8 14L12 10L8 6" stroke-width="2" stroke-linecap="round" /> 459 </svg> 460 461 </button> 462 </div> 463 </div> 464 <ul class="list-group search-autocomplete-list header-search-auto-complete "> 465 <li class="list-group-item current-location highlight visible-xs-block current-loc-src" style="display:none !important"> 466 <div class="item-image"> 467 <div class="current-loc-gps"> 468 469 </div> 470 </div> 471 <div class="text-wrapper"> 472 <div class="item-name">Current Location</div> 473 <div class="item-desc">Location</div> 474 </div> 475 <input type="hidden" class="autoListItemLink" /> 476 </li> 477 </ul> 478 <div id="main-no-results" class="header-no-results-tablet-desktop" style="display:none"> 479 <div class="icon-container"> 480 481 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 482 <path d="M33.7897 20.3337V13.6582L19.5777 1.33374L5.8941 13.2398V31.6339C5.8941 32.7384 6.78953 33.6339 7.8941 33.6339H19.8419M1 17.4838L19.597 1.33374L38.1941 17.4838" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 483 <path d="M34.0004 34.3341L40.0004 40.3341M33.4837 20.1619C37.2545 23.9328 37.2545 30.0465 33.4837 33.8174C29.7128 37.5883 23.599 37.5883 19.8282 33.8174C16.0573 30.0465 16.0573 23.9328 19.8282 20.1619C23.599 16.391 29.7128 16.391 33.4837 20.1619Z" stroke="#1E1D21" stroke-width="2" stroke-linecap="square" /> 484 </svg> 485 486 </div> 487 <div> 488 <h4>No results found for <span id="searchTermMain"></span>.</h4> 489 </div> 490 </div> 491 </div> 492 493</div> 494 495 496 497 </div> 498 499 500 501<div id="search-overlay" class="overlay-search"> 502 <div class="search-bar"> 503 <form class="navbar-form navbar-left" role="search" data-bbh-autocomplete="true" data-bbh-autocomplete-input-class="searchTermBox" 504 data-bbh-autocomplete-action="/bbhAjax/Search/MainSearchBar_AutoComplete" data-bbh-autocomplete-method="post" autocomplete="off" aria-label="Enter community, location or company"> 505 <div class="search-bar-container"> 506 <input autocomplete="off" class="form-control searchTermBox" name="SearchTerm" type="text" value="" placeholder="City, Neighborhood, Community, etc" data-gtm-form-interact-field-id="0"> 507 </div> 508 <div id="close-search-overlay" class="lbl-grey-bordered-btn cancel-btn-non-community-page-search">
509 <span> 510 511 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 512 <path fill-rule="evenodd" clip-rule="evenodd" d="M6.7069 5.29269C6.31626 4.90228 5.6831 4.90246 5.29269 5.2931C4.90228 5.68374 4.90246 6.3169 5.2931 6.70731L8.58771 10L5.2931 13.2927C4.90246 13.6831 4.90228 14.3163 5.29269 14.7069C5.6831 15.0975 6.31626 15.0977 6.7069 14.7073L10.0023 11.4138L13.2978 14.7073C13.6884 15.0977 14.3216 15.0975 14.712 14.7069C15.1024 14.3163 15.1022 13.6831 14.7116 13.2927L11.417 10L14.7116 6.70731C15.1022 6.3169 15.1024 5.68374 14.712 5.2931C14.3216 4.90246 13.6884 4.90228 13.2978 5.29269L10.0023 8.5862L6.7069 5.29269Z" fill="#1E1D21" /> 513 </svg> 514</span> 515 </div> 516 </form> 517 <div id="autoCompleteList" class="container-parent"> 518 <div class="category-container"> 519 <div class="category-tabs"> 520 <button class="category-tab-scroll left" id="leftCategoryTabArrow" style="display: none;"> 521 522 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 523 <path d="M12 6L8 10L12 14" stroke-width="2" stroke-linecap="round" /> 524 </svg> 525 526 </button> 527 <div id="allResults" class="category active allResult">All results</div> 528 <div id="communitiesResults" class="category">Communities</div> 529 <div id="locationResults" class="category">Locations</div> 530 <div id="articlesResults" class="category">Articles</div> 531 <div id="companiesResults" class="category">Companies</div> 532 <button class="category-tab-scroll right" id="rightCategoryTabArrow" style="display: none;"> 533 534 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 535 <path d="M8 14L12 10L8 6" stroke-width="2" stroke-linecap="round" /> 536 </svg> 537 538 </button> 539 </div> 540 </div> 541 <ul class="list-group search-autocomplete-list header-search-auto-complete"> 542 <li class="list-group-item current-location highlight visible-xs-block current-loc-src" style="display:none !important"> 543 <div class="item-image"> 544 <div class="current-loc-gps"> 545 546 </div> 547 </div> 548 <div class="text-wrapper"> 549 <div class="item-name">Current Location</div> 550 <div class="item-desc">Location</div> 551 </div> 552 <input type="hidden" class="autoListItemLink" /> 553 </li> 554 </ul> 555 </div> 556 </div> 557 <div class="default-view"> 558 <div class="body"> 559 <div id="no-results" class="title"> 560 <div class="icon-container"> 561 562 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 563 <path d="M33.7897 20.3337V13.6582L19.5777 1.33374L5.8941 13.2398V31.6339C5.8941 32.7384 6.78953 33.6339 7.8941 33.6339H19.8419M1 17.4838L19.597 1.33374L38.1941 17.4838" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 564 <path d="M34.0004 34.3341L40.0004 40.3341M33.4837 20.1619C37.2545 23.9328 37.2545 30.0465 33.4837 33.8174C29.7128 37.5883 23.599 37.5883 19.8282 33.8174C16.0573 30.0465 16.0573 23.9328 19.8282 20.1619C23.599 16.391 29.7128 16.391 33.4837 20.1619Z" stroke="#1E1D21" stroke-width="2" stroke-linecap="square" /> 565 </svg> 566 567 </div> 568 <h4>No results found for <span id="searchTermNotFound"></span></h4> 569 </div> 570 <div id="search-default-view"> 571 <div class="icon-container"> 572 573 <svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none"> 574 <path d="M33.7897 20.3337V13.6582L19.5777 1.33374L5.8941 13.2398V31.6339C5.8941 32.7384 6.78953 33.6339 7.8941 33.6339H19.8419M1 17.4838L19.597 1.33374L38.1941 17.4838" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 575 <path d="M34.0004 34.3341L40.0004 40.3341M33.4837 20.1619C37.2545 23.9328 37.2545 30.0465 33.4837 33.8174C29.7128 37.5883 23.599 37.5883 19.8282 33.8174C16.0573 30.0465 16.0573 23.9328 19.8282 20.1619C23.599 16.391 29.7128 16.391 33.4837 20.1619Z" stroke="#1E1D21" stroke-width="2" stroke-linecap="square" /> 576 </svg> 577 578 </div> 579 <div class="title"> 580 <h4>Begin your new home journey</h4> 581 </div> 582 <div class="info-text"> 583 <p> 584 Search by location (cities, neighborhoods, counties, metros). Additionally, you can search for a community, master planned communities or companies by name. 585 </p> 586 </div> 587 <div class="location-container"> 588 <button id="useMyLocation">Use current location <span> 589 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 590 <path d="M9.99951 7.24432C8.30434 7.24432 6.93133 8.61733 6.93133 10.3125C6.93133 12.0077 8.30434 13.3807 9.99951 13.3807C11.6947 13.3807 13.0677 12.0077 13.0677 10.3125C13.0677 8.61733 11.6947 7.24432 9.99951 7.24432ZM16.8569 9.54545C16.6832 7.98998 15.9857 6.53982 14.8789 5.43309C13.7722 4.32636 12.322 3.62886 10.7666 3.45511V1.875H9.23247V3.45511C7.67699 3.62886 6.22683 4.32636 5.1201 5.43309C4.01337 6.53982 3.31587 7.98998 3.14213 9.54545H1.56201V11.0795H3.14213C3.31587 12.635 4.01337 14.0852 5.1201 15.1919C6.22683 16.2986 7.67699 16.9961 9.23247 17.1699V18.75H10.7666V17.1699C12.322 16.9961 13.7722 16.2986 14.8789 15.1919C15.9857 14.0852 16.6832 12.635 16.8569 11.0795H18.437V9.54545H16.8569ZM9.99951 15.6818C7.03105 15.6818 4.63019 13.281 4.63019 10.3125C4.63019 7.34403 7.03105 4.94318 9.99951 4.94318C12.968 4.94318 15.3688 7.34403 15.3688 10.3125C15.3688 13.281 12.968 15.6818 9.99951 15.6818Z" fill="white" /> 591 </svg> 592</span></button> 593 </div> 594 </div> 595 </div> 596 </div> 597</div> 598 599<header class="livabl-navbar navbar header" role="navigation"> 600 <div class="header-container"> 601 602 <div class="livabl-logo-container navbar-header"> 603 <a href="/" aria-label="view homepage"> 604 <img class="logo" src="https://d1hsh3wswahchu.cloudfront.net/logos/header_logo.svg" alt="Livabl Logo" width="97" height="25" /> 605 </a> 606 <div class="display-mobile header-search-container">
607 <button id="homeSearchButton" class="home-search-button no-display lbl-grey-bordered-btn" aria-label="Search"> 608 <span class="header-icon search-icon-button"></span> 609 </button> 610 </div> 611 <div class="display-mobile header-burger-container"> 612 <button type="button" class="header-burger lbl-grey-bordered-btn" data-toggle="offcanvas" data-target="#sidebar" aria-label="Main Menu"> 613 <span class="header-burger-bar"></span> 614 <span class="header-burger-bar"></span> 615 <span class="header-burger-bar"></span> 616 </button> 617 </div> 618 </div> 619 620 <div class="display-desktop "> 621 <div class=""> 622 <ul class="nav navbar-nav"> 623 <li class="dropdown "> 624 <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="view new homes for sale"> 625 <span>New Homes for Sale</span> 626 <span class="arrow-icon"></span> 627 </a> 628 <ul class="livabl-header-dropdown-menu dropdown-menu new-homes-header-links" role="menu"> 629 <li> 630 <a href="/chicago-il/new-single-family-homes"> 631 <span class="header-icon single-family-icon"></span> 632 <span>Single family homes</span> 633 </a> 634 </li> 635 <li> 636 <a href="/chicago-il/new-townhomes"> 637 <span class="header-icon townhome-icon"></span> 638 <span>Townhomes</span> 639 </a> 640 </li> 641 <li> 642 <a href="/chicago-il/new-condos"> 643 <span class="header-icon condo-icon"></span> 644 <span>Condos</span> 645 </a> 646 </li> 647 <li> 648 <a href="/chicago-il/new-quick-move-in-homes"> 649 <span class="header-icon qmi-icon"></span> 650 <span>Quick move-in homes</span> 651 </a> 652 </li> 653 </ul> 654 </li> 655 <li class="dropdown "> 656 <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="views articles categories"> 657 <span>Articles</span> 658 <span class="arrow-icon"></span> 659 </a> 660 <ul class="livabl-header-dropdown-menu dropdown-menu" role="menu"> 661 <li> 662 <a href="/articles"> 663 <span class="header-icon new-icon"></span> 664 <span>Latest</span> 665 </a> 666 </li> 667 <li> 668 <a href="/articles/guides"> 669 <span class="header-icon guide-icon"></span> 670 <span>Guides</span> 671 </a> 672 </li> 673 <li> 674 <a href="/articles/design"> 675 <span class="header-icon design-icon"></span> 676 <span>Design</span> 677 </a> 678 </li> 679 <li> 680 <a href="/articles/news"> 681 <span class="header-icon news-icon"></span> 682 <span>News</span> 683 </a> 684 </li> 685 </ul> 686 </li> 687 <li class="dropdown "> 688 <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="view professional pages"> 689 <span>Professionals</span> 690 <span class="arrow-icon"></span> 691 </a> 692 <ul class="livabl-header-dropdown-menu dropdown-menu" role="menu"> 693 <li> 694 <a href="/professionals/advertising-for-new-construction-homebuilders"> 695 <span class="header-icon advertize-icon"></span> 696 <span>Builder advertising</span> 697 </a> 698 </li> 699 <li> 700 <a href="/professionals/agent-referral-program-livabl-pro"> 701 <span class="header-icon advertize-icon"></span> 702 <span>Agent advertising</span> 703 </a> 704 </li> 705 <li> 706 <a href="/professionals/add-your-new-construction-listing"> 707 <span class="header-icon community-icon"></span> 708 <span>Add community</span> 709 </a> 710 </li> 711 <li> 712 <a href="/professionals/submit-a-feed"> 713 <span class="header-icon feed-icon"></span> 714 <span>Submit feed</span> 715 </a> 716 </li> 717 </ul> 718 </li> 719 720 721 722<li class="login-button login-links lbl-bordered-btn"> 723 <a aria-label="log in to Livabl" data-ajax="true" data-ajax-begin="$(this).hide(); $('#login-loader').show();" data-ajax-complete="bbh.header.userPopupComplete('#loginPopupForm'); $(this).show(); $('#login-loader').hide();" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhA
723jax/UserAccount/LoginPopup?routeCountry=us" rel="nofollow">Log in</a> 724 <span id="login-loader" class="submit-spinning-loader"> 725 726 <svg class="spinning-loader" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="https://www.w3.org/2000/svg"> 727 <g clip-path="url(#clip0_5762_23118)"> 728 <path opacity="0.5" d="M6.26013 17.0391C5.65999 17.0391 5.15001 17.2491 4.72997 17.669C4.3101 18.0894 4.1 18.5993 4.1 19.1994C4.1 19.7996 4.30994 20.3095 4.72997 20.7298C5.15017 21.1498 5.66015 21.3598 6.26013 21.3598C6.85017 21.3598 7.35758 21.1498 7.78266 20.7298C8.20758 20.31 8.42005 19.7996 8.42005 19.1994C8.42005 18.5993 8.20764 18.0898 7.78266 17.669C7.35753 17.2494 6.85017 17.0391 6.26013 17.0391Z" fill="#1E1D21" /> 729 <path opacity="0.6" d="M5.78045 12.4806C5.78045 11.8206 5.54555 11.2558 5.0755 10.7854C4.6055 10.3154 4.04041 10.0804 3.38043 10.0804C2.7204 10.0804 2.15542 10.3154 1.68536 10.7854C1.21542 11.2554 0.980469 11.8204 0.980469 12.4806C0.980469 13.1405 1.21536 13.7052 1.68536 14.1754C2.15542 14.6455 2.7204 14.8805 3.38043 14.8805C4.04041 14.8805 4.6055 14.6455 5.0755 14.1754C5.54555 13.7055 5.78045 13.1405 5.78045 12.4806Z" fill="#1E1D21" /> 730 <path opacity="0.1" d="M19.7002 6.96114C20.0299 6.96114 20.3129 6.84346 20.5476 6.60856C20.7826 6.37346 20.9003 6.09086 20.9003 5.76092C20.9003 5.43083 20.7826 5.14844 20.5476 4.91349C20.3127 4.67839 20.0299 4.56091 19.7002 4.56091C19.3701 4.56091 19.0874 4.6786 18.8524 4.91349C18.6176 5.14849 18.5001 5.43083 18.5001 5.76092C18.5001 6.09102 18.6176 6.37346 18.8524 6.60856C19.0874 6.84367 19.3701 6.96114 19.7002 6.96114Z" fill="#1E1D21" /> 731 <path opacity="0.7" d="M6.26193 3.11951C5.53182 3.11951 4.90935 3.37705 4.39433 3.89197C3.87925 4.40689 3.62187 5.0294 3.62187 5.75936C3.62187 6.48958 3.87925 7.11183 4.39433 7.62696C4.90951 8.14204 5.53198 8.39952 6.26193 8.39952C6.99189 8.39952 7.6144 8.14188 8.12932 7.62696C8.64424 7.11183 8.90178 6.48942 8.90178 5.75936C8.90178 5.0294 8.64424 4.40689 8.12932 3.89197C7.6144 3.37705 6.99189 3.11951 6.26193 3.11951Z" fill="#1E1D21" /> 732 <path opacity="0.2" d="M23.6009 11.4589C23.321 11.1789 22.981 11.0391 22.5811 11.0391C22.1809 11.0391 21.8409 11.1789 21.561 11.4589C21.2813 11.739 21.1414 12.079 21.1414 12.4793C21.1414 12.8791 21.2813 13.2196 21.561 13.499C21.8411 13.7792 22.1809 13.919 22.5811 13.919C22.981 13.919 23.3212 13.7792 23.6009 13.499C23.881 13.2193 24.0207 12.8791 24.0207 12.4793C24.0207 12.0793 23.8812 11.7391 23.6009 11.4589Z" fill="#1E1D21" /> 733 <path opacity="0.3" d="M19.6997 17.5195C19.2394 17.5195 18.8444 17.6844 18.5143 18.0145C18.1846 18.3442 18.0195 18.7394 18.0195 19.1997C18.0195 19.6596 18.1846 20.0548 18.5143 20.3849C18.8444 20.715 19.2394 20.8797 19.6997 20.8797C20.1596 20.8797 20.5546 20.7146 20.8847 20.3849C21.2147 20.0548 21.3797 19.6598 21.3797 19.1997C21.3797 18.7394 21.2147 18.3446 20.8847 18.0145C20.5546 17.6843 20.1596 17.5195 19.6997 17.5195Z" fill="#1E1D21" /> 734 <path opacity="0.4" d="M12.9811 20.1586C12.4511 20.1586 11.9986 20.3464 11.6233 20.7215C11.2485 21.0966 11.0609 21.5489 11.0609 22.0789C11.0609 22.609 11.2483 23.0613 11.6233 23.4363C11.9986 23.8114 12.4509 23.9991 12.9811 23.9991C13.5112 23.9991 13.9635 23.8114 14.3386 23.4363C14.7136 23.0613 14.9012 22.609 14.9012 22.0789C14.9012 21.5489 14.7136 21.0966 14.3386 20.7215C13.9635 20.3464 13.5112 20.1586 12.9811 20.1586Z" fill="#1E1D21" /> 735 <path d="M12.9802 0C12.1804 0 11.5001 0.279867 10.94 0.839864C10.3801 1.39991 10.1001 2.08006 10.1001 2.88C10.1001 3.67999 10.38 4.35982 10.94 4.91992C11.5001 5.47981 12.1802 5.75984 12.9802 5.75984C13.7805 5.75984 14.4603 5.47997 15.0202 4.91992C15.58 4.36008 15.86 3.67999 15.86 2.88C15.86 2.08012 15.58 1.40012 15.0202 0.839864C14.4603 0.280025 13.7805 0 12.9802 0Z" fill="#1E1D21" /> 736 </g> 737 <defs> 738 <clipPath> 739 <rect width="24" height="24" fill="white" transform="translate(0.5)" /> 740 </clipPath> 741 </defs> 742 </svg> 743 744 </span> 745</li> 746<li class="signup-button login-links livabl-primary-btn"> 747 <a aria-label="create Livabl account" data-ajax="true" data-ajax-begin="$(this).hide(); $('#sign-up-loader').show();" data-ajax-complete="bbh.header.userPopupComplete('#signUpPopupForm'); $(this).show(); $('#sign-up-loader').hide();" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhA
747jax/UserAccount/SignUpPopup?routeCountry=us" rel="nofollow">Sign up</a> 748 <span id="sign-up-loader" class="submit-spinning-loader"> 749 750 <svg class="spinning-loader" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="https://www.w3.org/2000/svg"> 751 <g clip-path="url(#clip0_5762_23118)"> 752 <path opacity="0.5" d="M6.26013 17.0391C5.65999 17.0391 5.15001 17.2491 4.72997 17.669C4.3101 18.0894 4.1 18.5993 4.1 19.1994C4.1 19.7996 4.30994 20.3095 4.72997 20.7298C5.15017 21.1498 5.66015 21.3598 6.26013 21.3598C6.85017 21.3598 7.35758 21.1498 7.78266 20.7298C8.20758 20.31 8.42005 19.7996 8.42005 19.1994C8.42005 18.5993 8.20764 18.0898 7.78266 17.669C7.35753 17.2494 6.85017 17.0391 6.26013 17.0391Z" fill="#1E1D21" /> 753 <path opacity="0.6" d="M5.78045 12.4806C5.78045 11.8206 5.54555 11.2558 5.0755 10.7854C4.6055 10.3154 4.04041 10.0804 3.38043 10.0804C2.7204 10.0804 2.15542 10.3154 1.68536 10.7854C1.21542 11.2554 0.980469 11.8204 0.980469 12.4806C0.980469 13.1405 1.21536 13.7052 1.68536 14.1754C2.15542 14.6455 2.7204 14.8805 3.38043 14.8805C4.04041 14.8805 4.6055 14.6455 5.0755 14.1754C5.54555 13.7055 5.78045 13.1405 5.78045 12.4806Z" fill="#1E1D21" /> 754 <path opacity="0.1" d="M19.7002 6.96114C20.0299 6.96114 20.3129 6.84346 20.5476 6.60856C20.7826 6.37346 20.9003 6.09086 20.9003 5.76092C20.9003 5.43083 20.7826 5.14844 20.5476 4.91349C20.3127 4.67839 20.0299 4.56091 19.7002 4.56091C19.3701 4.56091 19.0874 4.6786 18.8524 4.91349C18.6176 5.14849 18.5001 5.43083 18.5001 5.76092C18.5001 6.09102 18.6176 6.37346 18.8524 6.60856C19.0874 6.84367 19.3701 6.96114 19.7002 6.96114Z" fill="#1E1D21" /> 755 <path opacity="0.7" d="M6.26193 3.11951C5.53182 3.11951 4.90935 3.37705 4.39433 3.89197C3.87925 4.40689 3.62187 5.0294 3.62187 5.75936C3.62187 6.48958 3.87925 7.11183 4.39433 7.62696C4.90951 8.14204 5.53198 8.39952 6.26193 8.39952C6.99189 8.39952 7.6144 8.14188 8.12932 7.62696C8.64424 7.11183 8.90178 6.48942 8.90178 5.75936C8.90178 5.0294 8.64424 4.40689 8.12932 3.89197C7.6144 3.37705 6.99189 3.11951 6.26193 3.11951Z" fill="#1E1D21" /> 756 <path opacity="0.2" d="M23.6009 11.4589C23.321 11.1789 22.981 11.0391 22.5811 11.0391C22.1809 11.0391 21.8409 11.1789 21.561 11.4589C21.2813 11.739 21.1414 12.079 21.1414 12.4793C21.1414 12.8791 21.2813 13.2196 21.561 13.499C21.8411 13.7792 22.1809 13.919 22.5811 13.919C22.981 13.919 23.3212 13.7792 23.6009 13.499C23.881 13.2193 24.0207 12.8791 24.0207 12.4793C24.0207 12.0793 23.8812 11.7391 23.6009 11.4589Z" fill="#1E1D21" /> 757 <path opacity="0.3" d="M19.6997 17.5195C19.2394 17.5195 18.8444 17.6844 18.5143 18.0145C18.1846 18.3442 18.0195 18.7394 18.0195 19.1997C18.0195 19.6596 18.1846 20.0548 18.5143 20.3849C18.8444 20.715 19.2394 20.8797 19.6997 20.8797C20.1596 20.8797 20.5546 20.7146 20.8847 20.3849C21.2147 20.0548 21.3797 19.6598 21.3797 19.1997C21.3797 18.7394 21.2147 18.3446 20.8847 18.0145C20.5546 17.6843 20.1596 17.5195 19.6997 17.5195Z" fill="#1E1D21" /> 758 <path opacity="0.4" d="M12.9811 20.1586C12.4511 20.1586 11.9986 20.3464 11.6233 20.7215C11.2485 21.0966 11.0609 21.5489 11.0609 22.0789C11.0609 22.609 11.2483 23.0613 11.6233 23.4363C11.9986 23.8114 12.4509 23.9991 12.9811 23.9991C13.5112 23.9991 13.9635 23.8114 14.3386 23.4363C14.7136 23.0613 14.9012 22.609 14.9012 22.0789C14.9012 21.5489 14.7136 21.0966 14.3386 20.7215C13.9635 20.3464 13.5112 20.1586 12.9811 20.1586Z" fill="#1E1D21" /> 759 <path d="M12.9802 0C12.1804 0 11.5001 0.279867 10.94 0.839864C10.3801 1.39991 10.1001 2.08006 10.1001 2.88C10.1001 3.67999 10.38 4.35982 10.94 4.91992C11.5001 5.47981 12.1802 5.75984 12.9802 5.75984C13.7805 5.75984 14.4603 5.47997 15.0202 4.91992C15.58 4.36008 15.86 3.67999 15.86 2.88C15.86 2.08012 15.58 1.40012 15.0202 0.839864C14.4603 0.280025 13.7805 0 12.9802 0Z" fill="#1E1D21" /> 760 </g> 761 <defs> 762 <clipPath> 763 <rect width="24" height="24" fill="white" transform="translate(0.5)" /> 764 </clipPath> 765 </defs> 766 </svg> 767 768 </span> 769</li> 770 771
771<script> 772 773 var action = ''; 774 775 $(document).ready(function () { 776 777 if (window.location.href.indexOf('la=l') > 0) { 778 action = '/bbhAjax/UserAccount/LoginPopup'; 779 window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]); 780 } 781 else if (window.location.href.indexOf('la=s') > 0) { 782 action = '/bbhAjax/UserAccount/SignUpPopup'; 783 window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]); 784 } 785 786 787 if (action) { 788 789 $.ajax({ 790 type: 'GET', 791 url: action, 792 data: ({ returnUrl: window.location.href, routeCountry: 'us' }) 793 794 }).done(function (returnData) { 795 796 797 var container = $('#mdlUserAccountBody'); 798 container.html(returnData); 799 bbh.header.userPopupComplete('#loginPopupForm'); 800 }); 801 } 802 803 804 }); 805 806 </script>
806 807 808 </ul> 809 810 </div> 811 </div> 812 </div> 813</header> 814 815<div class="display-mobile"> 816 <div class="newhomes-for-sale-offcanvas navbar-collapse" id="newhomesForSaleSidebarOff" role="navigation" tabindex="41"> 817 <ul class="nav navbar-nav remove-margin no-float new-homes-header-links"> 818 <li class=" back"> 819 <a data-toggle="newhomesForSaleSidebar" data-target="newhomesForSaleSidebarOff" class="backlink"> 820 <span class="header-icon left-arrow-icon back-arrow"></span> 821 <span>Back</span> 822 </a> 823 </li> 824 <li> 825 <div class="divider"></div> 826 </li> 827 <li class="icon-tab"> 828 <a href="/chicago-il/new-single-family-homes" class="nav-a width100"> 829 <span class="header-icon single-family-icon"></span> 830 <span>Single family homes</span> 831 </a> 832 </li> 833 <li class="icon-tab"> 834 <a href="/chicago-il/new-townhomes" class="nav-a width100"> 835 <span class="header-icon townhome-icon"></span> 836 <span>Townhomes</span> 837 </a> 838 </li> 839 <li class="icon-tab"> 840 <a href="/chicago-il/new-condos" class="nav-a width100"> 841 <span class="header-icon condo-icon"></span> 842 <span>Condos</span> 843 </a> 844 </li> 845 <li class="icon-tab"> 846 <a href="/chicago-il/new-quick-move-in-homes" class="nav-a width100"> 847 <span class="header-icon qmi-icon"></span> 848 <span>Quick move-in homes</span> 849 </a> 850 </li> 851 </ul> 852 <div class="overlay-transparent" data-toggle="newhomesForSaleSidebar" data-target="newhomesForSaleSidebarOff"></div> 853 </div> 854</div> 855 856 857<div class="display-mobile"> 858 <div class="articlebar-offcanvas navbar-collapse" id="articlesSidebarOff" role="navigation" tabindex="41"> 859 <ul class="nav navbar-nav remove-margin no-float"> 860 <li class=" back"> 861 <a data-toggle="articlesSidebar" data-target="articlesSidebarOff" class="backlink"> 862 <span class="header-icon left-arrow-icon back-arrow"></span> 863 <span>Back</span> 864 </a> 865 </li> 866 <li> 867 <div class="divider"></div> 868 </li> 869 <li class="icon-tab"> 870 <a href="/articles" class="nav-a width100"> 871 <span class="header-icon new-icon"></span> 872 <span>Latest</span> 873 </a> 874 </li> 875 <li class="icon-tab"> 876 <a href="/articles/guides" class="nav-a width100"> 877 <span class="header-icon guide-icon"></span> 878 <span>Guides</span> 879 </a> 880 </li> 881 <li class="icon-tab"> 882 <a href="/articles/design" class="nav-a width100"> 883 <span class="header-icon design-icon"></span> 884 <span>Design</span> 885 </a> 886 </li> 887 <li class="icon-tab"> 888 <a href="/articles/news" class="nav-a width100"> 889 <span class="header-icon news-icon"></span> 890 <span>News</span> 891 </a> 892 </li> 893 </ul> 894 <div class="overlay-transparent" data-toggle="articlesSidebar" data-target="articlesSidebarOff"></div> 895 </div> 896</div> 897 898 899<div class="display-mobile"> 900 <div class="professionalbar-offcanvas navbar-collapse" id="professionalSidebarOff" role="navigation" tabindex="41"> 901 <ul class="nav navbar-nav remove-margin no-float"> 902 <li class=" back"> 903 <a data-toggle="professionalSidebar" data-target="professionalSidebarOff" class="backlink"> 904 <span class="header-icon left-arrow-icon back-arrow"></span> 905 <span>Back</span> 906 </a> 907 </li> 908 <li> 909 <div class="divider"></div> 910 </li> 911 <li class="icon-tab"> 912 <a href="/professionals/agent-referral-program-livabl-pro" class="nav-a width100"> 913 <span class="header-icon advertize-icon"></span> 914 <span>Agent advertising</span> 915 </a> 916 </li> 917 <li class="icon-tab"> 918 <a href="/professionals/advertising-for-new-construction-homebuilders" class="nav-a width100"> 919 <span class="header-icon advertize-icon"></span> 920 <span>Builder advertising</span> 921 </a> 922 </li> 923 <li class="icon-tab"> 924 <a href="/professionals/add-your-new-construction-listing" class="nav-a width100"> 925 <span class="header-icon community-icon"></span> 926 <span>Add community</span> 927 </a> 928 </li> 929 <li class="icon-tab"> 930 <a href="/professionals/submit-a-feed" class="nav-a width100"> 931 <span class="header-icon feed-icon"></span> 932 <span>Submit feed</span> 933 </a> 934 </li> 935 </ul> 936 <div class="overlay-transparent" data-toggle="professionalSidebar" data-target="professionalSidebarOff"></div> 937 </div> 938</div> 939 940 941<div class="display-mobile"> 942 <div class="sidebar-offcanvas navbar-collapse" id="sidebar" role="navigation" tabindex="40"> 943 <div class="ul-flex"> 944 <ul class="nav navbar-nav remove-margin no-float"> 945 <li class="main-menu-sidenav"> 946 <span>MAIN MENU</span> 947 </li> 948 <li class="icon-tab active"> 949 <a linktype="location" class="nav-a width100" href="/"> 950 <span class="header-icon"> 951 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 952 <path d="M8.39024 14.9024V13.2927C8.39024 12.6865 8.88164 12.1951 9.4878 12.1951H10.3659C10.972 12.1951 11.4634 12.6865 11.4634 13.2927V14.9024C11.4634 15.5086 11.9548 16 12.561 16H14.9024C15.5086 16 16 15.5086 16 14.9024V8.06938C16 7.81422 15.8671 7.57749 15.6492 7.44465L10 4L4.35078 7.44465C4.13292 7.57749 4 7.81422 4 8.06938V14.9024C4 15.5086 4.49139 16 5.09756 16H7.29268C7.89885 16 8.39024 15.5086 8.39024 14.9024Z" fill="#1E1D21" /> 953 </svg> 954</span> 955 <span class="nav-list-word">Home</span> 956 </a> 957 </li> 958 <li class="icon-tab"> 959 <a data-toggle="newhomesForSaleSidebar" data-target="newhomesForSaleSidebarOff" class="nav-a width100" aria-label="view new homes for sale"> 960 <span class="header-icon city-icon"></span> 961 <span class="nav-list-word">New Homes for Sale</span> 962 <span class="header-icon right-arrow-icon arrow-layout"></span> 963 </a> 964 </li> 965 <li class="icon-tab"> 966 <a data-toggle="articlesSidebar" data-target="articlesSidebarOff" class="nav-a width100" aria-label="views articles categories"> 967 <span class="header-icon article-icon"></span> 968 <span class="nav-list-word">Articles</span> 969 <span class="header-icon right-arrow-icon arrow-layout"></span> 970 </a> 971 </li> 972 <li class="icon-tab"> 973 <a data-toggle="professionalSidebar" data-target="professionalSidebarOff" class="nav-a width100" aria-label="view professional pages"> 974 <span class="header-icon company-icon"></span> 975 <span class="nav-list-word">Professionals</span> 976 <span class="header-icon right-arrow-icon arrow-layout"></span> 977 </a> 978 </li> 979 980 981 982 983 <li class="main-menu-sidenav border-top mt-10">
984 <span>YOUR ACCOUNT</span> 985 </li> 986 <li class="icon-tab a-no-padding" style="padding-top:10px"> 987 <span class="header-icon sign-in-icon "></span> 988 <a aria-label="log in to Livabl" data-ajax="true" data-ajax-complete="bbh.header.userPopupComplete('#loginPopupForm');" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhAjax/UserAccount/LoginPopup?routeCountry=us" rel="nofollow">Log in</a> 989 </li> 990 <li class="icon-tab a-no-padding"> 991 <span class="header-icon sign-up-icon "></span> 992 <a aria-label="create Livabl account" data-ajax="true" data-ajax-complete="bbh.header.userPopupComplete('#signUpPopupForm');" data-ajax-method="GET" data-ajax-mode="replace-with" data-ajax-update="#mdlUserAccountBody" href="/bbhAjax/UserAccount/SignUpPopup?routeCountry=us" rel="nofollow">Sign up</a> 993 </li> 994 995
995<script> 996 997 var action = ''; 998 999 $(document).ready(function () { 1000 1001 if (window.location.href.indexOf('la=l') > 0) { 1002 action = '/bbhAjax/UserAccount/LoginPopup'; 1003 window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]); 1004 } 1005 else if (window.location.href.indexOf('la=s') > 0) { 1006 action = '/bbhAjax/UserAccount/SignUpPopup'; 1007 window.history.replaceState({ turbolinks: {} }, window.title, window.location.href.split('?')[0]); 1008 } 1009 1010 1011 if (action) { 1012 1013 $.ajax({ 1014 type: 'GET', 1015 url: action, 1016 data: ({ returnUrl: window.location.href, routeCountry: 'us' }) 1017 1018 }).done(function (returnData) { 1019 1020 1021 var container = $('#mdlUserAccountBody'); 1022 container.html(returnData); 1023 bbh.header.userPopupComplete('#loginPopupForm'); 1024 }); 1025 } 1026 1027 1028 }); 1029 1030 </script>
1030 1031 1032 </ul> 1033 <div class="overlay-transparent" data-toggle="offcanvas" data-target="#sidebar"></div> 1034 </div> 1035 </div> 1036</div> 1037 1038 1039<!-- ko stopBinding: true --> 1040<div class="modal fade user-account-modal center-saved-search-modal" id="mdlSavedSearchesMain" tabindex="-1"> 1041 <div class="modal-dialog"> 1042 <div class="modal-content" style="font-size: 14px; line-height: 1.43;"> 1043 <div class="modal-header"> 1044 <div class="close-button-container"> 1045 <button id="searchSavedCloseID" type="button" data-dismiss="modal"></button> 1046 </div> 1047 1048 <div> 1049 <p class="search-main-title">Saved searches</p> 1050 </div> 1051 </div> 1052 <div id="mdlSavedSearchesBody"> 1053 <div id="mySearchesPopupContainer" class="modal-body my-searches scroller"> 1054 <div id="results" data-bind="visible: searchData().length > 0"> 1055 1056 <div style="overflow-y:auto;"> 1057 <div data-bind="foreach: search"> 1058 1059 <div class="saved-search-box"> 1060 <div style="padding: 20px;"> 1061 <div class="content-title" data-bind="text:Name"></div> 1062 <div class="content-text" data-bind="html:FilterText"></div> 1063 <div class="content-links"> 1064 <div class="remove-btn button-text" data-bind="click: DeleteSearch"> 1065 Remove 1066 </div> 1067 <div class="view-search-btn button-text" data-bind="click: CloseSearchsPopUp"> 1068 View search 1069 </div> 1070 </div> 1071 </div> 1072 </div> 1073 1074 </div> 1075 </div> 1076 1077 </div> 1078 <div id="noresults" data-bind="visible: searchData().length === 0"> 1079 1080 <div class="noresults-text"> 1081 You currently do not have any saved searches. You can add a saved search by pressing the âsave searchâ button on the <a data-bind="click: MapLinkCLick" linktype="location" href="/chicago-il/new-homes">map page</a>. 1082 </div> 1083 1084 <div class="noresults-text"> 1085 Once youâve saved a search, we'll notify you whenever there are new or updated communities matching your search criteria. 1086 </div> 1087 </div> 1088 </div> 1089 </div> 1090 <div class="my-search-footer" data-bind="visible: searchData().length === 0"> 1091 <button class="ok-button" type="button" data-dismiss="modal">Ok</button> 1092 </div> 1093 </div> 1094 </div> 1095</div> 1096<!-- /ko --> 1097<div class="modal fade user-account-modal" id="mdlUserAccount" tabindex="-1"> 1098 <div class="modal-dialog"> 1099 <div class="modal-content"> 1100 <div id="mdlUserAccountBody"> 1101 </div> 1102 </div> 1103 </div> 1104</div> 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114<div class="home"> 1115 1116<div id="hero-carousel" class="carousel slide" data-ride="carousel" data-interval="10000"> 1117 <!-- Wrapper for slides --> 1118 <div class="carousel-inner hidden-xs" role="listbox" aria-label="Hero Carousel"> 1119<div class="item active"> 1120 <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226443277825069_whispering_hills_model_interiors_-_cholla_036_final_high_res_fzwikshero.webp" loading="lazy"> 1121 <a id="communityLink" class="text-wrapper" href="/phoenix-az/atlas-collection-at-whispering-hills" data-bind="click: $root.trackReservedSpot" data-development-id="ef6b4332-76c0-438b-8131-5503de18c5dd"> 1122 <div class="hero-development-name-background">Atlas Collection at Whispering Hills</div> 1123 <div class="hero-location-text-background">Phoenix</div> 1124 </a> 1125 </div> 1126<div class="item"> 1127 <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/638385043627986872_bellavistahero.webp" loading="lazy">
1128 <a id="communityLink" class="text-wrapper" href="/los-angeles-ca/bella-vista-at-porter-ranch--ridge-collection" data-bind="click: $root.trackReservedSpot" data-development-id="96946cf2-4c0e-4ce7-9142-66b6bb8a4d39"> 1129 <div class="hero-development-name-background">Bella Vista at Porter Ranch - Ridge Collection</div> 1130 <div class="hero-location-text-background">Los Angeles</div> 1131 </a> 1132 </div> 1133<div class="item"> 1134 <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226445430365778_southeasthero.webp" loading="lazy"> 1135 <a id="communityLink" class="text-wrapper" href="/austin-tx/traditional-homes-at-easton-park" data-bind="click: $root.trackReservedSpot" data-development-id="99b98acd-d312-49fd-bb8b-035ca07102a1"> 1136 <div class="hero-development-name-background">Traditional Homes at Easton Park</div> 1137 <div class="hero-location-text-background">Austin</div> 1138 </a> 1139 </div> 1140<div class="item"> 1141 <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226435361021973_atlanta-windance-lake-fairfield-1430-windance-kitchen-001.webp" loading="lazy"> 1142 <a id="communityLink" class="text-wrapper" href="/loganville-ga/windance-lake" data-bind="click: $root.trackReservedSpot" data-development-id="14124166-7893-4557-aa8e-72d76d872603"> 1143 <div class="hero-development-name-background">Windance Lake</div> 1144 <div class="hero-location-text-background">Loganville</div> 1145 </a> 1146 </div> 1147<div class="item"> 1148 <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/638475719770855015_emblem_ororidge.webp" loading="lazy"> 1149 <a id="communityLink" class="text-wrapper" href="/queen-creek-az/emblem-at-oro-ridge" data-bind="click: $root.trackReservedSpot" data-development-id="a3d7af6f-3ac0-417f-be91-527d6226344b"> 1150 <div class="hero-development-name-background">Emblem at Oro Ridge</div> 1151 <div class="hero-location-text-background">Queen Creek</div> 1152 </a> 1153 </div> 1154 1155 </div> 1156 <div class="carousel-xs visible-xs"> 1157 <img class="hero-img" src="//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/639226443277825069_whispering_hills_model_interiors_-_cholla_036_final_high_res_fzwikshero.webp" loading="lazy"> 1158 </div> 1159 1160 <!-- Controls --> 1161 <a class="left carousel-control hidden-xs carousel-left" href="#hero-carousel" role="button" data-slide="prev" aria-label="Slide carousel left"> 1162 <span class="arrow left arrow-background"> 1163 1164 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg"> 1165 <path d="M18 9L12 15L18 21" stroke="white" stroke-width="2" stroke-linecap="round" /> 1166 </svg> 1167 1168 </span> 1169 </a> 1170 <a class="right carousel-control hidden-xs carousel-right" href="#hero-carousel" role="button" data-slide="next" aria-label="Slide carousel right"> 1171 <span class="arrow right arrow-background "> 1172 1173 <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="https://www.w3.org/2000/svg"> 1174 <path d="M12 21L18 15L12 9" stroke="white" stroke-width="2" stroke-linecap="round" /> 1175 </svg> 1176 1177 </span> 1178 </a> 1179</div> 1180 1181 <div class="hero-content hero-content-tint"> 1182 <div class="title-wrapper"> 1183 <div class="main-title main-title-text"> 1184 <h2 style="padding:0;margin:0;font-weight:inherit;line-height: inherit;font-size:inherit">Building new home dreams<span>TM</span></h2> 1185 <h3 class="hero-title" style="margin: 0">Find your new construction home</h3> 1186 </div> 1187 </div> 1188 <a id="btnNearBy" class="nearby-button btn visible-xs" href="#"> 1189 <div>
1190 <span class="current-loc-icon"> 1191 1192 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1193 <path d="M9.99951 7.24432C8.30434 7.24432 6.93133 8.61733 6.93133 10.3125C6.93133 12.0077 8.30434 13.3807 9.99951 13.3807C11.6947 13.3807 13.0677 12.0077 13.0677 10.3125C13.0677 8.61733 11.6947 7.24432 9.99951 7.24432ZM16.8569 9.54545C16.6832 7.98998 15.9857 6.53982 14.8789 5.43309C13.7722 4.32636 12.322 3.62886 10.7666 3.45511V1.875H9.23247V3.45511C7.67699 3.62886 6.22683 4.32636 5.1201 5.43309C4.01337 6.53982 3.31587 7.98998 3.14213 9.54545H1.56201V11.0795H3.14213C3.31587 12.635 4.01337 14.0852 5.1201 15.1919C6.22683 16.2986 7.67699 16.9961 9.23247 17.1699V18.75H10.7666V17.1699C12.322 16.9961 13.7722 16.2986 14.8789 15.1919C15.9857 14.0852 16.6832 12.635 16.8569 11.0795H18.437V9.54545H16.8569ZM9.99951 15.6818C7.03105 15.6818 4.63019 13.281 4.63019 10.3125C4.63019 7.34403 7.03105 4.94318 9.99951 4.94318C12.968 4.94318 15.3688 7.34403 15.3688 10.3125C15.3688 13.281 12.968 15.6818 9.99951 15.6818Z" fill="white" /> 1194 </svg> 1195 1196 </span> 1197 <span class="nearby-text">Nearby</span> 1198 </div> 1199 </a> 1200 </div> 1201 1202 <div class="hidden filters-group" id="filters-group"> 1203 <button id="filter_buy" type="button" name="searchFilter" class="filter-btn btn-terminal-first" value="For Sale" data-vanityfilter="/new-homes">Buy</button> 1204 <!-- 1205 --> 1206 <button id="filter_rent" type="button" name="searchFilter" class="filter-btn" value="For Rent" data-vanityfilter="/new-apartments">Rent</button> 1207 <!-- 1208 --> 1209 <button id="filter_sold" type="button" name="searchFilter" class="filter-btn" value="Sold" data-vanityfilter="/sold">Sold</button> 1210 <!-- 1211 --> 1212 <button id="filter_leased" type="button" name="searchFilter" class="filter-btn btn-terminal-last" value="Leased" data-vanityfilter="/leased">Leased</button> 1213 </div> 1214 1215 1216 1217 <div class="featured-communities-section"> 1218 <div class="container home"> 1219 <div class="development-slider-block"> 1220 <div class="container"> 1221 <div class="community-header-container"> 1222 <div class="title-container"> 1223 <img src="https://livabl.s3.amazonaws.com/icons/home-listing.svg" alt="home listing" /> 1224 <h2>Communities</h2> 1225 <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" /> 1226 </div> 1227 <div> 1228 <a class="view-all-link" linktype="location" href=/chicago-il/new-homes>VIEW ALL</a> 1229 </div> 1230 </div> 1231 1232<div id="td" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1233 <div class="heading-container"> 1234 <div> 1235 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1236 </div> 1237 <div class="arrows-container"> 1238 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1239 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1240 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1241 </svg> 1242</button> 1243 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1244 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1245 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678
124517.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1246 </svg> 1247</button> 1248 </div> 1249 </div> 1250 <div class="itemArea"> 1251 <div class="items" data-bind="foreach:data"> 1252<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;"> 1253 <div class="card" data-bind="attr:{dataId:id}"> 1254 <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}"> 1255 <div class="development-image-con"> 1256 <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" /> 1257 <div class="no-img-icon"> 1258 1259 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg"> 1260 <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1261 <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1262 <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" /> 1263 </svg> 1264 1265 </div> 1266 <div class="status"> 1267 <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span> 1268 </div> 1269 <div class="pre-launch-prices-container"> 1270 <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span> 1271 </div> 1272 </div> 1273 </div> 1274 <div class="development-details-slider"> 1275 <div class="development-details-frame"> 1276 <span class="devname" data-bind="text:name"></span> 1277 <span class="devprice" data-bind="html:$root.priceText($data)"></span> 1278 <span class="nh-city" data-bind="text:$root.loc($data)"></span> 1279 </div> 1280 </div> 1281 </div> 1282</a> </div> 1283 </div> 1284</div> 1285 1286 1287 1288 1289 1290 1291 </div> 1292 </div> 1293 </div> 1294 </div> 1295 1296 <div class="livabl-container"> 1297 <div class="container livabl-banner"> 1298 <img title="Livabl brand signage." class="livabl-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/livabl_brand_signage.png"/> 1299 <div class="livabl-content"> 1300 <h1> 1301 Livabl has the largest, most accurate catalog of new construction homes, backed by industry-leading technology and trusted expertise. 1302 </h1> 1303 <img title="Livabl Logo" src="https://d1hsh3wswahchu.cloudfront.net/logos/header_logo.svg"/> 1304 </div> 1305</div> 1306 1307 1308 </div> 1309 1310 <div class="communities-section"> 1311 <div class="container home"> 1312 <div class="development-slider-block"> 1313 <div class="container"> 1314 1315<div id="fd" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1316 <div class="heading-container"> 1317 <div> 1318 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1319 </div> 1320 <div class="arrows-container"> 1321 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1322 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg">
1323 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1324 </svg> 1325</button> 1326 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1327 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1328 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1329 </svg> 1330</button> 1331 </div> 1332 </div> 1333 <div class="itemArea"> 1334 <div class="items" data-bind="foreach:data"> 1335<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;"> 1336 <div class="card" data-bind="attr:{dataId:id}"> 1337 <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}"> 1338 <div class="development-image-con"> 1339 <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" /> 1340 <div class="no-img-icon"> 1341 1342 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg"> 1343 <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1344 <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1345 <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" /> 1346 </svg> 1347 1348 </div> 1349 <div class="status"> 1350 <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span> 1351 </div> 1352 <div class="pre-launch-prices-container"> 1353 <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span> 1354 </div> 1355 </div> 1356 </div> 1357 <div class="development-details-slider"> 1358 <div class="development-details-frame">
1359 <span class="devname" data-bind="text:name"></span> 1360 <span class="devprice" data-bind="html:$root.priceText($data)"></span> 1361 <span class="nh-city" data-bind="text:$root.loc($data)"></span> 1362 </div> 1363 </div> 1364 </div> 1365</a> </div> 1366 </div> 1367</div> 1368 1369 1370 1371 1372 1373 1374 1375<div id="nh" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1376 <div class="heading-container"> 1377 <div> 1378 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1379 </div> 1380 <div class="arrows-container"> 1381 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1382 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1383 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1384 </svg> 1385</button> 1386 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1387 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1388 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1389 </svg> 1390</button> 1391 </div> 1392 </div> 1393 <div class="itemArea"> 1394 <div class="items" data-bind="foreach:data"> 1395<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;"> 1396 <div class="card" data-bind="attr:{dataId:id}"> 1397 <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}"> 1398 <div class="development-image-con"> 1399 <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" /> 1400 <div class="no-img-icon"> 1401 1402 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg"> 1403 <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1404 <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1405 <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" /> 1406 </svg> 1407 1408 </div> 1409 <div class="status">
1410 <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span> 1411 </div> 1412 <div class="pre-launch-prices-container"> 1413 <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span> 1414 </div> 1415 </div> 1416 </div> 1417 <div class="development-details-slider"> 1418 <div class="development-details-frame"> 1419 <span class="devname" data-bind="text:name"></span> 1420 <span class="devprice" data-bind="html:$root.priceText($data)"></span> 1421 <span class="nh-city" data-bind="text:$root.loc($data)"></span> 1422 </div> 1423 </div> 1424 </div> 1425</a> </div> 1426 </div> 1427</div> 1428 1429 1430 1431 1432 1433 1434 1435<div id="ps" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1436 <div class="heading-container"> 1437 <div> 1438 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1439 </div> 1440 <div class="arrows-container"> 1441 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1442 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1443 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1444 </svg> 1445</button> 1446 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1447 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1448 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1449 </svg> 1450</button> 1451 </div> 1452 </div> 1453 <div class="itemArea"> 1454 <div class="items" data-bind="foreach:data"> 1455<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;"> 1456 <div class="card" data-bind="attr:{dataId:id}"> 1457 <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}"> 1458 <div class="development-image-con"> 1459 <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" /> 1460 <div class="no-img-icon"> 1461 1462 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg"> 1463 <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1464 <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1465 <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" /> 1466 </svg> 1467 1468 </div> 1469 <div class="status">
1470 <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span> 1471 </div> 1472 <div class="pre-launch-prices-container"> 1473 <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span> 1474 </div> 1475 </div> 1476 </div> 1477 <div class="development-details-slider"> 1478 <div class="development-details-frame"> 1479 <span class="devname" data-bind="text:name"></span> 1480 <span class="devprice" data-bind="html:$root.priceText($data)"></span> 1481 <span class="nh-city" data-bind="text:$root.loc($data)"></span> 1482 </div> 1483 </div> 1484 </div> 1485</a> </div> 1486 </div> 1487</div> 1488 1489 1490 1491 1492 1493 1494 </div> 1495 </div> 1496 </div> 1497 </div> 1498 1499 <div class="articles-section"> 1500 <div class="container"> 1501 <div class="article-header-container"> 1502 <div class="title-container"> 1503 <div class="img-container"> 1504 1505 <svg width="48" height="49" viewBox="0 0 48 49" fill="none" xmlns="https://www.w3.org/2000/svg"> 1506 <path d="M8 38.333L32 38.333M8 32.333L32 32.333M8 26.333L32 26.333M25 14.333L32 14.333M25 20.333L32 20.333M25 8.33301H32M9 8.33301H22V20.333H9V8.33301Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1507 <path d="M35 26.333V4.33301H5V42.333C5 43.4376 5.89543 44.333 7 44.333H39M35 26.333H44V40.333C44 42.5421 42.2091 44.333 40 44.333H39M35 26.333V40.333C35 42.5421 36.7909 44.333 39 44.333" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1508 </svg> 1509 1510 </div> 1511 <h2>Articles</h2> 1512 <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" /> 1513 </div> 1514 <div> 1515 <a class="view-all-link" linktype="location" href="/articles">VIEW ALL</a> 1516 </div> 1517 </div> 1518 1519 <div class="article-container"> 1520 1521<div class="article featured"> 1522 <a href="https://www.livabl.com/articles/guides/7-reasons-to-buy-new-construction" target="_blank"> 1523 <div class="article-img-container main-article-banner"> 1524 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp" alt="Why buy new? Seven reasons to buy a new construction home"/> 1525 </div> 1526 <h4>Why buy new? Seven reasons to buy a new construction home</h4> 1527 </a> 1528 1529 <a class="category_link" href="https://www.livabl.com/articles/guides" target="_blank"> 1530 <span class="chip">Guides</span> 1531 </a> 1532</div> 1533 1534<div class="article featured"> 1535 <a href="https://www.livabl.com/articles/design/what-should-i-look-for-in-a-floor-plan" target="_blank"> 1536 <div class="article-img-container main-article-banner"> 1537 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/paint_colors.webp" alt="What should I look for in a floor plan?"/> 1538 </div> 1539 <h4>What should I look for in a floor plan?</h4> 1540 </a> 1541 1542 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank"> 1543 <span class="chip">Design</span> 1544 </a> 1545</div> 1546 1547<div class="article "> 1548 <a href="https://www.livabl.com/articles/design/how-to-create-a-productive-and-stylish-home-office" target="_blank"> 1549 <div class="article-img-container main-article-banner"> 1550 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/productive_and_stylish.webp" alt="How to create a productive and stylish home office"/> 1551 </div> 1552 <h5>How to create a productive and stylish home office</h5> 1553 </a> 1554 1555 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank">
1556 <span class="chip">Design</span> 1557 </a> 1558</div> 1559 1560<div class="article "> 1561 <a href="https://www.livabl.com/articles/design/preparing-to-visit-the-design-studio" target="_blank"> 1562 <div class="article-img-container main-article-banner"> 1563 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/visit_the_design_studio.webp" alt="Preparing to visit the design studio"/> 1564 </div> 1565 <h5>Preparing to visit the design studio</h5> 1566 </a> 1567 1568 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank"> 1569 <span class="chip">Design</span> 1570 </a> 1571</div> 1572 1573<div class="article "> 1574 <a href="https://www.livabl.com/articles/design/here-are-the-paint-colors-of-the-year-for-2025" target="_blank"> 1575 <div class="article-img-container main-article-banner"> 1576 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/mar_25-hp-article-5.webp" alt="Here are the big, bold Paint Colors of the Year for 2025"/> 1577 </div> 1578 <h5>Here are the big, bold Paint Colors of the Year for 2025</h5> 1579 </a> 1580 1581 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank"> 1582 <span class="chip">Design</span> 1583 </a> 1584</div> 1585 1586<div class="article "> 1587 <a href="https://www.livabl.com/articles/design/what-would-new-build-homeowners-do-differently" target="_blank"> 1588 <div class="article-img-container main-article-banner"> 1589 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/new_build_homeowners.webp" alt="10 things new build homeowners wish theyâd done differently"/> 1590 </div> 1591 <h5>10 things new build homeowners wish theyâd done differently</h5> 1592 </a> 1593 1594 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank"> 1595 <span class="chip">Design</span> 1596 </a> 1597</div> 1598 1599<div class="article "> 1600 <a href="https://www.livabl.com/articles/design/what-are-the-best-home-design-features-for-kids" target="_blank"> 1601 <div class="article-img-container main-article-banner"> 1602 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/mar_25-hp_article_7.webp" alt="What are the best home design features for kids?"/> 1603 </div> 1604 <h5>What are the best home design features for kids?</h5> 1605 </a> 1606 1607 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank"> 1608 <span class="chip">Design</span> 1609 </a> 1610</div> 1611 1612<div class="article "> 1613 <a href="https://www.livabl.com/articles/design/benefits-of-a-new-build-for-aging-in-place" target="_blank"> 1614 <div class="article-img-container main-article-banner"> 1615 <img onerror="this.error = null; this.className = 'article-img no-image'; this.src = 'https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/why_buy_new.webp';" class="article-img" src="https://d1hsh3wswahchu.cloudfront.net/siteimages/Home/Benefits_of_a_new_build.webp" alt="Benefits of a new build for aging in place"/> 1616 </div> 1617 <h5>Benefits of a new build for aging in place</h5> 1618 </a> 1619 1620 <a class="category_link" href="https://www.livabl.com/articles/design" target="_blank"> 1621 <span class="chip">Design</span> 1622 </a> 1623</div> 1624 1625 </div> 1626 1627 1628 </div> 1629 </div> 1630 1631 <div class="more-communities-section nodisplay"> 1632 <div class="container home"> 1633 <div class="development-slider-block"> 1634 <div class="container"> 1635 <div class="community-header-container"> 1636 <div class="title-container"> 1637 <img src="https://livabl.s3.amazonaws.com/icons/home-listing.svg" alt="home listing" /> 1638 <h2>More communities</h2> 1639 <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" /> 1640 </div> 1641 <div> 1642 <a class="view-all-link" linktype="location" href=/chicago-il/new-h
1642omes>VIEW ALL</a> 1643 </div> 1644 </div> 1645 1646<div id="mn" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1647 <div class="heading-container"> 1648 <div> 1649 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1650 </div> 1651 <div class="arrows-container"> 1652 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1653 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1654 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1655 </svg> 1656</button> 1657 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1658 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1659 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1660 </svg> 1661</button> 1662 </div> 1663 </div> 1664 <div class="itemArea"> 1665 <div class="items" data-bind="foreach:data"> 1666<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;"> 1667 <div class="card" data-bind="attr:{dataId:id}"> 1668 <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}"> 1669 <div class="development-image-con"> 1670 <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" /> 1671 <div class="no-img-icon"> 1672 1673 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg"> 1674 <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1675 <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1676 <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" /> 1677 </svg> 1678 1679 </div> 1680 <div class="status">
1681 <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span> 1682 </div> 1683 <div class="pre-launch-prices-container"> 1684 <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span> 1685 </div> 1686 </div> 1687 </div> 1688 <div class="development-details-slider"> 1689 <div class="development-details-frame"> 1690 <span class="devname" data-bind="text:name"></span> 1691 <span class="devprice" data-bind="html:$root.priceText($data)"></span> 1692 <span class="nh-city" data-bind="text:$root.loc($data)"></span> 1693 </div> 1694 </div> 1695 </div> 1696</a> </div> 1697 </div> 1698</div> 1699 1700 1701 1702 1703 1704 1705 1706<div id="pa" class="sldr developmentslider" draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1707 <div class="heading-container"> 1708 <div> 1709 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1710 </div> 1711 <div class="arrows-container"> 1712 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1713 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1714 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1715 </svg> 1716</button> 1717 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1718 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1719 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1720 </svg> 1721</button> 1722 </div> 1723 </div> 1724 <div class="itemArea"> 1725 <div class="items" data-bind="foreach:data"> 1726<a class="listing-item" data-bind="attr:{href:$root.devUrl($data)}, click: $root.trackReservedSpot" draggable="false" style="text-decoration: none !important;"> 1727 <div class="card" data-bind="attr:{dataId:id}"> 1728 <div class="development-image" data-bind="attr:{class: $root.img($data) == '' ? 'development-image' : 'development-image default-shadow'}"> 1729 <div class="development-image-con"> 1730 <img loading="lazy" class="img-slider" draggable="false" data-bind="attr: {src: $root.img($data), alt:name}, visible: ($root.img($data) != '')" /> 1731 <div class="no-img-icon"> 1732 1733 <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="https://www.w3.org/2000/svg"> 1734 <path d="M12 17.4211L24 7L36 17.4211M15.1582 14.6826V25.8421C15.1582 26.9467 16.0536 27.8421 17.1582 27.8421H31.1582C32.2628 27.8421 33.1582 26.9467 33.1582 25.8421V14.9526L23.9877 7L15.1582 14.6826Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1735 <path d="M6.5 32H41.5M6 3H42V45H6V3Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1736 <path d="M18 37H38M29 41H38M18 41H27M14 39C14 40.1046 13.1046 41 12 41C10.8954 41 10 40.1046 10 39C10 37.8954 10.8954 37 12 37C13.1046 37 14 37.8954 14 39Z" stroke="#1E1D21" stroke-width="2" /> 1737 </svg> 1738 1739 </div> 1740 <div class="status">
1741 <span class="tag-highlight" data-bind="visible:$root.expand(flags).isFeatured || $root.expand(flags).isVerified, html:$root.tagText($data)"></span> 1742 </div> 1743 <div class="pre-launch-prices-container"> 1744 <span class="tag-highlight" data-bind="visible:($root.expand(flags).isPreLaunch || $root.expand(flags).isBuyNow),text:$root.ribbonText($data),css:{oj:$root.expand(flags).isBuyNow}"></span> 1745 </div> 1746 </div> 1747 </div> 1748 <div class="development-details-slider"> 1749 <div class="development-details-frame"> 1750 <span class="devname" data-bind="text:name"></span> 1751 <span class="devprice" data-bind="html:$root.priceText($data)"></span> 1752 <span class="nh-city" data-bind="text:$root.loc($data)"></span> 1753 </div> 1754 </div> 1755 </div> 1756</a> </div> 1757 </div> 1758</div> 1759 1760 1761 1762 1763 1764 1765 </div> 1766 </div> 1767 </div> 1768 </div> 1769 1770 <div class="builders-section section-divider"> 1771 <div class="container home"> 1772 <div class="developer-slider-block"> 1773 <div class="container"> 1774 <div class="community-header-container"> 1775 <div class="title-container"> 1776 <img src="https://livabl.s3.amazonaws.com/icons/builder.svg" alt="builders" /> 1777 <h2>Builders</h2> 1778 <img src="https://livabl.s3.amazonaws.com/icons/line-9.svg" alt="line work" class="linework" /> 1779 </div> 1780 </div> 1781 1782<div id="tb" class="sldr developerslider " draggable="false" style="display:none" data-bind="visible:data().length > 3"> 1783 <div class="heading-container"> 1784 <div> 1785 <h3 style="margin:0;" class="slider-title" data-bind="text:title"></h3> 1786 </div> 1787 <div class="arrows-container"> 1788 <button class="leftArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide left"> 1789 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1790 <path d="M16.078 10.9218H5.77936L10.2787 15.4211C10.6383 15.7807 10.6383 16.3707 10.2787 16.7303C9.9191 17.0899 9.33825 17.0899 8.97867 16.7303L2.90275 10.6544C2.81728 10.5691 2.74946 10.4678 2.7032 10.3562C2.65693 10.2447 2.63312 10.1251 2.63312 10.0044C2.63312 9.88364 2.65693 9.76407 2.7032 9.65253C2.74946 9.541 2.81728 9.43968 2.90275 9.35439L8.96945 3.26924C9.05481 3.18388 9.15615 3.11617 9.26768 3.06997C9.37921 3.02378 9.49874 3 9.61946 3C9.74017 3 9.85971 3.02378 9.97124 3.06997C10.0828 3.11617 10.1841 3.18388 10.2695 3.26924C10.3548 3.3546 10.4225 3.45594 10.4687 3.56746C10.5149 3.67899 10.5387 3.79853 10.5387 3.91924C10.5387 4.03996 10.5149 4.1595 10.4687 4.27102C10.4225 4.38255 10.3548 4.48389 10.2695 4.56925L5.77936 9.07779H16.078C16.5851 9.07779 17 9.49268 17 9.99978C17 10.5069 16.5851 10.9218 16.078 10.9218Z" fill="#1E1D21" /> 1791 </svg> 1792</button> 1793 <button class="rightArrow arrow-btn-disabled lbl-bordered-btn" aria-label="Slide right"> 1794 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 1795 <path d="M3.92199 10.9218H14.2206L9.72132 15.4211C9.36174 15.7807 9.36174 16.3707 9.72132 16.7303C10.0809 17.0899 10.6618 17.0899 11.0213 16.7303L17.0973 10.6544C17.1827 10.5691 17.2505 10.4678 17.2968 10.3562C17.3431 10.2447 17.3669 10.1251 17.3669 10.0044C17.3669 9.88364 17.3431 9.76407 17.2968 9.65254C17.2505 9.541 17.1827 9.43968 17.0973 9.35439L11.0305 3.26924C10.9452 3.18388 10.8439 3.11617 10.7323 3.06997C10.6208 3.02378 10.5013 3 10.3805 3C10.2598 3 10.1403 3.02378 10.0288 3.06997C9.91724 3.11617 9.8159 3.18388 9.73054 3.26924C9.64518 3.3546 9.57747 3.45594 9.53127 3.56746C9.48507 3.67899 9.4613 3.79853 9.4613 3.91924C9.4613 4.03996 9.48507 4.1595 9.53127 4.27102C9.57747 4.38255 9.64518 4.48389 9.73054 4.56925L14.2206 9.07779H3.92199C3.4149 9.07779 3 9.49268 3 9.99978C3 10.5069 3.4149 10.9218 3.92199 10.9218Z" fill="#1E1D21" /> 1796 </svg> 1797</button> 1798 </div> 1799 </div> 1800 <div class="itemArea"> 1801 <div class="items" data-bind="foreach:data"> 1802<a class="adeveloper-slider" data-bind="attr:{href:$root.devUrl($data)}" draggable="false" style="text-decoration: none !important;"> 1803 <div class="devcon"> 1804 <div class="developer-logo"> 1805 <div class="developer-image-con"> 1806 <div class="dev-img-slider" draggable="false" data-bind="style:{backgroundImage:'url('+$root.img($data)+')', visible: ($root.img($data) != '')}"></div> 1807 <div class="no-img-icon" data-bind="visible: $root.img($data) == ''"> 1808 1809 <svg width="48" height="49" viewBox="0 0 48 49" fill="none" xmlns="https://www.w3.org/2000/svg"> 1810 <g clip-path="url(#clip0_1424_271618)"> 1811 <path d="M18.0039 17.7676L30.5754 30.3391L17.5117 43.4028L5.12951 43.2135L4.94016 30.8313L18.0039 17.7676Z" stroke="#1E1D21" stroke-width="2" stroke-linejoin="round" /> 1812 <path d="M40.0045 8.3385L18.5105 29.8325M40.0045 8.3385L46.2903 14.6243M40.0045 8.3385L33.7188 2.05273" stroke="#1E1D21" stroke-width="2" /> 1813 </g> 1814 <defs> 1815 <clipPath> 1816 <rect width="48" height="48" fill="white" transform="translate(0 0.333008)" /> 1817 </clipPath> 1818 </defs> 1819 </svg> 1820 1821 </div> 1822 </div> 1823 </div> 1824 <div class="developer-details-slider">
1825 <span class="developername" data-bind="text:name"></span> 1826 <div class="sm-separator"></div> 1827 <div data-bind="visible: !hidebuilderreviews"> 1828 <span class="reviewscore score-container" data-bind="html:$root.stars($data)"></span> 1829 </div> 1830 </div> 1831 </div> 1832</a> </div> 1833 </div> 1834</div> 1835 1836 1837 1838 1839 1840 1841 </div> 1842 </div> 1843 </div> 1844 </div> 1845 1846
1846<script type="text/javascript"> 1847 adroll_adv_id = "IAOCJYV6VJB4HK5OANHDZQ"; 1848 adroll_pix_id = "3IQLEBVAZVCHFHXJMPMFR2"; 1849 1850 (function() { 1851 var _onload = function() { 1852 if (document.readyState 1853 && !/loaded|complete/.test(document.readyState)) { 1854 setTimeout(_onload, 10); 1855 return 1856 } 1857 if (!window.__adroll_loaded) { 1858 __adroll_loaded = true; 1859 setTimeout(_onload, 50); 1860 return 1861 } 1862 var scr = document.createElement("script"); 1863 var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" 1864 : "https://a.adroll.com"); 1865 scr.setAttribute('async', 'true'); 1866 scr.type = "text/javascript"; 1867 scr.src = host + "/j/roundtrip.js"; 1868 ((document.getElementsByTagName('head') || [ null ])[0] || document 1869 .getElementsByTagName('script')[0].parentNode) 1870 .appendChild(scr); 1871 }; 1872 if (window.addEventListener) { 1873 window.addEventListener('load', _onload, false); 1874 } else { 1875 window.attachEvent('onload', _onload) 1876 } 1877 }()); 1878 </script>
1878 1879 1880 1881 1882 1883</div> 1884 1885 1886 1887<div id="livablFooter"> 1888 1889 <div class="top-home-location-container"> 1890 <div class="top-home-location"> 1891 <div id="arrowBreakPoint" class="grid-title" role="heading">Top new home locations in the U.S.</div> 1892 <div id="UsCities" class="top-home-grid country-max-height"> 1893<div class='top-home-container '> <div class="top-home-text"><a href="/atlanta-ga/new-homes">Atlanta new homes</a></div> 1894 <div class="top-home-text"><a href="/austin-tx/new-homes">Austin new homes</a></div> 1895 <div class="top-home-text"><a href="/charlotte-nc/new-homes">Charlotte new homes</a></div> 1896 <div class="top-home-text"><a href="/chicago-cook-county-il/new-homes">Chicago new homes</a></div> 1897</div><div class='top-home-container '> <div class="top-home-text"><a href="/dallas-tx/new-homes">Dallas new homes</a></div> 1898 <div class="top-home-text"><a href="/fort-worth-tx/new-homes">Fort Worth new homes</a></div> 1899 <div class="top-home-text"><a href="/houston-tx/new-homes">Houston new homes</a></div> 1900 <div class="top-home-text"><a href="/jacksonville-fl/new-homes">Jacksonville new homes</a></div> 1901</div><div class='top-home-container '> <div class="top-home-text"><a href="/las-vegas-nv/new-homes">Las Vegas new homes</a></div> 1902 <div class="top-home-text"><a href="/los-angeles-ca/new-homes">Los Angeles new homes</a></div> 1903 <div class="top-home-text"><a href="/miami-fl/new-homes">Miami new homes</a></div> 1904 <div class="top-home-text"><a href="/new-york-ny/new-homes">New York new homes</a></div> 1905</div><div class='top-home-container '> <div class="top-home-text"><a href="/philadelphia-pa/new-homes">Philadelphia new homes</a></div> 1906 <div class="top-home-text"><a href="/phoenix-az/new-homes">Phoenix new homes</a></div> 1907 <div class="top-home-text"><a href="/raleigh-nc/new-homes">Raleigh new homes</a></div> 1908 <div class="top-home-text"><a href="/sacramento-ca/new-homes">Sacramento new homes</a></div> 1909</div><div class='top-home-container '> <div class="top-home-text"><a href="/san-antonio-tx/new-homes">San Antonio new homes</a></div> 1910 <div class="top-home-text"><a href="/san-francisco-ca/new-homes">San Francisco new homes</a></div> 1911 <div class="top-home-text"><a href="/seattle-wa/new-homes">Seattle new homes</a></div> 1912 <div class="top-home-text"><a href="/washington-dc/new-homes">Washington DC new homes</a></div> 1913</div> </div> 1914 <div id="showUsCities" class="show-more-container"> 1915 <div class="show-more-text"> 1916 Show more cities 1917 </div> 1918 <div class="show-more-icon"> 1919 1920 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg"> 1921 <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" /> 1922 </svg> 1923 1924 </div> 1925 </div> 1926 1927 <div class="grid-subtitle" role="heading">Browse new homes by state</div> 1928 <div id="UsStates" class="top-home-grid state-province-max-height"> 1929<div class='top-home-container '> <div class="top-home-text"><a href="/state/alabama">Alabama new homes</a></div> 1930 <div class="top-home-text top-home-disabled" aria-disabled="true">Alaska new homes</div> 1931 <div class="top-home-text"><a href="/state/arizona">Arizona new homes</a></div> 1932 <div class="top-home-text"><a href="/state/arkansas">Arkansas new homes</a></div> 1933</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/california">California new homes</a></div> 1934 <div class="top-home-text"><a href="/state/colorado">Colorado new homes</a></div> 1935 <div class="top-home-text"><a href="/state/connecticut">Connecticut new homes</a></div> 1936 <div class="top-home-text"><a href="/state/delaware">Delaware new homes</a></div> 1937</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/district-of-columbia">District of Columbia new homes</a></div> 1938 <div class="top-home-text"><a href="/state/florida">Florida new homes</a></div> 1939 <div class="top-home-text"><a href="/state/georgia">Georgia new homes</a></div> 1940 <div class="top-home-text"><a href="/state/hawaii">Hawaii new homes</a></div> 1941</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/idaho">Idaho new homes</a></div> 1942 <div class="top-home-text"><a href="/state/illinois">Illinois new homes</a></div> 1943 <div class="top-home-text"><a href="/state/indiana">Indiana new homes</a></div> 1944 <div class="top-home-text"><a href="/state/iowa">Iowa new homes</a></div> 1945</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/kansas">Kansas new homes</a></div> 1946 <div class="top-home-text"><a href="/state/kentucky">Kentucky new homes</a></div> 1947 <div class="top-home-text"><a href="/state/louisiana">Louisiana new homes</a></div> 1948 <div class="top-home-text top-home-disabled" aria-disabled="true">Maine new homes</div> 1949</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/maryland">Maryland new homes</a></div> 1950 <div class="top-home-text"><a href="/state/massachusetts">Massachusetts new homes</a></div> 1951 <div class="top-home-text"><a href="/state/michigan">Michigan new homes</a></div> 1952 <div class="top-home-text"><a href="/state/minnesota">Minnesota new homes</a></div> 1953</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/mississippi">Mississippi new homes</a></div> 1954 <div class="top-home-text"><a href="/state/missouri">Missouri new homes</a></div> 1955 <div class="top-home-text"><a href="/state/montana">Montana new homes</a></div> 1956 <div class="top-home-text"><a href="/state/nebraska">Nebraska new homes</a></div> 1957</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/nevada">Nevada new homes</a></div> 1958 <div class="top-home-text"><a href="/state/new-hampshire">New Hampshire new homes</a></div> 1959 <div class="top-home-text"><a href="/state/new-jersey">New Jersey new homes</a></div> 1960 <div class="top-home-text"><a href="/state/new-mexico">New Mexico new homes</a></div> 1961</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/new-york">New York new homes</a></div> 1962 <div class="top-home-text"><a href="/state/north-carolina">North Carolina new homes</a></div> 1963 <div class="top-home-text top-home-disabled" aria-disabled="true">North Dakota new homes</div> 1964 <div class="top-home-text"><a href="/state/ohio">Ohio new homes</a></div> 1965</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/oklahoma">Oklahoma new homes</a></div> 1966 <div class="top-home-text"><a href="/state/oregon">Oregon new homes</a></div> 1967 <div class="top-home-text"><a href="/state/pennsylvania">Pennsylvania new homes</a></div> 1968 <div class="top-home-text"><a href="/state/rhode-island">Rhode Island new homes</a></div> 1969</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/south-carolina">South Carolina new homes</a></div> 1970 <div class="top-home-text"><a href="/state/south-dakota">South Dakota new homes</a></div> 1971 <div class="top-home-text"><a href="/state/tennessee">Tennessee new homes</a></div> 1972 <div class="top-home-text"><a href="/state/texas">Texas new homes</a></div> 1973</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/utah">Utah new homes</a></div> 1974 <div class="top-home-text top-home-disabled" aria-disabled="true">Vermont new homes</div> 1975 <div class="top-home-text"><a href="/state/virginia">Virginia new homes</a></div> 1976 <div class="top-home-text"><a href="/state/washington">Washington new homes</a></div> 1977</div><div class='top-home-container '> <div class="top-home-text"><a href="/state/west-virginia">West Virginia new homes</a></div> 1978 <div class="top-home-text"><a href="/state/wisconsin">Wisconsin new homes</a></div> 1979 <div class="top-home-text top-home-disabled" aria-disabled="true">Wyoming new homes</div> 1980</div> </div> 1981 <div id="showStates" class="show-more-container"> 1982 <div class="show-more-text"> 1983 Show more states 1984 </div> 1985 <div class="show-more-icon"> 1986
1987 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg"> 1988 <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" /> 1989 </svg> 1990 1991 </div> 1992 </div> 1993 <div class="footer-divider"></div> 1994 1995 <div class="grid-title" role="heading">Top new home locations in Canada</div> 1996 <div id="CanCities" class="top-home-grid country-max-height"> 1997<div class='top-home-container '> <div class="top-home-text"><a href="/barrie-on/new-homes">Barrie new homes</a></div> 1998 <div class="top-home-text"><a href="/brampton-on/new-homes">Brampton new homes</a></div> 1999 <div class="top-home-text"><a href="/burnaby-bc/new-homes">Burnaby new homes</a></div> 2000 <div class="top-home-text"><a href="/calgary-ab/new-homes">Calgary new homes</a></div> 2001</div><div class='top-home-container '> <div class="top-home-text"><a href="/coquitlam-bc/new-homes">Coquitlam new homes</a></div> 2002 <div class="top-home-text"><a href="/edmonton-ab/new-homes">Edmonton new homes</a></div> 2003 <div class="top-home-text"><a href="/hamilton-on/new-homes">Hamilton new homes</a></div> 2004 <div class="top-home-text"><a href="/kitchener-on/new-homes">Kitchener new homes</a></div> 2005</div><div class='top-home-container '> <div class="top-home-text"><a href="/london-on/new-homes">London new homes</a></div> 2006 <div class="top-home-text"><a href="/milton-on/new-homes">Milton new homes</a></div> 2007 <div class="top-home-text"><a href="/mississauga-on/new-homes">Mississauga new homes</a></div> 2008 <div class="top-home-text"><a href="/montreal-qc/new-homes">Montreal new homes</a></div> 2009</div><div class='top-home-container '> <div class="top-home-text"><a href="/ottawa-on/new-homes">Ottawa new homes</a></div> 2010 <div class="top-home-text"><a href="/richmond-bc/new-homes">Richmond new homes</a></div> 2011 <div class="top-home-text"><a href="/richmond-hill-on/new-homes">Richmond Hill new homes</a></div> 2012 <div class="top-home-text"><a href="/surrey-bc/new-homes">Surrey new homes</a></div> 2013</div><div class='top-home-container '> <div class="top-home-text"><a href="/toronto-on/new-homes">Toronto new homes</a></div> 2014 <div class="top-home-text"><a href="/vancouver-bc/new-homes">Vancouver new homes</a></div> 2015 <div class="top-home-text"><a href="/vaughan-on/new-homes">Vaughan new homes</a></div> 2016 <div class="top-home-text"><a href="/winnipeg-mb/new-homes">Winnipeg new homes</a></div> 2017</div> </div> 2018 <div id="showCanCities" class="show-more-container"> 2019 <div class="show-more-text"> 2020 Show more cities 2021 </div> 2022 <div class="show-more-icon"> 2023 2024 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg"> 2025 <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" /> 2026 </svg> 2027 2028 </div> 2029 </div> 2030 2031 <div class="grid-subtitle" role="heading">Browse new homes by province</div> 2032 <div id="CanProvinces" class="top-home-grid state-province-max-height"> 2033<div class='top-home-container '> <div class="top-home-text"><a href="/province/alberta">Alberta new homes</a></div> 2034 <div class="top-home-text"><a href="/province/british-columbia">British Columbia new homes</a></div> 2035 <div class="top-home-text"><a href="/province/manitoba">Manitoba new homes</a></div> 2036 <div class="top-home-text top-home-disabled" aria-disabled="true">New Brunswick new homes</div> 2037</div><div class='top-home-container '> <div class="top-home-text"><a href="/province/newfoundland-and-labrador">Newfoundland and Labrador new homes</a></div> 2038 <div class="top-home-text top-home-disabled" aria-disabled="true">Northwest Territories new homes</div> 2039 <div class="top-home-text"><a href="/province/nova-scotia">Nova Scotia new homes</a></div> 2040 <div class="top-home-text top-home-disabled" aria-disabled="true">Nunavut new homes</div> 2041</div><div class='top-home-container '> <div class="top-home-text"><a href="/province/ontario">Ontario new homes</a></div> 2042 <div class="top-home-text top-home-disabled" aria-disabled="true">Prince Edward Island new homes</div> 2043 <div class="top-home-text top-home-disabled" aria-disabled="true">
2043Quebec new homes</div> 2044 <div class="top-home-text"><a href="/province/saskatchewan">Saskatchewan new homes</a></div> 2045</div><div class='top-home-container '> <div class="top-home-text top-home-disabled" aria-disabled="true">Yukon new homes</div> 2046</div> </div> 2047 <div id="showProvince" class="show-more-container no-bottom-margin"> 2048 <div class="show-more-text"> 2049 Show more provinces 2050 </div> 2051 <div class="show-more-icon"> 2052 2053 <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="https://www.w3.org/2000/svg"> 2054 <path d="M4 6L8 10L12 6" stroke-width="2" stroke-linecap="round" /> 2055 </svg> 2056 2057 </div> 2058 </div> 2059 </div> 2060 </div> 2061 2062 <div class="livabl-footer-container"> 2063 <div class="footer-title-container"> 2064 <div class="footer-title"> 2065 Livabl by Zonda<span class="title-trademark">TM</span> 2066 </div> 2067 <button onclick="footer.scroll.goToTop()"> 2068 2069 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2070 <path d="M8.89464 16.2616L8.89464 5.96296L4.39532 10.4623C4.03574 10.8219 3.44567 10.8219 3.08609 10.4623C2.72651 10.1027 2.72651 9.52184 3.08609 9.16227L9.16201 3.08634C9.24731 3.00087 9.34863 2.93306 9.46016 2.88679C9.5717 2.84052 9.69127 2.81671 9.81202 2.81671C9.93277 2.81671 10.0523 2.84052 10.1639 2.88679C10.2754 2.93306 10.3767 3.00087 10.462 3.08634L16.5472 9.15305C16.6325 9.23841 16.7002 9.33974 16.7464 9.45127C16.7926 9.5628 16.8164 9.68233 16.8164 9.80305C16.8164 9.92377 16.7926 10.0433 16.7464 10.1548C16.7002 10.2664 16.6325 10.3677 16.5472 10.4531C16.4618 10.5384 16.3605 10.6061 16.2489 10.6523C16.1374 10.6985 16.0179 10.7223 15.8972 10.7223C15.7764 10.7223 15.6569
207010.6985 15.5454 10.6523C15.4339 10.6061 15.3325 10.5384 15.2472 10.4531L10.7386 5.96296L10.7386 16.2616C10.7386 16.7687 10.3237 17.1836 9.81663 17.1836C9.30953 17.1836 8.89464 16.7687 8.89464 16.2616Z" fill="#1E1D21" /> 2071 </svg> 2072 2073 </button> 2074 </div> 2075 2076 <div class="social-icons-sm-md"> 2077 <div class="social-icons"> 2078 <a href="https://twitter.com/Livabl_" rel="nofollow" target="_blank" aria-label="view Livabl twitter page"> 2079 2080 <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"> 2081 <circle cx="20" cy="20" r="20" fill="#1E1D21" /> 2082 <g clip-path="url(#clip0_5287_650919)"> 2083 <path d="M21.7124 18.7893L28.4133 11H26.8254L21.0071 17.7633L16.3599 11H11L18.0274 21.2273L11 29.3955H12.588L18.7324 22.2533L23.6401 29.3955H29L21.7121 18.7893H21.7124ZM19.5375 21.3174L18.8255 20.299L13.1602 12.1954H15.5992L20.1712 18.7353L20.8832 19.7537L26.8262 28.2545H24.3871L19.5375 21.3178V21.3174Z" fill="white" /> 2084 </g> 2085 <defs> 2086 <clipPath id="clip0_5287_650919"> 2087 <rect width="18" height="18.405" fill="white" transform="translate(11 11)" /> 2088 </clipPath> 2089 </defs> 2090 </svg> 2091 2092 2093 </a> 2094 2095 <a href="https://www.instagram.com/livabl_/" rel="nofollow" target="_blank" aria-label="view Livabl instagram page"> 2096 2097 <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="https://www.w3.org/2000/svg"> 2098 <circle cx="20" cy="20" r="20" fill="#1E1D21" /> 2099 <path d="M20.0007 9C17.0133 9 16.6384 9.01306 15.465 9.06646C14.294 9.12008 13.4946 9.30548 12.7952 9.5775C12.0717 9.85846 11.458 10.2343 10.8466 10.8459C10.2348 11.4574 9.85892 12.0711 9.57704 12.7943C9.30433 13.494 9.11871 14.2935 9.066 15.4641C9.01375 16.6374 9 17.0126 9 20C9 22.9874 9.01329 23.3612 9.06646 24.5345C9.12031 25.7056 9.30571 26.5049 9.5775 27.2043C9.85869 27.9278 10.2345 28.5415 10.8462 29.1529C11.4574 29.7648 12.0711 30.1415 12.7941 30.4225C13.494 30.6945 14.2935 30.8799 15.4643 30.9335C16.6377 30.9869 17.0124 31 19.9995 31C22.9872 31 23.361 30.9869 24.5343 30.9335C25.70
209953 30.8799 26.5056 30.6945 27.2055 30.4225C27.9287 30.1415 28.5415 29.7648 29.1527 29.1529C29.7646 28.5415 30.1404 27.9278 30.4223 27.2045C30.6927 26.5049 30.8783 25.7053 30.9333 24.5348C30.986 23.3614 30.9998 22.9874 30.9998 20C30.9998 17.0126 30.986 16.6377 30.9333 15.4643C30.8783 14.2933 30.6927 13.494 30.4223 12.7945C30.1404 12.0711 29.7646 11.4574 29.1527 10.8459C28.5408 10.2341 27.9289 9.85823 27.2048 9.5775C26.5035 9.30548 25.7037 9.12008 24.5327 9.06646C23.3594 9.01306 22.9858 9 19.9975 9H20.0007ZM19.0139 10.9823C19.3068 10.9818 19.6336 10.9823 20.0007 10.9823C22.9377 10.9823 23.2858 10.9928 24.4456 11.0455C25.5181 11.0946 26.1002 11.2738 26.4879 11.4244C27.0013 11.6237 27.3672 11.8621 27.752 12.2471C28.137 12.6321 28.3754 12.9987 28.5752 13.5121C28.7257 13.8994 28.9052 14.4814 28.954 15.5539C29.0067 16.7135 29.0182 17.0619 29.0182 19.9975C29.0182 22.9331 29.0067 23.2814 28.954 24.441C28.905 25.5135 28.7257 26.0956 28.5752 26.4829C28.3758 26.9962 28.137 27.3618 27.752 27.7465C27.367 28.1315 27.0015 28.3699 26.4879 28.5692C26.1006 28.7205 25.5181 28.8992 24.4456 28.9483C23.286 29.001 22.9377 29.0124 20.0007 29.0124C17.0635 29.0124 16.7154 29.001 15.5558 28.9483C14.4833 28.8988 13.9012 28.7196 13.5132 28.569C12.9999 28.3696 12.6332 28.1313 12.2482 27.7463C11.8632 27.3613 11.6249 26.9955 11.425 26.482C11.2745 26.0947 11.095 25.5126 11.0462 24.4401C10.9935 23.2805 10.983 22.9322 10.983 19.9947C10.983 17.0573 10.9935 16.7108 11.0462 15.5512C11.0953 14.4787 11.2745 13.8966 11.425 13.5089C11.6244 12.9955 11.8632 12.6289 12.2482 12.2439C12.6332 11.8589 12.9999 11.6205 13.5132 11.4207C13.901 11.2694 14.4833 11.0907 15.5558 11.0414C16.5705 10.9956 16.9638 10.9818 19.0139 10.9795V10.9823ZM25.8724 12.8087C25.6113 12.8087 25.3561 12.8862 25.139 13.0312C24.9219 13.1763 24.7527 13.3825 24.6528 13.6237C24.5529 13.8649 24.5268 14.1304 24.5778 14.3864C24.6288 14.6425 24.7545 14.8777 24.9392 15.0623C25.1238 15.2469 25.3591 15.3726 25.6152 15.4234C25.8712 15.4743 26.1367 15.4481 26.3779 15.3481C26.619 15.2482 26.8252 15.0789 26.9702 14.8618C27.1151 14.6446 27.1925 14.3894 27.1924 14.1283C27.1924 13.3995 26.6011 12.8083 25.8724 12.8083V12.8087ZM20.0007 14.351C16.881 14.351 14.3517 16.8804 14.3517 20C14.3517 23.1196 16.881 25.6478 20.0007 25.6478C23.1203 25.6478 25.649 23.1196 25.649 20C25.649 16.8804 23.1203 14.351 20.0007 14.351ZM20.0007 16.3333C22.0256 16.3333 23.6674 17.9749 23.6674 20C23.6674 22.0249 22.0256 23.6667 20.0007 23.6667C17.9755 23.6667 16.334 22.0249 16.334 20C16.334 17.9749 17.9755 16.3333 20.0007 16.3333Z" fill="white" /> 2100 </svg> 2101 2102 2103 </a> 2104 2105 <a href="https://www.facebook.com/Livabldotcom/" rel="nofollow" target="_blank" aria-label="view Livabl facebook page"> 2106 2107 <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="https://www.w3.org/2000/svg"> 2108 <path d="M40 20C40 31.0457 31.0457 40 20 40C8.9543 40 0 31.0457 0 20C0 8.9543 8.9543 0 20 0C31.0457 0 40 8.9543 40 20Z" fill="#1E1D21" /> 2109 <path d="M17.2333 29V20.5539H15V17.5129H17.2333V14.9154C17.2333 12.8744 18.5526 11 21.5924 11C22.8231 11 23.7332 11.118 23.7332 11.118L23.6615 13.9578C23.6615 13.9578 22.7334 13.9487 21.7205 13.9487C20.6243 13.9487 20.4487 14.4539 20.4487 15.2924V17.5129H23.7487L23.6051 20.5539H20.4487V29H17.2333Z" fill="white" /> 2110 </svg> 2111 2112 2113 </a> 2114 2115 <a href="https://www.pinterest.com/livabl/" rel="nofollow" target="_blank" aria-label="view Livabl pinterest page"> 2116 2117 <svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="https://www.w3.org/2000/svg"> 2118 <circle cx="20" cy="20" r="20" fill="#1E1D21" /> 2119 <path d="M18.3962 23.2274C17.8702 25.9814 17.2292 28.6214 15.3282 30.0004C14.7422 25.8384 16.1892 22.7134 16.8622 19.3954C15.7152 17.4654 17.0002 13.5834 19.4172 14.5404C22.3922 15.7164 16.8412 21.7124 20.5672 22.4624C24.4582 23.2434 26.0462 15.7124 23.6332 13.2634C20.1482 9.72543 13.4872 13.1804 14.3072 18.2454C14.5062 19.4834 15.7852 19.8584 14.8182 21.5674C12.5872 21.0734 11.9212 19.3134 12.0072 16.9674C12.1452 13.1274 15.4562 10.4404 18.7782 10.0674C22.9792 9.59643 26.9222 11.6104 27.4672 15.5614C28.0802 20.0224 25.5712 24.8544 21.0782 24.5064C19.8602 24.4114 19.3502 23.8
2119074 18.3962 23.2274Z" fill="white" /> 2120 </svg> 2121 2122 2123 </a> 2124 </div> 2125 </div> 2126 2127 <div class="content-container-us"> 2128 <div> 2129 <a href="/about" aria-label="View About">About</a> 2130 </div> 2131 <div> 2132 <a href="/about/careers" aria-label="View Careers">Careers</a> 2133 </div> 2134 <div> 2135 <a href=" https://zondahome.com/legal/accessibility-statement/" target="_blank" rel="nofollow" aria-label="View Accessibility">Accessibility</a> 2136 </div> 2137 <div class="non-mobile-display"> 2138 <a target="_blank" href="https://www.zondahome.com/legal/privacy-policy/united-states/" aria-label="View Privacy Policy">Privacy policy</a> 2139 </div> 2140 <div> 2141 <a href="/legal" aria-label="View Terms & conditions">Terms & conditions</a> 2142 </div> 2143 <div class="mobile-display"> 2144 <a target="_blank" href="https://www.zondahome.com/legal/privacy-policy/united-states/" aria-label="View Privacy Policy">Privacy policy</a> 2145 </div> 2146 2147 <div> 2148 <div class="social-icons"> 2149 <a href="https://twitter.com/Livabl_" rel="nofollow" target="_blank" aria-label="view Livabl twitter page"> 2150 2151 <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> 2152 <g clip-path="url(#clip0_15545_10431)"> 2153 <path d="M11.4058 7.78926L18.1067 0H16.5188L10.7004 6.7633L6.05328 0H0.693359L7.72074 10.2273L0.693359 18.3955H2.28135L8.42572 11.2533L13.3334 18.3955H18.6934L11.4054 7.78926H11.4058ZM9.23083 10.3174L8.51881 9.29901L2.85352 1.19542H5.29258L9.86454 7.73527L10.5766 8.75368L16.5196 17.2545H14.0805L9.23083 10.3178V10.3174Z" fill="white" /> 2154 </g> 2155 <defs> 2156 <clipPath id="clip0_15545_10431"> 2157 <rect width="18" height="18.405" fill="white" transform="translate(0.693359)" /> 2158 </clipPath> 2159 </defs> 2160 </svg> 2161 2162 2163 </a> 2164 2165 <a href="https://www.instagram.com/livabl_/" rel="nofollow" target="_blank" aria-label="view Livabl instagram page"> 2166 2167 <svg xmlns="http://www.w3.org/2000/svg" width="23" height="22" viewBox="0 0 23 22" fill="none"> 2168 <path d="M11.694 0C8.70663 0 8.33171 0.0130627 7.15838 0.0664585C5.98734 0.120084 5.188 0.305479 4.48859 0.5775C3.76511 0.858458 3.1514 1.23429 2.53998 1.84594C1.92811 2.45735 1.55228 3.07106 1.2704 3.79431C0.997693 4.49396 0.812068 5.29352 0.759359 6.4641C0.707109 7.63744 0.693359 8.01258 0.693359 11C0.693359 13.9874 0.706651 14.3612 0.759818 15.5345C0.813672 16.7056 0.999068 17.5049 1.27086 18.2043C1.55205 18.9278 1.92788 19.5415 2.53953 20.1529C3.15071 20.7648 3.76442 21.1415 4.48744 21.4225C5.18732 21.6945 5.98688 21.8799 7.15769 21.9335C8.33103 21.9869 8.70571 22 11.6929 22C14.6805 22 15.0543 21.9869 16.2276 21.9335C17.3987 21.8799 18.1989 21.6945 18.8988 21.4225C19.6221 21.1415 20.2349 20.7648 20.846 20.1529C21.4579 19.5415 21.8338 18.9278 22.1156 18.2045C22.386 17.5049 22.5717 16.7053 22.6267 15.5348C22.6794 14.3614 22.6931 13.9874 22.6931 11C22.6931 8.01258 22.6794 7.63767 22.6267 6.46433C22.5717 5.29329 22.386 4.49396 22.1156 3.79454C21.8338 3.07106 21.4579 2.45735 20.846 1.84594C20.2342 1.23406 19.6223 0.858229 18.8981 0.5775C18.1969 0.305479 17.3971 0.120084 16.226 0.0664585C15.0527 0.0130627 14.6792 0 11.6908 0H11.694ZM10.7073 1.98229C11.0001 1.98183 11.3269 1.98229 11.694 1.98229C14.631 1.98229 14.9791 1.99283 16.139 2.04554C17.2115 2.09458 17.7935 2.27379 18.1813 2.42435C18.6946 2.62373 19.0606 2.86206 19.4454 3.24706C19.8304 3.63206 20.0687 3.99873 20.2685 4.51206C20.4191 4.89935 20.5985 5.48144 20.6474 6.55394C20.7001 7.71352 20.7115 8.06185 20.7115 10.9975C20.7115 13.9331 20.7001 14.2814 20.6474 15.441C20.5983 16.5135 20.4191 17.0956 20.2685 17.4829C20.0692 17.9962 19.8304 18.3618 19.4454 18.7465C19.0604 19.1315 18.6949 19.3699 18.1813 19.5692C17.794 19.7205 17.2115 19.8992 16.139 19.9483C14.9794 20.001 14.631 20.0124 11.694 20.0124C8.75682 20.0124 8.40871 20.001 7.24913 19.9483C6.17663 19.8988 5.59455 19.7196 5.20657 19.569C4.69323 19.3696 4.32657 19.1313 3.94157 18.7463C3.55657 18.3613 3.31823 17.9955 3.1184 17.482C2.96784 17.0947 2.7884 16.5126 2.73959 15.4401C2.68688 14.2805 2.67634 13.9322 2.67634 10.9947C2.67634 8.05727 2.68688 7.71077 2.73959 6.55119C2.78863 5.47869 2.96784 4.8966 3.1184 4.50885C3.31778 3.99552 3.55657 3.62885 3.94157 3.24385C4.32657 2.85885 4.69323 2.62052 5.20657 2.42069C5.59432 2.26944 6.17663 2.09069 7.24913 2.04142C8.26388 1.99558 8.65713 1.98183 10.7073
21681.97954V1.98229ZM17.5658 3.80875C17.3047 3.80875 17.0494 3.88618 16.8324 4.03124C16.6153 4.17631 16.4461 4.38249 16.3462 4.62371C16.2463 4.86494 16.2202 5.13037 16.2712 5.38644C16.3221 5.64251 16.4479 5.87771 16.6325 6.06229C16.8172 6.24688 17.0524 6.37256 17.3085 6.42344C17.5646 6.47432 17.83 6.44812 18.0712 6.34814C18.3124 6.24816 18.5185 6.0789 18.6635 5.86177C18.8085 5.64464 18.8858 5.38938 18.8858 5.12829C18.8858 4.39954 18.2945 3.80829 17.5658 3.80829V3.80875ZM11.694 5.35104C8.5744 5.35104 6.04509 7.88035 6.04509 11C6.04509 14.1196 8.5744 16.6478 11.694 16.6478C14.8137 16.6478 17.3423 14.1196 17.3423 11C17.3423 7.88035 14.8137 5.35104 11.694 5.35104ZM11.694 7.33333C13.719 7.33333 15.3607 8.97485 15.3607 11C15.3607 13.0249 13.719 14.6667 11.694 14.6667C9.6689 14.6667 8.02738 13.0249 8.02738 11C8.02738 8.97485 9.6689 7.33333 11.694 7.33333Z" fill="white" /> 2169 </svg> 2170 2171 2172 </a> 2173 2174 <a href="https://www.facebook.com/Livabldotcom/" rel="nofollow" target="_blank" aria-label="view Livabl facebook page"> 2175 2176 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="18" viewBox="0 0 10 18" fill="none"> 2177 <path d="M2.92669 18V9.55388H0.693359V6.51287H2.92669V3.91545C2.92669 1.87438 4.24593 0 7.28573 0C8.5165 0 9.4266 0.11799 9.4266 0.11799L9.35489 2.95778C9.35489 2.95778 8.42674 2.94874 7.41389 2.94874C6.31769 2.94874 6.14207 3.45391 6.14207 4.29237V6.51287H9.44203L9.29844 9.55388H6.14207V18H2.92669Z" fill="white" /> 2178 </svg> 2179 2180 2181 </a> 2182 2183 <a href="https://www.pinterest.com/livabl/" rel="nofollow" target="_blank" aria-label="view Livabl pinterest page"> 2184 2185 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="20" viewBox="0 0 16 20" fill="none"> 2186 <path d="M6.83764 13.2274C6.31164 15.9814 5.67064 18.6214 3.76964 20.0004C3.18364 15.8384 4.63064 12.7134 5.30364 9.39543C4.15664 7.46543 5.44164 3.58343 7.85864 4.54043C10.8336 5.71643 5.28264 11.7124 9.00864 12.4624C12.8996 13.2434 14.4876 5.71243 12.0746 3.26343C8.58964 -0.274572 1.92864 3.18043 2.74864 8.24543C2.94764 9.48343 4.22664 9.85843 3.25964 11.5674C1.02864 11.0734 0.362637 9.31343 0.448637 6.96743C0.586637 3.12743 3.89764 0.440428 7.21964 0.0674279C11.4206 -0.403572 15.3636 1.61043 15.9086 5.56143C16.5216 10.0224 14.0126 14.8544 9.51964 14.5064C8.30164 14.4114 7.79164 13.8074 6.83764 13.2274Z" fill="white" /> 2187 </svg> 2188 2189 2190 </a> 2191 </div> 2192 </div> 2193 </div> 2194 2195 <div class="partner-site-container"> 2196 <div class="title">Partner sites</div> 2197 <div class="partner-site"> 2198 <div class="partner-site-links"> 2199 <a href="https://www.newhomesource.com/" target="_blank"> 2200 NewHomeSource 2201 </a> 2202 <a href="https://www.houseplans.com/" target="_blank"> 2203 Houseplans.com 2204 </a> 2205 </div> 2206 <div class="copywrite">© 2026 livabl.com</div> 2207 </div> 2208 </div> 2209 </div> 2210</div> 2211 2212 </div> 2213 2214<input id="region-route-code" name="region-route-code" type="hidden" value="us" /> 2215 2216 2217 2218
2218<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
2218 2219
2219<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script>
2219 2220
2220<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" type="text/javascript"></script>
2220 2221
2221<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/jqueryui/ui-datepicker_55.0.0.js?r=29A91640DFF916E9AD9A4B544DC7A98BBF581C91"></script>
2221 2222
2222<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/shared_55.0.0.js?r=1EC19C24B827DACF711F619FB7410F765BBC22F9"></script>
2222 2223 2224
2224<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/regionRouting_55.0.0.js?r=F06686DA05A8E9F38A89C62CB23A8AA40811724C"></script>
vendor: 2 bytes, line 2224
2224
2225<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/jqueryval_55.0.0.js?r=3254496E44CF3CAC73335EB6B7C1DCAC597CD885"></script>
vendor: 2 bytes, line 2225
2225
2226<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/jsrender_55.0.0.js?r=8B0397FCF82E5DECE203E86CA21756E84670F7F1"></script>
vendor: 2 bytes, line 2226
2226
2227<script id="tmplSearchAutoCompleteListItem" type="text/x-jsrender"> 2228 <li class="list-group-item location"> 2229 <div class="text-wrapper"> 2230 <div class="item-name">{{:ItemName}}</div> 2231 <div class="item-desc">{{:ItemDesc}}</div> 2232 </div> 2233 <input type="hidden" class="autoListItemLink" value="{{:UrlString}}"> 2234 </li> 2235</script>
2235 2236
2237<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/location_55.0.0.js?r=C5DBF7C6765B01F741229EE091A75F74E60E9F09"></script>
vendor: 2 bytes, line 2237
2237
2238<script type="text/javascript" src="https://d1hsh3wswahchu.cloudfront.net/bundles/js/homepage_55.0.0.js?r=8E134688DF4C6BB559D3A17EB7FB0FEE033F12AF"></script>
vendor: 2 bytes, line 2238
2238
2239<script type="text/javascript"> 2240 (function () { 2241 var self = {}; 2242 window["td"] = self; 2243 2244 // slider setup 2245 self.id = "td"; 2246 self.slider = $("#td .items"); 2247 self.left = $("#td .leftArrow"); 2248 self.right = $("#td .rightArrow"); 2249 self.scrolling = false; 2250 self.newDrag = false; 2251 self.dragging = false; 2252 self.totDrag = 0; 2253 self.allowClicks = true; 2254 self.atEdge; 2255 self.trans = 0; 2256 self.transAtDrag = 0; 2257 self.img = $("#td .img-slider"); 2258 self.transType = "transform"; //may need to replace with specific prefix for other platforms 2259 2260 //setup vm 2261 var vm = self.vm = {}; 2262 vm.title = ko.observable(); 2263 vm.data = ko.observable([]); 2264 vm.fDevs = []; 2265 2266 var gapBetweenSliderItems = 30; 2267 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 2268 2269 var location = bbh.location.getUserLocation(); 2270 2271 if (self.id === 'fd') { 2272 $.ajax({
2273 url: "/bbhAjax/home/slider/fd", 2274 type: "POST", 2275 dataType: "json", 2276 data: { 2277 city: encodeURI(location.City), 2278 state: encodeURI(location.State), 2279 country: encodeURI(location.Country), 2280 lat: encodeURI(location.Latitude), 2281 lng: encodeURI(location.Longitude), 2282 country: encodeURI(location.Country), 2283 routeCountry: bbh.urls.regions.GetRouteCountryCode() 2284 }, 2285 success: function (d) { 2286 vm.data(d); 2287 vm.title("Featured new home communities"); 2288 trackVisibleImpression(d); 2289 if (d.length > maxSlidersItems) { 2290 self.right.removeClass('arrow-btn-disabled'); 2291 } 2292 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 2293 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 2294 } 2295 }); 2296 } 2297 else { 2298 $.ajax({
2299 url: "/bbhAjax/home/slider/td", 2300 type: "POST", 2301 dataType: "json", 2302 data: { 2303 city: encodeURI(location.City), 2304 state: encodeURI(location.State), 2305 country: encodeURI(location.Country), 2306 routeCountry: bbh.urls.regions.GetRouteCountryCode() 2307 }, 2308 success: function (d) { 2309 vm.data(d); 2310 if (d.length > maxSlidersItems) { 2311 self.right.removeClass('arrow-btn-disabled'); 2312 } 2313 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 2314 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 2315 switch (self.id) { 2316 case "td": 2317 if (d !== undefined && d != null && d.length > 0) 2318 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 2319 break; 2320 case "pa": 2321 vm.title("Pre-launch VIP pricing access"); 2322 if (d.length > 3) { 2323 $('.more-communities-section').removeClass('nodisplay'); 2324 $('.builders-section').removeClass('section-divider'); 2325 } 2326 break; 2327 case "nh": 2328 vm.title("New homes recently added"); 2329 break; 2330 case "ps": 2331 vm.title("New communities launching soon"); 2332 break; 2333 case "mn": 2334 vm.title("Move-in-ready homes"); 2335 if (d.length > 3) { 2336 $('.more-communities-section').removeClass('nodisplay'); 2337 $('.builders-section').removeClass('section-divider'); 2338 } 2339 break; 2340 case "tb": 2341 vm.title("Top new construction builders"); 2342 break; 2343 default: 2344 break; 2345 } 2346 } 2347 }); 2348 2349 } 2350 //functions to interpret bits and bytes 2351 vm.expand = function (flags) { 2352 return { 2353 isBuyNow: flags & 1, 2354 isPreLaunch: flags & 2, 2355 isVerified: flags & 4, 2356 isFeatured: flags & 8 2357 } 2358 }; 2359 2360 vm.loc = function (item) { 2361 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 2362 } 2363 2364 vm.money = function (num) { 2365 if (isNaN(num)) return num; 2366 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 2367 }; 2368 2369 vm.priceText = function (item) { 2370 2371 var l1, l2; 2372 var oj1 = false, oj2 = false; 2373 2374 if(item.saleId !== undefined) switch (item.saleId) { 2375 case 1: l1 = "Register now"; break; 2376 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 2377 case 3: l1 = "Developer sold out"; oj1 = true; break; 2378 case 4: l1 = "Pending"; break; 2379 default: break; 2380 } 2381 2382 if (item.rentId !== undefined) switch (item.rentId) { 2383 case 1: l2 = "Register Now (Rentals)"; break; 2384 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 2385 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 2386 case 4: l2 = "Rentals Pending"; break; 2387 default: break; 2388 } 2389 2390 if (l1 !== undefined && oj1) { 2391 l1 = '<span class="oj">' + l1 + '</span>'; 2392 } 2393 if (l2 !== undefined && oj2) { 2394 l2 = '<span class="oj">' + l2 + '</span>'; 2395 } 2396 2397 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 2398 }; 2399 2400 vm.ribbonText = function (item) { 2401 var f = vm.expand(item.flags); 2402 2403 if (f.isBuyNow) return "BUY ONLINE NOW"; 2404 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 2405 return ""; 2406 } 2407 2408 vm.tagText = function (item) { 2409 var r = ""; 2410 2411 var f = vm.expand(item.flags); 2412 if (f.isFeatured) r += "FEATURED"; 2413 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 2414 2415 return r; 2416 } 2417 2418 vm.stars = function (item) { 2419 var c = false; 2420 var o = ""; 2421 for (var i = 1; i <= 5; i++) { 2422 if (i <= item.score) { 2423 o += `<span> 2424 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2425 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
242517.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 2426 </svg> 2427</span>`; 2428 } 2429 else if (item.score % 1 != 0 && !c) { 2430 o += `<span> 2431 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2432 <g clip-path="url(#clip0_3090_268795)"> 2433 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 2434 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 2435 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 2436 </mask> 2437 <g mask="url(#mask0_3090_268795)"> 2438 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 2439 </g> 2440 </g> 2441 <defs> 2442 <clipPath> 2443 <rect width="20" height="20" fill="white" /> 2444 </clipPath> 2445 </defs> 2446 </svg> 2447</span>`; 2448 c = true; 2449 } 2450 else { 2451 o += `<span> 2452 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2453 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 2454 </svg> 2455</span>`; 2456 } 2457 } 2458 2459 o += " " + item.cnt; 2460 2461 return o; 2462 } 2463 2464 vm.img = function (item) { 2465 if (self.id == "tb") { 2466 if (item.logo === undefined || item.logo == null || item.logo == "") 2467 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 2468 2469 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 2470 } 2471 else { 2472 if (item.logo === undefined || item.logo == null || item.logo == "") { 2473 return ""; 2474 } 2475 2476 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 2477 } 2478 }; 2479 2480 2481 vm.preventclick = false; 2482 2483 vm.devUrl = function (item) { 2484 return "/" + item.url; 2485 } 2486 2487 vm.trackReservedSpot = function (obj) { 2488 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 2489 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 2490 } 2491 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 2492 return true; 2493 } 2494 2495 ko.applyBindings(vm, document.getElementById("td")); 2496 2497 self.checks = function () { 2498 2499 var scrolled = $("#td .itemArea")[0].scrollLeft; 2500 2501 if (scrolled === 0) { 2502 self.left.addClass('arrow-btn-disabled'); 2503 } else { 2504 self.left.removeClass('arrow-btn-disabled'); 2505 } 2506 2507 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 2508 2509 if (scrolled >= max) { 2510 self.right.addClass('arrow-btn-disabled'); 2511 } 2512 else { 2513 self.right.removeClass('arrow-btn-disabled'); 2514 } 2515 2516 $.each(self.slider.children(), function (i, item) { 2517 isElementVisible($(item), false, false); 2518 }); 2519 } 2520 2521 // start drag 2522 self.drgS = function (event) { 2523 self.dragging = true; 2524 self.allowClicks = true; 2525 2526 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 2527 self.transAtDrag = self.trans; 2528 2529 self.totDrag = 0; 2530 } 2531 2532 2533 // move drag 2534 self.drgM = function (event) { 2535 if (!self.dragging) return false; 2536 2537 self.trans = $("#td .itemArea")[0].scrollLeft; 2538 2539 self.checks(); 2540 } 2541 2542 // end drag 2543 self.drgE = function (event) { 2544 2545 if (self.dragAtX === undefined) { 2546 return false; 2547 } 2548 2549 self.dragging = false; 2550 2551 self.checks(); 2552 } 2553 2554 // event handler 2555 self.drg = function (event) { 2556 2557 switch (event.data.action) { 2558 case 'start': 2559 self.drgS(event.originalEvent || event); 2560 break; 2561 case 'move': 2562 self.drgM(event.originalEvent || event); 2563 break; 2564 case 'end': 2565 self.drgE(event.originalEvent || event); 2566 break; 2567 } 2568 } 2569 2570 // click handler 2571 self.clickLeft = function () { 2572 var container = $("#td .itemArea"); 2573 self.trans = container[0].scrollLeft; 2574 var iw = self.slider.children().width() + gapBetweenSliderItems; 2575 var r = self.trans % iw; 2576 var pastHalf = Math.abs(r) / iw >= 0.5; 2577 2578 if (pastHalf) { 2579 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 2580 } 2581 else { 2582 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 2583 } 2584 2585 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 2586 } 2587 self.left.on('click', self.clickLeft); 2588 2589 // click handler 2590 self.clickRight = function () { 2591 var container = $("#td .itemArea"); 2592 self.trans = container[0].scrollLeft; 2593 var iw = self.slider.children().width() + gapBetweenSliderItems; 2594 var r = self.trans % iw; 2595 var pastHalf = Math.abs(r) / iw >= 0.5; 2596 2597 if (pastHalf) { 2598 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 2599 } 2600 else { 2601 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 2602 } 2603 2604 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 2605 } 2606 self.right.on('click', self.clickRight); 2607 2608 // attach slider events 2609 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 2610 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 2611 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
2612 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 2613 2614 function trackVisibleImpression(d) {//on load depending on device size we track the items 2615 var devIds = []; 2616 d.map(function (item, i) { 2617 if ($(window).width() > 768) { 2618 var num = 4; 2619 if ($(window).width() > 768 && $(window).width() < 992) { 2620 num = 3; 2621 } 2622 if (i < num) { 2623 item.imp = 1; 2624 devIds.push(item.id); 2625 } 2626 else { 2627 item.imp = 0; 2628 } 2629 } 2630 else { 2631 if (i == 0) { 2632 item.imp = 1; 2633 devIds.push(item.id); 2634 } 2635 else { 2636 item.imp = 0; 2637 } 2638 } 2639 vm.fDevs.push(item); 2640 }); 2641 2642 if (devIds.length > 0) { 2643 $.ajax({
2644 type: "POST", 2645 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 2646 data: { 2647 devIDs: devIds 2648 } 2649 }); 2650 } 2651 } 2652 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 2653 var pRect = $("#fd")[0].getBoundingClientRect(); 2654 var rect = el[0].getBoundingClientRect(); 2655 if (isClick != true) {//for drag event 2656 if (rect.right + rect.width <= pRect.right) { 2657 var id = el.next().find(".devcon").attr("dataid"); 2658 vm.fDevs.map(function (item) { 2659 if (item.id == id) { 2660 if (item.imp != 1) { 2661 item.imp = 1; 2662 $.ajax({ 2663 type: "POST", 2664 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 2665 data: { 2666 devIDs: id 2667 } 2668 }); 2669 } 2670 } 2671 2672 }); 2673 } 2674 } else {//for click on arrow 2675 if (rect.right <= pRect.right) { 2676 var id = el.next().find(".devcon").attr("dataid"); 2677 vm.fDevs.map(function (item) { 2678 if (item.id == id) { 2679 if (item.imp != 1) { 2680 item.imp = 1; 2681 $.ajax({
2682 type: "POST", 2683 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 2684 data: { 2685 devIDs: id 2686 } 2687 }); 2688 } 2689 } 2690 2691 }); 2692 } 2693 } 2694 2695 } 2696 })() 2697</script>
vendor: 2 bytes, line 2697
2697
2698<script type="text/javascript"> 2699 (function () { 2700 var self = {}; 2701 window["fd"] = self; 2702 2703 // slider setup 2704 self.id = "fd"; 2705 self.slider = $("#fd .items"); 2706 self.left = $("#fd .leftArrow"); 2707 self.right = $("#fd .rightArrow"); 2708 self.scrolling = false; 2709 self.newDrag = false; 2710 self.dragging = false; 2711 self.totDrag = 0; 2712 self.allowClicks = true; 2713 self.atEdge; 2714 self.trans = 0; 2715 self.transAtDrag = 0; 2716 self.img = $("#fd .img-slider"); 2717 self.transType = "transform"; //may need to replace with specific prefix for other platforms 2718 2719 //setup vm 2720 var vm = self.vm = {}; 2721 vm.title = ko.observable(); 2722 vm.data = ko.observable([]); 2723 vm.fDevs = []; 2724 2725 var gapBetweenSliderItems = 30; 2726 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 2727 2728 var location = bbh.location.getUserLocation(); 2729 2730 if (self.id === 'fd') { 2731 $.ajax({
2732 url: "/bbhAjax/home/slider/fd", 2733 type: "POST", 2734 dataType: "json", 2735 data: { 2736 city: encodeURI(location.City), 2737 state: encodeURI(location.State), 2738 country: encodeURI(location.Country), 2739 lat: encodeURI(location.Latitude), 2740 lng: encodeURI(location.Longitude), 2741 country: encodeURI(location.Country), 2742 routeCountry: bbh.urls.regions.GetRouteCountryCode() 2743 }, 2744 success: function (d) { 2745 vm.data(d); 2746 vm.title("Featured new home communities"); 2747 trackVisibleImpression(d); 2748 if (d.length > maxSlidersItems) { 2749 self.right.removeClass('arrow-btn-disabled'); 2750 } 2751 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 2752 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 2753 } 2754 }); 2755 } 2756 else { 2757 $.ajax({
2758 url: "/bbhAjax/home/slider/fd", 2759 type: "POST", 2760 dataType: "json", 2761 data: { 2762 city: encodeURI(location.City), 2763 state: encodeURI(location.State), 2764 country: encodeURI(location.Country), 2765 routeCountry: bbh.urls.regions.GetRouteCountryCode() 2766 }, 2767 success: function (d) { 2768 vm.data(d); 2769 if (d.length > maxSlidersItems) { 2770 self.right.removeClass('arrow-btn-disabled'); 2771 } 2772 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 2773 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 2774 switch (self.id) { 2775 case "td": 2776 if (d !== undefined && d != null && d.length > 0) 2777 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 2778 break; 2779 case "pa": 2780 vm.title("Pre-launch VIP pricing access"); 2781 if (d.length > 3) { 2782 $('.more-communities-section').removeClass('nodisplay'); 2783 $('.builders-section').removeClass('section-divider'); 2784 } 2785 break; 2786 case "nh": 2787 vm.title("New homes recently added"); 2788 break; 2789 case "ps": 2790 vm.title("New communities launching soon"); 2791 break; 2792 case "mn": 2793 vm.title("Move-in-ready homes"); 2794 if (d.length > 3) { 2795 $('.more-communities-section').removeClass('nodisplay'); 2796 $('.builders-section').removeClass('section-divider'); 2797 } 2798 break; 2799 case "tb": 2800 vm.title("Top new construction builders"); 2801 break; 2802 default: 2803 break; 2804 } 2805 } 2806 }); 2807 2808 } 2809 //functions to interpret bits and bytes 2810 vm.expand = function (flags) { 2811 return { 2812 isBuyNow: flags & 1, 2813 isPreLaunch: flags & 2, 2814 isVerified: flags & 4, 2815 isFeatured: flags & 8 2816 } 2817 }; 2818 2819 vm.loc = function (item) { 2820 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 2821 } 2822 2823 vm.money = function (num) { 2824 if (isNaN(num)) return num; 2825 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 2826 }; 2827 2828 vm.priceText = function (item) { 2829 2830 var l1, l2; 2831 var oj1 = false, oj2 = false; 2832 2833 if(item.saleId !== undefined) switch (item.saleId) { 2834 case 1: l1 = "Register now"; break; 2835 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 2836 case 3: l1 = "Developer sold out"; oj1 = true; break; 2837 case 4: l1 = "Pending"; break; 2838 default: break; 2839 } 2840 2841 if (item.rentId !== undefined) switch (item.rentId) { 2842 case 1: l2 = "Register Now (Rentals)"; break; 2843 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 2844 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 2845 case 4: l2 = "Rentals Pending"; break; 2846 default: break; 2847 } 2848 2849 if (l1 !== undefined && oj1) { 2850 l1 = '<span class="oj">' + l1 + '</span>'; 2851 } 2852 if (l2 !== undefined && oj2) { 2853 l2 = '<span class="oj">' + l2 + '</span>'; 2854 } 2855 2856 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 2857 }; 2858 2859 vm.ribbonText = function (item) { 2860 var f = vm.expand(item.flags); 2861 2862 if (f.isBuyNow) return "BUY ONLINE NOW"; 2863 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 2864 return ""; 2865 } 2866 2867 vm.tagText = function (item) { 2868 var r = ""; 2869 2870 var f = vm.expand(item.flags); 2871 if (f.isFeatured) r += "FEATURED"; 2872 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 2873 2874 return r; 2875 } 2876 2877 vm.stars = function (item) { 2878 var c = false; 2879 var o = ""; 2880 for (var i = 1; i <= 5; i++) { 2881 if (i <= item.score) { 2882 o += `<span> 2883 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2884 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
288417.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 2885 </svg> 2886</span>`; 2887 } 2888 else if (item.score % 1 != 0 && !c) { 2889 o += `<span> 2890 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2891 <g clip-path="url(#clip0_3090_268795)"> 2892 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 2893 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 2894 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 2895 </mask> 2896 <g mask="url(#mask0_3090_268795)"> 2897 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 2898 </g> 2899 </g> 2900 <defs> 2901 <clipPath> 2902 <rect width="20" height="20" fill="white" /> 2903 </clipPath> 2904 </defs> 2905 </svg> 2906</span>`; 2907 c = true; 2908 } 2909 else { 2910 o += `<span> 2911 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 2912 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 2913 </svg> 2914</span>`; 2915 } 2916 } 2917 2918 o += " " + item.cnt; 2919 2920 return o; 2921 } 2922 2923 vm.img = function (item) { 2924 if (self.id == "tb") { 2925 if (item.logo === undefined || item.logo == null || item.logo == "") 2926 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 2927 2928 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 2929 } 2930 else { 2931 if (item.logo === undefined || item.logo == null || item.logo == "") { 2932 return ""; 2933 } 2934 2935 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 2936 } 2937 }; 2938 2939 2940 vm.preventclick = false; 2941 2942 vm.devUrl = function (item) { 2943 return "/" + item.url; 2944 } 2945 2946 vm.trackReservedSpot = function (obj) { 2947 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 2948 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 2949 } 2950 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 2951 return true; 2952 } 2953 2954 ko.applyBindings(vm, document.getElementById("fd")); 2955 2956 self.checks = function () { 2957 2958 var scrolled = $("#fd .itemArea")[0].scrollLeft; 2959 2960 if (scrolled === 0) { 2961 self.left.addClass('arrow-btn-disabled'); 2962 } else { 2963 self.left.removeClass('arrow-btn-disabled'); 2964 } 2965 2966 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 2967 2968 if (scrolled >= max) { 2969 self.right.addClass('arrow-btn-disabled'); 2970 } 2971 else { 2972 self.right.removeClass('arrow-btn-disabled'); 2973 } 2974 2975 $.each(self.slider.children(), function (i, item) { 2976 isElementVisible($(item), false, false); 2977 }); 2978 } 2979 2980 // start drag 2981 self.drgS = function (event) { 2982 self.dragging = true; 2983 self.allowClicks = true; 2984 2985 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 2986 self.transAtDrag = self.trans; 2987 2988 self.totDrag = 0; 2989 } 2990 2991 2992 // move drag 2993 self.drgM = function (event) { 2994 if (!self.dragging) return false; 2995 2996 self.trans = $("#fd .itemArea")[0].scrollLeft; 2997 2998 self.checks(); 2999 } 3000 3001 // end drag 3002 self.drgE = function (event) { 3003 3004 if (self.dragAtX === undefined) { 3005 return false; 3006 } 3007 3008 self.dragging = false; 3009 3010 self.checks(); 3011 } 3012 3013 // event handler 3014 self.drg = function (event) { 3015 3016 switch (event.data.action) { 3017 case 'start': 3018 self.drgS(event.originalEvent || event); 3019 break; 3020 case 'move': 3021 self.drgM(event.originalEvent || event); 3022 break; 3023 case 'end': 3024 self.drgE(event.originalEvent || event); 3025 break; 3026 } 3027 } 3028 3029 // click handler 3030 self.clickLeft = function () { 3031 var container = $("#fd .itemArea"); 3032 self.trans = container[0].scrollLeft; 3033 var iw = self.slider.children().width() + gapBetweenSliderItems; 3034 var r = self.trans % iw; 3035 var pastHalf = Math.abs(r) / iw >= 0.5; 3036 3037 if (pastHalf) { 3038 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 3039 } 3040 else { 3041 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 3042 } 3043 3044 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 3045 } 3046 self.left.on('click', self.clickLeft); 3047 3048 // click handler 3049 self.clickRight = function () { 3050 var container = $("#fd .itemArea"); 3051 self.trans = container[0].scrollLeft; 3052 var iw = self.slider.children().width() + gapBetweenSliderItems; 3053 var r = self.trans % iw; 3054 var pastHalf = Math.abs(r) / iw >= 0.5; 3055 3056 if (pastHalf) { 3057 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 3058 } 3059 else { 3060 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 3061 } 3062 3063 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 3064 } 3065 self.right.on('click', self.clickRight); 3066 3067 // attach slider events 3068 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 3069 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 3070 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
3071 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 3072 3073 function trackVisibleImpression(d) {//on load depending on device size we track the items 3074 var devIds = []; 3075 d.map(function (item, i) { 3076 if ($(window).width() > 768) { 3077 var num = 4; 3078 if ($(window).width() > 768 && $(window).width() < 992) { 3079 num = 3; 3080 } 3081 if (i < num) { 3082 item.imp = 1; 3083 devIds.push(item.id); 3084 } 3085 else { 3086 item.imp = 0; 3087 } 3088 } 3089 else { 3090 if (i == 0) { 3091 item.imp = 1; 3092 devIds.push(item.id); 3093 } 3094 else { 3095 item.imp = 0; 3096 } 3097 } 3098 vm.fDevs.push(item); 3099 }); 3100 3101 if (devIds.length > 0) { 3102 $.ajax({
3103 type: "POST", 3104 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 3105 data: { 3106 devIDs: devIds 3107 } 3108 }); 3109 } 3110 } 3111 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 3112 var pRect = $("#fd")[0].getBoundingClientRect(); 3113 var rect = el[0].getBoundingClientRect(); 3114 if (isClick != true) {//for drag event 3115 if (rect.right + rect.width <= pRect.right) { 3116 var id = el.next().find(".devcon").attr("dataid"); 3117 vm.fDevs.map(function (item) { 3118 if (item.id == id) { 3119 if (item.imp != 1) { 3120 item.imp = 1; 3121 $.ajax({ 3122 type: "POST", 3123 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 3124 data: { 3125 devIDs: id 3126 } 3127 }); 3128 } 3129 } 3130 3131 }); 3132 } 3133 } else {//for click on arrow 3134 if (rect.right <= pRect.right) { 3135 var id = el.next().find(".devcon").attr("dataid"); 3136 vm.fDevs.map(function (item) { 3137 if (item.id == id) { 3138 if (item.imp != 1) { 3139 item.imp = 1; 3140 $.ajax({
3141 type: "POST", 3142 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 3143 data: { 3144 devIDs: id 3145 } 3146 }); 3147 } 3148 } 3149 3150 }); 3151 } 3152 } 3153 3154 } 3155 })() 3156</script>
vendor: 2 bytes, line 3156
3156
3157<script type="text/javascript"> 3158 (function () { 3159 var self = {}; 3160 window["nh"] = self; 3161 3162 // slider setup 3163 self.id = "nh"; 3164 self.slider = $("#nh .items"); 3165 self.left = $("#nh .leftArrow"); 3166 self.right = $("#nh .rightArrow"); 3167 self.scrolling = false; 3168 self.newDrag = false; 3169 self.dragging = false; 3170 self.totDrag = 0; 3171 self.allowClicks = true; 3172 self.atEdge; 3173 self.trans = 0; 3174 self.transAtDrag = 0; 3175 self.img = $("#nh .img-slider"); 3176 self.transType = "transform"; //may need to replace with specific prefix for other platforms 3177 3178 //setup vm 3179 var vm = self.vm = {}; 3180 vm.title = ko.observable(); 3181 vm.data = ko.observable([]); 3182 vm.fDevs = []; 3183 3184 var gapBetweenSliderItems = 30; 3185 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 3186 3187 var location = bbh.location.getUserLocation(); 3188 3189 if (self.id === 'fd') { 3190 $.ajax({
3191 url: "/bbhAjax/home/slider/fd", 3192 type: "POST", 3193 dataType: "json", 3194 data: { 3195 city: encodeURI(location.City), 3196 state: encodeURI(location.State), 3197 country: encodeURI(location.Country), 3198 lat: encodeURI(location.Latitude), 3199 lng: encodeURI(location.Longitude), 3200 country: encodeURI(location.Country), 3201 routeCountry: bbh.urls.regions.GetRouteCountryCode() 3202 }, 3203 success: function (d) { 3204 vm.data(d); 3205 vm.title("Featured new home communities"); 3206 trackVisibleImpression(d); 3207 if (d.length > maxSlidersItems) { 3208 self.right.removeClass('arrow-btn-disabled'); 3209 } 3210 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 3211 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 3212 } 3213 }); 3214 } 3215 else { 3216 $.ajax({
3217 url: "/bbhAjax/home/slider/nh", 3218 type: "POST", 3219 dataType: "json", 3220 data: { 3221 city: encodeURI(location.City), 3222 state: encodeURI(location.State), 3223 country: encodeURI(location.Country), 3224 routeCountry: bbh.urls.regions.GetRouteCountryCode() 3225 }, 3226 success: function (d) { 3227 vm.data(d); 3228 if (d.length > maxSlidersItems) { 3229 self.right.removeClass('arrow-btn-disabled'); 3230 } 3231 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 3232 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 3233 switch (self.id) { 3234 case "td": 3235 if (d !== undefined && d != null && d.length > 0) 3236 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 3237 break; 3238 case "pa": 3239 vm.title("Pre-launch VIP pricing access"); 3240 if (d.length > 3) { 3241 $('.more-communities-section').removeClass('nodisplay'); 3242 $('.builders-section').removeClass('section-divider'); 3243 } 3244 break; 3245 case "nh": 3246 vm.title("New homes recently added"); 3247 break; 3248 case "ps": 3249 vm.title("New communities launching soon"); 3250 break; 3251 case "mn": 3252 vm.title("Move-in-ready homes"); 3253 if (d.length > 3) { 3254 $('.more-communities-section').removeClass('nodisplay'); 3255 $('.builders-section').removeClass('section-divider'); 3256 } 3257 break; 3258 case "tb": 3259 vm.title("Top new construction builders"); 3260 break; 3261 default: 3262 break; 3263 } 3264 } 3265 }); 3266 3267 } 3268 //functions to interpret bits and bytes 3269 vm.expand = function (flags) { 3270 return { 3271 isBuyNow: flags & 1, 3272 isPreLaunch: flags & 2, 3273 isVerified: flags & 4, 3274 isFeatured: flags & 8 3275 } 3276 }; 3277 3278 vm.loc = function (item) { 3279 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 3280 } 3281 3282 vm.money = function (num) { 3283 if (isNaN(num)) return num; 3284 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 3285 }; 3286 3287 vm.priceText = function (item) { 3288 3289 var l1, l2; 3290 var oj1 = false, oj2 = false; 3291 3292 if(item.saleId !== undefined) switch (item.saleId) { 3293 case 1: l1 = "Register now"; break; 3294 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 3295 case 3: l1 = "Developer sold out"; oj1 = true; break; 3296 case 4: l1 = "Pending"; break; 3297 default: break; 3298 } 3299 3300 if (item.rentId !== undefined) switch (item.rentId) { 3301 case 1: l2 = "Register Now (Rentals)"; break; 3302 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 3303 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 3304 case 4: l2 = "Rentals Pending"; break; 3305 default: break; 3306 } 3307 3308 if (l1 !== undefined && oj1) { 3309 l1 = '<span class="oj">' + l1 + '</span>'; 3310 } 3311 if (l2 !== undefined && oj2) { 3312 l2 = '<span class="oj">' + l2 + '</span>'; 3313 } 3314 3315 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 3316 }; 3317 3318 vm.ribbonText = function (item) { 3319 var f = vm.expand(item.flags); 3320 3321 if (f.isBuyNow) return "BUY ONLINE NOW"; 3322 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 3323 return ""; 3324 } 3325 3326 vm.tagText = function (item) { 3327 var r = ""; 3328 3329 var f = vm.expand(item.flags); 3330 if (f.isFeatured) r += "FEATURED"; 3331 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 3332 3333 return r; 3334 } 3335 3336 vm.stars = function (item) { 3337 var c = false; 3338 var o = ""; 3339 for (var i = 1; i <= 5; i++) { 3340 if (i <= item.score) { 3341 o += `<span> 3342 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 3343 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
334317.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 3344 </svg> 3345</span>`; 3346 } 3347 else if (item.score % 1 != 0 && !c) { 3348 o += `<span> 3349 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 3350 <g clip-path="url(#clip0_3090_268795)"> 3351 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 3352 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 3353 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 3354 </mask> 3355 <g mask="url(#mask0_3090_268795)"> 3356 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 3357 </g> 3358 </g> 3359 <defs> 3360 <clipPath> 3361 <rect width="20" height="20" fill="white" /> 3362 </clipPath> 3363 </defs> 3364 </svg> 3365</span>`; 3366 c = true; 3367 } 3368 else { 3369 o += `<span> 3370 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 3371 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 3372 </svg> 3373</span>`; 3374 } 3375 } 3376 3377 o += " " + item.cnt; 3378 3379 return o; 3380 } 3381 3382 vm.img = function (item) { 3383 if (self.id == "tb") { 3384 if (item.logo === undefined || item.logo == null || item.logo == "") 3385 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 3386 3387 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 3388 } 3389 else { 3390 if (item.logo === undefined || item.logo == null || item.logo == "") { 3391 return ""; 3392 } 3393 3394 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 3395 } 3396 }; 3397 3398 3399 vm.preventclick = false; 3400 3401 vm.devUrl = function (item) { 3402 return "/" + item.url; 3403 } 3404 3405 vm.trackReservedSpot = function (obj) { 3406 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 3407 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 3408 } 3409 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 3410 return true; 3411 } 3412 3413 ko.applyBindings(vm, document.getElementById("nh")); 3414 3415 self.checks = function () { 3416 3417 var scrolled = $("#nh .itemArea")[0].scrollLeft; 3418 3419 if (scrolled === 0) { 3420 self.left.addClass('arrow-btn-disabled'); 3421 } else { 3422 self.left.removeClass('arrow-btn-disabled'); 3423 } 3424 3425 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 3426 3427 if (scrolled >= max) { 3428 self.right.addClass('arrow-btn-disabled'); 3429 } 3430 else { 3431 self.right.removeClass('arrow-btn-disabled'); 3432 } 3433 3434 $.each(self.slider.children(), function (i, item) { 3435 isElementVisible($(item), false, false); 3436 }); 3437 } 3438 3439 // start drag 3440 self.drgS = function (event) { 3441 self.dragging = true; 3442 self.allowClicks = true; 3443 3444 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 3445 self.transAtDrag = self.trans; 3446 3447 self.totDrag = 0; 3448 } 3449 3450 3451 // move drag 3452 self.drgM = function (event) { 3453 if (!self.dragging) return false; 3454 3455 self.trans = $("#nh .itemArea")[0].scrollLeft; 3456 3457 self.checks(); 3458 } 3459 3460 // end drag 3461 self.drgE = function (event) { 3462 3463 if (self.dragAtX === undefined) { 3464 return false; 3465 } 3466 3467 self.dragging = false; 3468 3469 self.checks(); 3470 } 3471 3472 // event handler 3473 self.drg = function (event) { 3474 3475 switch (event.data.action) { 3476 case 'start': 3477 self.drgS(event.originalEvent || event); 3478 break; 3479 case 'move': 3480 self.drgM(event.originalEvent || event); 3481 break; 3482 case 'end': 3483 self.drgE(event.originalEvent || event); 3484 break; 3485 } 3486 } 3487 3488 // click handler 3489 self.clickLeft = function () { 3490 var container = $("#nh .itemArea"); 3491 self.trans = container[0].scrollLeft; 3492 var iw = self.slider.children().width() + gapBetweenSliderItems; 3493 var r = self.trans % iw; 3494 var pastHalf = Math.abs(r) / iw >= 0.5; 3495 3496 if (pastHalf) { 3497 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 3498 } 3499 else { 3500 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 3501 } 3502 3503 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 3504 } 3505 self.left.on('click', self.clickLeft); 3506 3507 // click handler 3508 self.clickRight = function () { 3509 var container = $("#nh .itemArea"); 3510 self.trans = container[0].scrollLeft; 3511 var iw = self.slider.children().width() + gapBetweenSliderItems; 3512 var r = self.trans % iw; 3513 var pastHalf = Math.abs(r) / iw >= 0.5; 3514 3515 if (pastHalf) { 3516 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 3517 } 3518 else { 3519 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 3520 } 3521 3522 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 3523 } 3524 self.right.on('click', self.clickRight); 3525 3526 // attach slider events 3527 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 3528 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 3529 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
3530 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 3531 3532 function trackVisibleImpression(d) {//on load depending on device size we track the items 3533 var devIds = []; 3534 d.map(function (item, i) { 3535 if ($(window).width() > 768) { 3536 var num = 4; 3537 if ($(window).width() > 768 && $(window).width() < 992) { 3538 num = 3; 3539 } 3540 if (i < num) { 3541 item.imp = 1; 3542 devIds.push(item.id); 3543 } 3544 else { 3545 item.imp = 0; 3546 } 3547 } 3548 else { 3549 if (i == 0) { 3550 item.imp = 1; 3551 devIds.push(item.id); 3552 } 3553 else { 3554 item.imp = 0; 3555 } 3556 } 3557 vm.fDevs.push(item); 3558 }); 3559 3560 if (devIds.length > 0) { 3561 $.ajax({
3562 type: "POST", 3563 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 3564 data: { 3565 devIDs: devIds 3566 } 3567 }); 3568 } 3569 } 3570 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 3571 var pRect = $("#fd")[0].getBoundingClientRect(); 3572 var rect = el[0].getBoundingClientRect(); 3573 if (isClick != true) {//for drag event 3574 if (rect.right + rect.width <= pRect.right) { 3575 var id = el.next().find(".devcon").attr("dataid"); 3576 vm.fDevs.map(function (item) { 3577 if (item.id == id) { 3578 if (item.imp != 1) { 3579 item.imp = 1; 3580 $.ajax({ 3581 type: "POST", 3582 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 3583 data: { 3584 devIDs: id 3585 } 3586 }); 3587 } 3588 } 3589 3590 }); 3591 } 3592 } else {//for click on arrow 3593 if (rect.right <= pRect.right) { 3594 var id = el.next().find(".devcon").attr("dataid"); 3595 vm.fDevs.map(function (item) { 3596 if (item.id == id) { 3597 if (item.imp != 1) { 3598 item.imp = 1; 3599 $.ajax({
3600 type: "POST", 3601 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 3602 data: { 3603 devIDs: id 3604 } 3605 }); 3606 } 3607 } 3608 3609 }); 3610 } 3611 } 3612 3613 } 3614 })() 3615</script>
vendor: 2 bytes, line 3615
3615
3616<script type="text/javascript"> 3617 (function () { 3618 var self = {}; 3619 window["ps"] = self; 3620 3621 // slider setup 3622 self.id = "ps"; 3623 self.slider = $("#ps .items"); 3624 self.left = $("#ps .leftArrow"); 3625 self.right = $("#ps .rightArrow"); 3626 self.scrolling = false; 3627 self.newDrag = false; 3628 self.dragging = false; 3629 self.totDrag = 0; 3630 self.allowClicks = true; 3631 self.atEdge; 3632 self.trans = 0; 3633 self.transAtDrag = 0; 3634 self.img = $("#ps .img-slider"); 3635 self.transType = "transform"; //may need to replace with specific prefix for other platforms 3636 3637 //setup vm 3638 var vm = self.vm = {}; 3639 vm.title = ko.observable(); 3640 vm.data = ko.observable([]); 3641 vm.fDevs = []; 3642 3643 var gapBetweenSliderItems = 30; 3644 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 3645 3646 var location = bbh.location.getUserLocation(); 3647 3648 if (self.id === 'fd') { 3649 $.ajax({
3650 url: "/bbhAjax/home/slider/fd", 3651 type: "POST", 3652 dataType: "json", 3653 data: { 3654 city: encodeURI(location.City), 3655 state: encodeURI(location.State), 3656 country: encodeURI(location.Country), 3657 lat: encodeURI(location.Latitude), 3658 lng: encodeURI(location.Longitude), 3659 country: encodeURI(location.Country), 3660 routeCountry: bbh.urls.regions.GetRouteCountryCode() 3661 }, 3662 success: function (d) { 3663 vm.data(d); 3664 vm.title("Featured new home communities"); 3665 trackVisibleImpression(d); 3666 if (d.length > maxSlidersItems) { 3667 self.right.removeClass('arrow-btn-disabled'); 3668 } 3669 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 3670 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 3671 } 3672 }); 3673 } 3674 else { 3675 $.ajax({
3676 url: "/bbhAjax/home/slider/ps", 3677 type: "POST", 3678 dataType: "json", 3679 data: { 3680 city: encodeURI(location.City), 3681 state: encodeURI(location.State), 3682 country: encodeURI(location.Country), 3683 routeCountry: bbh.urls.regions.GetRouteCountryCode() 3684 }, 3685 success: function (d) { 3686 vm.data(d); 3687 if (d.length > maxSlidersItems) { 3688 self.right.removeClass('arrow-btn-disabled'); 3689 } 3690 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 3691 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 3692 switch (self.id) { 3693 case "td": 3694 if (d !== undefined && d != null && d.length > 0) 3695 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 3696 break; 3697 case "pa": 3698 vm.title("Pre-launch VIP pricing access"); 3699 if (d.length > 3) { 3700 $('.more-communities-section').removeClass('nodisplay'); 3701 $('.builders-section').removeClass('section-divider'); 3702 } 3703 break; 3704 case "nh": 3705 vm.title("New homes recently added"); 3706 break; 3707 case "ps": 3708 vm.title("New communities launching soon"); 3709 break; 3710 case "mn": 3711 vm.title("Move-in-ready homes"); 3712 if (d.length > 3) { 3713 $('.more-communities-section').removeClass('nodisplay'); 3714 $('.builders-section').removeClass('section-divider'); 3715 } 3716 break; 3717 case "tb": 3718 vm.title("Top new construction builders"); 3719 break; 3720 default: 3721 break; 3722 } 3723 } 3724 }); 3725 3726 } 3727 //functions to interpret bits and bytes 3728 vm.expand = function (flags) { 3729 return { 3730 isBuyNow: flags & 1, 3731 isPreLaunch: flags & 2, 3732 isVerified: flags & 4, 3733 isFeatured: flags & 8 3734 } 3735 }; 3736 3737 vm.loc = function (item) { 3738 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 3739 } 3740 3741 vm.money = function (num) { 3742 if (isNaN(num)) return num; 3743 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 3744 }; 3745 3746 vm.priceText = function (item) { 3747 3748 var l1, l2; 3749 var oj1 = false, oj2 = false; 3750 3751 if(item.saleId !== undefined) switch (item.saleId) { 3752 case 1: l1 = "Register now"; break; 3753 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 3754 case 3: l1 = "Developer sold out"; oj1 = true; break; 3755 case 4: l1 = "Pending"; break; 3756 default: break; 3757 } 3758 3759 if (item.rentId !== undefined) switch (item.rentId) { 3760 case 1: l2 = "Register Now (Rentals)"; break; 3761 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 3762 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 3763 case 4: l2 = "Rentals Pending"; break; 3764 default: break; 3765 } 3766 3767 if (l1 !== undefined && oj1) { 3768 l1 = '<span class="oj">' + l1 + '</span>'; 3769 } 3770 if (l2 !== undefined && oj2) { 3771 l2 = '<span class="oj">' + l2 + '</span>'; 3772 } 3773 3774 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 3775 }; 3776 3777 vm.ribbonText = function (item) { 3778 var f = vm.expand(item.flags); 3779 3780 if (f.isBuyNow) return "BUY ONLINE NOW"; 3781 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 3782 return ""; 3783 } 3784 3785 vm.tagText = function (item) { 3786 var r = ""; 3787 3788 var f = vm.expand(item.flags); 3789 if (f.isFeatured) r += "FEATURED"; 3790 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 3791 3792 return r; 3793 } 3794 3795 vm.stars = function (item) { 3796 var c = false; 3797 var o = ""; 3798 for (var i = 1; i <= 5; i++) { 3799 if (i <= item.score) { 3800 o += `<span> 3801 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 3802 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
380217.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 3803 </svg> 3804</span>`; 3805 } 3806 else if (item.score % 1 != 0 && !c) { 3807 o += `<span> 3808 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 3809 <g clip-path="url(#clip0_3090_268795)"> 3810 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 3811 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 3812 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 3813 </mask> 3814 <g mask="url(#mask0_3090_268795)"> 3815 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 3816 </g> 3817 </g> 3818 <defs> 3819 <clipPath> 3820 <rect width="20" height="20" fill="white" /> 3821 </clipPath> 3822 </defs> 3823 </svg> 3824</span>`; 3825 c = true; 3826 } 3827 else { 3828 o += `<span> 3829 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 3830 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 3831 </svg> 3832</span>`; 3833 } 3834 } 3835 3836 o += " " + item.cnt; 3837 3838 return o; 3839 } 3840 3841 vm.img = function (item) { 3842 if (self.id == "tb") { 3843 if (item.logo === undefined || item.logo == null || item.logo == "") 3844 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 3845 3846 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 3847 } 3848 else { 3849 if (item.logo === undefined || item.logo == null || item.logo == "") { 3850 return ""; 3851 } 3852 3853 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 3854 } 3855 }; 3856 3857 3858 vm.preventclick = false; 3859 3860 vm.devUrl = function (item) { 3861 return "/" + item.url; 3862 } 3863 3864 vm.trackReservedSpot = function (obj) { 3865 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 3866 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 3867 } 3868 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 3869 return true; 3870 } 3871 3872 ko.applyBindings(vm, document.getElementById("ps")); 3873 3874 self.checks = function () { 3875 3876 var scrolled = $("#ps .itemArea")[0].scrollLeft; 3877 3878 if (scrolled === 0) { 3879 self.left.addClass('arrow-btn-disabled'); 3880 } else { 3881 self.left.removeClass('arrow-btn-disabled'); 3882 } 3883 3884 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 3885 3886 if (scrolled >= max) { 3887 self.right.addClass('arrow-btn-disabled'); 3888 } 3889 else { 3890 self.right.removeClass('arrow-btn-disabled'); 3891 } 3892 3893 $.each(self.slider.children(), function (i, item) { 3894 isElementVisible($(item), false, false); 3895 }); 3896 } 3897 3898 // start drag 3899 self.drgS = function (event) { 3900 self.dragging = true; 3901 self.allowClicks = true; 3902 3903 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 3904 self.transAtDrag = self.trans; 3905 3906 self.totDrag = 0; 3907 } 3908 3909 3910 // move drag 3911 self.drgM = function (event) { 3912 if (!self.dragging) return false; 3913 3914 self.trans = $("#ps .itemArea")[0].scrollLeft; 3915 3916 self.checks(); 3917 } 3918 3919 // end drag 3920 self.drgE = function (event) { 3921 3922 if (self.dragAtX === undefined) { 3923 return false; 3924 } 3925 3926 self.dragging = false; 3927 3928 self.checks(); 3929 } 3930 3931 // event handler 3932 self.drg = function (event) { 3933 3934 switch (event.data.action) { 3935 case 'start': 3936 self.drgS(event.originalEvent || event); 3937 break; 3938 case 'move': 3939 self.drgM(event.originalEvent || event); 3940 break; 3941 case 'end': 3942 self.drgE(event.originalEvent || event); 3943 break; 3944 } 3945 } 3946 3947 // click handler 3948 self.clickLeft = function () { 3949 var container = $("#ps .itemArea"); 3950 self.trans = container[0].scrollLeft; 3951 var iw = self.slider.children().width() + gapBetweenSliderItems; 3952 var r = self.trans % iw; 3953 var pastHalf = Math.abs(r) / iw >= 0.5; 3954 3955 if (pastHalf) { 3956 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 3957 } 3958 else { 3959 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 3960 } 3961 3962 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 3963 } 3964 self.left.on('click', self.clickLeft); 3965 3966 // click handler 3967 self.clickRight = function () { 3968 var container = $("#ps .itemArea"); 3969 self.trans = container[0].scrollLeft; 3970 var iw = self.slider.children().width() + gapBetweenSliderItems; 3971 var r = self.trans % iw; 3972 var pastHalf = Math.abs(r) / iw >= 0.5; 3973 3974 if (pastHalf) { 3975 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 3976 } 3977 else { 3978 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 3979 } 3980 3981 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 3982 } 3983 self.right.on('click', self.clickRight); 3984 3985 // attach slider events 3986 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 3987 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 3988 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
3989 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 3990 3991 function trackVisibleImpression(d) {//on load depending on device size we track the items 3992 var devIds = []; 3993 d.map(function (item, i) { 3994 if ($(window).width() > 768) { 3995 var num = 4; 3996 if ($(window).width() > 768 && $(window).width() < 992) { 3997 num = 3; 3998 } 3999 if (i < num) { 4000 item.imp = 1; 4001 devIds.push(item.id); 4002 } 4003 else { 4004 item.imp = 0; 4005 } 4006 } 4007 else { 4008 if (i == 0) { 4009 item.imp = 1; 4010 devIds.push(item.id); 4011 } 4012 else { 4013 item.imp = 0; 4014 } 4015 } 4016 vm.fDevs.push(item); 4017 }); 4018 4019 if (devIds.length > 0) { 4020 $.ajax({
4021 type: "POST", 4022 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4023 data: { 4024 devIDs: devIds 4025 } 4026 }); 4027 } 4028 } 4029 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 4030 var pRect = $("#fd")[0].getBoundingClientRect(); 4031 var rect = el[0].getBoundingClientRect(); 4032 if (isClick != true) {//for drag event 4033 if (rect.right + rect.width <= pRect.right) { 4034 var id = el.next().find(".devcon").attr("dataid"); 4035 vm.fDevs.map(function (item) { 4036 if (item.id == id) { 4037 if (item.imp != 1) { 4038 item.imp = 1; 4039 $.ajax({ 4040 type: "POST", 4041 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4042 data: { 4043 devIDs: id 4044 } 4045 }); 4046 } 4047 } 4048 4049 }); 4050 } 4051 } else {//for click on arrow 4052 if (rect.right <= pRect.right) { 4053 var id = el.next().find(".devcon").attr("dataid"); 4054 vm.fDevs.map(function (item) { 4055 if (item.id == id) { 4056 if (item.imp != 1) { 4057 item.imp = 1; 4058 $.ajax({
4059 type: "POST", 4060 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4061 data: { 4062 devIDs: id 4063 } 4064 }); 4065 } 4066 } 4067 4068 }); 4069 } 4070 } 4071 4072 } 4073 })() 4074</script>
vendor: 2 bytes, line 4074
4074
4075<script type="text/javascript"> 4076 (function () { 4077 var self = {}; 4078 window["mn"] = self; 4079 4080 // slider setup 4081 self.id = "mn"; 4082 self.slider = $("#mn .items"); 4083 self.left = $("#mn .leftArrow"); 4084 self.right = $("#mn .rightArrow"); 4085 self.scrolling = false; 4086 self.newDrag = false; 4087 self.dragging = false; 4088 self.totDrag = 0; 4089 self.allowClicks = true; 4090 self.atEdge; 4091 self.trans = 0; 4092 self.transAtDrag = 0; 4093 self.img = $("#mn .img-slider"); 4094 self.transType = "transform"; //may need to replace with specific prefix for other platforms 4095 4096 //setup vm 4097 var vm = self.vm = {}; 4098 vm.title = ko.observable(); 4099 vm.data = ko.observable([]); 4100 vm.fDevs = []; 4101 4102 var gapBetweenSliderItems = 30; 4103 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 4104 4105 var location = bbh.location.getUserLocation(); 4106 4107 if (self.id === 'fd') { 4108 $.ajax({
4109 url: "/bbhAjax/home/slider/fd", 4110 type: "POST", 4111 dataType: "json", 4112 data: { 4113 city: encodeURI(location.City), 4114 state: encodeURI(location.State), 4115 country: encodeURI(location.Country), 4116 lat: encodeURI(location.Latitude), 4117 lng: encodeURI(location.Longitude), 4118 country: encodeURI(location.Country), 4119 routeCountry: bbh.urls.regions.GetRouteCountryCode() 4120 }, 4121 success: function (d) { 4122 vm.data(d); 4123 vm.title("Featured new home communities"); 4124 trackVisibleImpression(d); 4125 if (d.length > maxSlidersItems) { 4126 self.right.removeClass('arrow-btn-disabled'); 4127 } 4128 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 4129 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 4130 } 4131 }); 4132 } 4133 else { 4134 $.ajax({
4135 url: "/bbhAjax/home/slider/mn", 4136 type: "POST", 4137 dataType: "json", 4138 data: { 4139 city: encodeURI(location.City), 4140 state: encodeURI(location.State), 4141 country: encodeURI(location.Country), 4142 routeCountry: bbh.urls.regions.GetRouteCountryCode() 4143 }, 4144 success: function (d) { 4145 vm.data(d); 4146 if (d.length > maxSlidersItems) { 4147 self.right.removeClass('arrow-btn-disabled'); 4148 } 4149 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 4150 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 4151 switch (self.id) { 4152 case "td": 4153 if (d !== undefined && d != null && d.length > 0) 4154 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 4155 break; 4156 case "pa": 4157 vm.title("Pre-launch VIP pricing access"); 4158 if (d.length > 3) { 4159 $('.more-communities-section').removeClass('nodisplay'); 4160 $('.builders-section').removeClass('section-divider'); 4161 } 4162 break; 4163 case "nh": 4164 vm.title("New homes recently added"); 4165 break; 4166 case "ps": 4167 vm.title("New communities launching soon"); 4168 break; 4169 case "mn": 4170 vm.title("Move-in-ready homes"); 4171 if (d.length > 3) { 4172 $('.more-communities-section').removeClass('nodisplay'); 4173 $('.builders-section').removeClass('section-divider'); 4174 } 4175 break; 4176 case "tb": 4177 vm.title("Top new construction builders"); 4178 break; 4179 default: 4180 break; 4181 } 4182 } 4183 }); 4184 4185 } 4186 //functions to interpret bits and bytes 4187 vm.expand = function (flags) { 4188 return { 4189 isBuyNow: flags & 1, 4190 isPreLaunch: flags & 2, 4191 isVerified: flags & 4, 4192 isFeatured: flags & 8 4193 } 4194 }; 4195 4196 vm.loc = function (item) { 4197 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 4198 } 4199 4200 vm.money = function (num) { 4201 if (isNaN(num)) return num; 4202 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 4203 }; 4204 4205 vm.priceText = function (item) { 4206 4207 var l1, l2; 4208 var oj1 = false, oj2 = false; 4209 4210 if(item.saleId !== undefined) switch (item.saleId) { 4211 case 1: l1 = "Register now"; break; 4212 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 4213 case 3: l1 = "Developer sold out"; oj1 = true; break; 4214 case 4: l1 = "Pending"; break; 4215 default: break; 4216 } 4217 4218 if (item.rentId !== undefined) switch (item.rentId) { 4219 case 1: l2 = "Register Now (Rentals)"; break; 4220 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 4221 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 4222 case 4: l2 = "Rentals Pending"; break; 4223 default: break; 4224 } 4225 4226 if (l1 !== undefined && oj1) { 4227 l1 = '<span class="oj">' + l1 + '</span>'; 4228 } 4229 if (l2 !== undefined && oj2) { 4230 l2 = '<span class="oj">' + l2 + '</span>'; 4231 } 4232 4233 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 4234 }; 4235 4236 vm.ribbonText = function (item) { 4237 var f = vm.expand(item.flags); 4238 4239 if (f.isBuyNow) return "BUY ONLINE NOW"; 4240 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 4241 return ""; 4242 } 4243 4244 vm.tagText = function (item) { 4245 var r = ""; 4246 4247 var f = vm.expand(item.flags); 4248 if (f.isFeatured) r += "FEATURED"; 4249 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 4250 4251 return r; 4252 } 4253 4254 vm.stars = function (item) { 4255 var c = false; 4256 var o = ""; 4257 for (var i = 1; i <= 5; i++) { 4258 if (i <= item.score) { 4259 o += `<span> 4260 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 4261 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
426117.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 4262 </svg> 4263</span>`; 4264 } 4265 else if (item.score % 1 != 0 && !c) { 4266 o += `<span> 4267 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 4268 <g clip-path="url(#clip0_3090_268795)"> 4269 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 4270 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 4271 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 4272 </mask> 4273 <g mask="url(#mask0_3090_268795)"> 4274 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 4275 </g> 4276 </g> 4277 <defs> 4278 <clipPath> 4279 <rect width="20" height="20" fill="white" /> 4280 </clipPath> 4281 </defs> 4282 </svg> 4283</span>`; 4284 c = true; 4285 } 4286 else { 4287 o += `<span> 4288 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 4289 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 4290 </svg> 4291</span>`; 4292 } 4293 } 4294 4295 o += " " + item.cnt; 4296 4297 return o; 4298 } 4299 4300 vm.img = function (item) { 4301 if (self.id == "tb") { 4302 if (item.logo === undefined || item.logo == null || item.logo == "") 4303 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 4304 4305 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 4306 } 4307 else { 4308 if (item.logo === undefined || item.logo == null || item.logo == "") { 4309 return ""; 4310 } 4311 4312 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 4313 } 4314 }; 4315 4316 4317 vm.preventclick = false; 4318 4319 vm.devUrl = function (item) { 4320 return "/" + item.url; 4321 } 4322 4323 vm.trackReservedSpot = function (obj) { 4324 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 4325 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 4326 } 4327 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 4328 return true; 4329 } 4330 4331 ko.applyBindings(vm, document.getElementById("mn")); 4332 4333 self.checks = function () { 4334 4335 var scrolled = $("#mn .itemArea")[0].scrollLeft; 4336 4337 if (scrolled === 0) { 4338 self.left.addClass('arrow-btn-disabled'); 4339 } else { 4340 self.left.removeClass('arrow-btn-disabled'); 4341 } 4342 4343 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 4344 4345 if (scrolled >= max) { 4346 self.right.addClass('arrow-btn-disabled'); 4347 } 4348 else { 4349 self.right.removeClass('arrow-btn-disabled'); 4350 } 4351 4352 $.each(self.slider.children(), function (i, item) { 4353 isElementVisible($(item), false, false); 4354 }); 4355 } 4356 4357 // start drag 4358 self.drgS = function (event) { 4359 self.dragging = true; 4360 self.allowClicks = true; 4361 4362 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 4363 self.transAtDrag = self.trans; 4364 4365 self.totDrag = 0; 4366 } 4367 4368 4369 // move drag 4370 self.drgM = function (event) { 4371 if (!self.dragging) return false; 4372 4373 self.trans = $("#mn .itemArea")[0].scrollLeft; 4374 4375 self.checks(); 4376 } 4377 4378 // end drag 4379 self.drgE = function (event) { 4380 4381 if (self.dragAtX === undefined) { 4382 return false; 4383 } 4384 4385 self.dragging = false; 4386 4387 self.checks(); 4388 } 4389 4390 // event handler 4391 self.drg = function (event) { 4392 4393 switch (event.data.action) { 4394 case 'start': 4395 self.drgS(event.originalEvent || event); 4396 break; 4397 case 'move': 4398 self.drgM(event.originalEvent || event); 4399 break; 4400 case 'end': 4401 self.drgE(event.originalEvent || event); 4402 break; 4403 } 4404 } 4405 4406 // click handler 4407 self.clickLeft = function () { 4408 var container = $("#mn .itemArea"); 4409 self.trans = container[0].scrollLeft; 4410 var iw = self.slider.children().width() + gapBetweenSliderItems; 4411 var r = self.trans % iw; 4412 var pastHalf = Math.abs(r) / iw >= 0.5; 4413 4414 if (pastHalf) { 4415 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 4416 } 4417 else { 4418 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 4419 } 4420 4421 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 4422 } 4423 self.left.on('click', self.clickLeft); 4424 4425 // click handler 4426 self.clickRight = function () { 4427 var container = $("#mn .itemArea"); 4428 self.trans = container[0].scrollLeft; 4429 var iw = self.slider.children().width() + gapBetweenSliderItems; 4430 var r = self.trans % iw; 4431 var pastHalf = Math.abs(r) / iw >= 0.5; 4432 4433 if (pastHalf) { 4434 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 4435 } 4436 else { 4437 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 4438 } 4439 4440 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 4441 } 4442 self.right.on('click', self.clickRight); 4443 4444 // attach slider events 4445 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 4446 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 4447 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
4448 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 4449 4450 function trackVisibleImpression(d) {//on load depending on device size we track the items 4451 var devIds = []; 4452 d.map(function (item, i) { 4453 if ($(window).width() > 768) { 4454 var num = 4; 4455 if ($(window).width() > 768 && $(window).width() < 992) { 4456 num = 3; 4457 } 4458 if (i < num) { 4459 item.imp = 1; 4460 devIds.push(item.id); 4461 } 4462 else { 4463 item.imp = 0; 4464 } 4465 } 4466 else { 4467 if (i == 0) { 4468 item.imp = 1; 4469 devIds.push(item.id); 4470 } 4471 else { 4472 item.imp = 0; 4473 } 4474 } 4475 vm.fDevs.push(item); 4476 }); 4477 4478 if (devIds.length > 0) { 4479 $.ajax({
4480 type: "POST", 4481 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4482 data: { 4483 devIDs: devIds 4484 } 4485 }); 4486 } 4487 } 4488 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 4489 var pRect = $("#fd")[0].getBoundingClientRect(); 4490 var rect = el[0].getBoundingClientRect(); 4491 if (isClick != true) {//for drag event 4492 if (rect.right + rect.width <= pRect.right) { 4493 var id = el.next().find(".devcon").attr("dataid"); 4494 vm.fDevs.map(function (item) { 4495 if (item.id == id) { 4496 if (item.imp != 1) { 4497 item.imp = 1; 4498 $.ajax({ 4499 type: "POST", 4500 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4501 data: { 4502 devIDs: id 4503 } 4504 }); 4505 } 4506 } 4507 4508 }); 4509 } 4510 } else {//for click on arrow 4511 if (rect.right <= pRect.right) { 4512 var id = el.next().find(".devcon").attr("dataid"); 4513 vm.fDevs.map(function (item) { 4514 if (item.id == id) { 4515 if (item.imp != 1) { 4516 item.imp = 1; 4517 $.ajax({
4518 type: "POST", 4519 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4520 data: { 4521 devIDs: id 4522 } 4523 }); 4524 } 4525 } 4526 4527 }); 4528 } 4529 } 4530 4531 } 4532 })() 4533</script>
vendor: 2 bytes, line 4533
4533
4534<script type="text/javascript"> 4535 (function () { 4536 var self = {}; 4537 window["pa"] = self; 4538 4539 // slider setup 4540 self.id = "pa"; 4541 self.slider = $("#pa .items"); 4542 self.left = $("#pa .leftArrow"); 4543 self.right = $("#pa .rightArrow"); 4544 self.scrolling = false; 4545 self.newDrag = false; 4546 self.dragging = false; 4547 self.totDrag = 0; 4548 self.allowClicks = true; 4549 self.atEdge; 4550 self.trans = 0; 4551 self.transAtDrag = 0; 4552 self.img = $("#pa .img-slider"); 4553 self.transType = "transform"; //may need to replace with specific prefix for other platforms 4554 4555 //setup vm 4556 var vm = self.vm = {}; 4557 vm.title = ko.observable(); 4558 vm.data = ko.observable([]); 4559 vm.fDevs = []; 4560 4561 var gapBetweenSliderItems = 30; 4562 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 4563 4564 var location = bbh.location.getUserLocation(); 4565 4566 if (self.id === 'fd') { 4567 $.ajax({
4568 url: "/bbhAjax/home/slider/fd", 4569 type: "POST", 4570 dataType: "json", 4571 data: { 4572 city: encodeURI(location.City), 4573 state: encodeURI(location.State), 4574 country: encodeURI(location.Country), 4575 lat: encodeURI(location.Latitude), 4576 lng: encodeURI(location.Longitude), 4577 country: encodeURI(location.Country), 4578 routeCountry: bbh.urls.regions.GetRouteCountryCode() 4579 }, 4580 success: function (d) { 4581 vm.data(d); 4582 vm.title("Featured new home communities"); 4583 trackVisibleImpression(d); 4584 if (d.length > maxSlidersItems) { 4585 self.right.removeClass('arrow-btn-disabled'); 4586 } 4587 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 4588 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 4589 } 4590 }); 4591 } 4592 else { 4593 $.ajax({
4594 url: "/bbhAjax/home/slider/pa", 4595 type: "POST", 4596 dataType: "json", 4597 data: { 4598 city: encodeURI(location.City), 4599 state: encodeURI(location.State), 4600 country: encodeURI(location.Country), 4601 routeCountry: bbh.urls.regions.GetRouteCountryCode() 4602 }, 4603 success: function (d) { 4604 vm.data(d); 4605 if (d.length > maxSlidersItems) { 4606 self.right.removeClass('arrow-btn-disabled'); 4607 } 4608 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 4609 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 4610 switch (self.id) { 4611 case "td": 4612 if (d !== undefined && d != null && d.length > 0) 4613 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 4614 break; 4615 case "pa": 4616 vm.title("Pre-launch VIP pricing access"); 4617 if (d.length > 3) { 4618 $('.more-communities-section').removeClass('nodisplay'); 4619 $('.builders-section').removeClass('section-divider'); 4620 } 4621 break; 4622 case "nh": 4623 vm.title("New homes recently added"); 4624 break; 4625 case "ps": 4626 vm.title("New communities launching soon"); 4627 break; 4628 case "mn": 4629 vm.title("Move-in-ready homes"); 4630 if (d.length > 3) { 4631 $('.more-communities-section').removeClass('nodisplay'); 4632 $('.builders-section').removeClass('section-divider'); 4633 } 4634 break; 4635 case "tb": 4636 vm.title("Top new construction builders"); 4637 break; 4638 default: 4639 break; 4640 } 4641 } 4642 }); 4643 4644 } 4645 //functions to interpret bits and bytes 4646 vm.expand = function (flags) { 4647 return { 4648 isBuyNow: flags & 1, 4649 isPreLaunch: flags & 2, 4650 isVerified: flags & 4, 4651 isFeatured: flags & 8 4652 } 4653 }; 4654 4655 vm.loc = function (item) { 4656 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 4657 } 4658 4659 vm.money = function (num) { 4660 if (isNaN(num)) return num; 4661 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 4662 }; 4663 4664 vm.priceText = function (item) { 4665 4666 var l1, l2; 4667 var oj1 = false, oj2 = false; 4668 4669 if(item.saleId !== undefined) switch (item.saleId) { 4670 case 1: l1 = "Register now"; break; 4671 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 4672 case 3: l1 = "Developer sold out"; oj1 = true; break; 4673 case 4: l1 = "Pending"; break; 4674 default: break; 4675 } 4676 4677 if (item.rentId !== undefined) switch (item.rentId) { 4678 case 1: l2 = "Register Now (Rentals)"; break; 4679 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 4680 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 4681 case 4: l2 = "Rentals Pending"; break; 4682 default: break; 4683 } 4684 4685 if (l1 !== undefined && oj1) { 4686 l1 = '<span class="oj">' + l1 + '</span>'; 4687 } 4688 if (l2 !== undefined && oj2) { 4689 l2 = '<span class="oj">' + l2 + '</span>'; 4690 } 4691 4692 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 4693 }; 4694 4695 vm.ribbonText = function (item) { 4696 var f = vm.expand(item.flags); 4697 4698 if (f.isBuyNow) return "BUY ONLINE NOW"; 4699 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 4700 return ""; 4701 } 4702 4703 vm.tagText = function (item) { 4704 var r = ""; 4705 4706 var f = vm.expand(item.flags); 4707 if (f.isFeatured) r += "FEATURED"; 4708 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 4709 4710 return r; 4711 } 4712 4713 vm.stars = function (item) { 4714 var c = false; 4715 var o = ""; 4716 for (var i = 1; i <= 5; i++) { 4717 if (i <= item.score) { 4718 o += `<span> 4719 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 4720 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
472017.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 4721 </svg> 4722</span>`; 4723 } 4724 else if (item.score % 1 != 0 && !c) { 4725 o += `<span> 4726 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 4727 <g clip-path="url(#clip0_3090_268795)"> 4728 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 4729 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 4730 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 4731 </mask> 4732 <g mask="url(#mask0_3090_268795)"> 4733 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 4734 </g> 4735 </g> 4736 <defs> 4737 <clipPath> 4738 <rect width="20" height="20" fill="white" /> 4739 </clipPath> 4740 </defs> 4741 </svg> 4742</span>`; 4743 c = true; 4744 } 4745 else { 4746 o += `<span> 4747 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 4748 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 4749 </svg> 4750</span>`; 4751 } 4752 } 4753 4754 o += " " + item.cnt; 4755 4756 return o; 4757 } 4758 4759 vm.img = function (item) { 4760 if (self.id == "tb") { 4761 if (item.logo === undefined || item.logo == null || item.logo == "") 4762 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 4763 4764 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 4765 } 4766 else { 4767 if (item.logo === undefined || item.logo == null || item.logo == "") { 4768 return ""; 4769 } 4770 4771 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 4772 } 4773 }; 4774 4775 4776 vm.preventclick = false; 4777 4778 vm.devUrl = function (item) { 4779 return "/" + item.url; 4780 } 4781 4782 vm.trackReservedSpot = function (obj) { 4783 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 4784 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 4785 } 4786 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 4787 return true; 4788 } 4789 4790 ko.applyBindings(vm, document.getElementById("pa")); 4791 4792 self.checks = function () { 4793 4794 var scrolled = $("#pa .itemArea")[0].scrollLeft; 4795 4796 if (scrolled === 0) { 4797 self.left.addClass('arrow-btn-disabled'); 4798 } else { 4799 self.left.removeClass('arrow-btn-disabled'); 4800 } 4801 4802 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 4803 4804 if (scrolled >= max) { 4805 self.right.addClass('arrow-btn-disabled'); 4806 } 4807 else { 4808 self.right.removeClass('arrow-btn-disabled'); 4809 } 4810 4811 $.each(self.slider.children(), function (i, item) { 4812 isElementVisible($(item), false, false); 4813 }); 4814 } 4815 4816 // start drag 4817 self.drgS = function (event) { 4818 self.dragging = true; 4819 self.allowClicks = true; 4820 4821 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 4822 self.transAtDrag = self.trans; 4823 4824 self.totDrag = 0; 4825 } 4826 4827 4828 // move drag 4829 self.drgM = function (event) { 4830 if (!self.dragging) return false; 4831 4832 self.trans = $("#pa .itemArea")[0].scrollLeft; 4833 4834 self.checks(); 4835 } 4836 4837 // end drag 4838 self.drgE = function (event) { 4839 4840 if (self.dragAtX === undefined) { 4841 return false; 4842 } 4843 4844 self.dragging = false; 4845 4846 self.checks(); 4847 } 4848 4849 // event handler 4850 self.drg = function (event) { 4851 4852 switch (event.data.action) { 4853 case 'start': 4854 self.drgS(event.originalEvent || event); 4855 break; 4856 case 'move': 4857 self.drgM(event.originalEvent || event); 4858 break; 4859 case 'end': 4860 self.drgE(event.originalEvent || event); 4861 break; 4862 } 4863 } 4864 4865 // click handler 4866 self.clickLeft = function () { 4867 var container = $("#pa .itemArea"); 4868 self.trans = container[0].scrollLeft; 4869 var iw = self.slider.children().width() + gapBetweenSliderItems; 4870 var r = self.trans % iw; 4871 var pastHalf = Math.abs(r) / iw >= 0.5; 4872 4873 if (pastHalf) { 4874 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 4875 } 4876 else { 4877 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 4878 } 4879 4880 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 4881 } 4882 self.left.on('click', self.clickLeft); 4883 4884 // click handler 4885 self.clickRight = function () { 4886 var container = $("#pa .itemArea"); 4887 self.trans = container[0].scrollLeft; 4888 var iw = self.slider.children().width() + gapBetweenSliderItems; 4889 var r = self.trans % iw; 4890 var pastHalf = Math.abs(r) / iw >= 0.5; 4891 4892 if (pastHalf) { 4893 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 4894 } 4895 else { 4896 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 4897 } 4898 4899 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 4900 } 4901 self.right.on('click', self.clickRight); 4902 4903 // attach slider events 4904 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 4905 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 4906 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
4907 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 4908 4909 function trackVisibleImpression(d) {//on load depending on device size we track the items 4910 var devIds = []; 4911 d.map(function (item, i) { 4912 if ($(window).width() > 768) { 4913 var num = 4; 4914 if ($(window).width() > 768 && $(window).width() < 992) { 4915 num = 3; 4916 } 4917 if (i < num) { 4918 item.imp = 1; 4919 devIds.push(item.id); 4920 } 4921 else { 4922 item.imp = 0; 4923 } 4924 } 4925 else { 4926 if (i == 0) { 4927 item.imp = 1; 4928 devIds.push(item.id); 4929 } 4930 else { 4931 item.imp = 0; 4932 } 4933 } 4934 vm.fDevs.push(item); 4935 }); 4936 4937 if (devIds.length > 0) { 4938 $.ajax({
4939 type: "POST", 4940 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4941 data: { 4942 devIDs: devIds 4943 } 4944 }); 4945 } 4946 } 4947 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 4948 var pRect = $("#fd")[0].getBoundingClientRect(); 4949 var rect = el[0].getBoundingClientRect(); 4950 if (isClick != true) {//for drag event 4951 if (rect.right + rect.width <= pRect.right) { 4952 var id = el.next().find(".devcon").attr("dataid"); 4953 vm.fDevs.map(function (item) { 4954 if (item.id == id) { 4955 if (item.imp != 1) { 4956 item.imp = 1; 4957 $.ajax({ 4958 type: "POST", 4959 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4960 data: { 4961 devIDs: id 4962 } 4963 }); 4964 } 4965 } 4966 4967 }); 4968 } 4969 } else {//for click on arrow 4970 if (rect.right <= pRect.right) { 4971 var id = el.next().find(".devcon").attr("dataid"); 4972 vm.fDevs.map(function (item) { 4973 if (item.id == id) { 4974 if (item.imp != 1) { 4975 item.imp = 1; 4976 $.ajax({
4977 type: "POST", 4978 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 4979 data: { 4980 devIDs: id 4981 } 4982 }); 4983 } 4984 } 4985 4986 }); 4987 } 4988 } 4989 4990 } 4991 })() 4992</script>
vendor: 2 bytes, line 4992
4992
4993<script type="text/javascript"> 4994 (function () { 4995 var self = {}; 4996 window["tb"] = self; 4997 4998 // slider setup 4999 self.id = "tb"; 5000 self.slider = $("#tb .items"); 5001 self.left = $("#tb .leftArrow"); 5002 self.right = $("#tb .rightArrow"); 5003 self.scrolling = false; 5004 self.newDrag = false; 5005 self.dragging = false; 5006 self.totDrag = 0; 5007 self.allowClicks = true; 5008 self.atEdge; 5009 self.trans = 0; 5010 self.transAtDrag = 0; 5011 self.img = $("#tb .img-slider"); 5012 self.transType = "transform"; //may need to replace with specific prefix for other platforms 5013 5014 //setup vm 5015 var vm = self.vm = {}; 5016 vm.title = ko.observable(); 5017 vm.data = ko.observable([]); 5018 vm.fDevs = []; 5019 5020 var gapBetweenSliderItems = 30; 5021 var maxSlidersItems = window.screen.availWidth > 992 ? 4 : 3; 5022 5023 var location = bbh.location.getUserLocation(); 5024 5025 if (self.id === 'fd') { 5026 $.ajax({
5027 url: "/bbhAjax/home/slider/fd", 5028 type: "POST", 5029 dataType: "json", 5030 data: { 5031 city: encodeURI(location.City), 5032 state: encodeURI(location.State), 5033 country: encodeURI(location.Country), 5034 lat: encodeURI(location.Latitude), 5035 lng: encodeURI(location.Longitude), 5036 country: encodeURI(location.Country), 5037 routeCountry: bbh.urls.regions.GetRouteCountryCode() 5038 }, 5039 success: function (d) { 5040 vm.data(d); 5041 vm.title("Featured new home communities"); 5042 trackVisibleImpression(d); 5043 if (d.length > maxSlidersItems) { 5044 self.right.removeClass('arrow-btn-disabled'); 5045 } 5046 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 5047 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 5048 } 5049 }); 5050 } 5051 else { 5052 $.ajax({
5053 url: "/bbhAjax/home/slider/tb", 5054 type: "POST", 5055 dataType: "json", 5056 data: { 5057 city: encodeURI(location.City), 5058 state: encodeURI(location.State), 5059 country: encodeURI(location.Country), 5060 routeCountry: bbh.urls.regions.GetRouteCountryCode() 5061 }, 5062 success: function (d) { 5063 vm.data(d); 5064 if (d.length > maxSlidersItems) { 5065 self.right.removeClass('arrow-btn-disabled'); 5066 } 5067 self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); 5068 $(window).resize(function () { self.slider.width((self.slider.children().width() + 2) * self.slider.children().length); }); 5069 switch (self.id) { 5070 case "td": 5071 if (d !== undefined && d != null && d.length > 0) 5072 vm.title(d[0].city === undefined ? "Trending New Homes" : ("New homes trending around " + d[0].city)); 5073 break; 5074 case "pa": 5075 vm.title("Pre-launch VIP pricing access"); 5076 if (d.length > 3) { 5077 $('.more-communities-section').removeClass('nodisplay'); 5078 $('.builders-section').removeClass('section-divider'); 5079 } 5080 break; 5081 case "nh": 5082 vm.title("New homes recently added"); 5083 break; 5084 case "ps": 5085 vm.title("New communities launching soon"); 5086 break; 5087 case "mn": 5088 vm.title("Move-in-ready homes"); 5089 if (d.length > 3) { 5090 $('.more-communities-section').removeClass('nodisplay'); 5091 $('.builders-section').removeClass('section-divider'); 5092 } 5093 break; 5094 case "tb": 5095 vm.title("Top new construction builders"); 5096 break; 5097 default: 5098 break; 5099 } 5100 } 5101 }); 5102 5103 } 5104 //functions to interpret bits and bytes 5105 vm.expand = function (flags) { 5106 return { 5107 isBuyNow: flags & 1, 5108 isPreLaunch: flags & 2, 5109 isVerified: flags & 4, 5110 isFeatured: flags & 8 5111 } 5112 }; 5113 5114 vm.loc = function (item) { 5115 return item.hood === undefined ? item.city : item.hood + ', ' + item.city; 5116 } 5117 5118 vm.money = function (num) { 5119 if (isNaN(num)) return num; 5120 return "$" + num.toFixed().replace(/(\d)(?=(\d{3})+(,|$))/g, '$1,'); 5121 }; 5122 5123 vm.priceText = function (item) { 5124 5125 var l1, l2; 5126 var oj1 = false, oj2 = false; 5127 5128 if(item.saleId !== undefined) switch (item.saleId) { 5129 case 1: l1 = "Register now"; break; 5130 case 2: l1 = item.sPriceFrom === undefined ? "Selling" : "From " + vm.money(item.sPriceFrom); break; 5131 case 3: l1 = "Developer sold out"; oj1 = true; break; 5132 case 4: l1 = "Pending"; break; 5133 default: break; 5134 } 5135 5136 if (item.rentId !== undefined) switch (item.rentId) { 5137 case 1: l2 = "Register Now (Rentals)"; break; 5138 case 2: l2 = item.rPriceFrom === undefined ? "For Rent" : "Rentals from " + vm.money(item.rPriceFrom); break; 5139 case 3: l2 = "Initial Lease Up Complete"; oj2 = true; break; 5140 case 4: l2 = "Rentals Pending"; break; 5141 default: break; 5142 } 5143 5144 if (l1 !== undefined && oj1) { 5145 l1 = '<span class="oj">' + l1 + '</span>'; 5146 } 5147 if (l2 !== undefined && oj2) { 5148 l2 = '<span class="oj">' + l2 + '</span>'; 5149 } 5150 5151 return l1 === undefined ? l2 : (l1 + (l2 === undefined ? '' : '<br />' + l2)); 5152 }; 5153 5154 vm.ribbonText = function (item) { 5155 var f = vm.expand(item.flags); 5156 5157 if (f.isBuyNow) return "BUY ONLINE NOW"; 5158 else if (f.isPreLaunch) return "PRE-LAUNCH PRICES"; 5159 return ""; 5160 } 5161 5162 vm.tagText = function (item) { 5163 var r = ""; 5164 5165 var f = vm.expand(item.flags); 5166 if (f.isFeatured) r += "FEATURED"; 5167 if (f.isVerified) r += (f.isFeatured ? " & " : "") + "VERIFIED"; 5168 5169 return r; 5170 } 5171 5172 vm.stars = function (item) { 5173 var c = false; 5174 var o = ""; 5175 for (var i = 1; i <= 5; i++) { 5176 if (i <= item.score) { 5177 o += `<span> 5178 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 5179 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009
517917.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 5180 </svg> 5181</span>`; 5182 } 5183 else if (item.score % 1 != 0 && !c) { 5184 o += `<span> 5185 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 5186 <g clip-path="url(#clip0_3090_268795)"> 5187 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 5188 <mask id="mask0_3090_268795" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="15" height="14"> 5189 <path d="M17.1365 7.9298L12.7571 7.29107L10.7994 3.30812C10.7459 3.19907 10.658 3.11079 10.5493 3.05713C10.2768 2.92211 9.94561 3.03463 9.80935 3.30812L7.85164 7.29107L3.47224 7.9298C3.3515 7.94711 3.24111 8.00423 3.15659 8.09078C3.05441 8.19617 2.99811 8.33796 3.00005 8.48499C3.00199 8.63202 3.06202 8.77227 3.16694 8.87491L6.33549 11.9751L5.58691 16.3527C5.56935 16.4545 5.58058 16.5592 5.61932 16.655C5.65806 16.7508 5.72276 16.8337 5.80608 16.8944C5.88941 16.9552 5.98802 16.9912 6.09074 16.9986C6.19346 17.0059 6.29617 16.9843 6.38724 16.936L10.3044 14.8692L14.2215 16.936C14.3285 16.9931 14.4527 17.0122 14.5717 16.9914C14.8718 16.9395 15.0736 16.6539 15.0219 16.3527L14.2733 11.9751L17.4418 8.87491C17.5281 8.79009 17.585 8.67931 17.6022 8.55814C17.6488 8.25522 17.4384 7.9748 17.1365 7.9298Z" fill="#FFBC00" /> 5190 </mask> 5191 <g mask="url(#mask0_3090_268795)"> 5192 <rect x="3" y="1" width="7.305" height="19" fill="#FFBC00" /> 5193 </g> 5194 </g> 5195 <defs> 5196 <clipPath> 5197 <rect width="20" height="20" fill="white" /> 5198 </clipPath> 5199 </defs> 5200 </svg> 5201</span>`; 5202 c = true; 5203 } 5204 else { 5205 o += `<span> 5206 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 5207 <path d="M12.3084 7.51163L12.4245 7.74785L12.685 7.78584L17.0628 8.42433C17.0629 8.42435 17.063 8.42437 17.0632 8.42439C17.095 8.42934 17.1119 8.45739 17.108 8.48216L17.108 8.48216L17.1072 8.48767C17.1057 8.49827 17.1007 8.509 17.0915 8.5182C17.0914 8.51827 17.0913 8.51835 17.0912 8.51842L13.9236 11.6177L13.7362 11.801L13.7804 12.0593L14.529 16.437L14.5291 16.4373C14.5342 16.4669 14.5144 16.4939 14.4864 16.4987L14.4857 16.4989C14.4743 16.5008 14.4636 16.4985 14.4571 16.495L14.4549 16.4938L10.5377 14.427L10.3044 14.3039L10.0711 14.427L6.15391 16.4938L6.15314 16.4942C6.14483 16.4986 6.13558 16.5005 6.12643 16.4999C6.11726 16.4992 6.10831 16.496 6.10059 16.4904C6.09286 16.4847 6.08662 16.4769 6.08283 16.4675L5.61932 16.655L6.08283 16.4675C6.07903 16.4581 6.0779 16.4477 6.07964 16.4376L6.07975 16.437L6.82834 12.0593L6.87252 11.801L6.68517 11.6177L3.51661 8.51752L3.51658 8.51749C3.50637 8.5075 3.5002 8.49348 3.50001 8.47839C3.49981 8.46361 3.50537 8.44968 3.51497 8.43945C3.52401 8.43046 3.53399 8.42606 3.54319 8.42474L3.5444 8.42456L7.9238 7.78584L8.18426 7.74785L8.30037 7.51163L10.2569 3.53109C10.257 3.5309 10.2571 3.5307 10.2572 3.53051C10.2718 3.50183 10.3044 3.49381 10.3273 3.50516L10.3279 3.50545C10.3374 3.51013 10.3455 3.51805 10.3505 3.52824L10.3507 3.52868L12.3084 7.51163Z" stroke="#FFBC00" /> 5208 </svg> 5209</span>`; 5210 } 5211 } 5212 5213 o += " " + item.cnt; 5214 5215 return o; 5216 } 5217 5218 vm.img = function (item) { 5219 if (self.id == "tb") { 5220 if (item.logo === undefined || item.logo == null || item.logo == "") 5221 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/noImage_Hive_small.png"; 5222 5223 return "//d2kcmk0r62r1qk.cloudfront.net/imageDevelopers/Logo/x.jpg".replace("x.jpg", item.logo); 5224 } 5225 else { 5226 if (item.logo === undefined || item.logo == null || item.logo == "") { 5227 return ""; 5228 } 5229 5230 return "//d2kcmk0r62r1qk.cloudfront.net/imageSponsors/MapImages/PopUp/x.jpg".replace("x.jpg", item.logo); 5231 } 5232 }; 5233 5234 5235 vm.preventclick = false; 5236 5237 vm.devUrl = function (item) { 5238 return "/" + item.url; 5239 } 5240 5241 vm.trackReservedSpot = function (obj) { 5242 if (obj.trackPriortizedDevelopment != null && obj.trackPriortizedDevelopment == true) { 5243 window.dataLayer.push({ 'event': 'Rennie Homepage Ad Spot' }); 5244 } 5245 window.dataLayer.push({ 'event': 'CommunityPlanUnit Event', 'event_name': 'Homepage Com Card' }); 5246 return true; 5247 } 5248 5249 ko.applyBindings(vm, document.getElementById("tb")); 5250 5251 self.checks = function () { 5252 5253 var scrolled = $("#tb .itemArea")[0].scrollLeft; 5254 5255 if (scrolled === 0) { 5256 self.left.addClass('arrow-btn-disabled'); 5257 } else { 5258 self.left.removeClass('arrow-btn-disabled'); 5259 } 5260 5261 var max = (self.slider.children().width() * self.slider.children().length) - self.slider.parent().width(); 5262 5263 if (scrolled >= max) { 5264 self.right.addClass('arrow-btn-disabled'); 5265 } 5266 else { 5267 self.right.removeClass('arrow-btn-disabled'); 5268 } 5269 5270 $.each(self.slider.children(), function (i, item) { 5271 isElementVisible($(item), false, false); 5272 }); 5273 } 5274 5275 // start drag 5276 self.drgS = function (event) { 5277 self.dragging = true; 5278 self.allowClicks = true; 5279 5280 self.dragFromX = self.dragAtX = event.clientX || event.changedTouches[0].clientX; 5281 self.transAtDrag = self.trans; 5282 5283 self.totDrag = 0; 5284 } 5285 5286 5287 // move drag 5288 self.drgM = function (event) { 5289 if (!self.dragging) return false; 5290 5291 self.trans = $("#tb .itemArea")[0].scrollLeft; 5292 5293 self.checks(); 5294 } 5295 5296 // end drag 5297 self.drgE = function (event) { 5298 5299 if (self.dragAtX === undefined) { 5300 return false; 5301 } 5302 5303 self.dragging = false; 5304 5305 self.checks(); 5306 } 5307 5308 // event handler 5309 self.drg = function (event) { 5310 5311 switch (event.data.action) { 5312 case 'start': 5313 self.drgS(event.originalEvent || event); 5314 break; 5315 case 'move': 5316 self.drgM(event.originalEvent || event); 5317 break; 5318 case 'end': 5319 self.drgE(event.originalEvent || event); 5320 break; 5321 } 5322 } 5323 5324 // click handler 5325 self.clickLeft = function () { 5326 var container = $("#tb .itemArea"); 5327 self.trans = container[0].scrollLeft; 5328 var iw = self.slider.children().width() + gapBetweenSliderItems; 5329 var r = self.trans % iw; 5330 var pastHalf = Math.abs(r) / iw >= 0.5; 5331 5332 if (pastHalf) { 5333 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - r; 5334 } 5335 else { 5336 if (self.trans > 0 || self.trans < iw) self.trans = self.trans - (r + iw); 5337 } 5338 5339 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 5340 } 5341 self.left.on('click', self.clickLeft); 5342 5343 // click handler 5344 self.clickRight = function () { 5345 var container = $("#tb .itemArea"); 5346 self.trans = container[0].scrollLeft; 5347 var iw = self.slider.children().width() + gapBetweenSliderItems; 5348 var r = self.trans % iw; 5349 var pastHalf = Math.abs(r) / iw >= 0.5; 5350 5351 if (pastHalf) { 5352 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + ((iw + r) - iw); 5353 } 5354 else { 5355 if (self.trans > 0 || self.trans < iw) self.trans = self.trans + (iw + r); 5356 } 5357 5358 container.animate({ scrollLeft: self.trans }, 300, "swing", self.checks); 5359 } 5360 self.right.on('click', self.clickRight); 5361 5362 // attach slider events 5363 self.slider.on('touchstart.slider mousedown.slider', { action: 'start' }, self.drg); 5364 self.slider.on('touchmove.slider mousemove.slider', {action: 'move'}, self.drg); 5365 self.slider.on('touchend.slider mouseup.slider', {action: 'end'}, self.drg);
5366 self.slider.on('touchcancel.slider mouseleave.slider', { action: 'end' }, self.drg); 5367 5368 function trackVisibleImpression(d) {//on load depending on device size we track the items 5369 var devIds = []; 5370 d.map(function (item, i) { 5371 if ($(window).width() > 768) { 5372 var num = 4; 5373 if ($(window).width() > 768 && $(window).width() < 992) { 5374 num = 3; 5375 } 5376 if (i < num) { 5377 item.imp = 1; 5378 devIds.push(item.id); 5379 } 5380 else { 5381 item.imp = 0; 5382 } 5383 } 5384 else { 5385 if (i == 0) { 5386 item.imp = 1; 5387 devIds.push(item.id); 5388 } 5389 else { 5390 item.imp = 0; 5391 } 5392 } 5393 vm.fDevs.push(item); 5394 }); 5395 5396 if (devIds.length > 0) { 5397 $.ajax({
5398 type: "POST", 5399 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 5400 data: { 5401 devIDs: devIds 5402 } 5403 }); 5404 } 5405 } 5406 function isElementVisible(el, isClick, dir) {//check for items that are visible in slider and theyre not tracked them, we track 5407 var pRect = $("#fd")[0].getBoundingClientRect(); 5408 var rect = el[0].getBoundingClientRect(); 5409 if (isClick != true) {//for drag event 5410 if (rect.right + rect.width <= pRect.right) { 5411 var id = el.next().find(".devcon").attr("dataid"); 5412 vm.fDevs.map(function (item) { 5413 if (item.id == id) { 5414 if (item.imp != 1) { 5415 item.imp = 1; 5416 $.ajax({ 5417 type: "POST", 5418 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 5419 data: { 5420 devIDs: id 5421 } 5422 }); 5423 } 5424 } 5425 5426 }); 5427 } 5428 } else {//for click on arrow 5429 if (rect.right <= pRect.right) { 5430 var id = el.next().find(".devcon").attr("dataid"); 5431 vm.fDevs.map(function (item) { 5432 if (item.id == id) { 5433 if (item.imp != 1) { 5434 item.imp = 1; 5435 $.ajax({
5436 type: "POST", 5437 url: "/bbhAjax/hitTracking/TrackHomePageAdImpressions", 5438 data: { 5439 devIDs: id 5440 } 5441 }); 5442 } 5443 } 5444 5445 }); 5446 } 5447 } 5448 5449 } 5450 })() 5451</script>
vendor: 2 bytes, line 5451
5451
5452<script> 5453 //custom scroller for sidebar 5454 $('#sidebar').on('mousewheel DOMMouseScroll', function (e) { 5455 var scrollTo = null; 5456 if (e.type === 'mousewheel') { 5457 scrollTo = (e.originalEvent.wheelDelta * -1); 5458 } 5459 else if (e.type === 'DOMMouseScroll') { 5460 scrollTo = 40 * e.originalEvent.detail; 5461 } 5462 if (scrollTo) { 5463 e.preventDefault(); 5464 $(this).scrollTop(scrollTo + $(this).scrollTop()); 5465 } 5466 }); 5467 5468 var startx = 0; 5469 var scrollStartPos = 0; 5470 $('#sidebar').on('touchstart', function (e) { 5471 var touchobj = e.originalEvent.changedTouches[0]; 5472 startx = parseInt(touchobj.clientX); 5473 scrollStartPos = this.scrollTop + e.originalEvent.touches[0].pageY; 5474 }); 5475 $('#sidebar').on('touchmove', function (e) { 5476 var initialY = e.originalEvent.pageY; 5477 var touchobj = e.originalEvent.changedTouches[0]; 5478 if (!$('.scroll').has($(e.target)).length) { 5479 e.preventDefault(); 5480 } 5481 this.scrollTop = scrollStartPos - e.originalEvent.touches[0].pageY; 5482 }); 5483</script>
5483 5484
5485<script> 5486 let tabletBreakPoint = 991; 5487 5488 $(document.body).on('scroll', footerScrollEvent); // for mobile 5489 $(document).on('scroll', footerScrollEvent); // for tablet 5490 5491 var scrollTimeout; 5492 var scrollLock = false; 5493 5494 function footerScrollEvent() { 5495 clearTimeout(scrollTimeout); 5496 if (scrollLock == false) { 5497 scrollTimeout = setTimeout(footer.scroll.onScroll(true), 30); 5498 } 5499 } 5500 5501 function scrollToParent(parentId) { 5502 if ($(window).width() <= tabletBreakPoint) { 5503 let offSet = $(window).width() < 787 ? 100 : 150; 5504 $([document.documentElement, document.body]).animate({ 5505 scrollTop: document.getElementById(parentId).offsetTop - offSet 5506 }, 500); 5507 } 5508 } 5509 5510 (function () { 5511 $(window).on('resize', function () { 5512 var win = $(this); //this = window 5513 $('#footerArrow').css('bottom', '85px'); 5514 if (win.width() >= tabletBreakPoint) { 5515 if (!$('#footerArrow').hasClass('hide')) { 5516 $('#footerArrow').addClass('hide'); 5517 } 5518 } 5519 }); 5520 5521 $('#showUsCities').on('click', function () { 5522 if ($('#UsCities').hasClass('country-max-height')) { 5523 $('#UsCities').removeClass('country-max-height'); 5524 $('#showUsCities').find('.show-more-text').text('Show less cities'); 5525 $('#showUsCities').find('.show-more-icon').addClass('rotate-icon'); 5526 } 5527 else { 5528 $('#UsCities').addClass('country-max-height'); 5529 $('#showUsCities').find('.show-more-text').text('Show more cities'); 5530 $('#showUsCities').find('.show-more-icon').removeClass('rotate-icon'); 5531 scrollToParent('UsCities'); 5532 } 5533 5534 }); 5535 $('#showStates').on('click', function () { 5536 if ($('#UsStates').hasClass('state-province-max-height')) { 5537 $('#UsStates').removeClass('state-province-max-height'); 5538 $('#showStates').find('.show-more-text').text('Show less states'); 5539 $('#showStates').find('.show-more-icon').addClass('rotate-icon'); 5540 } 5541 else { 5542 $('#UsStates').addClass('state-province-max-height'); 5543 $('#showStates').find('.show-more-text').text('Show more states'); 5544 $('#showStates').find('.show-more-icon').removeClass('rotate-icon'); 5545 scrollToParent('UsStates'); 5546 } 5547 }); 5548 $('#showCanCities').on('click', function () { 5549 if ($('#CanCities').hasClass('country-max-height')) { 5550 $('#CanCities').removeClass('country-max-height'); 5551 $('#showCanCities').find('.show-more-text').text('Show less cities'); 5552 $('#showCanCities').find('.show-more-icon').addClass('rotate-icon'); 5553 } 5554 else { 5555 $('#CanCities').addClass('country-max-height'); 5556 $('#showCanCities').find('.show-more-text').text('Show more cities'); 5557 $('#showCanCities').find('.show-more-icon').removeClass('rotate-icon'); 5558 scrollToParent('CanCities'); 5559 } 5560 }); 5561 $('#showProvince').on('click', function () { 5562 if ($('#CanProvinces').hasClass('state-province-max-height')) { 5563 $('#CanProvinces').removeClass('state-province-max-height'); 5564 $('#showProvince').find('.show-more-text').text('Show less provinces'); 5565 $('#showProvince').find('.show-more-icon').addClass('rotate-icon'); 5566 } 5567 else { 5568 $('#CanProvinces').addClass('state-province-max-height'); 5569 $('#showProvince').find('.show-more-text').text('Show more provinces'); 5570 $('#showProvince').find('.show-more-icon').removeClass('rotate-icon'); 5571 scrollToParent('CanProvinces'); 5572 } 5573 }); 5574 5575 }()); 5576</script>
5576 5577 5578 5579 <!-- Modal --> 5580<div class="modal fade" id="ieNotSupportedModal" role="dialog"> 5581 <div class="modal-dialog"> 5582 5583 <!-- Modal content--> 5584 <div class="modal-content"> 5585 5586 <div class="modal-body"> 5587 <p>Livabl no longer supports Internet Explorer ahead of itâs retirement in 2023. Please consider using Microsoft Edge for the best new home search experience</p> 5588 </div> 5589 <div class="modal-footer"> 5590 <button type="button" class="btn btn-default" data-dismiss="modal" onclick="updateLocalStorageEntry()">Close</button> 5591 </div> 5592 </div> 5593 5594 </div> 5595</div> 5596
5597<script> 5598 var showIENotSupportedModal = localStorage.getItem('IEMessageShowed'); 5599 if (window.document.documentMode && !JSON.parse(showIENotSupportedModal)) { 5600 $("#ieNotSupportedModal").modal("show"); 5601 localStorage.setItem('IEMessageShowed', false); 5602 } 5603 5604 function updateLocalStorageEntry() { 5605 localStorage.setItem('IEMessageShowed', true); 5606 } 5607</script>
5607 5608 5609 <div class="livabl-toast-message"> 5610 <div class="toast-message-text"></div> 5611 <a class="toast-message-close" href="javascript:void(0)" onclick="return bbh.toastMessageModule.hideToast();"> 5612 <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="https://www.w3.org/2000/svg"> 5613 <path fill-rule="evenodd" clip-rule="evenodd" d="M6.7069 5.29269C6.31626 4.90228 5.6831 4.90246 5.29269 5.2931C4.90228 5.68374 4.90246 6.3169 5.2931 6.70731L8.58771 10L5.2931 13.2927C4.90246 13.6831 4.90228 14.3163 5.29269 14.7069C5.6831 15.0975 6.31626 15.0977 6.7069 14.7073L10.0023 11.4138L13.2978 14.7073C13.6884 15.0977 14.3216 15.0975 14.712 14.7069C15.1024 14.3163 15.1022 13.6831 14.7116 13.2927L11.417 10L14.7116 6.70731C15.1022 6.3169 15.1024 5.68374 14.712 5.2931C14.3216 4.90246 13.6884 4.90228 13.2978 5.29269L10.0023 8.5862L6.7069 5.29269Z" fill="white" /> 5614 </svg> 5615 </a> 5616</div> 5617 5618</body> 5619</html>
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.