PageSourceSearch

https://www.cityscapeone.com/_nuxt/knOPOjeN.js

js cityscapeone.com collected 2026-09-27 02:28:03 UTC 39,398 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BHm4-xqL.js","./Dj3GWInK.js","./XZWo9f2_.js","./entry.L7qNXtev.css","./BD4kfAXW.js","./loader.DqByrqYr.css","./DLGO-ufk.js","./Bsm_-p4W.js","./DJ7QkEP2.js","./DtB_pPVt.js","./propertyTypeDistribution.B4InAco7.css"])))=>i.map(i=>d[i]);
2import{_ as e,A as a,a0 as t,z as r,v as l,u as s,D as o,h as i,N as n,i as d,k as c,q as u,j as p,c as v,o as m,b as y,p as h,m as g,a2 as b,s as f,$ as k,l as w,d as T,a as A,J as C,S as x,n as _,t as P,F as D,aV as N,aW as $,r as M,aX as I,aY as F,e as V,I as L,L as E,K as S,ai as q,w as j,x as U,G as B,H as O,T as z,V as R,W as G}from"./XZWo9f2_.js";import{_ as W}from"./CCmvexxM.js";import{u as Y}from"./DtB_pPVt.js";import{u as H}from"./CIqEQ4W3.js";import{_ as K}from"./BD4kfAXW.js";import{_ as X}from"./BwnBx3QP.js";import{_ as J}from"./smW8Fbtf.js";import{u as Q,B as Z}from"./DJ7QkEP2.js";import{_ as ee,a as ae,b as te,c as re}from"./CcJrRHva.js";import{_ as le}from"./Dj3GWInK.js";import{t as se}from"./DLGO-ufk.js";import oe from"./rMCeUDmp.js";import{_ as ie}from"./B7NJCHyD.js";import{_ as ne}from"./DT9LxWKL.js";import{_ as de}from"./CVMZfhpq.js";import{_ as ce}from"./DowgD6Ja.js";import{c as ue,r as pe,e as ve,u as me,m as ye,a as he,_ as ge}from"./BAJckk6m.js";import{u as be}from"./D0TSu4ln.js";import{R as fe}from"./C7y8jujO.js";import{u as ke}from"./Quv5I_fs.js";import{i as we}from"./DcPyrpxV.js";import"./ClItqIJX.js";import"./DO7YAMpX.js";import"./D2ZF62Xz.js";const Te={class:"row g-3 market-trends-filters"},Ae={class:"col-12 col-sm-4"},Ce={class:"col-12 col-sm-4"},xe={class:"col-12 col-sm-4"},_e=e({__name:"Filters",async setup(e){let f,k;const{advanceFilters:w}=([f,k]=a((()=>H())),f=await f,k(),f),T=Y(),A=t(),C=r(),{setFilterCityName:x,setFilterNeighborhoodName:_,setFilterPropertyTypeCode:P,setPropertyTypeName:D}=T,{getFilters:N}=l(T),$=s().public,{$mixpanel:M}=o(),I=i("Toronto"),F=i("All"),V=i("All"),L=n({allCities:[]}),E=i([]),S=d((()=>[{name:"All"},...E.value||[]])),q=d((()=>{var e;return[{name:"All",idx:"All"},...((null==(e=w.value)?void 0:e.propertyTypes)||[]).map(((e,a)=>({...e,idx:String(a)})))]})),j=d((()=>{var e;const a=C.query.city;if(a){const e=L.allCities.find((e=>e.name===a));return null==e?void 0:e.id}return null==(e=L.allCities.find((e=>"Toronto"===e.name)))?void 0:e.id})),U=e=>{M.track("Market Trends",{City:e}),x(e||"Toronto"),_("All"),P("all"),F.value="All",V.value="All",G({city:e,neighborhood:"All",propertyType:"All"})},B=async()=>{var e;try{const a=await u.get(`${$.rexploreBase}search-management/helper/cities/${j.value}/neighborhoods`,{cityId:j.value},{lazy:!0});_(C.query.neighborhood||"All"),a&&(E.value=null==(e=a.data)?void 0:e.neighborhoods)}catch(a){console.log(a),a.response.status}};c((async()=>{if(await R(),C.query.city&&(I.value=C.query.city,x(I.value),U(I.value)),C.query.neighborhood&&(F.value=C.query.neighborhood||"All",_(C.query.neighborhood||"All"),O(C.query.neighborhood)),C.query.propertyType){const e=w.value.propertyTypes.findIndex((e=>e.code===C.query.propertyType));V.value=-1!==e?String(e):"All",D(-1!==e?w.value.propertyTypes[e].name:"All"),P(-1!==e?w.value.propertyTypes[e].code:"all"),z(-1!==e?String(e):"All")}}));const O=e=>{M.track("Market Trends",{Neighborhood:e}),_(e),G({neighborhood:e}),_(e),F.value=e},z=e=>{var a,t,r;if("All"===e)return P("all"),D("All"),void(V.value="All");P(null==(a=w.value.propertyTypes[e])?void 0:a.code),D(null==(t=w.value.propertyTypes[e])?void 0:t.name),V.value=e;const l="all"===e?"All":null==(r=w.value.propertyTypes[e])?void 0:r.code;G({propertyType:l}),M.track("Market Trends",{propertyType:"All"===e?{code:"All",name:"All"}:w.value.propertyTypes[e]})},R=async()=>{try{const e=await u.get(`${$.rexploreBase}search-management/helper/cities`);x(I.value||"Toronto"),L.allCities=e.data.cities,await B()}catch(e){}};p((()=>C.query.city),(e=>{C.query.city&&(x(e),I.value=e,B(),_("All"),P("All"),D("All"))})),p((()=>C.query.neighborhood),(e=>{C.query.neighborhood&&(_(e),F.value=e)})),p((()=>C.query.propertyType),(e=>{if(!C.query.propertyType)return;const a=w.value.propertyTypes.findIndex((a=>a.code===e));z(-1!==a?String(a):"All")}));const G=e=>{A.push({query:{...C.query,...e}})};return(e,a)=>{const t=W;return m(),v("div",Te,[y("div",Ae,[h(t,{modelValue:g(I),"onUpdate:modelValue":a[0]||(a[0]=e=>b(I)?I.value=e:null),label:"City",options:g(L).allCities,"option-label":"name","option-value":"name",multiple:!1,placeholder:"Select city",onChange:U},null,8,["modelValue","options"])]),y("div",Ce,[h(t,{modelValue:g(F),"onUpdate:modelValue":a[1]||(a[1]=e=>b(F)?F.value=e:null),label:"Neighbourhood",options:g(S),"option-label":"name","option-value":"name",multiple:!1,placeholder:"Select neighbourhood",onChange:O},null,8,["modelValue","options"])]),y("div",xe,[h(t,{modelValue:g(V),"onUpdate:modelValue":a[2]||(a[2]=e=>b(V)?V.value=e:null),label:"Property Type",options:g(q),"option-label":"name","option-value":"idx",multiple:!1,placeholder:"Select property type",onChange:z},null,8,["modelValue","options"])])])}}},[["__scopeId","data-v-b0e1311e"]]),Pe={class:"midian-price mb-px-60"},De={class:"col pe-0"},Ne={class:"prices"},$e={class:"col pe-0"},Me={class:"prices"},Ie={class:"col pe-0"}
2,Fe={class:"prices"},Ve={class:"col pe-0"},Le={class:"prices"},Ee={class:"col"},Se={class:"prices"},qe={name:"PriceTrend"},je=e(Object.assign(qe,{props:{isLoading:{default:!1},section:{type:String,required:!0}},async setup(e){let t,n;const b=f(),{isAuthUserLogin:N}=l(b),$=Y(),{getFilters:M}=l($),I=i([]),F=r(),{$mixpanel:V}=o(),L=e,{advanceFilters:E}=([t,n]=a((()=>H())),t=await t,n(),t),S=k(),{getListingDetails:q}=l(S),j=i(!1),U=s().public,B=d((()=>{var e;if(!M.value.propertyTypeName||"All"===M.value.propertyTypeName)return"all";const a=null==(e=E.value)?void 0:e.propertyTypes;if(!(null==a?void 0:a.length))return"all";const t=a.find((e=>e.name===M.value.propertyTypeName));return(null==t?void 0:t.code)??"all"})),O=d((()=>M.value.neighborhoodName&&"All"!==M.value.neighborhoodName?M.value.neighborhoodName:"all")),z=i(!1),R=()=>{N.value||q.value.displayPublic||(z.value=!0)};p((()=>M.value),(async e=>{"buy-id"!==F.name&&await W()}),{deep:!0}),c((async()=>{"singleProperty"!==L.section?await W():await G()})),w((async()=>{"singleProperty"!==L.section?await W():await G()}));const G=async()=>{j.value=!0;try{const e=await u.post(`${U.rexploreBase}rexplore-management/property-metrics/fetch-price-trend-non-graph`,{purpose:"sale"});e&&(I.value=e.data,j.value=!1)}catch(e){console.log(e),j.value=!1}},W=async()=>{j.value=!0,new FormData;const e={purpose:"sale",dataRange:"1y",propertyType:B.value,city:M.value.cityName||"Toronto",neighborhood:O.value};try{const a=await u.post(`${U.rexploreBase}rexplore-management/market-trend/fetch-price-trend-non-graph`,e);a&&(I.value=a.data,j.value=!1)}catch(a){console.log(a),j.value=!1}};return(e,a)=>{var t,r,l,s,o,i,n,d,c,u;const p=K,b=X,f=J;return m(),v(D,null,[y("div",{class:_([{"chart_wrapper ":g(j)},"position-relative market-trend-price-chart mt-px-36"])},[C(h(p,{class:"position-absolute"},null,512),[[x,g(j)]]),C(y("div",Pe,[y("div",{class:_([["row",g(j)?"loading":""],"price-trends"])},[y("div",De,[y("div",Ne,[y("p",null,"Median Price ("+P(null==(t=g(I))?void 0:t.medianPriceMonth)+")",1),y("span",{class:_(["text-primary fw-bold d-block mt-1",{blurred:!g(N)&&!g(q).displayPublic}]),onClick:R},"$"+P(null==(r=g(I))?void 0:r.medianPrice),3)])]),y("div",$e,[y("div",Me,[a[1]||(a[1]=y("p",null,"Average Days on Market",-1)),y("span",{class:_(["text-primary fw-bold d-block mt-1",{blurred:!g(N)&&!g(q).displayPublic}]),onClick:R},P(null==(l=g(I))?void 0:l.averageDaysOnMarket)+" Days ",3)])]),y("div",Ie,[y("div",Fe,[a[2]||(a[2]=y("p",null,"6 Month Value Change",-1)),y("div",{class:_({blurred:!g(N)&&!g(q).displayPublic}),onClick:R},[h(b,{value:null==(o=null==(s=g(I))?void 0:s.medianPricePercentage)?void 0:o.sixMonthPercentage},null,8,["value"])],2)])]),y("div",Ve,[y("div",Le,[a[3]||(a[3]=y("p",null,"1 Year Value Change",-1)),y("div",{class:_({blurred:!g(N)&&!g(q).displayPublic}),onClick:R},[h(b,{value:null==(n=null==(i=g(I))?void 0:i.medianPricePercentage)?void 0:n.oneYearPercentage},null,8,["value"])],2)])]),y("div",Ee,[y("div",Se,[a[4]||(a[4]=y("p",null,"2 Year Value Change",-1)),y("div",{class:_({blurred:!g(N)&&!g(q).displayPublic}),onClick:R},[h(b,{value:null==(c=null==(d=g(I))?void 0:d.medianPricePercentage)?void 0:c.twoYearPercentage},null,8,["value"])],2)])])],2)],512),[[x,!g(j)&&0!==(null==(u=g(I))?void 0:u.averageDaysOnMarket)]])],2),g(z)?(m(),T(f,{key:0,onClose:a[0]||(a[0]=e=>z.value=!1)})):A("",!0)],64)}}}),[["__scopeId","data-v-9dda43ee"]]),Ue={class:"row mb-px-24 align-items-center"},Be={key:0,class:"col-md-6 pb-2 pb-lg-0"},Oe={class:"d-flex justify-content-md-end justify-content-sm-start justify-content-xs-start align-items-center flex-wrap"},ze={class:"month_tabs d-flex"},Re=["disabled","onClick"],Ge={class:"position-relative"},We={class:"graph-statics"},Ye=e({__name:"MedianPriceAndAvgDaysOnMarketGraph",props:{headerTitle:{type:String,default:""}},setup(e,{expose:a}){N.register(...$);const t=Y(),{getFilters:r}=l(t),o=i([{label:"1m",value:"1m",isActive:!1},{label:"1y",value:"1y",isActive:!0},{label:"2y",value:"2y",isActive:!1}]),n=i(!1),c=s().public,p=i([]),b=i([]),f=i([]),k=d((()=>({labels:p.value,datasets:[{data:f.value,label:"Average Days On Market",yAxisID:"avgDaysOnMarket",type:"line",borderColor:"#FFE492",backgroundColor:["#FFE492"]},{data:b.value,label:"Median Price",yAxisID:"medianPrice",type:"bar",lineTension:0,backgroundColor:"#C7D3E3",barThickness:9.47}]}))),{barChartProps:w}=Q({chartData:k,options:{responsive:!0,scales:{avgDaysOnMarket:{type:"linear",position:"right",ticks:{callback:function(e,a,t){return`${e} ${e>0?"Days":"Day"}`}}},medianPrice:{type:"linear",position:"left",ticks:{callback:function(e,a,t){return`$${Intl.NumberFormat().format(e)}`}}}},plugins:{tooltip:{yAlign:"bottom",backgroundColor:"rgb(231, 231, 231)",bodyColor:"black",titleColor:"black",caretPadding:20,bodyAlign:"center",padding:10,borderColor:"rgba(0, 0, 0)",bodyFont:{size:14},callbacks:{label:function(e){return`${e.label}: ${"medianPrice"===e.dataset.yAxisID?"$":""}${e.formattedValue} ${"avgDaysOnMarket"===e.dataset.yAxisID?"Days":""}`}}}}}}),T=async()=>{n.value=!0;const e={dataRange:o.value.find((e=>e.isActive)).value,propertyType:r.value.propertyTypeCode.toLocaleLowerCase()||"all",city:r.value.cityName||"Toronto",neighborhood:r.value.neighborhoodName.toLocaleLowerCase()||"all",purpose:"sale"};try{const a=await u.post(`${c.rexploreBase}rexplore-management/market-trend/fetch-price-trend-chart-data`,e);a&&(p.value=a.data.medianPriceAndAvgDaysData.labels,b.value=a.data.medianPriceAndAvgDaysData.data[0],f.value=a.data.medianPriceAndAvgDaysData.data[1])}catch(a){}finally{n.value=!1}};return a({isLoading:n,labels:p,medianPrice:b,avgDaysOnMarket:f,resetTimeIntervals:()=>{o.value.forEach((e=>{e.isActive="1y"===e.value}))}}),(a,t)=>{const r=K;return m(),v("div",{class:_(["median_price_charts_wrap price_trend_graph pb-px-36 position-relative",g(n)?"loading":""])},[y("div",Ue,[e.headerTitle?(m(),v("div",Be,[y("h3",null,P(e.headerTitle),1)])):A("",!0),y("div",{class:_(e.headerTitle?"col-md-6":"col-12 pb-2 pb-lg-0")},[y("div",Oe,[y("div",ze,[(m(!0),v(D,null,M(g(o),((e,a)=>(m(),v("button",{key:a,class:_(["btn btn-sm btn-primary btn-tabs w-0 h-auto rounded-0",0===a?"rounded-start":a===g(
2o).length-1?"rounded-end":"",e.isActive?"btn-active":""]),disabled:g(n),onClick:a=>(async e=>{o.value.forEach((a=>{a.isActive=a.value===e.value})),await T()})(e)},P(e.label),11,Re)))),128))])])],2)]),y("div",Ge,[y("div",We,[h(g(Z),I(F(g(w))),null,16),C(h(r,null,null,512),[[x,g(n)]])])])],2)}}},[["__scopeId","data-v-7b6b2ea3"]]),He={class:"row mb-px-24 align-items-center"},Ke={class:"col-md-4"},Xe={class:"tooltip-custom","data-tip":"The 'Price Performance Comparison' chart compares the median prices of properties that have been sold with those that remain unsold in the real estate market. This chart offers valuable insights into the pricing dynamics and market demand.",tabindex:"1"},Je={class:"col-md-8"},Qe={class:"d-flex justify-content-end align-items-center flex-wrap"},Ze={class:"month_tabs d-flex"},ea=["disabled","onClick"],aa={class:"position-relative"},ta={class:"graph-statics"},ra=e({__name:"SoldAndUnsoldMedianPrice",setup(e,{expose:a}){N.register(...$);const t=Y(),{getFilters:r}=l(t),o=i([{label:"1m",value:"1m",isActive:!1},{label:"1y",value:"1y",isActive:!0},{label:"2y",value:"2y",isActive:!1}]),n=i(!1),c=s().public,p=i([]),b=i([]),f=i([]),k=d((()=>({labels:p.value,datasets:[{data:b.value,label:"Sold",yAxisID:"medianPrice",type:"line",borderColor:"#80a8e6",backgroundColor:["#d8e4f7"]},{data:f.value,label:"Unsold",yAxisID:"medianPrice",type:"line",fill:!0,lineTension:0,borderColor:"#3B4657",backgroundColor:"#e2e5e8 "}]}))),{barChartProps:w}=Q({chartData:k,options:{responsive:!0,scales:{medianPrice:{type:"linear",position:"left",ticks:{callback:function(e,a,t){return`$${Intl.NumberFormat().format(e)}`}}}}}}),T=async()=>{n.value=!0;const e={purpose:"sale",propertyType:r.value.propertyTypeCode.toLowerCase()||"all",city:r.value.cityName||"Toronto",neighborhood:r.value.neighborhoodName.toLowerCase()||"All",dataRange:o.value.find((e=>e.isActive)).value};try{const a=await u.post(`${c.rexploreBase}rexplore-management/market-trend/fetch-sold-unsold-median-prices`,e);a&&(p.value=a.data.listingCountStats.labels,b.value=a.data.listingCountStats.data[0],f.value=a.data.listingCountStats.data[1])}catch(a){}finally{n.value=!1}};return a({getChartData:T,resetTimeIntervals:()=>{o.value.forEach((e=>{e.isActive="1y"===e.value}))}}),(e,a)=>{const t=le,r=K;return m(),v("div",{class:_(["median_price_charts_wrap price_trend_graph pb-px-36 position-relative",g(n)?"loading":""])},[y("div",He,[y("div",Ke,[y("h3",null,[V(P(g(se)("Price Performance Comparison"))+" ",1),y("span",Xe,[h(t,{size:20,name:"information-circle"})])])]),y("div",Je,[y("div",Qe,[y("div",Ze,[(m(!0),v(D,null,M(g(o),((e,a)=>(m(),v("button",{key:a,class:_(["btn btn-sm btn-primary btn-tabs w-0 h-auto rounded-0",0===a?"rounded-start":a===g(o).length-1?"rounded-end":"",e.isActive?"btn-active":""]),disabled:g(n),onClick:a=>(async e=>{o.value.forEach((a=>{a.isActive=a.value===e.value})),await T()})(e)},P(e.label),11,ea)))),128))])])])]),y("div",aa,[y("div",ta,[h(g(Z),I(F(g(w))),null,16),C(h(r,null,null,512),[[x,g(n)]])])])],2)}}},[["__scopeId","data-v-7f8c6de0"]]),la={class:"row mb-px-24 align-items-center"},sa={class:"col-md-4"},oa={class:"tooltip-custom","data-tip":"The Property Flow Analyzer chart displays the number of properties that have been sold, newly listed, and currently active in the market. It offers a snapshot of the real estate landscape, enabling users to assess market activity, inventory levels, and trends in property transactions.",tabindex:"1"},ia={class:"col-md-8"},na={class:"d-flex justify-content-end align-items-center flex-wrap"},da={class:"month_tabs d-flex"},ca=["disabled","onClick"],ua={class:"position-relative"},pa={class:"graph-statics"},va=e({__name:"SoldNewActiveListing",setup(e,{expose:a}){N.register(...$);const t=Y(),{getFilters:r}=l(t),o=i([{label:"1m",value:"1m",isActive:!1},{label:"1y",value:"1y",isActive:!0},{label:"2y",value:"2y",isActive:!1}]),n=i(!1),c=s().public,p=i([]),b=i([]),f=i([]),k=i([]),w=d((()=>({labels:p.value,datasets:[{data:b.value,label:"Sold",yAxisID:"avgDaysOnMarket",type:"line",borderColor:"#3B4657",backgroundColor:["#3B4657"]},{data:k.value,label:"New",yAxisID:"avgDaysOnMarket",type:"line",borderColor:"#FFE492",backgroundColor:["#FFE492"]},{data:f.value,label:"Active",yAxisID:"avgDaysOnMarket",type:"bar",lineTension:0,backgroundColor:"#C7D3E3",barThickness:9.47}]}))),{barChartProps:T}=Q({chartData:w,options:{responsive:!0,scales:{avgDaysOnMarket:{type:"linear",position:"left",ticks:{callback:function(e){return Intl.NumberFormat().format(e)}}}},plugins:{tooltip:{yAlign:"bottom",backgroundColor:"rgb(231, 231, 231)",bodyColor:"black",titleColor:"black",caretPadding:20,bodyAlign:"center",padding:10,borderColor:"rgba(0, 0, 0)",bodyFont:{size:14},callbacks:{label:function(e){return`${e.dataset.label}: ${e.formattedValue}`}}}}}}),A=async()=>{n.value=!0;const e={purpose:"sale",propertyType:r.value.propertyTypeCode.toLowerCase()||"all",city:r.value.cityName||"Toronto",neighborhood:r.value.neighborhoodName.toLowerCase()||"all",dataRange:o.value.find((e=>e.isActive)).value};try{const a=await u.post(`${c.rexploreBase}rexplore-management/market-trend/fetch-market-trend-listings`,e);a&&(p.value=a.data.propertyFlowData.labels,b.value=a.data.propertyFlowData.data[0],f.value=a.data.propertyFlowData.data[1],k.value=a.data.propertyFlowData.data[2])}catch(a){}finally{n.value=!1}};return a({labels:p,sold:b,active:f,newListings:k,isLoading:n,resetTimeIntervals:()=>{o.value.forEach((e=>{e.isActive="1y"===e.value}))}}),(e,a)=>{const t=le,r=K;return m(),v("div",{class:_(["median_price_charts_wrap price_trend_graph pb-px-36 position-relative",g(n)?"loading":""])},[y("div",la,[y("div",sa,[y("h3",null,[V(P(g(se)("Property Flow Analyzer"))+" ",1),y("span",oa,[h(t,{size:20,name:"information-circle"})])])]),y("div",ia,[y("div",na,[y("div",da,[(m(!0),v(D,null,M(g(o),((e,a)=>(m(),v("button",{key:a,class:_(["btn btn-sm btn-primary btn-tabs w-0 h-auto rounded-0",0===a?"rounded-start":a===g(
2o).length-1?"rounded-end":"",e.isActive?"btn-active":""]),disabled:g(n),onClick:a=>(async e=>{o.value.forEach((a=>{a.isActive=a.value===e.value})),await A()})(e)},P(e.label),11,ca)))),128))])])])]),y("div",ua,[y("div",pa,[h(g(Z),I(F(g(T))),null,16),C(h(r,null,null,512),[[x,g(n)]])])])],2)}}},[["__scopeId","data-v-55227828"]]),ma={class:"section-border contact-agent-sidebar","aria-labelledby":"contact-agent-heading"},ya={"aria-labelledby":"name-fields-legend"},ha={class:"row"},ga={class:"col-md-6 pr-px-8"},ba={class:"input-group-control mb-px-16"},fa={class:"col-md-6 pl-px-8"},ka={class:"input-group-control mb-px-16"},wa={"aria-labelledby":"contact-fields-legend"},Ta={class:"row"},Aa={class:"col-md-12"},Ca={class:"input-group-control mb-px-16"},xa={class:"col-md-12"},_a={class:"input-group-control mb-px-16"},Pa={class:"error-msg"},Da={key:0,class:"error-msg"},Na={"aria-labelledby":"message-fields-legend"},$a={class:"row"},Ma={class:"col-md-12"},Ia={class:"input-group-control mb-px-16"},Fa=["maxlength"],Va={class:"error-msg"},La={id:"message-count",class:"the-count","aria-live":"polite"},Ea={id:"current"},Sa={id:"maximum"},qa={key:0,class:"d-flex justify-content-between contact-agent-checkboxs"},ja={class:"form-check d-flex align-items-center justify-content-center save-detail"},Ua={class:"row"},Ba={class:"col-md-12 text-end submit_btn"},Oa={class:"row mt-5"},za={class:"col-md-12 text-end"},Ra=e({__name:"ContactAgent",setup(e){const{$mixpanel:a}=o(),t=L(),n=f(),{setUserDetails:c}=n,k=Y(),{getAuthUserDetails:w,getTokens:T,isAuthUserLogin:x}=l(n),{getFilters:N}=l(k),$=ke(),{setToasterDetails:I}=$,F=i(w.value.firstName||""),B=i(w.value.lastName||""),O=i(w.value.email||""),z=i(w.value.phone||""),R=i(500),G=i(!1),W=i(!1),H=i(!1),K=i(null),X=i(""),J=i(!1),Q=s().public,Z=i({isValid:!0}),ee=r(),ae=d((()=>{var e,a,t;return`Hi, I am interested in ${"All"===(null==(e=N.value)?void 0:e.propertyTypeName)?"all properties":(null==(a=N.value)?void 0:a.propertyTypeName)+" properties"} of ${null==(t=N.value)?void 0:t.cityName}. Please contact me`})),te=i(ae.value||"");p((()=>ee.query),(()=>{ee.query&&(ee.query.phone&&(z.value=ee.query.phone),ee.query.description&&(te.value=ee.query.description))}),{immediate:!0});const re=function(e){return!!new RegExp(/^[a-zA-Z_ ]*$/).test(e)},le=()=>{X.value=""},se={firstName:{required:ue.withMessage("First Name is Required",pe),stringValidation:re},lastName:{required:ue.withMessage("Last Name is Required",pe),stringValidation:re},userEmail:{required:ue.withMessage("Email is Required",pe),email:ue.withMessage("Email is not valid",ve),minLength:he(10),maxLength:ye(50)},phone:{required:ue.withMessage("Contact number is required.",pe)},description:{required:ue.withMessage("Message is required",pe)}},Te=me(se,{firstName:F,lastName:B,userEmail:O,phone:z,description:te},{$scope:!1});p([()=>{var e;return null==(e=N.value)?void 0:e.cityName},()=>{var e;return null==(e=N.value)?void 0:e.propertyTypeName}],(()=>{te.value=ae.value})),p((()=>x.value),(()=>{F.value=w.value.firstName,B.value=w.value.lastName,O.value=w.value.email,z.value=w.value.phone,H.value=!1,Te.value.$reset()}));const Ae=async e=>{var r,l,s,o,i;if(!G.value){X.value=e;try{a.track("Market Trends",{"Contact an Agent":{email:O.value,"contact number":z.value}}),G.value=!0,await we({email:O.value,first_name:F.value,last_name:B.value,phone:z.value,source:"market_trends_contact_agent",consentGiven:!0});const e=await u.post(`${Q.rexploreBase}notification-management/templates/contact-agent`,{firstName:F.value,lastName:B.value,email:O.value,phone:z.value,message:te.value}),s=await u.post(`${Q.rexploreBase}rexplore-management/lms/contact`,{firstName:F.value,lastName:B.value,email:O.value,cellPhone1:z.value,assignedAgentId:1,status:0,dealType:"buyer",source:te.value,captureMethod:"Reborn Contact Agent from Market Trends CTA"});201===e.status&&201===s.status&&(null==t||t.capture("Form Captured",{type:"Market Trends Contact Agent",status:"success",first_name:F.value,last_name:B.value,email:O.value,phone:z.value,message:te.value,city:null==(r=N.value)?void 0:r.cityName,property_type:null==(l=N.value)?void 0:l.propertyTypeName}),xe(),I({description:"Our agents have been notified of your interest, and someone from our team will c
2onnect with you shortly.",alertType:"success"}),await(async()=>{if(W.value)try{const e={cognitoAttributes:{"custom:firstName":F.value,"custom:lastName":B.value,"custom:phoneNumber":z.value},_cognitoUserId:w.value.userId},{data:a}=await u.put(`${Q.rexploreBase}user-management/users/user-attributes`,e,{headers:{Authorization:`Bearer ${T.value.accessToken}`,"Content-Type":"application/json"}});a&&c({firstName:F.value,lastName:B.value,phone:z.value})}catch(e){if(422===e.response.status)return void I({title:Object.values(e.response.data.payloadErrors)[0][0],alertType:"danger"});I({title:e.response.data.errorDetails,alertType:"danger"})}})(),G.value=!1)}catch(n){if(G.value=!1,null==t||t.capture("Form Captured",{type:"Market Trends Contact Agent",status:"failure",error_status:null==(s=n.response)?void 0:s.status,first_name:F.value,last_name:B.value,email:O.value,phone:z.value,message:te.value,city:null==(o=N.value)?void 0:o.cityName,property_type:null==(i=N.value)?void 0:i.propertyTypeName}),422===n.response.status)return void I({title:Object.values(n.response.data.payloadErrors)[0][0],alertType:"danger"});I({title:n.response.data.errorDetails,alertType:"danger"})}X.value=""}},Ce=async()=>{await Te.value.$validate()&&Z.value.isValid&&K.value.execute()},xe=()=>{X.value="",J.value=!0,setTimeout((()=>{J.value=!1}),100),x.value||(F.value="",B.value="",O.value=""),Te.value.$reset()};return(e,a)=>{var t,r,l;const s=oe,o=ie,i=ne,n=de,d=ce,c=ge,u=U;return m(),v(D,null,[y("div",ma,[a[16]||(a[16]=y("h5",{id:"contact-agent-heading",class:"fw-bold mb-4"},"Contact an Agent",-1)),h(s),y("form",{role:"form","aria-labelledby":"contact-form-heading",onSubmit:a[8]||(a[8]=E((e=>Ce()),["stop","prevent"]))},[y("fieldset",ya,[a[9]||(a[9]=y("legend",{id:"name-fields-legend",class:"sr-only"},"Name Information",-1)),y("div",ha,[y("div",ga,[y("div",ba,[h(o,{"field-id":"firstName",label:"First Name*",placeholder:"First Name",modelValue:g(F),errors:null==(t=g(Te).firstName)?void 0:t.$errors,onVuelidateTouch:g(Te).firstName.$touch,"onUpdate:modelValue":a[0]||(a[0]=e=>F.value=e)},null,8,["modelValue","errors","onVuelidateTouch"])])]),y("div",fa,[y("div",ka,[h(o,{"field-id":"lastName",label:"Last Name*",placeholder:"Last Name",modelValue:g(B),errors:null==(r=g(Te).lastName)?void 0:r.$errors,onVuelidateTouch:g(Te).lastName.$touch,"onUpdate:modelValue":a[1]||(a[1]=e=>B.value=e)},null,8,["modelValue","errors","onVuelidateTouch"])])])])]),y("fieldset",wa,[a[11]||(a[11]=y("legend",{id:"contact-fields-legend",class:"sr-only"},"Contact Information",-1)),y("div",Ta,[y("div",Aa,[y("div",Ca,[h(i,{"field-id":"email",label:"Email*",placeholder:"[email protected]",modelValue:g(O),disabled:g(w).email.length>0,errors:null==(l=g(Te).userEmail)?void 0:l.$errors,onVuelidateTouch:g(Te).userEmail.$touch,"onUpdate:modelValue":a[2]||(a[2]=e=>O.value=e)},null,8,["modelValue","disabled","errors","onVuelidateTouch"])])]),y("div",xa,[y("div",_a,[a[10]||(a[10]=y("label",{class:"form-label",for:"phone-input"},"Contact Number *",-1)),h(g(be),{id:"phone-input",error:g(Te).phone.$errors.length>0,modelValue:g(z),"onUpdate:modelValue":a[3]||(a[3]=e=>b(z)?z.value=e:null),"show-code-on-list":"",color:"info","preferred-countries":["CA","FR","BE","DE","US","GB"],"ignored-countries":["AC"],"default-country-code":""+(g(w).phone?"":"CA"),onInput:g(Te).phone.$touch,class:_({"border-danger":g(Te).phone.$errors.length>0}),onUpdate:a[4]||(a[4]=e=>Z.value=e),translations:{phoneInput:{example:""}},"aria-label":"Enter your contact phone number"},null,8,["error","modelValue","default-country-code","onInput","class"]),(m(!0),v(D,null,M(g(Te).phone.$errors,(e=>(m(),v("span",{key:e.$uid,class:"d-flex flex-column"},[y("div",Pa,P(e.$message),1)])))),128)),!1===g(Z).isValid&&void 0!==g(z)?(m(),v("div",Da," Contact number is not valid ")):A("",!0)])])])]),y("fieldset",Na,[a[15]||(a[15]=y("legend",{id:"message-fields-legend",class:"sr-only"},"Message and Preferences",-1)),y("div",$a,[y("div",Ma,[y("div",Ia,[a[13]||(a[13]=y("label",{for:"message-textarea",class:"form-label"},"Message",-1)),C(y("textarea",{id:"message-textarea","onUpdate:modelValue":a[5]||(a[5]=e=>b(te)?te.value=e:null),maxlength:g(R),class:_(["form-control",g(Te).description.$error?"is-invalid":0===g(te).length?"":"is-valid"]),style:{resize:"none"},rows:"7",onInput:a[6]||(a[6]=(...e)=>g(Te).description.$touch&&g(Te).description.$touch(...e)),"aria-label":"Enter your message to the agent","aria-describedby":"message-count"},"                  ",42,Fa),[[S,g(te)]]),(m(!0),v(D,null,M(g(Te).description.$errors,(e=>(m(),v("span",{key:e.$uid,class:"d-flex flex-column"},[y("div",Va,P(e.$message),1)])))),128)),y("div",La,[y("span",Ea,P(g(te).length),1),y("span",Sa,"/ "+P(g(R)),1)]),!g(x)||"undefined"!==g(w).phone&&""!==g(w).phone?A("",!0):(m(),v("div",qa,[y("div",ja,[C(y("input",{class:"form-check-input mr-px-3",type:"checkbox","onUpdate:modelValue":a[7]||(a[7]=e=>b(W)?W.value=e:null),"true-value":"true","false-value":"false",id:"saveDetailsCheckbox","aria-describedby":"save-details-label"},null,512),[[q,g(W)]]),a[12]||(a[12]=y("label",{id:"save-details-label",class:"form-check-label fw-light",for:"saveDetailsCheckbox"}," Save my details ",-1))])]))])]),a[14]||(a[14]=y("div",{class:"col-md-12 mb-3"},[y("span",{class:"mb-px-16 d-block"}
2," *By providing your information, you agree to receive emails from us. ")],-1))]),h(n,null,{default:j((()=>[h(g(fe),{sitekey:g(Q).recaptchaKeyV3||g(Q).reCaptchaKey,size:"invisible",ref_key:"recaptchaRef",ref:K,onVerify:Ae,onExpired:le},null,8,["sitekey"])])),_:1})]),h(d),y("div",Ua,[y("div",Ba,[h(c,{isLoading:g(G),label:"Contact Agent",onHandleSubmit:Ce,"aria-label":"Submit contact agent form"},null,8,["isLoading"])])])],32)]),y("div",Oa,[y("div",za,[h(u,{to:"/contact-us",class:"btn btn-primary w-100 pb-px-16 pt-px-16 h-auto","aria-label":"Visit our contact us page for more information"},{default:j((()=>a[17]||(a[17]=[V(" Contact Us ")]))),_:1,__:[17]})])])],64)}}},[["__scopeId","data-v-af579cb6"]]),Ga=R((()=>G((()=>import("./BHm4-xqL.js")),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url).then((e=>e.default||e)))),Wa={class:"market-trends-page"},Ya={class:"container-fluid mt-4 mb-5"},Ha={class:"row g-4"},Ka={class:"col-12 col-lg-8"},Xa={class:"section-border market-filters-section mb-4"},Ja={class:"section-border section-border__tabs market-trends-charts"},Qa={key:0,class:"market-trends-chart-description"},Za={class:"col-12 col-lg-4"},et={class:"sidebar-sticky"},at="Market Level Trends",tt="Stay informed about the latest real estate market trends in Canada. Explore our comprehensive analysis and data to make informed decisions about buying or selling a property.",rt=e({__name:"index",async setup(e){let t,n;const{advanceFilters:b}=([t,n]=a((()=>H())),t=await t,n(),t),f=d((()=>{var e;return(null==(e=b.value)?void 0:e.propertyTypes)??[]})),k=Y(),{getFilters:C}=l(k),x=s().public,_=r(),D=i("medianPrice"),N=[{key:"medianPrice",label:"Median Price"},{key:"priceGrowth",label:"Price Growth"},{key:"pricePerformance",label:"Price Performance"},{key:"bidAskSpread",label:"Bid-Ask Spread"},{key:"soldRatio",label:"Sold Ratio"},{key:"propertyFlow",label:"Property Flow"},{key:"propertyDistribution",label:"Property Distribution"}],$={medianPrice:"Track the relationship between property prices and how long they remain on the market. Use this chart to identify pricing trends and gauge market demand in specific areas.",priceGrowth:"Visualize how property prices have changed over time. Whether you're buying, selling, or investing, this chart helps you identify growth opportunities and market stability.",pricePerformance:"Compare the price trends of different cities or neighborhoods to see how various markets are performing relative to each other. This tool is invaluable for identifying high-performing areas.",bidAskSpread:"Analyze the difference between buyers' offers and sellers' asking prices. A narrow spread indicates a stable market, while a 
2wider spread suggests volatility or room for negotiation.",soldRatio:"Examine the ratio of sold properties to total listings. This chart provides insights into market demand, showing which areas are hot and which may have excess inventory.",propertyFlow:"Understand the flow of properties in and out of the market. Use this chart to gauge activity levels and identify trends in new listings and sales.",propertyDistribution:"Gain a clear picture of the types of properties dominating the market. This pie chart breaks down the distribution of single-family homes, condos, townhouses, and other property types by region. It's a quick and effective way to understand local market compositions."},M=d((()=>$[D.value]??"")),I=i(null),F=i(null),V=i(null),L=i(null),E=i(null),S=i(null);c((async()=>{await q()})),w((async()=>{await q()}));const q=async()=>{try{const e={city:C.value.cityName,neighborhood:C.value.neighborhoodName.toLowerCase()||"all",propertyType:C.value.propertyTypeCode.toLowerCase()||"all",purpose:"sale",dataRange:"1y"};U(),E.value.getChartData();const{data:a}=await u.post(`${x.rexploreBase}rexplore-management/market-trend/fetch-all-statistics`,e);a.response&&(G(a.response.medianPriceAndAvgDaysData),W(a.response.priceGrowthData),K(a.response.bidAskPriceData),J(a.response.soldRatioData),X(a.response.propertyFlowData),R())}catch(e){console.log(e),R()}},U=()=>{const e=I.value;e&&(e.isLoading=!0),F.value&&(F.value.isLoading=!0),V.value&&(V.value.isLoading=!0),L.value&&(L.value.isLoading=!0),S.value&&(S.value.isLoading=!0)},R=()=>{const e=I.value;e&&(e.isLoading=!1),F.value&&(F.value.isLoading=!1),V.value&&(V.value.isLoading=!1),L.value&&(L.value.isLoading=!1),S.value&&(S.value.isLoading=!1)},G=e=>{I.value&&(I.value.labels=e.labels,I.value.medianPrice=e.data[0],I.value.avgDaysOnMarket=e.data[1])},W=e=>{F.value.labels=e.labels,F.value.legends=e.dataSetLabel,F.value.currentPropertyTypeData=e.data[0]},K=e=>{V.value.labels=e.labels,V.value.legends=e.dataSetLabel,V.value.currentPropertyTypeData=e.data},X=e=>{S.value.labels=e.labels,S.value.legends=e.dataSetLabel,S.value.sold=e.data[0],S.value.active=e.data[1],S.value.newListings=e.data[2]},J=e=>{L.value.labels=e.labels,L.value.legends=e.dataSetLabel,L.value.currentPropertyTypeData=e.data[0],L.value.rentComparisonPropertyTypeData=e.data[1]};p((()=>C.value),(async()=>{Q(),await q()}),{deep:!0});const Q=()=>{var e;null==(e=I.value)||e.resetTimeIntervals(),F.value.resetTimeIntervals(),V.value.resetTimeIntervals(),L.value.resetTimeIntervals(),S.value.resetTimeIntervals(),E.value.resetTimeIntervals()},{$homeUrl:Z}=o(),le=B(x.siteUrl,_.fullPath),se=`${x.siteUrl}hero-img.jpg`;return O({title:at,link:[{rel:"canonical",href:le}],htmlAttrs:{lang:"en"},meta:[{name:"robots",content:"index, follow"},{name:"keywords",content:"homes for sale, condos for sale, buy, sell, invest, first time buyers, real estate, real estate agent"},{name:"title",content:`${at} | Cityscapeone.com`},{name:"description",content:tt},{property:"og:title",content:`${at} | Cityscapeone.com`},{property:"og:description",content:tt},{property:"og:type",content:"website"},{property:"og:url",content:B(x.siteUrl,_.fullPath)},{property:"og:image",content:se},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:`${at} | Cityscapeone.com`},{name:"twitter:description",content:tt},{name:"twitter:image",content:se},{property:"fb:app_id",content:x.facebookAppId}]}),(e,a)=>{const t=_e,r=je,l=Ye,s=re,o=te,i=ra,n=ae,d=va,c=Ga,u=ee,p=Ra;return m(),v("div",Wa,[a[2]||(a[2]=z('<div class="marketing-static" data-v-5c625820><div class="marketing-static__hero" aria-labelledby="market-trends-hero-heading" data-v-5c625820><div class="container" data-v-5c625820><h1 id="market-trends-hero-heading" class="marketing-static__title" data-v-5c625820> Market Level Trends </h1><p class="marketing-static__lead" data-v-5c625820> Maximize Your Market Advantage: Empowering Success through Data-Backed Analytics! </p></div></div></div>',1)),y("div",Ya,[y("div",Ha,[y("div",Ka,[y("div",Xa,[a[1]||(a[1]=y("h2",{class:"mb-3"}
2,"Market Filters",-1)),h(t)]),y("section",Ja,[h(u,{title:"Charts",tabs:N,"default-tab":"medianPrice","is-chart-content":!0,classes:["no-card-border","no-card-padding"],onTabChange:a[0]||(a[0]=e=>D.value=e)},{medianPrice:j((()=>[h(r,{section:"marketTrend"}),h(l,{"header-title":"Median Price & Average Days on Market",ref_key:"medianPriceAndAverageDaysOnMarketGraph",ref:I},null,512)])),priceGrowth:j((()=>[h(s,{"property-types":g(f),section:"marketTrend",tooltip:"The Price Growth Chart Market Trend illustrates the changes and trends in property prices over a specific period of time in the real estate market. This chart visually presents the percentage increase or decrease in prices.",ref_key:"priceGrowthGraph",ref:F},null,8,["property-types"])])),bidAskSpread:j((()=>[h(o,{"property-types":g(f),section:"marketTrend",tooltip:"The Bid-Ask Spread chart showcases the difference between the highest bid price and the lowest ask price in a market. It provides a quick visual understanding of the gap between what buyers are willing to pay and what sellers are asking for.",ref_key:"bidAskSpreadGraph",ref:V},null,8,["property-types"])])),pricePerformance:j((()=>[h(i,{ref_key:"soldAndUnSoldMedianPriceGraph",ref:E},null,512)])),soldRatio:j((()=>[h(n,{"property-types":g(f),section:"marketTrend",tooltip:"The Sold Ratio chart presents a visual representation of the percentage of properties that have been successfully sold in relation to the total number of properties listed.",ref_key:"soldRatioGraph",ref:L},null,8,["property-types"])])),propertyFlow:j((()=>[h(d,{ref_key:"soldNewActiveGraph",ref:S},null,512)])),propertyDistribution:j((()=>[g(_).fullPath.includes("market-trends")?(m(),T(c,{key:0,section:"marketTrend",tooltip:"The Property Distribution pie chart visually represents the distribution of properties across different categories or segments. It provides a concise overview of how properties are distributed within a specific market or area."})):A("",!0)])),_:1}),g(M)?(m(),v("p",Qa,P(g(M)),1)):A("",!0)])]),y("aside",Za,[y("div",et,[h(p)])])])]),a[3]||(a[3]=z('<section class="static-content-wrapper pt-px-24" data-v-5c625820><div class="container-fluid" data-v-5c625820><p class="fw-bold font-size-md" data-v-5c625820> Market Trends: Explore Real Estate Insights with Interactive Charts </p><p data-v-5c625820> Welcome to the Market Trends page of Cityscape Real Estate LTD, Brokerage, your ultimate destination for real estate analytics in Ontario. Dive into our dynamic visualizations to uncover insights about cities, neighborhoods, and property types. With a suite of interactive charts, you can explore the factors driving the market and make informed decisions. </p><h2 data-v-5c625820>Discover Trends by Cities, Neighborhoods, and Property Types</h2><p data-v-5c625820> Our Market Trends page offers a variety of tools to help you analyze the Ontario real estate market. Filter data by location and property type to get tailored insights, and use our interactive charts to visualize key metrics. </p><h2 data-v-5c625820>How to Use the Market Trends Page</h2><ol data-v-5c625820><li data-v-5c625820><strong data-v-5c625820>Select Your Location:</strong> Choose from cities or neighborhoods in Ontario to focus your analysis. </li><li data-v-5c625820><strong data-v-5c625820>Filter by Property Type:</strong> Narrow your view to specific property types, such as condos, single-family homes, or townhouses. </li><li data-v-5c625820><strong data-v-5c625820>Explore Charts:</strong> Interact with our line and pie charts to uncover actionable insights. </li><li data-v-5c625820><strong data-v-5c625820>Analyze Trends:</strong> Use the data to guide your real estate decisions, from pricing strategies to investment planning. </li></ol><h2 data-v-5c625820>Why Choose Cityscape&#39;s Market Trends Tools?</h2><ul data-v-5c625820><li data-v-5c625820><strong data-v-5c625820>Comprehensive Data:</strong> Powered by Cityscape&#39;s extensive real estate database, our charts reflect accurate and up-to-date market information. </li><li data-v-5c625820><strong data-v-5c625820>User-Friendly Interface:</strong>
2 Easily navigate and interpret complex data with our interactive and intuitive designs. </li><li data-v-5c625820><strong data-v-5c625820>Tailored Insights:</strong> Filter by location and property type to get the specific information you need. </li></ul><h2 data-v-5c625820>Who Benefits from Market Trends?</h2><ul data-v-5c625820><li data-v-5c625820><strong data-v-5c625820>Homebuyers:</strong> Identify pricing trends and time your purchase for the best value. </li><li data-v-5c625820><strong data-v-5c625820>Sellers:</strong> Understand market dynamics to price your property competitively and attract buyers. </li><li data-v-5c625820><strong data-v-5c625820>Investors:</strong> Discover high-performing markets and analyze property types to optimize your portfolio. </li><li data-v-5c625820><strong data-v-5c625820>Real Estate Professionals:</strong> Enhance client offerings with data-driven insights and visual tools to support buying and selling strategies. </li></ul><h2 data-v-5c625820>Start Exploring Market Trends Today</h2><p data-v-5c625820> Gain a competitive edge in Ontario&#39;s real estate market with Cityscape&#39;s Market Trends page. Whether you&#39;re analyzing pricing trends, market activity, or property distributions, our interactive charts provide the clarity you need to make informed decisions. </p><p data-v-5c625820><strong data-v-5c625820>Explore the Market Trends page now and unlock the insights shaping Ontario&#39;s real estate market.</strong></p></div></section>',1))])}}},[["__scopeId","data-v-5c625820"]]);export{rt as default};

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.